Provided by: debhelper_13.24.2ubuntu1_all 

NOM
debhelper-compat-upgrade-checklist – Liste de contrôle de mise à niveau des niveaux de compatibilité de
debhelper pris en charge
SYNOPSIS
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).
DESCRIPTION
Liste de contrôle de mise à niveau des niveaux de compatibilité pris en charge.
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 :
- L'outil dh_installpam installera désormais les fichiers de configuration de PAM dans
/usr/lib/pam.d/paquet plutôt que dans /etc/pam.d/paquet.
Veuillez utiliser la fonction « rm_conffile » de dh_installdeb(1) pour vous assurer de la
suppression correcte des fichiers PAM antérieurs.
- Les paquets utilisant l'automate de commandes dh doivent avoir connaissance des modifications
suivantes :
- 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.
- Le fichier debian/compat n'est plus accepté comme source pour spécifier le niveau de
compatibilité de debhelper. Mettre le niveau de compatibilité dans le champ X-DH-Compat de la
section Source du fichier debian/control.
Notez que pour éviter de casser des paquets qui ont déjà migré vers compat 14 immédiatement
alors qu'il était expérimental, cette modification n'est appliquée que lorsque compat 14
devient stable.
- L'outil dh_installtmpfiles est maintenant exécuté avec --remove lors de la suppression d'un
paquet et --purge lors de la purge du paquet. La version 256 de systemd est requise pour
cette dernière option.
- The dh_lintian tool no longer accepts architecture specific overrides files for packages with
Multi-Arch: same in debian/control, since these would not be co-installable. Instances
affected by this error should migrate to lintian(1) architecture specific overrides.
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 :
- dh_installinit n'installe plus de fichier nommé debian/<paquet> comme script
d'initialisation.
- dh_installdocs renverra une erreur s'il détecte des liens créés avec --link-doc entre des
paquets de l'architecture « all » et non-« all » car cela casse les binNMUs (envois de
binaires par quelqu'un d'autre que le responsable).
- dh_installdeb n'installe plus de fichier debian/<paquet>.shlibs fourni par le responsable du
paquet. Cela est maintenant effectué par dh_makeshlibs.
- dh_installwm refuse de créer un paquet cassé si aucune page de manuel ne peut être trouvée
(requis pour l'inscription de l'alternative x-window-manager).
- Debhelper active par défaut la parallélisation pour tous les systèmes de construction qui le
gèrent. Cela peut être désactivé en utilisant l'option --no-parallel ou en passant la valeur
1 à l'option --max-parallel.
- La commande dh n'acceptera aucun des paramètres obsolètes de « manual sequence control »
(--before, --after, etc.). Veuillez utiliser les cibles de réécritures à la place.
Application rétroactive aux niveaux de compatibilité antérieurs : dh n'accepte plus aucun de
ces paramètres depuis debhelper 12.4.
- La commande dh n'utilisera plus les fichiers journaux pour enregistrer quelles commandes ont
été exécutées. La commande dh se souvient toujours si la séquence « build » a été effectuée
et l'omet si c'est le cas.
Les principales conséquences de cela 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 :
- Prise en charge multiarchitecture. En particulier, dh_auto_configure passe les répertoires
multiarchitectures à autoconf dans --libdir et --libexecdir.
- dh connaît les dépendances classiques entre les cibles de debian/rules. Donc « dh binary »
exécutera toutes les cibles build, build-arch, build-indep, install, etc., présentes dans le
fichier rules. Il n'est pas nécessaire de définir une cible binary avec des dépendances
explicites sur les autres cibles.
- dh_strip compresse les fichiers de symboles de mise au point pour réduire la taille
d'installation des paquets -dbg.
- dh_auto_configure n'inclut pas le nom du paquet source dans --libexecdir en utilisant
autoconf.
- dh n'active pas --with=python-support par défaut.
(Obsolète puisque l'outil dh_pysupport a été retiré de Debian Stretch. Depuis debhelper 10.3,
dh n'active plus cette séquence quel que soit le niveau de compatibilité)
- Tous les programmes debhelper dh_auto_* et dh configurent les variables d'environnement
renvoyées par dpkg-buildflags, sauf si elles sont déjà configurées.
- dh_auto_configure passe les CFLAGS, CPPFLAGS et LDFLAGS de dpkg-buildflags à Makefile.PL et
Build.PL de Perl.
- dh_strip place les symboles de mise au point séparés à un endroit en fonction de leur
identifiant de construction (build-id).
- Les fichiers de configuration exécutables de debhelper sont exécutés et leur sortie est
utilisée comme configuration.
Ce mode est déconseillé.
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.
Ce mode est déconseillé.
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).
VOIR AUSSI
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.
AUTEURS
Niels Thykier <niels@thykier.net>
Joey Hess
TRADUCTION
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> ».
13.24.2ubuntu1 2025-05-22 debhelper(7)