Scroll to navigation

debhelper(7) Debhelper debhelper(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.

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:

Diese Kompatibilitätsstufe ist immer noch für die Entwicklung offen. Verwenden Sie sie mit Vorsicht.

Änderungen gegenüber v14 sind:

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

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

  • 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_installsystemd:
        dh_installsystemd -p foo --name bar
        

    Then you need to rename debian/bar.service to debian/foo.bar.service.

Diese Kompatibilitätsstufe ist immer noch für die Entwicklung offen. Verwenden Sie sie mit Vorsicht.

Änderungen gegenüber v13 sind:

  • Das dh_installpam-Werkzeug wird die PAM-Konfigurationsdateien nicht mehr unter /etc/pam.d/Paket, sondern unter /usr/lib/pam.d/Paket installieren.

    Bitte prüfen Sie, ob Sie die »rm_conffile«-Funktion von dh_installdeb(1) einsetzen wollen, um die gründliche Entfernung bestehender PAM-Dateien sicherzustellen.

  • Pakete, die den dh-Sequenzer verwenden, sollten folgende Änderungen berücksichtigen:
  • 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 deb.

    Please file any such bugs against the relevant tool. Feel free to include the debhelper maintainers in CC.

  • Das Werkzeug dh_installsysusers ist jetzt in der Standardsequenz enthalten. Es verarbeitet systemd-Sysuser-Dateien.
  • 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.
  • 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.
  • Das Werkzeug dh_installalternatives wird jetzt in der Standard-dh-Sequenz nach dh_link und nicht mehr nach dh_installinitramfs ausgeführt.
  • This item only applies to source packages that have exactly one Package stanza in 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).

  • This item only applies to source packages that have exactly one Package stanza in 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.

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

Note: This change will cause false-positives from an unfixed lintian. Please check <https://bugs.debian.org/1067653> for lintian support for this change.

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

  • The debhelper configuration files are subject to the following changes:
  • 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.

  • It is 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_installsystemd:
        dh_installsystemd -p foo --name bar
        

    Then you need to rename debian/bar.service to debian/foo.bar.service.

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

  • The default look up rules for Dh_Lib based tools now assumes 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.

-
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. Put the compat level in the X-DH-Compat field of the Source stanza of debian/control.

    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.

  • The tool dh_installtmpfiles now runs with --remove on package removal, and --purge on package purge. systemd v256 is required for the latter.
  • 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 architecture specific overrides.
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).
  • The dh_auto_* helpers now reset the environment variables HOME and common XDG_* variable. Please see description of the environment variables in "ENVIRONMENT" in debhelper(1) for how this is handled.

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

    The dh_installdeb tool would no longer install the maintainer provided conffiles file as it was deemed unnecessary. However, the remove-on-upgrade from dpkg/1.20 made the file relevant again and dh_installdeb now installs it again in compat levels 12+.

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

  • The perl-makemaker and perl-build build systems no longer pass -I. to perl. Packages that relies on this behavior can often use the PERL5LIB environment variable as a substitute. E.g. by adding export PERL5LIB=. in their debian/rules file (or similar).
  • 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.

    Die Option --doc-main-package kann benutzt werden, wenn die automatische Erkennung unzureichend ist oder um den Pfad auf seinen vorherigen Wert zurückzusetzen, falls es einen Grund gibt, von der Empfehlung der Debian-Richtlinien abzuweichen.

    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.

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

Änderungen gegenüber v8 sind:
  • Multiarch support. In particular, dh_auto_configure passes multiarch directories to autoconf in --libdir and --libexecdir.
  • 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 does not include the source package name in --libexecdir when using autoconf.
  • 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.

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

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

2024-08-23 13.20