Préparation
Il faut télécharger le paquet source à partir d'apt-get ou du site web: http://packages.debian.org/testing/source/<nompaquet>
Si on utilise apt-get, il faut s'assurer d'avoir une ligne de paquet source dans le fichier de configuration d'apt-get (/etc/apt/sources.list
). Il devrait y avoir une ligne avec le mot clé deb-src. Exemple:
deb-src http://ftp.ca.debian.org/debian/ lenny main contrib
Il est conseillé de toujours mettre à jour la liste des paquets avant d'utiliser apt-get avec la commande suivante (en usager root): apt-get update
. Ensuite on peut télécharger le paquet source avec la commande:
apt-get source <nompaquet>
Si on n'a jamais bâti le paquet, il peut être intelligent d'installer les dépendances de compilation avec la commande (en usager root): apt-get build-dep <nompaquet>
.
Détail du paquet source
Le paquet source, une fois installer contient:
- <nompaquet_version>.orig.tar.gz : Le code source d'origine provenant du développeur.
- <nompaquet_version_versiondeb>.dsc : Le fichier de Contrôle de Source Debian (Debian Source Control)
- <nompaquet_version-versiondeb>.diff.gz : Les modifications effectuées par Debian (répertoire debian/ et autres rustines).
Un fichier .dsc ?
Le fichier de Contrôle de Source Debian est un fichier texte qui contient des informations sur le paquet. Il est généralement signé à l'aide de GnuPG (signature PGP). Il contient les renseignements:
- Le format du paquet .deb (Format: 1.0)
- Le nom du paquet source: (Source: <nompaquet>)
- Le nom du paquet compilé: (Binary: <nompaquet>). On pourrait générer deux paquets à partir d'un seul paquet source, d'où l'utilité de ce champ.
- L'architecture du processeur pour le paquet source (pas le résultat final): (Architecture: any)
- La version du paquet Debian: (Version: <version_versiondeb>
- Le nom et l'adresse du mainteneur Debian: (Maintainer: Nom <email@domain.com>)
- La version du standard Debian: (Standards-Version: 3.6.2)
- Les dépendances de compilation: (Build-Depends: paquet1, paquet2, paquet3 (>> 1.2.3), paquet4 [!hurd-i386 !kfreebsd-i386], paquet5 (>= 3.2.1)
- La liste des fichiers dans le paquet source, généralement le .orig.tar.gz et le fichier de différence diff.gz.
Files: md5dufichier1 taille1 nomdufichier1 md5dufichier2 taille2 nomdufichier2
La taille des fichiers est exprimé en octet. On peut obtenir le md5 à l'aide de la commande:
md5sum nomdufichier
. Malheureusement, la taille n'est pas affichée.
Le fichier est généré à l'aide de la commande debuild
.
Lorsqu'on télécharge un paquet source de debian, sans avoir utiliser apt-get source, il faut utiliser la commande dpkg-source -x fichier.dsc
pour extraire le paquet originel et appliqué les modifications (diff). On verra alors les commentaires suivants:
dpkg-source : extraction de <nompaquet> dans <nompaquet-version> dpkg-source: info: extraction de <nompaquet_version>.orig.tar.gz dpkg-source: info: mise en place de <nompaquet_version-versiondeb>.diff.gz
Le code est donc placé dans le répertoire <nompaquet-version> .
Qu'est-ce qu'un fichier rules
Un fichier rules est un fichier Makefile lors de la construction du paquet.
// brouillon La première ligne du debian/rules est le nom du programme appelé pour exécuter le reste du fichier #!/usr/bin/make -f Les variables sont: DEB_TAR_SRCDIR := <nompaquet-version> Les cibles sont: build: clean: pre-build::
Le Makefile peut utilisé les bibliothèques suivantes:
// brouillon include /usr/share/cdbs/1/rules/tarball.mk include /usr/share/cdbs/1/rules/simple-patchsys.mk include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/autotools.mk
Bâtir le paquet
Si vous n'êtes pas le mainteneur du paquet, il se peut que la commande debuild
échoue car le paquet ne pourra pas être correctement signé avec la clé PGP. Il faut alors utiliser la commande debuild -us -uc
debuild
dpkg-buildpackage -rfakeroot -D -us -uc fakeroot debian/rules clean /usr/bin/make -f debian/rules reverse-config dh_clean /usr/bin/make -C build-tree/<paquet-version> -k distclean rm -f debian/stamp-makefile-build rm -f debian/stamp-autotools-files dpkg-source -b <paquet-version> debian/rules build /usr/bin/make -f debian/rules reverse-config fakeroot debian/rules binary dh_clean -k dh_installdirs -A /usr/bin/make -C build-tree/<paquet-version> install DESTDIR=/tmp/<paquet-version>/debian/<paquet>/ db_... lintian... Les options -D, -us et -uc sont utilisé par dpkg-buildpackage -D Exécute dpkg-checkbuilddeps pour vérifier les dépendances de construction -us Ne pas signer le paquet source. (us = unsigned source) -uc Ne pas signer le fichier « .changes ». (uc = unsigned changes) -S Bâtir seulement le fichier source, pas le binaire.
Fichier debian/watch
Le fichier debian/watch permet au script uscan (perl script) de vérifier la mise à jour d'un paquet sur le serveur du développeur.
La commande uscan lit le fichier debian/watch et la dernière version dans le fichier debian/changelog. Les deux fichiers sont nécessaires.
Voici un exemple des fichiers et de l'exécution du script uscan pour le paquet iceweasel (2009-10-10). Il faut au moins un changement complet dans le changelog pour que le script fonctionne correctement.
debian/changelog: iceweasel (3.0.14-1) unstable; urgency=low * Fixes mfsa-2009-51, also known as CVE-2009-3079. -- Mike Hommey <glandium@debian.org> Thu, 10 Sep 2009 08:56:30 +0200 debian/watch: version=3 opts=dversionmangle=s/^(\d\.[\d\.]+)\+dfsg$/$1/ \ ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/(\d\.[\d\.]+)/source/firefox-([\d\.]+)[\.-]source\.tar\.bz2 debian/watch: (sourceforge for w3m (hard way)) version=3 opts="downloadurlmangle=s|sourceforge.net/projects/w3m/files(.*)/download|jaist.dl.sourceforge.net/project/w3m\\1|" \ http://sourceforge.net/projects/w3m/files/ \ /projects/w3m/files/w3m/w3m-[0-9]+\..+/w3m-([0-9]+\..+)\.tar\.gz/download debian uupdate debian/watch: (sourceforge for w3m (easy way with sf redirector) version=3 http://sf.net/w3m/w3m-(.+)\.tar\.gz $ uscan --report Processing watchfile line for package iceweasel... Newest version on remote site is 3.5.3, local version is 3.0.14 iceweasel: Newer version (3.5.3) available on remote site: ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/3.5.3/source/firefox-3.5.3.source.tar.bz2 (local version is 3.0.14)
Hyperliens...
Hyperliens...
- Guide du nouveau responsable Debian
- Debian Patch Tracking
- Debian Policy Manual : debian/ folder standard for .deb files
Dernière modification: 2009-10-11 11:39:31 par Yan Morin
Hébergé par ProgYSM