debhelper-compat-upgrade-checklist.de

summary: Upgrade\-Prüfliste für unterstützte Debhelper\-Kompatiblitätsstufen

text:
# debhelper-compat-upgrade-checklist.de(7)

## NAME
debhelper-compat-upgrade-checklist - Upgrade-Prüfliste für unterstützte Debhelper-Kompatiblitätsstufen

## ÜBERSICHT
Dieses Dokument ist eine Upgrade-Prüfliste für alle unterstützten Debhelper-Kompatibilitätsstufen. Es listet darüber hinaus alle unterstützten Debhelper-Kompatibilitätsstufen auf.

The dh_assistant compat-upgrade-checklist command can provide a package specific upgrade checklist from compat 7 and up (requires debhelper/13.25 or later). Its main limitation is accuracy of its heuristics. Please review the documentation of dh_assistant(1) for details.

Informationen darüber, wie die Kompatibilitätsstufen deklariert werden, ist in "KOMPATIBILITÄTSSTUFEN" in debhelper(7) zu finden.

Falls Sie ein Upgrade von einer (jetzt) überholten Kompatibilitätsstufe durchführen, schlagen Sie bitte in debhelper-obsolete-compat(7) nach.

## BESCHREIBUNG

### Upgrade-Prüfliste für unterstützte Kompatibilitätsstufen.
Folgende Kompatibilitätsstufen sind verfügbar:

v15

Diese Kompatibilitätsstufe ist immer noch für die Entwicklung offen. Verwenden Sie sie mit Vorsicht. Änderungen gegenüber v14 sind:

- Die Erweiterung single-binary für dh wird nicht mehr implizit von Quellpaketen aktiviert, die einen einzelnen Eintrag Package in debian/control haben. Falls das Paket diefür Abkürzungen für Einzel-Binärpakete benötigt, muss es die Erweiterung single-binary explizit aktivieren. Das kann mit einem Build-Depends auf dh-sequence-single-binary erreicht werden.

Jedes --without single-binary, das an dh übergeben wurde, um die Warnung im Kompatibilitätsmodus 14 zu vermeiden, kann jetzt entfernt werden, um debian/rules zu vereinfachen, ohne die Warnung auszulösen.

- Jetzt ist es in den meisten Fällen ein Fehler, paketlose Versionen von Debhelper Konfigurationsdateien zu verwenden, wenn zwei oder mehr Binärpakete in debian/control aufgeführt sind. Veraltete Dateien sollten (von debian/foo) in debian/Paket.foo umbenannt werden, wobei Paket das erste der in debian/control aufgeführten Binärpakete ist. Die Hauptausnahme bei dieser Änderung sind Dateien wie debian/changelog, debian/NEWS und debian/copyright, wo die gleiche Datei per Voreinstellung für alle Pakete verwendet wird. Diese Fälle bleiben unverändert.

- Es ist jetzt ein Fehler, eine Paket-Datei ohne den Paket-Prefix für --name zu verwenden, selbst wenn das Quellpaket nur ein Binärpaket erzeugt. Falls Sie beispielsweise einen debian/bar.service mit dem folgenden Schnipsel in debian/rules hatten:

```
 override_dh_installsystemd:
    dh_installsystemd -p foo --name bar

```

Dann müssen Sie debian/bar.service in debian/foo.bar.service umbenennen.

v14

Diese Kompatibilitätsstufe ist immer noch für die Entwicklung offen. Verwenden Sie sie mit Vorsicht. Änderungen gegenüber v13 sind:

- The dh_installmodules and dh_installpam tools will now install their configuration files under /usr/lib/modprobe.d/package and /usr/lib/pam.d/package instead of their respective directory under /etc. Please consider using the "rm_conffile" feature from dh_installdeb(1) to ensure the proper removal of previous modprobe and PAM files.

- Pakete, die den dh-Sequenzer verwenden, sollten folgende Änderungen berücksichtigen:

- Die Reihenfolge und Platzierung für dh_strip_nondeterminism, dh_compress, und dh_fixperm hat sich geändert. Früher wurden diese drei Befehle in der aufgeführten Reihenfolge zwischen dh_installxfonts und dh_missing ausgeführt. Ihre neue Platzierung ist nach dh_missing (arch:all) oder dh_shlibdeps (arch:any) und vor dh_installdeb. Außerdem ist ihre neue Reihenfolge dh_fixperms, dh_strip_nondeterminism und dann dh_compress.

Diese Änderung macht möglicherweise Aktualisierungen von Erweiterungen von Drittanbietern notwendig, die einen dieser drei Befehle als Anker oder Hook-Ziele für einen dieser Befehle verwenden, und die Annahmen über die Reihenfolge der Befehle treffen.

Außerdem können sich dh_strip_nondeterminism und dh_compress sowie alle Erweiterungen von Drittanbietern, die diese Anker verwenden, nicht mehr auf die »Mode/Ownership«-Normalisierung durch dh_fixperms verlassen, was zur Offenlegung von Fehlern in der Art von falschen Modi oder Besitzrechten in dem resultierenden Binärpaket führen kann.

Bitte melden Sie den Entwicklern der entsprechenden Werkzeugen jeden dieser Fehler. Sie können die Betreuer von debhelper in Kopie setzen.

- Das Werkzeug dh_installsysusers ist jetzt in der Standardsequenz enthalten. Es verarbeitet systemd-Sysuser-Dateien.

- Das Werkzeug dh_installalternatives wird jetzt in der Standard-dh-Sequenz nach dh_link und nicht mehr nach dh_installinitramfs ausgeführt.

- The dh_dwz command has been removed from the default sequence. If it is still desired, add dh-sequence-dwz to Build-Depends-Arch or run it in execute_before_dh_strip-arch with -a to get the closest emulation of the previous behavior. Note: The dh_dwz command will cause a lot of differences in the generated debug symbols. If you use diffoscope as part of your compat upgrade checks, you may want to temporarily use dh_dwz to keep the delta reviewable while upgrading and then remove dh_dwz afterwards.

- Die Verwendung des dh_gconf-Befehls in Override- und Hook-Zielen führt jetzt zu einem Fehler. Der dh_gconf-Befehl war seit Jahren ein Leerbefehl und ist in Debhelper 13.4 entfernt worden.

- A new tool called dh_computeautosubstvars has been added and is now run immediately before dh_gencontrol. If you inject commands before dh_gencontrol (either via hook targets or third-party sequence add-on), consider moving them to after dh_installdeb instead as the new tool generally assumes no more changes will occur between it is called and dh_gencontrol is called. Notable exception to this assumption if you have to tweak substvars per <https://lists.debian.org/debian-devel/2024/03/msg00030.html>.

- Dieser Punkt ist nur auf Quellpakete anwendbar, die genau einen Abschnitt Paket in debian/control haben. Der Befehl dh_auto_install verwendet jetzt standardmäßig und bedingungslos --destdir=debian/tmp. Der Spezialfall für Quellpakete, die ein einziges Binärpaket bauen, ist jetzt in die Erweiterung single-binary von dh verschoben worden. Bitte beachten Sie, dass diese Erweiterung im Kompatibilitätsmodus 14, aber nicht im Kompatibilitätsmodus 15 standardmäßig aktiviert ist (siehe den nächsten Punkt).

- Dieser Punkt ist nur auf Quellpakete anwendbar, die genau einen Abschnitt Paket in debian/control haben. Der dh-Sequenzer wird eine Warnung ausgeben, wenn die single-binary-Erweiterung implizit aktiviert wurde, um Betreuer vor der anstehenden Änderung in Kompatibilitätsstufe 15 in dh_auto_install zu warnen. Die implizite Aktivierung ist eine Funktionalität für den Übergang, um das Risiko zu reduzieren, das diese Änderung mit sich bringt. In Kompatibilitätsstufe 15 wird die implizite Aktivierung nicht mehr auslösen.

Betreuern wird dringend geraten, die single-binary-Erweiterung entweder explizit zu aktivieren, um das bisherige Verhalten beizubehalten (bspw. durch Hinzufügen von dh-sequence-single-binary zu Build-Depends), oder dh_auto_install explizit mit --destdir aufzurufen, wenn verwendet, und dann --without single-binary bei dh anzugeben (Letzteres zum Abstellen der Warnung).

Der Zweck dieser Änderung besteht darin, »Überraschungen« beim späteren Hinzufügen eines zweiten Binärpakets zu vermeiden. In der Vergangenheit hat Debhelper kommentarlos sein Verhalten geändert, was dazu führte, dass versehentlich leere Pakete ins Archiv hochgeladen wurden. Bei der neuen Vorgehensweise wird die single-binary-Erweiterung diese Diskrepanz feststellen und den Betreuer vor dem, was passieren wird, warnen.

- Das Werkzeug dh_installsystemduser aktiviert jetzt in der Voreinstellung Systemd-User-Units, startet sie bei der Installation, startet sie bei Upgrades neu und stoppt sie bei der Deinstallation eines Pakets.

- Das Werkzeug dh_gencontrol wendet nun automatisch Ersetzungsvariable mit Beziehungen auf die relevanten Felder an. Das bedeutet, dass viele Ersetzungsvariable wie ${misc:Depends} und ${shlibs:Depends} nicht mehr explizit in debian/control aufgeführt werden müssen. Das betrifft jede Ersetzungsvariable, die nach einem Feld benannt wird, das die installierte Version von dpkg als eine Beziehung oder ein abhängigkeitsähnliches Feld versteht. Zur Zeit der Erstellung des Dokuments besteht diese Liste aus:

- Pre-Depends

- Depends

- Recommends

- Suggests

- Enhances

- Conflicts

- Breaks

- Replaces

- Provides

- Built-Using

- Static-Built-Using

Das bedeutet, dass zum Beispiel Depends: foo, ${misc:Depends} in debian/control zu Depends: foo verkürzt werden kann. Außerdem kann als Beispiel für diese Funktionalität Depends: ${misc:Depends}, ${shlibs:Depends} komplett entfernt werden.

Beachten Sie, dass andere Ersetzungsvariable wie B${binary:Version} von dieser Änderung nicht betroffen sind und weiterhin wenn notwendig explizit verwendet werden sollen. Bei Paketen, bei denen Essential: yes gesetzt ist und bei denen manuell das Feld ${shlibs:Depends} in das Feld Pre-Depends übertragen wurde, wird dh_shlibdeps dies ebenfalls automatisch handhaben (siehe den nächsten Punkt zu Kompatibilitätsstufen).

Siehe <https://lists.debian.org/debian-devel/2024/02/msg00230.html> für Details zu diesem Vorschlag. Die Zusammenfassung in <https://lists.debian.org/debian-devel/2024/03/msg00030.html> behandelt auch die Fälle, bei denen Ersetzungsvariable eine Anpassung benötigen. Der allgemeinste Fall beinhaltet die Verwendung der Option -d von dpkg-shlibdeps, möglicherweise durch dh_shlibdeps.

Hinweis: Diese Änderung wird Falsch-positiv-Bewertungen von einem nicht korrigiertem lintian(1) verursachen. Bitte prüfen Sie anhand von <https://bugs.debian.org/1067653>, ob lintian(1) diese Änderung unterstützt.

Finally, debhelper also applies this feature the substvars for the following fields due to implementation details:

-

Commands See #638517 <https://bugs.debian.org/638517> for what the field is used for.

- Das Werkzeug dh_shlibdeps verwendet in der Voreinstellung ${shlibs:Pre-Depends} für Pakete mit Essential: yes. Beachten Sie, dass durch die obige Änderung von dh_gencontrol jedes Paket, das dh_gencontrol verwendet, nicht von dieser Migration betroffen ist.

- Wenn dh_auto_install ausgeführt wird, stellen die von debhelper bereitgestellten Bausysteme sicher, dass alle Pfade in destdir minimale Benutzerberechtigungen haben (chmod -R u+rwX), um seltsame Berechtigung verweigert-Fehler während des Bauens zu vermeiden. Drittanbietern von Debhelper-Bausystemen wird empfohlen, dies gleichfalls zu unterstützen. Das kann mittels der Ausführung von

```
     $this->ensure_minimal_permissions($destdir) if not compat(13);

```

im debhelper Bausystem-Code aus deren sub install Implementierung erreicht werden, und zwar nach der Ausführung des Codes der Originalautoren.

Falls Sie dh_auto_install nicht verwenden, und Sie seltsame Berechtigung verweigert-Fehler erhalten, können Sie das oft durch die Ausführung von chmod -R u+rxW VERZEICHNIS beheben, nachdem Sie das Installationsziel des Bausystems der Originalautoren ausgeführt haben.

Bitte überprüfen Sie, ob Ihr Paket irgendwelche Spezialfälle aufweist, in denen Berechtigungen von Dateien oder Verzeichnissen das »Benutzer-Schreibbit« nicht gesetzt haben dürfen. Bekannte Fälle sind *.ali-Dateien sowie /etc/sudoers.d, die dh_fixperms standardmäßig berichtigt.

Das Problem mit ungewöhnlichen Berechtigungen war in der Theorie schon immer vorhanden. Dadurch, dass dh_fixperms seit Kompatibilitätsstufe 14 in der Abfolge später aufgerufen wird, und mit der Änderung, fakeroot standardmäßig zu entfernen (was einige dieser Probleme verdeckte), ist es aber deutlich sichtbarer geworden. Diese Änderung soll diese Problematik eingrenzen.

- Die Debhelper-Konfigurationsdateien unterliegen den folgenden Änderungen:

- Es veranlasst nun in den meisten Fällen eine Warnung, die paketlosen Versionen von Debhelper-Konfigurationsdateien zu verwenden, wenn zwei oder mehr Binärpakete in debian/control aufgeführt sind. Veraltete Dateien sollten (von debian/foo) in debian/Paket.foo umbenannt werden, wobei Paket das erste der in debian/control aufgeführten Binärpakete ist. Die Hauptausnahme bei dieser Änderung sind Dateien wie debian/changelog, debian/NEWS und debian/copyright, wo die gleiche Datei per Voreinstellung für alle Pakete verwendet wird. Diese Fälle bleiben unverändert. Das Werkzeug Debhelper wird bei Verwendung dieser Dateien eine Warnung auslösen.

In Kompatibilitätsstufe 15 (oder neuer) ist das geändert zu einem Fehler.

For most packages, this item can be fixed by running:

```
     apt-get satisfy 'debputy (>= 0.1.73~), debhelper (>= 13.26~)'
     debputy migrate-from-dh --migration-target=dh-package-prefixed-config-files

```

The only known caveat are architecture specific configuration files (such as debian/symbols.amd64 or debian/install.amd64).

- Jetzt wird eine Warnung ausgelöst, wenn eine Paket-Datei ohne den Paket-Präfix für --name verwendet wird, selbst wenn das Quellpaket nur ein Binärpaket erzeugt. Falls Sie beispielsweise einen debian/bar.service mit dem folgenden Schnipsel in debian/rules hatten:

```
 override_dh_installsystemd:
    dh_installsystemd -p foo --name bar

```

Dann müssen Sie debian/bar.service in debian/foo.bar.service umbenennen.

In Kompatibilitätsstufe 15 (oder neuer) ist das geändert zu einem Fehler.

For most packages, this item can be fixed by running:

```
     apt-get satisfy 'debputy (>= 0.1.73~), debhelper (>= 13.26~)'
     debputy migrate-from-dh --migration-target=dh-package-prefixed-config-files

```

The only known caveat are architecture specific configuration files. The debhelper stack does not accept any config files that have architecture restrictions and --name. However, third-party add-ons might.

- Die standardmäßigen Nachschlageregeln für auf Dh_Lib basierende Werkzeuge nehmen jetzt an, dass Konfigurationsdateien nicht mehr benannt werden (--name) noch standardmäßig Architektureinschränkungen unterstützen. Falls Sie mit einem zu Debhelper ähnlichem Werkzeug eines Drittanbieters arbeiten und Unterstützung für eine dieser Funktionalitäten benötigen, dann erstellen Sie bitte bei dem Werkzeug einen Fehlerbericht und bitten, seine Konfigurationsdatei mit den relevanten Optionen in seinem Aufruf pkgfile bekanntzugeben. Beachten Sie, dass debhelper seine Regeln für die Mehrzahl seiner Werkzeuge basierend auf der Nutzungsanalyse über codesearch.debian.org ebenfalls selbst anpasst. Sollten Sie sich auf eine Funktionalität verlassen, wie beispielsweise Architektureinschränkungen für eine gegebene Konfigurationsdatei, die nicht mehr unterstützt wird, so stellen Sie bitte ein Funktionalitätswunsch für diesen Anwendungsfall und sie wird möglicherweise wieder hergestellt.

-

Pakete, die das Bausystem cmake verwenden, sollten die folgenden Änderungen beachten:

- Das Bausystem cmake gibt jetzt -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON an cmake(1) weiter, womit einige Reproduzierbarkeitsprobleme vermieden werden.

- Das Bausystem cmake setzt nun die Umgebungsvariable ASMFLAGS falls sie nicht gesetzt ist und ASFLAGS vorhanden ist. Der erstere Name (ASMFLAGS) ist der Name, den cmake erwartet, während der letztere (ASFLAGS) der Name ist, den dpkg-buildpackage(1) verwendet.

- Das Bausystem cmake verwendet im dh_auto_install(1)-Aufruf jetzt cmake --install anstelle von ninja install. Jede Außerkraftsetzung von dh_auto_install, die Extra-Parameter an das Bausystem der Originalautoren weiterreicht, sollte überprüft werden.

-

Pakete, die das Bausystem meson verwenden, sollten die folgenden Änderungen beachten:

- Das Bausystem meson übergibt nun --auto-features=enabled an meson.

- Das Bausystem meson+ninja verwendet im dh_auto_install(1)-Aufruf jetzt meson install anstelle von ninja install. Jede Außerkraftsetzung von dh_auto_install, die Extra-Parameter an das Bausystem der Originalautoren weiterreicht, sollte überprüft werden.

- The debian/compat file is no longer accepted as a source for specifying the debhelper compat level. Please review "COMPATIBILITY LEVELS" in debhelper(7) for alternatives. Beachten Sie, dass diese Änderung das erste Mal in Kraft gesetzt wird, wenn Kompatibilitätsstufe 14 als stabil deklariert wird. Damit wird vermieden, Pakete zu beschädigen, die schon zu Kompatibilitätsstufe 14 migriert wurden, während diese Änderung noch experimentell war.

- Das Werkzeug dh_installtmpfiles führt nun --remove beim Entfernen und --purge beim vollständigen Löschen von Paketen aus. Für Letzteres ist Systemd v256 erforderlich.

- Das Werkzeug dh_lintian akzeptiert nicht mehr länger architekturabhängige Dateien zur Außerkraftsetzungen für Pakete mit Multi-Arch: same in debian/control, weil diese dann nicht mehr koinstallierbar wären. Fälle, die von diesem Fehler betroffen sind, sollten zu architekturabhängigen Außerkraftsetzungen von lintian(1) wechseln.

- The third-party dh_qmldeps tool (from pkg-kde-tools package) no longer demote detected dependencies. In v13 you get warnings about demotions. You can use the -d dependency field in the debian/PKG.qmlfiles to get the dependencies end up in the correct dependency field.

v13

Dies ist der empfohlene Betriebsmodus. Die Änderungen gegenüber v12 sind:

- Das Bausystem meson+ninja benutzt anstelle von ninja test nun meson test, wenn die Testsuite ausgeführt wird. Alles, was dh_auto_test außer Kraft setzt und zusätzliche Parameter an das Testausführungsprogramm der Ursprungsautoren übergibt, sollte überprüft werden, da meson test auf der Befehlszeile nicht mit ninja test kompatibel ist.

- Alle Debhelper-ähnlichen Werkzeuge, die auf der offiziellen Debhelper-Bibliothek basieren (einschließlich dh und den offiziellen dh_*-Werkzeugen) akzeptieren keine abgekürzten Befehlsparameter mehr. Gleichzeitig sortiert dh nun Aufrufe zu überflüssigen dh_*-Hilfsprogrammen sogar dann aus, wenn lange Befehlszeilenoptionen angegeben werden.

- Die ELF-bezogenen Debhelper-Werkzeuge (dh_dwz, dh_strip, dh_makeshlibs, dh_shlibdeps) werden nun standardmäßig nur noch für architekturabhängige Pakete ausgeführt (d. h. sie werden von *-indep-Zielen ausgeschlossen und standardmäßig mit -a übergeben). Falls Sie sie für *-indep-Ziele benötigen, können Sie eine explizite Build-Depends in dh-sequence-elf-tools hinzufügen.

- Das Drittanbieterbausystem gradle (aus dem Paket gradle-debian-helper) führt nun automatisch eine von den Ursprungsautoren bereitgestellte Testsuite aus. Setzen Sie dh_auto_test außer Kraft, um dieses Verhalten zu unterbinden.

- Das Werkzeug dh_installman beendet sich vorzeitig, falls es widersprüchliche Definitionen einer Handbuchseite entdeckt. Dies kommt üblicherweise vor, wenn das Bausystem der Ursprungsautoren eine komprimierte Version installiert und das Paket eine nicht komprimierte Version der Handbuchseite in debian/package.manpages auflistet. Meist ist die einfachste Lösung, die Handbuchseite aus debian/package.manpages zu entfernen (davon ausgehend, dass beide Versionen identisch sind).

- Die dh_auto_*-Hilfsprogramme setzen nun die Umgebungsvariablen HOME und gebräuchliche XDG_*-Variablen zurück. Wie damit umgegangen wird, können Sie der Beschreibung für die Umgebungsvariablen in "ENVIRONMENT" in debhelper(1) entnehmen. Dieses Funktionalität hat sich zwischen Debhelper 13 und Debhelper 13.2 geändert.

- Der Befehl dh wird nun einen Fehler ausgeben, falls ein Override- oder Hook-Ziel für einen veralteten Befehl in debian/rules (z.B. override_dh_systemd_enable:) vorhanden ist.

- Der Befehl dh_missing wird nun auf --fail-missing voreingestellt. Dies lässt sich zu einer nicht-fatalen Warnung zurückändern, indem explizit --list-missing übergeben wird, wie es in Kompatibilitätsstufe 12 war. Falls Sie die Warnung gar nicht wollen, lassen Sie bitte den Aufruf von dh_missing weg. Falls Sie den Befehlssequenzer dh benutzen, dann können Sie dies mit einem leeren Override-Ziel in der Datei debian/rules oder dem passenden Paket erledigen. Zum Beispiel:

```
    # Disable dh_missing
    override_dh_missing:

```

- Der Befehlssequenzer dh führt nun in der Standardsequenz dh_installtmpfiles aus. dh_installtmpfiles übernimmt die Handhabung von tmpfiles.d-Konfigurationsdateien. Diesbezügliche Funktionalität in dh_installsystemd ist nun deaktiviert. Beachten Sie, dass dh_installtmpfiles auf debian/Paket.tmpfiles reagiert, wo dh_installsystemd einen Nahmen ohne das nachfolgende »s« benutzt hat.

- Viele dh_*-Werkzeuge unterstützen nun eine eingeschränkte Variablenexpandierung per ${foo}-Syntax. In vielen Fällen kann dies benutzt werden, um Pfade zu referenzieren, die entweder Leerzeichen oder dpkg-architecture(1)-Werte enthalten. Obwohl es den Bedarf an dh-exec(1) in einigen Fällen vermindern kann, ist es im Allgemeinen kein Ersatz für dh-exec(1). Falls Sie filtern, umbenennen usw. möchten, wird das Paket weiterhin dh-exec(1) benötigt. Bitte lesen Sie "Ersetzungen in Debhelper-Konfigurationsdateien", um mehr über die Syntax und verfügbare Ersetzungsvariablen zu erfahren. An Verfasser von dh_*-Werkzeugen: Die Ersetzung und Expandierung ist Teil der Funktionen filearray und filedoublearray.

- Der Befehlssequenzer dh wird jetzt alle Hooks und Override-Ziele für dh_auto_test, dh_dwz und dh_strip überspringen, wenn DEB_BUILD_OPTIONS die maßgeblichen nocheck-/nostrip-Optionen aufführt. Alle Pakete, die sich darauf verlassen, dass diese Ziele immer ausgeführt werden, sollten die betroffene Logik aus diesen Zielen heraus verschieben. Z. B. müsste nicht-testbezogener Paketierungscode von override_dh_auto_test nach execute_after_dh_auto_build oder execute_before_dh_auto_install verschoben werden.

- Das Bausystem cmake übergibt nun -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON an cmake(1), um den automatischen Installationsprozess zu beschleunigen. Falls Sie aus irgendeinem Grund beim alten Verhalten bleiben möchten, übersteuern Sie den Schalter:

```
    dh_auto_configure -- -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=OFF ...

```

v12

Änderungen gegenüber v11 sind:

- Das Werkzeug dh_makeshlibs erzeugt nun standardmäßig Shlibs-Dateien mit versionierter Abhängigkeit. Das bedeutet, dass -VUpstream-Version (alias -V) nun die Voreinstellung ist. Falls eine nicht versionierte Abhängigkeit in der Shlibs-Datei gewünscht wird, kann dies stattdessen durch Übergabe von -VNone erreicht werden. Siehe aber auch dh_makeshlibs(1) für die Vorbehalte gegen nicht versionierte Abhängigkeiten.

- Die Option -s (--same-arch) wurde entfernt. Bitte verwenden Sie stattdessen -a (--arch).

- Der Aufruf von dh_clean -k verursacht jetzt einen Fehler statt einer Warnung, es sei missbilligt.

- Die Option --no-restart-on-upgrade in dh_installinit wurde entfernt. Bitte verwenden Sie den neuen Namen --no-stop-on-upgrade.

- Es gab einen Fehler in den doit- und ähnlichen Funktionen von Debian::Debhelper::Dh_Lib, der unter einem bestimmten Umstand zum Öffnen einer Shell führte. Dieser Fehler wurde nun entfernt, wodurch Hilfsprogramme, die auf den Fehler setzen, mit der Meldung »command not found« fehlschlagen.

- --list-missing und --fail-missing in dh_install wurden entfernt. Bitte verwenden Sie dh_missing und die zugehörigen Optionen, die die durch andere Hilfsprogramme installierten Dateien ebenfalls sehen können.

- Das Hilfsprogramm dh_installinit installiert die Konfiguration für das Init-System Upstart nicht mehr. Stattdessen bricht es das Bauen ab, wenn es eine alte Upstart-Konfigurationsdatei findet. Der Fehler soll den Paketbetreuer daran erinnern, sicherzugehen, dass die mit vorherigen Versionen des Pakets mitgelieferten Konfigdateien (falls vorhanden) sauber entfernt werden.

- Das Werkzeug dh_installdeb wird die Grundprüfung einiger dpkg-maintscript-helper(1)-Befehle durchführen und sich mit einer Fehlermeldung beenden, falls die Befehle ungültig zu sein scheinen.

- Das Werkzeug dh_missing wird nun auf --list-missing voreingestellt.

- Das Werkzeug dh_makeshlibs wird jetzt nur Bibliotheken an dpkg-gensymbols(1) übergeben, falls die ELF-Binärdatei einen SONAME hat (enthält ».so«).

- Das Werkzeug dh_compress komprimiert keine Beispiele mehr (d. h. alles, was in </usr/share/doc/Paket/examples> installiert ist).

- Die Standardsequenz in dh enthält nun standardmäßig dh_dwz und dh_installinitramfs. Dies macht die Sequenzen dwz und installinitramfs überflüssig und sie werden mit einem Fehler scheitern. Falls Sie diese Befehle überspringen wollen, fügen Sie bitte ein leeres Override-Ziel in debian/rules ein (z.B. override_dh_dwz:).

- Die Bausysteme Meson und Autoconf setzen die Variable --libexecdir nicht mehr explizit und verlassen sich auf die Voreinstellung des Bausystems – diese sollte /usr/libexec sein (per FHS 3.0, angenommen in der Debian-Richtlinie 4.1.5). Falls ein spezielles Paket der Ursprungsautoren nicht die korrekte Voreinstellung benutzt, kann der Parameter oft manuell per dh_auto_configure(1) übergeben werden, etwa wie im folgenden Beispiel:

```
    override_dh_auto_configure:
        dh_auto_configure -- --libexecdir=/usr/libexec

```

Beachten Sie das -- vor dem Parameter --libexecdir.

- Rückwirkend in debhelper/13.5 entfernt: Das dh_installdeb-Werkzeug sollte eigentlich nicht länger die vom Betreuer bereitgestellte conffiles-Datei installieren, weil das als unnötig erachtet wurde. Das remove-on-upgrade aus Dpkg Version 1.20 machte die Datei jedoch wieder relevant und dh_installdeb installiert sie jetzt wieder in den Kompatiblitätsstufen 12 und höher.

- Das Werkzeug dh_installsystemd beruht nicht mehr auf dh_installinit, um Systemd-Dienste zu handhaben, die über eine SysVinit-Alternative verfügen. In einem solchen Fall müssen jetzt beide Werkzeuge benutzt werden, um sicherzustellen, dass der Dienst sowohl unter SysVinit als auch unter Systemd sauber gestartet wird. Falls Sie eine Methode haben, dh_installinit außer Kraft zu setzen (z. B. indem Sie es mit --no-start aufrufen), dann werden Sie jetzt wahrscheinlich auch eine für dh_installsystemd benötigen.

Diese Änderung lässt dh_installinit ein misc:Pre-Depends für init-system-helpers (>= 1.54~) einspeisen. Bitte stellen Sie sicher, dass das Paket ${misc:Pre-Depends} in seinem Feld Pre-Depends aufführt, bevor Sie ein Upgrade auf Kompatibilitätsstufe 12 durchführen.

- Das Drittherstellerwerkzeug dh_golang (aus dem Paket dh-golang) akzeptiert jetzt standardmäßig die Variable DH_GOLANG_EXCLUDES für die Quelleninstallation in -dev-Paketen und das nicht nur während des Bauprozesses. Bitte setzen Sie DH_GOLANG_EXCLUDES_ALL auf »false«, um zum vorherigen Verhalten zurückzukehren. Einzelheiten und Beispiele finden Sie unter Debian::Debhelper::Buildsystem::golang(3pm).

- dh_installsystemduser ist nun per Voreinstellung in der Standard-dh-Sequenz enthalten.

- Das Bausystem python-distutils ist jetzt entfernt worden. Bitte verwenden Sie stattdessen das Drittanbieterbausystem pybuild.

v11

Von diesem Modus wird abgeraten. Von der Kompatibilitätsstufe 11 wird für neue Pakete abgeraten, da sie von Funktionalitätswechselwirkungen zwischen dh_installinit und dh_installsystemd betroffen ist, die dazu führen, dass in manchen Fällen Dienste nicht korrekt laufen. Bitte erwägen Sie, stattdessen die Kompatibilitätsstufen 10 oder 12 zu benutzen. Weitere Einzelheiten über das Thema sind in Debian#887904 und <https://lists.debian.org/debian-release/2019/04/msg01442.html> verfügbar.

Änderungen gegenüber v10 sind:

- dh_installinit installiert keine service- oder tmpfile-Dateien mehr. Es erstellt auch keine Betreuerskripte dafür. Bitte verwenden Sie das neue Hilfsprogramm dh_installsystemd.

- Die Hilfsprogramme dh_systemd_enable und dh_systemd_start wurden durch das neue Hilfsprogramm dh_installsystemd ersetzt. Aus demselben Grund wurde auch die systemd-Sequenz für dh entfernt. Wenn Sie das Hilfswerkzeug dh_installsystemd deaktivieren möchten, verwenden Sie bitte ein leeres Override-Ziel. Bitte beachten Sie, dass sich das Werkzeug dh_installsystemd in manchen Fällen (z.B. bei der Verwendung des Parameters --name) geringfügig anders verhält.

- dh_installdirs erstellt keine debian/Paket-Verzeichnisse mehr, es sei denn, dies wird ausdrücklich verlangt (oder es muss ein Unterverzeichnis darin erstellt werden). Die große Mehrheit aller Pakete wird von dieser Änderung nicht betroffen sein.

- Das Bausystem makefile übergibt nun INSTALL="install --strip-program=true" an make(1). Davon abgeleitete Bausysteme (z. B. configure oder cmake) sind von dieser Änderung nicht betroffen.

- Das Bausystem autoconf übergibt nun --runstatedir=/run an ./configure.

- Das Bausystem cmake übergibt nun -DCMAKE_INSTALL_RUNSTATEDIR=/run an cmake(1).

- dh_installman wird nun vorzugsweise die Sprache anhand des Pfadnamens statt der Erweiterung bestimmen.

- dh_auto_install wird jetzt nur das Zielverzeichnis erstellen, das es benötigt. Vorher hätte es die Bauverzeichnisse für alle Pakete erstellt. Dies hat keine Auswirkungen auf Pakete, die nur mit Debhelper-Befehlen bauen, es könnte aber Programmfehler in Befehlen offenlegen, die nicht in Debhelper enthalten sind.

- Die Hilfsprogramme dh_installdocs, dh_installexamples, dh_installinfo und dh_installman beenden sich jetzt mit Fehlermeldung, falls ihre Konfiguration ein Muster aufweist, das zu nichts passt oder sich auf einen Pfad bezieht, den es nicht gibt. Bekannte Ausnahmen umfassen das Bauen mit dem Profil nodoc, bei dem die obigen Werkzeuge stillschweigend fehlschlagende Suchen mit Mustern erlauben, welche zur Angabe von Dokumentation verwendet werden.

- Die Hilfsprogramme dh_installdocs, dh_installexamples, dh_installinfo und dh_installman akzeptieren nun den Parameter --sourcedir mit derselben Bedeutung wie dh_install. Überdies fallen sie jetzt, so wie dh_install, auf debian/tmp zurück. Migrationshinweis: Ein Fehler in Debhelper 11 bis 11.1.5 führte fälschlicherweise dazu, dass dh_installinfo --sourcedir ignoriert hat.

- Die Bausysteme perl-makemaker und perl-build übergeben -I. nicht mehr an Perl. Pakete, die dieses Verhalten benötigen, können meistens die Umgebungsvariable PERL5LIB als Ersatz verwenden, z. B. durch Eintragen von export PERL5LIB=. in ihre »debian/rules«-Datei (oder dergleichen).

- PERL_USE_UNSAFE_INC wird jetzt von dh oder den dh_auto_*-Werkzeugen nicht mehr gesetzt. Sie diente als Übergangslösung, um zu verhindern, dass das gleichzeitige Bauen vieler Pakete scheitert. Beachten Sie, dass sie irgendwann komplett überholt wird, da die Ursprungsautoren beabsichtigen, die Unterstützung für die Umgebungsvariable PERL_USE_UNSAFE_INC einzustellen. Wenn es so weit ist, wird diese Variable nachträglich auch aus bestehenden Kompatibilitätsstufen entfernt.

- Das Hilfsprogramm dh_makeshlibs wird nun mit einer Fehlermeldung beendet, falls Objdump nach der Auswertung einer gegebenen Datei einen Rückgabewert ungleich null zurückliefert.

- Die Werkzeuge dh_installdocs und dh_installexamples können jetzt die meiste Dokumentation in einem anderen Pfad installieren, um die Empfehlung der Debian-Richtlinien §12.3 (seit Version 3.9.7) zu erfüllen. Beachten Sie, dass diese Änderung nicht für dieses Quellpaket relevant ist und Sie zur nächsten Änderung springen können, falls ein angegebenes Quellpaket nur ein einziges Binärpaket in debian/control enthält oder keine -doc-Pakete dabei sind.

Standardmäßig werden diese Werkzeuge nun versuchen, ein »Hauptpaket für die Dokumentation« (ab hier Hauptdokumentationspaket genannt) für jedes -doc-Paket zu bestimmen. Falls sie ein derartiges Hauptdokumentationspaket finden, werden sie nun die Dokumentation in den Pfad /usr/share/doc/Hauptdokumentationspaket im angegebenen Dokumentationspaket installieren. Das heißt, der Pfad kann sich ändern, aber die Dokumentation wird immer noch im -doc-Paket mitgeliefert.

The --doc-main-package option (or, since debhelper/13.28, the X-Doc-Main-Package field) can be used when the auto-detection is insufficient or to reset the path to its previous value if there is a reason to diverge from Debian policy recommendation.

Manche Dokumentation wird von dieser Änderung nicht beeinflusst. Diese Ausnahmen umfassen die Copyright-Dateien, README.Debian usw. Diese Dateien werden weiterhin im Pfad /usr/share/doc/Paket installiert.

- Die Werkzeuge dh_strip und dh_shlibdeps verwenden keine Dateinamenmuster mehr, um zu bestimmen, welche Dateien verarbeitet werden. Stattdessen öffnen sie die Datei und suchen nach einem ELF-Header, um zu bestimmen, ob eine übergebene Datei ein gemeinsam benutztes Objekt oder ein ausführbares binäres Programm ist. Diese Änderung kann dazu führen, dass mehr Dateien als vorher verarbeitet werden.

v10

Änderungen gegenüber v9 sind:

- dh_installinit wird keine Datei namens debian/Paket mehr als Init-Skript installieren.

- dh_installdocs wird mit einem Fehler fehlschlagen, falls es Links entdeckt, die mit --link-doc zwischen Paketen der Architektur »all« und nicht-»all« erzeugt wurden, da d binNMUs beschädigt.

- dh_installdeb installiert keine vom Paketbetreuer bereitgestellte debian/Paket.shlibs-Datei mehr. Dies wird stattdessen von dh_makeshlibs erledigt.

- dh_installwm weigert sich, ein beschädigtes Paket zu erstellen, falls keine Handbuchseite gefunden wird (erforderlich, um die Alternative zum X-Window-Manager zu registrieren).

- --parallel ist Debhelpers Voreinstellung für alle Bausysteme, die paralleles Bauen unterstützen. Dies kann entweder durch Verwendung von --no-parallel oder durch Übergabe von --max-parallel mit einem Wert von 1 deaktiviert werden.

- Der Befehl dh wird keinen der veralteten Parameter zur »manuellen Sequenzsteuerung« (--before, --after, etc.) akzeptieren. Bitte verwenden Sie stattdessen Aufhebungsziele (override targets). Nachträglich auf frühere Kompatibilitätsstufen angewandt: dh akzeptiert seit Debhelper/12.4 nichts davon mehr.

- Der Befehl dh wird keine Logdateien mehr benutzen, um zu protokollieren, welche Befehle ausgeführt worden sind. Er wird aber trotzdem nachverfolgen, ob er selbst schon einmal in der Bausequenz gelaufen ist und sie ggf. überspringen. Die wichtigsten Auswirkungen davon sind:

- Hierdurch wird die Fehlersuche bei den Sequenzen install und/oder binary einfacher, da sie nun einfach erneut ausgeführt werden können (ohne, dass ein vollständiger »Aufräum- und Neubau«-Durchgang erforderlich ist).

- Der Pferdefuß hier liegt darin, dass dh_* nun nur noch nachverfolgt, was in einem einzelnen Override-Ziel geschieht. Wenn alle Aufrufe eines angegebenen dh_cmd-Befehls im selben Override-Ziel stattfinden, wird alles wie zuvor funktionieren. Beispiel, bei dem es schiefgehen kann:

```
  override_dh_foo:
    dh_foo -pmein-Paket
  override_dh_bar:
    dh_bar
    dh_foo --remaining

```

In diesem Fall wird der Aufruf von dh_foo --remaining außerdem mein-Paket enthalten, da dh_foo -pmein-Paket in einem separaten Override-Ziel ausgeführt wird. Dieses Problem ist nicht auf --remaining begrenzt, es umfasst außerdem -a, -i, etc.

- Der Befehl dh_installdeb maskiert nun die Zeilen in der Konfigurationsdatei maintscript für die Shell. Dies war der ursprüngliche Gedanke, aber es funktionierte nicht, wie es sollte und die Pakete begannen, sich auf die unvollständige Shell-Maskierung zu verlassen (z.B. das Setzen von Dateinamen in Anführungszeichen).

- Voreinstellung für den Befehl dh_installinit ist nun --restart-after-upgrade. Für Pakete, die das vorhergehende Verhalten erfordern, verwenden Sie bitte --no-restart-after-upgrade.

- Die autoreconf-Sequenz ist nun standardmäßig aktiviert. Bitte übergeben Sie --without autoreconf an dh, falls dies für ein angegebenes Paket nicht erwünscht ist.

- Die systemd-Sequenz ist nun standardmäßig aktiviert. Bitte übergeben Sie --without systemd an dh, falls dies für ein angegebenes Paket nicht erwünscht ist.

- Nachträglich entfernt: dh erstellt das Bauverzeichnis des Pakets nicht mehr, wenn die Ausführung von Debhelper-Befehlen übersprungen wird. Dies hat keine Auswirkungen auf Pakete, die nur mit Debhelper-Befehlen bauen, es könnte aber Fehler in Befehlen offenlegen, die nicht in Debhelper enthalten sind. Diese Kompatibilitätsfunktionalität hatte einen Fehler seit ihrer Aufnahme in Debhelper/9.20130516, der sie im Kompatibilitätsmodus 9 und älter zum Scheitern brachte. Da es in den fünf Jahren ihres Bestehens keine Berichte zu Problemen gab, die von diesem Fehler verursacht wurden, wurde sie nicht überarbeitet, sondern entfernt.

v9

Änderungen gegenüber v8 sind:

- Multiarch-Unterstützung. Insbesondere gibt dh_auto_configure Multiarch-Verzeichnisse an autoconf in --libdir und --libexecdir weiter.

- dh kennt die üblichen Abhängigkeiten zwischen den Zielen in debian/rules. Daher wird »dh binary« alle »build«-, »build-arch«-, »build-indep«-, »install«-Ziele etc. ausführen, die in der Regeldatei stehen. Es ist nicht nötig, explizit ein binäres Ziel mit expliziten Abhängigkeiten zu den anderen Zielen zu definieren.

- dh_strip komprimiert Debug-Symboldateien, um die Größe der installierten »-dbg«-Paketen zu verringern.

- dh_auto_configure enthält keinen Quellpaketnamen in --libexecdir, wenn autoconf benutzt wird.

- Standardmäßig aktiviert dh nicht --with=python-support. (Hinfällig, da das Werkzeug dh_pysupport aus Debian Stretch entfernt wurde. Seit Debhelper/10.3 aktiviert dh diese Sequenzerweiterung unabhängig von der Kompatibilitätsstufe nicht mehr.)

- Alle dh_auto_*-Debhelper-Programme und dh setzen Umgebungsvariablen, die durch dpkg-buildflags aufgelistet werden, sofern sie nicht bereits gesetzt sind.

- dh_auto_configure übergibt CFLAGS, CPPFLAGS und LDFLAGS von dpkg-buildflags an Perls Makefile.PL und Build.PL..

- dh_strip legt getrennte Fehlersuchsymbole an einer Stelle ab, die auf ihrer Baukennzahl basiert.

- Ausführbare Debhelper-Konfigurationsdateien werden ausgeführt und ihre Ausgabe wird als Konfiguration benutzt.

Dieser Modus ist missbilligt.

v8

Änderungen gegenüber v7 sind:

- Befehle werden fehlschlagen anstatt zu warnen, wenn ihnen unbekannte Optionen übergeben werden.

- dh_makeshlibs führt dpkg-gensymbols auf allen gemeinsamen Bibliotheken aus, für die es Shlib-Dateien generiert, wobei Bibliotheken mit -X ausgeschlossen werden können. Außerdem werden dpkg-gensymbols Bibliotheken an unüblichen Orten übergeben, ohne dass es diese vorher verarbeitet haben wird, was dazu führen kann, dass sich einige Pakete nicht bauen lassen.

- dh erfordert, dass die auszuführende Sequenz als erster Parameter angegeben wird und sämtliche Schalter danach kommen. Das heißt, Sie schreiben nicht »dh --foo $@«, sondern »dh $@ --foo«.

- dh_auto_* bevorzugt Perls Module::Build gegenüber Makefile.PL.

Dieser Modus ist missbilligt.

v7

Dieser Modus ist missbilligt. Dies ist die unterste unterstützte Kompatibilitätsstufe.

Falls Sie ein Upgrade von einer vorhergehenden Kompatibilitätsstufe durchführen, überprüfen Sie bitte debhelper-obsolete-compat(7).

## SIEHE AUCH
debhelper-obsolete-compat(7)

Führen Sie ein Upgrade von einer (jetzt) obsoleten Kompatibilitätsstufe aus? Dieses Dokument enthält die Upgrade-Prüflisten bis zur ältesten unterstützten Stufe.

debhelper(7)

Generelle Informationen über das Debhelper-Rahmenwerk. Dieses Dokument beschreibt auch, wie Sie die von Ihnen gewählte Debhelper-Kompatibilitätsstufe deklarieren.

## ÜBERSETZUNG
Diese Übersetzung wurde mit dem Werkzeug po4a <http://po4a.alioth.debian.org/> durch Chris Leick c.leick@vollbio.de und das deutsche Debian-Übersetzer-Team im Dezember 2011 erstellt.

Bitte melden Sie alle Fehler in der Übersetzung an debian-l10n-german@lists.debian.org oder als Fehlerbericht an das Paket debhelper.

Sie können mit dem folgenden Befehl das englische Original anzeigen man -L en Abschnitt Handbuchseite

## AUTOREN
Niels Thykier <niels@thykier.net>

Joey Hess


debhelper-compat-upgrade-checklist.fr

package: debhelper

summary: compat\-upgrade\-checklist –\ Liste de contrôle de mise à niveau des niveaux de compatibilité de debhelper pris en charge

text:
# debhelper-compat-upgrade-checklist.fr(7)

## 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.

The dh_assistant compat-upgrade-checklist command can provide a package specific upgrade checklist from compat 7 and up (requires debhelper/13.25 or later). Its main limitation is accuracy of its heuristics. Please review the documentation of dh_assistant(1) for details.

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 :

- The dh_installmodules and dh_installpam tools will now install their configuration files under /usr/lib/modprobe.d/package and /usr/lib/pam.d/package instead of their respective directory under /etc. Please consider using the "rm_conffile" feature from dh_installdeb(1) to ensure the proper removal of previous modprobe and PAM files.

- 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_installalternatives sera maintenant exécuté après dh_link plutôt qu'après dh_installinitramfs dans la séquence dh par défaut.

- The dh_dwz command has been removed from the default sequence. If it is still desired, add dh-sequence-dwz to Build-Depends-Arch or run it in execute_before_dh_strip-arch with -a to get the closest emulation of the previous behavior. Note: The dh_dwz command will cause a lot of differences in the generated debug symbols. If you use diffoscope as part of your compat upgrade checks, you may want to temporarily use dh_dwz to keep the delta reviewable while upgrading and then remove dh_dwz afterwards.

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

- A new tool called dh_computeautosubstvars has been added and is now run immediately before dh_gencontrol. If you inject commands before dh_gencontrol (either via hook targets or third-party sequence add-on), consider moving them to after dh_installdeb instead as the new tool generally assumes no more changes will occur between it is called and dh_gencontrol is called. Notable exception to this assumption if you have to tweak substvars per <https://lists.debian.org/debian-devel/2024/03/msg00030.html>.

- 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_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.

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

Finally, debhelper also applies this feature the substvars for the following fields due to implementation details:

-

Commands See #638517 <https://bugs.debian.org/638517> for what the field is used for.

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

For most packages, this item can be fixed by running:

```
     apt-get satisfy 'debputy (>= 0.1.73~), debhelper (>= 13.26~)'
     debputy migrate-from-dh --migration-target=dh-package-prefixed-config-files

```

The only known caveat are architecture specific configuration files (such as debian/symbols.amd64 or debian/install.amd64).

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

For most packages, this item can be fixed by running:

```
     apt-get satisfy 'debputy (>= 0.1.73~), debhelper (>= 13.26~)'
     debputy migrate-from-dh --migration-target=dh-package-prefixed-config-files

```

The only known caveat are architecture specific configuration files. The debhelper stack does not accept any config files that have architecture restrictions and --name. However, third-party add-ons might.

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

- The debian/compat file is no longer accepted as a source for specifying the debhelper compat level. Please review "COMPATIBILITY LEVELS" in debhelper(7) for alternatives. 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.

- The third-party dh_qmldeps tool (from pkg-kde-tools package) no longer demote detected dependencies. In v13 you get warnings about demotions. You can use the -d dependency field in the debian/PKG.qmlfiles to get the dependencies end up in the correct dependency field.

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.

The --doc-main-package option (or, since debhelper/13.28, the X-Doc-Main-Package field) can be used when the auto-detection is insufficient or to reset the path to its previous value if there is a reason to diverge from Debian policy recommendation.

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> ».

branch: sisyphus