[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ suivant ]


Le manuel de l'intérieur de dpkg
Chapitre 1 - Notes de Compilation


1.1 Automake

Ce chapitre a été écrit par Tom Lees mailto:tom@lpsg.demon.co.uk le mardi 4 Mars 1997 à 21:34:57 +0000, et comprend de conséquentes modifications faites par Klee Dienes mailto:klee@debian.org.

Ce chapitre contient quelques généralités à propos de la conversion à automake. Si vous avez l'intention de faire quoi que ce soit avec dpkg, vous devriez probablement lire d'abord ce fichier en entier. Vous avez été prévenu.

automake possède plusieurs avantages significatifs, parmi lesquels :

L'utilitaire aclocal est un programme très utile qui construit automatiquement un fichier aclocal.m4 à partir du fichier configure.in de façon à inclure les macros appropriées.

Ceci n'affecte rien d'autre que la recompilation des fichiers Makefile.in à partir des sources.

La principale différence notable est probablement le fait qu'au lieu d'utiliser des noms de fichiers propriétaires, il accepte maintenant configure --sharedstatedir et configure --localstatedir. Pour faire de ces options des options par défaut pour Debian, vous devriez utiliser ./configure --localstatedir=/etc --sharedstatedir=/var/lib.

J'ai aussi accommodé les macros canonisatrices que l'on trouve dans autoconf pour inclure l'ancienne façon de trouver l'« architecture » pour dpkg, i.e. pour qu'il soit un peu plus intelligent. Je l'ai modifié pour qu'il utilise les types systèmes « host », « build » et « target » au lieu de déterminer seulement l'architecture. Le type de CPU cible est vérifié dans « archtable » pour trouver l'architecture sur laquelle dpkg va tourner.

Il utilise gcc --print-libgcc-file-name pour trouver si possible l'architecture de compilation (c'est utilisé ensuite pour déterminer le format ELF ou a.out) ; il utilise si possible aussi dpkg --print-architecture pour modifier le champ cpu avant de passer l'alias de la cible à config.sub. Si vous voulez spécifier l'architecture, vous devriez maintenant utiliser --target=, plutôt que --with-arch, qui n'était de toute façon qu'un « hack ». Le vieux --with-arch est toujours là, mais il est quelque peu moins fonctionnel. J'ai aussi déplacé les macros DPKG_CACHED_ dans dpkg.m4 pour rendre un peu plus lisible le fichier configure.in.

J'ai aussi tout converti à libtool (qu'on peut maintenant trouver dans la distribution Debian). Cela signifie essentiellement que tous les outils dpkg peuvent être compilés avec une librairie partagée libdpkg sans trop de difficultés (en fait, c'est l'option par défaut). Vous n'avez pas besoin d'installer libtool pour utiliser cette fonctionnalité (cela fonctionne comme autoconf), et d'une manière générale, cela ne devrait pas être souvent nécessaire.

Les nouvelles cibles dist construisent une distribution incluant tous les fichiers construits avec debiandoc2html, debiandoc2ps, etc., qui sont inclus dans la distribution de façon à ce que les gens puissent construire dpkg sans eux (particulièrement utile pour ceux qui font des portages).

Une cible make debian a été ajoutée, qui compile les fichiers Debian à partir d'un répertoire courant (cela fait d'abord un make dist). Maintenant tout ce dont nous avons besoin c'est d'un dpkg-source modifié de façon à ce que le fichier dpkg-1.4.0.8.tar.gz de la distribution GNU puisse être utilisé comme une partie de la distribution Debian. Je travaille là dessus, mais cela ne marche pas très bien pour l'instant (vous le trouverez dans les exemples).

J'ai enlevé la cible make portable target - elle ne fait rien d'utile.

J'ai ajouté les cibles make uninstall pour aider les utilisateurs non-Debian qui veulent simplement essayer certains paquets Debian ; et les cibles « dist » sont aussi utiles pour construire une « distribution » de l'outil dpkg. Notez que du fait que automake inclut automatiquement les dépendances dans les Makefiles dans une distribution, si vous voulez modifier les fichiers C , il est conseillé de récupérer et d'installer automake, et ensuite de le relancer dans le répertoire de base de la distribution de dpkg, de façon à ce que la génération automatique des dépendances soit remise en marche, et de façon à ce que toute dépendance qui change soit prise en compte. Les cibles « make maintainer-clean » enlèveront tous les fichiers qui sont créés par les utilitaires suivants :

Si vous voulez modifier quelque chose dans les sources, je vous recommande de faire d'abord ce qui suit (après avoir installé les utilitaires appropriés, bien sûr) :

J'ai aussi incorporé les patches créés par Galen Hazelwood qui internationalisent dpkg en utilisant GNU gettext - voyez le fichier « NOTES.intl » pour plus d'information.

Les autres modifications mineures sont :

Questions:


1.2 Internationalisation

Cette section a été écrite par Galen Hazelwood.

Dpkg est, pour le moins, généreux dans ses rapports d'erreur. La grande majorité des chaînes de caractères produites sont d'une manière ou d'une autre des messages d'erreur. Et si vous pensez que vous vous êtes égarés dans le Ministère des Ministères Redondants, vous auriez absolument raison. Beaucoup des messages d'erreurs dans dpkg.pot sont dupliqués et utilisés à différents endroits dans le programme.

Pour éviter de submerger complètement les traducteurs, j'ai pris des décisions arbitraires sur les sortes de chaînes de caractères à traduire. Toutes les chaînes envoyées à debug() sont laissées telles quelles, sur la base du fait qu'elles sont destinées aux développeurs de dpkg, et non à l'ensemble du public. La plupart des messages d'erreur internes sont très cryptiques, et confondraient certainement les traducteurs qui les verraient simplement posés là dans le fichier dpkg.pot, et ils sont laissés tels quels. (J'en ai quand même marqués quelques uns parmi les plus verbeux pour traduction.)

Si d'autres ne sont pas d'accord avec moi sur la nécessité de traduire ces chaînes, c'est suffisamment facile de simplement poursuivre et de les marquer plus tard.

J'ai ajouté le code de démarrage de gettext à la routine principale de dselect, ce qui était nécessaire car beaucoup des chaînes de lib sont traduites. Dselect est à part cela inchangé.

Modifications :


[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ suivant ]


Le manuel de l'intérieur de dpkg

Version 1.5 --- janvier 2001

Klee Dienes mailto:klee@mit.edu