Mettre à jour le contenu d'un package debian

Récemment, avec le passage en version 22.1 de mon éditeur favori, j'ai eu un soucis avec le mode php qui permet notament la mise en valeur du code par la coloration syntaxique de celui-ci. La version du mode que j'utilisais était vieille comme mes robes comme dirait ma grand-mère!
J'ai beau avoir ma distribution debian en version instable, la version la plus récente était la 1.1.0 qui datait tout de même du 24 janvier 2004. Depuis sont sorties plusieurs versions. La plus récente date du mois de janvier 2008. Je ne sais pas qui maintient ce paquet mais il a dû partir sur une île déserte et ne donne plus signe de vie. Comme ce mode ne fonctionnait pas avec ma nouvelle version d'emacs j'ai décidé d'utiliser une version plus récente du mode php et j'ai donc mis à jour le package debian.

Faire un package debian à partir des sources d'une application n'est pas très complexe mais en faire un à partir d'un autre est encore plus simple ! J'ai récupéré la version 1.1.0-2 du package debian et la version 1.4 de php-mode. Après il suffit de faire les opérations suivantes:
  1. création d'un répertoire pour contenir les sources du package, php-elisp_1.4.0, par exemple, ainsi qu'un sous répertoire DEBIAN contenant les métadonnées.
    # mkdir-p php-elisp_1.4.0/DEBIAN
  2. extraction des métadonnées de l'ancien package:
    # dpkg-deb -e php-elisp_1.1.0-2_all.deb php-elisp_1.4.0/DEBIAN
  3. extraction des sources de l'ancien package:
    # dpkg -x php-elisp_1.1.0-2_all.deb php-elisp_1.4.0

    Le contenu du répertoire php-elisp_1.4.0 ressemble à ça (sortie de la commande tree):

    .
    |-- DEBIAN
    | |-- conffiles
    | |-- control
    | |-- md5sums
    | |-- postinst
    | `-- prerm
    |-- etc
    | `-- emacs
    | `-- site-start.d
    | `-- 50php-elisp.el
    `-- usr
    |-- lib
    | `-- emacsen-common
    | `-- packages
    | |-- install
    | | `-- php-elisp
    | `-- remove
    | `-- php-elisp
    `-- share
    |-- doc
    | `-- php-elisp
    | |-- README.Debian
    | |-- changelog.Debian.gz
    | `-- copyright
    `-- emacs
    `-- site-lisp
    `-- php-elisp
    `-- php-mode.el
  4. mise à jour du fichier php-mode.el
  5. mise à jour de la version du package dans le fichier DEBIAN/control en remplaçant 1.1.0-2 par 1.4.0
  6. mise à jour de la somme md5 de la nouvelle version de php-mode dans le fichier DEBIAN/md5sums:
    # md5sum php-elisp_1.4.0/usr/share/emacs/site-lisp/php-elisp/php-mode.el
  7. reconstruction du package:
    # dpkg-deb --build php-elisp_1.4.0
  8. installation du nouveau package:
    # dpkg -i php-elisp_1.4.0.deb

Haut de page