Compilation pour EOLE 2.5¶
Un problème de compilation sur Ubuntu Trusty nous oblige a utiliser un contournement (#12734).
Construction des paquets¶
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
moi@work:~/src/e2guardian/repo (dist/eole/2.6.2/master>)$ gbp dch -a -D eole-2.6-unstable --debian-branch=dist/eole/2.6.2/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/eole/2.6.2/master *>)$ git add debian/changelog moi@work:~/src/e2guardian/repo (dist/eole/2.6.2/master +>)$ git commit -m "Update debian/changelog for package $(dpkg-parsechangelog -SVersion)"
- Créer le paquet source
- Télécharger le fichier
.orig.tar.gz
dans le répertoire parentmoi@work:~/src/e2guardian/repo (dist/eole/2.6.2/master >)$ wget -P ../ http://eole.ac-dijon.fr/eole/pool/main/e/e2guardian/e2guardian_$(dpkg-parsechangelog -SVersion | sed -e 's,-.*,,').orig.tar.gz
- Construire le paquet source
moi@work:~/src/e2guardian/repo (dist/eole/2.6.2/master >)$ dpkg-buildpackage -nc -d -S
- Télécharger le fichier
Construction des paquets binaires¶
- Pour EOLE 2.5, la construction se fait sur un Debian Wheezy.
- Pour EOLE 2.6, la construction se fait sur une
aca.eolebase instance-default
Sur la machine de construction, pour chaque architecture, faire les opérations suivantes :
- Installer les dépendances minimales
eole@server:~/e2guardian-X.Y.Z$ sudo apt-get install build-essential fakeroot dctrl-tools
- Copier le paquet source sur la machine de compilation: le fichier
.dsc
et tous les fichiers listés par celui-ci (SectionFiles:
du fichier.dsc
) - Décompacter le paquet source et se positionner dans le répertoire:
eole@server:~$ 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_X.Y.Z-D.dsc dpkg-source: info: extraction de e2guardian dans e2guardian-X.Y.Z dpkg-source: info: extraction de e2guardian_X.Y.Z.orig.tar.gz dpkg-source: info: extraction de e2guardian_X.Y.Z-D.debian.tar.xz dpkg-source: info: mise en place de 0001-Support-of-one-log-file-per-e2-instance.patch eole@server:~$ cd e2guardian-* eole@server:~/e2guardian-X.Y.Z$
- Installer les dépendances de compilation → voir
debian/control
eole@server:~/e2guardian-X.Y.Z$ sudo apt-get install $(grep-dctrl -S e2guardian -ns Build-Depends debian/control | tr -d '\n ' | sed -e 's/,/ /g; s,([^)]*),,g; s,$,\n,')
- Modifier les fichiers d’entête afin d’augmenter
FD_SETSIZE
eole@server:~/e2guardian-X.Y.Z$ rgrep -l 'FD_SETSIZE[[:space:]]*[[:digit:]]' /usr/include/ | sudo xargs sed -i -E 's,(FD_SETSIZE[[:space:]]+)[[:digit:]]+,\165535,'
- Compiler le paquet binaire pour l’architecture courante
eole@server:~/e2guardian-X.Y.Z$ dpkg-buildpackage -B -uc
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 paquet source en dernier
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
buildd@pollux:~$ mkdir temp buildd@pollux:~$ cd temp
- Envoies les fichiers sur
buildd@pollux.eole.lan
eole@server:~/e2guardian-X.Y.Z$ scp ../*.changes ../*.deb buildd@pollux.eole.lan:temp/
- Signer le paquet binaire
buildd@pollux:~/temp$ debsign -kbuildd@listeseole.ac-dijon.fr *.changes
- Envoyer le paquet sur le dépôt Debian d’EOLE
buildd@pollux:~/temp$ dput eole *.changes
- Nettoyer le répertoire
buildd@pollux:~/temp$ rm -f *
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 (SectionFiles:
du fichier.dsc
) - Signer le paquet source
buildd@pollux:~/temp$ debsign -kbuildd@listeseole.ac-dijon.fr *.changes
- Envoyer le paquet sur le dépôt Debian d’EOLE
buildd@pollux:~/temp$ dput eole *.changes
- Nettoyer le répertoire
buildd@pollux:~/temp$ cd buildd@pollux:~$ rm -rf temp/