Mes activités Debian en janvier 2012

Voici le récapitulatif mensuel de toutes mes activités gravitant autour de Debian. Si vous faites partie des personnes ayant fait un don pour soutenir mon travail (213,68 €, merci à tous !), c’est l’occasion de constater ce que je fais de votre argent. Sinon, c’est toujours quelques nouvelles intéressantes sur l’avancement de mes différents projets.

dpkg

La plus « importante » modification réalisée a consisté en un petit patch mettant un terme à des années de discussions récurrentes à propos des cibles build-arch et build-indep de debian/rules (cf. bogue n°229357).

Le Comité Technique s’était auparavant saisi du dossier (cf. bogue n°629385) mais avait échoué à prendre une quelconque décision. Cela nous a néanmoins permis d’obtenir des chiffres concrets sur les dommages collatéraux infligés aux archives pour chacune des méthodes envisagées. Guillem et moi-même sommes finalement parvenus à un accord sur la voie à emprunter.

Le reste de ce que j’ai accompli en tant que mainteneur du paquet dpkg n’a pas grand chose à voir avec de la programmation : j’ai passé en revue le travail qu’a effectué Gianluca Ciccarelli sur dpkg-maintscript-helper. Celui-ci essaye de mettre au point des outils facilitant la migration entre dossiers et liens symboliques. J’ai également revu le patch long de 2000 lignes de Patrick Schoenfeld : la finalité étant de mettre à disposition une API Perl permettant de parcourir les logs de dpkg, et d’en extraire des informations utiles.

J’ai mis à jour la page de manuel de dpkg-architecture en documentant l’extrait de code Makefile /usr/share/dpkg/architecture.mk, et en retirant les informations qui ne sont plus pertinentes aujourd’hui.

J’ai passé en revue un énorme patch mis au point par Russ Alberry, et destiné à mettre à jour le guide de référence Debian, ainsi que documenter l’usage des fichiers symboles pour les bibliothèques. En tant que mainteneur de dpkg-gensymbols, je ne pouvais qu’être heureux de le voir proprement documenter au niveau de la référence développeur.

J’ai abordé sur la liste de diffusion dpkg un détail qui m’a ennuyé pendant un bon moment : certaines mentions de copyright étaient embarquées dans des chaînes traduisibles et, par conséquent, les mettre à jour demandait des efforts inutiles aux traducteurs. Nous avons finalement décidé de supprimer ces mentions, et de les garder uniquement dans les sources.

J’ai mis à jour ma branche multiarch sur celle de Guillem plusieurs fois, et toutes les corrections qu’elle contenait ont été intégrées (souvent sous une forme modifiée).

Malheureusement, et même si le code fonctionne plutôt bien, Guillem ne veut rien pousser dans Debian tant qu’il n’a pas fini de tout passer en revue… et le délai que cela entraîne affecte un certain nombre de personnes. Cyril Brulebois a essayé de publier un instantané de l’état actuel de la branche multiarch dans experimental, mais Guillem est revenu rapidement sur cet upload.

Je suis quelque peu perdu face à cette situation. Il continue de travailler dans son coin malgré mes offres répétées de l’aider, il ne partage pas beaucoup de détails, excepté certains commentaires dans les logs d’envoi ou lorsque cela touche l’interface publique. Je me suis une nouvelle fois plaint de cette triste situation.

Debian Package Maintenance Hub

Il s’agit du nom de code que j’utilise pour la nouvelle infrastructure que je souhaiterais développer, afin de remplacer le Système de Suivi des Paquets actuel (PTS – Packages Tracking System) ainsi que le tableau de bord des mainteneurs et d’autres services. J’ai commencé une ébauche de proposition d’amélioration (DEP – Debian Enhancement Proposal), cf. DEP-2, et demandé l’avis des personnes impliquées dans l’équipe Assurance Qualité.

Il semble que personne n’ait pour l’instant d’objections majeures quant à l’idée directrice de ce projet, et les commentaires exprimés sont plutôt enthousiastes. Je vais continuer à peaufiner cette proposition d’amélioration au sein de l’équipe Assurance Qualité jusqu’à ce qu’elle soit mûre pour une audience plus large, comme debian-devel@lists.debian.org.

Système de Suivi des Paquets

Même si j’ai commencé à concevoir son remplaçant, le Système de Suivi des Paquets actuel continuera à être utilisé pour quelques temps encore. En conséquence, j’ai implémenté deux nouvelles fonctionnalités qui me semblaient importantes : notifier le mainteneur (via la section « TODO ») lorsqu’au moins un bogue relatif à un objectif de publication est ouvert, et afficher une notification lorsque le paquet correspondant est concerné par une transition prévue ou en cours.

Tâches diverses d’empaquetage

J’ai créé et uploadé le paquet dh-linktree, un addon debhelper permettant de créer des arborescences de liens symboliques (utiles pour remplacer les copies embarquées de bibliothèques PHP/JavaScript par des liens symboliques vers leurs équivalents empaquetés).

J’ai également empaqueté quilt en version 0.50, et aidé les auteurs upstream à intégrer un patch Debian transmis par Martin Quinson (co-mainteneur de quilt). Autres empaquetages réalisés : celui de la mise à jour de sécurité de WordPress (3.3.1), et ceux des nouvelles versions amont de feed2omb et de gnome-shell-timer.

Enfin, j’ai préparé une nouvelle version Debian de python-django, corrigeant le bogue RC n°655666, et ce grâce à un patch récupéré depuis le dépôt SVN amont.

Traduction du Cahier de l’Admin : point d’étape

Nous continuons à progresser de manière satisfaisante dans la traduction du Cahier de l’Admin Debian : 12 chapitres sont maintenant traduits.

La campagne de libération poursuit (doucement) son bonhomme de chemin : 72% de la somme totale a été atteinte (grâce à 63 nouveaux donateurs !), contre 67% début janvier.

Merci

Au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Debian Activities in January 2012 contribuée par Weierstrass01.

Mes activités Debian en décembre 2011

Voici le récapitulatif mensuel de toutes mes activités gravitant autour de Debian. Si vous faites partie des personnes ayant fait un don pour soutenir mon travail (364,18 €, merci à tous !), c’est l’occasion de constater ce que je fais de votre argent. Sinon, c’est toujours quelques nouvelles intéressantes sur l’avancement de mes différents projets.

dpkg et multiarch

J’avais quelques espoirs d’obtenir pour Noël, dans Sid, une version de dpkg supportant multi-arch. L’objectif était jugé réaliste par Guillem, mais celui-ci tomba malade… ce qui nous renvoie à ce mois de janvier, où rien n’a vraiment avancé.

La taille de sa branche pu/multiarch/master n’a pas vraiment diminué, et ce alors que certains de ses commits de décembre concernaient le support multi-architecture. Il nous en reste encore 36 à intégrer, et la majorité du travail qu’il a réalisé s’apparente à de la re-factorisation de bouts de code déjà intégrés. Il a également lancé plusieurs discussions concernant des changements d’interface. J’y ai participé, avec l’espoir de pouvoir de les amener à une conclusion rapide.

De mon côté, je maintiens toujours ma propre branche pu/multiarch/full, dérivée de celle de Guillem, mais augmentée de correctifs supplémentaires que j’ai réalisés, mais qui n’ont pas encore été intégrés. De plus, ma branche n’inclut pas une des modifications de Guillem : sa branche autorise en effet la mise à jour croisée de paquets entre architectures, tandis que dpkg ne gère pas encore correctement cette fonctionnalité.

J’ai commencé à travailler sur ce projet il y a un an déjà, et je ne peux qu’espérer que ce mois de janvier verra la conclusion de cette histoire sans fin. :-|

Travaux divers concernant dpkg

J’ai revu (et plus tard intégré) un patch de Kees Cook améliorant dpkg-buildflags de sorte que ce dernier puisse faire état des options de compilation renforcée activées. Cette fonctionnalité pourra ainsi permettre à des outils tels que lintian de détecter les options de compilation renforcée manquantes.

J’ai encadré/guidé Gianluca Ciccarelli qui essaye d’améliorer dpkg-maintscript-helper afin de gérer correctement le remplacement de répertoires par des liens symboliques, et vice-versa.

Je me suis occupé du bogue n°651993, de sorte que dpkg-mergechangelogs n’échoue plus lorsqu’il rencontre une version de changelog invalide. Je me suis également occupé du n°652414, de telle sorte que dpkg-source --commit accepte un nom de fichier relatif lorsqu’un fichier de patch lui est explicitement passé.

Guillem a également intégré un correctif que j’ai développé concernant le bogue LP n°369898.

Travaux d’empaquetage

Je me suis attelé à l’empaquetage de WordPress 3.3 dès que la version est sortie. L’upstream n’a pas mis à jour sa page de conformité à la licence GPL, ce en dépit du rapport de bogue que j’avais créé. Je me suis donc mis en chasse des sources requises, et les ai intégrées dans l’archive debian.tar.xz du paquet source Debian. C’est une solution assez brutale, mais qui présente le double avantage, d’une part, de permettre la clôture du bogue critique pour la publication n°646729 ; et d’autre part, de réintroduire les fichiers Flash écartés par le passé… ce qui est une bonne chose, dans la mesure où cet uploader à base de Flash est beaucoup plus joli que celui tirant parti du navigateur.

Quilt 0.50 est sortie après 2 ans de (lent) développement. Le paquet Debian comporte de nombreux patchs, et plusieurs de ces derniers ont du être mis à jour afin de tenir compte de cette publication. Certains d’entre eux furent heureusement intégrés upstream, mais cela ne me pris pas moins d’une matinée entière pour boucler cette mise à jour. J’ai également converti l’empaquetage de CDBS vers dh avec un mini-fichier debian/rules.

Zim 0.54 est sortie, et j’ai immédiatement mis à jour le paquet, car cette dernière version corrige un bogue qui m’ennuyait.

Revue de l’empaquetage de ledgersmb

En tant que mainteneur de sql-ledger (et utilisateur de ce logiciel pour ma comptabilité), j’espérais voir ledgersmb empaqueté, de sorte qu’il puisse tenir lieu de remplaçant pour ce premier. J’ai suivi tous les efforts déployés au fil du temps dans ce but, mais aucun n’a abouti à un véritable paquet Debian.

C’est vraiment dommage, et c’est la raison pour laquelle j’ai essayé d’y remédier en me proposant pour parrainer l’envoi du paquet. D’où une première revue de l’empaquetage. Cette revue a pris plusieurs heures, car il est nécessaire d’expliquer absolument tout ce qui n’est pas à la hauteur des standards attendus.

J’ai également créé un rapport de bogue/demande d’évolution pour le paquet lintian (cf. n°652963), suggérant que ce dernier devrait détecter les utilisations incorrectes de dpkg-statoverride (un exemple de « mauvaise » utilisation était présent dans le paquet de ledgersmb).

nautilus-dropbox

Je souhaitais fignoler les derniers détails du paquet dans les temps pour la sortie de la prochaine Ubuntu LTS, compte tenu du fait que le gel de l’import Debian est en janvier. J’ai ainsi intégré certaines des importantes corrections que je souhaitais apporter.

Le paquet Debian diverge de celui amont dans la mesure où les binaires non-libres ne sont pas installés dans $HOME, mais dans /var/lib/dropbox. Ma première correction a concerné un bogue qui avait pour effet une possession incorrecte des fichiers (normalement par root exclusivement). Décompresser le tarball en tant que root entraîne la réutilisation des informations de l’utilisateur et du groupe embarqués, informations ayant changé récemment du côté de Dropbox apparemment.

Nous avons ensuite identifié d’autres problèmes en lien avec la gestion des serveurs mandataires (proxy), cf. n°651065. J’ai également corrigé ce dernier, car il est relativement fréquent que le téléchargement initial déclenché durant la configuration du paquet échoue… et dans ce cas, il appartient à l’utilisateur de re-déclencher le téléchargement après avoir obtenu les autorisations appropriées via PackageKit. Sans mon correctif, l’usage de pkexec aurait entraîné la perte de la variable d’environnement http_proxy, et donc l’impossibilité pour l’utilisateur de télécharger à travers un serveur mandataire.

Enfin, j’ai également réorganisé les patchs spécifiques à Debian, ce afin de mieux séparer ce qui pourrait et devrait être intégré par les auteurs amonts, et ce dont ils ne veulent pas. Dropbox est malheureusement contre l’installation sous /var/lib/dropbox (et les changements qui en découlent), car ils tiennent à mettre à jour automatiquement leurs binaires non-libres.

Un point sur le livre

La traduction du Cahier de l’Admin Debian progresse : 6 chapitres sont déjà traduits (bien que non encore relus).

Sa campagne de libération, quant à elle, avance (lentement). Grâce à 90 nouveaux donateurs, la somme collectée est passée de 60 (début décembre) à 67% de la somme visée !

Merci

Au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Debian Activities in December 2011 contribuée par Weierstrass01.

Mes activités Debian en novembre 2011

Voici le récapitulatif mensuel de toutes mes activités gravitant autour de Debian. Si vous faites partie des personnes ayant fait un don pour soutenir mon travail (310,73 €, merci à tous !), c’est l’occasion de constater ce que je fais de votre argent. Sinon, c’est toujours quelques nouvelles intéressantes sur l’avancement de mes différents projets.

dpkg : la saga « Multi-Arch »

J’en connais beaucoup qui, tout comme moi, attendent impatiemment l’arrivée de multiarch dans unstable. Les choses avancent, pas aussi vite toutefois que je l’aurais espéré. Guillem a intégré la moitié de la branche entre le 24 octobre et le 6 novembre, après quoi la majorité du travail a été effectuée dans son dépôt personnel sur la branche pu/multiarch/master.

J’ai examiné son dépôt de temps en temps, dans la mesure où il ne m’a pas informé de ses avancées. J’ai ainsi pu noter des modifications les 10, 19, 23 et 28 novembre, ainsi que le 1er décembre.

Voilà un certain temps, Guillem avait annoncé des « modifications d’interface », mais n’a communiqué depuis qu’à propos d’un passage de l’option --foreign-architecture (à déclarer dans /etc/dpkg/dpkg.cfg) vers la commande explicite dpkg --add-architecture. Cette dernière n’ayant besoin d’être appelée qu’une seule fois (cf. ce mail). Au jour d’aujourd’hui (2 décembre), aucun autre mail évoquant des modifications d’interface n’a été envoyé.

J’ai passé en revue le travail de Guillem le 23 novembre et essayé de lancer le code de sa branche. La journée entière fut consacrée à traquer les régressions et à soumettre les correctifs correspondants à Guillem. Un tel travail fut rendu relativement simple grâce à la suite de tests que j’ai créé lorsque j’ai développé ma propre branche.

Toutes les anomalies rapportées à Guillem ont été corrigées dans la dernière version de sa branche, bien que les correctifs appliqués soient légèrement différents de ceux que j’avais soumis.

dpkg : rétro-portage vers Squeeze

En début de mois, j’ai envoyé ce que je pensais être un rétro-portage très consensuel de dpkg 1.16.1.1. Les événements ont montré que j’avais tort !

Après quelques discussions, je pense que nous sommes tombés d’accord sur le fait que seuls les rétro-portages de dpkg-dev et libdpkg-perl étaient acceptables. Mon but n’était pas d’apporter la toute dernière version de dpkg aux utilisateurs, mais de permettre aux mainteneurs de rétro-porter leurs paquets en tirant profit des dernières fonctionnalités de dpkg-dev >= 1.16 (telles que les drapeaux de compilation renforcée, les extraits de makefile fournis par /usr/share/dpkg/ ou l’interface améliorée de dpkg-buildflags).

En conséquence, j’ai modifié le paquet source pour squeeze-backports afin de compiler uniquement dpkg-dev et libdpkg-perl. Chose faite le 23 novembre, le paquet attend maintenant dans la file « NEW » qu’un administrateur le prenne en charge.

Travaux dpkg divers

J’ai intégré le patch de Colin Watson qui permet de vérifier les dépendances de compilation sur des architectures étrangères (en tenant compte du statut « Multi-Arch » de chaque paquet listé).

J’ai publié la version 1.16.1.2 de dpkg, comportant deux corrections mineures qui attendaient dans la branche sid. Je tenais à m’en débarrasser pour libérer la voie à un nouvel « upload » pour la version 1.16.2 avec le support multi-architecture. Le paquet venant juste de migrer vers testing, tout va bien.

Une journée entière a été consacrée au tri des bogues dpkg sur Launchpad, et nous en sommes maintenant à moins de 77 bogues. Un grand nombre d’entre eux étant tagués « incomplet », il est probable qu’ils expirent dans deux mois.

Le cahier de l’admin Debian

eBookUn des chapitres du livre a été rendu librement consultable, ce qui permet de se faire une idée de la qualité de celui-ci. Ce chapitre couvre les outils APT de manière approfondie : je parie que même vous qui me lisez régulièrement pourriez apprendre à sa lecture sur apt-get/aptitude !

La campagne de financement sur Ulule a pris fin ce 28 novembre, et nous avons rassemblé 24835€, grâce à 675 donateurs. De cette somme, 14395€ ont été versés au titre de la libération du livre, tandis que le complément correspond aux différentes récompenses offertes ou pré-commandes.

La traduction de ce livre est donc chose acquise (nous venons juste de la commencer), au contraire de sa libération sous une licence libre. Mais ne désespérez pas, puisque la campagne de libération continue comme prévu jusqu’à ce que l’objectif des 25000€ soit atteint !

Cette campagne permanente sera hébergée sur le site du projet plutôt que sur Ulule. A noter que toute contribution d’au moins 10€ vous garantit l’envoi d’une copie du livre électronique dès qu’il sera disponible, et ce même si l’objectif des 25000€ n’est pas encore atteint.

Système de suivi des paquets (PTS)

J’ai soumis, en début de mois, deux idées d’améliorations du PTS (Package Tracking System) :

  • Afficher les bogues ouverts correspondant à des objectifs pour la publication (n°647258)
  • Afficher un avertissement lorsque le paquet est impliqué dans une transition en cours afin d’éviter une mise à jour qui perturberait cette dernière (#647901).

Si vous codez et souhaitez commencer à contribuer à Debian et son équipe Qualité, ces bogues pourraient être un bon début. :-)

J’ai été en contact pour ces deux tickets avec la Release Team, étant donné qu’ils ont besoin tout deux en entrée de données structurées en provenance de cette équipe. Merci à Meddi Dohguy et Niels Thykier pour leur aide.

Le débat concernant la « re-localisation » du PTS a ressurgi un peu plus tard dans le courant de ce mois. Pour des raisons historiques, le PTS était hébergé sur master.debian.org, de concert avec le BTS (Bugs Tracking System – Système de Suivi des Bogues). Ce dernier a maintenant sa machine dédiée et il n’y a plus de raison pour que le PTS soit séparé du reste des services d’Assurance Qualité hébergés sur qa.debian.org (actuellement quantz.debian.org). Nous nous sommes occupés (Martin Zobel Helas et moi) de planifier sa migration, que nous avons exécutée le 19 novembre. Elle s’est parfaitement bien déroulée et pratiquement personne n’a remarqué le changement (seule une dépendance non documentée était manquante, ce qui brisa l’interface SOAP).

Travaux d’empaquetage divers

WordPress était non fonctionnel dans Ubuntu, en plus de ne plus être proprement synchronisé avec Debian, et ce du fait d’un changement quasi-inutile de leur côté. J’ai donc demandé une synchronisation, de sorte que la version de Debian soit importée dans Ubuntu.

J’ai sponsorisé l’upload de docbook-xsl 1.76.1, qui m’était utile pour Publican. J’ai ensuite uploadé Publican et ai découvert que la suite de tests levait un bogue dans fop (consigné dans le bogue n°649476). J’ai temporairement désactivé cette dernière et ait envoyé Publican 2.8 dans unstable. En parallèle, j’ai soumis deux autres bogues upstream et leurs correctifs pour des problèmes que j’ai découvert alors que j’essayais de générer le chapitre librement consultable de mon livre (cf. ici et ici).

J’ai uploadé nautilus-dropbox en version 0.7.1 et corrigé le bogue n°648215 du même coup. J’ai également procédé à un non-maintainer upload de bison afin de corriger un bogue critique pour la publication ouvert depuis longtemps, et qui m’a encore touché durant une mise à jour (cf. le bogue n°645038).

J’ai déposé sur experimental une nouvelle version de gnome-shell-timer compatible avec GNOME 3.2. J’en ai profité pour installer depuis experimental les quelques paquets GNOME 3.2 non encore disponibles dans unstable

Merci

Au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Debian Activities in November 2011 contribuée par Weierstrass01.

Mes activités Debian en octobre 2011

Voici le récapitulatif mensuel de toutes mes activités gravitant autour de Debian. Si vous faites partie des personnes ayant fait un don pour soutenir mon travail (130,30 €, merci à tous !), c’est l’occasion de constater ce que je fais de votre argent. Sinon, c’est toujours quelques nouvelles intéressantes sur l’avancement de mes différents projets.

Travail sur dpkg

Le début du mois a été marqué par la correction de bogues nouvellement rapportés, ceci pour préparer la publication de la version 1.16.1.1 :

  • n°644492 : une erreur sur une de mes modifications du code de mise en place des triggers entraînait le marquage erroné du paquet comme « configuré », alors qu’il n’était que décompressé dans un nouveau chroot.
  • n°642656 : le nouveau refus de dpkg-source de fabriquer un paquet source avec des modifications non-enregistrées dans un patch a cassé le format source « 2.0″ (quasi-inutilisé, sauf par la suite de tests lintian apparemment).
  • n°644412 : l’extrait de makefile « buildflags.mk » ne respectait pas les nouvelles variables d’environnement spécifiques aux mainteneurs (DEB_CFLAGS_MAINT_APPEND, par exemple), du fait de make qui ne transmet pas lesdites variables à travers le code $(shell …). Corrigé en exportant manuellement les variables requises.
  • J’ai également désactivé la sortie de dpkg-buildpackage en ce qui concerne les drapeaux de compilation, dans la mesure où cela induisait en erreurs de nombreux mainteneurs. dpkg-buildpackage invoquant debian/rules il n’a aucun moyen (propre) de prendre connaissance des changements de drapeaux de compilation effectués par le mainteneur en définissant les variables d’environnement associées. Les mainteneurs, quant à eux, s’attendent à voir en sortie les drapeaux de compilation tels qu’ils les ont modifiés, pas tels qu’ils sont initialisés par défaut par la distribution.

Nous avons décidé, avec l’aide de Guillem, d’une correction appropriée concernant une situation d’accès concurrent (race condition) survenant parfois à l’occasion de compilations parallèles, lorsque deux dpkg-gencontrol concurrents essayent de mettre à jour des fichiers debian/files (cf. n°642608). Pour mener à bien cette correction, un nouveau paquet était nécessaire : libfile-fcntllock-perl, qui nous a été gentiment empaqueté par l’équipe Perl. Une fois tout ceci mis en place, la correction était plutôt simple.

Support du multi-architecture

J’ai également passé beaucoup de temps sur le support multi-architecture. Tout d’abord en corrigeant un vieux bogue qui exigeait le support des chemins multi-arch dans le cas d’une cross-compilation (cf. n°595144). Deux patchs avaient été proposés, mais la discussion n’ayant pas vraiment tranchée en faveur de l’un ou l’autre, j’ai appliqué mon propre patch, qui a de plus l’avantage d’être plus proche techniquement de la manière dont nous gérons la compilation croisée.

J’ai ensuite corrigé deux problèmes rapportés sur la version Ubuntu de dpkg. Le premier (LP n°863675) était assez sérieux puisqu’il provoquait la « disparition » de paquets installés à l’avantage de leurs équivalents d’architectures étrangères supprimés (mais dont il restait certains fichiers de configuration). Le second (LP n°853679) n’affectait que les utilisateurs de dselect (il y en a encore apparemment !) dont une bibliothèque multi-architecture installée était en conflit avec elle-même (exemple : Provides: toto, Conflicts: toto).

Mais la plus grosse partie du temps passé sur la problématique multiarch le fut dans des discussions débattant, avec des interlocuteurs variés, de la direction à donner à multiarch. La Release Team intervint sur le planning du merge, afin de s’assurer de la disponibilité pour Wheezy. Le Responsable du projet Debian, quant à lui, fit le résumé des problématiques rencontrées jusqu’ici.

Bien que le déroulé des actions prises pour multiarch ne soit pas forcément celui que j’aurais espéré, ces dernières n’en représentent pas moins un progrès depuis que Guillem a commencé à pousser certains modifications validées. Des 66 modifications présentes il y a une semaine dans ma branche pu/multiarch/full, 20 ont déjà été intégrées dans la branche principale.

Mise à jour de sécurité et bogue RC pour python-django

Le mainteneur de python-django n’ayant pas réussi à préparer les mises à jour de sécurité requises, j’ai pris le relais et réalisé les nouvelles versions 1.2.3-3+squeeze2 pour Squeeze et 1.0.2-1+lenny3 pour Lenny. Cette mise à jour de sécurité est malheureusement un exemple du délai conséquent que peut prendre la publication d’une version de sécurité, lorsque le mainteneur du paquet est inactif.

La situation est compliquée, dans ce cas précis, par le fait que l’équipe en charge de la sécurité sous Debian n’a pas voulu publier de mise à jour pour Squeeze tant que celle de Lenny n’avait pas fait l’objet d’investigations (ce qui requiert un effort d’autant plus important que la version n’est plus supportée upstream). Sur ce point, leur communication ne fut pas des plus claires.

Quelques temps après, un autre bogue RC — Release Critical — a été rapporté sur ce paquet (n°646634) mais s’est révélé être, après investigation, un problème de configuration locale. Sa priorité a donc été rétrogradée, et j’ai transmis aux développeurs amont l’échec de la suite de test, car cette dernière pourrait être améliorée.

Les co-mainteneurs sont quoi qu’il en soit bienvenus : je préfère vraiment n’être que dans la situation du mainteneur « de secours »… :-)

Empaquetage de WordPress

La situation de WordPress ressemble beaucoup à celle de python-django. Je n’y suis également qu’un « mainteneur de secours », mais Giuseppe est resté inactif de nombreux mois et j’ai du m’atteler à la tâche courant août, car je voulais utiliser la nouvelle version amont. Je n’ai découvert que tardivement le fait que je n’étais pas inscrit à la liste de diffusion des bogues WordPress et, par conséquent, le bogue critique n°639733 (que j’ai introduit en même temps que la nouvelle version) est resté tel quel un certain temps. Je l’ai corrigé dès que je m’en suis aperçu.

J’ai également saisi l’opportunité d’initier une discussion sur debian-devel concernant la gestion des bibliothèques javascript embarquées, et j’ai proposé un « mécanisme de remplacement opportuniste via liens symboliques ». WordPress constitue mon banc de test pour ce mécanisme, vous pouvez consulter son debian/dh_linktree implémentant l’algorithme de remplacement.

La discussion n’a quant à elle pas été très intéressante, bien que j’ai appris que Debian exigeait maintenant que chaque paquet source embarquant des fichiers Javascript « minifiés » inclut également les fichiers originaux. C’est d’autant plus pénible, quelque part, que ce n’est dans de nombreux cas pas imposé par la licence (un grand nombre de ces fichiers ne sont pas sous GPL), mais par Debian uniquement. Et les développeurs amont sont nombreux à ne pas s’y conformer, ce qui est le cas de WordPress. En conséquence, le bogue RC n°646729 ouvert par Jakub Wilk est bien parti pour rester ouvert pendant longtemps. Après de nombreuses heures passées à investiguer chaque fichier Javascript du paquet source de WordPress, j’ai créé en retour un nouveau ticket dans le système de suivi des bogues upstream.

Empaquetage de Dropbox

Le retour d’expérience des mois écoulés depuis l’introduction de nautilus-dropbox dans Debian et Ubuntu me permet d’affirmer que la décision de ne supporter le téléchargement de dropbox que via le script de post-installation était une mauvaise idée.

Du fait de cette décision, j’ai été obligé de faire tomber en erreur le script postinst si le téléchargement échouait. Et, même si le message d’erreur est relativement clair, cela n’en a pas moins engendré de nombreux (la plupart automatisés) rapports de bogues côté Ubuntu. Sans parler des problèmes de natures diverses qui sont venus s’ajouter au tableau (comme essayer de démarrer dropbox alors que le paquet n’était pas configuré – ce qui entraîne une erreur, induite par le fait que l’utilisateur n’a pas les droits requis pour installer le logiciel ; ou encore réinstaller le paquet alors que dropbox est en cours de fonctionnement – ce qui entraîne également une erreur…).

Tous ces problèmes sont corrigés dans la version 0.7.0-2 du paquet. Dorénavant, si l’utilisateur doit installer dropbox, il utilisera PolicyKit afin d’obtenir les droits root. Le script postinst n’échouera plus dans le cas d’un échec du téléchargement de dropbox, puisque ce dernier peut être relancé ultérieurement par l’utilisateur. J’ai également corrigé le code du téléchargement, afin de supprimer le fichier remplacé avant d’extraire un nouveau fichier (au lieu d’écraser le fichier existant). Toutes ces modifications ont été transmises upstream.

Cahiers de l’Admin Debian : point d’avancement

Je suis heureux de vous annoncer que la traduction aura bien lieu. Nous avons en effet atteint l’objectif de financement minimal le 22 octobre, ce grâce à 380 donateurs.

La levée de fonds continue cependant, en vue cette fois de libérer le livre. 25000€ doivent ici être atteints, et nous en sommes aujourd’hui à 39% (soit 9950€ dans le fond de libération — ce qui signifie qu’environ 59% de l’argent collecté l’a été au titre de ce fond de libération).

Cliquez ici si vous souhaitez contribuer à la libération de ce livre.

Parvenir à recueillir cette somme en (moins de) 19 jours constitue un challenge ! Mais nous aimons relever de tels challenges, n’est-ce pas ?

Divers

  • J’ai créé le rapport de bogue n°644486. Il concerne dh-make, et a pour objectif un support approprié des drapeaux de compilation dpkg par les nouveaux paquets dès leurs débuts.
  • J’ai intégré de nombreux patchs de Luca Falavigna dans le paquet developers-reference.
  • J’ai discuté de l’intégration des debtags dans le système de suivi des paquets (PTS – Packages Tracking System) avec Enrico Zini et Paul Wise.
  • J’ai mis à jour l’empaquetage du paquet publican pour la nouvelle version 2.8. Cela a nécessité l’écriture d’un patch que j’ai transmis upstream.
  • J’ai créé un rapport de bogue upstream pour hamster-applet. Sa fenêtre n’est plus mise en avant lorsqu’on exécute hamster-time-tracker.

Merci

Au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Debian activities in October 2011 contribuée par Weierstrass01.

Ne créez pas votre paquet Debian avec dpkg -b

J’ai pu observer de nombreuses personnes, ces dernières années, essayant d’utiliser dpkg --build pour créer des paquets Debian. Et, de fait, si vous lisez les pages de manuel de dpkg et de dpkg-deb, l’option semble bien appropriée à cet usage :

-b, --build répertoire [archive|répertoire]

Crée une archive Debian avec l’arborescence contenue dans répertoire. répertoire doit posséder un sous-répertoire DEBIAN qui contient les fichiers de contrôle tel que le fichier « control » lui-même. Ce répertoire n’apparaît pas dans l’archive de l’arborescence du paquet binaire ; mais les fichiers qu’il contient sont mis dans la zone de contrôle du paquet binaire.

On peut en conclure que oui, effectivement, dpkg-deb est l’outil créant en dernière étape les fichiers .deb (aussi connus sous le nom de paquets binaires). Ce qui ne veut pas dire que vous êtes censé appeler un tel outil « bas-niveau » vous-même. En effet, si vous souhaitez empaqueter proprement un logiciel, vous devez plutôt créer un paquet source Debian, qui partira du code source amont pour créer des paquets binaires respectant la charte technique Debian.

Créer un tel paquet source implique également de préparer une arborescence de répertoires (mais avec un sous-répertoire « debian »), ce qui est probablement plus compliqué que d’appliquer dpkg -b à un répertoire ciselé « à la main ». Mais le résultat en est d’autant plus versatile : les outils utilisés apportent une valeur ajoutée en analysant/modifiant dynamiquement les fichiers à l’intérieur de votre paquet (par exemple, les dépendances envers les bibliothèques C requises par votre paquet sont insérées automatiquement).

Si cette méthodologie vous était inconnue, vous souhaiterez peut-être approfondir le sujet grâce au manuel du Nouveau Mainteneur ou à la Charte Debian.

Ceci est une traduction de mon article Avoid a newbie packager mistake: don’t build your Debian packages with dpkg -b contribuée par Weierstrass01.

Abonnez-vous à ce blog par RSS ou par email pour recevoir tous les prochains articles et améliorer votre maîtrise de Debian/Ubuntu.

Mes activités Debian en septembre 2011

Voici le récapitulatif mensuel de toutes mes activités gravitant autour de Debian. Si vous faites partie des personnes ayant fait un don pour soutenir mon travail (144,3 €, merci à tous !), c’est l’occasion de constater ce que je fais de votre argent. Sinon, c’est toujours quelques nouvelles intéressantes sur l’avancement de mes différents projets.

Travail sur dpkg

Tout en m’occupant des derniers détails concernant les options de compilation renforcée pour dpkg 1.16.1, j’ai lancé un appel aux bonnes volontés sur la liste de diffusion debian-devel, avec en ligne de mire les objectifs à atteindre pour la publication concernant l’usage de ces drapeaux. Le but étant ici de s’assurer qu’un nombre conséquent de paquets a été converti/recompilé pour les utiliser.

J’ai ensuite rédigé un brouillon pour l’annonce de l’upload de dpkg (Bits of dpkg maintainers), et l’ai envoyée sur la liste debian-devel-announce. Guillem l’a complété, en ajoutant la liste des nouvelles fonctionnalités depuis la version 1.15.7.

Ce dernier a également effectué un peu de « restructuration » (refactoring) sur updates-alternatives, ce qui a engendré une régression fort heureusement découverte par Sven Joachim. Je l’ai corrigée, et poursuivi le nettoyage plus avant, inspiré par les causes originelles de cette régression (cf. les 4 derniers commits).

À noter que Sven est l’une des rares personnes à utiliser la version git de dpkg. J’espère que le nombre d’utilisateurs de cette version va augmenter, dans la mesure où j’ai documenté l’utilisation des dépôts APT de ces versions autocompilées de dpkg dans le wiki.

J’ai commencé à la fin de ce mois (de septembre) à travailler sur une nouvelle version mineure de dpkg (qui s’apprête à devenir la 1.16.1.1), en corrigeant les inévitables problèmes engendrés par un upload représentant 4 mois de travail (cf. les 4 derniers commits).

Le Cahier de l’Admin Debian

Je ne compte plus les heures passées à finaliser le lancement de la campagne de récolte de fonds pour le Cahier de l’Admin Debian en version anglophone, lancement qui a finalement eu lieu le 27 semptembre.

La collecte est actuellement sur de bons rails avec plus de 75% des fonds nécessaires à la traduction assurés. La route est par contre encore longue concernant le fond de libération (24% pour l’instant). Il est toujours intéressant de noter que plus de 55% des fonds récoltés sont destinés à la libération du livre, il y a donc un nombre important de personnes qui se sentent concernés par celle-ci.

Plus de 300 personnes ont apporté leur soutien au projet à ce jour, et la contribution moyenne s’élève à 38€ par personne. Je m’attendais à une contribution moyenne bien plus faible, mais un nombre de donateurs bien plus important. J’espère toujours attirer un nombre croissant de contributeurs grâce à la perspective d’obtenir un livre électronique sur Debian compatible avec les principes du logiciel libre selon Debian.

Alors, avez-vous déjà commandé votre exemplaire ? Si non, cliquez ici pour y remédier ! ;-) . Vous n’êtes d’ailleurs plus obligé de passer par PayPal pour se faire, mais simplement payer grâce à votre carte bleue.

Mises à jour diverses du blog anglophone

J’ai écrit, au fil du temps, plusieurs articles qui peuvent se révéler utiles pour les utilisateurs et contributeurs Debian. Dans les profondeurs de l’historique, ils ne sont malheureusement pas des plus faciles à trouver. C’est pourquoi j’ai créé des pages d’index pour les lister :

Deux nouveaux articles ont rejoint ces catégories ce mois-ci : Comment trier les bogues dans le système de suivi des bogues Debian (BTS) et Comprendre dpkg, et ne pas rester en plan à cause d’une erreur dans un script de maintenance.

L’écriture du premier article m’a fait réaliser que nous ne disposions pas d’une page montrant de manière synthétique les paquets les plus bogués : je l’ai donc rapidement créé (avec l’aide de UDD), et elle est visible ici.

Travail d’empaquetage divers

J’ai apporté une petite amélioration à la référence du développeur Debian. Luca Falavigna a soumis une modification clarifiant la gestion des méta-paquets (cf. bogue n°569219), j’en ai profité pour l’améliorer et l’intégrer dans le dépôt SVN.

J’ai mis à niveau le paquet nautilus-dropbox vers la version 0.6.9 et, tout en faisant cela, découvert un bogue dans l’outil mergechanges (bogue consigné comme le n°640782). J’ai également uploadé une nouvelle version de quilt, principalement pour mettre à disposition le champ Multi-Arch: foreign, de telle sorte que les dépendances sur quilt de paquets d’autres architectures puissent être satisfaites.

Django a publié quelques annonces de sécurité (consignées dans le bogue n°641405). Le mainteneur principal faisant défaut, j’ai pris le parti (je suis mainteneur de réserve) d’apporter les corrections nécessaires et de publier la version 1.3.1 dans unstable. J’en ai également profité pour passer de python-support à dh_python2, et améliorer quelque peu l’empaquetage (cf. la liste des modifications).

J’ai aussi voulu mettre à jour publican, mais cela s’est avéré impossible : Debian ne dispose pas encore de la dernière version de docbook-xsl. Ce fut l’occasion de découvrir quelques bogues et les rapporter aux auteurs amonts (cf. ces bogues). En plus de ces difficultés, fop refusait de fonctionner à cause d’une erreur liée à Java et l’introduction du support multi-architecture. Le mainteneur Java a rapidement diffusé une version corrigée après que j’ai remonté le bogue.

Publican est donc maintenant prêt et attend la mise à jour de dockbook-xsl dans le dépôt git. J’ai pris contact avec son mainteneur qui pense avoir le temps de s’en occuper vers la mi-octobre.

Merci

Au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Debian activities in September 2011 contribuée par Weierstrass01.

Mes activités Debian en août 2011

Voici le récapitulatif mensuel de toutes mes activités gravitant autour de Debian. Si vous faites partie des personnes ayant fait un don pour soutenir mon travail (91,44 €, merci à tous !), c’est l’occasion de constater ce que je fais de votre argent. Sinon, c’est toujours quelques nouvelles intéressantes sur l’avancement de mes différents projets.

Dpkg

J’ai intégré mon implémentation de dpkg-source --commit à mon retour de la DebConf (travail que je vous avais présenté le mois dernier). J’ai continué à travailler un peu sur les drapeaux de compilation renforcée, mais le projet est gelé tant que Kees Cook n’aura pas fourni la documentation requise pour intégration dans dpkg-buildflags(1).

Pour faire suite à une discussion tenue pendant la DebConf, Michael Prokop a eu la gentillesse de mettre en place un auto-builder de dpkg déclenché par git (en utilisant Jenkins). Vous pouvez maintenant nous aider en testant la dernière version git. Pour ce faire :

$ wget -O - http://jenkins.grml.org/debian/C525F56752D4A654.asc | sudo apt-key add -
$ sudo sponge /etc/apt/sources.list.d/dpkg-git <<END
deb http://jenkins.grml.org/debian dpkg main
END
$ sudo apt-get update && sudo apt-get upgrade

Du côté des corrections de bogues, je me suis occupé de :

  • n°640198 : mise à jour mineure d’une page de man ;
  • n°638291 : correctif permettant de gérer proprement les liens directs (« hardlinks ») des fichiers conffiles ;
  • n°637564 : la logique était défecteuse dans certains cas ;
  • n°631494 : l’interruption de dpkg-source lors de la compilation d’un paquet source natif laissait quelques fichiers temporaires devant être effacés.

Mise à jour de WordPress

J’ai mis à jour WordPress en version 3.2.1 dans unstable (après avoir pris le temps de tester le nouveau paquet sur ce blog !) et corrigé ses bogues RC (n°625773). Ce fut l’occasion de découvrir un faux-positif dans lintian, consigné dans le n°637473.

Paquet Gnome-shell-timer

Je pratique, de temps en temps, la technique dite « Pomodoro ». J’étais donc un utilisateur occasionnel du paquet timer-applet de GNOME 2. Paquet que j’ai perdu avec la bascule vers GNOME 3. Le paquet gnome-shell-timer, que j’ai découvert récemment, est une extension GNOME Shell fournissant les mêmes fonctionnalités.

J’en ai donc fait un paquet Debian, tout en remplissant quelques rapports de bogues à mesure que je le testais (deux problèmes d’ergonomie et un problème d’encodage).

Assurance Qualité

J’ai rencontré Giovanni Mascellani durant la DebConf, qui souhaitait prêter main forte à l’équipe en charge de l’Assurance Qualité. Il s’est tout d’abord attaqué aux bogues en souffrance du système de suivi des paquets (PTS – Package Tracking System) et a soumis un certain nombre de correctifs. Je les ai revus et fusionnés avec la branche principale mais, dans la mesure où ils étaient de bonne qualité, la paresse m’a rapidement gagné et je l’ai fait entrer dans l’équipe Qualité. Il peut maintenant commiter ses corrections tout seul. La confiance en ressort également renforcée lorsque vous avez l’ocassion de discuter entre quatre yeux. :-)

Vacances

Tout cela ne représente pas beaucoup comparé aux mois précédents mais, pour ma défense, j’ai pris deux semaines de vacances. Ceci étant, je ne peux quoi qu’il arrive pas vraiment oublier Debian. Regardez mon fils :

Merci

Au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Debian activities in August 2011 contribuée par Weierstrass01.

Mes activités Debian en juillet 2011

Voici le récapitulatif mensuel de toutes mes activités gravitant autour de Debian. Si vous faites partie des personnes ayant fait un don pour soutenir mon travail (170 €, merci à tous !), c’est l’occasion de constater ce que je fais de votre argent. Sinon, c’est toujours quelques nouvelles intéressantes sur l’avancement de mes différents projets.

Le mois de juillet est passé à toute vitesse, en grande partie parce que j’ai participé à la fois aux RMLL – Rencontres Mondiales du Logiciel Libre et à la DebConf.

Les RMLL

Du fait de ma présence d’une semaine complète un peu plus tard dans le mois à la DebConf, je n’ai participé « que 3 jours » sur les 6 que duraient ces Rencontres.

Et, durant ces 3 jours, j’ai aidé à la tenue du stand Debian, déjà en de bonnes mains : celles de Frédéric Perrenot et Arnaud Gambonnet. Nous n’avions malheureusement aucun goodies à vendre, et c’est là un point sur lequel nous devrons nous améliorer d’ici la prochaine fois (par nous j’entends Debian France).

J’ai assisté, entre autres, à une conférence présentant EnVenteLibre. Ce site a été créé, au départ, comme boutique en ligne pour les associations Ubuntu-fr et Framasoft. Toute la logistique est sous-traitée, seules les commandes de goodies et leurs livraisons à l’entrepôt du sous-traitant sont de leur responsabilité. Ils peuvent également envoyer directement du matériel de l’entrepôt pour une conférence, par exemple. Nous avons discuté dans les grandes lignes d’une éventuelle adhésion de Debian France, voire même, pour Debian et toutes ses associations locales, de la possibilité d’opérer à l’échelle internationale.

Une fois de retour, et bien qu’ayant passé trois bonnes journées à Strasbourg, il m’a semblé que cet événement perdait, petit à petit, en importance : il est loin d’être de dimension internationale, et le nombre de conférences ne joue pas en faveur de la qualité.

En passant, est-ce que vous vous rappelez que Debconf 0 et Debconf 1 ont été associées à cet événement lorsqu’il s’est déroulé à Bordeaux ?

Améliorations de dpkg-source

J’ai apporté certaines modifications au format source 3.0 (quilt) durant mon séjour à Strasbourg (et plus particulièrement durant les trajets aller et retour !). dpkg-source refusera maintenant la compilation d’un paquet source si celui-ci comporte des changements upstream qui ne sont pas correctement enregistrés dans un patch quilt :

dpkg-source: info: local changes detected, the modified files are:
 2ping-1.1/README
dpkg-source: info: you can integrate the local changes with dpkg-source --commit
dpkg-source: error: aborting due to unexpected upstream changes, see /tmp/2ping_1.1-1.diff.cki8YB

Comme le suggère le message d’erreur, une nouvelle option --commit supportée par dpkg-source permet de générer le patch quilt correspondant. Vous devrez, dans ce processus, soumettre un nom pour le patch généré et éditer son en-tête (pré-formaté avec des champs compatibles DEP3). Le retour à l’ancien comportement peut être forcé via l’option --auto-commit.

Changement des drapeaux de compilation

Depuis que dpkg-buildpackage définit lui-même les variables d’environnement relatives à la compilation (cf. n°465282, un changement proposé originellement par Ubuntu), de nombreuses voix au sein de Debian ont exprimé leurs insatisfaction quant à l’approche retenue. Ces commentaires mettaient en avant les problèmes créés sur certains paquets, et le fait que ces mêmes variables ne sont pas définies si l’on exécute debian/rules directement.

La modification fut toutefois conservée, et les paquets « cassés » par cette dernière ont été réparés. En dépit de tout ceci, décision fut prise plus tard de créer dpkg-buildflags comme l’interface appropriée pour injecter des drapeaux de compilation.

Avant de modifier dpkg-buildpackage de sorte qu’il ne définisse plus ces drapeaux, j’ai tenu à m’assurer que dpkg-buildflags soit suffisamment répandu (au sens d’utilisé) dans l’archive, afin d’éviter de casser de nouveau un trop grand nombre de paquets. J’ai retenu comme critère l’utilisation de dpkg-buildflags par CDBS et dh (de dhbhelper). La condition d’application fut satisfaite avec la modification récente de debhelper (cf. n°544844), j’ai donc modifié dpkg-buildpackage en conséquence.

Extraits (snippets) de makefile fournis par dpkg

En parallèle de ces travaux, j’ai souhaité mettre à disposition des mainteneurs une manière simple (qui n’utilise ni dh ni CDBS) de réparer les paquets impactés d’une part, et également d’injecter les drapeaux de compilation à partir des fichiers debian/rules. Ce sera possible à compter de la prochaine version de dpkg, via un bout de code ressemblant à ceci :

DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

Sans DPKG_EXPORT_BUILDFLAGS à 1, les variables ne sont pas exportées dans l’environnement et sont sans effet, à moins bien sûr que vous ne les utilisiez autre part.

En plus de ces drapeaux de compilation, bien d’autres variables — pouvant être utiles dans les fichiers debian/rules — seront mises à disposition par ce biais : celles fournies par dpkg-architecture, les variables/macro liées à l’outil dpkg-vendor et quelques informations de base du paquet (principalement liées à la version).

Améliorations de dpkg-buildflags

Étant donné l’importance croissante que dpkg-buildflags va prendre maintenant que dpkg-buildpackage n’initialise plus les variables d’environnement correspondantes, j’ai pris le parti de corriger tous les bogues ouverts et d’implémenter quelques suggestions qui me sont parvenues.

J’ai également discuté avec quelques membres du comité technique de la manière dont les drapeaux de compilation renforcée (hardening build flags) pourraient être activés dans Debian. Discussion qui amena également certaines idées d’amélioration.

En résumé, voici les principales modifications réalisées :

  • Nouvelle directive « prepend » permettant d’injecter les drapeaux au début de la chaîne retournée (cf. ce commit);
  • Nouvelle directive « strip » permettant d’enlever des drapeaux de la sortie retournée par dpkg-buildflags (cf. ce commit);
  • Nouvelles variables d’environnement DEB_flag_MAINT_directive pouvant être initialisées par le mainteneur afin de paramétrer la sortie de dpkg-buildflags (cf. ce commit);
  • Nouvelle option --export=configure permettant d’injecter les drapeaux via la commande ./configure (cf. ce commit);
  • Nouvelle option --dump par défaut (cf. n°603435).

Tous ces changements rendent dpkg-buildflags capable de retourner l’ensemble des drapeaux de compilation possibles (il ne retournait auparavant que les drapeaux par défaut, et l’empaquetage Debian était supposé y ajouter tout élément supplémentaire nécessaire après coup). Le travail du mainteneur se réduit maintenant, pour cette partie, à utiliser les nouvelles variables d’environnement, afin de s’assurer que les valeurs retournées correspondent bien aux besoins des paquets.

DebConf: rolling et drapeaux de compilation renforcée

J’ai participé une semaine entière à la DebConf (du dimanche 24 au dimanche 31) et, comme à l’accoutumée, ce fut un plaisir de revoir mes amis de Debian. C’est toujours difficile de trouver le bon équilibre entre assister aux conférences, travailler au hacklab et développer les relations humaines, mais je suis plutôt content du résultat obtenu.

Je n’avais aucun but précis lorsque je suis arrivé, excepté animer une session de discussion (« BoF ») autour de Debian rolling (diapos et vidéos de la discussion) . Ceci étant, toutes les discussions lors des débats allongent la TODO list, et cette année ne fit pas exception à la règle. Le BoF du comité technique aborda certaines questions en suspens, dont une m’intéresse particulièrement : comment activer les drapeaux de compilation renforcée dans Debian (cf. n°552688).

Une autre discussion sur le sujet fut prévue le mardi et il en ressort que dpkg-buildflags constitue l’interface appropriée pour injecter ces drapeaux. À condition toutefois que ce dernier offre un moyen de laisser tomber les drapeaux indésirables et dispose d’une interface pratique pour les injecter via la commande ./configure.

Compte tenu de tous ces éléments, je me mis au travail pour implémenter ces nouvelles fonctionnalités, et préparai avec Kees Cook un patch d’activation de ces drapeaux par défaut. Il n’est pas encore prêt à être intégré dans la branche officielle, mais est déjà fonctionnel. (cf. mon dernier commentaire du bogue).

Quelques mots à propos du BoF sur rolling également. Les auditeurs venus en nombre témoignent, comme à l’habitude, de l’intérêt que suscite ce sujet. Le but que je souhaitais atteindre était assez limité : mesurer le poids et l’importance respective des différentes opinions exprimées lors de la dernière discussion fleuve sur debian-devel.

Il s’est avéré qu’une majorité significative des participants estiment testing utilisable dès à présent. Mais l’opportunité de lui faire une plus grande publicité recueille des avis plus partagés. Quant à la question de savoir si nous pouvons supporter un grand nombre d’utilisateurs de testing/rolling, peu s’estiment qualifiés pour répondre, mais ceux qui le croient répondent oui.

Encore du travail sur dpkg…

Réalisation de plein de petites choses :

  • J’ai encore fait du triage de bogues sur Launchpad. Brian Murray a abattu un travail monstre et le résultat est impressionnant : nous sommes descendus à environ 150 bogues (à comparer aux 300 et plus du mois précédent !);
  • J’ai mis à jour ma branche multiarch de nombreuses fois. J’espérais rencontrer Guillem pendant la DebConf, afin de faire quelques progrès dans ce domaine, mais il n’y participa malheureusement pas. À plusieurs reprises au cours de la semaine des personnes m’ont interpellé pour avoir des nouvelles sur son intégration;
  • J’ai corrigé une régression affectant update-alternatives (bogue n°633627), l’échec d’une suite de tests lorsque lancée en tant que root (#634961), et une erreur de segmentation dans findbreakcycle(). Un bon paquet d’améliorations mineures furent également de la partie (n°634510, 633539, 608260, 632937).

Système de suivi des paquets (PTS) et DEHS

Un remplaçant de DEHS a été écrit par Christoph Berg, car celui-ci n’était pas vraiment fiable, et pas sous contrôle de l’équipe en charge de la qualité. Pour ceux qui ne connaissent pas cet outil, il s’agit d’un système centralisé utilisant les fichiers debian/watch pour détecter les dernières versions amont des logiciels disponibles dans Debian.

J’ai mis à jour le Système de suivi des paquets (PTS – Package Tracking System), afin qu’il utilise ce nouvel outil en lieu et place de DEHS. Cela fonctionne bien, mais il manque encore les notifications par mail que DEHS envoyait. Si d’aventure quelqu’un voulait contribuer cette fonctionnalité, ce serait chouette !

Empaquetages divers

J’ai accompli quelques tâches préalables à la mise à jour du paquet WordPress vers la toute dernière version upstream (3.2). Il me reste à tester le paquet qui en résulte : remplacer les copies des bibiliothèques javascript/PHP fournies par les développeurs amont présente toujours des risques, et manque de chance, elles ont toutes subies des modifications dans le processus d’intégration.

J’ai également mis à jour nautilus-dropbox vers la version 0.6.8. J’ai également uploadé la version précédente (présente dans testing jusqu’alors) dans squeeze-backports. Un paquet Debian officiel est maintenant présent pour cette application dans toutes les distributions Debian (squeeze, wheezy, sid et experimental).

Merci

Au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Debian activities in July 2011 contribuée par Weierstrass01. Ne manquez pas une occasion de parfaire vos connaissances de Debian ou Ubuntu, abonnez-vous à ma newsletter en cliquant ici.

Mes activités Debian en juin 2011

Voici le récapitulatif mensuel de toutes mes activités gravitant autour de Debian. Si vous faites partie des personnes ayant fait un don pour soutenir mon travail (195 €, merci à tous !), c’est l’occasion de constater ce que je fais de votre argent. Sinon, c’est toujours quelques nouvelles intéressantes sur l’avancement de mes différents projets.

Dropbox pour Debian

Dropbox n’est pas un logiciel libre, mais n’en est pas moins très populaire. Ils ne mettent à disposition qu’un paquet pour Ubuntu, qui ne fonctionne pas sous Debian. J’ai donc créé un paquet officiel.

En contact avec des développeurs Dropbox, ils m’ont été d’une aide précieuse. Ils vont très prochainement lancer un mécanisme de signatures (avec GPG), de telle sorte que nous pourrons bientôt améliorer le paquet en vérifiant l’origine des binaires téléchargés.

SAT Britney

J’ai continué — au début du mois — mon travail sur la ré-implémentation de britney (l’application créant testing à partir d’unstable). J’ai cependant rapidement mis en sommeil mon travail, dans la mesure où les release managers ont demandé l’avis de Stefano Zacchiroli et Ralf Treinen (qui ont une connaissance approfondie du sujet, de par leur travail de recherche sur Mancoosi). Je n’ai pas souhaité aller plus loin, au cas où ils identifient une faiblesse majeure. Leur retour n’est arrivé qu’en fin de ce mois, et, bien que quelque peu négatif, je continue à penser que le travail mérite d’être poursuivi plus en avant.

Conversion de ftplib à multiarch

Tandis que dpkg ne supporte toujours pas multiarch (aucune nouvelle de Guillem à ce sujet, et aucun signe de progression visible :-( ), unstable a récupéré les derniers éléments nous permettant de convertir les bibliothèques au multi-architecture (cf. l’annonce correspondante). A l’instant où la version requise de libc6 a atterri dans unstable, j’ai cherché à convertir le seul paquet de bibliothèque que je maintiens. Je n’ai eu aucune difficulté majeure, seulement deux problèmes dans Lintian (référencés sous le n°630164 et rapidement corrigés par Niels Thykier).

Support build-arch / build-indep

L’idée d’utiliser des cibles build-arch/build-indep dans le fichier debian/rules a ressurgi pour la 42ème fois en 10 ans. J’avais déjà décidé, voilà quelques temps de cela, d’accepter un patch implémentant un champ Builld-Features: build-arch, afin de permettre à dpkg-buildpackage d’utiliser ces cibles. Bill Allombert a terminé ce patch, je l’ai donc intégré.

Le comité technique a également décidé qu’il prendrait une décision définitive sur ce sujet (cf. n°629385). Roger Leigh a apporté une contribution utile en recompilant l’archive complète avec toutes les solutions proposées. Étant donné qu’une majorité souhaite rendre la cible obligatoire dans le futur, j’ai contribué un patch dpkg pour ma solution préférée. L’auto-détection de la cible serait utilisée temporairement jusqu’à ce que tous les paquets soient modifiés afin d’embarquer de telles cibles.

Le comité technique n’a encore pris aucune décision, bien que la discussion soit au point mort depuis le 12 juin. Rien d’anormal ici, je suis sûr que le point sera soldé durant la DebConf. ;-)

Activités diverses sur dpkg

  • Modification de dpkg-source --after-build permettant de retirer automatiquement les patchs, s’ils ont été appliqués via dpkg-source --before-build
  • Pas mal de corrections de bogues (n° 628726, 629582, 630996, 631435, 631439, 631547, 632168), ce qui permet à peine d’équilibrer avec le nombre de nouveaux bogues rapportés !
  • Ajout de 2 modules Perl supplémentaires à l’API supporté, au profit de Lintian.
  • Une soirée passée à investiguer les causes possibles d’une vieille et ennuyeuse assertion failure liée aux triggers.
  • Mise à jour de ma branche avec les directives triggers améliorées, pour prendre en compte les remarques de Guillem, puis intégration de cette branche.
  • En traitant le point précédent, j’ai découvert une faiblesse conceptuelle dans l’usage de « prerm failed-upgrade », et intégré une correction.
  • Discussion de l’intégration de dpkg-buildflags dans debhelper dans le bogue 544844, ce qui a conduit à la décision d’implémenter de nouvelles améliorations pour dpkg-buildflags.

Mise à jour de l’applet Hamster

Hamster-applet est une application GNOME n’ayant pas de version 3.0, mais une en développement (2.91.x). J’ai regardé s’il n’était pas possible de l’empaqueter pour experimental, et ainsi avoir l’applet fonctionnelle dans le mode dégradé de GNOME 3. Apparemment pas. Le code n’a pas encore été mis à jour pour être compatible avec le nouveau panneau.

J’ai envoyé dans unstable la dernière version stable (2.32.1) à la place, qui a quelques améliorations intéressantes dans sa version standalone (et le nom de l’exécutable est différent). En attendant une meilleure intégration avec GNOME 3, j’ai créé un raccourci pour le démarrer rapidement (avec gconf-editor, entrer la valeur « <Mod4>t » pour le champ /apps/metacity/global_keybindings/run_command_1, et « hamster-time-tracker » pour /apps/metacity/keybinding_commands/command_1. Le panneau de contrôle de GNOME 3 ne semble en effet pas gérer les raccourcis claviers actuellement).

Traduction de mon site professionnel en anglais

Bien que particulièrement reconnaissant envers les personnes supportant activement mon travail, je suis encore loin d’avoir atteint mon objectif d’être financé pour un tiers de mon temps de travail par des donations et la vente de produits via ce site.

J’ai donc décidé de donner un peu plus de visibilité à mon site professionnel, et en particulier à son offre de services liée à Debian. Elle n’était disponible qu’en français, je l’ai traduite et étoffée quelque peu. Ma « page de soutien » sur ce blog pointe maintenant également vers le site web de mon entreprise.

Si votre entreprise a besoin d’aide pour créer des paquets Debian, ou requiert un support technique par mail, ne cherchez plus ! :-)

Je propose d’ailleurs des réductions pour les particuliers ou organisations à but non lucratifs désirant bénéficier de mon expertise pour créer des paquets Debian.

The Debian Administrator’s Handbook

Il s’agit là du titre de la traduction à venir de mon livre. Ce projet dispose maintenant d’un site dédié : debian-handbook.info.

Vous pouvez vous inscrire à son flux RSS pour obtenir les dernières nouvelles le concernant. La table des matières complète est en ligne, accompagnée d’une FAQ.

Je recherche activement des partenaires pour promouvoir la campagne de financement à venir. Si vous êtes en mesure de toucher un nombre conséquent de lecteurs intéressés par une bonne référence sur Debian, contactez-moi afin de rejoindre le programme affilié.

Merci

Au mois prochain pour un nouveau résumé de mes activités !

Ceci est une traduction de mon article My Debian activities in June 2011 contribuée par Weierstrass01. Ne manquez pas une occasion de parfaire vos connaissances de Debian ou Ubuntu, abonnez-vous à ma newsletter en cliquant ici.

Mes activités Debian en mai 2011

Voici mon récapitulatif mensuel de toutes mes activités gravitant autour de Debian. Si vous faites partie des personnes m’ayant fait un don pour soutenir mon travail, c’est l’occasion de constater ce que je fais de votre argent ! Sinon, c’est toujours quelques nouvelles intéressantes sur l’avancement de mes différents projets.

Au cours du mois de mai, j’ai donc…

…un peu travaillé sur le concept de Debian Rolling

Les discussions au sujet de Debian Rolling étaient encore très actives en début de ce mois sur la liste debian-devel. L’idée de renommer testing en rolling (ce que je soutenais) n’a pas prévalu car certains jugeaient que des bugs Release Critical restaient ouverts trop longtemps dans cette distribution et me méritait donc pas ce label. La proposition la plus consensuelle a été celle de Josselin Mouette : elle consiste à bâtir la distribution rolling d’après testing, en y ajoutant quelques paquets choisis de unstable.

Je considère cette solution viable à la condition de la restreindre à un sous-ensemble précis d’architectures. Dans le cas contraire, les raisons pour lesquelles les paquets ne migrent pas vers testing impacteront rolling de la même manière. Et si ces raisons n’existent pas, alors autant effectuer les migrations correspondantes directement dans testing au lieu de rolling.

Étant donné ce qui précède, j’ai installé sur mon ordinateur portable britney — le logiciel qui contrôle testing — pour voir comment créer rolling avec cet outil. britney s’avère être un logiciel très spécialisé, avec très peu de possibilités de paramétrage.

Au même moment, Joachim Breitner fit une proposition qui attira immédiatement mon attention. Il suggère d’utiliser les solveurs SAT pour déterminer l’ensemble des paquets devant migrer de unstable vers testing. rolling peut être, à mon sens, un excellent banc d’essai pour cette nouvelle implémentation de britney (qu’il nomme ici SAT-britney). J’ai donc embarqué sans hésiter à bord de ce projet.

Les notions scientifiques sous-tendant le concept m’étant peu familières, j’ai compulsé de la documentation et appris que tous les solveurs SAT intégraient le problème sous une forme bien particulière, appelée Forme Normale Conjonctive. De plus, le format DIMACS est le format de fichiers retenu pour présenter ces contraintes booléennes. Plusieurs solveurs SAT sont disponibles pour Debian, et picosat semble être un des meilleurs.

J’ai donc commencé à coder pour voir comment appliquer le concept, le résultat est disponible dans ce dépôt git. Vous pouvez en récupérer une copie via git clone git://git.debian.org/~hertzog/sat-britney.git.

Il n’y a pas encore grand chose, excepté un peu de code (en Python) générant un problème SAT pouvant être passé à un solveur. Mais je suis impatient de voir les développements de ce projet.

…représenté Debian au salon Solutions Linux

J’ai passé 3 jours à Paris dans la deuxième semaine du mois de mai, pour prêter main forte à la tenue du stand Debian au salon Solutions Linux

Nous avons répondu à beaucoup de questions mais la majorité des visiteurs connaissaient déjà Debian, et beaucoup l’utilisent à la maison et/ou au travail. Nous avons essayé de recruter de nouveaux adhérents dans l’association Debian France, et vendu les goodies qui nous restaient.

Les représentants d’Ubuntu ont été interviewés par France 3, et nous avons profité de l’opportunité (avec leur accord !) pour exhiber nos t-shirts Debian à l’arrière-plan. La vidéo est disponible ici, et vous pouvez nous y voir (Carl Chenet et moi-même) à 1:21.

Nous avons été interviewés quant à nous par Intelli’n TV: une première vidéo et une seconde. J’avoue ne pas exceller dans cet exercice ! :-)

…amélioré les triggers dpkg

La troisième semaine de mai était une semaine de vacances, et j’aurai du me tenir loin de mon ordinateur. Mais je tenais vraiment à la mettre à profit pour améliorer l’état des triggers dpkg dans Debian.

J’ai déjà abordé mon travail dans un précédent article : Trying to make dpkg triggers more useful and less painful.

Dans l’attente d’une synthèse des réponses à la question que j’ai envoyée à tous les mainteneurs de paquets utilisant les triggers, je n’ai pas encore intégré le résultat de mon travail dans le dépôt officiel.

…aidé les utilisateurs suite à la migration d’Alioth

Lorsque je suis revenu de vacances, un certain nombre de services fournis par alioth.debian.org étaient non-fonctionnels après la migration vers un nouvel environnement, impliquant deux machines au lieu d’une auparavant. Étant donné que je fus longtemps un administrateur d’Alioth, je suis bien placé pour savoir qu’en de telles circonstances, vous vous retrouvez vite submergé par les demandes de support utilisateur. Je suis donc retourné sur le canal #alioth d’IRC afin d’aider au mieux.

J’ai investigué certains des problèmes soulevés et mis au point des corrections (scripts mis à jour, fichiers de configuration, etc.) pour quelques-uns d’entre eux. J’ai également créé une liste des problèmes restants. Elle n’aurait du exister que quelques jours mais, en raison de régressions encore non résolues, est toujours active.

Les fonctionnalités les plus importantes manquant encore sont :

  • un support propre pour la délégation des droits. Par le passé, nous utilisions les ACL mises en place par les administrateurs. Avec le nouveau FusionForge, chaque admin de projet devrait être capable de déléguer des droits à des « rôles » extérieurs. Un rôle « Développeur Debian » existe déjà, mais la délegation echoue… ;
  • l’accès à l’Ultimate Debian Database. De nombreux outils s’appuient sur cette base de données pour fonctionner ;
  • l’accès en FTP anonyme pour télécharger les fichiers des projets ;
  • des directives claires sur la manière dont nous sommes censés gérer les sites web mis à jour à travers des hooks VCS ;
  • des directives claires sur la manière dont nous sommes supposés gérer les dépôts git personnels.

…amélioré le format de paquet source « 3.0 (quilt) »

J’ai émis plusieurs propositions visant à modifier le comportement du nouveau format source. L’objectif visé est double : premièrement, le rendre moins pénible à l’utilisation pour les empaqueteurs utilisant un VCS, et, deuxièmement, éviter les changements non souhaités qui s’immisceraient via un nouveau patch généré par dpkg-source.

Ces propositions semblent être consensuelles, je pourrai donc les implémenter dans un avenir proche.

…un peu laissé de côté la version anglaise de mon blog

Beaucoup de travail a été abattu pour Debian entre les déplacements et les vacances et, dans le temps restant, je n’ai pas réussi à écrire beaucoup de nouveaux articles pour mon blog anglophone.

En fait, mis à part l’article sur les triggers mentionné précédemment, je n’ai publié qu’une interview : People behind Debian: Steve Langasek, release wizard.

Je vais essayer de faire mieux ce mois-ci !

Merci !

Un grand merci à ceux qui m’ont soutenu à hauteur de 151.61 € durant le mois de mai.

Rendez-vous le mois prochain pour un nouveau compte-rendu de mes activités Debian !

Cet article est une traduction de My Debian activities in May 2011 contribuée par Weierstrass01.