Open Build Service

Mauro Parra-Miranda
Mauro Parra-MirandaSoftware Developer at Appcelerator
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
1 of 39

Recommended

Kitsune documentation by
Kitsune documentationKitsune documentation
Kitsune documentationVerónica Díaz
319 views10 slides
02. que es linux 2017 by
02.  que es linux 201702.  que es linux 2017
02. que es linux 2017Carlos Antonio Leal Saballos
844 views37 slides
Install apps in ubuntu by
Install apps in ubuntuInstall apps in ubuntu
Install apps in ubuntuJuan Vladimir
66 views32 slides
Proyectos JAVA con maven by
Proyectos JAVA con mavenProyectos JAVA con maven
Proyectos JAVA con mavenJuan Vladimir
705 views31 slides
Capítulo 5 Instalación y configuración by
Capítulo 5 Instalación y configuraciónCapítulo 5 Instalación y configuración
Capítulo 5 Instalación y configuraciónDianaMendoza200
65 views32 slides
Linux for bioinformatics by
Linux for bioinformaticsLinux for bioinformatics
Linux for bioinformaticscursoNGS
2.6K views164 slides

More Related Content

What's hot

Vagrant y Docker - Guía práctica de uso by
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 usoSergio Zambrano Delfa
1.9K views62 slides
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet by
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 PuppetRichard Moya
6.9K views40 slides
Debian hecho david g.s.n by
Debian hecho david g.s.nDebian hecho david g.s.n
Debian hecho david g.s.naliat_so1
193 views6 slides
De desarrollo a producción usando docker by
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando dockerChristian Rodriguez
5.9K views74 slides
Software Libre en la Carrera de Ciencias de la Computacion by
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 ComputacionJuan Vladimir
312 views22 slides
Dbdeployer by
DbdeployerDbdeployer
DbdeployerGiuseppe Maxia
661 views44 slides

What's hot(17)

Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet by Richard Moya
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 Moya6.9K views
Debian hecho david g.s.n by aliat_so1
Debian hecho david g.s.nDebian hecho david g.s.n
Debian hecho david g.s.n
aliat_so1193 views
Software Libre en la Carrera de Ciencias de la Computacion by Juan Vladimir
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
Juan Vladimir312 views
A Strategy for Container Lifecycle Management by Edgardo Hames
A Strategy for Container Lifecycle ManagementA Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle Management
Edgardo Hames294 views
Comfusion4 by Kuboosoft
Comfusion4Comfusion4
Comfusion4
Kuboosoft1.8K views
Buildout: Crear y desplegar entornos reproducibles en Python by CodeSyntax
Buildout: Crear y desplegar entornos reproducibles en PythonBuildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en Python
CodeSyntax307 views
sistema operativo by jesus2028
sistema operativosistema operativo
sistema operativo
jesus2028302 views
10 distribuciones linux mas importantes y sus caracteristicas by karenhostmins
10 distribuciones linux mas importantes y sus caracteristicas10 distribuciones linux mas importantes y sus caracteristicas
10 distribuciones linux mas importantes y sus caracteristicas
karenhostmins293 views
Resumen capitulo5 by gavagarcia
Resumen capitulo5Resumen capitulo5
Resumen capitulo5
gavagarcia44 views
Algunas preguntas de Linux by Paupauheavy
Algunas preguntas de LinuxAlgunas preguntas de Linux
Algunas preguntas de Linux
Paupauheavy279 views

Viewers also liked

Horario Dos Profs Da Biblioteca by
Horario  Dos Profs Da BibliotecaHorario  Dos Profs Da Biblioteca
Horario Dos Profs Da Bibliotecabecreperafitablog
221 views1 slide
31450 by
3145031450
31450uploadpdfbooks
157 views102 slides
31084 by
3108431084
31084uploadpdfbooks
139 views50 slides
ApresentaçãO1 Eja by
ApresentaçãO1  EjaApresentaçãO1  Eja
ApresentaçãO1 Ejalenybandeira
213 views9 slides
HoráRio Das Turmas Pnl by
HoráRio Das Turmas  PnlHoráRio Das Turmas  Pnl
HoráRio Das Turmas Pnlbecreperafitablog
160 views2 slides

Similar to Open Build Service

Sistema operativo unix by
Sistema operativo unixSistema operativo unix
Sistema operativo unixJosé Chancoh
3.7K views128 slides
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno by
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 Modernowpargentina
1.2K views50 slides
Clase1(software libre) by
Clase1(software libre)Clase1(software libre)
Clase1(software libre)juanhuapaya
684 views41 slides
Presentación Docker by
Presentación DockerPresentación Docker
Presentación DockerGustavo Muslera
1.6K views9 slides
Docker en el entorno de desarrollo by
Docker en el entorno de desarrolloDocker en el entorno de desarrollo
Docker en el entorno de desarrolloAlejandro Hernández
564 views54 slides
Desarrollo de aplicaciones en la nube by
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDaniel Cruz
10.2K views24 slides

Similar to Open Build Service(20)

Sistema operativo unix by José Chancoh
Sistema operativo unixSistema operativo unix
Sistema operativo unix
José Chancoh3.7K views
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno by wpargentina
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
wpargentina1.2K views
Clase1(software libre) by juanhuapaya
Clase1(software libre)Clase1(software libre)
Clase1(software libre)
juanhuapaya684 views
Desarrollo de aplicaciones en la nube by Daniel Cruz
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
Daniel Cruz10.2K views
Open Solaris Multimedia by juandanielp
Open Solaris MultimediaOpen Solaris Multimedia
Open Solaris Multimedia
juandanielp427 views
Como instalar unix ...lili by jassley 2000
Como instalar unix ...liliComo instalar unix ...lili
Como instalar unix ...lili
jassley 2000151 views
9. 10 distrubuciones linux (falta) by Akashi Yuurei
9.  10 distrubuciones linux (falta)9.  10 distrubuciones linux (falta)
9. 10 distrubuciones linux (falta)
Akashi Yuurei224 views
9. 10 distrubuciones linux (falta) by Akashi Yuurei
9.  10 distrubuciones linux (falta)9.  10 distrubuciones linux (falta)
9. 10 distrubuciones linux (falta)
Akashi Yuurei161 views
Resumen investigación tesina gnu linux by crosbycarbajal
Resumen investigación tesina gnu linuxResumen investigación tesina gnu linux
Resumen investigación tesina gnu linux
crosbycarbajal1.2K views
Miranda castillo UNIX by miranda696
Miranda castillo UNIXMiranda castillo UNIX
Miranda castillo UNIX
miranda696463 views

More from Mauro Parra-Miranda

Configuraciones inseguras by
Configuraciones insegurasConfiguraciones inseguras
Configuraciones insegurasMauro Parra-Miranda
55 views10 slides
Cloudevel - Microsoft Azure - 101 by
Cloudevel - Microsoft Azure - 101Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Mauro Parra-Miranda
38 views46 slides
¿Cómo crear un dream team de ciberseguridad? by
¿Cómo crear un dream team de ciberseguridad?¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?Mauro Parra-Miranda
121 views14 slides
Startuplie - un ejercicio de sinceridad en español by
Startuplie - un ejercicio de sinceridad en españolStartuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en españolMauro Parra-Miranda
69 views28 slides
Usando azure para escalar tu producto by
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu productoMauro Parra-Miranda
77 views21 slides
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk by
AWS Summit Mexico City 2018 - Usando Elastic BeanstalkAWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic BeanstalkMauro Parra-Miranda
173 views13 slides

More from Mauro Parra-Miranda(20)

Startuplie - un ejercicio de sinceridad en español by Mauro Parra-Miranda
Startuplie - un ejercicio de sinceridad en españolStartuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en español
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk by Mauro Parra-Miranda
AWS Summit Mexico City 2018 - Usando Elastic BeanstalkAWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk
Cómo crear un dream team técnico - CPMX4 - 2013 by Mauro Parra-Miranda
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
Desarrollando Apps móviles con Titanium Studio by Mauro Parra-Miranda
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
Mauro Parra-Miranda1.9K views
Desarrollando Apps móviles con Titanium Studio by Mauro Parra-Miranda
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
Mauro Parra-Miranda2.9K views

Recently uploaded

Tecnologías para la enseñanza virtual.pptx by
Tecnologías para la enseñanza virtual.pptxTecnologías para la enseñanza virtual.pptx
Tecnologías para la enseñanza virtual.pptxexprosaavedra
14 views7 slides
Fundamentos de Electricidad y Electronica 9-3 (1).docx by
Fundamentos de Electricidad y Electronica 9-3 (1).docxFundamentos de Electricidad y Electronica 9-3 (1).docx
Fundamentos de Electricidad y Electronica 9-3 (1).docxSamuel709479
7 views26 slides
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx by
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptxDELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptxdavidsalazar63484
5 views6 slides
Dominios de internet.pdf by
Dominios de internet.pdfDominios de internet.pdf
Dominios de internet.pdfNahomiBanchen
12 views2 slides
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx by
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docxactividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docxMaraJos722801
5 views6 slides
proyecto lavadora.docx by
proyecto lavadora.docxproyecto lavadora.docx
proyecto lavadora.docxpaulavallejo21
11 views2 slides

Recently uploaded(20)

Tecnologías para la enseñanza virtual.pptx by exprosaavedra
Tecnologías para la enseñanza virtual.pptxTecnologías para la enseñanza virtual.pptx
Tecnologías para la enseñanza virtual.pptx
exprosaavedra14 views
Fundamentos de Electricidad y Electronica 9-3 (1).docx by Samuel709479
Fundamentos de Electricidad y Electronica 9-3 (1).docxFundamentos de Electricidad y Electronica 9-3 (1).docx
Fundamentos de Electricidad y Electronica 9-3 (1).docx
Samuel7094797 views
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx by davidsalazar63484
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptxDELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx
DELITOS INFORMATICOS EFRAIN CAMACHO 27462611 INFORMATICA III.pptx
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx by MaraJos722801
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docxactividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx
actividadanlisisdeartefactos1-230424222159-fef7d8f3 (1).docx
MaraJos7228015 views
Los principios de la Antropometria y Ergonomia.pdf by BenisBorges
Los principios de la Antropometria y Ergonomia.pdfLos principios de la Antropometria y Ergonomia.pdf
Los principios de la Antropometria y Ergonomia.pdf
BenisBorges6 views
TALLER DE ANÁLISIS DE ARTEFACTOS_.docx by DilanTabares
TALLER DE ANÁLISIS DE ARTEFACTOS_.docxTALLER DE ANÁLISIS DE ARTEFACTOS_.docx
TALLER DE ANÁLISIS DE ARTEFACTOS_.docx
DilanTabares6 views
Fundamentos de Electricidad y Electronica 9-3 (1).docx by Samuel709479
Fundamentos de Electricidad y Electronica 9-3 (1).docxFundamentos de Electricidad y Electronica 9-3 (1).docx
Fundamentos de Electricidad y Electronica 9-3 (1).docx
Samuel7094795 views
fundamentos de electricidad electronica by Kevin619029
fundamentos de electricidad electronicafundamentos de electricidad electronica
fundamentos de electricidad electronica
Kevin6190295 views
MVelazco_Internet, Origenes y Evolucion.pptx by al223915
MVelazco_Internet, Origenes  y Evolucion.pptxMVelazco_Internet, Origenes  y Evolucion.pptx
MVelazco_Internet, Origenes y Evolucion.pptx
al2239156 views
Tecnologías para la enseñanza virtual_cdc.pptx by CarmenerdelHuasco
Tecnologías para la enseñanza virtual_cdc.pptxTecnologías para la enseñanza virtual_cdc.pptx
Tecnologías para la enseñanza virtual_cdc.pptx
Tecnologías para la enseñanza virtual by mpachecocodem
Tecnologías para la enseñanza virtual Tecnologías para la enseñanza virtual
Tecnologías para la enseñanza virtual
mpachecocodem9 views
Fundamentos de electricidad y electrónica.docx by DilanTabares
Fundamentos de electricidad y electrónica.docxFundamentos de electricidad y electrónica.docx
Fundamentos de electricidad y electrónica.docx
DilanTabares5 views
Tarea15.pptx by illanlir
Tarea15.pptxTarea15.pptx
Tarea15.pptx
illanlir11 views

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