EoleDebianPackaging24 » Historique » Version 13
« Précédent -
Version 13/28
(diff) -
Suivant » -
Version actuelle
Daniel Dehennin, 24/07/2012 16:54
typo
- Debian packaging pour EOLE 2.4
Debian packaging pour EOLE 2.4¶
Introduction¶
Nous ne décrirons pas ici comment créer un paquet debian, mais
quelques règles utiles lors de la création d’un paquet debian pour
EOLE.
La principale cible de cette documentation est le packaging pour Ubuntu Precise Pangolin.
debian/changelog¶
La grande nouveauté du système de build pour EOLE 2.4 est l’absence de fichier debian/changelog
dans la branche de packaging.
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.
Cela impose quelques restrictions (qui n’en sont pas vraiment ;-)) :
- 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 et se reposer sur l’utilisation de tag pour déclarer les versionsupstream
- Tout packaging de nouvelle modification de code source
upstream
nécessite un tag
Le moyen mémotechnique pour s’en souvenir est de connaître la forme d’un numéro de paquet Debian:
<UPSTREAM VERSION>-<DEBIAN PACKAGE RELEASE>
- Toute modification du code nécessite une modification de la partie
<UPSTREAM VERSION>
; - Toute modification sur la branche de packaging qui n’implique aucun
merge
de la brancheupstream
(master
chez EOLE), modifie la partie<DEBIAN PACKAGE RELEASE>
.
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.
debian/control¶
Source: <package> Section: <(admin|web|metapackages|...)> Priority: optional Maintainer: Équipe Eole <eole@ac-dijon.fr> Build-Depends: debhelper (>= 9) Standards-Version: 3.9.3 Homepage: http://eole.orion.education.fr/diff/ Vcs-Git: http://dev-eole.ac-dijon.fr/git/<package> Vcs-Browser: http://dev-eole.ac-dijon.fr/projects/<package>/repository Package: <package> Architecture: all Depends: ${misc:Depends} Description: <MAX 72 CHARS> <DESCRIPTION> . <PARAGRAPHE SEPARATED BY DOT> Package: <package>-doc Architecture: all Description: <MAX 72 CHARS> <DESCRIPTION> . <PARAGRAPHE SEPARATED BY DOT> Package: <package>-tests Architecture: all Depends: <package> Description: <MAX 72 CHARS> <DESCRIPTION> . <PARAGRAPHE SEPARATED BY DOT>
Paquets sources et binaires python¶
Il faut ajouter :
Build-Depends
du paquet source:python-all-dev
Depends
du/des paquet(s) binaire(s):${python:Depends}
debian/rules¶
Pour tous¶
#!/usr/bin/make -f # -*- makefile -*- # Sample debian/rules that uses debhelper. # This file was originally written by Joey Hess and Craig Small. # As a special exception, when this file is copied by dh-make into a # dh-make output file, you may use that output file without restriction. # This special exception was added by Craig Small in version 0.37 of dh-make. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 %: dh $@
Pour paquet python¶
#!/usr/bin/make -f # -*- makefile -*- # Sample debian/rules that uses debhelper. # This file was originally written by Joey Hess and Craig Small. # As a special exception, when this file is copied by dh-make into a # dh-make output file, you may use that output file without restriction. # This special exception was added by Craig Small in version 0.37 of dh-make. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 %: dh $@ --with python2
debian/compat¶
9
debian/source/format¶
La valeur ce paramètre découle de la réponse à ces trois questions :
- Qui a la responsabilité de l’incrémentation du numéro de version ;
- Est-il permis que la branche dite
upstream
(chez EOLE, la branchemaster
) soit vide ; - 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 versionupstream
.
Il est interdit de modifier les sources dans le packaging¶
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.
Dans notre cas, un tag nommé release/%(version)s
, qui engendrera un paquet Debian avec des numéros de version comme suit :
%(version)s-1
pour le premier build ;%(version)s-2
pour le second build qui ne doit corriger que des erreurs de packaging ou avoir un patch pour upstream dansdebian/patches
;%(version)s-3
pour le troisième build qui ne doit corriger que des erreurs de packaging ou avoir un patch pour upstream dansdebian/patches
;
3.0 (quilt)
Il est possible de modifier les sources dans le packaging ou il n’y a pas de source upstream¶
Les modifications de code source sont autorisées sur la branche de packaging sans nouveau tag upstream.
La branche upstream peut-être complètement vide (cas des métapaquets de dépendances *-pkg
)
3.0 (native)
debian/copyright¶
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: <package Source: <UPSTREAM URL> Files: * Copyright: <YEAR1>,<YEAR2>,<YEAR3> <UPSTREAM AUTHOR NAME> <UPSTREAM AUTHOR EMAIL> Copyright: <YEAR1>,<YEAR2>,<YEAR3> <UPSTREAM AUTHOR NAME> <UPSTREAM AUTHOR EMAIL> License: GPL-3+ Files: debian/* Copyright: <YEAR1>,<YEAR2>,<YEAR3> Équipe EOLE <eole@ac-dijon.fr> License: GPL-3+ License: GPL-3+ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".