Projet

Général

Profil

Wiki » Historique » Version 3

Daniel Dehennin, 20/01/2016 12:22

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 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 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
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 1 Daniel Dehennin
moi@work:~/src/e2guardian/repo (dist/eole2.5/master *>)$ git add debian/changelog
33 1 Daniel Dehennin
moi@work:~/src/e2guardian/repo (dist/eole2.5/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 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
39 1 Daniel Dehennin
</pre>
40 1 Daniel Dehennin
## Construire le paquet source
41 1 Daniel Dehennin
<pre>
42 1 Daniel Dehennin
moi@work:~/src/e2guardian/repo (dist/eole2.5/master >)$ dpkg-buildpackage -nc -d -S
43 1 Daniel Dehennin
</pre>
44 1 Daniel Dehennin
45 2 Daniel Dehennin
h3. Construction des paquets binaires
46 1 Daniel Dehennin
47 1 Daniel Dehennin
Sur une Debian Wheezy pour chaque architecture, faire les opérations suivantes:
48 1 Daniel Dehennin
49 3 Daniel Dehennin
# Installer les dépendances minimales
50 3 Daniel Dehennin
<pre>
51 3 Daniel Dehennin
eole@wheezy:~/e2guardian-3.2.0$ sudo apt-get install build-essential fakeroot
52 3 Daniel Dehennin
</pre>
53 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@*)
54 1 Daniel Dehennin
# Décompacter le paquet source et se positionner dans le répertoire:
55 1 Daniel Dehennin
<pre>
56 1 Daniel Dehennin
eole@wheezy:~$ dpkg-source -x *.dsc
57 1 Daniel Dehennin
gpgv: ressource de bloc de clef « /home/eole/.gnupg/trustedkeys.gpg » : erreur d'ouverture de fichier
58 1 Daniel Dehennin
gpgv: Signature faite le mer. 20 janv. 2016 11:24:15 CET avec la clef DSA d'identifiant F562870C
59 1 Daniel Dehennin
gpgv: Impossible de vérifier la signature : clef publique introuvable
60 1 Daniel Dehennin
dpkg-source: avertissement: impossible de vérifier la signature sur ./e2guardian_3.2.0-3.dsc
61 1 Daniel Dehennin
dpkg-source: info: extraction de e2guardian dans e2guardian-3.2.0
62 1 Daniel Dehennin
dpkg-source: info: extraction de e2guardian_3.2.0.orig.tar.gz
63 1 Daniel Dehennin
dpkg-source: info: extraction de e2guardian_3.2.0-3.debian.tar.xz
64 1 Daniel Dehennin
dpkg-source: info: mise en place de 0001-Support-of-one-log-file-per-e2-instance.patch
65 1 Daniel Dehennin
66 1 Daniel Dehennin
eole@wheezy:~$ cd e2guardian-*
67 1 Daniel Dehennin
eole@wheezy:~/e2guardian-3.2.0$ 
68 1 Daniel Dehennin
</pre>
69 1 Daniel Dehennin
# Installer les dépendances de compilation → voir *@debian/control@*
70 1 Daniel Dehennin
# Modifier les fichiers d’entête afin d’augmenter *@FD_SETSIZE@*
71 1 Daniel Dehennin
<pre>
72 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,'
73 1 Daniel Dehennin
</pre>
74 1 Daniel Dehennin
# Compiler le paquet binaire pour l’architecture courante
75 1 Daniel Dehennin
<pre>
76 1 Daniel Dehennin
eole@wheezy:~/e2guardian-3.2.0$ dpkg-buildpackage -B -uc
77 1 Daniel Dehennin
</pre>
78 1 Daniel Dehennin
79 1 Daniel Dehennin
h2. Envoi des paquets sur le dépôt Debian
80 1 Daniel Dehennin
81 1 Daniel Dehennin
Afin d’outre passer la compilation automatique EOLE, il faut :
82 1 Daniel Dehennin
83 1 Daniel Dehennin
# Envoyer les paquets binaires en premier
84 1 Daniel Dehennin
# Envoyer le pqauets source en dernier
85 1 Daniel Dehennin
86 1 Daniel Dehennin
h3. Paquets binaires
87 1 Daniel Dehennin
88 1 Daniel Dehennin
Il faut signer le fichier *@.changes@* par l’utilisateur de compilation (*@buildd@pollux.eole.lan@*):
89 1 Daniel Dehennin
90 1 Daniel Dehennin
# Créer un répertoire temporaire sur *@pollux@*
91 1 Daniel Dehennin
<pre>
92 1 Daniel Dehennin
buildd@pollux:~$ mkdir temp
93 1 Daniel Dehennin
buildd@pollux:~$ cd temp
94 1 Daniel Dehennin
</pre>
95 1 Daniel Dehennin
# Envoies les fichiers sur *@buildd@pollux.eole.lan@*
96 1 Daniel Dehennin
<pre>
97 1 Daniel Dehennin
eole@wheezy:~/e2guardian-3.2.0$ scp ../*.changes ../*.deb buildd@pollux.eole.lan:temp/
98 1 Daniel Dehennin
</pre>
99 1 Daniel Dehennin
# Signer le paquet binaire
100 1 Daniel Dehennin
<pre>
101 1 Daniel Dehennin
buildd@pollux:~/temp$ debsign -kbuildd@listeseole.ac-dijon.fr *.changes
102 1 Daniel Dehennin
</pre>
103 1 Daniel Dehennin
# Envoyer le paquet sur le dépôt Debian d’EOLE
104 1 Daniel Dehennin
<pre>
105 1 Daniel Dehennin
buildd@pollux:~/temp$ dput eole *.changes
106 1 Daniel Dehennin
</pre>
107 1 Daniel Dehennin
# Nettoyer le répertoire
108 1 Daniel Dehennin
<pre>
109 1 Daniel Dehennin
buildd@pollux:~/temp$ rm -f *
110 1 Daniel Dehennin
</pre>
111 1 Daniel Dehennin
112 1 Daniel Dehennin
h3. Paquet source
113 1 Daniel Dehennin
114 1 Daniel Dehennin
Il faut signer le fichier *@_source.changes@* par l’utilisateur de compilation (*@buildd@pollux.eole.lan@*):
115 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@*)
116 1 Daniel Dehennin
# Signer le paquet source
117 1 Daniel Dehennin
<pre>
118 1 Daniel Dehennin
buildd@pollux:~/temp$ debsign -kbuildd@listeseole.ac-dijon.fr *.changes
119 1 Daniel Dehennin
</pre>
120 1 Daniel Dehennin
# Envoyer le paquet sur le dépôt Debian d’EOLE
121 1 Daniel Dehennin
<pre>
122 1 Daniel Dehennin
buildd@pollux:~/temp$ dput eole *.changes
123 1 Daniel Dehennin
</pre>
124 1 Daniel Dehennin
# Nettoyer le répertoire
125 1 Daniel Dehennin
<pre>
126 1 Daniel Dehennin
buildd@pollux:~/temp$ cd
127 1 Daniel Dehennin
buildd@pollux:~$ rm -rf temp/
128 1 Daniel Dehennin
</pre>