SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
open build service
     Mauro Parra-Miranda
   mauro@masutostudios.com



                             1
¿Qué es?
•    Servicio público para ayudar a los
    desarrolladores a distribuir su software.
• Novell/SUSE proporciona una granja de
    compilación con todos los sistemas
    soportados configurados y listos.
• Genera paquetes para múltiples
    distribuciones, tales como openSUSE,
    Ubuntu, Mandrake, Fedora.


                                                2
¿Qué es?
• Soporta múltiples arquitecturas: ix86,
  ix86_64, PPC; en un futuro para ARM.
• Un solo RPM spec genera paquetes para
  todas las distribuciones que se desee,
  incluyendo ubuntu, que usa paquetes “.deb”.
• Genera automagicamente un canal de
  distribución de software. Algo como:
  http://software.opensuse.org/yourproject


                                                3
¿Qué es?
• Los usuarios pueden buscar la última versión
  del software que necesitan, via
  http://software.opensuse.org
• Acceso a compañias externas a dar soporte
  fácilmente a linux (proveer repositorios para
  cada proyecto de las compañias, con su
  respectivo repositorio e incluso sus propias
  dependencias).


                                                  4
¿Qué es?
• Permite el desarrollo en equipo.
• La granja compilara todos tus proyectos tan
  seguido como los cambies, pero si requieres
  hacer pruebas rápidas, puedes realizar la
  compilación (y el paquete) en tu propia
  estación, con un minimo de esfuerzo y un
  minimo de paquetes instalados
  (prácticamente, solo hay que instalar osc).


                                                5
¿Qué es?

• Obtener parches y aplicaciones para
  distribuciones con versiones viejas (o la
  habilidad de compilar alguna versión más
  reciente tu mismo, sin dolor).
• Más info en el video:
  http://en.opensuse.org/BSVideo



                                              6
Ventajas
• No necesidad de granjas de compilación o
  múltiples máquinas soportadas o
  configuraciones.
• Resolución de dependencias automatica, con
  su respectiva compilación si es necesario
  (por ejemplo, si alguna de las dependencias
  de paquete foo se actualizaran, el paquete
  foo se vuelve a compilar con la nueva
  dependencia).


                                                7
Ventajas
• Ligas a otros proyectos, por lo que puedes
  reutilizar los paquetes que haya hecho
  alguien más. Por ejemplo, ustedes generaron
  un parche para banshee, que quieren probar.
  No tienen que hacer el paquete de cero,
  sino que ligan al paquete banshee del
  proyecto, y encima de eso hacen
  modificaciones. Asi, siempre tendran las
  versiones más frescas.


                                                8
Ventajas
• Se puede compilar y distribuir para:
  SUSE
  Debian
  Redhat
  Mandriva Linux
  Ubuntu


• Con soporte para ix86, x86_64, PPC, ARM.
  Con posible soporte para z390x, ia64.


                                             9
RPM spec
• Comentarios - Ignorados por RPM.
• Tags - Definir datos.
• Scripts - Conjunto de comandos a ejecutar.
• Macros - Abreviación para múltiples
  comandos a ejecutar.
• %files - La lista de archivos en el RPM
• Directivas - modificadoras de archivos.
                                               10
RPM spec


• Condicionales - if’s a nivel de arquitectura o
  sistema operativo.




                                                   11
RPM spec


• Comentarios
  # This is the spec file for playmidi 2.3...




                                               12
RPM spec
• Tags
  <something>:<something-else>
  Vendor: Masuto Studios
  Name: Foo
  Version: 1.2
  Release: 6
  %description This software does something
  Summary: This software does something.
  Copyright: GPL


                                              13
RPM spec

• Tags
  URL: http://www.masutostudios.com
  Group: Applications/Editors
  Packager: Mauro Parra-Miranda
  <mauro@masutostudios.com>




                                      14
RPM spec
• Dependencias
  Provides: evolution
  Requires: glibc
  Conflicts: evolution-1
  AutoReqProv: no
  ExcludeArch: sparc alpha
  Prefix: /opt
  BuildRoot: /tmp/cdplayer



                             15
RPM spec

• Source: ftp://ftp.gnomovision.com/pub/
  cdplayer-1.0.tgz
  Source1: Fooobar.tar.gz
  Patch: foo.patch
  Patch1: bar.patch




                                           16
Tareas del RPM
• Desempacar los fuentes
• Aplicar parches
• Compilar el software
• Instalar el software
• Empaquetar
• Limpiar

                           17
Filosofia de RPM


• Comenzar con código fuente pristino.
• Aplicar parches sucesivos
• Compilar la versión parchada.


                                         18
Script %prep

• Corre antes que cualquier cosa, usualmente
  crea los directorios, desempaca el código
  fuente, aplica parches, aplica cualquier tipo
  de operaciones para poder generar el
  código fuente a compilar, como cualquier
  desarrolladfor haria.




                                                  19
Script %build

• Corre después de %prep, usualmente solo
  implica un:

  make

  o similar.




                                            20
Script %install
• Primero intenta correr un:
  make install

  uno después puede añadir cualquier otra
  cosa que se requiera, como un theme o
  branding, que en ocasiones no se requiere
  para compilar.



                                              21
Script %clean


• Limpiar el sitio de trabajo :-)
• rm -rf $RPM_BUILD_ROOT


                                    22
Otros scripts interesantes

• %pre - corre antes que se instale el RPM
• %post - corre despues que se instale el RPM
  (normalmente para correr ldconfig).
• %preun - igual que %pre, pero se corre antes
  de desinstalar el RPM
• %postun - igual que %post, pero se corre
  despues de desinstalar el RPM


                                                 23
Scripts comunes


• %setup - desempaqueta los fuentes, revisa
  permisos, se puede indicar el orden en el
  cual se desempaquetan los fuentes.
• %patch - permite aplicar uno o tal parche en
  los fuentes.




                                                 24
%files
• Indica que archivos deben ser incluidos,
  incluye manuales, graficas, etc.
• Puede uno usar %doc para indicar que es
  documento, %config es para indicar que es
  un archivo de configuracion que se debe
  guardar aun despues de borrado el paquete.
• %attr (mode, user, group) file, como:
  (755,root,root)


                                               25
%files


• %dir - indica que algo es un directorio.



                                             26
Subpaquetes
• %package hace posible hacer mas de un
  paquete con un mismo SPEC; muchos lo
  usan para hacer subpaquetes, como los que
  contienen la documentación y similar.

  %package -n doc

  Lo cual hace un subpaquete foo-doc



                                              27
Prozilla




           28
Prozilla




           29
Prozilla




           30
Prozilla




           31
Prozilla




           32
obs - web




            33
obs - web




            34
obs - web




            35
obs - web




            36
obs - web




            37
Links
• http://build.opensuse.org
• http://en.opensuse.org/Build_Service
• Build Service Book -
  https://build.opensuse.org/documentation/obs/index.html

• osc (cli) - http://en.opensuse.org/Build_Service/CLI
• Max RPM - http://www.rpm.org/max-rpm
• http://masutostudios.com/ciencias09/obs.pdf
                                                            38
Masuto Studios
http://www.masutostudios.com




                               39

Más contenido relacionado

La actualidad más candente

Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
Virtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y PuppetVirtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y Puppet
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
Richard Moya
 
Debian hecho david g.s.n
Debian hecho david g.s.nDebian hecho david g.s.n
Debian hecho david g.s.n
aliat_so1
 
sistema operativo
sistema operativosistema operativo
sistema operativo
jesus2028
 
10 distribuciones linux mas importantes y sus caracteristicas
10 distribuciones linux mas importantes y sus caracteristicas10 distribuciones linux mas importantes y sus caracteristicas
10 distribuciones linux mas importantes y sus caracteristicas
karenhostmins
 
Algunas preguntas de Linux
Algunas preguntas de LinuxAlgunas preguntas de Linux
Algunas preguntas de Linux
Paupauheavy
 

La actualidad más candente (17)

Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de uso
 
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
Virtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y PuppetVirtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y Puppet
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
 
Debian hecho david g.s.n
Debian hecho david g.s.nDebian hecho david g.s.n
Debian hecho david g.s.n
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando docker
 
Software Libre en la Carrera de Ciencias de la Computacion
Software Libre en la Carrera de Ciencias de la ComputacionSoftware Libre en la Carrera de Ciencias de la Computacion
Software Libre en la Carrera de Ciencias de la Computacion
 
Dbdeployer
DbdeployerDbdeployer
Dbdeployer
 
Virtualenv y buildout
Virtualenv y buildoutVirtualenv y buildout
Virtualenv y buildout
 
A Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle ManagementA Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle Management
 
Comfusion4
Comfusion4Comfusion4
Comfusion4
 
Php (hipertex pre processor)
Php (hipertex pre processor)Php (hipertex pre processor)
Php (hipertex pre processor)
 
Buildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonBuildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en Python
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
Linux
LinuxLinux
Linux
 
10 distribuciones linux mas importantes y sus caracteristicas
10 distribuciones linux mas importantes y sus caracteristicas10 distribuciones linux mas importantes y sus caracteristicas
10 distribuciones linux mas importantes y sus caracteristicas
 
Resumen capitulo5
Resumen capitulo5Resumen capitulo5
Resumen capitulo5
 
Algunas preguntas de Linux
Algunas preguntas de LinuxAlgunas preguntas de Linux
Algunas preguntas de Linux
 
Curso básico Linux
Curso básico LinuxCurso básico Linux
Curso básico Linux
 

Destacado (8)

Horario Dos Profs Da Biblioteca
Horario  Dos Profs Da BibliotecaHorario  Dos Profs Da Biblioteca
Horario Dos Profs Da Biblioteca
 
Cidades mais raras do mundo
Cidades mais raras do mundoCidades mais raras do mundo
Cidades mais raras do mundo
 
31450
3145031450
31450
 
31084
3108431084
31084
 
ApresentaçãO1 Eja
ApresentaçãO1  EjaApresentaçãO1  Eja
ApresentaçãO1 Eja
 
HoráRio Das Turmas Pnl
HoráRio Das Turmas  PnlHoráRio Das Turmas  Pnl
HoráRio Das Turmas Pnl
 
RepúLica 7 8 9
RepúLica 7 8 9RepúLica 7 8 9
RepúLica 7 8 9
 
Dia Nao Fumador
Dia Nao FumadorDia Nao Fumador
Dia Nao Fumador
 

Similar a Open Build Service

Sistema operativo unix
Sistema operativo unixSistema operativo unix
Sistema operativo unix
José Chancoh
 

Similar a Open Build Service (20)

Sistema operativo unix
Sistema operativo unixSistema operativo unix
Sistema operativo unix
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
 
Clase1(software libre)
Clase1(software libre)Clase1(software libre)
Clase1(software libre)
 
Presentación Docker
Presentación DockerPresentación Docker
Presentación Docker
 
Docker en el entorno de desarrollo
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrollo
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Diego loaiza cuadro conparativo entre windows, mac os y linux
Diego loaiza cuadro conparativo  entre windows, mac os y linuxDiego loaiza cuadro conparativo  entre windows, mac os y linux
Diego loaiza cuadro conparativo entre windows, mac os y linux
 
Open Solaris Multimedia
Open Solaris MultimediaOpen Solaris Multimedia
Open Solaris Multimedia
 
Como instalar unix ...lili
Como instalar unix ...liliComo instalar unix ...lili
Como instalar unix ...lili
 
9. 10 distrubuciones linux (falta)
9.  10 distrubuciones linux (falta)9.  10 distrubuciones linux (falta)
9. 10 distrubuciones linux (falta)
 
9. 10 distrubuciones linux (falta)
9.  10 distrubuciones linux (falta)9.  10 distrubuciones linux (falta)
9. 10 distrubuciones linux (falta)
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Mary cervantes
Mary cervantesMary cervantes
Mary cervantes
 
Resumen investigación tesina gnu linux
Resumen investigación tesina gnu linuxResumen investigación tesina gnu linux
Resumen investigación tesina gnu linux
 
Genesis campos
Genesis camposGenesis campos
Genesis campos
 
Miranda castillo UNIX
Miranda castillo UNIXMiranda castillo UNIX
Miranda castillo UNIX
 
Ambar galeas
Ambar galeasAmbar galeas
Ambar galeas
 
Sistema linux
Sistema linuxSistema linux
Sistema linux
 
Julissa
JulissaJulissa
Julissa
 

Más de Mauro Parra-Miranda

Más de Mauro Parra-Miranda (20)

Configuraciones inseguras
Configuraciones insegurasConfiguraciones inseguras
Configuraciones inseguras
 
Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101
 
¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?
 
Startuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en españolStartuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en español
 
Usando azure para escalar tu producto
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu producto
 
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic BeanstalkAWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk
 
Fractura Sismo
Fractura SismoFractura Sismo
Fractura Sismo
 
Del startup al negocio, the missing manual
Del startup al negocio, the missing manualDel startup al negocio, the missing manual
Del startup al negocio, the missing manual
 
AppHack GDL 2013
AppHack GDL 2013AppHack GDL 2013
AppHack GDL 2013
 
Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013
 
NodeJS @ ACS
NodeJS @ ACSNodeJS @ ACS
NodeJS @ ACS
 
Alloy Preview
Alloy PreviewAlloy Preview
Alloy Preview
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con Phonegap
 
Mercado de Móviles: Una visión global
Mercado de Móviles: Una visión globalMercado de Móviles: Una visión global
Mercado de Móviles: Una visión global
 
Economía de las Apps
Economía de las AppsEconomía de las Apps
Economía de las Apps
 
Mobileads
MobileadsMobileads
Mobileads
 
Frameworks iOS
Frameworks iOSFrameworks iOS
Frameworks iOS
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
 
Moviles
MovilesMoviles
Moviles
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (11)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 

Open Build Service

  • 1. open build service Mauro Parra-Miranda mauro@masutostudios.com 1
  • 2. ¿Qué es? • Servicio público para ayudar a los desarrolladores a distribuir su software. • Novell/SUSE proporciona una granja de compilación con todos los sistemas soportados configurados y listos. • Genera paquetes para múltiples distribuciones, tales como openSUSE, Ubuntu, Mandrake, Fedora. 2
  • 3. ¿Qué es? • Soporta múltiples arquitecturas: ix86, ix86_64, PPC; en un futuro para ARM. • Un solo RPM spec genera paquetes para todas las distribuciones que se desee, incluyendo ubuntu, que usa paquetes “.deb”. • Genera automagicamente un canal de distribución de software. Algo como: http://software.opensuse.org/yourproject 3
  • 4. ¿Qué es? • Los usuarios pueden buscar la última versión del software que necesitan, via http://software.opensuse.org • Acceso a compañias externas a dar soporte fácilmente a linux (proveer repositorios para cada proyecto de las compañias, con su respectivo repositorio e incluso sus propias dependencias). 4
  • 5. ¿Qué es? • Permite el desarrollo en equipo. • La granja compilara todos tus proyectos tan seguido como los cambies, pero si requieres hacer pruebas rápidas, puedes realizar la compilación (y el paquete) en tu propia estación, con un minimo de esfuerzo y un minimo de paquetes instalados (prácticamente, solo hay que instalar osc). 5
  • 6. ¿Qué es? • Obtener parches y aplicaciones para distribuciones con versiones viejas (o la habilidad de compilar alguna versión más reciente tu mismo, sin dolor). • Más info en el video: http://en.opensuse.org/BSVideo 6
  • 7. Ventajas • No necesidad de granjas de compilación o múltiples máquinas soportadas o configuraciones. • Resolución de dependencias automatica, con su respectiva compilación si es necesario (por ejemplo, si alguna de las dependencias de paquete foo se actualizaran, el paquete foo se vuelve a compilar con la nueva dependencia). 7
  • 8. Ventajas • Ligas a otros proyectos, por lo que puedes reutilizar los paquetes que haya hecho alguien más. Por ejemplo, ustedes generaron un parche para banshee, que quieren probar. No tienen que hacer el paquete de cero, sino que ligan al paquete banshee del proyecto, y encima de eso hacen modificaciones. Asi, siempre tendran las versiones más frescas. 8
  • 9. Ventajas • Se puede compilar y distribuir para: SUSE Debian Redhat Mandriva Linux Ubuntu • Con soporte para ix86, x86_64, PPC, ARM. Con posible soporte para z390x, ia64. 9
  • 10. RPM spec • Comentarios - Ignorados por RPM. • Tags - Definir datos. • Scripts - Conjunto de comandos a ejecutar. • Macros - Abreviación para múltiples comandos a ejecutar. • %files - La lista de archivos en el RPM • Directivas - modificadoras de archivos. 10
  • 11. RPM spec • Condicionales - if’s a nivel de arquitectura o sistema operativo. 11
  • 12. RPM spec • Comentarios # This is the spec file for playmidi 2.3... 12
  • 13. RPM spec • Tags <something>:<something-else> Vendor: Masuto Studios Name: Foo Version: 1.2 Release: 6 %description This software does something Summary: This software does something. Copyright: GPL 13
  • 14. RPM spec • Tags URL: http://www.masutostudios.com Group: Applications/Editors Packager: Mauro Parra-Miranda <mauro@masutostudios.com> 14
  • 15. RPM spec • Dependencias Provides: evolution Requires: glibc Conflicts: evolution-1 AutoReqProv: no ExcludeArch: sparc alpha Prefix: /opt BuildRoot: /tmp/cdplayer 15
  • 16. RPM spec • Source: ftp://ftp.gnomovision.com/pub/ cdplayer-1.0.tgz Source1: Fooobar.tar.gz Patch: foo.patch Patch1: bar.patch 16
  • 17. Tareas del RPM • Desempacar los fuentes • Aplicar parches • Compilar el software • Instalar el software • Empaquetar • Limpiar 17
  • 18. Filosofia de RPM • Comenzar con código fuente pristino. • Aplicar parches sucesivos • Compilar la versión parchada. 18
  • 19. Script %prep • Corre antes que cualquier cosa, usualmente crea los directorios, desempaca el código fuente, aplica parches, aplica cualquier tipo de operaciones para poder generar el código fuente a compilar, como cualquier desarrolladfor haria. 19
  • 20. Script %build • Corre después de %prep, usualmente solo implica un: make o similar. 20
  • 21. Script %install • Primero intenta correr un: make install uno después puede añadir cualquier otra cosa que se requiera, como un theme o branding, que en ocasiones no se requiere para compilar. 21
  • 22. Script %clean • Limpiar el sitio de trabajo :-) • rm -rf $RPM_BUILD_ROOT 22
  • 23. Otros scripts interesantes • %pre - corre antes que se instale el RPM • %post - corre despues que se instale el RPM (normalmente para correr ldconfig). • %preun - igual que %pre, pero se corre antes de desinstalar el RPM • %postun - igual que %post, pero se corre despues de desinstalar el RPM 23
  • 24. Scripts comunes • %setup - desempaqueta los fuentes, revisa permisos, se puede indicar el orden en el cual se desempaquetan los fuentes. • %patch - permite aplicar uno o tal parche en los fuentes. 24
  • 25. %files • Indica que archivos deben ser incluidos, incluye manuales, graficas, etc. • Puede uno usar %doc para indicar que es documento, %config es para indicar que es un archivo de configuracion que se debe guardar aun despues de borrado el paquete. • %attr (mode, user, group) file, como: (755,root,root) 25
  • 26. %files • %dir - indica que algo es un directorio. 26
  • 27. Subpaquetes • %package hace posible hacer mas de un paquete con un mismo SPEC; muchos lo usan para hacer subpaquetes, como los que contienen la documentación y similar. %package -n doc Lo cual hace un subpaquete foo-doc 27
  • 28. Prozilla 28
  • 29. Prozilla 29
  • 30. Prozilla 30
  • 31. Prozilla 31
  • 32. Prozilla 32
  • 33. obs - web 33
  • 34. obs - web 34
  • 35. obs - web 35
  • 36. obs - web 36
  • 37. obs - web 37
  • 38. Links • http://build.opensuse.org • http://en.opensuse.org/Build_Service • Build Service Book - https://build.opensuse.org/documentation/obs/index.html • osc (cli) - http://en.opensuse.org/Build_Service/CLI • Max RPM - http://www.rpm.org/max-rpm • http://masutostudios.com/ciencias09/obs.pdf 38