debhelper-compat-upgrade-checklist – Liste de
contrôle de mise à niveau des niveaux de compatibilité
de debhelper pris en charge
Ce document est une liste de contrôle de mise à
niveau de tous les niveaux de compatibilité de debhelper pris en
charge. Il liste aussi tous les niveaux de compatibilité de debhelper
pris en charge.
Vous trouverez des informations sur la manière de
déclarer le niveau de compatibilité dans "NIVEAUX DE
COMPATIBILITÉ" in debhelper(7).
Si vous mettez à jour depuis un niveau de
compatibilité (maintenant) obsolète, veuillez consulter
debhelper-obsolete-compat(7).
Les niveaux de compatibilité sont les suivants :
- v15
- Ce niveau de compatibilité est encore en
développement ; à utiliser avec précaution.
Les changements par rapport à la version 14
sont :
- The single-binary add-on for dh is no longer implicitly
activated by source packages that have a single Package stanza in
debian/control. If the package needs the short-cuts for
single-binary packages, it must explicitly activate the
single-binary add-in.
This can be done via a Build-Depends on
dh-sequence-single-binary.
Any --without single-binary passed to dh to
avoid the warning in compat 14 can now be removed to simplify
debian/rules without triggering the warning.
- C'est maintenant une erreur d'utiliser des versions sans paquet des
fichiers de configuration de debhelper quand il y a deux de paquets
binaires ou plus listés dans debian/control dans la plupart
des cas. Les anciens fichiers doivent être renommés de
debian/toto en debian/paquet.toto où paquet
est le premier paquet binaire listé dans debian/control.
L'exception principale à cette modification sont des
fichiers comme debian/changelog, debian/NEWS et
debian/copyright où le même fichier est
utilisé par défaut pour tous les paquets. Ces cas
demeureront inchangés.
- It is now an error to use a packaging file without the package prefix for
--name even if the source package only produces one binary package.
As example, if you had a debian/bar.service with the following
snippet in debian/rules:
override_dh_installinit:
dh_installsystemd -p toto --name titi
Ensuite vous devez renommer debian/titi.service en
debian/toto.titi.service.
- v14
- Ce niveau de compatibilité est encore en
développement ; à utiliser avec précaution.
Les changements par rapport à la version 13
sont :
- The order and placement has changed for dh_strip_nondeterminism,
dh_compress, and dh_fixperm. Previously, these three
commands were run in the listed order between dh_installxfonts and
dh_missing.
Their new placement is after dh_missing (arch:all) or
dh_shlibdeps (arch:any) and before dh_installdeb.
Additionally, their new order is dh_fixperms,
dh_strip_nondeterminism, and then dh_compress.
This change may require updates to third-party add-ons that
use either of these three commands as anchor or to hook targets for any
of these commands that made assumptions about the command order.
Additionally, dh_strip_nondeterminism and
dh_compress plus any commands added by third-party add-ons using
these as anchors will no longer be able to rely on the mode/ownership
normalization by dh_fixperms, which may expose bugs in the form
of incorrect mode or ownership in the resulting binary package.
Please file any such bugs against the relevant tool. Feel free
to include the debhelper maintainers in CC.
- L'outil dh_installsysusers est maintenant inclus dans la
séquence par défaut. Cet outil d'assistance traitera les
fichiers sysusers de systemd.
- L'outil dh_installsystemduser activera par défaut les
unités systemd de l'utilisateur, les démarrera à
l'installation, les redémarrera lors des mises à niveau et
les arrêtera lors la désinstallation du paquet.
- Désormais l'utilisation de la commande dh_gconf dans les
cibles de réécriture et d'accroche provoque une erreur. La
commande dh_gconf a été sans effet pendant des
années et a été supprimée dans
debhelper 13.4.
- L'outil dh_installalternatives sera maintenant
exécuté après dh_link plutôt
qu'après dh_installinitramfs dans la séquence
dh par défaut.
- Cette fonction ne s'applique qu'aux paquets source qui n'ont qu'une
seule et unique section Package dans
debian/control.
The dh_auto_install command now unconditionally uses
--destdir=debian/tmp by default. The special-case for source
packages building a single binary package is now moved to
single-binary dh addon. Note, this add-on is activated by
default in compat 14 but not in compat 15 (see next bullet item).
- Cette fonction ne s'applique qu'aux paquets source qui n'ont qu'une
seule et unique section Package dans
debian/control.
The dh sequencer will warn if the single-binary
addon is implicitly activated to warn maintainers of the pending compat
15 change in dh_auto_install. The implicit activation is a
transitional feature to reduce the changes of risks with this change. In
compat 15, the implicit activation will no longer trigger.
Les responsables sont encouragés soit à activer
explicitement le rajout single-binary pour conserver le
comportement existant (par exemple en ajoutant
<dh-sequence-single-binary> à Build-Depends), ou en passant
explicitement --destdir à dh_auto_install, s'il est
utilisé, puis en passant --without single-binary à
dh (cette dernière instruction pour rendre l'avertissement
silencieux).
La raison de cette modification est d'éviter des
« surprises » lors de l'ajout d'un second
paquet binaire ultérieurement. Auparavant, debhelper changeait
silencieusement de comportement provoquant souvent l'envoi à
l'archive de paquets binaires vides par erreur. Avec ce nouveau
comportement, le rajout de single-binary détecte
l'incohérence et avertit le responsable de ce qui va se
passer.
- -
- L'outil dh_gencontrol applique désormais automatiquement les
variables de substitution de relation aux champs concernés. Cela
signifie que plusieurs variables de substitution telles que
${misc:Depends} et ${shlibs:Depends} n'ont plus besoin
d'être explicitement mentionnées dans debian/control.
Cela s'applique à toutes les variables de substitution
nommées d'après un champ que la version installée de
dpkg considère comme un champ de relation ou de type
dépendance. Au moment de l'écriture de cette page, cette
liste comprend :
- Pre-Depends
- Depends
- Recommends
- Suggests
- Enhances
- Conflicts
- Breaks
- Replaces
- Provides
- Built-Using
- Static-Built-Using
Cela signifie que Depends: toto, ${misc:Depends} dans
debian/control peut se réduire à Depends: toto
et Depends: ${misc:Depends}, ${shlibs:Depends} peut être
complètement supprimé de exemples de comment la fonction
agit.
Notez que d'autres variables de substitution telles que
${binary:Version} ne sont pas affectées par ce changement et
doivent encore être utilisées explicitement lorsque cela est
nécessaire. De plus, pour les paquets Essential: yes qui
promeuvent manuellement ${shlibs:Depends} dans le champ
Pre-Depends, dh_shlibdeps gérera aussi cela
automatiquement (voir l'item de compatibilité suivant).
Consultez
<https://lists.debian.org/debian-devel/2024/02/msg00230.html> pour des
détails sur cette proposition. Le résumé dans
<https://lists.debian.org/debian-devel/2024/03/msg00030.html> traite
aussi des cas où les variables de substitution nécessitent un
ajustement. Le cas le plus fréquent concerne l'utilisation de
l'option -d à partir de dpkg-shlibdeps
vraisemblablement au moyen de dh_shlibdeps.
Remarque : cette modification provoquera des faux positifs
à partir d'une version de lintian(1) non corrigée.
Veuillez consulter le bogue <https://bugs.debian.org/1067653> sur la
prise en charge par lintian(1) de ce changement.
- L'outil dh_shlibdeps utilise maintenant
${shlibs:Pre-Depends} par défaut pour les paquets qui sont
Essential: yes.
Notez que du fait de la modification de dh_gencontrol
vue plus haut, tout paquet utilisant dh_gencontrol n'aura rien
à faire pour cette migration.
- When running dh_auto_install, debhelper provided build
systems will now ensure all paths in the destdir have minimal user
permissions (chmod -R u+rwX) to avoid weird permission
denied errors during builds.
Third-party provided debhelper build systems are recommended
to support this as well. This can be done by running
$this->ensure_minimal_permissions($destdir) if not compat(13);
in the debhelper Buildsystem code from their sub
install implementation after the upstream code has been run.
If you are not using dh_auto_install and you run into
weird permission denied errors, you can often solve this by
running chmod -R u+rwX DIRECTORY after running the install target
from the upstream build system.
Please take care to check if your package has any special
cases for permissions where files or directories for some reason must
not have the "user write bit" set. Known cases are
*.ali files and /etc/sudoers.d, which dh_fixperms
will fix up by default.
The problem with uncommon permissions have always been present
in theory. However, it has become considerable more visible with
dh_fixperms being run later in the sequence as of compat 14 and
with the move to remove fakeroot by default (which papered over
some of these issues). This change is aimed at mitigating the
problem.
- The debhelper configuration files are subject to the following
changes:
- Désormais, il déclenchera un avertissement pour
l'utilisation des versions sans paquet des fichiers de configuration de
debhelper quand il y a deux paquets binaires ou plus listés dans
debian/control dans la plupart des cas. Les anciens fichiers
doivent être renommés de debian/toto en
debian/paquet.toto où paquet est le premier paquet
binaire listé dans debian/control.
Les exceptions principales à cette modification sont
des fichiers comme debian/changelog, debian/NEWS et
debian/copyright où le même fichier est
utilisé par défaut pour tous les paquets. Ces cas
demeureront inchangés. L'outil debhelper utilisant ces fichiers
déclenchera des avertissements s'ils sont utilisés.
Dans compat 15 (ou ultérieur), cela devient une
erreur.
- It now triggers a warning to use a packaging file without the package
prefix for --name even if the source package only produces one
binary package. As example, if you had a debian/bar.service with
the following snippet in debian/rules:
override_dh_installinit:
dh_installsystemd -p toto --name titi
Ensuite vous devez renommer debian/titi.service en
debian/toto.titi.service.
Dans compat 15 (ou ultérieur), cela devient une
erreur.
- The default look up rules for Dh_Lib based tools now assume that
configuration files are no longer named (--name) nor support
architecture restrictions by default. If you work with a third-party
debhelper-like tool and need support for either of these features, please
file a bug against the tool asking it to declare its configuration file
with the relevant options in its pkgfile call.
Note that debhelper itself tweaked its rules for most
of its tools as well based on analysis of usage via
codesearch.debian.org. Should you be relying on a feature like
architecture restrictions for a given config file that is no longer
supported, please file a feature request for the use-case and it might
be restored.
- -
- Pour les paquets utilisant le système de construction cmake,
il faut avoir conscience des modifications suivantes :
- Le système de construction cmake passe maintenant l'option
-DCMAKE_BUILD_RPATH_USE_ORIGIN=ON à cmake(1) pour
éviter des problèmes de reproductibilité.
- Le système de construction cmake définit maintenant
la variable d'environnement ASMFLAGS quand elle ne l'est pas et
qu'ASFLAGS est présent. L'ancien nom (ASMFLAGS) est
le nom que cmake attend, tandis que le nouveau nom est celui que
dpkg-buildpackage(1) utilise.
- Les systèmes de construction cmake utilisent
désormais cmake --install à la place de make
install dans l'appel dh_auto_install(1). Chaque
réécriture de dh_auto_install qui passe des
paramètres supplémentaires au système de construction
amont devrait être vérifiée.
- -
- Pour les paquets utilisant le système de construction meson,
il faut avoir conscience des modifications suivantes :
- Le système de construction meson passe maintenant l'option
--auto-features=enabled à meson.
- Le système de construction meson+ninja utilise maintenant
meson install à la place de ninja install dans
l'appel dh_auto_install(1). Chaque réécriture de
dh_auto_install qui passe des paramètres
supplémentaires au système de construction amont devrait
être vérifiée.
- v13
- C'est la version dont l'usage est recommandé.
Les changements par rapport à la version 12
sont :
- Le système de construction meson+ninja utilise maintenant
meson test à la place de ninja test pour la suite de
tests. Chaque réécriture de dh_auto_test qui passe
des paramètres supplémentaires aux tests amont devrait
être vérifiée, car meson test n'est pas
compatible avec ninja test.
- Tous les outils dans le style de debhelper basés sur la
bibliothèque debhelper officielle (y compris dh et les
outils officiels dh_*) n'acceptent plus les paramètres de
commande abrégés. En même temps, dh optimise
maintenant les appels aux outils redondants dh_* même quand
ils passent de longues options de ligne de commande.
- Les outils de debhelper liés à ELF (dh_dwz,
dh_strip, dh_makeshlibs, dh_shlibdeps) sont
désormais seulement exécutés pour les paquets
dépendant de l'architecture par défaut (c'est-à-dire
qu'ils sont exclus des cibles *-indep et sont passés avec
l'option -a par défaut). Si vous avez besoin d'eux pour des
cibles *-indep, vous pouvez ajouter un Build-Depends explicite
à dh-sequence-elf-tools.
- Le système de construction tiers gradle (issu du paquet
gradle-debian-helper) exécute maintenant la suite de tests
fournie par l'amont automatiquement. Pour supprimer ce type de
comportement, surchargez dh_auto_test.
- L'outil dh_installman s'interrompt maintenant s'il voit des
définitions contradictoires d'une page de manuel. Cela se produit
habituellement si le système de construction amont installe une
version compressée et que le paquet liste une version non
compressée de la page de manuel dans debian/paquet.manpages.
La correction la plus simple est de supprimer la page de manuel de
debian/paquet.manpages (en considérant que les deux versions
sont identiques).
- The dh_auto_* helpers now reset the environment variable
HOME and the common XDG_* variables. Please see description
of the environment variables in "ENVIRONMENT" in
debhelper(1) for how this is handled.
Cette fonctionnalité a changé entre
debhelper 13 et debhelper 13.2.
- La commande dh produira maintenant une erreur si une cible de
réécriture ou d'accroche pour une commande obsolète
est présente dans debian/rules (par exemple,
override_dh_systemd_enable:).
- La commande dh_missing aura l'option --fail-missing par
défaut. Il est possible de revenir à un avertissement non
fatal en passant explicitement l'option --list-missing comme dans
le niveau de compatibilité 12.
Si vous ne voulez pas non plus de l'avertissement, veuillez
omettre l'appel à dh_missing. Si l'automate de commandes
dh est utilisé, vous pouvez faire cela en insérant
une cible de réécriture vide dans le fichier
debian/rules du paquet correspondant. Comme dans
l’exemple :
# Désactive dh_missing
override_dh_missing:
- L'automate de commandes dh exécute maintenant
dh_installtmpfiles dans la séquence par défaut.
dh_installtmpfiles se charge de la gestion des fichiers de
configuration de tmpfiles.d. La fonctionnalité
apparentée dans dh_installsystemd est désormais
désactivée.
Notez que dh_installtmpfiles répond à
debian/paquet.tmpfiles là où
dh_installsystemd utilisait un nom sans le
« s » final.
- Beaucoup d'outils dh_* prennent en charge un développement
de variables limité au moyen de la syntaxe ${toto}. Dans de
nombreux cas, cela peut être utilisé pour
référencer des chemins qui contiennent soit des espaces,
soit des valeurs dpkg-architecture(1). Bien que cela puisse
réduire le besoin de dh-exec(1) dans certains cas, ce
n'est pas une alternative à dh-exec(1) en
général. Si un filtrage, un renommage, etc., est
nécessaire, le paquet aura encore besoin de dh-exec(1).
Veuillez consulter "Substitutions dans les fichiers de
configuration de debhelper" pour la syntaxe et les variables de
substitution disponibles. Pour ceux qui écrivent des outils
dh_*, le développement de substitution intervient comme
élément des fonctions filearray et
filedoublearray.
- L'automate de commandes dh omettra toutes les cibles d'accroche et
de substitution pour dh_auto_test, dh_dwz et dh_strip
quand DEB_BUILD_OPTIONS liste les options nocheck ou
nostrip correspondantes.
Tout paquet comptant sur ces cibles pour être toujours
exécuté devrait plutôt déplacer la logique
correspondante de ces cibles. Par exemple, le code d’empaquetage
non lié aux tests provenant de override_dh_auto_test
devrait avoir été déplacé dans
execute_after_dh_auto_build ou
execute_before_dh_auto_install.
- Le système de construction cmake passe désormais
l'option -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON à
cmake(1) pour accélérer le processus d'installation
automatique. Si pour une raison quelconque vous avez besoin de revenir au
comportement antérieur, réécrivez le
paramètre :
dh_auto_configure -- -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=OFF ...
- v12
- Les changements par rapport à la version 11
sont :
- dh_makeshlibs génère maintenant des fichiers shlibs
avec des dépendances versionnées par défaut. Cela
veut dire que -VUpstream-Version (ou -V) est maintenant le
comportement par défaut.
Si une dépendance non versionnée est requise,
cela peut être obtenu en passant -VNone à la place.
Veuillez tout de même consulter dh_makeshlibs(1) pour
l'utilisation des dépendances non versionnées.
- L'option -s (--same-arch) est supprimée. Veuillez
utiliser -a (--arch) à la place.
- Appeler dh_clean -k provoque maintenant une erreur à la
place de l'avertissement d'obsolescence.
- L'option --no-restart-on-upgrade de dh_installinit a
été supprimée. Veuillez utiliser le nouveau nom
--no-stop-on-upgrade.
- Il y avait un bogue dans les fonctions doit (et équivalent)
de Debian::Debhelper::Dh_Lib qui créait un shell dans une
circonstance particulière. Ce bogue est maintenant supprimé
et provoquera une erreur de type « commande non
trouvée » dans les outils qui l'utilisaient.
- Les options --list-missing et --fail-missing de
dh_install ont été supprimées. Veuillez
utiliser dh_missing et ses options correspondantes, qui peuvent
aussi voir les fichiers installés par les autres outils.
- L'outil dh_installinit n'installe plus de configuration pour
upstart. À la place, il abandonnera la construction s'il trouve un
ancien fichier de configuration upstart. Cela pour rappeler au mainteneur
de s'assurer de correctement supprimer les anciens fichiers de
configuration livrés dans les anciennes versions du paquet.
- L'outil dh_installdeb valide basiquement quelques commandes
dpkg-maintscript-helper(1) et renvoie une erreur si la commande
semble incorrecte.
- Le comportement par défaut de dh_missing est maintenant
--list-missing.
- dh_makeshlibs passera maintenant les bibliothèques à
dpkg-gensymbols(1) si le binaire ELF a un SONAME (contenant
« .so »).
- dh_compress ne compresse plus les exemples (c'est-à-dire
tout ce qui est installé dans
</usr/share/doc/paquet/examples>).
- La séquence standard de dh comprend maintenant dh_dwz
et dh_installinitramfs par défaut. Cela rend les
séquences dwz et installinitramfs obsolètes et
elles échoueront avec une erreur. Si vous souhaitez sauter ces
commandes, veuillez insérer des cibles de réécriture
vides pour elles dans debian/rules (par exemple
override_dh_dwz:).
- Les systèmes de construction meson et autoconf ne
positionnent plus explicitement la variable --libexecdir, et
s'appuient donc sur le système de construction par défaut
– qui devrait être /usr/libexec (selon la
FHS 3.0, adoptée dans la Charte Debian 4.1.5).
Si un paquet amont particulier n'utilise pas la bonne valeur
par défaut, le paramètre peut souvent être
passé manuellement avec dh_auto_configure(1). Par
exemple :
override_dh_auto_configure:
dh_auto_configure -- --libexecdir=/usr/libexec
Remarquez le -- avant le paramètre
--libexecdir.
- Retiré de façon rétroactive de
debhelper/13.5 :
L'outil dh_installdeb ne devrait plus installer le
fichier conffiles fourni par le responsable parce qu'il est
considéré comme inutile. Néanmoins, la commande
remove-on-upgrade de dpkg/1.20 rend de nouveau pertinent ce
fichier et dh_installdeb l'installe désormais dans les
niveaux de compatibilité supérieurs
à 12.
- dh_installsystemd ne s'appuie plus sur dh_installinit pour
s'occuper des services systemd qui ont une alternative pour sysvinit. Les
deux outils doivent maintenant être utilisés dans ce cas
pour s'assurer que le service est démarré correctement,
à la fois avec systemd et sysvinit.
Si vous avez une réécriture pour
dh_installinit (par exemple pour l'appeler avec
--no-start), vous en aurez sûrement besoin d'une pour
dh_installsystemd aussi.
Ce changement amène dh_installinit à
injecter un champ misc:Pre-Depends sur init-system-helpers
(>= 1.54~). Veuillez vous assurer que le paquet utilise
${misc:Pre-Depends} dans son champ Pre-Depends avant de
mettre à niveau vers la compat 12.
- L'outil tiers dh_golang (du paquet dh-golang) utilise
maintenant la variable DH_GOLANG_EXCLUDE pour l'installation des
sources dans les paquets -dev, et plus uniquement lors de la construction.
Veuillez positionner DH_GOLANG_EXCLUDES_ALL à faux pour
obtenir le comportement précédent. Consultez
Debian::Debhelper::Buildsystem::golang(3pm) pour plus de
détails et des exemples.
- dh_installsystemduser est maintenant inclus par défaut dans
la séquence dh standard.
- Le système de construction python-distutils est
supprimé. Veuillez utiliser le système tiers pybuild
à la place.
- v11
- Ce mode est déconseillé.
Le niveau de compatibilité 11 est
déconseillé pour les nouveaux paquets parce qu'il souffre
d'une interaction de fonctionnalités entre dh_installinit et
dh_installsystemd faisant que les services ne fonctionnent pas
correctement dans certains cas. Vous devriez envisager l'utilisation
à la place des modes de compatibilité 10 ou 12.
Plus de détails sur ce problème sont disponibles dans le
bogue Debian n° 887904 et dans le message
<https://lists.debian.org/debian-release/2019/04/msg01442.html>.
Les changements par rapport à la version 10
sont :
- dh_installinit n'installe plus de fichiers service ou
tmpfile, ni ne crée de scripts de maintenance pour ces
fichiers. Veuillez utiliser le nouvel assistant dh_installsystemd
à la place.
- Les outils dh_systemd_enable et dh_systemd_start ont
été remplacés par un nouvel assistant
dh_installsystemd. Pour la même raison, la séquence
systemd de dh a aussi été retirée. Si
vous avez besoin de désactiver dh_installsystemd, veuillez
utiliser une cible de réécriture vide.
Veuillez noter que dh_installsystemd a un comportement
légèrement différent dans certains cas (par exemple
lors de l'utilisation du paramètre --name).
- dh_installdirs ne crée plus les répertoires
debian/paquet sans qu'on le lui demande explicitement (ou il doit
créer un sous-répertoire à l'intérieur).
La grande majorité des paquets ne seront pas
affectés par ce changement.
- Le système de construction makefile passe maintenant les
options INSTALL="install --strip-program=true" à
make(1). Les systèmes dérivés (comme
configure ou cmake) ne sont pas affectés par ce
changement.
- Le système de construction autoconf passe maintenant
l'option --runstatedir=/run à ./configure.
- Le système de construction cmake passe maintenant l'option
-DCMAKE_INSTALL_RUNSTATEDIR=/run à cmake(1).
- dh_installman préfère maintenant détecter le
langage à partir du chemin plutôt que de l'extension.
- dh_auto_install crée maintenant uniquement le
répertoire de destination nécessaire. Auparavant, le
répertoire de construction de chaque paquet était
créé. Cela n'affectera pas les paquets qui se construisent
uniquement avec debhelper, mais pourrait faire apparaître des
bogues dans les commandes qui ne sont pas incluses avec debhelper.
- Les outils dh_installdocs, dh_installexamples,
dh_installinfo et dh_installman renvoient maintenant une
erreur si leur configuration contient un motif qui ne correspond à
rien ou qui référence un chemin qui n'existe pas.
Les exceptions connues incluent la construction avec le profil
nodoc, où les outils ci-dessus permettront un échec
silencieux de la correspondance lorsque le motif est utilisé pour
spécifier la documentation.
- Les outils dh_installdocs, dh_installexamples,
dh_installinfo et dh_installman acceptent maintenant le
paramètre --sourcedir avec la même signification que
dans dh_install. De plus, ils se rabattent sur debian/tmp
comme dh_install.
Note de migration : un bogue dans debhelper 11
jusqu'à 11.1.5 faisait que dh_installinfo ignorait
--sourcedir de manière incorrecte.
- Les systèmes de construction perl-makemaker et
perl-build ne passent plus l'option -I. à Perl. Les
paquets qui dépendent de ce comportement peuvent souvent utiliser
la variable d'environnement PERL5LIB comme substitut. Par exemple
en ajoutant export PERL5LIB=. dans leur fichier debian/rules
(ou équivalent).
- La variable d'environnement PERL_USE_UNSAFE_INC n'est plus
définie par dh, ni aucun des outils dh_auto_*. Cela
avait été ajouté comme contournement temporaire, pour
éviter les échecs de construction d’un grand nombre
de paquets en même temps.
De plus, cette fonction deviendra peut-être
obsolète car l'amont a l'intention de retirer la prise en charge
de la variable d'environnement PERL_USE_UNSAFE_INC. Lorsque ce
sera le cas, cette variable sera aussi supprimée
rétroactivement des niveaux de compatibilité
existants.
- L'assistant dh_makeshlibs termine maintenant sur une erreur si
objdump renvoie une valeur de sortie différente de zéro lors
de l'analyse d'un fichier.
- Les outils dh_installdocs et dh_installexamples pourraient
maintenant installer la plupart de la documentation dans un
répertoire différent, pour satisfaire les recommandations de
la Charte Debian §12.3 (depuis la
version 3.9.7).
Si un paquet source contient un seul paquet binaire dans
debian/control, ou si aucun des paquets n'est un paquet
-doc, alors ce changement n'a pas d'effet pour ce paquet source,
et vous pouvez aller au changement suivant.
Par défaut, ces outils essaient maintenant de
déterminer un « paquet principal pour la
documentation » (que l'on appellera
doc-main-package) pour chaque paquet -doc. S'ils trouvent
un tel doc-main-package, ils installeront la documentation sous
/usr/share/doc/doc-main-package pour le paquet
considéré. C'est-à-dire que le chemin peut changer,
mais la documentation est toujours fournie par le paquet
-doc.
L'option --doc-main-package peut être
utilisée si la détection automatique est insuffisante, ou
pour réinitialiser le chemin à sa valeur
précédente s'il y a une raison de diverger des
recommandations de la Charte Debian.
Quelques documents ne sont pas affectés par ce
changement. En particulier le fichier copyright, les fichiers changelog,
README.Debian, etc. Ces fichiers seront toujours installés
sous /usr/share/doc/package.
- Les outils dh_strip et dh_shlibdeps n'utilisent plus les
motifs de noms de fichiers pour déterminer les fichiers à
traiter. À la place, ils ouvrent le fichier et cherchent un
en-tête ELF pour déterminer si ce fichier est un objet
partagé ou un exécutable ELF.
Ce changement peut forcer les outils à traiter plus de
fichiers qu'avant.
- v10
- Les changements par rapport à la version 9
sont :
- Il est maintenant plus facile de déboguer les séquences
install et binary parce qu'elles peuvent maintenant
être facilement re-exécutées (sans avoir à
refaire un cycle complet de « clean &
rebuild »)
- La principale précaution est que dh_* enregistre uniquement
ce qui s'est passé dans une unique cible de
réécriture. Lorsque tous les appels à une commande
dh_cmd donnée arrivent dans la même cible de
réécriture, tout fonctionnera comme avant.
Exemple de ce qui pourrait mal se passer :
override_dh_toto:
dh_toto -pmon_paquet
override_dh_titi:
dh_titi
dh_toto --remaining
Dans ce cas, l'appel à dh_foo --remaining
inclura aussi mon_paquet, car dh_foo -pmon_paquet a
été exécuté dans une cible de
réécriture différente. Ce problème n'est pas
limité à --remaining et concerne aussi -a,
-i, etc.
- À présent, la commande dh_installdeb échappe
les caractères du shell dans les lignes du fichier de config
maintscript. C'était l'intention originale mais cela n'a
jamais fonctionné correctement et les paquets ont commencé
à compter sur l'échappement incomplet (p. ex. en
encadrant les noms de fichiers de guillemets).
- La commande dh_installinit utilise maintenant
--restart-after-upgrade par défaut. Les paquets
nécessitant le comportement précédent devraient
utiliser l'option --no-restart-after-upgrade.
- La séquence autoreconf est maintenant activée par
défaut. Veuillez passer l'option --without autoreconf
à dh si cela n'est pas voulu pour certains paquets.
- La séquence systemd est maintenant activée par
défaut. Veuillez passer l'option --without systemd à
dh si cela n'est pas voulu pour certains paquets.
- Supprimé rétroactivement : dh ne
crée plus le répertoire de construction du paquet lors de
l'omission des commandes de debhelper en cours. Cela n'affectera pas les
paquets qui se construisent uniquement avec debhelper, mais pourrait faire
apparaître des bogues dans les commandes qui ne sont pas incluses
avec debhelper.
Cette fonctionnalité de compatibilité avait un
bogue depuis sa création dans debhelper/9.20130516, qui la
faisait échouer en compat 9 et précédent.
Comme il n'y a eu aucun rapport de problème causé par ce
bogue en 5 ans, cela a été supprimé
plutôt que corrigé.
- v9
- Les changements par rapport à la version 8
sont :
- v8
- Les changements par rapport à la version 7
sont :
- Les commandes échoueront plutôt que de produire une alerte
lorsqu'elles recevront des options inconnues.
- dh_makeshlibs va exécuter le programme
dpkg-gensymbols sur toutes les bibliothèques
partagées qu'il génère pour les fichiers shlibs.
-X peut alors être utilisé pour exclure certaines
bibliothèques. En outre, les bibliothèques rangées
à des emplacements inhabituels que pkg-gensymbols n'aurait
pas traitées avant qu'elles ne lui soient transmises, induisent un
changement de comportement qui peut causer l'échec de la
construction de certains paquets.
- dh exige que la séquence à exécuter soit
indiquée en tant que premier paramètre. Tous les
commutateurs doivent venir après. C'est-à-dire qu'il faut
écrire « dh $@ --toto »,
et non « dh --toto $@ »
- dh_auto_* utilise préférentiellement
Module::Build de Perl au lieu de Makefile.PL.
- v7
- Ce mode est déconseillé.
C'est le niveau de compatibilité le plus bas pris en
charge.
Si vous mettez à jour depuis un niveau de
compatibilité antérieur, veuillez consulter
debhelper-obsolete-compat(7).
- debhelper-obsolete-compat(7)
- Mettre à niveau à partir d'un niveau de compatibilité
(maintenant) obsolète ? Ce document couvre la liste de
contrôle de mise à niveau vers le niveau le plus ancien pris
en charge.
- debhelper(7)
- Informations générales sur l'infrastructure debhelper. Ce
document couvre aussi la manière de déclarer le niveau de
compatibilité de debhelper que vous avez choisi.
Niels Thykier <niels@thykier.net>
Joey Hess
Cette traduction est maintenue à l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'équipe francophone
de traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant
à <debian-l10n-french@lists.debian.org> ou par un rapport de
bogue sur le paquet debhelper.
Vous pouvez toujours avoir accès à la version
anglaise de ce document en utilisant la commande « man -L C
<section> <page_de_man> ».