Informatique Libre Mont-Laurier



Publié le lundi 17 mars 2008


Lundi 17 mars 2008

Les dépendances insoupçonnées

J'ai lu un billet sur ouaza.com qui demandait de tester le paquet debian "dpkg". J'ai essayé les instructions fournies par le blogueur pour apprendre comment fonctionnait l'outil "git", un semblant de cvs, et pour me familiariser avec le développement de Debian.

Comme d'habitude, plusieurs sous-entendus se glissent dans les instructions des développeurs qui ne sont pas évidentes pour les débutants et je vais essayer de bâtir un site qui permettra de corriger ses erreurs : compléter et répertorier les instructions manquantes des tutoriels. On oublie trop souvent qu'une des étapes les plus difficiles est de commencer et d'installer un environnement de développement adéquat.

Par exemple. dans le billet du blogueur, la dernière instruction, l'utilisation d'une branche, ne fonctionnait pas. L'erreur a été de penser que l'utilisateur avait déjà récupéré une branche non-locale et fonctionnait comme dans son propre environnement.

Ensuite, lorsqu'on fait toutes ses étapes, on se retrouve avec le code source et aucune d'instruction pour le compiler. Pas de ./configure, ni de Makefile. En fouillant beaucoup plus sur le wiki, à travers plusieurs pages, on peut voir l'instruction "autoreconf -f -i". Cependant, dans mon environnement, cette instruction ne fonctionne pas.

Pourquoi autoreconf ne fonctionne pas? autoreconf est un script de configuration qui utilise des outils dépendamment des instructions à l'intérieur du configure.in. Lorsque gettext est utilisé, autoreconf utilise l'outil autopoint, un script bash. autopoint installe les fichiers nécessaires à gettext. Cependant, autopoint doit utiliser la bonne version de gettext et c'est là que ça se corse. Les développeurs de gettext ont créé un fichier d'archive avec plusieurs versions des fichiers de gettext. Pour minimiser l'espace utilisée, ils ont créés une archive "CVS" des versions au lieu de créer un tar.gz du répertoire original avec des diffs. Le script autopoint se contente alors de créer un dépôt CVS local et d'extraire la branche CVS correspondante à la version. Simple non? non...

Ce qui est surprenant dans tout ça, c'est que même si dpkg utilise git pour son dépôt, CVS est quand même nécessaire à la compilation, sans quoi, gettext ne serait pas là.