Malgré ma bonne volonté, je n’arrive pas à maintenir un rythme très régulier pour animer mon blog. Il faut dire que rédiger un bon article (c’est-à-dire avec du contenu intéressant, et avec une relecture pour éliminer la majorité des fautes d’orthographe et de grammaire) cela prend beaucoup de temps, et que le temps je n’en ai pas beaucoup à revendre.
En effet, depuis quelques temps je me suis mis à contribuer à dpkg. J’ai commencé avec un projet plutôt important, à savoir l’amélioration de dpkg-shlibdeps pour qu’il génère des dépendances minimales en fonction des symboles des bibliothèques utilisés par chaque programme. Tout au long, j’ai maintenu à jour une page du wiki avec les détails et l’avancement:
http://wiki.debian.org/Projects/ImprovedDpkgShlibdeps.
Comme le développement était assez important, il a eu lieu sur une branche dédiée qui vient juste d’être intégrée dans la branche master (autrement dit, le résultat sera dans la prochaine version de dpkg, c’est-à-dire la version 1.14.8).
Ce projet représente à mon avis une avancée très importante car si les bibliothèques les plus importantes emploient ce mécanisme rapidement, la majorité des paquets auront des dépendances moins strictes et il sera beaucoup plus souvent possible d’installer un paquet de unstable dans stable sans avoir besoin de le recompiler. Autrement dit, il y aura moins de rétro-portages (« backports ») à compiler et il sera plus facile d’installer la dernière version d’une application donnée.
Ce premier projet étant terminé, je me suis attaqué à un plus petit problème mais qui est intéressant tout de même. Jusqu’à présent, dpkg-gencontrol se contentait de substituer les variables dans les dépendances et d’écrire le résultat bêtement dans le champ correspondant.
Parfois le jeu des substitutions introduit des dépendances en double (parfois plus ou moins stricte). Comme lintian se plaint de ces problèmes, cela a conduit de nombreux mainteneurs à supprimer les variables et à mettre en dur les dépendances souhaitées. Maintenant, cela n’est plus nécessaire. En outre, les dépendances sont optimisées de telle sorte que si une dépendance dans le champ Pre-Depends implique une dépendance du champ Depends, cette dernière est supprimée (il en va de même pour les dépendances plus faibles listées dans Recommends puis Suggests). Je viens de soumettre une série de patchs pour inclure toutes ces fonctionnalités.
Je ne sais pas encore quel sera mon prochain projet, mais les récentes discussions sur un nouveau format de paquet source m’interpellent et peut-être vais-je essayer d’implémenter quelque chose qui combine le support du format wig&pen et les avancées apportées par les VCS distribués.
Ces différents développements concernent le paquet dpkg-dev qui contient essentiellement du perl. Ceux qui ne maîtrisent pas le C et qui n’osaient pas s’approcher de dpkg à cause de cela peuvent retourner leur veste et nous rejoindre sur #debian-dpkg sur irc.debian.org et la liste de diffusion debian-dpkg.
Enfin, http://wiki.debian.org/Teams/Dpkg contient des informations intéressantes pour qui veut débuter sur ce projet.