Joan (discussió | contribucions)
Joan (discussió | contribucions)
Cap resum de modificació
Línia 8: Línia 8:
El primer pas és obtenir una copia actualitzada del codi que es troba en el servidor SVN (svn.cadt.com).
El primer pas és obtenir una copia actualitzada del codi que es troba en el servidor SVN (svn.cadt.com).


Això es pot fer des de sapo-builder@containers.cadt.com invocant l'script:
Això es pot fer des de sapo-builder@containers.cadt.com invocant l'script de perl :
<pre>
<pre>
~/scripts/sapo_checkout.pl <sapo_release>
~/scripts/sapo_checkout.pl <sapo_release>
Línia 37: Línia 37:
===== Compilació =====
===== Compilació =====


Un cop obtinguts el codi de tots els paquets i les seves dependències es procedeix a la compilació
Un cop obtinguts el codi de tots els paquets i les seves dependències es procedeix a la compilació.
 
 
A diferència del pas anterior, aquest pas s'ha de repetir per cada arquitectura cosa que en el nostre cas
implica fer un ssh a cada un dels containers següents per obtenir el sapo per totes les versions de linux que soporta:
 
** centos3_devel (host:containers.cadt.com port:2203)
 
** centos6_devel (host:containers.cadt.com port:2206)
 
** centos7_devel (host:containers.cadt.com port:2207)
 
Per la compilació,  s'utilitza un script de bash enlloc de perl , ja que gairabé tot el processat de dades ja ha estat fet en el pas anterior
i ara només s'ha de anar invocant el make per cada un dels elements de la llista guardada en el fitxer build.csv .
 
 
l'script responsable de la compilació s'invoca normalment de la següent manera:
 
<pre>
~/scripts/sapo_build <sapo_release> >/tmp/build.log 2>&1
</pre>
 
Aquest script procedeix de la següent manera per processar cada linia:
 
** entra al directori base de la versio del paquet/llibreria
** compila el programa executant: 'make'
** si és una llibreria l'instal.la executant: 'make install'
** si és un paquet :
*** executa 'make program'
*** executa 'make notes' en cas que sigui necessari
*** executa 'make rpm' per generar el paquet, a menys que s'hagi desactivat amb l'opció 'nopkg' al fitxer .list corresponent
 
==== Copia al repositori =====
 
<pre>
~/scripts/sapo_build <sapo_release> <arch>
</pre>

Revisió del 17:51, 21 des 2016


Sistema de compilació automatitzat del SAPO

Pasos

Actualització/obtenció del codi

El primer pas és obtenir una copia actualitzada del codi que es troba en el servidor SVN (svn.cadt.com).

Això es pot fer des de sapo-builder@containers.cadt.com invocant l'script de perl :

~/scripts/sapo_checkout.pl <sapo_release>

On <sapo_release> es la versió del sapo.

L'script procedeix de la següent manera:

    • descarrega/actualtiza ~/svn/Make.rules
    • crea el directori ~/svn/sapo si no existeix
    • actualitza/descarrega svn://svn.cadt.com/sapo-<sapo_release> a ~/svn/sapo/<sapo_release>
    • llegeix els fitxers de paquets (*.list) per totes les arquitectures que es troben a: ~/svn/sapo/<sapo_release>/programs/
    • descarrega/actualitza tots els paquets del SVN ,però només la versió indicada
    • inicialitza la llista de dependencies no resoltes a partir dels fitxers lib_versions.dep obtinguts del directori base de la versió del paquet que es vol compilar
    • descarrega/actualitza les llibreries necessaries per resoldre les dependències fins que s'han resolt totes les dependencies o no pot obtenir les llibreries necessaries del SVN
    • verifica que no hi hagin dependències circulars i genera la seqüència en que s'han de compilar i opcionalment instal·lar els diferents paquets i llibreries.
    • per cada arquitectura genera un fitxer que conté la seqüència de pasos per fer la compilació i el guarda a ~/svn/sapo/<sapo_release>/programs/<arch>/build.csv
Compilació

Un cop obtinguts el codi de tots els paquets i les seves dependències es procedeix a la compilació.


A diferència del pas anterior, aquest pas s'ha de repetir per cada arquitectura cosa que en el nostre cas implica fer un ssh a cada un dels containers següents per obtenir el sapo per totes les versions de linux que soporta:

    • centos3_devel (host:containers.cadt.com port:2203)
    • centos6_devel (host:containers.cadt.com port:2206)
    • centos7_devel (host:containers.cadt.com port:2207)

Per la compilació, s'utilitza un script de bash enlloc de perl , ja que gairabé tot el processat de dades ja ha estat fet en el pas anterior i ara només s'ha de anar invocant el make per cada un dels elements de la llista guardada en el fitxer build.csv .


l'script responsable de la compilació s'invoca normalment de la següent manera:

~/scripts/sapo_build <sapo_release> >/tmp/build.log 2>&1

Aquest script procedeix de la següent manera per processar cada linia:

    • entra al directori base de la versio del paquet/llibreria
    • compila el programa executant: 'make'
    • si és una llibreria l'instal.la executant: 'make install'
    • si és un paquet :
      • executa 'make program'
      • executa 'make notes' en cas que sigui necessari
      • executa 'make rpm' per generar el paquet, a menys que s'hagi desactivat amb l'opció 'nopkg' al fitxer .list corresponent

Copia al repositori =

~/scripts/sapo_build <sapo_release> <arch>