Sommaire
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
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ô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