<> Quelques astuces pour Debian... == Procédure pour faire un rétro-portage (backport) Debian == === Exemple avec python-django 1.4 pour Squeeze === Exemple (simple) du rétro-portage de `python-django` 1.4 pour [[Debian/Squeeze]]. * travailler sur une machine de développement sous [[Debian/Squeeze]], sous un utilisateur '''non''' privilégié (pas `root` !) * ajouter les sources des backports de Debian et de l'AuF : {{{ sudo tee -a /etc/apt/sources.list << __EOF__ deb http://backports.debian.org/debian-backports squeeze-backports main deb http://apt.auf.org/ squeeze-backports auf __EOF__ sudo apt-get update }}} * installer les outils de développement Debian : {{{ sudo apt-get install devscripts dpkg-dev dput fakeroot debhelper build-essential }}} * récupérer les sources de la version 1.4 de `python-django` : {{{ dget http://cdn.debian.net/debian/pool/main/p/python-django/python-django_1.4-1.dsc }}} . {i} aller sur http://packages.qa.debian.org/python-django pour trouver les versions disponibles * extraire les sources d'origine et y appliquer les modifications Debian : {{{ dpkg-source -x python-django_1.4-1.dsc }}} * vérifier les dépendances nécessaires pour le rétro-portage, puis les installer : . {{{ cd python-django-1.4 dpkg-checkbuilddeps sudo apt-get install -t squeeze-backports python-sphinx }}} * indiquer les changements dans le journal Debian : {{{ dch -i }}} * changer le numéro de version pour `1.4-1~auf60+1` (voir http://backports-master.debian.org/Contribute/#index5h3) * ajouter une ligne de journal, par exemple : {{{ * Rebuild for Squeeze. }}} * vérifier, et corriger au besoin, ses nom et adél en dessous * reconstruire le paquet dans l'environnement local => rétro-portage [[Debian/Squeeze]] : . {{{ debuild -sa -us -uc }}} * si tout s'est bien passé, les fichiers générés se trouvent dans le répertoire parent : . {{{ ls ../*auf*.deb }}} * pour un déploiement, envoyer dans le [[DépôtAPT|dépôt APT AuF]] : {{{ debrelease --dput squeeze-test }}} === Exemple avec phpPgAdmin 3.5.1 pour Woody === Exemple (simple) du rétro-portage de `phppgadmin` pour [[Debian/Woody]]. * travailler sur une machine de développement sous [[Debian/Woody]] * ajouter les sources de [[Debian/Sarge]], dans le `/etc/apt/sources.list` : . {{{ deb-src http://ftp.ca.debian.org/debian/ sarge main }}} * ajouter également `debhelper`, souvent nécessaire pour les rétro-portages : . {{{ deb http://www.backports.org/debian/ woody debhelper }}} * mettre à jour la liste des paquets disponibles : . {{{ # apt-get update }}} * installer quelques outils de base nécessaires : . {{{ # apt-get install -u build-essential devscripts fakeroot }}} * installer les dépendances nécessaires pour le rétro-portage : . {{{ # apt-get build-dep phppgadmin }}} * passer sous un utilisateur « non-root » quelconque * récupérer les sources : . {{{ $ apt-get source phppgadmin $ cd phppgadmin-3.5.1 }}} * re-numéroter pour respecter la gestion des versions : {{{$ dch -i}}} * changer le numéro de version pour `3.5.1-0.auf.1` (voir http://www.backports.org/contribute.html) * changer la distribution `unstable` pour `stable` * ajouter une ligne de journal, par exemple : {{{* Woody backport.}}} * indiquer son nom et adél en dessous * reconstruire le paquet dans l'environnement local => rétro-portage [[Debian/Woody]] : . {{{ $ dpkg-buildpackage -rfakeroot }}} * si tout s'est bien passé, les fichiers générés se trouvent dans le répertoire parent : . {{{ $ ls ../*.auf.* }}} == Procédure pour corriger une dépendance foireuse^Wincorrecte == ''ATTENTION : cette procédure n'est à utiliser qu'en dernier recours, par exemple sur un paquet dont on n'a pas le source'' * extraire le contenu du paquet : . {{{ $ dpkg-deb --extract le-paquet.deb /tmp/temporaire }}} * extraire le fichier de contrôle du paquet : . {{{ $ dpkg-deb --control le-paquet.deb /tmp/temporaire/DEBIAN }}} * éditer le fichier de contrôle pour corriger le problème : . {{{ $ vi /tmp/temporaire/DEBIAN/control }}} * reconstruire le paquet : . {{{ $ dpkg-deb --build /tmp/temporaire le-paquet-corrigé.deb }}}