Projet

Général

Profil

Wiki » Historique » Version 2

Daniel Dehennin, 20/01/2016 12:21

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