Provided by: debhelper_13.24.2ubuntu1_all bug

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.totopaquet 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.totopaquet 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)