Destination Debian

Infos à la source, maîtrisez votre distribution Debian/Ubuntu

  • Soutenir
  • Mes livres
    • Mémento Git à 100%
    • Debian 8 Jessie
  • Lettre d’informations
  • Mes activités chez Debian
    • Historique
    • Mes projets
  • Mes autres sites
    • My blog on free software
    • Freexian, ma société
    • Mon blog perso
  • Contact
Home Archives for Actualités

Mes activités Debian en août 2011

Posted on 07/09/2011 Written by Raphaël Hertzog

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.

Filed Under: Actualités, Actualités Debian, Meta Tagged With: Debian, dpkg, gnome-shell-timer, Libre, Moi, QA, wordpress

Mes activités Debian en juillet 2011

Posted on 10/08/2011 Written by Raphaël Hertzog

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.

Filed Under: Actualités, Actualités Debian, Meta Tagged With: Debian, dpkg, dpkg-buildflags, dpkg-source, Hardening, Libre, Moi, tech-ctte

Mes activités Debian en juin 2011

Posted on 06/07/2011 Written by Raphaël Hertzog

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.

Filed Under: Actualités Tagged With: build-arch, dpkg, Dropbox, Freexian, Hamster-applet, Libre, Moi, multiarch, Résumé d'activité, SAT-Britney

Comment trouver le bon paquet Debian: interfaces de recherche de haut-niveau

Posted on 30/05/2011 Written by Raphaël Hertzog

L’archive Debian est connue comme l’une des plus larges collections de logiciels libres au monde. Avec plus de 16 000 paquets source et plus de 30 000 binaires, les utilisateurs ont parfois quelques difficultés à trouver les paquets qui leurs sont utiles. Le développeur Debian Enrico Zini a travaillé sur l’infrastructure pour résoudre ce problème. Durant la dernière mini-debconf à Paris, Enrico a présenté ce sur quoi il travaillait ces dernières années lors d’une conférence; travaux qui « n’avaient pas encore obtenu l’attention qu’ils méritaient ».

Enrico est connu dans la communauté Debian pour l’introduction des debtags, système de classification des paquets se basant sur des facettes. Chaque facette décrit une propriété spécifique : type d’interface utilisateur, langage de programmation utilisé, types de document manipulés, vocation du logiciel, … Ses derniers travaux s’appuient sur cette classification, et sont disponibles au travers du paquet apt-xapian-index, que ce soit sous Debian ou sous Ubuntu. L’objectif étant de permettre l’interrogation de la base des paquets disponibles au travers de requêtes complexes.

Utilisateurs de apt-xapian-index

Lors de cette présentation, Enrico a évoqué les premières utilisations de ses travaux. La plus connue étant celle proposée dans l’Ubuntu Software Center, à travers sa fonction de recherche renvoyant quasi-instantanément les résultats, et ce grâce à apt-xapian-index. Il ne s’agit là toutefois que d’une utilisation basique, n’exploitant que peu des fonctionnalités avancées fournies par apt-xapian-index.

GoPlay! est également un des premiers à l’avoir adopté, et à en utiliser certaines fonctionnalités avancées. Il s’agit d’une interface graphique permettant de rechercher des jeux. À cette fin, GoPlay! utilise les debtags pour classer les jeux en différentes catégories de sorte que vous puissiez, par exemple, naviguez parmi tous les jeux d’action/arcade 3D ayant un lien avec les voitures. Le concept de GoPlay! a même été étendu jusqu’à devenir un navigateur de paquets plus généraliste se basant sur les debtags. C’est ainsi que le paquet fournit maintenant également GoLearn!, GoAdmin!, GoNet!, GoOffice!, GoSafe!, et GoWeb!.

Autre exemple, Fuss-launcher est un lanceur d’application, et non pas un navigateur de paquets. Mais il utilise également apt-xapian-index, et il est du coup capable, en se basant sur les informations stockées au niveau des paquets, de retrouver plus facilement les applications installées. En effet, les descriptions de paquets sont généralement plus verbeuses que celles contenues dans les fichiers .desktop. Autre fonctionnalité sympathique qu’Enrico a montré à son audience : en faisant un glisser-déposer d’un document dans Fuss-launcher, ce dernier vous dresse la liste des applications pouvant l’ouvrir !

Enfin, apt-xapian-index met également à disposition un outil de recherche en ligne de commande qui est beaucoup plus efficace, et de loin, au traditionnel apt-cache search : il s’agit de axi-cache search (axi étant ici l’acronyme de apt-xapian-index). Enrico fit la comparaison de la sortie d’apt-cache avec celle d’axi-cache, avec comme entrée la recherche de la lettre « r » : tandis que apt-cache énumérait une liste infinie de paquets contenant cette lettre quelque part dans leurs descriptions, axi-cache ne lista que les paquets concernant GNU R. Il fit également une démonstration de la complétion contextuelle automatique : contextuelle car se basant sur les debtags pour raffiner la recherche. En effet, une fois un premier mot-clé tapé, la complétion via la touche Tab ne montre que certains mots-clé ou debtags : ceux permettant de restreindre encore plus la recherche. L’interrogation via des requêtes à base d’opérateurs logiques (AND, OR, NOT, XOR) est également supportée.

Sous le capot

Enrico présenta ensuite les rouages de cette mécanique. Le moteur de recherche Xapian est au cœur de l’infrastructure, et il l’apprécie car il ne s’agit que d’une simple librairie (et non un démon), pourvue de sympathiques bindings Python. Des plugins, également écrits en Python, peuvent venir étendre les capacités d’apt-xapian-index, qui, même si sa fonction principale reste l’indexation des descriptions de paquets, enregistre beaucoup plus d’informations que nécessaires à cette tâche.

Parmi les informations stockées, on compte par exemple :

  • des mots apparaissant dans la description des paquets (ce qui inclut les traductions, dans le cas où l’utilisateur utilise une locale non anglaise);
  • l’origine des paquets;
  • leurs sections;
  • leurs tailles, ainsi que l’empreinte disque une fois installés;
  • leurs dates de première apparition;
  • les icônes, catégories ou descriptions des fichiers .desktop contenus (via app-install-data);
  • les alias d’applications populaires non disponibles sous Linux (par exemple « excel » renvoie au debtag office::spreadsheet).

Enrico a d’ores et déjà prévu d’enregistrer encore plus d’information : ajouter les données du popularity contest (cf. les rapports de bogue #602180 et #602182) lui permettrait ainsi de trier les résultats de manière efficace. En effet, les applications les plus utilisées sont généralement un bon choix en terme de support de la communauté, ainsi que du point de vue de la qualité, précisément du fait de cette large base d’utilisateurs. Stocker les dates de dernière installation/mise à jour/suppression rendrait plus facile la détermination d’une régression, due à une mise à jour d’un paquet particulier.

L’index étant accessible sans restriction, n’importe quelle application peut en tirer profit, sous réserve qu’elle puisse utiliser la librairie Xapian – écrite en C++ mais disposant de bindings Perl, Python, PHP, Java, Tcl, C# et Ruby.

Appel à l’expérimentation

De nombreuses applications utiles reposant sur apt-xapian-index restent encore à inventer, selon Enrico. Il lance ainsi un appel à « l’expérimentation », ainsi qu’à de nouvelles idées. La seule limite pratique à laquelle il s’est confronté est la taille de l’index : entre 50 (Debian unstable sans aucune traduction) et 70 Mo (Debian stable/testing/unstable avec les traductions dans une langue). Il préférerait ne pas le voir dépasser 100 Mo, dans la mesure, d’une part, où le paquet est installé par défaut (étant un paquet recommandé par aptitude), et d’autre part parce qu’il serait mal à l’aise à l’idée d’utiliser plus de 20% de l’empreinte disque d’une installation minimale juste pour ce service. C’est la raison pour laquelle l’index a été configuré pour ne pas stocker la position des mots-clé : il n’est donc pas possible de trouver les paquets dont la description contient le terme « calcul » immédiatement suivi de « statistique ». Par contre, il est possible de trouver ceux contenant les deux mots n’importe où dans leurs descriptions.

Apt-xapian-index offrirait-il trop de libertés ? C’est la question que s’est posé Enrico. Ce qui pourrait expliquer pourquoi si peu de personnes l’ont testé, malgré les nombreux billets sur son blog, dûment documentés avec exemples de code et tutoriaux. Mais il n’est pas difficile d’imaginer d’autres exemples d’utilisation : on pourrait ainsi étendre les fonctionnalités d’outils tels que rc-alert ou wnpp-alert par exemple, qui fournissent une longue liste de paquets Debian cherchant un peu d’aide, et qui sont installés sur la machine. Il serait ainsi possible d’utiliser apt-xapian-index pour restreindre les résultats aux seuls paquets écrits dans un certain langage, ou dédiés à un environnement de bureau particulier.

L’explication la plus probable étant certainement que trop peu de personnes ont entendu parler de cet outil. Il y a bien d’autres cas où les fonctionnalités d’apt-xapian-index pourrait être utile, et, à mon sens, le souhait d’Enrico pourrait bien devenir réalité.

Cet article est une traduction de How to find the right Debian packages: high-level search interface contribuée par Weierstrass01. Suivez moi sur Identi.ca, Twitter et Facebook. Ou abonnez-vous à ce blog par RSS ou par email.

Filed Under: Actualités, Actualités Debian, Actualités Ubuntu Tagged With: apt-xapian-index, Debian, debtags, Enrico Zini, Libre, Recherche, Ubuntu, Xapian

  • « Previous Page
  • 1
  • …
  • 17
  • 18
  • 19
  • 20
  • 21
  • Next Page »

Découvrez mes ouvrages

Apprenez en plus en cliquant sur leur couverture :

Lettre d’informations

Abonnez-vous à ma lettre d'informations, saisissez votre adresse électronique et cliquez sur « S'abonner » :

Suivez moi

  • Adresse mail
  • Facebook
  • GitHub
  • RSS
  • Twitter

Archives

Planètes

  • Planète April
  • Planète Debian-Fr
  • Planète des utilisateurs Debian
  • Planète Libre

Flux Mon blog anglophone sur le libre

  • Freexian is looking to expand its team with more Debian contributors 29/03/2024
  • Freexian’s report about Debian Long Term Support, July 2022 31/08/2022
  • Freexian’s report about Debian Long Term Support, June 2022 26/07/2022
  • Freexian’s report about Debian Long Term Support, May 2022 23/06/2022
  • Freexian’s report about Debian Long Term Support, April 2022 03/06/2022
  • Debian 9 soon out of (free) security support 11/05/2022

Mots-clés

3.0 (quilt) Annonce aptitude Cahier Admin conffile Contribuer DebConf Debian Debian France Debian Live Distro Tracker dpkg dpkg-source Eyrolles Freexian GNOME GSOC HOWTO Informatique Kali Linux Libre Livres LTS Moi multiarch nautilus-dropbox nettoyage Packaging Politique Presse Pro Programmation PTS publican python-django Release Rolling Référence Résumé d'activité synaptic Testing Tryton Ubuntu unstable wordpress

Articles récents

  • Le logiciel libre a t’il une couleur politique ?
  • Mes activités libres en janvier 2017
  • Élections présidentielles, logiciel libre et Charlotte Marchandise
  • Mes activités libres en décembre 2016
  • Mes activités libres en novembre 2016

Copyright © 2025 · Focus Pro Theme sur Genesis Framework · WordPress · Log in