Projet

Général

Profil

Wiki » Historique » Version 1

Daniel Dehennin, 20/01/2016 12:18
Procédure de compilation spécifique

1 1 Daniel Dehennin
{{toc}}
2 1 Daniel Dehennin
3 1 Daniel Dehennin
h1. Compilation pour EOLE 2.5
4 1 Daniel Dehennin
5 1 Daniel Dehennin
Un problème de compilation sur Ubuntu Trusty nous oblige a utiliser un contournement (#12734).
6 1 Daniel Dehennin
7 1 Daniel Dehennin
h2. Construction du paquet source
8 1 Daniel Dehennin
9 1 Daniel Dehennin
Sur votre machine de développement:
10 1 Daniel Dehennin
11 1 Daniel Dehennin
# Tout préparer pour que la branche de packaging soit prête
12 1 Daniel Dehennin
# Mettre à jour le fichier *@debian/changelog@*
13 1 Daniel Dehennin
## Ajouter une entrée à la main (déconseillé)
14 1 Daniel Dehennin
## Utiliser *@git-buildpackage@*
15 1 Daniel Dehennin
<pre>
16 1 Daniel Dehennin
moi@work:~/src/e2guardian/repo (dist/eole2.5/master>)$ gbp dch -a -D eole-2.5-unstable --debian-branch=dist/eole/2.5/master
17 1 Daniel Dehennin
gbp:info: Found tag for topmost changelog version 'XXXX...'
18 1 Daniel Dehennin
gbp:info: Continuing from commit 'XXXX...'
19 1 Daniel Dehennin
libdistro-info-perl is not installed, Debian release names are not known.
20 1 Daniel Dehennin
libdistro-info-perl is not installed, Ubuntu release names are not known.
21 1 Daniel Dehennin
libdistro-info-perl is not installed, Debian release names are not known.
22 1 Daniel Dehennin
libdistro-info-perl is not installed, Ubuntu release names are not known.
23 1 Daniel Dehennin
debchange warning: Unable to determine Debian's backport distributions.
24 1 Daniel Dehennin
debchange warning: Recognised distributions are: unstable, testing, stable,
25 1 Daniel Dehennin
oldstable, experimental, {testing-,stable-,oldstable-,}proposed-updates,
26 1 Daniel Dehennin
{testing,stable,oldstable}-security and UNRELEASED.
27 1 Daniel Dehennin
Using your request anyway.
28 1 Daniel Dehennin
debchange: Did you see that warning?  Press RETURN to continue...
29 1 Daniel Dehennin
30 1 Daniel Dehennin
moi@work:~/src/e2guardian/repo (dist/eole2.5/master *>)$ git add debian/changelog
31 1 Daniel Dehennin
moi@work:~/src/e2guardian/repo (dist/eole2.5/master +>)$ git commit -m "Update debian/changelog for package $(dpkg-parsechangelog -SVersion)"
32 1 Daniel Dehennin
</pre>
33 1 Daniel Dehennin
# Créer le paquet source
34 1 Daniel Dehennin
## Télécharger le fichier *@.orig.tar.gz@* dans le répertoire parent
35 1 Daniel Dehennin
<pre>
36 1 Daniel Dehennin
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
37 1 Daniel Dehennin
</pre>
38 1 Daniel Dehennin
## Construire le paquet source
39 1 Daniel Dehennin
<pre>
40 1 Daniel Dehennin
moi@work:~/src/e2guardian/repo (dist/eole2.5/master >)$ dpkg-buildpackage -nc -d -S
41 1 Daniel Dehennin
</pre>
42 1 Daniel Dehennin
43 1 Daniel Dehennin
44 1 Daniel Dehennin
h2. Construction des paquets binaires
45 1 Daniel Dehennin
46 1 Daniel Dehennin
Sur une Debian Wheezy pour chaque architecture, faire les opérations suivantes:
47 1 Daniel Dehennin
48 1 Daniel Dehennin
# 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@*)
49 1 Daniel Dehennin
# Décompacter le paquet source et se positionner dans le répertoire:
50 1 Daniel Dehennin
<pre>
51 1 Daniel Dehennin
eole@wheezy:~$ dpkg-source -x *.dsc
52 1 Daniel Dehennin
gpgv: ressource de bloc de clef « /home/eole/.gnupg/trustedkeys.gpg » : erreur d'ouverture de fichier
53 1 Daniel Dehennin
gpgv: Signature faite le mer. 20 janv. 2016 11:24:15 CET avec la clef DSA d'identifiant F562870C
54 1 Daniel Dehennin
gpgv: Impossible de vérifier la signature : clef publique introuvable
55 1 Daniel Dehennin
dpkg-source: avertissement: impossible de vérifier la signature sur ./e2guardian_3.2.0-3.dsc
56 1 Daniel Dehennin
dpkg-source: info: extraction de e2guardian dans e2guardian-3.2.0
57 1 Daniel Dehennin
dpkg-source: info: extraction de e2guardian_3.2.0.orig.tar.gz
58 1 Daniel Dehennin
dpkg-source: info: extraction de e2guardian_3.2.0-3.debian.tar.xz
59 1 Daniel Dehennin
dpkg-source: info: mise en place de 0001-Support-of-one-log-file-per-e2-instance.patch
60 1 Daniel Dehennin
61 1 Daniel Dehennin
eole@wheezy:~$ cd e2guardian-*
62 1 Daniel Dehennin
eole@wheezy:~/e2guardian-3.2.0$ 
63 1 Daniel Dehennin
</pre>
64 1 Daniel Dehennin
# Installer les dépendances minimales
65 1 Daniel Dehennin
<pre>
66 1 Daniel Dehennin
eole@wheezy:~/e2guardian-3.2.0$ sudo apt-get install build-essential fakeroot
67 1 Daniel Dehennin
</pre>
68 1 Daniel Dehennin
# Installer les dépendances de compilation → voir *@debian/control@*
69 1 Daniel Dehennin
# Modifier les fichiers d’entête afin d’augmenter *@FD_SETSIZE@*
70 1 Daniel Dehennin
<pre>
71 1 Daniel Dehennin
eole@wheezy:~/e2guardian-3.2.0$ rgrep -l 'FD_SETSIZE[[:space:]]*[[:digit:]]' /usr/include/ | sudo xargs sed -E 's,(FD_SETSIZE[[:space:]]+)[[:digit:]]+,\18192,'
72 1 Daniel Dehennin
</pre>
73 1 Daniel Dehennin
# Compiler le paquet binaire pour l’architecture courante
74 1 Daniel Dehennin
<pre>
75 1 Daniel Dehennin
eole@wheezy:~/e2guardian-3.2.0$ dpkg-buildpackage -B -uc
76 1 Daniel Dehennin
</pre>
77 1 Daniel Dehennin
78 1 Daniel Dehennin
h2. Envoi des paquets sur le dépôt Debian
79 1 Daniel Dehennin
80 1 Daniel Dehennin
Afin d’outre passer la compilation automatique EOLE, il faut :
81 1 Daniel Dehennin
82 1 Daniel Dehennin
# Envoyer les paquets binaires en premier
83 1 Daniel Dehennin
# Envoyer le pqauets source en dernier
84 1 Daniel Dehennin
85 1 Daniel Dehennin
h3. Paquets binaires
86 1 Daniel Dehennin
87 1 Daniel Dehennin
Il faut signer le fichier *@.changes@* par l’utilisateur de compilation (*@buildd@pollux.eole.lan@*):
88 1 Daniel Dehennin
89 1 Daniel Dehennin
# Créer un répertoire temporaire sur *@pollux@*
90 1 Daniel Dehennin
<pre>
91 1 Daniel Dehennin
buildd@pollux:~$ mkdir temp
92 1 Daniel Dehennin
buildd@pollux:~$ cd temp
93 1 Daniel Dehennin
</pre>
94 1 Daniel Dehennin
# Envoies les fichiers sur *@buildd@pollux.eole.lan@*
95 1 Daniel Dehennin
<pre>
96 1 Daniel Dehennin
eole@wheezy:~/e2guardian-3.2.0$ scp ../*.changes ../*.deb buildd@pollux.eole.lan:temp/
97 1 Daniel Dehennin
</pre>
98 1 Daniel Dehennin
# Signer le paquet binaire
99 1 Daniel Dehennin
<pre>
100 1 Daniel Dehennin
buildd@pollux:~/temp$ debsign -kbuildd@listeseole.ac-dijon.fr *.changes
101 1 Daniel Dehennin
</pre>
102 1 Daniel Dehennin
# Envoyer le paquet sur le dépôt Debian d’EOLE
103 1 Daniel Dehennin
<pre>
104 1 Daniel Dehennin
buildd@pollux:~/temp$ dput eole *.changes
105 1 Daniel Dehennin
</pre>
106 1 Daniel Dehennin
# Nettoyer le répertoire
107 1 Daniel Dehennin
<pre>
108 1 Daniel Dehennin
buildd@pollux:~/temp$ rm -f *
109 1 Daniel Dehennin
</pre>
110 1 Daniel Dehennin
111 1 Daniel Dehennin
h3. Paquet source
112 1 Daniel Dehennin
113 1 Daniel Dehennin
Il faut signer le fichier *@_source.changes@* par l’utilisateur de compilation (*@buildd@pollux.eole.lan@*):
114 1 Daniel Dehennin
# 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@*)
115 1 Daniel Dehennin
# Signer le paquet source
116 1 Daniel Dehennin
<pre>
117 1 Daniel Dehennin
buildd@pollux:~/temp$ debsign -kbuildd@listeseole.ac-dijon.fr *.changes
118 1 Daniel Dehennin
</pre>
119 1 Daniel Dehennin
# Envoyer le paquet sur le dépôt Debian d’EOLE
120 1 Daniel Dehennin
<pre>
121 1 Daniel Dehennin
buildd@pollux:~/temp$ dput eole *.changes
122 1 Daniel Dehennin
</pre>
123 1 Daniel Dehennin
# Nettoyer le répertoire
124 1 Daniel Dehennin
<pre>
125 1 Daniel Dehennin
buildd@pollux:~/temp$ cd
126 1 Daniel Dehennin
buildd@pollux:~$ rm -rf temp/
127 1 Daniel Dehennin
</pre>