Construire un paquet debian avec apt-get source

Cette article a pour but de montrer comment générer un paquet Debian à partir des sources fournit via la commande apt-get source.

Il faudra vous assurer au préalable que le fichier source.list soit bien renseigné :

Exemple pour la testing :

deb http://mir2.ovh.net/debian/ testing main contrib non-free
deb-src http://mir2.ovh.net/debian/ testing main contrib non-free

 

1° Mise en place de l’environement

 

Nous allons pour commencer installer les outils nécessaires à la génération de pâquet à savoir :

  • devscripts – Scripts to make the life of a Debian Package easier
  • fakeroot – Gives a fake root environnment
  • dpkg-dev – Package building tools for Debian
  • dh-make – tool that converts source archives into Debian package source
makedeb32:~# apt-get install checkinstall dh-make cdbs fakeroot devscripts
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
autopoint autotools-dev binutils build-essential bzip2 cpp cpp-4.4 cvs dctrl-tools debhelper debian-keyring diffstat dpkg-dev dput equivs g++ g++-4.4 gcc gcc-4.4 gettext html2text intltool-debian libapt-pkg-perl libauthen-sasl-perl libc-dev-bin libc6-dev libclass-accessor-perl libconvert-binhex-perl libcroco3 libcrypt-ssleay-perl libdevel-symdump-perl libexpat1 libfcgi-perl libfont-afm-perl libglib2.0-0 libglib2.0-data libgmp3c2 libgomp1 libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhtml-tree-perl libio-pty-perl libio-socket-ssl-perl libio-string-perl libio-stringy-perl libipc-run-perl liblzma2 libmail-sendmail-perl libmailtools-perl libmime-tools-perl libmpfr1ldbl libnet-libidn-perl libnet-ssleay-perl libossp-uuid-perl libossp-uuid16 libparse-debcontrol-perl libparse-debianchangelog-perl libpod-coverage-perl libsoap-lite-perl libstdc++6-4.4-dev libsub-name-perl libsys-hostname-long-perl libtask-weaken-perl libterm-size-perl libtest-pod-perl libtie-ixhash-perl libtimedate-perl liburi-perl libwww-perl libxml-namespacesupport-perl libxml-parser-perl libxml-sax-expat-perl libxml-sax-perl libxml-simple-perl libyaml-syck-perl lintian linux-libc-dev lsb-release make manpages-dev patchutils po-debconf shared-mime-info strace unzip wdiff xz-utils
Paquets suggérés : binutils-doc bzip2-doc doc-base cpp-doc gcc-4.4-locales debtags cvs-buildpackage devscripts-el gnuplot libfile-desktopentry-perl libnet-smtp-ssl-perl svn-buildpackage mini-dinstall rsync yaclc g++-multilib g++-4.4-multilib gcc-4.4-doc libstdc++6-4.4-dbg gcc-multilib autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.4-multilib libmudflap0-4.4-dev libgcc1-dbg libgomp1-dbg libmudflap0-dbg libcloog-ppl0 libppl-c2 libppl7 gettext-doc libdigest-hmac-perl libgssapi-perl glibc-doc libdata-dump-perl libipc-sharedcache-perl libio-socket-inet6-perl uuid libapache2-mod-perl2 libnet-jabber-perl libmime-lite-perl libstdc++6-4.4-doc binutils-multiarch libtext-template-perl lsb make-doc libmail-box-perl zip
Paquets recommandés : debian-maintainers
Les NOUVEAUX paquets suivants seront installés : autopoint autotools-dev binutils build-essential bzip2 cdbs checkinstall cpp cpp-4.4 cvs dctrl-tools debhelper debian-keyring devscripts dh-make diffstat dpkg-dev dput equivs fakeroot g++ g++-4.4 gcc gcc-4.4 gettext html2text intltool-debian libapt-pkg-perl libauthen-sasl-perl libc-dev-bin libc6-dev libclass-accessor-perl libconvert-binhex-perl libcroco3 libcrypt-ssleay-perl libdevel-symdump-perl libexpat1 libfcgi-perl libfont-afm-perl libglib2.0-0 libglib2.0-data libgmp3c2 libgomp1 libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhtml-tree-perl libio-pty-perl libio-socket-ssl-perl libio-string-perl libio-stringy-perl libipc-run-perl liblzma2 libmail-sendmail-perl libmailtools-perl libmime-tools-perl libmpfr1ldbl libnet-libidn-perl libnet-ssleay-perl libossp-uuid-perl libossp-uuid16 libparse-debcontrol-perl libparse-debianchangelog-perl libpod-coverage-perl libsoap-lite-perl libstdc++6-4.4-dev libsub-name-perl libsys-hostname-long-perl libtask-weaken-perl libterm-size-perl libtest-pod-perl libtie-ixhash-perl libtimedate-perl liburi-perl libwww-perl libxml-namespacesupport-perl libxml-parser-perl libxml-sax-expat-perl libxml-sax-perl libxml-simple-perl libyaml-syck-perl lintian linux-libc-dev lsb-release make manpages-dev patchutils po-debconf shared-mime-info strace unzip wdiff xz-utils

0 mis à jour, 94 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 63,3Mo/63,7Mo dans les archives.
Après cette opération, 149Mo d'espace disque supplémentaires seront utilisés.

2° Dépendance nécessaire à la compilation du paquet

 

Ensuite nous allons installer les dépendances nécessaires à la fabrication du paquet.

Notre exemple ici sera courier-imap, mais ceci reste valable pour tout autres paquets.

La petite commande miracle ici est apt-get build-dep :

makedeb32:~# apt-get build-dep courier-imap
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Choix de « courier » comme paquet source à la place de « courier-imap »
Note, sélection de libldap2-dev au lieu de libldap-dev
Les NOUVEAUX paquets suivants seront installés :
autoconf automake comerr-dev courier-authlib courier-authlib-dev dbus defoma expect fontconfig-config ghostscript gs-common gsfonts krb5-multidev libavahi-client3 libavahi-common-data libavahi-common3 libcups2 libcupsimage2 libdbus-1-3 libfam-dev libfam0 libfont-freetype-perl libfontconfig1 libgdbm-dev libgs8 libgssrpc4 libjasper1 libjpeg62 libkadm5clnt-mit7 libkadm5srv-mit7 libkdb5-4 libkrb5-dev libldap2-dev libltdl-dev libltdl7 libmysqlclient-dev libmysqlclient16 libnetpbm10 libpam0g-dev libpaper-utils libpaper1 libpcre3-dev libpcrecpp0 libperl-dev libperl5.10 libpng12-0 libpq-dev libpq5 libsasl2-dev libssl-dev libtiff4 libtool mgetty mgetty-fax mysql-common netpbm psfontmgr tcl8.5 ttf-dejavu-core zlib1g-dev

0 mis à jour, 60 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 32,2Mo dans les archives.
Après cette opération, 78,9Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ?

 

Nous allons maintenant récupérer les sources du paquet courier-imap grâce à la commande apt-get source :

# apt-get source courier-imap
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Choix de « courier » comme paquet source à la place de « courier-imap »
Nécessité de prendre 9 914ko dans les sources.
Réception de : 1 http://mir2.ovh.net testing/main courier 0.63.0-2.1 (dsc) [2 269B]
Réception de : 2 http://mir2.ovh.net testing/main courier 0.63.0-2.1 (tar) [9 749kB]
Réception de : 3 http://mir2.ovh.net testing/main courier 0.63.0-2.1 (diff) [162kB]
9 914ko réceptionnés en 5s (1 901ko/s)
dpkg-source: info: extraction de courier dans courier-0.63.0
dpkg-source: info: extraction de courier_0.63.0.orig.tar.gz
dpkg-source: info: mise en place de courier_0.63.0-2.1.diff.gz
dpkg-source: info: upstream files that have been modified:
courier-0.63.0/afx/afx.h
courier-0.63.0/config.guess
courier-0.63.0/config.sub
courier-0.63.0/courier/Makefile.in
courier-0.63.0/courier/cmlm.h
courier-0.63.0/courier/config.guess
courier-0.63.0/courier/config.sub
courier-0.63.0/courier/doc/Makefile.in
courier-0.63.0/courier/doc/courier-mtaconfig.8.in
courier-0.63.0/courier/doc/courieresmtpd.8.in
courier-0.63.0/courier/ldapaliasdrc.h
courier-0.63.0/courier/module.esmtp/Makefile.in
courier-0.63.0/courier/module.fax/new_fax.in
courier-0.63.0/courier/module.local/preline.c
courier-0.63.0/imap/imapscanclient.c
courier-0.63.0/maildir/Makefile.in
courier-0.63.0/maildir/config.guess
courier-0.63.0/maildir/config.sub
courier-0.63.0/maildrop/configure.in
courier-0.63.0/maildrop/mailbot.c
courier-0.63.0/pcp/po/LINGUAS
courier-0.63.0/pcp/po/de.po
courier-0.63.0/pcp/po/sv.po
courier-0.63.0/webmail/Makefile.am
courier-0.63.0/webmail/configure.in

3° Génération du paquet

 

C’est ici que vous pouvez modifier les sources, changer les options de compilation, etc etc :)

Pour générer le paquet, aller dans le répertoire source précédement télécharger et lancer la compilation et la fabrication du paquet grâce à la commande « dpkg-buildpackage »

makedeb32:/home/source# cd courier-0.63.0/
makedeb32:/home/source/courier-0.63.0# dpkg-buildpackage -rfakeroot
[...]
dpkg-deb : construction du paquet « courier-base » dans « ../courier-base_0.63.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « courier-maildrop » dans « ../courier-maildrop_0.63.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « courier-mlm » dans « ../courier-mlm_0.63.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « courier-mta » dans « ../courier-mta_0.63.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « courier-faxmail » dans « ../courier-faxmail_0.63.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « courier-webadmin » dans « ../courier-webadmin_0.63.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « sqwebmail » dans « ../sqwebmail_0.63.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « courier-pcp » dans « ../courier-pcp_0.63.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « courier-pop » dans « ../courier-pop_0.63.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « courier-imap » dans « ../courier-imap_4.6.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « courier-ldap » dans « ../courier-ldap_0.63.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « courier-ssl » dans « ../courier-ssl_0.63.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « courier-mta-ssl » dans « ../courier-mta-ssl_0.63.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « courier-pop-ssl » dans « ../courier-pop-ssl_0.63.0-2.1_i386.deb ».
dpkg-deb : construction du paquet « courier-imap-ssl » dans « ../courier-imap-ssl_4.6.0-2.1_i386.deb ».
dpkg-genchanges >../courier_0.63.0-2.1_i386.changes
dpkg-genchanges: pas d'inclusion du code source original dans l'envoi (« upload »)
dpkg-buildpackage: envoi d'un binaire et du fichier diff (aucune inclusion du code source d'origine)

 

Et voilou ! Vous avez plein de jolies paquets Debian !!


Article lu 1375 fois

Laisser un commentaire