Projet

Général

Profil

EoleDebianPackaging24 » Historique » Version 26

Daniel Dehennin, 29/11/2013 11:46

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 16 Daniel Dehennin
Le nouveau système de build des paquets apporte plus de souplesse :
14 16 Daniel Dehennin
15 16 Daniel Dehennin
* Possibilité de builder des paquets pour des architectures autre que _i386_ et _all_
16 17 Benjamin Bohard
* Utilisation du système de build pour construire des paquets de correctif pour les versions stables (plus besoin de télécharger l’ancien paquet, appliquer un patch, incrémenter le numéro de version et compiler à la main)
17 16 Daniel Dehennin
* Choix de la politique de numérotation des paquets
18 16 Daniel Dehennin
19 12 Daniel Dehennin
h2. debian/changelog
20 12 Daniel Dehennin
21 15 Benjamin Bohard
La grande nouveauté du système de build pour EOLE 2.4 est l’absence de fichier @debian/changelog@ dans la branche de packaging.
22 12 Daniel Dehennin
23 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.
24 1 Daniel Dehennin
25 16 Daniel Dehennin
h3. Numérotation des paquets
26 1 Daniel Dehennin
27 16 Daniel Dehennin
L’absence du @debian/changelog@ impose une chose pour le premier paquet construit :
28 16 Daniel Dehennin
29 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@
30 12 Daniel Dehennin
31 15 Benjamin Bohard
Le moyen mné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:
32 12 Daniel Dehennin
33 12 Daniel Dehennin
<pre>
34 12 Daniel Dehennin
<UPSTREAM VERSION>-<DEBIAN PACKAGE RELEASE>
35 12 Daniel Dehennin
</pre>
36 12 Daniel Dehennin
37 12 Daniel Dehennin
* Toute modification du code nécessite une modification de la partie *@<UPSTREAM VERSION>@* ;
38 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>@*.
39 12 Daniel Dehennin
40 1 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.
41 1 Daniel Dehennin
42 16 Daniel Dehennin
h2. debian/source/format
43 16 Daniel Dehennin
44 17 Benjamin Bohard
La valeur de ce paramètre découle des réponses à ces trois questions :
45 16 Daniel Dehennin
46 16 Daniel Dehennin
# Qui a la responsabilité de l’incrémentation du numéro de version ;
47 16 Daniel Dehennin
# Est-il permis que la branche dite @upstream@ (chez EOLE, la branche @master@) soit vide ;
48 16 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@.
49 16 Daniel Dehennin
50 16 Daniel Dehennin
h3. Il est interdit de modifier les sources dans le packaging
51 16 Daniel Dehennin
52 16 Daniel Dehennin
Cela s’applique, chez Debian, aux paquets de logiciels « externes ».
53 16 Daniel Dehennin
54 17 Benjamin Bohard
Le paquet Debian ne doit 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 @upstream@.
55 16 Daniel Dehennin
La seul possibilité pour adapter le code source à la distribution est de faire un patch et de le disposer dans le répertoire @debian/patches/@.
56 16 Daniel Dehennin
57 16 Daniel Dehennin
Cas d’utilisation typique:
58 16 Daniel Dehennin
59 16 Daniel Dehennin
<pre>
60 16 Daniel Dehennin
# Mise à jour upstream
61 16 Daniel Dehennin
user:~/src/paquet (master)$ $EDITOR source_file.txt
62 16 Daniel Dehennin
user:~/src/paquet (master)$ git add source_file.txt
63 16 Daniel Dehennin
user:~/src/paquet (master)$ git commit -m "New source file"
64 16 Daniel Dehennin
user:~/src/paquet (master)$ git tag -s -m "New release 1.6" release/1.6
65 16 Daniel Dehennin
user:~/src/paquet (master)$ git push origin master release/1.6
66 16 Daniel Dehennin
67 16 Daniel Dehennin
# Mise à jour du packaging
68 16 Daniel Dehennin
user:~/src/paquet (master)$ git checkout dist/ubuntu/precise/master
69 16 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git merge -m "New upstream release" release/1.6
70 16 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ $EDITOR debian/control # Par exemple mise à jour des dépendences
71 16 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git add debian/conrol
72 16 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git commit -m "Update of dependencies"
73 25 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git tag -s -m "New build request for experimental" build/eole/eole-2.4/experimental
74 25 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git push origin build/eole/eole-2.4/experimental
75 16 Daniel Dehennin
# Produit un paquet numéroté 1.6-1~1.gbpXXXX
76 16 Daniel Dehennin
77 16 Daniel Dehennin
# TOUT EST OK, on sort un nouveau paquet.
78 25 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git tag -s -m "New build request for unstable" build/eole/eole-2.4/unstable
79 25 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git push origin build/eole/eole-2.4/unstable
80 16 Daniel Dehennin
# Produit un paquet numéroté 1.6-1
81 16 Daniel Dehennin
</pre>
82 16 Daniel Dehennin
83 16 Daniel Dehennin
Les builds successifs de paquet sans merge d’une nouvelle version @upstream@
84 16 Daniel Dehennin
85 16 Daniel Dehennin
* @1.6-2@ pour le second build qui ne doit corriger que des erreurs de packaging ou avoir un patch pour @upstream@ dans @debian/patches@ ;
86 16 Daniel Dehennin
* @1.6-3@ pour le troisième build qui ne doit corriger que des erreurs de packaging ou avoir un patch pour @upstream@ dans @debian/patches@ ;
87 16 Daniel Dehennin
88 16 Daniel Dehennin
Ce comportement est celui part défaut avec la valeur de @debian/source/format@ :
89 16 Daniel Dehennin
90 16 Daniel Dehennin
<pre>
91 16 Daniel Dehennin
3.0 (quilt)
92 16 Daniel Dehennin
</pre>
93 16 Daniel Dehennin
94 16 Daniel Dehennin
h3. Il est possible de modifier les sources dans le packaging ou il n’y a pas de sources upstream
95 16 Daniel Dehennin
96 16 Daniel Dehennin
Les modifications de code source sont autorisées sur la branche de packaging sans nouveau tag upstream.
97 17 Benjamin Bohard
La branche upstream peut être complètement vide (cas des métapaquets de dépendances @*-pkg@)
98 16 Daniel Dehennin
99 16 Daniel Dehennin
Cas d’utilisation typique:
100 16 Daniel Dehennin
101 16 Daniel Dehennin
<pre>
102 16 Daniel Dehennin
# Premier tag upstream pour créer le fichier debian/changelog automatiquement
103 16 Daniel Dehennin
user:~/src/paquet (master)$ git tag -s -m "First release 1.0" release/1.0
104 16 Daniel Dehennin
105 16 Daniel Dehennin
# Premier paquet
106 1 Daniel Dehennin
user:~/src/paquet (master)$ git checkout -b dist/ubuntu/precise/master
107 16 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$  $EDITOR debian/* # Création du packaging
108 16 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git add debian/conrol
109 1 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git commit -m "First package"
110 25 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git tag -s -m "New build request for experimental" build/eole/eole-2.4/experimental
111 25 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git push origin build/eole/eole-2.4/experimental
112 16 Daniel Dehennin
# Produit un paquet numéroté 1.6-1~1.gbpXXXX
113 16 Daniel Dehennin
114 16 Daniel Dehennin
# TOUT EST OK, on sort un nouveau paquet.
115 25 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git tag -s -m "New build request for unstable" build/eole/eole-2.4/unstable
116 25 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git push origin build/eole/eole-2.4/unstable
117 16 Daniel Dehennin
# Produit un paquet numéroté 1.6-1
118 16 Daniel Dehennin
119 16 Daniel Dehennin
# Mise à jour upstream
120 16 Daniel Dehennin
user:~/src/paquet (master)$ $EDITOR source_file.txt
121 16 Daniel Dehennin
user:~/src/paquet (master)$ git add source_file.txt
122 16 Daniel Dehennin
user:~/src/paquet (master)$ git commit -m "New source file"
123 1 Daniel Dehennin
user:~/src/paquet (master)$ git push origin master
124 16 Daniel Dehennin
125 16 Daniel Dehennin
# Mise à jour du packaging
126 1 Daniel Dehennin
user:~/src/paquet (master)$ git checkout dist/ubuntu/precise/master
127 16 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git merge -m "New upstream release" master
128 16 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ $EDITOR debian/control # Par exemple mise à jour des dépendences
129 16 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git add debian/conrol
130 16 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git commit -m "Update of dependencies"
131 25 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git tag -s -m "New build request for experimental" build/eole/eole-2.4/experimental
132 25 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git push origin build/eole/eole-2.4/experimental
133 16 Daniel Dehennin
# Produit un paquet numéroté 1.6-2~1.gbpXXXX
134 16 Daniel Dehennin
135 1 Daniel Dehennin
# TOUT EST OK, on sort un nouveau paquet.
136 25 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git tag -s -m "New build request for unstable" build/eole/eole-2.4/unstable
137 25 Daniel Dehennin
user:~/src/paquet (dist/ubuntu/precise/master)$ git push origin build/eole/eole-2.4/unstable
138 1 Daniel Dehennin
# Produit un paquet numéroté 1.6-2
139 1 Daniel Dehennin
</pre>
140 1 Daniel Dehennin
141 1 Daniel Dehennin
Ce comportement est possible avec la valeur de @debian/source/format@ :
142 1 Daniel Dehennin
143 1 Daniel Dehennin
<pre>
144 1 Daniel Dehennin
3.0 (native)
145 1 Daniel Dehennin
</pre>
146 25 Daniel Dehennin
147 25 Daniel Dehennin
h2. debian/gbp.conf
148 25 Daniel Dehennin
149 26 Daniel Dehennin
Si ce n’est pas déjà fait, il faut créer le fichier de configuration de "git-buildpackage":http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html afin de déterminer le format des tags de version debian:
150 25 Daniel Dehennin
151 25 Daniel Dehennin
<pre>
152 25 Daniel Dehennin
[DEFAULT]
153 25 Daniel Dehennin
debian-tag = debian/eole/2.4/%(version)s
154 25 Daniel Dehennin
</pre>
155 25 Daniel Dehennin
156 25 Daniel Dehennin
Cela évite qu’une même version upstream compilée pour plusieurs distributions se marche sur les pieds.
157 16 Daniel Dehennin
158 1 Daniel Dehennin
h2. debian/control
159 4 Benjamin Bohard
160 1 Daniel Dehennin
<pre>
161 1 Daniel Dehennin
Source: <package>
162 1 Daniel Dehennin
Section: <(admin|web|metapackages|...)>
163 1 Daniel Dehennin
Priority: optional
164 1 Daniel Dehennin
Maintainer: Équipe Eole <eole@ac-dijon.fr>
165 1 Daniel Dehennin
Build-Depends: debhelper (>= 9)
166 1 Daniel Dehennin
Standards-Version: 3.9.3
167 1 Daniel Dehennin
Homepage: http://eole.orion.education.fr/diff/
168 1 Daniel Dehennin
Vcs-Git: http://dev-eole.ac-dijon.fr/git/<package>
169 5 Daniel Dehennin
Vcs-Browser: http://dev-eole.ac-dijon.fr/projects/<package>/repository
170 1 Daniel Dehennin
171 1 Daniel Dehennin
Package: <package>
172 1 Daniel Dehennin
Architecture: all
173 1 Daniel Dehennin
Depends: ${misc:Depends}
174 1 Daniel Dehennin
Description: <MAX 72 CHARS>
175 1 Daniel Dehennin
 <DESCRIPTION>
176 1 Daniel Dehennin
 .
177 16 Daniel Dehennin
 <PARAGRAPHE SEPARATED BY DOT>
178 1 Daniel Dehennin
179 19 Daniel Dehennin
Package: <package>-pkg
180 19 Daniel Dehennin
Section: metapackages
181 19 Daniel Dehennin
Architecture: all
182 19 Daniel Dehennin
Depends: <A PACKAGE>,
183 19 Daniel Dehennin
         <ANOTHER PACKAGE>,
184 19 Daniel Dehennin
         ${misc:Depends}
185 19 Daniel Dehennin
Description: <MAX 72 CHARS>
186 19 Daniel Dehennin
 <DESCRIPTION>
187 19 Daniel Dehennin
 .
188 19 Daniel Dehennin
 <PARAGRAPHE SEPARATED BY DOT>
189 19 Daniel Dehennin
190 1 Daniel Dehennin
Package: <package>-doc
191 1 Daniel Dehennin
Architecture: all
192 1 Daniel Dehennin
Description: <MAX 72 CHARS>
193 1 Daniel Dehennin
 <DESCRIPTION>
194 1 Daniel Dehennin
 .
195 1 Daniel Dehennin
 <PARAGRAPHE SEPARATED BY DOT>
196 1 Daniel Dehennin
197 1 Daniel Dehennin
Package: <package>-tests
198 1 Daniel Dehennin
Architecture: all
199 1 Daniel Dehennin
Depends: <package>
200 1 Daniel Dehennin
Description: <MAX 72 CHARS>
201 1 Daniel Dehennin
 <DESCRIPTION>
202 1 Daniel Dehennin
 .
203 1 Daniel Dehennin
 <PARAGRAPHE SEPARATED BY DOT>
204 1 Daniel Dehennin
</pre>
205 19 Daniel Dehennin
206 19 Daniel Dehennin
L’attribut _Section_ défini pour le paquet source est utilisé pour tous les paquets binaires ne définissant pas cet attribut.
207 19 Daniel Dehennin
208 19 Daniel Dehennin
Il est ainsi possible de spécifier qu’un paquet binaire est un méta-paquet (utilisé uniquement pour ces dépendances) en définissant @Section: metapackages@ comme pour @<package>-pkg@ dans l’exemple ci-dessus.
209 1 Daniel Dehennin
210 1 Daniel Dehennin
h3. Paquets sources et binaires python
211 1 Daniel Dehennin
212 16 Daniel Dehennin
Il faut ajouter :
213 1 Daniel Dehennin
214 23 Daniel Dehennin
* @Build-Depends@ du paquet source:
215 23 Daniel Dehennin
** @python-all@ pour les modules pure python
216 23 Daniel Dehennin
** @python-all-dev@ pour les modules nécessitant une compilation C.
217 1 Daniel Dehennin
* @Depends@ du/des paquet(s) binaire(s): @${python:Depends}@
218 1 Daniel Dehennin
219 1 Daniel Dehennin
h2. debian/rules
220 1 Daniel Dehennin
221 1 Daniel Dehennin
h3. Pour tous
222 1 Daniel Dehennin
223 5 Daniel Dehennin
<pre>
224 1 Daniel Dehennin
#!/usr/bin/make -f
225 1 Daniel Dehennin
# -*- makefile -*-
226 1 Daniel Dehennin
# Sample debian/rules that uses debhelper.
227 1 Daniel Dehennin
# This file was originally written by Joey Hess and Craig Small.
228 1 Daniel Dehennin
# As a special exception, when this file is copied by dh-make into a
229 1 Daniel Dehennin
# dh-make output file, you may use that output file without restriction.
230 11 Daniel Dehennin
# This special exception was added by Craig Small in version 0.37 of dh-make.
231 7 Daniel Dehennin
232 8 Daniel Dehennin
# Uncomment this to turn on verbose mode.
233 10 Benjamin Bohard
#export DH_VERBOSE=1
234 15 Benjamin Bohard
235 1 Daniel Dehennin
%:
236 1 Daniel Dehennin
	dh $@
237 1 Daniel Dehennin
</pre>
238 1 Daniel Dehennin
239 1 Daniel Dehennin
h3. Pour paquet python
240 12 Daniel Dehennin
241 1 Daniel Dehennin
<pre>
242 12 Daniel Dehennin
#!/usr/bin/make -f
243 1 Daniel Dehennin
# -*- makefile -*-
244 12 Daniel Dehennin
# Sample debian/rules that uses debhelper.
245 1 Daniel Dehennin
# This file was originally written by Joey Hess and Craig Small.
246 1 Daniel Dehennin
# As a special exception, when this file is copied by dh-make into a
247 14 Daniel Dehennin
# dh-make output file, you may use that output file without restriction.
248 14 Daniel Dehennin
# This special exception was added by Craig Small in version 0.37 of dh-make.
249 1 Daniel Dehennin
250 1 Daniel Dehennin
# Uncomment this to turn on verbose mode.
251 1 Daniel Dehennin
#export DH_VERBOSE=1
252 1 Daniel Dehennin
253 1 Daniel Dehennin
%:
254 15 Benjamin Bohard
	dh $@ --with python2
255 1 Daniel Dehennin
</pre>
256 6 Benjamin Bohard
257 18 Daniel Dehennin
h3. Outrepasser le comportement par défaut des debhelpers
258 18 Daniel Dehennin
259 18 Daniel Dehennin
L’utilisation de la cible implicite @%@ dans le fichier makefile @debian/rules@ ne permet pas de prendre en compte certains cas spécifiques comme passer des options aux commandes @dh_*@.
260 18 Daniel Dehennin
261 18 Daniel Dehennin
Pour outrepasser le comportement par défaut, il faut définir en plus des cibles d’écrasement :
262 18 Daniel Dehennin
263 18 Daniel Dehennin
<pre>
264 18 Daniel Dehennin
override_dh_<COMMAND>:
265 18 Daniel Dehennin
	dh_<COMMAND> --opt1 --opt2
266 18 Daniel Dehennin
267 22 Daniel Dehennin
.PHONY: dh_<COMMAND>
268 18 Daniel Dehennin
</pre>
269 18 Daniel Dehennin
270 18 Daniel Dehennin
Cela permet, par exemple, de nommer un script d’init installé automatiquement différemment du paquet qui le fourni, comme pour project:zephir-client (voir zephir-client:source:debian/rules?rev=dist/ubuntu/lucid/master#L19)
271 18 Daniel Dehennin
272 18 Daniel Dehennin
Plus d’informations sont disponibles dans la "page de manuel de dh":http://manpages.ubuntu.com/manpages/precise/man1/dh.1.html.
273 18 Daniel Dehennin
274 1 Daniel Dehennin
h2. debian/compat
275 1 Daniel Dehennin
276 1 Daniel Dehennin
<pre>
277 1 Daniel Dehennin
9
278 1 Daniel Dehennin
</pre>
279 1 Daniel Dehennin
280 5 Daniel Dehennin
h2. debian/copyright
281 1 Daniel Dehennin
282 1 Daniel Dehennin
<pre>
283 1 Daniel Dehennin
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
284 1 Daniel Dehennin
Upstream-Name: <package
285 1 Daniel Dehennin
Source: <UPSTREAM URL>
286 1 Daniel Dehennin
287 1 Daniel Dehennin
Files: *
288 1 Daniel Dehennin
Copyright: <YEAR1>,<YEAR2>,<YEAR3> <UPSTREAM AUTHOR NAME> <UPSTREAM AUTHOR EMAIL>
289 1 Daniel Dehennin
Copyright: <YEAR1>,<YEAR2>,<YEAR3> <UPSTREAM AUTHOR NAME> <UPSTREAM AUTHOR EMAIL>
290 1 Daniel Dehennin
License: GPL-3+
291 1 Daniel Dehennin
292 1 Daniel Dehennin
Files: debian/*
293 1 Daniel Dehennin
Copyright: <YEAR1>,<YEAR2>,<YEAR3> Équipe EOLE <eole@ac-dijon.fr>
294 21 Daniel Dehennin
License: CeCILL-2
295 1 Daniel Dehennin
296 21 Daniel Dehennin
License: CeCILL-2
297 21 Daniel Dehennin
 This software is governed by the CeCILL-2 license under French law and
298 20 Daniel Dehennin
 abiding by the rules of distribution of free software.  You can  use,
299 21 Daniel Dehennin
 modify and or redistribute the software under the terms of the CeCILL-2
300 20 Daniel Dehennin
 license as circulated by CEA, CNRS and INRIA at the following URL
301 20 Daniel Dehennin
 "http://www.cecill.info";.
302 1 Daniel Dehennin
 .
303 20 Daniel Dehennin
 As a counterpart to the access to the source code and  rights to copy,
304 20 Daniel Dehennin
 modify and redistribute granted by the license, users are provided only
305 20 Daniel Dehennin
 with a limited warranty  and the software's author,  the holder of the
306 20 Daniel Dehennin
 economic rights,  and the successive licensors  have only  limited
307 20 Daniel Dehennin
 liability.
308 1 Daniel Dehennin
 .
309 20 Daniel Dehennin
 In this respect, the user's attention is drawn to the risks associated
310 20 Daniel Dehennin
 with loading,  using,  modifying and/or developing or reproducing the
311 20 Daniel Dehennin
 software by the user in light of its specific status of free software,
312 20 Daniel Dehennin
 that may mean  that it is complicated to manipulate,  and  that  also
313 20 Daniel Dehennin
 therefore means  that it is reserved for developers  and  experienced
314 20 Daniel Dehennin
 professionals having in-depth computer knowledge. Users are therefore
315 20 Daniel Dehennin
 encouraged to load and test the software's suitability as regards their
316 20 Daniel Dehennin
 requirements in conditions enabling the security of their systems and/or
317 20 Daniel Dehennin
 data to be ensured and,  more generally, to use and operate it in the
318 20 Daniel Dehennin
 same conditions as regards security.
319 1 Daniel Dehennin
 .
320 20 Daniel Dehennin
 The fact that you are presently reading this means that you have had
321 21 Daniel Dehennin
 knowledge of the CeCILL-2 license and that you accept its terms.
322 20 Daniel Dehennin
 .
323 24 Gérald Schwartzmann
 On EOLE systems, the complete text of the CeCILL-2 License can be found
324 21 Daniel Dehennin
 in '/usr/share/common-licenses/CeCILL-2-en'.
325 1 Daniel Dehennin
</pre>