Projet

Général

Profil

Wiki » Historique » Version 7

Daniel Dehennin, 10/05/2017 15:45

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