Projet

Général

Profil

Wiki » Historique » Version 5

Version 4 (Daniel Dehennin, 20/01/2016 12:23) → Version 5/7 (Daniel Dehennin, 05/12/2016 15:26)

{{toc}}

h1. Compilation pour EOLE 2.5

Un problème de compilation sur Ubuntu Trusty nous oblige a utiliser un contournement (#12734).

h2. Construction des paquets

h3. Construction du paquet source

Sur votre machine de développement:

# Tout préparer pour que la branche de packaging soit prête
# Mettre à jour le fichier *@debian/changelog@*
## Ajouter une entrée à la main (déconseillé)
## Utiliser *@git-buildpackage@*
<pre>
moi@work:~/src/e2guardian/repo (dist/eole2.5/master>)$ gbp dch -a -D eole-2.5-unstable --debian-branch=dist/eole/2.5/master
gbp:info: Found tag for topmost changelog version 'XXXX...'
gbp:info: Continuing from commit 'XXXX...'
libdistro-info-perl is not installed, Debian release names are not known.
libdistro-info-perl is not installed, Ubuntu release names are not known.
libdistro-info-perl is not installed, Debian release names are not known.
libdistro-info-perl is not installed, Ubuntu release names are not known.
debchange warning: Unable to determine Debian's backport distributions.
debchange warning: Recognised distributions are: unstable, testing, stable,
oldstable, experimental, {testing-,stable-,oldstable-,}proposed-updates,
{testing,stable,oldstable}-security and UNRELEASED.
Using your request anyway.
debchange: Did you see that warning? Press RETURN to continue...

moi@work:~/src/e2guardian/repo (dist/eole2.5/master *>)$ git add debian/changelog
moi@work:~/src/e2guardian/repo (dist/eole2.5/master +>)$ git commit -m "Update debian/changelog for package $(dpkg-parsechangelog -SVersion)"
</pre>
# Créer le paquet source
## Télécharger le fichier *@.orig.tar.gz@* dans le répertoire parent
<pre>
moi@work:~/src/e2guardian/repo (dist/eole2.5/master >)$ wget -P ../ http://eole.ac-dijon.fr/eole/pool/main/e/e2guardian/e2guardian_$(dpkg-parsechangelog -SVersion | sed -e 's,-.*,,').orig.tar.gz
</pre>
## Construire le paquet source
<pre>
moi@work:~/src/e2guardian/repo (dist/eole2.5/master >)$ dpkg-buildpackage -nc -d -S
</pre>

h3. Construction des paquets binaires

Sur une Debian Wheezy pour chaque architecture, faire les opérations suivantes:

# Installer les dépendances minimales
<pre>
eole@wheezy:~/e2guardian-3.2.0$ sudo apt-get install build-essential fakeroot
</pre>
# Copier le paquet source sur la machine de compilation: le fichier *@.dsc@* et tous les fichiers listés par celui-ci (Section *@Files:@* du fichier *@.dsc@*)
# Décompacter le paquet source et se positionner dans le répertoire:
<pre>
eole@wheezy:~$ dpkg-source -x *.dsc
gpgv: ressource de bloc de clef « /home/eole/.gnupg/trustedkeys.gpg » : erreur d'ouverture de fichier
gpgv: Signature faite le mer. 20 janv. 2016 11:24:15 CET avec la clef DSA d'identifiant F562870C
gpgv: Impossible de vérifier la signature : clef publique introuvable
dpkg-source: avertissement: impossible de vérifier la signature sur ./e2guardian_3.2.0-3.dsc
dpkg-source: info: extraction de e2guardian dans e2guardian-3.2.0
dpkg-source: info: extraction de e2guardian_3.2.0.orig.tar.gz
dpkg-source: info: extraction de e2guardian_3.2.0-3.debian.tar.xz
dpkg-source: info: mise en place de 0001-Support-of-one-log-file-per-e2-instance.patch

eole@wheezy:~$ cd e2guardian-*
eole@wheezy:~/e2guardian-3.2.0$
</pre>
# Installer les dépendances de compilation → voir *@debian/control@*
# Modifier les fichiers d’entête afin d’augmenter *@FD_SETSIZE@*
<pre>
eole@wheezy:~/e2guardian-3.2.0$ rgrep -l 'FD_SETSIZE[[:space:]]*[[:digit:]]' /usr/include/ | sudo xargs sed -i -E 's,(FD_SETSIZE[[:space:]]+)[[:digit:]]+,\18192,'
</pre>
# Compiler le paquet binaire pour l’architecture courante
<pre>
eole@wheezy:~/e2guardian-3.2.0$ dpkg-buildpackage -B -uc
</pre>

h2. Envoi des paquets sur le dépôt Debian

Afin d’outre passer la compilation automatique EOLE, il faut :

# Envoyer les paquets binaires en premier
# Envoyer le paquets pqauets source en dernier

h3. Paquets binaires

Il faut signer le fichier *@.changes@* par l’utilisateur de compilation (*@buildd@pollux.eole.lan@*):

# Créer un répertoire temporaire sur *@pollux@*
<pre>
buildd@pollux:~$ mkdir temp
buildd@pollux:~$ cd temp
</pre>
# Envoies les fichiers sur *@buildd@pollux.eole.lan@*
<pre>
eole@wheezy:~/e2guardian-3.2.0$ scp ../*.changes ../*.deb buildd@pollux.eole.lan:temp/
</pre>
# Signer le paquet binaire
<pre>
buildd@pollux:~/temp$ debsign -kbuildd@listeseole.ac-dijon.fr *.changes
</pre>
# Envoyer le paquet sur le dépôt Debian d’EOLE
<pre>
buildd@pollux:~/temp$ dput eole *.changes
</pre>
# Nettoyer le répertoire
<pre>
buildd@pollux:~/temp$ rm -f *
</pre>

h3. Paquet source

Il faut signer le fichier *@_source.changes@* par l’utilisateur de compilation (*@buildd@pollux.eole.lan@*):
# Envoies les fichiers sur *@buildd@pollux.eole.lan@:temp/* : les fichier *@_source.changes@*, *@.dsc@* et tous les fichiers listés par ce dernier (Section *@Files:@* du fichier *@.dsc@*)
# Signer le paquet source
<pre>
buildd@pollux:~/temp$ debsign -kbuildd@listeseole.ac-dijon.fr *.changes
</pre>
# Envoyer le paquet sur le dépôt Debian d’EOLE
<pre>
buildd@pollux:~/temp$ dput eole *.changes
</pre>
# Nettoyer le répertoire
<pre>
buildd@pollux:~/temp$ cd
buildd@pollux:~$ rm -rf temp/
</pre>