EoleDebianPackaging24 » Historique » Version 14
Daniel Dehennin, 24/07/2012 16:58
Fix formatting
1 | 1 | Daniel Dehennin | {{toc}} |
---|---|---|---|
2 | 1 | Daniel Dehennin | |
3 | 1 | Daniel Dehennin | h1. Debian packaging pour EOLE 2.4 |
4 | 1 | Daniel Dehennin | |
5 | 1 | Daniel Dehennin | h2. Introduction |
6 | 1 | Daniel Dehennin | |
7 | 1 | Daniel Dehennin | Nous ne décrirons pas ici comment créer un paquet debian, mais |
8 | 1 | Daniel Dehennin | quelques règles utiles lors de la création d’un paquet debian pour |
9 | 1 | Daniel Dehennin | EOLE. |
10 | 1 | Daniel Dehennin | |
11 | 1 | Daniel Dehennin | La principale cible de cette documentation est le packaging pour Ubuntu Precise Pangolin. |
12 | 1 | Daniel Dehennin | |
13 | 12 | Daniel Dehennin | h2. debian/changelog |
14 | 12 | Daniel Dehennin | |
15 | 12 | Daniel Dehennin | La grande nouveauté du système de build pour EOLE 2.4 est l’absence de fichier @debian/changelog@ dans la branche de packaging. |
16 | 12 | Daniel Dehennin | |
17 | 12 | Daniel Dehennin | Ce dernier n’est créé et mis à jour que par le système de build lui même et n’est jamais directement accessible aux développeurs/packageurs. |
18 | 12 | Daniel Dehennin | |
19 | 12 | Daniel Dehennin | Cela impose quelques restrictions (qui n’en sont pas vraiment ;-)) : |
20 | 12 | Daniel Dehennin | |
21 | 12 | Daniel Dehennin | # Le premier paquet généré ne peut pas connaître son numéro de version par @debian/changelog@, il faut donc utiliser les mécanismes de "git-buildpackage":http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.man.git.dch.html et se reposer sur l’utilisation de "tag":http://gitimmersion.fr/lab_13.html pour déclarer les versions @upstream@ |
22 | 12 | Daniel Dehennin | # Tout packaging de nouvelle modification de code source @upstream@ nécessite un tag |
23 | 12 | Daniel Dehennin | |
24 | 13 | Daniel Dehennin | Le moyen mémotechnique pour s’en souvenir est de connaître la forme d’un "numéro de paquet Debian":http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version: |
25 | 12 | Daniel Dehennin | |
26 | 12 | Daniel Dehennin | <pre> |
27 | 12 | Daniel Dehennin | <UPSTREAM VERSION>-<DEBIAN PACKAGE RELEASE> |
28 | 12 | Daniel Dehennin | </pre> |
29 | 12 | Daniel Dehennin | |
30 | 12 | Daniel Dehennin | * Toute modification du code nécessite une modification de la partie *@<UPSTREAM VERSION>@* ; |
31 | 12 | Daniel Dehennin | * Toute modification sur la branche de packaging qui n’implique aucun @merge@ de la branche @upstream@ (@master@ chez EOLE), modifie la partie *@<DEBIAN PACKAGE RELEASE>@*. |
32 | 12 | Daniel Dehennin | |
33 | 12 | Daniel Dehennin | En français on pourrait le décrire par: on publie la version *@<DEBIAN PACKAGE RELEASE>@* du paquet debian de la version *@<UPSTREAM VERSION>@* du logiciel. |
34 | 12 | Daniel Dehennin | |
35 | 5 | Daniel Dehennin | h2. debian/control |
36 | 1 | Daniel Dehennin | |
37 | 1 | Daniel Dehennin | <pre> |
38 | 1 | Daniel Dehennin | Source: <package> |
39 | 9 | Daniel Dehennin | Section: <(admin|web|metapackages|...)> |
40 | 1 | Daniel Dehennin | Priority: optional |
41 | 1 | Daniel Dehennin | Maintainer: Équipe Eole <eole@ac-dijon.fr> |
42 | 1 | Daniel Dehennin | Build-Depends: debhelper (>= 9) |
43 | 1 | Daniel Dehennin | Standards-Version: 3.9.3 |
44 | 2 | Daniel Dehennin | Homepage: http://eole.orion.education.fr/diff/ |
45 | 2 | Daniel Dehennin | Vcs-Git: http://dev-eole.ac-dijon.fr/git/<package> |
46 | 2 | Daniel Dehennin | Vcs-Browser: http://dev-eole.ac-dijon.fr/projects/<package>/repository |
47 | 1 | Daniel Dehennin | |
48 | 1 | Daniel Dehennin | Package: <package> |
49 | 1 | Daniel Dehennin | Architecture: all |
50 | 1 | Daniel Dehennin | Depends: ${misc:Depends} |
51 | 1 | Daniel Dehennin | Description: <MAX 72 CHARS> |
52 | 1 | Daniel Dehennin | <DESCRIPTION> |
53 | 1 | Daniel Dehennin | . |
54 | 3 | Benjamin Bohard | <PARAGRAPHE SEPARATED BY DOT> |
55 | 1 | Daniel Dehennin | |
56 | 1 | Daniel Dehennin | Package: <package>-doc |
57 | 1 | Daniel Dehennin | Architecture: all |
58 | 1 | Daniel Dehennin | Description: <MAX 72 CHARS> |
59 | 1 | Daniel Dehennin | <DESCRIPTION> |
60 | 1 | Daniel Dehennin | . |
61 | 4 | Benjamin Bohard | <PARAGRAPHE SEPARATED BY DOT> |
62 | 1 | Daniel Dehennin | |
63 | 1 | Daniel Dehennin | Package: <package>-tests |
64 | 1 | Daniel Dehennin | Architecture: all |
65 | 1 | Daniel Dehennin | Depends: <package> |
66 | 1 | Daniel Dehennin | Description: <MAX 72 CHARS> |
67 | 1 | Daniel Dehennin | <DESCRIPTION> |
68 | 1 | Daniel Dehennin | . |
69 | 4 | Benjamin Bohard | <PARAGRAPHE SEPARATED BY DOT> |
70 | 1 | Daniel Dehennin | </pre> |
71 | 1 | Daniel Dehennin | |
72 | 1 | Daniel Dehennin | h3. Paquets sources et binaires python |
73 | 1 | Daniel Dehennin | |
74 | 1 | Daniel Dehennin | Il faut ajouter : |
75 | 1 | Daniel Dehennin | |
76 | 1 | Daniel Dehennin | * @Build-Depends@ du paquet source: @python-all-dev@ |
77 | 1 | Daniel Dehennin | * @Depends@ du/des paquet(s) binaire(s): @${python:Depends}@ |
78 | 1 | Daniel Dehennin | |
79 | 5 | Daniel Dehennin | h2. debian/rules |
80 | 1 | Daniel Dehennin | |
81 | 1 | Daniel Dehennin | h3. Pour tous |
82 | 1 | Daniel Dehennin | |
83 | 1 | Daniel Dehennin | <pre> |
84 | 1 | Daniel Dehennin | #!/usr/bin/make -f |
85 | 1 | Daniel Dehennin | # -*- makefile -*- |
86 | 1 | Daniel Dehennin | # Sample debian/rules that uses debhelper. |
87 | 1 | Daniel Dehennin | # This file was originally written by Joey Hess and Craig Small. |
88 | 1 | Daniel Dehennin | # As a special exception, when this file is copied by dh-make into a |
89 | 1 | Daniel Dehennin | # dh-make output file, you may use that output file without restriction. |
90 | 1 | Daniel Dehennin | # This special exception was added by Craig Small in version 0.37 of dh-make. |
91 | 1 | Daniel Dehennin | |
92 | 1 | Daniel Dehennin | # Uncomment this to turn on verbose mode. |
93 | 1 | Daniel Dehennin | #export DH_VERBOSE=1 |
94 | 1 | Daniel Dehennin | |
95 | 1 | Daniel Dehennin | %: |
96 | 1 | Daniel Dehennin | dh $@ |
97 | 1 | Daniel Dehennin | </pre> |
98 | 1 | Daniel Dehennin | |
99 | 1 | Daniel Dehennin | h3. Pour paquet python |
100 | 1 | Daniel Dehennin | |
101 | 1 | Daniel Dehennin | <pre> |
102 | 1 | Daniel Dehennin | #!/usr/bin/make -f |
103 | 1 | Daniel Dehennin | # -*- makefile -*- |
104 | 1 | Daniel Dehennin | # Sample debian/rules that uses debhelper. |
105 | 1 | Daniel Dehennin | # This file was originally written by Joey Hess and Craig Small. |
106 | 1 | Daniel Dehennin | # As a special exception, when this file is copied by dh-make into a |
107 | 1 | Daniel Dehennin | # dh-make output file, you may use that output file without restriction. |
108 | 1 | Daniel Dehennin | # This special exception was added by Craig Small in version 0.37 of dh-make. |
109 | 1 | Daniel Dehennin | |
110 | 1 | Daniel Dehennin | # Uncomment this to turn on verbose mode. |
111 | 1 | Daniel Dehennin | #export DH_VERBOSE=1 |
112 | 1 | Daniel Dehennin | |
113 | 1 | Daniel Dehennin | %: |
114 | 5 | Daniel Dehennin | dh $@ --with python2 |
115 | 1 | Daniel Dehennin | </pre> |
116 | 1 | Daniel Dehennin | |
117 | 1 | Daniel Dehennin | h2. debian/compat |
118 | 1 | Daniel Dehennin | |
119 | 1 | Daniel Dehennin | <pre> |
120 | 1 | Daniel Dehennin | 9 |
121 | 11 | Daniel Dehennin | </pre> |
122 | 7 | Daniel Dehennin | |
123 | 8 | Daniel Dehennin | h2. debian/source/format |
124 | 10 | Benjamin Bohard | |
125 | 10 | Benjamin Bohard | La valeur ce paramètre découle de la réponse à ces trois questions : |
126 | 1 | Daniel Dehennin | |
127 | 1 | Daniel Dehennin | # Qui a la responsabilité de l’incrémentation du numéro de version ; |
128 | 1 | Daniel Dehennin | # Est-il permis que la branche dite @upstream@ (chez EOLE, la branche @master@) soit vide ; |
129 | 1 | Daniel Dehennin | # Est-il possible qu’entre deux paquets debian, il y ait des modifications de fichiers en dehors du répertoire @debian/@ sans nouveau tag de version @upstream@. |
130 | 1 | Daniel Dehennin | |
131 | 12 | Daniel Dehennin | h3. Il est interdit de modifier les sources dans le packaging |
132 | 1 | Daniel Dehennin | |
133 | 12 | Daniel Dehennin | L’idée est de dire que le paquet debian ne peut pas contenir de modification du code source (tout ce qui est en dehors du répertoire @debian/@), sans qu’il y ait eu un nouveau numéro de version par les développeurs. |
134 | 1 | Daniel Dehennin | |
135 | 12 | Daniel Dehennin | Dans notre cas, un tag nommé @release/%(version)s@, qui engendrera un paquet Debian avec des numéros de version comme suit : |
136 | 1 | Daniel Dehennin | |
137 | 1 | Daniel Dehennin | * @%(version)s-1@ pour le premier build ; |
138 | 14 | Daniel Dehennin | * @%(version)s-2@ pour le second build qui ne doit corriger que des erreurs de packaging ou avoir un patch pour upstream dans @debian/patches@ ; |
139 | 14 | Daniel Dehennin | * @%(version)s-3@ pour le troisième build qui ne doit corriger que des erreurs de packaging ou avoir un patch pour upstream dans @debian/patches@ ; |
140 | 1 | Daniel Dehennin | |
141 | 1 | Daniel Dehennin | <pre> |
142 | 1 | Daniel Dehennin | 3.0 (quilt) |
143 | 1 | Daniel Dehennin | </pre> |
144 | 1 | Daniel Dehennin | |
145 | 12 | Daniel Dehennin | h3. Il est possible de modifier les sources dans le packaging ou il n’y a pas de source upstream |
146 | 1 | Daniel Dehennin | |
147 | 6 | Benjamin Bohard | Les modifications de code source sont autorisées sur la branche de packaging sans nouveau tag upstream. |
148 | 1 | Daniel Dehennin | La branche upstream peut-être complètement vide (cas des métapaquets de dépendances @*-pkg@) |
149 | 1 | Daniel Dehennin | |
150 | 1 | Daniel Dehennin | <pre> |
151 | 1 | Daniel Dehennin | 3.0 (native) |
152 | 1 | Daniel Dehennin | </pre> |
153 | 1 | Daniel Dehennin | |
154 | 5 | Daniel Dehennin | h2. debian/copyright |
155 | 1 | Daniel Dehennin | |
156 | 1 | Daniel Dehennin | <pre> |
157 | 1 | Daniel Dehennin | Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ |
158 | 1 | Daniel Dehennin | Upstream-Name: <package |
159 | 1 | Daniel Dehennin | Source: <UPSTREAM URL> |
160 | 1 | Daniel Dehennin | |
161 | 1 | Daniel Dehennin | Files: * |
162 | 1 | Daniel Dehennin | Copyright: <YEAR1>,<YEAR2>,<YEAR3> <UPSTREAM AUTHOR NAME> <UPSTREAM AUTHOR EMAIL> |
163 | 1 | Daniel Dehennin | Copyright: <YEAR1>,<YEAR2>,<YEAR3> <UPSTREAM AUTHOR NAME> <UPSTREAM AUTHOR EMAIL> |
164 | 1 | Daniel Dehennin | License: GPL-3+ |
165 | 1 | Daniel Dehennin | |
166 | 1 | Daniel Dehennin | Files: debian/* |
167 | 1 | Daniel Dehennin | Copyright: <YEAR1>,<YEAR2>,<YEAR3> Équipe EOLE <eole@ac-dijon.fr> |
168 | 1 | Daniel Dehennin | License: GPL-3+ |
169 | 1 | Daniel Dehennin | |
170 | 1 | Daniel Dehennin | License: GPL-3+ |
171 | 1 | Daniel Dehennin | This program is free software: you can redistribute it and/or modify |
172 | 1 | Daniel Dehennin | it under the terms of the GNU General Public License as published by |
173 | 1 | Daniel Dehennin | the Free Software Foundation, either version 3 of the License, or |
174 | 1 | Daniel Dehennin | (at your option) any later version. |
175 | 1 | Daniel Dehennin | . |
176 | 1 | Daniel Dehennin | This package is distributed in the hope that it will be useful, |
177 | 1 | Daniel Dehennin | but WITHOUT ANY WARRANTY; without even the implied warranty of |
178 | 1 | Daniel Dehennin | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
179 | 1 | Daniel Dehennin | GNU General Public License for more details. |
180 | 1 | Daniel Dehennin | . |
181 | 1 | Daniel Dehennin | You should have received a copy of the GNU General Public License |
182 | 1 | Daniel Dehennin | along with this program. If not, see <http://www.gnu.org/licenses/>. |
183 | 1 | Daniel Dehennin | . |
184 | 1 | Daniel Dehennin | On Debian systems, the complete text of the GNU General |
185 | 1 | Daniel Dehennin | Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". |
186 | 1 | Daniel Dehennin | </pre> |