summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2019-11-16 19:39:49 +0300
committerIgor Pashev <pashev.igor@gmail.com>2019-11-16 19:40:38 +0300
commit1db0a96eb28faade39d4cef422e32f794291944e (patch)
tree38dc153d770b6803d45a9894ceca890ad528114a
parent04978ba1e0d855d6161da70e22320bf84d47ff16 (diff)
parentb1a9d1a622291373b7abc4eff2a6b2b2fef62083 (diff)
downloaddebhelper-1db0a96eb28faade39d4cef422e32f794291944e.tar.gz
Merge https://salsa.debian.org/debian/debhelper
-rw-r--r--.gitlab-ci.yml8
-rw-r--r--CONTRIBUTING.md194
-rw-r--r--autoscripts/postinst-init2
-rw-r--r--autoscripts/postinst-init-restart2
-rw-r--r--autoscripts/postinst-systemd-restart2
-rw-r--r--autoscripts/postinst-systemd-restartnostart2
-rw-r--r--autoscripts/postinst-systemd-user-dont-enable15
-rw-r--r--autoscripts/postinst-systemd-user-enable15
-rw-r--r--autoscripts/postrm-init7
-rw-r--r--autoscripts/postrm-systemd-user12
-rw-r--r--autoscripts/prerm-init2
-rw-r--r--autoscripts/prerm-init-norestart2
-rw-r--r--debhelper.pod197
-rw-r--r--debian/changelog563
-rw-r--r--debian/compat2
-rw-r--r--debian/control29
-rw-r--r--debian/debhelper.install1
-rw-r--r--debian/gen-provides2
-rw-r--r--debian/libdebhelper-perl.install2
-rwxr-xr-xdebian/rules7
-rw-r--r--debian/source/lintian-overrides1
-rwxr-xr-xdh583
-rwxr-xr-xdh_auto_build2
-rwxr-xr-xdh_auto_clean2
-rwxr-xr-xdh_auto_configure2
-rwxr-xr-xdh_auto_install4
-rwxr-xr-xdh_auto_test2
-rwxr-xr-xdh_bugfiles2
-rwxr-xr-xdh_clean1
-rwxr-xr-xdh_compress10
-rwxr-xr-xdh_dwz38
-rwxr-xr-xdh_fixperms2
-rwxr-xr-xdh_gconf10
-rwxr-xr-xdh_icons2
-rwxr-xr-xdh_install2
-rwxr-xr-xdh_installcatalogs2
-rwxr-xr-xdh_installchangelogs4
-rwxr-xr-xdh_installcron2
-rwxr-xr-xdh_installdeb144
-rwxr-xr-xdh_installdebconf2
-rwxr-xr-xdh_installdirs2
-rwxr-xr-xdh_installemacsen3
-rwxr-xr-xdh_installexamples2
-rwxr-xr-xdh_installgsettings6
-rwxr-xr-xdh_installifupdown2
-rwxr-xr-xdh_installinfo2
-rwxr-xr-xdh_installinit37
-rwxr-xr-xdh_installinitramfs9
-rwxr-xr-xdh_installlogcheck2
-rwxr-xr-xdh_installlogrotate2
-rwxr-xr-xdh_installman59
-rwxr-xr-xdh_installmenu2
-rwxr-xr-xdh_installmime2
-rwxr-xr-xdh_installmodules4
-rwxr-xr-xdh_installpam2
-rwxr-xr-xdh_installppp2
-rwxr-xr-xdh_installsystemd60
-rwxr-xr-xdh_installsystemduser270
-rwxr-xr-xdh_installudev6
-rwxr-xr-xdh_installwm6
-rwxr-xr-xdh_installxfonts12
-rwxr-xr-xdh_lintian2
-rwxr-xr-xdh_makeshlibs153
-rwxr-xr-xdh_md5sums2
-rwxr-xr-xdh_missing8
-rwxr-xr-xdh_perl22
-rwxr-xr-xdh_shlibdeps17
-rwxr-xr-xdh_strip24
-rwxr-xr-xdh_systemd_start19
-rwxr-xr-xdh_ucf2
-rwxr-xr-xdh_usrlocal2
-rw-r--r--doc/PROGRAMMING43
-rw-r--r--lib/Debian/Debhelper/Buildsystem.pm39
-rw-r--r--lib/Debian/Debhelper/Buildsystem/autoconf.pm8
-rw-r--r--lib/Debian/Debhelper/Buildsystem/cmake.pm20
-rw-r--r--lib/Debian/Debhelper/Buildsystem/makefile.pm6
-rw-r--r--lib/Debian/Debhelper/Buildsystem/meson.pm38
-rw-r--r--lib/Debian/Debhelper/Buildsystem/perl_build.pm22
-rw-r--r--lib/Debian/Debhelper/Buildsystem/perl_makemaker.pm15
-rw-r--r--lib/Debian/Debhelper/Dh_Buildsystems.pm10
-rw-r--r--lib/Debian/Debhelper/Dh_Getopt.pm36
-rw-r--r--lib/Debian/Debhelper/Dh_Lib.pm228
-rw-r--r--lib/Debian/Debhelper/Sequence.pm130
-rw-r--r--lib/Debian/Debhelper/Sequence/elf_tools.pm14
-rw-r--r--lib/Debian/Debhelper/SequencerUtil.pm151
-rw-r--r--man/po4a/po/de.po1740
-rw-r--r--man/po4a/po/debhelper.pot1348
-rw-r--r--man/po4a/po/es.po1705
-rw-r--r--man/po4a/po/fr.po2476
-rw-r--r--man/po4a/po/ja.po1704
-rw-r--r--man/po4a/po/pt.po2301
-rw-r--r--strings-kept-translations.pod2
-rw-r--r--t/Test/DH.pm4
-rwxr-xr-xt/debhelper-compat/syntax.t2
-rwxr-xr-xt/dh-sequencer.t173
-rw-r--r--t/dh_installgsettings/debian/changelog5
-rw-r--r--t/dh_installgsettings/debian/control17
-rwxr-xr-xt/dh_installgsettings/dh_installgsettings.t49
-rw-r--r--t/dh_installinit/debian/bar.other.init4
-rwxr-xr-xt/dh_installinit/dh_installinit.t2
-rwxr-xr-xt/dh_installman/01-basics.t71
-rw-r--r--t/dh_installman/manpage-compressed.pod17
-rw-r--r--t/dh_installman/manpage-uncompressed.pod17
-rwxr-xr-xt/dh_installsystemd/dh_installsystemd.t22
-rw-r--r--t/dh_installsystemduser/debian/baz.user.service8
-rw-r--r--t/dh_installsystemduser/debian/changelog5
-rw-r--r--t/dh_installsystemduser/debian/control10
-rw-r--r--t/dh_installsystemduser/debian/foo.user.service8
-rw-r--r--t/dh_installsystemduser/dh_installsystemduser.t75
-rwxr-xr-xt/dh_missing/02-fail-on-missing.t2
110 files changed, 10819 insertions, 4334 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index cfecfe10..713ae1ab 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -14,6 +14,14 @@ tests-testing:
- apt-get build-dep -y .
- dpkg-buildpackage -us -uc -tc
+tests-unstable-all:
+ stage: test
+ image: debian:unstable
+ script:
+ - apt-get update
+ - apt-get build-dep -y -Ppkg.debhelper.ci .
+ - dpkg-buildpackage -us -uc -tc
+
tests-unstable:
stage: test
image: debian:unstable
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 00000000..688aed76
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,194 @@
+# Contributing to debhelper
+
+Thanks for your interest in improving debhelper.
+
+No matter how you identify yourself or how others perceive you: we
+welcome you. We welcome contributions from you as long as they
+interact constructively with our community. See also [Code of
+Conduct, Social rules and conflict
+resolution](#code-of-conduct-social-rules-and-conflict-resolution).
+
+This document will cover what you need to get started on working with
+debhelper, where to submit patches or contributions and what we expect
+from contributors.
+
+
+## Getting started
+
+<a id="getting-starting"></a>
+
+This section helps you get started with working on debhelper. It
+assumes you are comfortable with `git`.
+
+First clone the debhelper git repository and install build-dependencies:
+
+ git clone https://salsa.debian.org/debian/debhelper.git
+ cd debhelper
+ apt-get build-dep ./
+ # Used for running the test suite
+ apt-get install perl
+
+Running the test suite:
+
+ # Available from the perl package.
+ prove -lr -j`nproc` t
+
+
+Doing a test build / release build of debhelper:
+
+ # Consider doing it in a chroot to verify that the Build-Depends are correct.
+ dpkg-buildpackage -us -uc
+ # installing it for further testing
+ apt-get install ../debhelper_<version>_all.deb
+
+
+Please have a look at `doc/PROGRAMMING`, which have guidelines for
+debhelper code.
+
+
+## Balancing simplicity, ease-of-use, performance, etc.
+
+At times, there are conflicting wishes for debhelper. We cannot
+satisfy all requirements and we sometimes have to say no thanks to a
+particular change because it conflicts with design goal, or if it is
+better suited in a different project, etc.
+
+Here are some guidelines that may be useful:
+
+ * New build systems or helpers that are language/framework specific
+ or have a narrow scope are generally better shipped in a separate
+ package. If the scope becomes more general, the tooling can be
+ merged in to debhelper at a later stage.
+
+ * Examples: Most `dh-*` packages in Debian are examples of this.
+
+ * Changes that affect performance considerably generally must only
+ affect packages that need them and only affect a limited subset of
+ packages and a limited subset of `dh_*`-tools. Particularly, be
+ careful of `Dpkg::*`-modules, which tend to have very high load
+ costs.
+
+ * Helpers / tools should generally *do the right thing* by default
+ (subject to backwards compatibility). If most people neeed some
+ particular option to make the tool work for them, then the default
+ should be changed (again, subject to backwards compatibility).
+
+
+## Handling backwards compatibility for consumers
+
+While changes in debhelper should avoid breaking consumers, some times
+we need to implement a backwards incompatible change (e.g. to improve
+defaults to match the current packaging norms or fix a bug).
+
+ * For non-trivial breakage, we use compat bumps and migrate to the new
+ functionality by default in the new major version of debhelper.
+ (see the `compat` function)
+
+ * For trivial issues or (mostly) unused functionality/bugs, then we
+ can make exceptions. Preferably, have all consumers migrate away
+ from the feature being changed (in Debian `unstable`) before
+ applying it.
+
+Note that we tend to support compat levels for a long time (10+
+years). When changing behaviour via a compat bump, please take an
+extra look to ensure the change is sufficient (this is easier said
+than done). See `doc/SUPPORT-POLICY` for more information.
+
+## Debian support baseline for debhelper
+
+The debhelper project aims to support the Debian `unstable`,
+`testing`, and `stable-backports` suites by default. For this to work,
+we work based on the following guidelines:
+
+ 1) it should be trivial to use/Build-Depend on debhelper in
+ `stable-backports`, and
+ 2) the debhelper in `stable-backports` should behave the same as
+ in `testing` when backporting a package from `testing`.
+
+ * Note that we do not require feature/bug compatibility with
+ debhelper in `stable` (as most packages will still use
+ debhelper from `stable`).
+
+In some cases, we can disable some *minor* functionality in
+`stable-backports` (previous cases being `dbgsym` and `R³`).
+
+Where possible, use versioned `Breaks` against other packages to
+make it easier to support packages in `stable-backports`
+(e.g. debhelper had a `Breaks` against `meson` to ensure packages
+used a recent enough version of `meson` when using the debhelper
+from `stretch-backports`).
+
+## Submitting your contribution
+
+We accept merge requests on [salsa.debian.org] and in general prefer
+these to bug reports with patches. This is because the merge requests
+will run our CI to ensure the tests still pass. When opening a merge
+request, please consider allowing committers to edit the branch as
+this enables us to rebase it for you.
+
+However, we fully respect that not everyone may want to sign up on a
+Debian service (e.g. it might be a steep overhead for a one-time
+contribution). Therefore, we also accepts bug reports against the
+debhelper package in Debian with either patches (`git format-patch`
+format preferred) or links to public git repositories with reference
+to branches. Please see [Submitting a bug
+report](#submitting-a-bug-report) for the guide on how to do that.
+
+Please see [getting started](#getting-started) for how to obtain the
+source code and run the test suite.
+
+[salsa]: https://salsa.debian.org/debian/debhelper
+
+
+## Submitting a bug report
+
+If you want to submit a bug report against debhelper, please see
+[https://www.debian.org/Bugs/Reporting]() for how to report the bug in the
+Debian bug tracker (please file it against the `debhelper` package).
+
+Users of Debian can use `reportbug debhelper` if they have the
+reportbug tool installed.
+
+You can find the list of open bugs against debhelper at:
+[https://bugs.debian.org/src:debhelper]().
+
+
+## Code of Conduct, Social rules and conflict resolution
+
+The debhelper suite is a part of Debian. Accordingly, the Code of
+Conduct, Social rules and conflict resolution from Debian applies to
+debhelper and all of its contributors.
+
+As a guiding principle, we strive to have an open welcoming community
+working on making Debian packaging easier. Hopefully, this will be
+sufficient for most contributors. For more details, please consider
+reading (some) of the documents below.
+
+
+ * [Debian's Code of Conduct](https://www.debian.org/code_of_conduct)
+
+ * If you feel a contributor is violating the code of contact, please
+ contact the [Debian anti-harassment team](https://wiki.debian.org/AntiHarassment)
+ if you are uncomfortable with engaging with them directly.
+
+ * [Debian's Diversity Statement](https://www.debian.org/intro/diversity)
+
+ * Note that `interact constructively with our community` has the
+ implication that contributors extend the same acceptance and
+ welcome to others as they can expect from others based on the
+ diversity statement.
+
+ * The rationale for this implication is based on the
+ [Paradoc of tolerance](https://en.wikipedia.org/wiki/Paradox_of_tolerance).
+
+
+ * [Debian's Social Contract and Free Software Guidelines](https://www.debian.org/social_contract).
+
+ * (very optional read) [Debian's Constitution](https://www.debian.org/devel/constitution).
+
+ * The primary point of importance from this document is the
+ debhelper project is subject the Debian's technical committee and
+ the Debian General Resolution (GR) process. These
+ bodies/processes can make decisions that the debhelper project
+ must follow. Notably, the GR process is used for updating the
+ Debian documents above.
diff --git a/autoscripts/postinst-init b/autoscripts/postinst-init
index 0cf40857..535b40c3 100644
--- a/autoscripts/postinst-init
+++ b/autoscripts/postinst-init
@@ -1,6 +1,6 @@
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
if [ -x "/etc/init.d/#SCRIPT#" ]; then
update-rc.d #SCRIPT# #INITPARMS# >/dev/null
- invoke-rc.d #SCRIPT# start || #ERROR_HANDLER#
+ invoke-rc.d #INVOKE_RCD_PARAMS##SCRIPT# start || #ERROR_HANDLER#
fi
fi
diff --git a/autoscripts/postinst-init-restart b/autoscripts/postinst-init-restart
index 3eadaf67..19dff68a 100644
--- a/autoscripts/postinst-init-restart
+++ b/autoscripts/postinst-init-restart
@@ -6,6 +6,6 @@ if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-decon
else
_dh_action=start
fi
- invoke-rc.d #SCRIPT# $_dh_action || #ERROR_HANDLER#
+ invoke-rc.d #INVOKE_RCD_PARAMS##SCRIPT# $_dh_action || #ERROR_HANDLER#
fi
fi
diff --git a/autoscripts/postinst-systemd-restart b/autoscripts/postinst-systemd-restart
index 048e9685..8155bc05 100644
--- a/autoscripts/postinst-systemd-restart
+++ b/autoscripts/postinst-systemd-restart
@@ -2,7 +2,7 @@ if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-decon
if [ -d /run/systemd/system ]; then
systemctl --system daemon-reload >/dev/null || true
if [ -n "$2" ]; then
- _dh_action=restart
+ _dh_action=#RESTART_ACTION#
else
_dh_action=start
fi
diff --git a/autoscripts/postinst-systemd-restartnostart b/autoscripts/postinst-systemd-restartnostart
index 8ac28fb3..d3f199cf 100644
--- a/autoscripts/postinst-systemd-restartnostart
+++ b/autoscripts/postinst-systemd-restartnostart
@@ -2,7 +2,7 @@ if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-decon
if [ -d /run/systemd/system ]; then
systemctl --system daemon-reload >/dev/null || true
if [ -n "$2" ]; then
- deb-systemd-invoke try-restart #UNITFILES# >/dev/null || true
+ deb-systemd-invoke #RESTART_ACTION# #UNITFILES# >/dev/null || true
fi
fi
fi
diff --git a/autoscripts/postinst-systemd-user-dont-enable b/autoscripts/postinst-systemd-user-dont-enable
new file mode 100644
index 00000000..0837257f
--- /dev/null
+++ b/autoscripts/postinst-systemd-user-dont-enable
@@ -0,0 +1,15 @@
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if deb-systemd-helper --user debian-installed #UNITFILE# ; then
+ # This will only remove masks created by d-s-h on package removal.
+ deb-systemd-helper --user unmask #UNITFILE# >/dev/null || true
+
+ if deb-systemd-helper --quiet --user was-enabled #UNITFILE# ; then
+ # Create new symlinks, if any.
+ deb-systemd-helper --user enable #UNITFILE# >/dev/null || true
+ fi
+ fi
+
+ # Update the statefile to add new symlinks (if any), which need to be cleaned
+ # up on purge. Also remove old symlinks.
+ deb-systemd-helper --user update-state #UNITFILE# >/dev/null || true
+fi
diff --git a/autoscripts/postinst-systemd-user-enable b/autoscripts/postinst-systemd-user-enable
new file mode 100644
index 00000000..b16f61fb
--- /dev/null
+++ b/autoscripts/postinst-systemd-user-enable
@@ -0,0 +1,15 @@
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ # This will only remove masks created by d-s-h on package removal.
+ deb-systemd-helper --user unmask #UNITFILE# >/dev/null || true
+
+ # was-enabled defaults to true, so new installations run enable.
+ if deb-systemd-helper --quiet --user was-enabled #UNITFILE# ; then
+ # Enables the unit on first installation, creates new
+ # symlinks on upgrades if the unit file has changed.
+ deb-systemd-helper --user enable #UNITFILE# >/dev/null || true
+ else
+ # Update the statefile to add new symlinks (if any), which need to be
+ # cleaned up on purge. Also remove old symlinks.
+ deb-systemd-helper --user update-state #UNITFILE# >/dev/null || true
+ fi
+fi
diff --git a/autoscripts/postrm-init b/autoscripts/postrm-init
index 6f5bb09a..1c292982 100644
--- a/autoscripts/postrm-init
+++ b/autoscripts/postrm-init
@@ -1,10 +1,3 @@
if [ "$1" = "purge" ] ; then
update-rc.d #SCRIPT# remove >/dev/null
fi
-
-
-# In case this system is running systemd, we make systemd reload the unit files
-# to pick up changes.
-if [ -d /run/systemd/system ] ; then
- systemctl --system daemon-reload >/dev/null || true
-fi
diff --git a/autoscripts/postrm-systemd-user b/autoscripts/postrm-systemd-user
new file mode 100644
index 00000000..bf48d1a3
--- /dev/null
+++ b/autoscripts/postrm-systemd-user
@@ -0,0 +1,12 @@
+if [ "$1" = "remove" ]; then
+ if [ -x "/usr/bin/deb-systemd-helper" ] ; then
+ deb-systemd-helper --user mask #UNITFILES# >/dev/null || true
+ fi
+fi
+
+if [ "$1" = "purge" ]; then
+ if [ -x "/usr/bin/deb-systemd-helper" ] ; then
+ deb-systemd-helper --user purge #UNITFILES# >/dev/null || true
+ deb-systemd-helper --user unmask #UNITFILES# >/dev/null || true
+ fi
+fi
diff --git a/autoscripts/prerm-init b/autoscripts/prerm-init
index 2a8aa4c6..f8707b9c 100644
--- a/autoscripts/prerm-init
+++ b/autoscripts/prerm-init
@@ -1,3 +1,3 @@
if [ -x "/etc/init.d/#SCRIPT#" ]; then
- invoke-rc.d #SCRIPT# stop || #ERROR_HANDLER#
+ invoke-rc.d #INVOKE_RCD_PARAMS##SCRIPT# stop || #ERROR_HANDLER#
fi
diff --git a/autoscripts/prerm-init-norestart b/autoscripts/prerm-init-norestart
index cacde6e3..97f2174a 100644
--- a/autoscripts/prerm-init-norestart
+++ b/autoscripts/prerm-init-norestart
@@ -1,3 +1,3 @@
if [ -x "/etc/init.d/#SCRIPT#" ] && [ "$1" = remove ]; then
- invoke-rc.d #SCRIPT# stop || #ERROR_HANDLER#
+ invoke-rc.d #INVOKE_RCD_PARAMS##SCRIPT# stop || #ERROR_HANDLER#
fi
diff --git a/debhelper.pod b/debhelper.pod
index acdda660..e850ef5c 100644
--- a/debhelper.pod
+++ b/debhelper.pod
@@ -30,8 +30,8 @@ package contains a tutorial about making your first package using debhelper.
Except where tool explicitly denotes otherwise, all of the debhelper
tools assumes that they run from root directory of an unpacked source
-package. This is so they can locate find F<debian/control> and
-F<debian/compat> when needed.
+package. This is so they can locate find files like F<debian/control>
+when needed.
=head1 DEBHELPER COMMANDS
@@ -254,13 +254,13 @@ B<dh_auto_>I<*> programs.
Force use of the specified I<buildsystem>, instead of trying to auto-select
one which might be applicable for the package.
-=item B<-D>I<directory>, B<--sourcedirectory=>I<directory>
+=item B<-D>I<directory>, B<--sourcedir=>I<directory>, B<--sourcedirectory=>I<directory>
Assume that the original package source tree is at the specified
I<directory> rather than the top level directory of the Debian
source package tree.
-=item B<-B>[I<directory>], B<--builddirectory=>[I<directory>]
+=item B<-B>[I<directory>], B<--builddir>[I<=directory>], B<--builddirectory>[I<=directory>]
Enable out of source building and use the specified I<directory> as the build
directory. If I<directory> parameter is omitted, a default build directory
@@ -301,6 +301,37 @@ level that is known to work, or that you wish to support.
Notably, setting the maximum to 1 is effectively the same as using
B<--no-parallel>.
+=item B<--reload-all-buildenv-variables>
+
+By default, L<dh(1)> will compute several environment (e.g. by using
+L<dpkg-buildflags(1)>) and cache them to avoid having all B<dh_auto_*>
+tool recompute them.
+
+When passing this option, the concrete B<dh_auto_*> tool will ignore
+the cache from L<dh(1)> and retrigger a rebuild of these variables.
+This is useful in the very rare case where the package need to do
+multiple builds but with different B<...FLAGS> options. A concrete
+example would be needing to change the B<-O> parameter in B<CFLAGS> in
+the second build:
+
+ export DEB_CFLAGS_MAINT_APPEND=-O3
+
+ %:
+ dh $@
+
+ override_dh_auto_configure:
+ dh_auto_configure -Bbuild-deb ...
+ DEB_CFLAGS_MAINT_APPEND=-Os dh_auto_configure \
+ --reload-all-buildenv-variables -Bbuild-udeb ...
+
+Without B<--reload-all-buildenv-variables> in the second call to
+L<dh_auto_configure(1)>, the change in B<DEB_CFLAGS_MAINT_APPEND>
+would be ignored as L<dh_auto_configure(1)> would use the cached value
+of B<CFLAGS> set by L<dh(1)>.
+
+This option is only available with B<< debhelper (>= 12.7~) >> when
+the package uses compatibility level 9 or later.
+
=item B<--list>, B<-l>
List all build systems supported by debhelper on this system. The list
@@ -317,17 +348,34 @@ to debhelper, to keep it clean and well-designed as needs change and its
author gains more experience. To prevent such major changes from breaking
existing packages, the concept of debhelper compatibility levels was
introduced. You must tell debhelper which compatibility level it should use, and
-it modifies its behavior in various ways. The compatibility level is
-specified in the F<debian/compat> file and the file must be present.
-
-Tell debhelper what compatibility level to use by writing a number to
-F<debian/compat>. For example, to use v#RECOMMENDED_COMPAT# mode:
-
- % echo #RECOMMENDED_COMPAT# > debian/compat
-
-Your package will also need a versioned build dependency on a version of
-debhelper equal to (or greater than) the compatibility level your package
-uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/control has:
+it modifies its behavior in various ways.
+
+In current debhelper, you can specify the compatibility level in
+F<debian/control> by adding a Build-Depends on the debhelper-compat package.
+For example, to use v#RECOMMENDED_COMPAT# mode, ensure F<debian/control> has:
+
+ Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)
+
+This also serves as an appropriate versioned build dependency on a sufficient
+version of the debhelper package, so you do not need to specify a separate
+versioned build dependency on the debhelper package unless you need a specific
+point release of debhelper (such as for the introduction of a new feature or
+bugfix within a compatibility level).
+
+Note that debhelper does not provide debhelper-compat for experimental or beta
+compatibility levels; packages experimenting with those compatibility levels
+should use F<debian/compat> or B<DH_COMPAT>.
+
+Prior versions of debhelper required specifying the compatibility level in the
+file F<debian/compat>, and current debhelper still supports this for backward
+compatibility, though a package may not specify a compatibility level via
+multiple methods at once. To use this method, F<debian/compat> should contain
+the compatibility level as a single number, and no other content. If you
+specify the compatibility level by this method, your package will also need a
+versioned build dependency on a version of the debhelper package equal to (or
+greater than) the compatibility level your package uses. So, if you specify
+compatibility level #RECOMMENDED_COMPAT# in F<debian/compat>, ensure
+F<debian/control> has:
Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#~)
@@ -524,13 +572,6 @@ breaks binNMUs.
=item -
-B<dh> no longer creates the package build directory when skipping
-running debhelper commands. This will not affect packages that only build
-with debhelper commands, but it may expose bugs in commands not included in
-debhelper.
-
-=item -
-
B<dh_installdeb> no longer installs a maintainer-provided
debian/I<package>.shlibs file. This is now done by B<dh_makeshlibs>
instead.
@@ -552,6 +593,9 @@ The B<dh> command will not accept any of the deprecated "manual
sequence control" parameters (B<--before>, B<--after>, etc.). Please
use override targets instead.
+B<Retroactively applied to earlier compat levels>: B<dh> no longer
+accepts any of these since debhelper/12.4.
+
=item -
The B<dh> command will no longer use log files to track which commands
@@ -616,11 +660,30 @@ The B<systemd> sequence is now enabled by default. Please pass
B<--without systemd> to B<dh> if this is not desirable for a given
package.
+=item -
+
+B<Retroactively removed>: B<dh> no longer creates the package build
+directory when skipping running debhelper commands. This will not
+affect packages that only build with debhelper commands, but it may
+expose bugs in commands not included in debhelper.
+
+This compatibility feature had a bug since its inception in
+debhelper/9.20130516 that made it fail to apply in compat 9 and
+earlier. As there has been no reports of issues caused by this bug in
+those ~5 years, this item have been removed rather than fixed.
+
=back
=item v11
-This is the recommended mode of operation.
+This mode is discouraged.
+
+The compat 11 is discouraged for new packages as it suffers from
+feature interaction between L<dh_installinit> and L<dh_installsystemd>
+causing services to not run correctly in some cases. Please consider
+using compatibility mode 10 or 12 instead. More details about the
+issue are available in Debian#887904 and
+L<https://lists.debian.org/debian-release/2019/04/msg01442.html>.
Changes from v10 are:
@@ -654,8 +717,8 @@ The vast majority of all packages will be unaffected by this change.
=item -
-The B<makefile> buildsystem now passes B<INSTALL=install
---strip-program=true> to L<make(1)>. Derivative buildsystems
+The B<makefile> buildsystem now passes B<INSTALL="install
+--strip-program=true"> to L<make(1)>. Derivative buildsystems
(e.g. B<configure> or B<cmake>) are unaffected by this change.
=item -
@@ -766,7 +829,7 @@ This change may cause the tools to process more files than previously.
=item v12
-This compatibility level is still open for development; use with caution.
+This is the recommended mode of operation.
Changes from v11 are:
@@ -869,6 +932,76 @@ F<conffiles> file. The file has mostly been obsolete since
compatibility level 3, where B<dh_installdeb> began to automatically
compute the resulting F<conffiles> control file.
+=item -
+
+The B<dh_installsystemd> tool no longer relies on B<dh_installinit> for
+handling systemd services that have a sysvinit alternative. Both tools
+must now be used in such a case to ensure the service is properly started
+under both sysvinit and systemd.
+
+If you have an override for B<dh_installinit> (e.g. to call it with
+B<--no-start>) then you will probably need one for
+B<dh_installsystemd> as well now.
+
+This change makes B<dh_installinit> inject a I<misc:Pre-Depends> for
+B<< init-system-helpers (>= 1.54~) >>. Please ensure that the package
+lists B<${misc:Pre-Depends}> in its B<Pre-Depends> field before
+upgrading to compat 12.
+
+=item -
+
+The third-party B<dh_golang> tool (from B<dh-golang> package) now defaults on
+honoring B<DH_GOLANG_EXCLUDES> variable for source installation in -dev
+packages and not only during the building process. Please set
+B<DH_GOLANG_EXCLUDES_ALL> to false to revert to the previous behaviour. See
+B<Debian::Debhelper::Buildsystem::golang(3pm)> for details and examples.
+
+=item -
+
+B<dh_installsystemduser> is now included in the B<dh> standard
+sequence by default.
+
+=item -
+
+The B<python-distutils> buildsystem is now removed. Please use the
+third-party build system B<pybuild> instead.
+
+=back
+
+=item v13
+
+This compatibility level is still open for development; use with caution.
+
+Changes from v12 are:
+
+=over 8
+
+=item -
+
+The B<meson+ninja> build system now uses B<meson test> instead of
+B<ninja test> when running the test suite. Any override of
+B<dh_auto_test> that passes extra parameters to upstream test runner
+should be reviewed as B<meson test> is not command line compatible
+with B<ninja test>.
+
+=item -
+
+All debhelper like tools based on the official debhelper library
+(including B<dh> and the official B<dh_*> tools) no longer accepts
+abbreviated command parameters. At the same time, B<dh> now
+optimizes out calls to redundant B<dh_*> helpers even when passed
+long command line options.
+
+=item -
+
+The ELF related debhelper tools (B<dh_dwz>, B<dh_strip>, B<dh_makeshlibs>,
+B<dh_shlibdeps>) are now only run for arch dependent packages by default
+(i.e. they are excluded from B<*-indep> targets and are passed B<-a>
+by default).
+
+If you need them for B<*-indep> targets, you can add an explicit
+Build-Depends on B<dh-sequence-elf-tools>.
+
=back
=back
@@ -1034,7 +1167,8 @@ Ignored if DH_VERBOSE is also set.
=item B<DH_COMPAT>
Temporarily specifies what compatibility level debhelper should run at,
-overriding any value in F<debian/compat>.
+overriding any value specified via Build-Depends on debhelper-compat or via the
+F<debian/compat> file.
=item B<DH_NO_ACT>
@@ -1076,6 +1210,15 @@ that require a debhelper addon to be run during multiple builds without
having to patch a large number of rules file. If at all possible, this should
be avoided in favor of a --with flag in the rules file.
+=item B<CFLAGS>, B<CPPFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS>, B<LDFLAGS>
+
+By default (in any non-deprecated compat level), debhelper will automatically
+set these flags by using L<dpkg-buildflags(1)>, when they are unset. If you
+need to change the default flags, please use the features from
+L<dpkg-buildflags(1)> to do this (e.g. B<DEB_BUILD_MAINT_OPTIONS=hardening=all>
+or B<DEB_CPPFLAGS_MAINT_APPEND=-DCUSTOM_MACRO=true>) rather than setting the
+concrete variable directly.
+
=back
=head1 SEE ALSO
diff --git a/debian/changelog b/debian/changelog
index 5c4ff508..701611a6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,502 @@
-debhelper (11.4~dyson1) unstable; urgency=medium
+debhelper (12.7.1) unstable; urgency=medium
- * Package for Dyson
+ [ Colin Watson ]
+ * dh_installman: Correctly handle compressed manpages when
+ dh_installman uses man-recode. (Closes: #943376)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 26 Oct 2019 06:42:04 +0000
+
+debhelper (12.7) unstable; urgency=medium
+
+ [ Niels Thykier ]:
+ * dh_installman: Avoid error message when man-db is not installed
+ (only occurs in debhelper's own build as man-db is a mandatory
+ dependency).
+ * dh_installman: Use man-recode(1) when available to massively
+ speed up re-encoding performance for any package with a non-
+ trivial amount of manpages. Thanks to Robert Luberda for
+ reporting the issue and Colin Watson for writing man-recode
+ (Closes: #933576)
+ * debhelper.pod: Actively discourage compat 11 as it has an
+ issue that causes services not to start correctly in all cases
+ (e.g. install, remove-but-not-purge, install again), which
+ cannot be fixed.
+ * dh_auto_*: Support a new --reload-all-buildenv-variables
+ option for resetting the cache (of e.g. dpkg-buildflags).
+ This is needed by e.g. parted which does two builds with
+ different CFLAGS.
+ * dh_makeshlibs: Suggest/Document that --no-add-udeb can be
+ relevant for some udebs where the shared library for the udeb
+ is embedded in a different package (e.g. the main udeb
+ package). Thanks to Nicolas Braud-Santoni for reporting the
+ issue. (Closes: #942454)
+ * meson.pm: Fix invalid call under compat 13. Thanks to
+ Jeremy Bicha for testing it. (Closes: #942690)
+
+ [ Helmut Grohne ]:
+ * cmake buildsystem: Fix CMAKE_SYSTEM_PROCESSOR for 32bit arms.
+ (Closes: #941245)
+
+ [ Niko Tyni ]
+ * Basic support cross building XS modules:
+ + perl_makemaker: run Makefile.PL with host arch Config.pm
+ + perl_build: run Build.PL and Build with host arch Config.pm
+ + dh_perl: scan host arch include directories for Perl plugins
+
+ -- Niels Thykier <niels@thykier.net> Sun, 20 Oct 2019 17:48:06 +0000
+
+debhelper (12.6.1) unstable; urgency=medium
+
+ * Upload to unstable now that libdebhelper-perl has been through
+ the NEW queue.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 15 Sep 2019 10:08:53 +0000
+
+debhelper (12.6) experimental; urgency=medium
- -- Igor Pashev <pashev.igor@gmail.com> Thu, 30 Aug 2018 11:52:45 +0300
+ [ Niels Thykier ]
+ * dh_makeshlibs: Fix regression where versionless SONAMEs could
+ trigger a rejection of the "generated" shlibs file (despite
+ dh_makeshlibs not generating any "shlibs" files).
+ (Closes: #939635)
+ * dh_strip: Avoid impossible copy of .../debug/.dwz/ to itself
+ when a manual debug package contained ELF files and was
+ processed by dh_dwz before dh_strip. (Closes: #939164)
+
+ [ Sven Joachim ]
+ * Split debhelper into debhelper (the tools) and libdebhelper-perl
+ (the Perl libraries). (Closes: #821130)
+ * d/rules: Call dh_missing --fail-missing to catch bugs where files
+ are not installed anywhere.
+
+ -- Niels Thykier <niels@thykier.net> Sat, 14 Sep 2019 06:37:44 +0000
+
+debhelper (12.5.4) unstable; urgency=medium
+
+ * dh_installxfonts: Remove version in dependency on xfonts-utils
+ added to ${misc:Depends}. The version requirement has been
+ satisfied for the past 3-4 releases.
+ * dh_makeshlibs: Correct a control check that was only intended
+ for automatic udeb detection, which incorrectly also checked
+ when --add-udeb was passed. Thanks to Andreas Metzler for
+ reporting the issue. (Closes: #935577)
+ * dh: Fix bug where overrides for dh_dwz, dh_strip, dh_makeshlibs
+ or dh_shlibdeps could be triggered via binary-indep in compat
+ 12 and earlier. Thanks to Andreas Beckmann for reporting the
+ issue. (Closes: #935780)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 01 Sep 2019 07:23:05 +0000
+
+debhelper (12.5.3) unstable; urgency=medium
+
+ * Dh_Getopt.pm: Skip compat call if d/control cannot be found
+ and just assume that auto-abbreviation can be disabled in that
+ case. This avoids breaking options such as --help and --list.
+ (Closes: #935017)
+ * Dh_Lib.pm: Jump to hoops to only parse the Build-Dependency
+ field in dh without breaking dh's own --list or --help
+ parameter. This fixes a regression since 12.5 where dh's
+ --help and --list options were broken.
+ * dh_builddeb: Revert removal of --destdir for now. It is in
+ fact used to hardcode paths in some cases e.g. v4l2loopback's
+ debian/rules.modules.
+ * dh_makeshlibs: Disable auto-filtering of udeb libraries. It
+ cannot be implemented without violating the requirements for
+ the noudeb build-profile.
+ * dh_makeshlibs: Fix invalid error under the noudeb profile
+ where the absence of udeb content is expected rather than an
+ in issue. (Closes: #934999)
+
+ -- Niels Thykier <niels@thykier.net> Mon, 19 Aug 2019 09:50:19 +0000
+
+debhelper (12.5.2) unstable; urgency=medium
+
+ * dh_makeshlibs: Fix regression in compat 10 and earlier where
+ dh_makeshlibs now failed on error. This safety check was
+ intended to be a compat 11 or later feature.
+ * dh: Ensure addon API functions return 1 to avoid gratious
+ breakage of addons due to perl's idiosyncrasy of requiring a
+ truth value at the end of modules. (See #935016)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 18 Aug 2019 07:36:20 +0000
+
+debhelper (12.5.1) unstable; urgency=medium
+
+ * dh_installdeb: Allow "+" to appear in token names as it is
+ a valid character for package names.
+ * dh_installdeb: Reject invalid token names passed to -D or
+ --define (in most cases).
+ * dh_makeshlibs: Fix bug in -X where it would no longer match
+ as expected. A regression since 12.5 - thanks to Aurelien
+ Jarno for reporting the issue over IRC.
+
+ -- Niels Thykier <niels@thykier.net> Sat, 17 Aug 2019 15:09:07 +0000
+
+debhelper (12.5) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_strip: Skip stripping of guile-2.2 files by skipping all
+ all files matching "/guile/.*\.go$". Thanks to Jeremy Bicha
+ and Rob Browning. (Closes: #907061)
+ * dh_auto_*: Officially adopt --sourcedir and --builddir as official
+ parameters. They have always worked since debhelper defaulted to
+ supporting auto-abbreviated parameters, so this is simply documenting
+ fait accompli for the most common abbreviation.
+ * dh_*: Disable auto-abbreviation of command line parameters in compat
+ 13.
+ * dh: Optimize out redundant helpers even when passed long options in
+ compat 13.
+ * dh_builddeb: Remove --destdir. It has never been useful as everyone
+ expects the debs to be placed in "..".
+ * Dh_Lib.pm: Add a hint to resolve the error caused by having the
+ compat level specified both as a build-dependency and in
+ debian/compat. Thanks to Alessandro Grassi for reporting the issue
+ on IRC.
+ * dh_makeshlibs: Fix bug where --no-add-udeb could trigger the
+ auto-detection code. (Closes: #934891)
+ * dh_makeshlibs: When using the auto-detection of udeb, automatically
+ exclude "udeb:" lines for libraries omitted from the udeb. At the
+ same time, verbosely fail if the udeb contains a library not present
+ in the deb (overridable with --add-udeb). (Closes: #934889)
+ * dh: Support making "dh-sequence-ADDON" Build-Depends relation
+ conditional on build-profiles (etc.). If the relation is ignored due
+ to the current build-profiles (etc.), then addon is silently skipped.
+ * dh: Support running addons in "arch-only" or "indep-only" mode by
+ adding "dh-sequence-ADDON" in Build-Depends-Arch or
+ Build-Depends-Indep (respectively). Not all addons support this and
+ will trigger an error at load time. Addon providers should ensure
+ that their package provde "dh-sequence-ADDON" and review the
+ doc/PROGRAMMING document (in the debhelper source) if they are
+ considering to make their addon compatible with these requirements.
+ (Closes: #836699)
+ * dh,elf_tools.pm: Extract the ELF related debhelper tools (dh_strip,
+ dh_dwz, dh_makeshlibs, dh_shlibdeps) into their own addon called
+ "elf-tools" enabled by the default.
+ * debian/control: Provide dh-sequence-elf-tools.
+ * dh: In compat 13, the "elf-tools" addon is considered an implicit
+ "arch-only" addon (i.e. they are only available in "-arch" sequences
+ and are always passed a "-a"). If you need the ELF tools for arch:all
+ packages, please add an explicit Builds-Depends on dh-sequence-elf-tools.
+
+ [ Frank Schaefer ]
+ * dh_installmodules: Also look for compressed kernel modules
+ in addition to uncompressed kernel modules (gz, bz2 or xz).
+
+ [ Adam Borowski ]
+ * d/s/lintian-overrides: Override lintian warning about debhelper
+ not using debhelper.
+
+ -- Niels Thykier <niels@thykier.net> Sat, 17 Aug 2019 10:54:08 +0000
+
+debhelper (12.4) unstable; urgency=medium
+
+ * dh: Retroactively remove support for manual dh sequence
+ operators (--until, --after, --before and --remaining).
+ This breaks about 8 source packages that still rely on this
+ feature and have not yet migrated away. (Closes: #932537)
+ Please see the debhelper bug for relevant bug numbers and
+ package names.
+
+ -- Niels Thykier <niels@thykier.net> Mon, 12 Aug 2019 15:07:01 +0000
+
+debhelper (12.3) unstable; urgency=medium
+
+ [ Translations ]
+ * Update Portuguese translation (Américo Monteiro) (Closes: #927394)
+
+ [ Niels Thykier ]
+ * dh_installsystemduser: Fix bug that would neuter sorting of unit
+ files and make the resulting maintscripts unreproducible. Thanks
+ to Daniel Kahn Gillmor for reporting the bug. (Closes: #932646)
+ * dh_dwz: Remove the -q flag when calling dwz(1). It is
+ sufficiently silently with -q and aids with debugging for others.
+ (Closes: #933561, #931792)
+ * dh_dwz: Gracefully handle when dwz fails to create a multifile
+ but succeeds anyway by default. The previous behaviour of
+ insisting on a multifile can be obtained by explicitly passing
+ --dwz-multifile. (Closes: #933541)
+ * dh_dwz: Skip multifile generation for udeb packages.
+ (Closes: #933212)
+ * dh_makeshlibs: Attempt to automatically detect udeb packages
+ for a given (non-udeb) library package. In simple cases, it
+ can replace the need for an explicit --add-udeb parameter.
+ However, there are many cases where the auto-detection falls
+ short and --add-udeb is still needed (see dh_makeshlibs(1)
+ for details). Packagers are advised to verify the resulting
+ shlibs file before removing --add-udeb in an upload.
+
+ -- Niels Thykier <niels@thykier.net> Tue, 06 Aug 2019 16:55:26 +0000
+
+debhelper (12.2.3) unstable; urgency=medium
+
+ * dh_installinit: Revert "Fail with an error if --name is given but
+ there is no matching init script.". (Closes: #932073,
+ Reopens: #462389)
+ * Dh_Getopt.pm: Produce a better error message when -p<pkg> is
+ ignored in an architecture constrained override (e.g. during an
+ architecture specific build and the -p argument refers to an
+ arch:all package). Thanks to Helmut Grohne for reporting the
+ issue. (Closes: #932262)
+
+ -- Niels Thykier <niels@thykier.net> Fri, 19 Jul 2019 19:18:03 +0000
+
+debhelper (12.2.2) unstable; urgency=medium
+
+ * dh_shlibdeps: Remove regex anchor when parsing file(1) to aovid
+ regressions with setuid/setgid binaries. Thanks to James
+ Cowgill for reporting the issue. (Closes: #932240)
+ * dh_strip: Ditto.
+
+ -- Niels Thykier <niels@thykier.net> Tue, 16 Jul 2019 21:03:38 +0000
+
+debhelper (12.2.1) unstable; urgency=medium
+
+ [ Dmitry Bogatov ]
+ * dh_installinit: Fix regression where dh_installinit bailed
+ out on --name if only one of the acted on packages had an
+ init script file. Thanks to Helmut Grohne for reporting
+ the issue. (Closes: #932073)
+
+ -- Niels Thykier <niels@thykier.net> Tue, 16 Jul 2019 20:21:32 +0000
+
+debhelper (12.2) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * Dh_Lib: Ensure the error function always triggers the same
+ exit code on termination. Previously, it depended on the
+ value of the last error (if any).
+ * Buildsystem/make: Fix regression where cross-flags were
+ passed in a non-cross build. (Closes: #925175)
+ * dh_perl: Fix code to prune (skip) /usr/share/doc which
+ never worked.
+ * doc/PROGRAMMING: Document that the environment variable
+ DH_AUTOSCRIPTDIR can be used for testing purposes to
+ shadow existing or test new autoscript snippets. Thanks
+ to Dmitry Bogatov for the suggestion. (Closes: #925281)
+ * dh_compress: Exclude .haddock and .hs files (as this is
+ customary for haskell packages).
+ * dh_installinfo: Update NOOP PROMISE to account for
+ dh_missing's needs. Thanks to Daniel Kahn Gillmor for
+ reporting the issue. (Closes: #930689)
+ * debhelper.pod: Document that debhelper will use
+ dpkg-buildflags for setting CFLAGS et al and that it is
+ recommended to rely on dpkg-buildflags's features for
+ extending the default. (Closes: #923626)
+ * dh_strip: Make dh_strip more robust with issues from
+ file(1). Thanks to Christoph Biedl for reporting the
+ issue. (Closes: #931995)
+ * dh_shlibdeps: Pass --brief to file(1) and anchor the
+ output parsing regex to avoid false-positive
+ misdetections. Thanks to Christoph Biedl for the
+ suggestion. (Closes: #931996)
+ * dh_strip: Ditto.
+ * dh_installman: Improve documentation to be more clear
+ about exactly which new features dh_installman got in
+ compat 11. Thanks to Laurent Bigonville for pointing
+ out the issue. (Closes: #912999)
+ * dh_strip: Pass --no-sandbox to file(1) when run under
+ fakeroot and file(1) appear to support the option.
+ Thanks to Christoph Biedl for requesting the feature.
+ (Closes: #932006)
+ * Dh_Lib.pm: Support substituting additional variables
+ into the generated maintainer scripts. These include
+ DEB_(BUILD|HOST|TARGET)_* and ENV.* which point to the
+ variables from dpkg-architecture(1) and variables from
+ the environment (respectively).
+ * dh_installdeb: Support additional substitution variables
+ on the commandline via -DTOKEN=VALUE to replace #TOKEN#
+ with VALUE. (Closes: #25235)
+ * d/control: Bump Standards-Version to 4.4.0 - no changes
+ required.
+
+ [ Helmut Grohne ]
+ * Buildsystem/cmake: Fix CMAKE_SYSTEM_PROCESSOR for mips64el.
+ (Closes: #926815)
+
+ [ Dmitry Bogatov ]
+ * dh_installinit: Fail with an error if --name is given but
+ there is no matching init script. Thanks to A Mennucc
+ for reporting the issue. (Closes: #462389)
+
+ [ Translations ]
+ * Update Portuguese translation (Américo Monteiro) (Closes: #886279)
+
+
+ -- Niels Thykier <niels@thykier.net> Sun, 14 Jul 2019 10:29:20 +0000
+
+debhelper (12.1.1) unstable; urgency=medium
+
+ * dh_installinitramfs: Install hooks as executable rather than
+ plan files. Thanks to Thorsten Glaser for the report.
+ (Closes: #922990)
+ * dh_compress: Fix bug where examples where compressed when a
+ doc package shipped examples for another package. Thanks to
+ Christian Kastner for reporting this. (Closes: #922795)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 23 Feb 2019 13:24:47 +0000
+
+debhelper (12.1) unstable; urgency=medium
+
+ [ Xavier Guimard ]
+ * dh_fixperms: add .node in mode_0644_patterns.
+
+ [ Sylvestre Ledru ]
+ * dh_strip: Print a warning when an ELF binary does not have a
+ build-id (or when dh_strip cannot find it).
+
+ [ Niels Thykier ]
+ * Dh_Lib.pm: Strip leading and trailing whitespace from lines in
+ regular debhelper config files. Whitespace-only lines from
+ executable config files are now explicitly detected and triggers
+ a human readable error message early rather than warnings/errors
+ about uninitialized variables. Thanks to Ben Finney for the
+ suggestion and the initial patch. (Closes: #919853)
+ * meson.pm: Dump "meson-logs/testlog.txt" if testing fails with
+ an error. Thanks to Jeremy Bicha for the suggestion.
+ (Closes: #918066)
+ * dh_missing: Clarify the documentation about when -X with other
+ helpers can may dh_missing ignore paths that are not installed.
+ Thanks to Hilko Bengen for reporting the original documentation
+ was unsufficient. (Closes: #917362)
+ * d/control: Bump Standards-Version to 4.3.0 - no changes required.
+
+ [ Baptiste Jammet ]
+ * fr.po: Update French translation. (Closes: #921254)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 10 Feb 2019 20:33:53 +0000
+
+debhelper (12) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * Release debhelper/12 marking compat 12 as stable.
+ * dh: Special NOOP PROMISE of cli-options() to always allow skipping
+ the helper (as we know no option can make it change behaviour).
+
+ [ Dmitry Shachnev ]
+ * dh_compress: Do not compress mkdocs search indices
+ (search_index.json).
+
+ -- Niels Thykier <niels@thykier.net> Mon, 24 Dec 2018 13:47:55 +0000
+
+debhelper (11.5.4) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * Dh_Lib.pm: Reopen stdin to read from /dev/null in doit (and its sibling
+ functions) to prevent issues when stdin is open in write-only mode
+ (which is what nohup(1) does). Thanks to Julian Gilbey for reporting
+ the issue and providing a sample patch for it as well.
+ (Closes: #913663)
+ * fr.po: Add missing dash in "--parallel" in a translation. Thanks to
+ Christian Marillat for reporting the issue. (Closes: #915255)
+ * debhelper.7: Document that the "python-distutils" build system is
+ removed in compat 12. Thanks to Axel Beckert for reporting the
+ omission. (Closes: #915530)
+
+ [ Luca Boccassi ]
+ * makefile.pm: revert passing V=0/1 to makefiles. Fixes FTBFS in apcupsd
+ (and possibly more).
+ (Closes: #914419)
-debhelper (11.4) UNRELEASED; urgency=medium
+ -- Niels Thykier <niels@thykier.net> Sat, 15 Dec 2018 19:18:47 +0000
+
+debhelper (11.5.3) unstable; urgency=medium
+
+ [ Helmut Grohne ]
+ * cmake.pm: Pass the usual CMAKE_SYSTEM_PROCESSOR for ppc64el
+ when cross compiling. (Closes: #913425)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 10 Nov 2018 21:42:12 +0000
+
+debhelper (11.5.2) unstable; urgency=medium
+
+ [ Luca Boccassi ]
+ * makefile.pm: Pass V=0 or V=1 to the make file depending on
+ whether "terse" is set in DEB_BUILD_OPTIONS.
+
+ [ Niels Thykier ]
+ * dh_gconf: Mark dh_gconf as deprecated (see #908845).
+ * Dh_Lib.pm: Separate lowest non-deprecated compat level and
+ the lowest compat level we generate "debhelper-compat (= X)"
+ relations for.
+ * Dh_Lib.pm: Open compat level 13 as an experimental compat
+ level.
+ * meson.pm: In compat 13, run tests with "meson test" rather
+ than "ninja test". Thanks to Simon McVittie for the
+ suggestion. (Closes: #912560)
+ * dh: Correctly include dh_installsystemduser in the sequence
+ in compat 12. It was excluded due to an inverted boolean
+ meaning it was added in compat up to (and incl.) compat 11.
+ Thanks to Michael Biebl for reporting the issue.
+ (Closes: #913329)
+ * fr.po: Correct translations for dh_installman.1 which
+ incorrectly implied that dh_installman was deprecated.
+ Thanks to Laurent Bigonville for reporting the issue.
+ (Closes: #912978)
+
+ [ Helmut Grohne ]
+ * cmake.pm: Pass QMAKE_EXECUTABLE when cross-building.
+ (Closes: #913415)
+
+
+ -- Niels Thykier <niels@thykier.net> Sat, 10 Nov 2018 19:51:25 +0000
+
+debhelper (11.5.1) unstable; urgency=medium
+
+ * dh_systemd_start: Fix bug introduced in debhelper/11.5 where
+ dh_systemd_start would fail to substitute a token in the
+ generated maintscript for maintainer scripts when using
+ "--restart-after-upgrade" (including when the option is
+ on by default). Thanks to Colin Watson for reporting the
+ bug. (Closes: #912420)
+
+ -- Niels Thykier <niels@thykier.net> Wed, 31 Oct 2018 21:02:00 +0000
+
+debhelper (11.5) unstable; urgency=medium
+
+ [ Daniele Nicolodi ]
+ * dh_installsystemduser: New helper responsible for istalling package
+ maintainer supplied systemd user instance units and to produce
+ postinst and postrm maintiner scripts code blocks to appropriately
+ enable, mask and disable units when the package is installed,
+ upgraded, or removed. (Closes: #764678)
+
+ [ Niels Thykier ]
+ * dh_installsystemd.1: Improve the documentation for --name to make
+ it more clear that it also changes the name of the source files in
+ the debian directory. Thanks to Emel Hasdal for reporting the
+ issue and reviewing the change. (Closes: #899983)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 28 Oct 2018 16:07:01 +0000
+
+debhelper (11.4.1) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * debhelper.pod: Quote the value of INSTALL in description of
+ compat level 11. Thanks to Josh Triplett for the suggestion
+ (Closes: #908906)
+ * d/changelog: Fix typos in old entries.
+ * dh_strip: Remove empty /usr/lib/debug directories left over
+ by dh_dwz. Thanks to Ferenc Wágner for reporting the issue.
+ (Closes: #909303)
+ * dh: Disable optimization to skip tools based on command-line
+ parameters when dh is passed long options. Since debhelper
+ had implicit support for auto-abbrevation of long options
+ and people have started to rely on it, the optimization in
+ debhelper/11.4 caused regressions. The optimization is
+ still enabled for short options. (Closes: #909704)
+
+ [ Josh Triplett ]
+ * debhelper.pod: Document how to declare the debhelper compat
+ level via the "debhelper-compat (= X)"-method.
+ (Closes: #908909)
+ * debhelper.pod: Document that we do not provide debhelper-compat
+ for experimental/beta versions of compat levels.
+ (Closes: #908907)
+ * doc/PROGRAMMING: Fix typos.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 30 Sep 2018 15:49:38 +0000
+
+debhelper (11.4) unstable; urgency=medium
[ Niels Thykier ]
* dh_dwz.1: Remove now obsolete note in manpage claming that dh_dwz
@@ -34,12 +526,69 @@ debhelper (11.4) UNRELEASED; urgency=medium
issue.
* dh_installdeb: In compat 12, ignore the maintainer provided conffiles.
It has not been useful since compat 3.
+ * Dh_Lib.pm: isnative() now also resets $dh{VERSION} as a side-effect when
+ using the cache to answer the request. This is mostly useful because
+ it enables the following optimization.
+ * Dh_Lib.pm: Have isnative() special-case debian/changelog to avoid
+ reparsing that file over and over in the same helper.
+ * dh_gconf: Explicitly declare the --priority parameter with the intention
+ to remove it from the default debhelper options.
+ * dh_installemacsen: Ditto.
+ * dh_installgsettings: Ditto.
+ * dh_installudev: Ditto.
+ * dh_installwm: Ditto.
+ * Dh_Getopt.pm: Remove --priority from the list of options supported by all
+ debhelper tools. The only external consumer was dh_installtex from
+ tex-common, which was fixed in 6.10.
+ * dh_installinit: In compat 12, pass --skip-systemd-native to update-rc.d
+ to make it ignore systemd services.
+ * dh_installsystemd: In compat 12, avoid relying on dh_installinit's
+ shell snippets for starting services. (Closes: #887904, #887900)
+ * dh_installinit: Drop unnecessary "systemctl daemon-reload" in
+ auto-generated postrm script. The systemd package has a trigger for
+ handling sysvinit scripts and dh_installsystemd handles the requirement
+ for native systemd unit files.
+ * dh_clean: Explicitly declare the -k/--keep parameter with the intention
+ to remove it from the default debhelper options.
+ * dh_installchangelogs: Ditto.
+ * dh_strip: Ditto.
+ * Dh_Getopt.pm: Remove -k/--keep from the list of options supported by all
+ debhelper tools. The only external consumer was dh_gtkmodules which is now
+ deprecated and a "noop" command. No consumers of dh_gtkmodules appear to
+ pass -k/--keep to dh_gtkmodules any longer.
+ * dh: Rewrite command line optimization logic to enable support for a new
+ NOOP PROMISE for command line options. This will make dh able to skip
+ helpers in some cases even when passed options. (Closes: #866581)
+ * dh_*: Add a NOOP PROMISE for command options where applicable.
+ * dh: Remove old compatibility code from compat 10 that never worked.
+ * Dh_Getopt.pm: Fix a bug that would make "-S" be interpreted as "-s" when
+ "-S" was not given an argument.
+ * debian/control: Bump Standards-Versions to 4.2.1 - no changes required.
+ * debhelper.pod: Declare compat 12 in beta testing.
[ Juhani Numminen ]
* dh_installsystemd.1: Fix typo in manpage.
* dh_installinit.1: Ditto.
- -- Niels Thykier <niels@thykier.net> Wed, 01 Aug 2018 10:27:22 +0000
+ [ Fabian Wolff ]
+ * dh_installdocs.1: Fix typo.
+ * dh_link.1: Ditto.
+
+ [ Nicholas Guriev ]
+ * cmake.pm, autoconf.pm: honor QUIET setting (closes: #907738).
+ * Dh_Lib.pm: use terse build option to set QUIET setting (closes: #907595).
+
+ [ Clément Hermann ]
+ * debhelper.pod: Document dh_golang's DH_GOLANG_EXCLUDES behaviour change
+ for compat 12 (closes: #908656)
+
+ -- Niels Thykier <niels@thykier.net> Fri, 14 Sep 2018 20:56:55 +0000
+
+debhelper (11.4~dyson1) unstable; urgency=medium
+
+ * Package for Dyson
+
+ -- Igor Pashev <pashev.igor@gmail.com> Thu, 30 Aug 2018 11:52:45 +0300
debhelper (11.3.5) unstable; urgency=medium
@@ -158,7 +707,7 @@ debhelper (11.3) unstable; urgency=medium
Robie Basak for spotting the contradicting documentation.
(Closes: #898161)
* dh_compress: Avoid adding a duplicate ".gz" extension on
- a symlink if it already has it. This can happen e.g. with
+ a symlink if it already has it. This can happen e.g. with
dh_installman recompresses a manpage that was compressed and
had a valid symlink to it. Thanks to Andreas Hasenack for
reporting the bug. (Closes: LP: #1765851)
@@ -1303,7 +1852,7 @@ debhelper (10.5) unstable; urgency=medium
* Dh_Lib.pm: Emulate "install -d" with File::Path to avoid a fork+exec
for creating directories. For simplicity, the verbose output still
claim debhelper uses "install -d" for this.
- * dh_auto_install: In compat 11, do noot create package build
+ * dh_auto_install: In compat 11, do not create package build
directories (except if one of them happens to be the default
"destdir" for dh_auto_install).
diff --git a/debian/compat b/debian/compat
index 48082f72..b1bd38b6 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-12
+13
diff --git a/debian/control b/debian/control
index e1fa38b4..e2574f68 100644
--- a/debian/control
+++ b/debian/control
@@ -6,8 +6,10 @@ Uploaders: Niels Thykier <niels@thykier.net>,
Build-Depends: dpkg-dev (>= 1.18.0~),
perl:any,
po4a,
+ man-db <pkg.debhelper.ci>,
+ libtest-pod-perl <pkg.debhelper.ci>,
Rules-Requires-Root: no
-Standards-Version: 4.1.4
+Standards-Version: 4.4.0
Testsuite: autopkgtest-pkg-perl
Vcs-Git: https://salsa.debian.org/debian/debhelper.git
Vcs-Browser: https://salsa.debian.org/debian/debhelper
@@ -31,6 +33,7 @@ Depends: autotools-dev,
file (>= 3.23),
libdpkg-perl (>= 1.17.14),
man-db,
+ libdebhelper-perl (= ${source:Version}),
po-debconf,
${misc:Depends},
${perl:Depends}
@@ -49,6 +52,7 @@ Replaces: dh-systemd (<< 1.38)
Suggests: dh-make
Provides: ${dh:CompatLevels},
dh-sequence-dwz,
+ dh-sequence-elf-tools,
dh-sequence-installinitramfs,
dh-sequence-systemd,
Multi-Arch: foreign
@@ -59,3 +63,26 @@ Description: helper programs for debian/rules
files, fix file permissions, integrate your package with the Debian
menu system, debconf, doc-base, etc. Most Debian packages use debhelper
as part of their build process.
+
+Package: libdebhelper-perl
+Section: perl
+Architecture: all
+Depends: ${misc:Depends},
+ ${perl:Depends}
+Replaces: debhelper (<< 12.6~)
+Breaks: debhelper (<< 12.6~)
+Multi-Arch: foreign
+Description: debhelper perl modules
+ A collection of programs that can be used in a debian/rules file to
+ automate common tasks related to building Debian packages.
+ .
+ This package provides the perl modules used by the scripts in debhelper.
+
+Package: dh-systemd
+Section: oldlibs
+Architecture: all
+Multi-Arch: foreign
+Depends: debhelper (>= 9.20160709),
+ ${misc:Depends},
+Description: debhelper add-on to handle systemd unit files - transitional package
+ This package is for transitional purposes and can be removed safely.
diff --git a/debian/debhelper.install b/debian/debhelper.install
new file mode 100644
index 00000000..e7724817
--- /dev/null
+++ b/debian/debhelper.install
@@ -0,0 +1 @@
+usr/bin
diff --git a/debian/gen-provides b/debian/gen-provides
index 5efd5a98..f9a14bc2 100644
--- a/debian/gen-provides
+++ b/debian/gen-provides
@@ -9,7 +9,7 @@ my @provides;
my $version = $Debian::Debhelper::Dh_Version::version;
$version =~ s/~.*//; # Drop backports marker
$version =~ s/^\d+\K\..*//;
-for (my $i = Debian::Debhelper::Dh_Lib::LOWEST_NON_DEPRECATED_COMPAT_LEVEL ; $i <= $version ; $i++) {
+for (my $i = Debian::Debhelper::Dh_Lib::LOWEST_VIRTUAL_DEBHELPER_COMPAT_LEVEL ; $i <= $version ; $i++) {
push(@provides, "debhelper-compat (= $i)");
}
print "dh:CompatLevels=" . join(", ", @provides) . "\n";
diff --git a/debian/libdebhelper-perl.install b/debian/libdebhelper-perl.install
new file mode 100644
index 00000000..0df575c9
--- /dev/null
+++ b/debian/libdebhelper-perl.install
@@ -0,0 +1,2 @@
+usr/share/debhelper
+usr/share/perl5
diff --git a/debian/rules b/debian/rules
index 756fe9c0..2afb9275 100755
--- a/debian/rules
+++ b/debian/rules
@@ -18,7 +18,10 @@ PERL ?= perl
# builds without needing autotools-dev, dh-strip-nondetermism etc.)
override_dh_update_autotools_config override_dh_strip_nondeterminism:
-override_dh_auto_install:
- ./run dh_auto_install --destdir=debian/debhelper
+override_dh_install:
+ ./run dh_install
PERLLIBDIR=$$($(PERL) -MConfig -e 'print $$Config{vendorlib}')/Debian/Debhelper ; \
$(PERL) -I"debian/debhelper/$${PERLLIBDIR}" debian/gen-provides > debian/debhelper.substvars
+
+override_dh_missing:
+ ./run dh_missing --fail-missing
diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides
new file mode 100644
index 00000000..e1b2927b
--- /dev/null
+++ b/debian/source/lintian-overrides
@@ -0,0 +1 @@
+debhelper source: package-does-not-use-debhelper-or-cdbs
diff --git a/dh b/dh
index dd23ba98..f63da803 100755
--- a/dh
+++ b/dh
@@ -8,7 +8,11 @@ dh - debhelper command sequencer
use strict;
use warnings;
+use constant {
+ 'UNSKIPPABLE_CLI_OPTIONS_BUILD_SYSTEM' => q(-S|--buildsystem|-D|--sourcedir(?:ectory)?|-B|--builddir(?:ectory)?),
+};
use Debian::Debhelper::Dh_Lib;
+use Debian::Debhelper::Sequence;
use Debian::Debhelper::SequencerUtil;
our $VERSION = DH_BUILTIN_VERSION;
@@ -58,12 +62,25 @@ the sequence addon interface.
A B<Build-Depends> relation on the package B<dh-sequence->I<addon>
implies a B<--with> I<addon>. This avoids the need for an explicit
B<--with> in F<debian/rules> that only duplicates what is already
-declared via the build dependencies in F<debian/control>. Note that
-only relations in the B<Build-Depends> field are considered
-(i.e. B<Build-Depends-Indep> and B<Build-Depends-Arch> are
-deliberately unsupported). Please keep in mind that B<dh> insists on
-"simple" relations (e.g. a relation like "B<dh-sequence->I<addon> |
-B<some-other-pkg>" will I<not> imply B<--with> I<addon>).
+declared via the build dependencies in F<debian/control>. The
+relation can (since 12.5) be made optional via e.g.
+build-profiles. This enables you to easily disable an addon that
+is only useful with certain profiles (e.g. to facilitate
+bootstraping).
+
+Since debhelper 12.5, addons can also be activated in B<indep>-only
+mode (via B<Build-Depends-Indep>) or B<arch>-only mode (via
+B<Build-Depends-Arch>). Such addons are only active in the particular
+sequence (e.g. B<binary-indep>) which simplifies dependency
+management for cross-builds.
+
+Please note that addons activated via B<Build-Depends-Indep> or
+B<Build-Depends-Arch> are subject to additional limitations to
+ensure the result is deterministic even when the addon is
+unavailable (e.g. during clean). This implies that some addons
+are incompatible with these restrictions and can only be used via
+B<Build-Depends> (or manually via F<debian/rules>). Currently,
+such addons can only add commands to sequences.
=item B<--without> I<addon>
@@ -112,10 +129,10 @@ easy way to do with is by adding an override target for that command.
#!/usr/bin/make -f
%:
dh $@
-
+
override_dh_strip:
dh_strip -Xfoo
-
+
override_dh_auto_configure:
dh_auto_configure -- --with-foo --disable-bar
@@ -196,7 +213,7 @@ want it to run, by defining empty override targets for each command.
#!/usr/bin/make -f
%:
dh $@
-
+
# Commands not to run:
override_dh_auto_test override_dh_compress override_dh_fixperms:
@@ -207,7 +224,7 @@ These will be skipped when running build-arch and binary-arch sequences.
#!/usr/bin/make -f
%:
dh $@
-
+
override_dh_auto_build-indep:
$(MAKE) -C docs
@@ -249,9 +266,7 @@ been run, for which packages, and skip running those commands again.
Each time B<dh> is run (in compat 9 or earlier), it examines the log,
and finds the last logged command that is in the specified
-sequence. It then continues with the next command in the sequence. The
-B<--until>, B<--before>, B<--after>, and B<--remaining> options can
-override this behavior (though they were removed in compat 10).
+sequence. It then continues with the next command in the sequence.
A sequence can also run dependent targets in debian/rules. For
example, the "binary" sequence runs the "install" target.
@@ -267,45 +282,15 @@ architecture independent packages, and commands in the B<build-arch>,
B<install-arch> and B<binary-arch> sequences are passed the B<-a>
option to ensure they only work on architecture dependent packages.
-=head1 DEPRECATED OPTIONS
-
-The following options are deprecated. It's much
-better to use override targets instead. They are B<not> available
-in compat 10.
-
-=over 4
-
-=item B<--until> I<cmd>
-
-Run commands in the sequence until and including I<cmd>, then stop.
-
-=item B<--before> I<cmd>
-
-Run commands in the sequence before I<cmd>, then stop.
-
-=item B<--after> I<cmd>
-
-Run commands in the sequence that come after I<cmd>.
-
-=item B<--remaining>
-
-Run all commands in the sequence that have yet to be run.
-
-=back
-
-In the above options, I<cmd> can be a full name of a debhelper command, or
-a substring. It'll first search for a command in the sequence exactly
-matching the name, to avoid any ambiguity. If there are multiple substring
-matches, the last one in the sequence will be used.
-
=cut
# Stash this away before init modifies it.
my @ARGV_orig=@ARGV;
my (@addons, @addon_requests);
+our ($DH_INTERNAL_ADDON_TYPE, $DH_INTERNAL_ADDON_NAME);
inhibit_log();
-
+
init(options => {
"until=s" => \$dh{UNTIL},
"after=s" => \$dh{AFTER},
@@ -322,14 +307,15 @@ init(options => {
"l" => \&list_addons,
"list" => \&list_addons,
},
- # Disable complaints about unknown options; they are passed on to
+ # Disable complaints about unknown options; they are passed on to
# the debhelper commands.
ignore_unknown_options => 1,
# Bundling does not work well since there are unknown options.
bundling => 0,
+ internal_parse_dh_sequence_info => 1,
);
set_buildflags();
-warn_deprecated();
+reject_obsolete_params();
# If make is using a jobserver, but it is not available
# to this process, clean out MAKEFLAGS. This avoids
@@ -401,6 +387,7 @@ my @i = (qw{
dh_installinit
},
(!compat(10) ? qw(dh_installsystemd) : qw()),
+ (!compat(11) ? qw(dh_installsystemduser) : qw()),
qw{
dh_installmenu
@@ -430,86 +417,201 @@ qw{
dh_fixperms
dh_missing
});
-my @ba=(
- (!compat(11) ? qw(dh_dwz) : qw()),
-qw{
- dh_strip
- dh_makeshlibs
- dh_shlibdeps
-});
-if (! getpackages("arch")) {
- @ba=();
-}
+
+# Looking for dh_dwz, dh_strip, dh_makeshlibs, dh_shlibdeps (et al)? They are
+# in the elf-tools addon.
my @b=qw{
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
};
-$sequences{clean} = [@bd_minimal, qw{
+
+sub _add_sequence {
+ my @args = @_;
+ my $seq = Debian::Debhelper::Sequence->new(@args);
+ my $name = $seq->name;
+ $sequences{$name} = $seq;
+ if ($seq->allowed_subsequences eq SEQUENCE_ARCH_INDEP_SUBSEQUENCES) {
+ for my $subseq ((SEQUENCE_TYPE_ARCH_ONLY, SEQUENCE_TYPE_INDEP_ONLY)) {
+ my $subname = "${name}-${subseq}";
+ $sequences{$subname} = $seq;
+ }
+ }
+ return;
+}
+
+_add_sequence('build', SEQUENCE_ARCH_INDEP_SUBSEQUENCES, @bd);
+_add_sequence('install', SEQUENCE_ARCH_INDEP_SUBSEQUENCES, to_rules_target("build"), @i);
+_add_sequence('binary', SEQUENCE_ARCH_INDEP_SUBSEQUENCES, to_rules_target("install"), @b);
+_add_sequence('clean', SEQUENCE_NO_SUBSEQUENCES, @bd_minimal, qw{
dh_auto_clean
dh_clean
-}];
-$sequences{'build-indep'} = [@bd];
-$sequences{'build-arch'} = [@bd];
-$sequences{build} = [to_rules_target("build-arch"), to_rules_target("build-indep")];
-$sequences{'install-indep'} = [to_rules_target("build-indep"), @i];
-$sequences{'install-arch'} = [to_rules_target("build-arch"), @i];
-$sequences{'install'} = [to_rules_target("build"), to_rules_target("install-arch"), to_rules_target("install-indep")];
-$sequences{'binary-indep'} = [to_rules_target("install-indep"), @b];
-$sequences{'binary-arch'} = [to_rules_target("install-arch"), @ba, @b];
-$sequences{binary} = [to_rules_target("install"), to_rules_target("binary-arch"), to_rules_target("binary-indep")];
+});
# Additional command options
my %command_opts;
+my %commands_added_by_addon;
+
+sub _assert_not_conditional_sequence_addon {
+ my ($feature) = @_;
+ return if $DH_INTERNAL_ADDON_TYPE eq 'both';
+ warning("The add-on ${DH_INTERNAL_ADDON_NAME} relies on a feature (${feature}) (possibly indirectly), which is "
+ . 'not supported for conditional debhelper sequence add-ons.');
+ warning("Hint: You may have to move the build-dependency for dh-sequence-${DH_INTERNAL_ADDON_NAME} to "
+ . 'Build-Depends to avoid this error assuming it is possible to use the sequence unconditionally.');
+ die("${feature} is not supported for conditional dh sequence add-ons.\n");
+}
+
+sub _filter_sequences_for_conditional_add_ons {
+ my @sequences = @_;
+ # If it is unconditional, then there is no issues.
+ return @sequences if $DH_INTERNAL_ADDON_TYPE eq 'both' or not @sequences;
+ for my $seq (@sequences) {
+ # Typically, if you add a command to a sequence, then you will in fact add it to two. E.g.
+ # Adding dh_foo after dh_installdocs will affect both install-arch AND install-indep. We want
+ # this to "just work(tm)" with a conditional add-on to avoid too much hassle (i.e. only affect
+ # the relevant sequence). At the same time, we must abort if a sequence like "clean" is
+ # affected.
+ #
+ # We solve the above by checking if the sequence has an -arch + an -indep variant and then
+ # insert the command only for that sequence variant.
+
+ if ($seq->allowed_subsequences ne SEQUENCE_ARCH_INDEP_SUBSEQUENCES) {
+ my $sequence_name = $seq->name;
+ warning("The add-on ${DH_INTERNAL_ADDON_NAME} attempted to modify the sequence ${sequence_name} (possibly "
+ . "indirectly) but the add-on is conditional for \"*-${DH_INTERNAL_ADDON_TYPE}\" targets");
+ warning("Hint: You may have to move the build-dependency for dh-sequence-${DH_INTERNAL_ADDON_NAME} to "
+ . 'Build-Depends to avoid this error assuming it is possible to use the sequence unconditionally.');
+ die("The add-on ${DH_INTERNAL_ADDON_NAME} cannot be use conditionally for \"*-${DH_INTERNAL_ADDON_TYPE}\""
+ . " targets\n");
+ }
+ }
+ return @sequences;
+}
+
+sub _register_cmd_added_by_addon {
+ my ($cmd) = @_;
+ my $existing = $commands_added_by_addon{$cmd};
+ if ($existing) {
+ if ($existing->{'addon-type'} ne $DH_INTERNAL_ADDON_TYPE) {
+ my $old_addon_name = $existing->{'addon-name'};
+ my $old_addon_type = $existing->{'addon-type'};
+ # Technically, "both" could be made compatible with "indep" OR "arch" (but not both at the same time).
+ # Implement if it turns out to be relevant.
+ warning("Both dh sequence add-ons ${DH_INTERNAL_ADDON_NAME} and ${old_addon_name} have attempted to add "
+ . "the command $cmd (possibly indirectly).");
+ warning("However, the two add-ons do not have compatible constraints (${DH_INTERNAL_ADDON_TYPE} vs. "
+ . "${old_addon_type}).");
+ warning("Hint: You may have to move the build-dependency for dh-sequence-<X> to "
+ . ' the same build-dependency field to avoid this error assuming it is possible.');
+ die("Multiple sequences have conflicting requests for $cmd.\n");
+ }
+ return;
+ }
+
+ $commands_added_by_addon{$cmd} = {
+ 'addon-name' => $DH_INTERNAL_ADDON_NAME,
+ 'addon-type' => $DH_INTERNAL_ADDON_TYPE,
+ };
+ return;
+}
+
+sub _sequences_containing_cmd {
+ my ($cmd) = @_;
+ my @sequences;
+ foreach my $sequence_name (keys %sequences) {
+ my $seq = $sequences{$sequence_name};
+ for my $scmd (@{$seq->{'_cmds'}}) {
+ if ($scmd->{'command'} eq $cmd) {
+ push(@sequences, $seq);
+ last;
+ }
+ }
+ }
+ return @sequences;
+}
+
+sub _seq_cmd {
+ my ($cmd_name) = @_;
+ return {
+ 'command' => $cmd_name,
+ 'command-options' => [],
+ 'sequence-limitation' => $DH_INTERNAL_ADDON_TYPE,
+ };
+}
# sequence addon interface
sub _insert {
my ($offset, $existing, $new) = @_;
- foreach my $sequence (keys %sequences) {
- my @list=@{$sequences{$sequence}};
- next unless grep $existing, @list;
- my @new;
- foreach my $command (@list) {
- if ($command eq $existing) {
- push @new, $new if $offset < 0;
- push @new, $command;
- push @new, $new if $offset > 0;
- }
- else {
- push @new, $command;
- }
- }
- $sequences{$sequence}=\@new;
+ my @affected_sequences = _sequences_containing_cmd($existing);
+ @affected_sequences = _filter_sequences_for_conditional_add_ons(@affected_sequences);
+ return if not @affected_sequences;
+ _register_cmd_added_by_addon($new);
+ for my $seq (@affected_sequences) {
+ $seq->_insert($offset, $existing, _seq_cmd($new));
}
+ return 1;
}
sub insert_before {
- _insert(-1, @_);
+ return _insert(-1, @_);
}
sub insert_after {
- _insert(1, @_);
+ return _insert(1, @_);
}
sub remove_command {
my ($command) = @_;
- foreach my $sequence (keys %sequences) {
- $sequences{$sequence}=[grep { $_ ne $command } @{$sequences{$sequence}}];
+ # Implement if actually needed (I *think* it basically means to transform dh_foo to dh_foo -a/-i)
+ _assert_not_conditional_sequence_addon('remove_command');
+ my @affected_sequences = _sequences_containing_cmd($command);
+ @affected_sequences = _filter_sequences_for_conditional_add_ons(@affected_sequences);
+ return 1 if not @affected_sequences;
+ for my $seq (@affected_sequences) {
+ $seq->remove_command($command);
}
-
+ return 1;
}
sub add_command {
my ($command, $sequence) = @_;
- unshift @{$sequences{$sequence}}, $command;
+ _assert_not_conditional_sequence_addon('add_command');
+ _register_cmd_added_by_addon($command);
+ if (not exists($sequences{$sequence})) {
+ _add_sequence($sequence, SEQUENCE_NO_SUBSEQUENCES, _seq_cmd($command));
+ } else {
+ my $seq = $sequences{$sequence};
+ _filter_sequences_for_conditional_add_ons($seq);
+ $seq->add_command_at_start(_seq_cmd($command))
+ }
+ return 1;
}
sub add_command_at_end {
my ($command, $sequence) = @_;
- push(@{$sequences{$sequence}}, $command);
+ _assert_not_conditional_sequence_addon('add_command');
+ _register_cmd_added_by_addon($command);
+ if (not exists($sequences{$sequence})) {
+ _add_sequence($sequence, SEQUENCE_NO_SUBSEQUENCES, _seq_cmd($command));
+ } else {
+ my $seq = $sequences{$sequence};
+ _filter_sequences_for_conditional_add_ons($seq);
+ $seq->add_command_at_end(_seq_cmd($command))
+ }
+ return 1;
}
+
sub add_command_options {
my $command=shift;
+ # Implement if actually needed (Complicated as dh_foo becomes dh_foo -a && dh_foo -i <extra_options>
+ # and that implies smarter deduplication logic)
+ _assert_not_conditional_sequence_addon('add_command_options');
push @{$command_opts{$command}}, @_;
+ return 1;
}
+
sub remove_command_options {
my ($command, @cmd_options) = @_;
+ # Implement if actually needed (Complicated as dh_foo <extra_options> becomes
+ # dh_foo -a <extra_options> && dh_foo -i and that implies smarter deduplication logic)
+ _assert_not_conditional_sequence_addon('remove_command_options');
if (@cmd_options) {
# Remove only specified options
if (my $opts = $command_opts{$command}) {
@@ -523,6 +625,7 @@ sub remove_command_options {
# Clear all additional options
delete $command_opts{$command};
}
+ return 1;
}
sub list_addons {
@@ -549,9 +652,30 @@ sub list_addons {
}
sub _compute_addons {
- my (@addon_requests_from_args) = @_;
+ my ($sequence_name, @addon_requests_from_args) = @_;
my (@enabled_addons, %disabled_addons, %enabled);
my @addon_requests;
+ my $sequence_type = sequence_type($sequence_name);
+
+ my %addon_constraints = %{ Debian::Debhelper::Dh_Lib::bd_dh_sequences() };
+
+ # Inject elf-tools early as other addons rely on their presence and it historically
+ # has been considered a part of the "core" sequence.
+ if (exists($addon_constraints{'elf-tools'})) {
+ # Explicitly requested; respect that
+ push(@addon_requests, '+elf-tools');
+ } elsif (compat(12, 1)) {
+ # In compat 12 and earlier, we only inject the sequence if there are arch
+ # packages present and the sequence requires it.
+ if (getpackages('arch') and $sequence_type ne SEQUENCE_TYPE_INDEP_ONLY) {
+ push(@addon_requests, '+elf-tools');
+ }
+ } else {
+ # In compat 13, we always inject the addon if not explicitly requested and
+ # then flag it as arch_only
+ push(@addon_requests, '+elf-tools');
+ $addon_constraints{'elf-tools'} = SEQUENCE_TYPE_ARCH_ONLY if not exists($addon_constraints{'elf-tools'});
+ }
# Order is important; DH_EXTRA_ADDONS must come before everything
# else; then comes built-in and finally argument provided add-ons
@@ -568,7 +692,13 @@ sub _compute_addons {
push(@addon_requests, '+systemd') if compat(10, 1);
push(@addon_requests, '+build-stamp');
}
- push(@addon_requests, map { "+${_}" } Debian::Debhelper::Dh_Lib::bd_dh_sequences());
+ for my $addon_name (sort(keys(%addon_constraints))) {
+ my $addon_type = $addon_constraints{$addon_name};
+ if ($addon_type eq 'both' or $sequence_type eq 'both' or $addon_type eq $sequence_type) {
+ push(@addon_requests, "+${addon_name}");
+ }
+ }
+
push(@addon_requests, @addon_requests_from_args);
if (dpkg_architecture_value('DEB_HOST_ARCH_OS') eq 'illumos'
@@ -600,24 +730,12 @@ sub _compute_addons {
}
$flush_disable_cache->() if %disabled_addons;
- return @enabled_addons;
-}
-
-@addons = _compute_addons(@addon_requests);
-
-# Load addons, which can modify sequences.
-foreach my $addon (@addons) {
- my $mod="Debian::Debhelper::Sequence::$addon";
- $mod=~s/-/_/g;
- eval "use $mod";
- if ($@) {
- error("unable to load addon $addon: $@");
- }
-}
-
-if (! exists $sequences{$sequence}) {
- error "Unknown sequence $sequence (choose from: ".
- join(" ", sort keys %sequences).")";
+ return map {
+ {
+ 'name' => $_,
+ 'addon-type' => $addon_constraints{$_} // SEQUENCE_TYPE_BOTH,
+ }
+ } @enabled_addons;
}
# The list of all packages that can be acted on.
@@ -643,9 +761,9 @@ my %completed_sequences;
# Get the options to pass to commands in the sequence.
# Filter out options intended only for this program.
-my @options;
-my $user_specified_options=0;
-my $build_system_options = 0;
+my (@options, %seen_options);
+my ($unoptimizable_user_option, $unoptimizable_option_bundle, $sequence_unpack_flags) = (0, 0, 0);
+
if ($sequence eq 'build-arch' ||
$sequence eq 'install-arch' ||
$sequence eq 'binary-arch') {
@@ -661,6 +779,45 @@ elsif ($sequence eq 'build-indep' ||
# ditto optimisation for arch indep
@packages = @{$sequence2packages{$sequence}};
}
+
+if (not @arch_packages) {
+ $sequence_unpack_flags = FLAG_OPT_SOURCE_BUILDS_NO_ARCH_PACKAGES;
+} elsif (not @indep_packages) {
+ $sequence_unpack_flags = FLAG_OPT_SOURCE_BUILDS_NO_INDEP_PACKAGES;
+}
+
+@addons = _compute_addons($sequence, @addon_requests);
+
+# Load addons, which can modify sequences.
+foreach my $addon (@addons) {
+ my $addon_name = $addon->{'name'};
+ my $addon_type = $addon->{'addon-type'};
+ my $mod="Debian::Debhelper::Sequence::${addon_name}";
+ $mod=~s/-/_/g;
+ local $DH_INTERNAL_ADDON_NAME = $addon_name;
+ local $DH_INTERNAL_ADDON_TYPE = $addon_type;
+ eval "use $mod";
+ if ($@) {
+ error("unable to load addon ${addon_name}: $@");
+ }
+}
+if (%commands_added_by_addon) {
+ while (my ($cmd, $addon) = each(%commands_added_by_addon)) {
+ my $addon_type = $addon->{'addon-type'};
+ if ($addon_type eq 'indep') {
+ unshift(@{$command_opts{$cmd}}, '-i');
+ } elsif ($addon_type eq 'arch') {
+ unshift(@{$command_opts{$cmd}}, '-a');
+ }
+ }
+}
+
+
+if (! exists $sequences{$sequence}) {
+ error "Unknown sequence $sequence (choose from: ".
+ join(" ", sort keys %sequences).")";
+}
+
while (@ARGV_orig) {
my $opt=shift @ARGV_orig;
if ($opt =~ /^--?(after|until|before|with|without)$/) {
@@ -684,17 +841,27 @@ while (@ARGV_orig) {
$max_parallel = get_buildoption('parallel') // 1;
next if $max_parallel == 1;
}
+ if ($opt =~ m/^(--[^=]++)(?:=.*)?$/ or $opt =~ m/^(-[^-])$/) {
+ my $optname = $1;
+ if (length($optname) > 2 and (compat(12, 1) or $optname =~ m/^-[^-][^=]/)) {
+ # We cannot optimize bundled options but we can optimize a single
+ # short option with an explicit parameter (-B=F is ok, -BF is not)
+ # In compat 12 or earlier, we also punt on long options due to
+ # auto-abbreviation.
+ $unoptimizable_option_bundle = 1
+ }
+ $seen_options{$optname} = 1;
+ } else {
+ $unoptimizable_user_option = 1;
+ }
push @options, "-O".$opt;
- $build_system_options = 1 if $opt ne '--no-parallel' and $opt ne '--parallel';
- $user_specified_options=1
- unless $opt =~ /^--((?:no-)?parallel|buildsystem|sourcedirectory|builddirectory|)/;
}
elsif (@options) {
- $user_specified_options=1;
if ($options[$#options]=~/^-O--/) {
$options[$#options].="=".$opt;
}
else {
+ $unoptimizable_user_option = 1;
$options[$#options].=$opt;
}
}
@@ -738,51 +905,28 @@ if ( -f $build_stamp_file and not compat(9)) {
my ($rules_targets, $full_sequence) = unpack_sequence(\%sequences,
$sequence,
(!compat(8) ? 0 : 1),
- \%completed_sequences
+ \%completed_sequences,
+ $sequence_unpack_flags,
);
my $stoppoint = $#{$full_sequence};
if (compat(9)) {
foreach my $package (@packages) {
my @log = load_log($package, \%logged);
- if ($dh{AFTER}) {
- # Run commands in the sequence that come after the
- # specified command.
- $startpoint{$package} = command_pos($dh{AFTER}, @{$full_sequence}) + 1;
- # Write a dummy log entry indicating that the specified
- # command was, in fact, run. This handles the case where
- # no commands remain to run after it, communicating to
- # future dh instances that the specified command should not
- # be run again.
- write_log($full_sequence->[$startpoint{$package} - 1], $package);
- }
- elsif ($dh{REMAINING}) {
- # Start at the beginning so all remaining commands will get
- # run.
- $startpoint{$package} = 0;
- }
- else {
- # Find the last logged command that is in the sequence, and
- # continue with the next command after it. If no logged
- # command is in the sequence, we're starting at the beginning..
- $startpoint{$package} = 0;
- COMMAND:
- foreach my $command (reverse @log) {
- foreach my $i (0 .. $#{$full_sequence}) {
- if ($command eq $full_sequence->[$i]) {
- $startpoint{$package} = $i + 1;
- last COMMAND;
- }
+ # Find the last logged command that is in the sequence, and
+ # continue with the next command after it. If no logged
+ # command is in the sequence, we're starting at the beginning..
+ $startpoint{$package} = 0;
+ COMMAND:
+ foreach my $command (reverse @log) {
+ foreach my $i (0 .. $#{$full_sequence}) {
+ if ($command eq $full_sequence->[$i]) {
+ $startpoint{$package} = $i + 1;
+ last COMMAND;
}
}
}
}
- # Figure out what point in the sequence to go to.
- if ($dh{UNTIL}) {
- $stoppoint = command_pos($dh{UNTIL}, @{$full_sequence});
- } elsif ($dh{BEFORE}) {
- $stoppoint = command_pos($dh{BEFORE}, @{$full_sequence}) - 1;
- }
} else {
foreach my $package (@packages) {
$startpoint{$package} = 0;
@@ -827,7 +971,19 @@ foreach my $i (0..$stoppoint) {
# Figure out which packages need to run this command.
my @todo;
my @opts=@options;
- foreach my $package (@packages) {
+ my @filtered_packages;
+ if (grep { $_ eq '-i'} @{$command_opts{$command}}) {
+ if (grep { $_ eq '-a'} @{$command_opts{$command}}) {
+ @filtered_packages = @packages;
+ } else {
+ @filtered_packages = @indep_packages;
+ }
+ } elsif (grep { $_ eq '-a'} @{$command_opts{$command}}) {
+ @filtered_packages = @arch_packages;
+ } else {
+ @filtered_packages = @packages;
+ }
+ foreach my $package (@filtered_packages) {
if ($startpoint{$package} > $i ||
$logged{$package}{$full_sequence->[$i]}) {
push @opts, "-N$package";
@@ -859,7 +1015,7 @@ foreach my $i (0..$stoppoint) {
close($fd) or error("close($stamp_file) failed: $!");
next;
}
-
+
# Check for override targets in debian/rules, and run instead of
# the usual command. (The non-arch-specific override is tried first,
# for simplest semantics; mixing it with arch-specific overrides
@@ -870,20 +1026,7 @@ foreach my $i (0..$stoppoint) {
}
next unless @todo;
- if (can_skip($command, @todo) && ! $dh{NO_ACT}) {
- # This mkdir is to avoid skipping the command causing
- # breakage if some later command assumed that the
- # command ran, and created the tmpdir, as a side effect.
- # No commands in debhelper should make such an assuption,
- # but there may be third party commands or other things
- # in the rules file that does.
- if (! compat(10)) {
- foreach my $package (@todo) {
- mkdir(tmpdir($package));
- }
- }
- next;
- }
+ next if can_skip($command, @todo);
# No need to run the command for any packages handled by the
# override targets.
@@ -1001,46 +1144,21 @@ sub stamp_target {
}
-sub warn_deprecated {
+sub reject_obsolete_params {
foreach my $deprecated ('until', 'after', 'before', 'remaining') {
if (defined $dh{uc $deprecated}) {
- if (compat(9)) {
- warning("The --$deprecated option is deprecated. Use override targets instead.");
- } else {
- error("The --$deprecated option is not supported in compat 10+. Use override targets instead.");
- }
- }
- }
-}
-
-sub command_pos {
- my ($command, @sequence) = @_;
-
- foreach my $i (0..$#sequence) {
- if ($command eq $sequence[$i]) {
- return $i;
+ error("The --$deprecated option is not supported any longer (#932537). Use override targets instead.");
}
}
-
- my @matches;
- foreach my $i (0..$#sequence) {
- if ($sequence[$i] =~ /\Q$command\E/) {
- push @matches, $i;
- }
- }
- if (! @matches) {
- error "command specification \"$command\" does not match any command in the sequence"
- }
- else {
- return pop @matches;
- }
}
my %skipinfo;
sub can_skip {
my ($command, @packages) = @_;
- return 0 if $user_specified_options ||
+ return 0 if $dh{NO_ACT} and not $ENV{DH_INTERNAL_TEST_CAN_SKIP};
+
+ return 0 if $unoptimizable_user_option ||
(exists $ENV{DH_OPTIONS} && length $ENV{DH_OPTIONS});
return 0 if exists($command_opts{$command})
@@ -1052,47 +1170,56 @@ sub can_skip {
my @skipinfo=@{$skipinfo{$command}};
return 0 unless @skipinfo;
return 1 if scalar(@skipinfo) == 1 and $skipinfo[0] eq 'always-skip';
- my $all_pkgs;
+ my ($all_pkgs, $had_cli_options);
foreach my $skipinfo (@skipinfo) {
+ my $type = 'pkgfile';
+ my $need = $skipinfo;
if ($skipinfo=~/^([a-zA-Z0-9-_]+)\((.*)\)$/) {
- my $type = $1;
- my $need = $2;
- if ($type eq 'tmp') {
- foreach my $package (@packages) {
- my $tmp = tmpdir($package);
- return 0 if -e "$tmp/$need";
- }
- } elsif ($type eq 'pkgfile' or $type eq 'pkgfile-logged') {
- my $pkgs;
- if ($type eq 'pkgfile') {
- $pkgs = \@packages;
- } else {
- $all_pkgs //= [getpackages()];
- $pkgs = $all_pkgs;
- }
- # Use the secret bulk check call
- return 0 if pkgfile($pkgs, $need) ne '';
- } elsif ($type eq 'buildsystem') {
- # If there are any buildsystem options, we assume that
- # the build needs a buildsystem.
- return 0 if $build_system_options;
- require Debian::Debhelper::Dh_Buildsystems;
- my $system = Debian::Debhelper::Dh_Buildsystems::load_buildsystem(undef, $need);
- return 0 if defined($system);
+ ($type, $need) = ($1, $2);
+ }
+ if ($type eq 'tmp') {
+ foreach my $package (@packages) {
+ my $tmp = tmpdir($package);
+ return 0 if -e "$tmp/$need";
+ }
+ } elsif ($type eq 'pkgfile' or $type eq 'pkgfile-logged') {
+ my $pkgs;
+ if ($type eq 'pkgfile') {
+ $pkgs = \@packages;
} else {
- # Unknown hint - make no assumptions
- return 0;
+ $all_pkgs //= [ getpackages() ];
+ $pkgs = $all_pkgs;
}
- } else {
# Use the secret bulk check call
- return 0 if pkgfile(\@packages, $skipinfo) ne '';
+ return 0 if pkgfile($pkgs, $need) ne '';
+ } elsif ($type eq 'cli-options') {
+ $had_cli_options = 1;
+ # If cli-options is empty, we know the helper does not
+ # react to any thing and can always be skipped.
+ next if $need =~ m/^\s*$/;
+ # Long options are subject to abbreviations so it is
+ # very difficult to implement this optimization with
+ # long options.
+ return 0 if $unoptimizable_option_bundle;
+ $need =~ s/(?:^|\s)BUILDSYSTEM(?:\s|$)/${\UNSKIPPABLE_CLI_OPTIONS_BUILD_SYSTEM}/;
+ my @behavior_options = split(qr/\Q|\E/, $need);
+ for my $opt (@behavior_options) {
+ return 0 if exists($seen_options{$opt});
+ }
+ } elsif ($type eq 'buildsystem') {
+ require Debian::Debhelper::Dh_Buildsystems;
+ my $system = Debian::Debhelper::Dh_Buildsystems::load_buildsystem(undef, $need);
+ return 0 if defined($system);
+ } else {
+ # Unknown hint - make no assumptions
+ return 0;
}
}
+ return 0 if not $had_cli_options and %seen_options;
return 1;
}
-
=head1 SEE ALSO
L<debhelper(7)>
diff --git a/dh_auto_build b/dh_auto_build
index a52ef98b..6321e191 100755
--- a/dh_auto_build
+++ b/dh_auto_build
@@ -45,7 +45,7 @@ B<dh_auto_build> usually passes.
=cut
-# PROMISE: DH NOOP WITHOUT buildsystem(build)
+# PROMISE: DH NOOP WITHOUT cli-options(BUILDSYSTEM) buildsystem(build)
buildsystems_init();
buildsystems_do();
diff --git a/dh_auto_clean b/dh_auto_clean
index 60f32ce5..828f2efb 100755
--- a/dh_auto_clean
+++ b/dh_auto_clean
@@ -46,7 +46,7 @@ B<dh_auto_clean> usually passes.
=cut
-# PROMISE: DH NOOP WITHOUT buildsystem(clean)
+# PROMISE: DH NOOP WITHOUT cli-options(BUILDSYSTEM) buildsystem(clean)
inhibit_log();
buildsystems_init();
diff --git a/dh_auto_configure b/dh_auto_configure
index 9e10a169..5cdcfa06 100755
--- a/dh_auto_configure
+++ b/dh_auto_configure
@@ -50,7 +50,7 @@ B<dh_auto_configure> usually passes. For example:
=cut
-# PROMISE: DH NOOP WITHOUT buildsystem(configure)
+# PROMISE: DH NOOP WITHOUT cli-options(BUILDSYSTEM) buildsystem(configure)
buildsystems_init();
buildsystems_do();
diff --git a/dh_auto_install b/dh_auto_install
index 7080cc6b..2ca13775 100755
--- a/dh_auto_install
+++ b/dh_auto_install
@@ -71,7 +71,7 @@ buildsystems_init(options => {
"destdir=s" => \$destdir,
});
-# PROMISE: DH NOOP WITHOUT buildsystem(install)
+# PROMISE: DH NOOP WITHOUT cli-options(BUILDSYSTEM) buildsystem(install)
# If destdir is not specified, determine it automatically
if (!$destdir) {
@@ -83,7 +83,7 @@ if (!$destdir) {
$destdir=tmpdir($dh{MAINPACKAGE});
}
}
-$destdir = File::Spec->rel2abs($destdir, cwd());
+$destdir = File::Spec->rel2abs($destdir, getcwd());
if (compat(10)) {
# Ensure that all debian/<pkg> directories exist
diff --git a/dh_auto_test b/dh_auto_test
index a59bc5dd..05acea80 100755
--- a/dh_auto_test
+++ b/dh_auto_test
@@ -52,7 +52,7 @@ tests will be performed.
=cut
-# PROMISE: DH NOOP WITHOUT buildsystem(test)
+# PROMISE: DH NOOP WITHOUT cli-options(BUILDSYSTEM) buildsystem(test)
if (get_buildoption("nocheck")) {
exit 0;
diff --git a/dh_bugfiles b/dh_bugfiles
index 552c1229..62229223 100755
--- a/dh_bugfiles
+++ b/dh_bugfiles
@@ -74,7 +74,7 @@ my %bugfile_types = (
"control" => "bug-control",
"presubj" => "bug-presubj",
);
-# PROMISE: DH NOOP WITHOUT bug-script bug-control bug-presubj
+# PROMISE: DH NOOP WITHOUT bug-script bug-control bug-presubj cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
next if is_udeb($package);
diff --git a/dh_clean b/dh_clean
index 15466a9b..192ace29 100755
--- a/dh_clean
+++ b/dh_clean
@@ -78,6 +78,7 @@ slash. Any content in these directories will be removed as well.
init(options => {
"dirs-only" => \$dh{D_FLAG},
+ "keep|k" => \$dh{K_FLAG},
});
inhibit_log();
diff --git a/dh_compress b/dh_compress
index ac426323..d90c0f2c 100755
--- a/dh_compress
+++ b/dh_compress
@@ -91,7 +91,12 @@ on_pkgs_in_parallel {
# structure that will be effected.
next unless -d $tmp;
my $ignore_doc_dirs = '-name _sources';
- $ignore_doc_dirs .= qq{ -o -path "usr/share/doc/$package/examples"} if not compat(11);
+ if (not compat(11)) {
+ my $target_package = compute_doc_main_package($package);
+ $ignore_doc_dirs .= qq{ -o -path "usr/share/doc/${package}/examples"};
+ $ignore_doc_dirs .= qq{ -o -path "usr/share/doc/${target_package}/examples"}
+ if $target_package and $target_package ne $package;
+ }
$olddir = getcwd() if not defined $olddir;
verbose_print("cd $tmp");
chdir($tmp) || error("Can't cd to $tmp: $!");
@@ -131,9 +136,10 @@ on_pkgs_in_parallel {
! -iname "*.odg" ! -iname "*.odp" ! -iname "*.odt" \\
! -iname ".htaccess" ! -iname "*.css" \\
! -iname "*.xz" ! -iname "*.lz" ! -iname "*.lzma" \\
+ ! -iname "*.haddock" ! -iname "*.hs" \\
! -iname "*.svg" ! -iname "*.svgz" ! -iname "*.js" \\
! -name "index.sgml" ! -name "objects.inv" ! -name "*.map" \\
- ! -name "*.devhelp2" \\
+ ! -name "*.devhelp2" ! -name "search_index.json" \\
! -name "copyright" 2>/dev/null || true;
find usr/share/fonts/X11 -type f -name "*.pcf" 2>/dev/null || true;
`);
diff --git a/dh_dwz b/dh_dwz
index a714c766..471930b9 100755
--- a/dh_dwz
+++ b/dh_dwz
@@ -30,9 +30,17 @@ running L<dwz(1)> on all the ELF binaries in the package.
=item B<--dwz-multifile>, B<--no-dwz-multifile>
Whether L<dwz(1)> should generate a I<multifile> from the ELF binaries
-in the same package (it does by default). When enabled, if a package
-ships at least 2 ELF binaries, B<dh_dwz> will instruct L<dwz(1)> to
-generate a multifile for the package.
+in the same package. When enabled, if a package ships at least 2 ELF
+binaries, B<dh_dwz> will instruct L<dwz(1)> to generate a multifile
+for the package.
+
+By default, B<dh_dwz> will attempt to create a multifile but will
+continue without if L<dwz(1)> does create one (but succeeds anyway).
+This commonly happens when the debug files do not contain debug
+symbols (e.g. a missing -g to the compiler) or when the debug
+symbols are compressed (see Debian bug #931891). If B<--dwz-multifile>
+is passed, then B<dh_dwz> will abort with an error if L<dwz(1)> does
+not create a multifile.
Note this options may not work if a package contains more ELF binaries
than can fit on a single command line. If this becomes a problem,
@@ -41,6 +49,10 @@ please pass B<--no-dwz-multifile> to work around the issue.
The generated multifile will be compressed with B<objcopy
--compress-debug-sections>.
+Note for B<udeb> packages: B<dh_dwz> will never generate multifiles
+for B<udeb> packages. It will still use B<dwz> to reduce the
+file size of debug files if it finds any.
+
=item B<-X>I<item>, B<--exclude=>I<item>
Exclude files that contain I<item> anywhere in their filename from being
@@ -68,7 +80,7 @@ test"-cycles) rather than optimizing for size.
=cut
-my $create_multifile = 1;
+my $create_multifile = 'auto';
init(options => {
'dwz-multifile!' => \$create_multifile,
@@ -112,18 +124,26 @@ for my $package (@{$dh{DOPACKAGES}}) {
# Consistent order;
@elf_files = sort(@elf_files);
my ($unique_files, $hardlinks) = find_hardlinks(@elf_files);
- my @dwz_options;
- if ($create_multifile and @{$unique_files} > 1) {
+ if ($create_multifile and @{$unique_files} > 1 and not is_udeb($package)) {
my $objcopy = cross_command($package, 'objcopy');
my $ma_dir = dpkg_architecture_value('DEB_HOST_MULTIARCH');
my $dwz_dir = "usr/lib/debug/.dwz/${ma_dir}";
my $m = "${dwz_dir}/${package}.debug";
my @dwz_options = ("-m${tmp}/${m}", "-M/${m}");
install_dir("${tmp}/${dwz_dir}");
- doit('dwz', '-q', @dwz_options, @{$dh{U_PARAMS}}, '--', @{$unique_files});
- doit($objcopy, '--compress-debug-sections', "${tmp}/${m}");
+ doit('dwz', @dwz_options, @{$dh{U_PARAMS}}, '--', @{$unique_files});
+ if ( -f "${tmp}/${m}") {
+ doit($objcopy, '--compress-debug-sections', "${tmp}/${m}");
+ } else {
+ error("dwz failed to create a multifile as requested") if $create_multifile ne 'auto';
+ warning("No dwz multifile created, but not explicitly requested either so ignoring it.");
+ warning("Common issues include no debug information at all (missing -g) and");
+ warning("compressed debug information (#931891).");
+ # Clean up after ourselves to avoid leaving empty directories in packages
+ doit('rmdir', '-p', '--ignore-fail-on-non-empty', "${tmp}/usr/lib/debug/.dwz/${ma_dir}");
+ }
} else {
- xargs($unique_files, 'dwz', '-q', @{$dh{U_PARAMS}}, '--');
+ xargs($unique_files, 'dwz', @{$dh{U_PARAMS}}, '--');
}
diff --git a/dh_fixperms b/dh_fixperms
index c2b736e2..c8b4c4ca 100755
--- a/dh_fixperms
+++ b/dh_fixperms
@@ -72,6 +72,8 @@ my @mode_0644_patterns = (
'*.jpeg', '*.jpg', '*.png', '*.gif',
# OCaml native-code shared objects
'*.cmxs',
+ # Node bindings
+ '*.node',
);
my @mode_0755_patterns = (
# None for Debian
diff --git a/dh_gconf b/dh_gconf
index 74c04a35..619ccb73 100755
--- a/dh_gconf
+++ b/dh_gconf
@@ -2,7 +2,7 @@
=head1 NAME
-dh_gconf - install GConf defaults files and register schemas
+dh_gconf - install GConf defaults files and register schemas (deprecated)
=cut
@@ -54,14 +54,18 @@ packages (B<90>).
=cut
-init();
+init(options => {
+ "priority=s" => \$dh{PRIORITY},
+});
+
+warning("Please migrate to dh_installgsettings; gconf + dh_gconf is scheduled for removal.");
my $priority=10;
if (defined $dh{PRIORITY}) {
$priority=$dh{PRIORITY};
}
-# PROMISE: DH NOOP WITHOUT gconf-mandatory gconf-defaults tmp(etc/gconf/schemas) tmp(usr/share/gconf/schemas)
+# PROMISE: DH NOOP WITHOUT gconf-mandatory gconf-defaults tmp(etc/gconf/schemas) tmp(usr/share/gconf/schemas) cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_icons b/dh_icons
index 73240ec4..2af68569 100755
--- a/dh_icons
+++ b/dh_icons
@@ -44,7 +44,7 @@ Do not modify maintainer scripts.
init();
-# PROMISE: DH NOOP WITHOUT tmp(usr/share/icons)
+# PROMISE: DH NOOP WITHOUT tmp(usr/share/icons) cli-options()
my $baseicondir="/usr/share/icons";
foreach my $package (@{$dh{DOPACKAGES}}) {
diff --git a/dh_install b/dh_install
index f7326659..79c5a75c 100755
--- a/dh_install
+++ b/dh_install
@@ -138,7 +138,7 @@ if ($dh{EXCLUDE_FIND}) {
$exclude = '! \( '.$dh{EXCLUDE_FIND}.' \)';
}
-# PROMISE: DH NOOP WITHOUT pkgfile-logged(install)
+# PROMISE: DH NOOP WITHOUT pkgfile-logged(install) cli-options()
foreach my $package (getpackages()) {
my (@installed, %dest2sources);
diff --git a/dh_installcatalogs b/dh_installcatalogs
index d7ac9a68..1465eecf 100755
--- a/dh_installcatalogs
+++ b/dh_installcatalogs
@@ -71,7 +71,7 @@ multiple instances of the same text to be added to maintainer scripts.
init();
-# PROMISE: DH NOOP WITHOUT sgmlcatalogs
+# PROMISE: DH NOOP WITHOUT sgmlcatalogs cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmpdir = tmpdir($package);
diff --git a/dh_installchangelogs b/dh_installchangelogs
index 8eb9e190..5dcbaf5f 100755
--- a/dh_installchangelogs
+++ b/dh_installchangelogs
@@ -147,7 +147,9 @@ sub install_binNMU_changelog {
}
}
-init();
+init(options => {
+ 'keep|k' => \$dh{K_FLAG},
+});
my $news_name="NEWS.Debian";
my $changelog_name="changelog.Debian";
diff --git a/dh_installcron b/dh_installcron
index abfdefe2..41786c34 100755
--- a/dh_installcron
+++ b/dh_installcron
@@ -56,7 +56,7 @@ as the package name.
init();
-# PROMISE: DH NOOP WITHOUT cron.hourly cron.daily cron.weekly cron.monthly cron.d
+# PROMISE: DH NOOP WITHOUT cron.hourly cron.daily cron.weekly cron.monthly cron.d cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installdeb b/dh_installdeb
index 111f3bb6..d15fb0e3 100755
--- a/dh_installdeb
+++ b/dh_installdeb
@@ -36,6 +36,13 @@ correct permissions.
These maintainer scripts are installed into the F<DEBIAN> directory.
+B<dh_installdeb> will perform substitution of known tokens of
+the pattern B<#TOKEN#>. In generally, scripts will want to
+include the B<#DEBHELPER#> to benefit from the shell scripts
+generated by debhelper commands (including those from
+B<dh_installdeb> when it processes I<package>.maintscript files)
+
+For more information on what tokens
Inside the scripts, the token B<#DEBHELPER#> is replaced with
shell script snippets generated by other debhelper commands.
@@ -88,9 +95,124 @@ error in compat 12.
=back
+=head1 OPTIONS
+
+=over 4
+
+=item B<-D>I<TOKEN=VALUE>, B<--define> I<TOKEN=VALUE>
+
+Define tokens to be replaced inside the maintainer scripts when
+it is generated. Please note that the limitations described in
+L</Limitations in token names> also applies to tokens defined
+on the command line. Invalid token names will trigger an error.
+
+In the simple case, this parameter will cause B<< #I<TOKEN># >>
+to be replaced by I<VALUE>. If I<VALUE> starts with a literal
+I<@>-sign, then I<VALUE> is expected to point to a file
+containing the actual value to insert.
+
+An explicit declared token with this parameter will replace built-in
+tokens.
+
+Test examples to aid with the understanding:
+
+ cat >> debian/postinst <<EOF
+ #SIMPLE#
+ #FILEBASED#
+ EOF
+ echo -n "Complex value" > some-file
+ dh_installdeb --define SIMPLE=direct --define FILEBASED=@some-file
+
+In this example, B<#SIMPLE#> will expand to B<direct> and B<#FILEBASED#>
+will expand to B<Complex value>.
+
+It is also possible to do set package-specific values for a given
+token. This is useful when B<dh_installdeb> is acting on multiple
+packages that need different values for the same token. This is
+done by prefixing the token name with B<< pkg.I<package-name>. >>.
+
+This can be used as in the following example:
+
+ cat >> debian/foo.postinst <<EOF
+ # Script for #PACKAGE#
+ #TOKEN#
+ EOF
+ cat >> debian/bar.postinst <<EOF
+ # Script for #PACKAGE#
+ #TOKEN#
+ EOF
+ cat >> debian/baz.postinst <<EOF
+ # Script for #PACKAGE#
+ #TOKEN#
+ EOF
+ dh_installdeb -pfoo -pbar -pbaz --define TOKEN=default --define pkg.bar.TOKEN=unique-bar-value \
+ --define pkg.baz.TOKEN=unique-baz-value
+
+In this example, B<#TOKEN#> will expand to B<default> in F<debian/foo.postinst>,
+to B<unique-bar-value> in F<debian/bar.postinst> and to B<unique-baz-value>
+in F<debian/baz.postinst>.
+
+Note that the B<#pkg.*#> tokens will be visible in all scripts acted on. E.g.
+you can refer to B<#pkg.bar.TOKEN#> inside F<debian/foo.postinst> and it will
+be replaced by B<unique-bar-value>.
+
+=back
+
+=head1 SUBSTITUTION IN MAINTAINER SCRIPTS
+
+The B<dh_installdeb> will automatically replace the following tokens
+inside a provided maintainer script (if not replaced via B<-D>/B<--define>):
+
+=over 4
+
+=item #DEBHELPER#
+
+This token is by default replaced with generated shell snippets debhelper
+commands. This includes the snippets generated by
+B<dh_installdeb> from I<package>.maintscript file (if present).
+
+=item #DEB_HOST_I<NAME>#, #DEB_BUILD_I<NAME>#, #DEB_TARGET_I<NAME>#
+
+These tokens are replaced with the respective variable from
+L<dpkg-architecture(1)>. In almost all cases, you will want
+use the B<< #DEB_HOST_I<NAME> >> variant in a script to ensure
+you get the right value when cross-building.
+
+On a best effort, tokens of this pattern that do not match
+a variable in L<dpkg-architecture(1)> will be left as-is.
+
+=item #ENV.I<NAME>#
+
+These tokens of this form will be replaced with value of the
+corresponding environment variable. If the environment
+variable is unset, the token is replaced with the empty
+string.
+
+Note that there are limits on which names can be used (see
+L</Limitations in token names>).
+
+=item #PACKAGE#
+
+This token is by default replaced the package name, which will contain
+the concrete script.
+
+=back
+
+=head2 Limitations in token names
+
+All tokens intended to be substituted must match the regex: #[A-Za-z0-9_.+]+#
+
+Tokens that do not match that regex will be silently ignored if found in the
+script template. Invalid token names passed to B<-D> or B<--define> will
+cause B<dh_installdeb> to reject the command with an error in most cases.
+
=cut
-init();
+my %PROVIDED_SUBST;
+
+init(options => {
+ 'define|D=s%' => \%PROVIDED_SUBST,
+});
# dpkg-maintscript-helper commands with their associated dpkg pre-dependency
# versions.
@@ -172,8 +294,9 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
}
# Install debian scripts.
+ my $package_subst = per_package_subst($package, \%PROVIDED_SUBST);
foreach my $script (qw{postinst preinst prerm postrm}) {
- debhelper_script_subst($package, $script);
+ debhelper_script_subst($package, $script, $package_subst);
}
# Install non-executable files
@@ -267,6 +390,23 @@ sub _maybe_error {
}
}
+sub per_package_subst {
+ my ($package, $provided_subst) = @_;
+ my %vars = %{$provided_subst};
+ $vars{'PACKAGE'} = $package if not exists($vars{'PACKAGE'});
+ for my $var (keys(%{$provided_subst})) {
+ if ($var !~ $Debian::Debhelper::Dh_Lib::MAINTSCRIPT_TOKEN_REGEX) {
+ warning("User defined token ${var} does not match ${Debian::Debhelper::Dh_Lib::MAINTSCRIPT_TOKEN_REGEX}");
+ error("Invalid provided token ${var}: It cannot be substituted as it does not follow the token name rules");
+ }
+ if ($var =~ m/^pkg[.]\Q${package}\E[.](.+)$/) {
+ my $new_key = $1;
+ $vars{$new_key} = $provided_subst->{$var};
+ }
+ }
+ return \%vars;
+}
+
=head1 SEE ALSO
L<debhelper(7)>
diff --git a/dh_installdebconf b/dh_installdebconf
index a8cf0409..13dff7dc 100755
--- a/dh_installdebconf
+++ b/dh_installdebconf
@@ -84,7 +84,7 @@ if (defined($dh{U_PARAMS})) {
@extraparams=@{$dh{U_PARAMS}};
}
-# PROMISE: DH NOOP WITHOUT config templates
+# PROMISE: DH NOOP WITHOUT config templates cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installdirs b/dh_installdirs
index 97d31d47..06f522d4 100755
--- a/dh_installdirs
+++ b/dh_installdirs
@@ -81,7 +81,7 @@ init(options => {
'create-in-sourcedir!' => \$create_in_sourcedir,
});
-# PROMISE: DH NOOP WITHOUT dirs
+# PROMISE: DH NOOP WITHOUT dirs cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installemacsen b/dh_installemacsen
index 2e19c1f6..bae900a4 100755
--- a/dh_installemacsen
+++ b/dh_installemacsen
@@ -82,6 +82,7 @@ instances of the same text to be added to maintainer scripts.
init(options => {
"flavor=s" => \$dh{FLAVOR},
+ "priority=s" => \$dh{PRIORITY},
});
if (! defined $dh{PRIORITY}) {
@@ -91,7 +92,7 @@ if (! defined $dh{FLAVOR}) {
$dh{FLAVOR}='emacs';
}
-# PROMISE: DH NOOP WITHOUT emacsen-common emacsen-install emacsen-remove emacsen-startup
+# PROMISE: DH NOOP WITHOUT emacsen-common emacsen-install emacsen-remove emacsen-startup cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installexamples b/dh_installexamples
index 23de5d72..a4d32aea 100755
--- a/dh_installexamples
+++ b/dh_installexamples
@@ -99,7 +99,7 @@ init(options => {
'doc-main-package=s' => \$dh{DOC_MAIN_PACKAGE},
});
-# PROMISE: DH NOOP WITHOUT pkgfile-logged(examples)
+# PROMISE: DH NOOP WITHOUT pkgfile-logged(examples) cli-options()
my $pwd;
my $default_error_handler = compat(10) ? \&glob_expand_error_handler_reject_nomagic_warn_discard : \&glob_expand_error_handler_reject;
diff --git a/dh_installgsettings b/dh_installgsettings
index faedcb7c..45b228eb 100755
--- a/dh_installgsettings
+++ b/dh_installgsettings
@@ -55,14 +55,16 @@ packages (90).
=cut
-init();
+init(options => {
+ "priority=s" => \$dh{PRIORITY},
+});
my $priority=10;
if (defined $dh{PRIORITY}) {
$priority=$dh{PRIORITY};
}
-# PROMISE: DH NOOP WITHOUT gsettings-override tmp(usr/share/glib-2.0/schemas)
+# PROMISE: DH NOOP WITHOUT gsettings-override tmp(usr/share/glib-2.0/schemas) cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installifupdown b/dh_installifupdown
index ce1dc442..9943c911 100755
--- a/dh_installifupdown
+++ b/dh_installifupdown
@@ -58,7 +58,7 @@ as the package name.
init();
-# PROMISE: DH NOOP WITHOUT if-pre-up if-up if-down if-post-down
+# PROMISE: DH NOOP WITHOUT if-pre-up if-up if-down if-post-down cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installinfo b/dh_installinfo
index 34bd478e..f322d90a 100755
--- a/dh_installinfo
+++ b/dh_installinfo
@@ -67,7 +67,7 @@ init(options => {
"sourcedir=s" => \$dh{SOURCEDIR},
});
-# PROMISE: DH NOOP WITHOUT info
+# PROMISE: DH NOOP WITHOUT pkgfile-logged(info) cli-options()
my $default_error_handler = compat(10) ? \&glob_expand_error_handler_reject_nomagic_warn_discard : \&glob_expand_error_handler_reject;
my $nodocs = is_build_profile_active('nodoc') || get_buildoption('nodoc') ? 1 : 0;
diff --git a/dh_installinit b/dh_installinit
index 1a049279..72ea2214 100755
--- a/dh_installinit
+++ b/dh_installinit
@@ -233,7 +233,7 @@ init(options => {
"no-enable" => \$dh{NO_ENABLE},
});
-# PROMISE: DH NOOP WITHOUT service tmpfile default upstart init init.d tmp(usr/lib/tmpfiles.d) tmp(etc/tmpfiles.d)
+# PROMISE: DH NOOP WITHOUT service tmpfile default upstart init init.d tmp(usr/lib/tmpfiles.d) tmp(etc/tmpfiles.d) cli-options(--init-script|-d|--remove-d|-o|--only-scripts)
my %snippet_options = ('snippet-order' => 'service');
@@ -354,6 +354,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
# the parameters to pass to update-rc.d. If not set,
# we have to say "defaults".
my $params = 'defaults';
+ my $update_rcd_params = compat(11) ? '' : '--skip-systemd-native ';
if ($dh{NO_ENABLE}) {
$params = 'defaults-disabled';
addsubstvar($package, "misc:Depends", "init-system-helpers (>= 1.51)");
@@ -369,29 +370,47 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
if ($dh{RESTART_AFTER_UPGRADE}) {
# update-rc.d, and restart (or
# start if new install) script
- autoscript($package,"postinst", "postinst-init-restart",
- { 'SCRIPT' => $script, 'INITPARMS' => $params, 'ERROR_HANDLER' => $dh{ERROR_HANDLER} },
+ autoscript($package, 'postinst', 'postinst-init-restart',
+ {
+ 'SCRIPT' => $script, 'INITPARMS' => $params, 'ERROR_HANDLER' => $dh{ERROR_HANDLER},
+ 'INVOKE_RCD_PARAMS' => $update_rcd_params,
+ },
\%snippet_options);
}
else {
# update-rc.d, and start script
- autoscript($package,"postinst", "postinst-init",
- { 'SCRIPT' => $script, 'INITPARMS' => $params, 'ERROR_HANDLER' => $dh{ERROR_HANDLER} },
+ autoscript($package, 'postinst', 'postinst-init',
+ {
+ 'SCRIPT' => $script, 'INITPARMS' => $params, 'ERROR_HANDLER' => $dh{ERROR_HANDLER},
+ 'INVOKE_RCD_PARAMS' => $update_rcd_params,
+ },
\%snippet_options);
}
if ($dh{R_FLAG} || $dh{RESTART_AFTER_UPGRADE}) {
# stops script only on remove
- autoscript($package,"prerm","prerm-init-norestart",
- { 'SCRIPT' => $script, 'ERROR_HANDLER' => $dh{ERROR_HANDLER} },
+ autoscript($package, 'prerm', 'prerm-init-norestart',
+ {
+ 'SCRIPT' => $script, 'ERROR_HANDLER' => $dh{ERROR_HANDLER},
+ 'INVOKE_RCD_PARAMS' => $update_rcd_params,
+ },
\%snippet_options);
}
else {
# always stops script
- autoscript($package,"prerm","prerm-init",
- { 'SCRIPT' => $script, 'ERROR_HANDLER' => $dh{ERROR_HANDLER} },
+ autoscript($package, 'prerm', 'prerm-init',
+ {
+ 'SCRIPT' => $script, 'ERROR_HANDLER' => $dh{ERROR_HANDLER},
+ 'INVOKE_RCD_PARAMS' => $update_rcd_params,
+ },
\%snippet_options);
}
+ # The --skip-systemd-native option requires
+ # init-system-helpers (>= 1.54) and since we need it
+ # from prerm we need init-system-helpers to have been
+ # unpacked before the package is being unpacked.
+ addsubstvar($package, 'misc:Pre-Depends', 'init-system-helpers (>= 1.54~)')
+ if $update_rcd_params !~ m/^\s*$/;
}
else {
# just update-rc.d
diff --git a/dh_installinitramfs b/dh_installinitramfs
index c6c9cb82..7cfb1cbb 100755
--- a/dh_installinitramfs
+++ b/dh_installinitramfs
@@ -60,7 +60,7 @@ instances of the same text to be added to maintainer scripts.
init();
-# PROMISE: DH NOOP WITHOUT initramfs-hook tmp(usr/share/initramfs-tools/hooks)
+# PROMISE: DH NOOP WITHOUT initramfs-hook tmp(usr/share/initramfs-tools/hooks) cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp = tmpdir($package);
@@ -70,11 +70,10 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
if ($hook_script ne '') {
install_dir($hook_dir);
- install_file($hook_script, "${hook_dir}/${package}");
+ install_prog($hook_script, "${hook_dir}/${package}");
$has_hooks = 1;
} elsif (-d $hook_dir and not is_empty_dir($hook_dir)) {
$has_hooks = 1;
-
}
if ($has_hooks && ! $dh{NOSCRIPTS}) {
@@ -91,4 +90,8 @@ L<initramfs-tools(8)>
This program is a part of debhelper.
+=head1 AUTHOR
+
+Niels Thykier <niels@thykier.net>
+
=cut
diff --git a/dh_installlogcheck b/dh_installlogcheck
index 9b8473e8..bf1f779d 100755
--- a/dh_installlogcheck
+++ b/dh_installlogcheck
@@ -58,7 +58,7 @@ use the specified name instead of that of the package.
init();
-# PROMISE: DH NOOP WITHOUT logcheck.cracking logcheck.violations logcheck.violations.ignore logcheck.ignore.workstation logcheck.ignore.server logcheck.ignore.paranoid
+# PROMISE: DH NOOP WITHOUT logcheck.cracking logcheck.violations logcheck.violations.ignore logcheck.ignore.workstation logcheck.ignore.server logcheck.ignore.paranoid cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installlogrotate b/dh_installlogrotate
index ca561bd5..fc3d60a5 100755
--- a/dh_installlogrotate
+++ b/dh_installlogrotate
@@ -38,7 +38,7 @@ as the package name.
init();
-# PROMISE: DH NOOP WITHOUT logrotate
+# PROMISE: DH NOOP WITHOUT logrotate cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installman b/dh_installman
index 8fabf88b..3a5b5c68 100755
--- a/dh_installman
+++ b/dh_installman
@@ -25,9 +25,9 @@ pages into the correct locations in package build directories.
In compat 10 and earlier, this program was primarily for when
upstream's build system does not properly install them as a part of
its install step (or it does not have an install step). In compat 11
-and later, it supports the same features of L<dh_install(1)> and
-has the advantage that it respects the B<nodoc> build profile (unlike
-L<dh_install(1)>).
+and later, it also supports the default searchdir plus --sourcedir
+like dh_install(1) and has the advantage that it respects the nodoc
+build profile (unlike dh_install(1)).
Even if you prefer to use L<dh_install(1)> for installing the manpages,
B<dh_installman> can still be useful for converting the manpage encoding
@@ -140,7 +140,7 @@ init(options => {
});
-# PROMISE: DH NOOP WITHOUT pkgfile-logged(manpages) tmp(usr/share/man)
+# PROMISE: DH NOOP WITHOUT pkgfile-logged(manpages) tmp(usr/share/man) cli-options()
my (@sofiles, @sodests);
my @all_packages = getpackages();
@@ -272,7 +272,10 @@ on_items_in_parallel(\@all_packages, sub {
});
# Now utf-8 conversion.
-if (defined `man --version`) {
+my $has_man_recode = 0;
+$has_man_recode = 1 if has_man_db_tool('man-recode');
+
+if ($has_man_recode || has_man_db_tool('man')) {
my (@manpages_to_reencode, @issues);
for my $package (@{$dh{DOPACKAGES}}) {
next if is_udeb($package);
@@ -296,19 +299,7 @@ if (defined `man --version`) {
}
}
if (@manpages_to_reencode) {
- on_items_in_parallel(\@manpages_to_reencode, sub {
- for my $manpage (@_) {
- my $manpage_tmp = "${manpage}.dh-new";
- my $manpage_cmd = ($manpage =~ m{^/}) ? $manpage : "./${manpage}";
- doit({ stdout => $manpage_tmp }, 'man', '-l', '--recode', 'UTF-8', $manpage_cmd);
- # recode uncompresses compressed pages
- my $orig = $manpage;
- rm_files($orig) if $manpage =~ s/\.(gz|Z)$//;
- rename_path($manpage_tmp, $manpage);
- }
- # Bulk reset permissions of all re-encoded files
- xargs(\@_, 'chmod', '0644', '--');
- });
+ on_items_in_parallel(\@manpages_to_reencode, \&reencode_manpages);
}
} else {
# Should only occur during debhelper building itself (to avoid a B-D on man-db).
@@ -359,6 +350,38 @@ sub find_so_man {
}
}
+sub has_man_db_tool {
+ my ($tool) = @_;
+ open(my $old_stderr, '>&', *STDERR) or error("dup(STDERR, tmp_fd): $!");
+ open(*STDERR, '>', '/dev/null') or error("re-open stderr as /dev/null: $!");
+
+ my $res = defined(`$tool --version`);
+ open(*STDERR, '>&', $old_stderr) or error("dup(tmp_fd, STDERR): $!");
+ close($old_stderr);
+ return $res;
+}
+
+sub reencode_manpages {
+ my (@manpages) = @_;
+ if ($has_man_recode) {
+ xargs(\@manpages, 'man-recode', '--to-code', 'UTF-8', '--suffix', '.dh-new');
+ }
+ for my $manpage (@manpages) {
+ my $manpage_tmp = "${manpage}.dh-new";
+ $manpage_tmp =~ s/\.(gz|Z)\.dh-new$/.dh-new/;
+ if (not $has_man_recode) {
+ my $manpage_cmd = ($manpage =~ m{^/}) ? $manpage : "./${manpage}";
+ doit({ stdout => $manpage_tmp }, 'man', '-l', '--recode', 'UTF-8', $manpage_cmd);
+ }
+ # recode uncompresses compressed pages
+ my $orig = $manpage;
+ rm_files($orig) if $manpage =~ s/\.(gz|Z)$//;
+ rename_path($manpage_tmp, $manpage);
+ }
+ # Bulk reset permissions of all re-encoded files
+ xargs(\@manpages, 'chmod', '0644', '--');
+}
+
=head1 SEE ALSO
L<debhelper(7)>
diff --git a/dh_installmenu b/dh_installmenu
index 475b58f6..c30e90f8 100755
--- a/dh_installmenu
+++ b/dh_installmenu
@@ -55,7 +55,7 @@ Do not modify F<postinst>/F<postrm> scripts.
init();
-# PROMISE: DH NOOP WITHOUT menu menu-method
+# PROMISE: DH NOOP WITHOUT menu menu-method cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installmime b/dh_installmime
index eb447869..5ad61903 100755
--- a/dh_installmime
+++ b/dh_installmime
@@ -41,7 +41,7 @@ directory.
init();
-# PROMISE: DH NOOP WITHOUT mime sharedmimeinfo
+# PROMISE: DH NOOP WITHOUT mime sharedmimeinfo cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installmodules b/dh_installmodules
index fea1d09d..26d98df8 100755
--- a/dh_installmodules
+++ b/dh_installmodules
@@ -77,7 +77,7 @@ sub find_kernel_modules {
return unless -d $searchdir;
find(sub {
- if (/\.k?o$/) {
+ if (m/ [.]k?o (?:[.](?:[gx]z|bz2))? $/x) {
my ($kvers)=$File::Find::dir=~m!lib/modules/([^/]+)/!;
if (! defined $kvers || ! length $kvers) {
warning("Cannot determine kernel version for module $File::Find::name");
@@ -91,7 +91,7 @@ sub find_kernel_modules {
return sort(keys(%versions));
}
-# PROMISE: DH NOOP WITHOUT modprobe tmp(lib/modules)
+# PROMISE: DH NOOP WITHOUT modprobe tmp(lib/modules) cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installpam b/dh_installpam
index 256f7ab8..54f670a0 100755
--- a/dh_installpam
+++ b/dh_installpam
@@ -47,7 +47,7 @@ using the package name.
init();
-# PROMISE: DH NOOP WITHOUT pam
+# PROMISE: DH NOOP WITHOUT pam cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installppp b/dh_installppp
index 9eb09051..68784a6b 100755
--- a/dh_installppp
+++ b/dh_installppp
@@ -51,7 +51,7 @@ as the package name.
init();
-# PROMISE: DH NOOP WITHOUT ppp.ip-up ppp.ip-down
+# PROMISE: DH NOOP WITHOUT ppp.ip-up ppp.ip-down cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installsystemd b/dh_installsystemd
index bed680b1..48a0e787 100755
--- a/dh_installsystemd
+++ b/dh_installsystemd
@@ -82,12 +82,19 @@ should not be started.
=item B<--name=>I<name>
-Install the service file as I<name.service> instead of the default
-filename I<package.service>. When this parameter is used,
-B<dh_installsystemd> looks for and installs files named
-F<debian/package.name.service> instead of the usual
-F<debian/package.service>. Moreover, maintainer scripts are only
-generated for units that match the given I<name>.
+This option controls several things.
+
+It changes the name that B<dh_installsystemd> uses when it looks for
+maintainer provided systemd unit files as listed in the L</FILES>
+section. As an example, B<dh_installsystemd --name foo> will look for
+F<<< I<debian/package.>B<< I<foo> >>I<.service> >>> instead of
+F<< I<debian/package.service> >>). These unit files are installed as F<<
+I<name.unit-extension> >> (in the example, it would be installed as
+F<<< B<< I<foo> >>I<.service> >>>).
+
+Furthermore, if no unit files are passed explicitly as command line
+arguments, B<dh_installsystemd> will only act on unit files called
+I<name> (rather than all unit files found in the package).
=item B<--restart-after-upgrade>
@@ -122,6 +129,15 @@ B<Note> that this option does not affect whether the services are
enabled. Please remember to also use B<--no-enable> if the services
should not be enabled.
+=item S<B<unit file> ...>
+
+Only process and generate maintscripts for the installed unit files
+with the (base)name I<unit file>.
+
+Note: B<dh_installsystemd> will still install unit files from
+F<debian/> but it will not generate any maintscripts for them unless
+they are explicitly listed in S<B<unit file> ...>
+
=back
=head1 NOTES
@@ -238,7 +254,7 @@ sub list_installed_units {
}
-# PROMISE: DH NOOP WITHOUT tmp(lib/systemd/system) tmp(usr/lib/tmpfiles.d) tmp(etc/tmpfiles.d) mount path service socket target tmpfile timer
+# PROMISE: DH NOOP WITHOUT tmp(lib/systemd/system) tmp(usr/lib/tmpfiles.d) tmp(etc/tmpfiles.d) mount path service socket target tmpfile timer cli-options()
# Install package maintainer supplied unit files
@@ -347,7 +363,10 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
# Extract unit aliases.
push @{$aliases{$unit}}, $_ for extract_key($path, 'Alias');
- if (! grep { has_sysv_equivalent($tmpdir, $_) } ($unit, @{$aliases{$unit}})) {
+ # In compat 11 (and earlier), dh_installinit will handle services with
+ # a sysv-equivalent service. In compat 12, dh_installsystemd will
+ # take care of it.
+ if (not compat(11) or not grep { has_sysv_equivalent($tmpdir, $_) } ($unit, @{$aliases{$unit}})) {
push @start_units, $unit;
}
@@ -370,25 +389,34 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
}
if (@start_units) {
- my $units = { 'UNITFILES' => join(' ', @start_units) };
+ my $replace = { 'UNITFILES' => join(' ', @start_units) };
if ($dh{RESTART_AFTER_UPGRADE}) {
- my $snippet = $dh{NO_START} ? 'postinst-systemd-restartnostart' : 'postinst-systemd-restart';
- autoscript($package, 'postinst', $snippet, $units, \%options);
+ my $snippet;
+ if ($dh{NO_START}) {
+ $snippet = 'postinst-systemd-restartnostart';
+ $replace->{RESTART_ACTION} = 'try-restart';
+ } else {
+ $snippet = 'postinst-systemd-restart';
+ $replace->{RESTART_ACTION} = 'restart';
+ }
+ autoscript($package, 'postinst', $snippet, $replace, \%options);
} elsif (!$dh{NO_START}) {
# (stop|start) service (before|after) upgrade
- autoscript($package, 'postinst', 'postinst-systemd-start', $units, \%options);
+ autoscript($package, 'postinst', 'postinst-systemd-start', $replace, \%options);
}
- autoscript($package, 'postrm', 'postrm-systemd-reload-only', $units, \%options);
-
if ($dh{R_FLAG} || $dh{RESTART_AFTER_UPGRADE}) {
# stop service only on remove
- autoscript($package, 'prerm', 'prerm-systemd-restart', $units, \%options);
+ autoscript($package, 'prerm', 'prerm-systemd-restart', $replace, \%options);
} elsif (!$dh{NO_START}) {
# always stop service
- autoscript($package, 'prerm', 'prerm-systemd', $units, \%options);
+ autoscript($package, 'prerm', 'prerm-systemd', $replace, \%options);
}
+
+ # Run this with "default" order so it is always after other
+ # service related autosnippets.
+ autoscript($package, 'postrm', 'postrm-systemd-reload-only', $replace);
}
}
diff --git a/dh_installsystemduser b/dh_installsystemduser
new file mode 100755
index 00000000..cd9ee12c
--- /dev/null
+++ b/dh_installsystemduser
@@ -0,0 +1,270 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installsystemduser - install systemd unit files
+
+=cut
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_installsystemduser> [S<I<debhelper options>>] [B<--no-enable>] [B<--name=>I<name>] [S<I<unit file> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_installsystemduser> finds the systemd user instance service files
+installed by a package and generates F<postinst>, and F<prerm> code
+blocks for enabling and disabling the corresponding systemd user
+instance services, when the package is installed, updated, or
+removed. These snippets are added to the maintainer scripts by
+L<dh_installdeb(1)>.
+
+L<deb-systemd-helper(1)> is used to enable and disable the systemd
+units, thus it is not necessary that the machine actually runs systemd
+during package installation time, enabling happens on all machines.
+
+B<dh_installsystemduser> operates on all user instance unit files
+installed by a package. For only generating blocks for specific unit
+files, pass them as arguments. Specific unit files can be excluded
+from processing using the B<-X> common L<debhelper(1)> option.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.user.path,
+ debian/I<package>@.user.path,
+ debian/I<package>.user.service,
+ debian/I<package>@.user.service,
+ debian/I<package>.user.socket,
+ debian/I<package>@.user.socket,
+ debian/I<package>.user.target,
+ debian/I<package>@.user.target,
+ debian/I<package>.user.timer,
+ debian/I<package>@.user.timer
+
+If any of those files exists, they are installed into
+F<usr/lib/systemd/user/> in the package build directory removing the
+F<.user> file name part.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--name=>I<name>
+
+Install the service file as I<name.service> instead of the default
+filename I<package.service>. When this parameter is used,
+B<dh_installsystemd> looks for and installs files named
+F<debian/package.name.user.service> instead of the usual
+F<debian/package.user.service>. Moreover, maintainer scripts are only
+generated for units that match the given I<name>.
+
+=item B<--no-enable>
+
+Disable the service(s) on purge, but do not enable them on install.
+
+=back
+
+=head1 NOTES
+
+This command is not idempotent. L<dh_prep(1)> should be called between
+invocations of this command (with the same arguments). Otherwise, it
+may cause multiple instances of the same text to be added to
+maintainer scripts.
+
+=cut
+
+# PROMISE: DH NOOP WITHOUT tmp(usr/lib/systemd/user) user.service
+
+init(options => {
+ "no-enable" => \$dh{NO_ENABLE},
+});
+
+sub quote {
+ # Add single quotes around the argument.
+ return '\'' . $_[0] . '\'';
+}
+
+sub uniq {
+ my %seen;
+ return grep { !$seen{$_}++ } @_;
+}
+
+sub contains_install_section {
+ my ($unit_path) = @_;
+
+ open(my $fh, '<', $unit_path) or error("Cannot open($unit_path) to check for [Install]: $!");
+
+ while (my $line = <$fh>) {
+ chomp($line);
+ return 1 if $line =~ /^\s*\[Install\]$/i;
+ }
+ close($fh);
+ return 0;
+}
+
+sub install_user_unit {
+ my ($package, $name, $suffix) = @_;
+
+ my $tmpdir = tmpdir($package);
+ my $path = "$tmpdir/usr/lib/systemd/user";
+ my $unit = pkgfile($package, "user.$suffix");
+ return if $unit eq '';
+
+ install_dir($path);
+ install_file($unit, "$path/$name.$suffix");
+}
+
+# Extracts the directive values from a unit file. Handles repeated
+# directives in the same unit file. Assumes values can only be
+# composed of lists of unit names. This is good enough for the 'Also='
+# and 'Alias=' directives handled here.
+sub extract_key {
+ my ($unit_path, $key) = @_;
+ my @values;
+
+ open(my $fh, '<', $unit_path) or error("Cannot open($unit_path): $!");
+
+ while (my $line = <$fh>) {
+ chomp($line);
+
+ # Since unit names can't have whitespace in systemd, simply
+ # use split and strip any leading/trailing quotes. See
+ # systemd-escape(1) for examples of valid unit names.
+ if ($line =~ /^\s*$key=(.+)$/i) {
+ for my $value (split(/\s+/, $1)) {
+ $value =~ s/^(["'])(.*)\g1$/$2/;
+ push @values, $value;
+ }
+ }
+ }
+
+ close($fh);
+ return @values;
+}
+
+sub list_installed_user_units {
+ my ($tmpdir, $aliases) = @_;
+
+ my $lib_systemd_user = "$tmpdir/usr/lib/systemd/user";
+ my @installed;
+
+ return unless -d $lib_systemd_user;
+ opendir(my $dh, $lib_systemd_user) or error("Cannot opendir($lib_systemd_user): $!");
+
+ foreach my $name (readdir($dh)) {
+ my $path = "$lib_systemd_user/$name";
+ next unless -f $path;
+ if (-l $path) {
+ my $dest = basename(readlink($path));
+ $aliases->{$dest} //= [ ];
+ push @{$aliases->{$dest}}, $name;
+ } else {
+ push @installed, $name;
+ }
+ }
+
+ closedir($dh);
+ return @installed;
+}
+
+# Install package maintainer provided unit files.
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmpdir = tmpdir($package);
+
+ # unit file name
+ my $name = $dh{NAME} // $package;
+
+ for my $type (qw(service target socket path timer)) {
+ install_user_unit($package, $name, $type);
+ install_user_unit("${package}@", "${name}@", $type);
+ }
+}
+
+# Generate postinst and prerm code blocks to enable and disable units
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my (@args, @enable_units, %aliases);
+
+ my $tmpdir = tmpdir($package);
+ my @units = list_installed_user_units($tmpdir, \%aliases);
+
+ # Handle either only the unit files which were passed as arguments
+ # or all unit files that are installed in this package.
+ if (@ARGV) {
+ @args = @ARGV;
+ }
+ elsif ($dh{NAME}) {
+ # Treat --name flag as if the corresponding units were passed
+ # in the command line.
+ @args = grep /(^|\/)$dh{NAME}\.(service|target|socket|path|timer)$/, @units;
+ }
+ else {
+ @args = @units;
+ }
+
+ # Support excluding units via the -X debhelper common option.
+ foreach my $x (@{$dh{EXCLUDE}}) {
+ @args = grep !/(^|\/)$x$/, @args;
+ }
+
+ # This hash prevents us from looping forever in the following
+ # while loop. An actual real-world example of such a loop is
+ # systemd's systemd-readahead-drop.service, which contains
+ # Also=systemd-readahead-collect.service, and that file in turn
+ # contains Also=systemd-readahead-drop.service, thus forming an
+ # endless loop.
+ my %seen;
+
+ # Must use while and shift because the loop alters the list.
+ while (@args) {
+ my $name = shift @args;
+ my $path = "${tmpdir}/usr/lib/systemd/user/${name}";
+
+ error("User unit file \"$name\" not found in package \"$package\".") if ! -f $path;
+
+ # Skip template service files. Enabling or disabling those
+ # services without specifying the instance is not useful.
+ next if ($name =~ /\@/);
+
+ # Handle all unit files specified via Also= explicitly. This
+ # is not necessary for enabling, but for disabling, as we
+ # cannot read the unit file when disabling as it has already
+ # been deleted.
+ push @args, $_ for grep { !$seen{$_}++ } extract_key($path, 'Also');
+
+ push @enable_units, $name if contains_install_section($path);
+ }
+
+ @enable_units = map { quote($_) } sort(uniq(@enable_units));
+
+ if (@enable_units) {
+ # The generated maintainer script code blocks use the --user
+ # option that was added to deb-systemd-helper in version 1.52.
+ addsubstvar($package, 'misc:Depends', 'init-system-helpers', ">= 1.52");
+
+ my $postinst = $dh{NO_ENABLE} ? 'postinst-systemd-user-dont-enable' : 'postinst-systemd-user-enable';
+ foreach my $unit (@enable_units) {
+ autoscript($package, 'postinst', $postinst, { 'UNITFILE' => $unit });
+ }
+ autoscript($package, 'postrm', 'postrm-systemd-user', { 'UNITFILES' => join(' ', @enable_units) });
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>, L<dh_installsystemd(1)>, L<deb-systemd-helper(1)>
+
+=head1 AUTHORS
+
+pkg-systemd-maintainers@lists.alioth.debian.org
+
+=cut
diff --git a/dh_installudev b/dh_installudev
index 0c630860..12610ac0 100755
--- a/dh_installudev
+++ b/dh_installudev
@@ -60,7 +60,9 @@ instances of the same text to be added to maintainer scripts.
=cut
-init();
+init(options => {
+ "priority=s" => \$dh{PRIORITY},
+});
# The priority used to look like z60_;
# we need to calculate that old value to handle
@@ -81,7 +83,7 @@ if ($dh{PRIORITY}) {
$old_priority.="_";
}
-# PROMISE: DH NOOP WITHOUT udev
+# PROMISE: DH NOOP WITHOUT udev cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installwm b/dh_installwm
index 280a6b1e..b57a40f5 100755
--- a/dh_installwm
+++ b/dh_installwm
@@ -68,7 +68,9 @@ instances of the same text to be added to maintainer scripts.
=cut
-init();
+init(options => {
+ "priority=s" => \$dh{PRIORITY},
+});
if (! defined $dh{PRIORITY}) {
$dh{PRIORITY}=20;
@@ -84,7 +86,7 @@ if (@ARGV) {
my $nodocs = is_build_profile_active('nodoc') || get_buildoption('nodoc') ? 1 : 0;
-# PROMISE: DH NOOP WITHOUT wm
+# PROMISE: DH NOOP WITHOUT wm cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
diff --git a/dh_installxfonts b/dh_installxfonts
index cee3c279..c16659f7 100755
--- a/dh_installxfonts
+++ b/dh_installxfonts
@@ -49,7 +49,7 @@ way.
init();
-# PROMISE: DH NOOP WITHOUT tmp(usr/share/fonts/X11)
+# PROMISE: DH NOOP WITHOUT tmp(usr/share/fonts/X11) cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
@@ -65,9 +65,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
if (@fontdirs) {
# Figure out what commands the postinst and postrm will need
# to call.
- my @cmds;
- my @cmds_postinst;
- my @cmds_postrm;
+ my (@cmds, @cmds_postinst, @cmds_postrm);
# Sort items for reproducible binary package contents.
foreach my $f (sort @fontdirs) {
# This must come before update-fonts-dir.
@@ -85,11 +83,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
autoscript($package, "postrm", "postrm-xfonts",
{ 'CMDS' => join(";", @cmds, @cmds_postrm) });
- if (@cmds_postrm) {
- addsubstvar($package, "misc:Depends", "xfonts-utils", ">= 1:7.5+2");
- } else {
- addsubstvar($package, "misc:Depends", "xfonts-utils");
- }
+ addsubstvar($package, "misc:Depends", "xfonts-utils");
}
}
diff --git a/dh_lintian b/dh_lintian
index fb3bdbf3..9fb2ed4c 100755
--- a/dh_lintian
+++ b/dh_lintian
@@ -42,7 +42,7 @@ overrides for the source package.
init();
-# PROMISE: DH NOOP WITHOUT lintian-overrides
+# PROMISE: DH NOOP WITHOUT lintian-overrides cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
next if is_udeb($package);
diff --git a/dh_makeshlibs b/dh_makeshlibs
index 03f6a7c3..5ccfac07 100755
--- a/dh_makeshlibs
+++ b/dh_makeshlibs
@@ -26,6 +26,21 @@ it finds shared libraries. Since debhelper 9.20151004, this is done via a
dpkg trigger. In older versions of debhelper, B<dh_makeshlibs> would
generate a maintainer script for this purpose.
+Since debhelper 12.3, B<dh_makeshlibs> will by default add an additional
+I<udeb> line for udebs in the shlibs file, when the udeb has the same
+name as the deb followed by a "-udeb" suffix (e.g. if the deb is called
+"libfoo1", then debhelper will auto-detect the udeb if it is named
+"libfoo1-udeb"). Please use the B<--add-udeb> and B<--no-add-udeb> options
+below when this auto-detection is insufficient.
+
+If you previously used B<--add-udeb> and is considering to migrate to
+using the auto-detection new auto-detection feature in 12.3, then
+please remember to test that the resulting F<DEBIAN/shlibs> files are
+as expected. There are some known corner cases, where the
+auto-detection is insufficient. These include when the udeb contains
+library files from multiple regular deb packages or when the packages
+do not follow the expected naming convention.
+
=head1 FILES
=over 4
@@ -146,6 +161,21 @@ from being treated as shared libraries.
Create an additional line for udebs in the shlibs file and use I<udeb> as the
package name for udebs to depend on instead of the regular library package.
+This is option is only useful for special cases such as when debhelper
+cannot auto-detect package name of the udeb package, when the udeb
+will contain libraries from multiple deb packages, or when the udeb
+contains libraries B<not> present in the deb package.
+
+=item B<--no-add-udeb>
+
+Do not add any udeb lines to the shlibs file. This can be used to disable the
+default auto-detection of udebs.
+
+This may be useful in case you do not want a shlibs file at all for the udeb
+because no package will depend on it. E.g. because adding a udeb package
+for the library was "overkill" and the library is embedded in a different
+udeb package.
+
=item B<--> I<params>
Pass I<params> to L<dpkg-gensymbols(1)>.
@@ -177,22 +207,69 @@ Generates a shlibs file that looks something like:
=cut
+my ($shlibs_udeb, %known_udeb_solibs);
+
init(options => {
"m=s", => \$dh{M_PARAMS},
"major=s" => \$dh{M_PARAMS},
"version-info:s" => \$dh{V_FLAG},
- "add-udeb=s" => \$dh{SHLIBS_UDEB},
+ "add-udeb=s" => \$shlibs_udeb,
+ "no-add-udeb" => sub { $shlibs_udeb = ''; },
});
my $ok=1;
+sub _all_so_files {
+ my ($package, $root_dir) = @_;
+ return if not -d $root_dir;
+ my (@all_so_files, @so_file_data);
+ my $objdump = cross_command($package, "objdump");
+ require File::Find;
+ File::Find::find(sub {
+ # Lazy loading of File::Find makes perl think that File::Find::dir is only used once
+ # and we might have typo'ed something
+ no warnings qw(once);
+ # Only real/regular files
+ -l && return;
+ -f _ || return;
+ my $path = "$File::Find::dir/$_";
+ return if excludefile($path);
+ return if not is_so_or_exec_elf_file($_);
+ push(@all_so_files, $path);
+ }, $root_dir);
+
+ @all_so_files = sort(@all_so_files);
+ for my $lib_file (@all_so_files) {
+ my ($library, $major, $ret);
+ if (compat(10)) {
+ # In compat 10, we silently ignored failing exit codes
+ # from objdump. Its horrible, but such was compat 10.
+ $ret = `$objdump -p "$lib_file"`;
+ chomp($ret);
+ } else {
+ $ret = qx_cmd($objdump, '-p', $lib_file);
+ }
+ if ($ret=~m/\s+SONAME\s+(.*)\.so\.(.*)/) {
+ # proper soname format
+ $library=$1;
+ $major=$2;
+ } elsif ($ret=~m/\s+SONAME\s+(.*)-(\d.*)\.so/) {
+ # idiotic crap soname format
+ $library=$1;
+ $major=$2;
+ } elsif ($ret !~ m/\s+SONAME\s+(?:\S)/) {
+ next;
+ }
+ push(@so_file_data, [$lib_file, $library, $major,]);
+ };
+ return @so_file_data;
+}
+
foreach my $package (@{$dh{DOPACKAGES}}) {
next if is_udeb($package);
my $tmp=tmpdir($package);
- my $objdump = cross_command($package, "objdump");
-
my (%seen, $unversioned_so);
my $need_ldconfig = 0;
# Note that since each package can have a shlibs file independently of
@@ -209,28 +286,31 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
# packages. This may have a few false positives, which is ok,
# because only if we can get a library name and a major number from
# objdump is anything actually added.
- my $exclude='';
- my (@udeb_lines, @deb_lines, @lib_files);
- if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') {
- $exclude="! \\( $dh{EXCLUDE_FIND} \\) ";
+ my (@udeb_lines, @deb_lines, @lib_files, $udeb_name);
+ if (defined($shlibs_udeb)) {
+ $udeb_name = $shlibs_udeb if $shlibs_udeb ne '';
+ } else {
+ my $guessed_udeb = "${package}-udeb";
+ $udeb_name = $guessed_udeb if is_known_package($guessed_udeb) and is_udeb($guessed_udeb);
}
- open (FIND, "test -d $tmp && find $tmp -type f \\( -name '*.so' -or -name '*.so.*' \\) $exclude | LC_ALL=C sort |");
- while (my $lib_file = <FIND>) {
- my ($library, $major);
- chomp($lib_file);
- next if not is_so_or_exec_elf_file($lib_file);
- push(@lib_files, $lib_file) if compat(11);
- my $ret = compat(10) ? `$objdump -p "$lib_file"` : qx_cmd($objdump, '-p', $lib_file);
- if ($ret=~m/\s+SONAME\s+(.*)\.so\.(.*)/) {
- # proper soname format
- $library=$1;
- $major=$2;
+ # If there is a udeb (which we assume there never is under the "noudeb" build-profile)
+ # then check it for libraries.
+ if (defined($udeb_name) and not is_build_profile_active('noudeb')) {
+ for my $so_data (_all_so_files($udeb_name, tmpdir($udeb_name))) {
+ my (undef, $library, $major) = @{$so_data};
+ $major = $dh{M_PARAMS} if defined($dh{M_PARAMS}) and $dh{M_PARAMS} ne '';
+ next if not defined($library) or not defined($major);
+ $known_udeb_solibs{$udeb_name}{"${library}\x1f${major}"} = 1;
}
- elsif ($ret=~m/\s+SONAME\s+(.*)-(\d.*)\.so/) {
- # idiotic crap soname format
- $library=$1;
- $major=$2;
- } elsif ($ret =~ m/\s+SONAME\s+(?:\S)/) {
+ # If the udeb contains no SO files but there was an explicit --add-udeb, then
+ # something is wrong.
+ error("The udeb $shlibs_udeb does not contain any shared libraries but --add-udeb=$shlibs_udeb was passed!?")
+ if defined($shlibs_udeb) and not exists($known_udeb_solibs{$udeb_name});
+ }
+ for my $so_data (_all_so_files($package, $tmp)) {
+ my ($lib_file, $library, $major) = @{$so_data};
+ push(@lib_files, $lib_file) if compat(11);
+ if (not defined($library)) {
$unversioned_so = 1;
push(@lib_files, $lib_file) if not compat(11);
}
@@ -278,16 +358,37 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
if (! $seen{$line}) {
$seen{$line}=1;
push(@deb_lines, $line);
- if (defined($dh{SHLIBS_UDEB}) && $dh{SHLIBS_UDEB} ne '') {
+ if (defined($udeb_name)) {
my $udeb_deps = $deps;
- $udeb_deps =~ s/\Q$package\E/$dh{SHLIBS_UDEB}/e;
+ $udeb_deps =~ s/\Q$package\E/$udeb_name/e;
$line="udeb: $library $major $udeb_deps";
push @udeb_lines, $line;
+ # Track which libraries have been used in the udeb to ensure
+ # we spot missing libraries.
+ delete($known_udeb_solibs{$udeb_name}{"${library}\x1f${major}"})
+ if defined($udeb_name);
}
}
}
}
- close FIND;
+
+ if (defined($udeb_name) and not $shlibs_udeb) {
+ my $issues = 0;
+ for my $lib_key (sort(keys(%{$known_udeb_solibs{$udeb_name}}))) {
+ my ($library, $major) = split(qr/\x1f/, $lib_key);
+ warning("$udeb_name contains SO library $library (version $major) but $package does not contain a similar library!?");
+ $issues = 1;
+ }
+ if ($issues) {
+ $ok = 0;
+ warning("Rejecting the generated shlibs file for $udeb_name!");
+ warning("Hint: Either add the missing libraries to $package, remove them from $udeb_name, or");
+ warning("Hint: (if this difference is expected) pass \"--add-udeb=$udeb_name\" to dh_makeshlibs.");
+ warning("Hint: In the latter case, you *may* also need to combine it with \"-p$package\"");
+ warning("Hint: Alternatively, if you have merged the shared lib package into $udeb_name and it has no");
+ warning("Hint: other packages need to know of this library, then use \"--no-add-udeb\"");
+ }
+ }
if ($shlibs_file) {
install_dir("$tmp/DEBIAN");
diff --git a/dh_md5sums b/dh_md5sums
index 04c7ddb8..ba8c30c0 100755
--- a/dh_md5sums
+++ b/dh_md5sums
@@ -95,7 +95,7 @@ sub generate_md5sums_file {
while (my $line = <$find_fd>) {
chomp($line);
next if excludefile($line);
- next if %{$conffiles} and exists($conffiles->{$line});
+ next if $conffiles and %{$conffiles} and exists($conffiles->{$line});
push(@files, $line);
}
close($find_fd) or error_exitcode("find -type f ! -regex './DEBIAN/.*' -printf '%P\\0'");
diff --git a/dh_missing b/dh_missing
index fb68ffa9..fd70ed7f 100755
--- a/dh_missing
+++ b/dh_missing
@@ -59,8 +59,12 @@ Wildcards without matches will be ignored.
Warn on stderr about source files not installed to somewhere.
-Note that files that are excluded from being moved via the B<-X> option are not
-warned about.
+Note that many dh-tools acting on a path will mark the path as
+installed even if it has been excluded via B<-X> or B<--exclude>.
+This is also seen when a dh-tool is acting on a directory and
+exclusion is used to ignore some files in the directory. In either
+case, this will make B<dh_missing> silently assume the excluded files
+have been handled.
This is the default in compat 12 and later.
diff --git a/dh_perl b/dh_perl
index 36637829..ad6cd6dd 100755
--- a/dh_perl
+++ b/dh_perl
@@ -73,6 +73,11 @@ init();
my $vendorlib = substr $Config{vendorlib}, 1;
my $vendorarch = substr $Config{vendorarch}, 1;
+if (is_cross_compiling()) {
+ my $incdir = perl_cross_incdir();
+ $vendorarch = substr qx/perl -I$incdir -MConfig -e 'print \$Config{vendorarch}'/, 1
+ if defined $incdir;
+}
# Cleaning the paths given on the command line
foreach (@ARGV) {
@@ -109,19 +114,26 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
}, @dirs if @dirs;
# find scripts
- find sub {
- return unless -f and (-x _ or /\.pl$/);
- if ($File::Find::dir =~ m{/usr/share/doc/}) {
- $File::Find::prune = 1 if -d _;
+ $tmp =~ tr:/:/:s;
+ $tmp =~ s{[^/]\K/$}{};
+ my $usd_dir = "$tmp/usr/share/doc";
+ my $check_script = sub {
+ if ($_ eq $usd_dir) {
+ $File::Find::prune = 1 if -d $_;
return;
}
+ return unless -f and (-x _ or /\.pl$/);
return unless open(my $fd, '<', $_);
if (read($fd, local $_, 32) and m%^#!\s*(/usr/bin/perl|/usr/bin/env\s+perl)\s%) {
$deps |= PROGRAM;
}
close($fd);
- }, $tmp;
+ };
+ find({
+ wanted => $check_script,
+ no_chdir => 1,
+ }, $tmp);
if ($deps) {
my $version="";
diff --git a/dh_shlibdeps b/dh_shlibdeps
index 09ce19fd..35a7fc48 100755
--- a/dh_shlibdeps
+++ b/dh_shlibdeps
@@ -108,6 +108,15 @@ if (defined $dh{V_FLAG}) {
}
on_pkgs_in_parallel {
+ my $is_non_statically_linked_elf_file = sub {
+ my ($file) = @_;
+ my @file_args = Debian::Debhelper::Dh_Lib::_internal_optional_file_args();
+ my $ff = qx_cmd('file', @file_args, '--brief', '-e', 'apptype', '-e', 'ascii',
+ '-e', 'encoding', '-e', 'cdf', '-e', 'compress', '-e', 'tar', $file);
+ return 1 if $ff =~ m/ELF/ && $ff !~ /statically linked/;
+ return 0;
+ };
+
foreach my $package (@_) {
my $tmp=tmpdir($package);
my $ext=pkgext($package);
@@ -128,9 +137,7 @@ on_pkgs_in_parallel {
next if $file =~ m!^\Q$tmp\E/usr/lib/debug/(lib|lib64|usr|bin|sbin|opt|dev|emul|\.build-id)/!;
# TODO this is slow, optimize. Ie, file can run once on
# multiple files..
- my $ff = qx_cmd('file', '-e', 'apptype', '-e', 'ascii', '-e', 'encoding',
- '-e', 'cdf', '-e', 'compress', '-e', 'tar', $file);
- if ($ff =~ m/ELF/ && $ff !~ /statically linked/) {
+ if ($is_non_statically_linked_elf_file->($file)) {
push @filelist, $file;
}
}
@@ -158,9 +165,7 @@ on_pkgs_in_parallel {
return if not is_so_or_exec_elf_file($fn);
# TODO this is slow, optimize. Ie, file can run once on
# multiple files..
- my $ff = qx_cmd('file', '-e', 'apptype', '-e', 'ascii', '-e', 'encoding',
- '-e', 'cdf', '-e', 'compress', '-e', 'tar', $fn);
- if ($ff =~ m/ELF/ && $ff !~ /statically linked/) {
+ if ($is_non_statically_linked_elf_file->($fn)) {
push(@filelist, $fn);
}
};
diff --git a/dh_strip b/dh_strip
index d345c696..d7bf2399 100755
--- a/dh_strip
+++ b/dh_strip
@@ -137,7 +137,7 @@ Debian policy, version 3.0.1
=cut
init(options => {
- "keep-debug" => \$dh{K_FLAG},
+ 'keep-debug|keep|k' => \$dh{K_FLAG},
'dbgsym-migration=s' => \$dh{MIGRATE_DBGSYM},
'automatic-dbgsym!' => \$dh{ENABLE_DBGSYM},
# Deprecated variants
@@ -188,7 +188,8 @@ sub testfile {
return if -d _;
# Is it a debug library in a debug subdir?
- return if $fn=~m/debug\/.*\.so/;
+ return if $fn=~m{debug/.*\.so};
+ return if $fn=~m{/guile/.*\.go$};
# Exploit the previous stat call to get the $mode, so we can check
# later if it is executable or not.
@@ -260,12 +261,15 @@ sub write_buildid_file {
sub get_file_type {
my ($file, $cache_ok) = @_;
return $file_output{$file} if $cache_ok && $file_output{$file};
- open (FILE, '-|') # handle all filenames safely
- || exec('file', '-e', 'apptype', '-e', 'ascii', '-e', 'encoding',
- '-e', 'cdf', '-e', 'compress', '-e', 'tar', $file)
- || die "can't exec file: $!";
- my $type=<FILE>;
- close FILE;
+ my @file_args = Debian::Debhelper::Dh_Lib::_internal_optional_file_args();
+ my @cmdline = ('file', @file_args, '--brief', '-e', 'apptype', '-e', 'ascii', '-e', 'encoding', '-e', 'cdf',
+ '-e', 'compress', '-e', 'tar', $file);
+
+ open(my $fd, '-|', @cmdline) // error("cannot fork+exec file: $!");
+ my $type = <$fd>;
+ close($fd) || error_exitcode(escape_shell(@cmdline));
+
+ error("file(1) gave no result for $file!?") if (not $type) ;
return $file_output{$file} = $type;
}
@@ -291,6 +295,7 @@ sub make_debug {
} else {
# For dbgsyms, we need build-id (else it will not be
# co-installable).
+ warning("Could not find the BuildID in $file");
return if $use_build_id > 1;
}
}
@@ -374,11 +379,12 @@ sub process_packages {
doit($strip, '--strip-debug', '--remove-section=.comment',
'--remove-section=.note', '--enable-deterministic-archives', $_);
}
- if (-d "$tmp/usr/lib/debug/.dwz" and ($use_build_id > 1 or $dh{DEBUGPACKAGE})) {
+ if (-d "$tmp/usr/lib/debug/.dwz" and ($use_build_id > 1 or ($dh{DEBUGPACKAGE} and $dh{DEBUGPACKAGE} ne $package))) {
my @files = glob_expand(["$tmp/usr/lib/debug/.dwz"], \&glob_expand_error_handler_reject, '*');
install_dir("$debugtmp/usr/lib/debug/.dwz");
xargs(\@files, 'cp', '--reflink=auto', "-a", XARGS_INSERT_PARAMS_HERE, "$debugtmp/usr/lib/debug/.dwz");
doit('rm', '-fr', "$tmp/usr/lib/debug/.dwz");
+ doit('rmdir', '-p', '--ignore-fail-on-non-empty', "$tmp/usr/lib/debug");
}
if ($no_auto_dbgsym and $use_build_id > 1) {
diff --git a/dh_systemd_start b/dh_systemd_start
index 04752beb..f70523c8 100755
--- a/dh_systemd_start
+++ b/dh_systemd_start
@@ -239,13 +239,24 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
# The $package and $sed parameters are always the same.
# This wrapper function makes the following logic easier to read.
my $sd_autoscript = sub {
- my ($script, $filename) = @_;
- autoscript($package, $script, $filename, { 'UNITFILES' => $unitargs });
+ my ($script, $filename, $restart_action) = @_;
+ my $replace = {
+ 'UNITFILES' => $unitargs,
+ 'RESTART_ACTION' => $restart_action // '',
+ };
+ autoscript($package, $script, $filename, $replace);
};
if ($dh{RESTART_AFTER_UPGRADE}) {
- my $snippet = "postinst-systemd-restart" . ($dh{NO_START} ? "nostart" : "");
- $sd_autoscript->("postinst", $snippet);
+ my ($snippet, $restart_action);
+ if ($dh{NO_START}) {
+ $snippet = 'postinst-systemd-restartnostart';
+ $restart_action = 'try-restart';
+ } else {
+ $snippet = 'postinst-systemd-restart';
+ $restart_action = 'restart';
+ }
+ $sd_autoscript->("postinst", $snippet, $restart_action);
} elsif (!$dh{NO_START}) {
# We need to stop/start before/after the upgrade.
$sd_autoscript->("postinst", "postinst-systemd-start");
diff --git a/dh_ucf b/dh_ucf
index 459328a4..34a51d8c 100755
--- a/dh_ucf
+++ b/dh_ucf
@@ -67,7 +67,7 @@ instances of the same text to be added to maintainer scripts.
init();
-# PROMISE: DH NOOP WITHOUT ucf
+# PROMISE: DH NOOP WITHOUT ucf cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $file=pkgfile($package,"ucf");
diff --git a/dh_usrlocal b/dh_usrlocal
index 5ee1fc28..34be4941 100755
--- a/dh_usrlocal
+++ b/dh_usrlocal
@@ -71,7 +71,7 @@ Debian policy, version 2.2
init();
-# PROMISE: DH NOOP WITHOUT tmp(usr/local)
+# PROMISE: DH NOOP WITHOUT tmp(usr/local) cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp = tmpdir($package);
diff --git a/doc/PROGRAMMING b/doc/PROGRAMMING
index bb8a35b9..ce13c53a 100644
--- a/doc/PROGRAMMING
+++ b/doc/PROGRAMMING
@@ -114,7 +114,6 @@ switch variable description
only be used inside complex_doit(), not in
doit().
-d D_FLAG you decide what this means to your program
--k K_FLAG used to turn on keeping of something
-P TMPDIR package build directory (implies only one
package is being acted on)
-u U_PARAMS will be set to a string, that is typically
@@ -129,7 +128,6 @@ switch variable description
those processed here), will apply to all
binary packages the program acts on, not just
the first
---priority PRIORITY will be set to a number
--mainpackage MAINPACKAGE controls which package is treated as the
main package to act on
--name NAME a name to use for installed files, instead of
@@ -186,7 +184,7 @@ print_and_doit([$options, ]@command)
complex_doit($command)
Pass this function a string that is a shell command, it will run it
similarly to how doit() does. You can pass more complicated commands
- to this (ie, commands involving piping redirection), however, you
+ to this (i.e. commands involving piping redirection), however, you
have to worry about things like escaping shell metacharacters.
verbose_print($message)
Pass this command a string, and it will echo it if $dh{VERBOSE} is set.
@@ -232,7 +230,7 @@ pkgfile($package, $basename)
# PROMISE: DH NOOP WITHOUT pkgfilea pkgfile-logged(pkgfileb) tmp(need/this)
The "pkgfile-logged" hint notifies dh that the helper logs these files
- via "log_intalled_files". This means dh will sometimes need to run it
+ via "log_installed_files". This means dh will sometimes need to run it
even when it is a NO OP because it has to log what it would have
installed to avoid dh_missing complaining about missing files.
@@ -250,7 +248,11 @@ autoscript($package, $scriptname, $snippetname, $substparam)
Pass parameters:
- binary package to be affected
- script to add to
- - filename of snippet
+ - filename of snippet. For testing purposes, you can set the
+ environment variable DH_AUTOSCRIPTDIR to a directory contaning
+ the snippets, which can be used to shadow the snippets provided
+ in /usr/share/debhelper/autoscripts (or to test newly added
+ snippets).
- (optional) A substitution parameter, which is one of 3 times:
* sed commands to run on the snippet. E.g. s/#PACKAGE#/$PACKAGE/
Note: Passed to the shell inside double quotes.
@@ -279,7 +281,7 @@ addsubstvar($package, $substvar, $deppackage, $verinfo, $remove)
- binary package that gets the item
- name of the substvar to add the item to
- the package that will be depended on
- - version info for the package (optional) (ie: ">= 1.1")
+ - version info for the package (optional) (i.e. ">= 1.1")
- if this last parameter is passed, the thing that would be added
is removed instead. This can be useful to ensure that a debhelper
command is idempotent. (However, we generally don't bother,
@@ -340,7 +342,7 @@ install_dh_config_file($src, $dest[, $mode])
install_dir($dir)
Create the directory denoted by the path $dir and all parent
entries as well (as needed).
- If the directory already exists, the function does not.
+ If the directory already exists, the function does nothing.
install_file($src, $dest)
Installs $src into $dest with mode 0644. The parent dir of
$dest must exist (can be created with install_dir).
@@ -361,8 +363,7 @@ reset_perm_and_owner($mode, $path...)
The file owner and group is set to "root:root". The change
is only done on the exact paths listed (i.e. it is *not*
recursive).
- To avoid issue, please pass mode as a string (i.e. '0755'
- rather than 0755).
+ Mode should be passed as an integer (not a string).
open_gz($file)
Open $file, read from it as a gzip-compressed file and return
the file handle.
@@ -382,7 +383,7 @@ log_installed_files($package, @paths)
processing of $package, which installed the files listed in
@paths. This logfile will later be used by the dh_missing helper.
Paths should be relative to the package root (i.e. the directory
- containing "debian/") and should not have superflouos segments
+ containing "debian/") and should not have superfluous segments
(e.g. avoid "foo/../bar" or "foo/./bar")
If a directory is listed, it and all paths recursively beneath is
also considered installed.
@@ -430,30 +431,47 @@ calling some functions from Dh_Lib:
insert_before($existing_command, $new_command)
Insert $new_command in sequences before $existing_command
+ Compatible with "arch-only"/"indep-only" modes if the command
+ appears only in a compatible sequence.
+
insert_after($existing_command, $new_command)
Insert $new_command in sequences after $existing_command
+ Compatible with "arch-only"/"indep-only" modes if the command
+ appears only in a compatible sequence.
+
remove_command($existing_command)
Remove $existing_command from the list of commands to run
in all sequences.
+ Cannot be used in "arch-only"/"indep-only" mode.
+
add_command($new_command, $sequence)
Add $new_command to the beginning of the specified sequence.
If the sequence does not exist, it will be created.
+ Compatible with "arch-only"/"indep-only" modes if $sequence
+ is an "-arch" or "-indep" sequence (respectively).
+
add_command_options($command, $opt1, $opt2, ...)
Append $opt1, $opt2 etc. to the list of additional options which
dh passes when running the specified $command. These options are
not relayed to debhelper commands called via $command override.
+ Cannot be used in "arch-only"/"indep-only" mode.
+
remove_command_options($command)
Clear all additional $command options previously added with
add_command_options().
+ Cannot be used in "arch-only"/"indep-only" mode.
+
remove_command_options($command, $opt1, $opt2, ...)
Remove $opt1, $opt2 etc. from the list of additional options which
dh passes when running the specified $command.
+ Cannot be used in "arch-only"/"indep-only" mode.
+
Logging helpers and dh_missing:
-------------------------------
@@ -475,8 +493,9 @@ Dh_Lib-based helpers:
* Replace "@{$dh{DOPACKAGES}}" with "getpackages()" and use
"process_pkg($package)" to determine if the helper should actually
install anything.
- * Call "log_installed_files" once per package (even once that are not to
- be acted on) with a list of source files that would be installed.
+ * Call "log_installed_files" once per package (even on the ones that
+ are not to be acted on) with a list of source files that would be
+ installed.
- You can list entire directories even if there are files under
it that are ignored.
- Please call "log_installed_files" /even if/ the list is empty for that
diff --git a/lib/Debian/Debhelper/Buildsystem.pm b/lib/Debian/Debhelper/Buildsystem.pm
index 8176c7bf..2463fb35 100644
--- a/lib/Debian/Debhelper/Buildsystem.pm
+++ b/lib/Debian/Debhelper/Buildsystem.pm
@@ -34,7 +34,7 @@ sub NAME {
return $name;
}
else {
- error("ınvalid build system class name: $class");
+ error("Invalid build system class name: $class");
}
}
@@ -122,11 +122,18 @@ sub new {
if (defined($target_bs_name)) {
my %target_opts = %opts;
+ # Let the target know it is used as a target build system.
+ # E.g. the makefile has special cases based on whether it is
+ # the main or a target build system.
delete($target_opts{'targetbuildsystem'});
+ $target_opts{'_is_targetbuildsystem'} = 1;
my $target_system =_create_buildsystem_instance($target_bs_name, 1, %target_opts);
$this->set_targetbuildsystem($target_system);
}
+ $this->{'_is_targetbuildsystem'} = $opts{'_is_targetbuildsystem'}
+ if exists($opts{'_is_targetbuildsystem'});
+
if (exists $opts{sourcedir}) {
# Get relative sourcedir abs_path (without symlinks)
my $abspath = Cwd::abs_path($opts{sourcedir});
@@ -199,6 +206,12 @@ sub set_targetbuildsystem {
$this->{'targetbuildsystem'} = $target_system
}
+sub _is_targetbuildsystem {
+ my ($this) = @_;
+ return 0 if not exists($this->{'_is_targetbuildsystem'});
+ return $this->{'_is_targetbuildsystem'};
+}
+
# Returns the target build system if it is provided
sub get_targetbuildsystem {
my $this = shift;
@@ -415,30 +428,6 @@ sub check_auto_buildable_clean_oos_buildir {
return 1;
}
-sub _cd {
- my ($this, $dir)=@_;
- verbose_print("cd $dir");
- if (! $dh{NO_ACT}) {
- chdir $dir or error("error: unable to chdir to $dir");
- }
-}
-
-sub _in_dir {
- my ($this, $dir, $code, @args) = @_;
- if ($dir ne '.') {
- my $ret;
- $this->_cd($dir);
- eval {
- $ret = $code->(@args);
- };
- my $saved_exception = $@;
- $this->_cd($this->_rel2rel($this->{cwd}, $dir));
- die $saved_exception if $saved_exception;
- return $ret;
- }
- return $code->(@args);
-}
-
sub _generic_doit_in_dir {
my ($this, $dir, $sub, @args) = @_;
my %args;
diff --git a/lib/Debian/Debhelper/Buildsystem/autoconf.pm b/lib/Debian/Debhelper/Buildsystem/autoconf.pm
index 142c27ea..37172eea 100644
--- a/lib/Debian/Debhelper/Buildsystem/autoconf.pm
+++ b/lib/Debian/Debhelper/Buildsystem/autoconf.pm
@@ -8,7 +8,7 @@ package Debian::Debhelper::Buildsystem::autoconf;
use strict;
use warnings;
-use Debian::Debhelper::Dh_Lib qw(dpkg_architecture_value sourcepackage compat);
+use Debian::Debhelper::Dh_Lib qw(%dh dpkg_architecture_value sourcepackage compat);
use parent qw(Debian::Debhelper::Buildsystem::makefile);
sub DESCRIPTION {
@@ -38,7 +38,7 @@ sub configure {
push @opts, "--infodir=\${prefix}/share/info";
push @opts, "--sysconfdir=/etc";
push @opts, "--localstatedir=/var";
- if (defined $ENV{DH_QUIET} && $ENV{DH_QUIET} ne "") {
+ if ($dh{QUIET}) {
push @opts, "--enable-silent-rules";
} else {
push @opts, "--disable-silent-rules";
@@ -47,10 +47,10 @@ sub configure {
if (! compat(8)) {
if (defined $multiarch) {
push @opts, "--libdir=\${prefix}/lib/$multiarch";
- push(@opts, "--libexecdir=\${prefix}/lib/$multiarch") if not compat(11);
+ push(@opts, "--libexecdir=\${prefix}/lib/$multiarch") if compat(11);
}
else {
- push(@opts, "--libexecdir=\${prefix}/lib") if not compat(11);
+ push(@opts, "--libexecdir=\${prefix}/lib") if compat(11);
}
}
else {
diff --git a/lib/Debian/Debhelper/Buildsystem/cmake.pm b/lib/Debian/Debhelper/Buildsystem/cmake.pm
index c732ba41..b1562286 100644
--- a/lib/Debian/Debhelper/Buildsystem/cmake.pm
+++ b/lib/Debian/Debhelper/Buildsystem/cmake.pm
@@ -8,12 +8,11 @@ package Debian::Debhelper::Buildsystem::cmake;
use strict;
use warnings;
-use Debian::Debhelper::Dh_Lib qw(compat dpkg_architecture_value error is_cross_compiling);
+use Debian::Debhelper::Dh_Lib qw(%dh compat dpkg_architecture_value error is_cross_compiling);
use parent qw(Debian::Debhelper::Buildsystem);
my @STANDARD_CMAKE_FLAGS = qw(
-DCMAKE_INSTALL_PREFIX=/usr
- -DCMAKE_VERBOSE_MAKEFILE=ON
-DCMAKE_BUILD_TYPE=None
-DCMAKE_INSTALL_SYSCONFDIR=/etc
-DCMAKE_INSTALL_LOCALSTATEDIR=/var
@@ -27,6 +26,12 @@ my %DEB_HOST2CMAKE_SYSTEM = (
'hurd' => 'GNU',
);
+my %GNU_CPU2SYSTEM_PROCESSOR = (
+ 'arm' => 'armv7l',
+ 'mips64el' => 'mips64',
+ 'powerpc64le' => 'ppc64le',
+);
+
my %TARGET_BUILD_SYSTEM2CMAKE_GENERATOR = (
'makefile' => 'Unix Makefiles',
'ninja' => 'Ninja',
@@ -85,6 +90,9 @@ sub configure {
my $generator = $TARGET_BUILD_SYSTEM2CMAKE_GENERATOR{$backend};
push(@flags, "-G${generator}");
}
+ unless ($dh{QUIET}) {
+ push(@flags, "-DCMAKE_VERBOSE_MAKEFILE=ON");
+ }
if ($ENV{CC}) {
push @flags, "-DCMAKE_C_COMPILER=" . $ENV{CC};
@@ -99,7 +107,12 @@ sub configure {
} else {
error("Cannot cross-compile - CMAKE_SYSTEM_NAME not known for ${deb_host}");
}
- push @flags, "-DCMAKE_SYSTEM_PROCESSOR=" . dpkg_architecture_value("DEB_HOST_GNU_CPU");
+ my $gnu_cpu = dpkg_architecture_value("DEB_HOST_GNU_CPU");
+ if (exists($GNU_CPU2SYSTEM_PROCESSOR{$gnu_cpu})) {
+ push @flags, "-DCMAKE_SYSTEM_PROCESSOR=" . $GNU_CPU2SYSTEM_PROCESSOR{$gnu_cpu};
+ } else {
+ push @flags, "-DCMAKE_SYSTEM_PROCESSOR=${gnu_cpu}";
+ }
if (not $ENV{CC}) {
push @flags, "-DCMAKE_C_COMPILER=" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-gcc";
}
@@ -108,6 +121,7 @@ sub configure {
}
push(@flags, "-DPKG_CONFIG_EXECUTABLE=/usr/bin/" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-pkg-config");
push(@flags, "-DPKGCONFIG_EXECUTABLE=/usr/bin/" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-pkg-config");
+ push(@flags, "-DQMAKE_EXECUTABLE=/usr/bin/" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-qmake");
}
push(@flags, "-DCMAKE_INSTALL_LIBDIR=lib/" . dpkg_architecture_value("DEB_HOST_MULTIARCH"));
diff --git a/lib/Debian/Debhelper/Buildsystem/makefile.pm b/lib/Debian/Debhelper/Buildsystem/makefile.pm
index 052af0b4..12aab90b 100644
--- a/lib/Debian/Debhelper/Buildsystem/makefile.pm
+++ b/lib/Debian/Debhelper/Buildsystem/makefile.pm
@@ -144,7 +144,11 @@ sub check_auto_buildable {
sub build {
my $this=shift;
- if (ref($this) eq 'Debian::Debhelper::Buildsystem::makefile' and is_cross_compiling()) {
+ if (not $this->_is_targetbuildsystem
+ and ref($this) eq 'Debian::Debhelper::Buildsystem::makefile'
+ and is_cross_compiling()) {
+ # Only inject build tools variables during cross-compile when
+ # makefile is the explicit *main* build system.
for my $var (sort(keys(%DEB_DEFAULT_TOOLS))) {
my $tool = $DEB_DEFAULT_TOOLS{$var};
if ($ENV{$var}) {
diff --git a/lib/Debian/Debhelper/Buildsystem/meson.pm b/lib/Debian/Debhelper/Buildsystem/meson.pm
index 890112bd..842991e9 100644
--- a/lib/Debian/Debhelper/Buildsystem/meson.pm
+++ b/lib/Debian/Debhelper/Buildsystem/meson.pm
@@ -7,7 +7,7 @@ package Debian::Debhelper::Buildsystem::meson;
use strict;
use warnings;
-use Debian::Debhelper::Dh_Lib qw(dpkg_architecture_value is_cross_compiling doit warning error generated_file);
+use Debian::Debhelper::Dh_Lib qw(compat dpkg_architecture_value is_cross_compiling doit warning error generated_file);
use parent qw(Debian::Debhelper::Buildsystem);
sub DESCRIPTION {
@@ -61,7 +61,7 @@ sub configure {
push @opts, "--localstatedir=/var";
my $multiarch=dpkg_architecture_value("DEB_HOST_MULTIARCH");
push @opts, "--libdir=lib/$multiarch";
- push(@opts, "--libexecdir=lib/$multiarch") if not compat(11);
+ push(@opts, "--libexecdir=lib/$multiarch") if compat(11);
if (is_cross_compiling()) {
# http://mesonbuild.com/Cross-compilation.html
@@ -84,7 +84,7 @@ sub configure {
# Make the file name absolute as meson will be called from the build dir.
require Cwd;
$cross_file =~ s{^\./}{};
- $cross_file = Cwd::cwd() . "/${cross_file}";
+ $cross_file = Cwd::getcwd() . "/${cross_file}";
}
push(@opts, '--cross-file', $cross_file);
}
@@ -104,4 +104,36 @@ sub configure {
}
}
+sub test {
+ my $this = shift;
+ my $target = $this->get_targetbuildsystem;
+
+ eval {
+ if (compat(12) or $target->NAME ne 'ninja') {
+ $target->test(@_);
+ } else {
+ # In compat 13 with meson+ninja, we prefer using "meson test"
+ # over "ninja test"
+ my %options = (
+ update_env => {
+ 'LC_ALL' => 'C.UTF-8',
+ }
+ );
+ if ($this->get_parallel() > 0) {
+ $options{update_env}{MESON_TESTTHREADS} = $this->get_parallel();
+ }
+ $this->doit_in_builddir(\%options, $this->{buildcmd}, "test", @_);
+ }
+ };
+ if (my $err = $@) {
+ if (-e $this->get_buildpath("meson-logs/testlog.txt")) {
+ $this->doit_in_builddir('tail', '-v', '-n', '+0', 'meson-logs/testlog.txt');
+ }
+ die $err;
+ }
+ return 1;
+}
+
+
+
1
diff --git a/lib/Debian/Debhelper/Buildsystem/perl_build.pm b/lib/Debian/Debhelper/Buildsystem/perl_build.pm
index 2817797c..4e10d361 100644
--- a/lib/Debian/Debhelper/Buildsystem/perl_build.pm
+++ b/lib/Debian/Debhelper/Buildsystem/perl_build.pm
@@ -8,7 +8,7 @@ package Debian::Debhelper::Buildsystem::perl_build;
use strict;
use warnings;
-use Debian::Debhelper::Dh_Lib qw(compat);
+use Debian::Debhelper::Dh_Lib qw(compat is_cross_compiling perl_cross_incdir);
use parent qw(Debian::Debhelper::Buildsystem);
use Config;
@@ -29,7 +29,17 @@ sub check_auto_buildable {
sub do_perl {
my $this=shift;
- $this->doit_in_sourcedir("perl", @_);
+ my %options;
+ if (is_cross_compiling()) {
+ my $cross_incdir = perl_cross_incdir();
+ if (defined $cross_incdir) {
+ my $perl5lib = $cross_incdir;
+ $perl5lib .= $Config{path_sep} . $ENV{PERL5LIB}
+ if defined $ENV{PERL5LIB};
+ $options{update_env} = { PERL5LIB => $perl5lib };
+ }
+ }
+ $this->doit_in_sourcedir(\%options, "perl", @_);
}
sub new {
@@ -47,7 +57,13 @@ sub configure {
push @flags, "--config", "optimize=$ENV{CFLAGS} $ENV{CPPFLAGS}";
}
if ($ENV{LDFLAGS} && ! compat(8)) {
- push @flags, "--config", "ld=$Config{ld} $ENV{CFLAGS} $ENV{LDFLAGS}";
+ my $ld = $Config{ld};
+ if (is_cross_compiling()) {
+ my $incdir = perl_cross_incdir();
+ $ld = qx/perl -I$incdir -MConfig -e 'print \$Config{ld}'/
+ if defined $incdir;
+ }
+ push @flags, "--config", "ld=$ld $ENV{CFLAGS} $ENV{LDFLAGS}";
}
push(@perl_flags, '-I.') if compat(10);
$this->do_perl(@perl_flags, "Build.PL", "--installdirs", "vendor", @flags, @_);
diff --git a/lib/Debian/Debhelper/Buildsystem/perl_makemaker.pm b/lib/Debian/Debhelper/Buildsystem/perl_makemaker.pm
index 6a6f452e..1d73685a 100644
--- a/lib/Debian/Debhelper/Buildsystem/perl_makemaker.pm
+++ b/lib/Debian/Debhelper/Buildsystem/perl_makemaker.pm
@@ -8,7 +8,7 @@ package Debian::Debhelper::Buildsystem::perl_makemaker;
use strict;
use warnings;
-use Debian::Debhelper::Dh_Lib qw(compat);
+use Debian::Debhelper::Dh_Lib qw(compat is_cross_compiling perl_cross_incdir);
use parent qw(Debian::Debhelper::Buildsystem::makefile);
use Config;
@@ -51,12 +51,23 @@ sub configure {
if ($ENV{CFLAGS} && ! compat(8)) {
push @flags, "OPTIMIZE=$ENV{CFLAGS} $ENV{CPPFLAGS}";
}
+ my $cross_flag;
+ if (is_cross_compiling()) {
+ my $incdir = perl_cross_incdir();
+ $cross_flag = "-I$incdir" if defined $incdir;
+ }
if ($ENV{LDFLAGS} && ! compat(8)) {
- push @flags, "LD=$Config{ld} $ENV{CFLAGS} $ENV{LDFLAGS}";
+ my $ld = $Config{ld};
+ $ld = qx/perl $cross_flag -MConfig -e 'print \$Config{ld}'/
+ if is_cross_compiling() and defined $cross_flag;
+ push @flags, "LD=$ld $ENV{CFLAGS} $ENV{LDFLAGS}";
}
push(@perl_flags, '-I.') if compat(10);
+ push @perl_flags, $cross_flag
+ if is_cross_compiling() and defined $cross_flag;
+
$this->doit_in_sourcedir("perl", @perl_flags, "Makefile.PL", "INSTALLDIRS=vendor",
# if perl_build is not tested first, need to pass packlist
# option to handle fallthrough case
diff --git a/lib/Debian/Debhelper/Dh_Buildsystems.pm b/lib/Debian/Debhelper/Dh_Buildsystems.pm
index a386507c..715c7089 100644
--- a/lib/Debian/Debhelper/Dh_Buildsystems.pm
+++ b/lib/Debian/Debhelper/Dh_Buildsystems.pm
@@ -185,9 +185,11 @@ sub buildsystems_init {
# Available command line options
my %options = (
"D=s" => \$opt_sourcedir,
+ "sourcedir=s" => \$opt_sourcedir,
"sourcedirectory=s" => \$opt_sourcedir,
"B:s" => \$opt_builddir,
+ "builddir:s" => \$opt_builddir,
"builddirectory:s" => \$opt_builddir,
"S=s" => \$opt_buildsys,
@@ -199,7 +201,15 @@ sub buildsystems_init {
"parallel" => sub { $max_parallel = -1 },
'no-parallel' => sub { $max_parallel = 1 },
"max-parallel=i" => \$max_parallel,
+
+ 'reload-all-buildenv-variables' => sub { delete($ENV{'DH_INTERNAL_BUILDFLAGS'}); },
);
+ if (compat(8)) {
+ # This option only works in compat 9+ where we actually set buildflags
+ $options{'reload-all-buildenv-variables'} = sub {
+ die("--reload-all-buildenv-variables only work reliably in compat 9+");
+ };
+ }
$args{options}{$_} = $options{$_} foreach keys(%options);
Debian::Debhelper::Dh_Lib::init(%args);
Debian::Debhelper::Dh_Lib::set_buildflags();
diff --git a/lib/Debian/Debhelper/Dh_Getopt.pm b/lib/Debian/Debhelper/Dh_Getopt.pm
index 0eb3de04..0f3fb781 100644
--- a/lib/Debian/Debhelper/Dh_Getopt.pm
+++ b/lib/Debian/Debhelper/Dh_Getopt.pm
@@ -11,7 +11,8 @@ use warnings;
use Debian::Debhelper::Dh_Lib;
use Getopt::Long;
-my (%exclude_package, %profile_enabled_packages, $profile_excluded_pkg);
+my (%exclude_package, %internal_excluded_package, %explicitly_reqested_packages, %profile_enabled_packages,
+ $profile_excluded_pkg);
sub showhelp {
my $prog=basename($0);
@@ -43,6 +44,7 @@ sub AddPackage { my($option,$value)=@_;
elsif ($option eq 'p' or $option eq 'package') {
assert_opt_is_known_package($value, '-p/--package');
%profile_enabled_packages = map { $_ => 1 } getpackages('both') if not %profile_enabled_packages;
+ $explicitly_reqested_packages{$value} = 1;
# Silently ignore packages that are not enabled by the
# profile.
if (exists($profile_enabled_packages{$value})) {
@@ -92,6 +94,10 @@ sub getoptions {
if (! exists $params{bundling} || $params{bundling}) {
Getopt::Long::config("bundling");
}
+ Getopt::Long::config('no_ignore_case');
+ if ( ! -f 'debian/control' or ! compat(12, 1)) {
+ Getopt::Long::config('no_auto_abbrev');
+ }
my @test;
my %options=(
@@ -107,7 +113,7 @@ sub getoptions {
"arch" => \&AddPackage,
"p=s" => \&AddPackage,
- "package=s" => \&AddPackage,
+ "package=s" => \&AddPackage,
"N=s" => \&ExcludePackage,
"no-package=s" => \&ExcludePackage,
@@ -131,9 +137,6 @@ sub getoptions {
"d" => \$dh{D_FLAG},
- "k" => \$dh{K_FLAG},
- "keep" => \$dh{K_FLAG},
-
"P=s" => \$dh{TMPDIR},
"tmpdir=s" => \$dh{TMPDIR},
@@ -144,8 +147,6 @@ sub getoptions {
"A" => \$dh{PARAMS_ALL},
"all" => \$dh{PARAMS_ALL},
- "priority=s" => \$dh{PRIORITY},
-
"h|help" => \&showhelp,
"mainpackage=s" => \$dh{MAINPACKAGE},
@@ -219,7 +220,8 @@ sub parseopts {
if (defined $dh{DOPACKAGES}) {
foreach my $package (getpackages()) {
if (! grep { $_ eq $package } @{$dh{DOPACKAGES}}) {
- $exclude_package{$package}=1;
+ $exclude_package{$package} = 1;
+ $internal_excluded_package{$package} = 1;
}
}
}
@@ -297,10 +299,26 @@ sub parseopts {
if (! defined $dh{DOPACKAGES} || ! @{$dh{DOPACKAGES}}) {
if (! $dh{BLOCK_NOOP_WARNINGS}) {
my %archs;
+ if (%explicitly_reqested_packages) {
+ # Avoid sending a confusing error message when debhelper must exclude a package given via -p.
+ # This commonly happens due to Build-Profiles or/and when build only a subset of the packages
+ # (e.g. dpkg-buildpackage -A vs. -B vs. none of the options)
+ for my $pkg (sort(keys(%explicitly_reqested_packages))) {
+ if (exists($internal_excluded_package{$pkg}) or not exists($profile_enabled_packages{$pkg})) {
+ delete($explicitly_reqested_packages{$pkg});
+ }
+ }
+ if (not %explicitly_reqested_packages) {
+ warning('All requested packages have been excluded'
+ . ' (e.g. via a Build-Profile or due to architecture restrictions).');
+ exit(0);
+ }
+ }
for my $pkg (getpackages()) {
$archs{package_declared_arch($pkg)} = 1;
}
- warning("No packages to build. Architecture mismatch: " . hostarch() . ", want: " . join(" ", sort keys %archs));
+ warning("No packages to build. Possible architecture mismatch: " . hostarch() .
+ ", want: " . join(" ", sort keys %archs));
}
exit(0);
}
diff --git a/lib/Debian/Debhelper/Dh_Lib.pm b/lib/Debian/Debhelper/Dh_Lib.pm
index 8d9f3476..103f2f31 100644
--- a/lib/Debian/Debhelper/Dh_Lib.pm
+++ b/lib/Debian/Debhelper/Dh_Lib.pm
@@ -15,8 +15,11 @@ use constant {
# Lowest compat level that does *not* cause deprecation
# warnings
'LOWEST_NON_DEPRECATED_COMPAT_LEVEL' => 9,
+ # Lowest compat level to generate "debhelper-compat (= X)"
+ # relations for.
+ 'LOWEST_VIRTUAL_DEBHELPER_COMPAT_LEVEL' => 9,
# Highest compat level permitted
- 'MAX_COMPAT_LEVEL' => 12,
+ 'MAX_COMPAT_LEVEL' => 13,
# Magic value for xargs
'XARGS_INSERT_PARAMS_HERE' => \'<INSERT-HERE>', #'# Hi emacs.
# Magic value for debhelper tools to request "current version"
@@ -143,6 +146,7 @@ qw(
is_cross_compiling
is_build_profile_active
get_buildoption
+ perl_cross_incdir
),
# Other
qw(
@@ -163,6 +167,7 @@ qw(
DEFAULT_PACKAGE_TYPE
DBGSYM_PACKAGE_TYPE
DH_BUILTIN_VERSION
+ is_known_package
assert_opt_is_known_package
restore_all_files
@@ -181,6 +186,7 @@ our $PKGVERSION_REGEX = qr/
[0-9][0-9A-Za-z.+:~]* # Upstream version (with no hyphens)
(?: - [0-9A-Za-z.+:~]+ )* # Optional debian revision (+ upstreams versions with hyphens)
/xoa;
+our $MAINTSCRIPT_TOKEN_REGEX = qr/[A-Za-z0-9_.+]+/o;
# From Policy 5.1:
#
@@ -194,9 +200,15 @@ our $DEB822_FIELD_REGEX = qr/
[\x21-\x39\x3B-\x7F]* # Subsequent characters (if any)
/xoa;
+our $PARSE_DH_SEQUENCE_INFO = 0;
+
sub init {
my %params=@_;
+ if ($params{internal_parse_dh_sequence_info}) {
+ $PARSE_DH_SEQUENCE_INFO = 1;
+ }
+
# Check if we can by-pass the expensive Getopt::Long by optimising for the
# common case of "-a" or "-i"
if (scalar(@ARGV) == 1 && ($ARGV[0] eq '-a' || $ARGV[0] eq '-i') &&
@@ -255,7 +267,7 @@ sub init {
# make sure verbose is on. Otherwise, check DH_QUIET.
if (defined $ENV{DH_VERBOSE} && $ENV{DH_VERBOSE} ne "") {
$dh{VERBOSE}=1;
- } elsif (defined $ENV{DH_QUIET} && $ENV{DH_QUIET} ne "") {
+ } elsif (defined $ENV{DH_QUIET} && $ENV{DH_QUIET} ne "" || get_buildoption("terse")) {
$dh{QUIET}=1;
}
@@ -450,9 +462,10 @@ sub _doit {
if (defined($options)) {
if (defined(my $dir = $options->{chdir})) {
if ($dir ne '.') {
- chdir($dir) or error("chdir(\"${dir}\) failed: $!");
+ chdir($dir) or error("chdir(\"${dir}\") failed: $!");
}
}
+ open(STDIN, '<', '/dev/null') or error("redirect STDIN failed: $!");
if (defined(my $output = $options->{stdout})) {
open(STDOUT, '>', $output) or error("redirect STDOUT failed: $!");
}
@@ -756,8 +769,9 @@ sub nonquiet_print {
# Output an error message and die (can be caught).
sub error {
- my $message=shift;
-
+ my ($message) = @_;
+ # ensure the error code is well defined.
+ $! = 255;
die basename($0).": $message\n";
}
@@ -828,6 +842,9 @@ my $compat_from_bd;
warning("Please specify the debhelper compat level exactly once.");
warning(" * debian/compat requests compat ${new_compat}.");
warning(" * debian/control requests compat ${compat_from_bd} via \"debhelper-compat (= ${compat_from_bd})\"");
+ warning();
+ warning("Hint: If you just added a build-dependency on debhelper-compat, then please remember to remove debian/compat");
+ warning();
error("debhelper compat level specified both in debian/compat and via build-dependency on debhelper-compat");
}
$c = $new_compat;
@@ -1001,22 +1018,33 @@ sub pkgfilename {
# As a side effect, sets $dh{VERSION} to the version of this package.
{
# Caches return code so it only needs to run dpkg-parsechangelog once.
- my %isnative_cache;
+ my (%isnative_cache, %pkg_version);
sub isnative {
- my $package=shift;
-
- return $isnative_cache{$package} if defined $isnative_cache{$package};
+ my ($package) = @_;
+ my $cache_key = $package;
- if (not %isnative_cache) {
- require Dpkg::Changelog::Parse;
+ if (exists($isnative_cache{$cache_key})) {
+ $dh{VERSION} = $pkg_version{$cache_key};
+ return $isnative_cache{$cache_key};
}
# Make sure we look at the correct changelog.
- my $isnative_changelog=pkgfile($package,"changelog");
+ my $isnative_changelog = pkgfile($package,"changelog");
if (! $isnative_changelog) {
- $isnative_changelog="debian/changelog";
+ $isnative_changelog = "debian/changelog";
+ $cache_key = '_source';
+ # check if we looked up the default changelog
+ if (exists($isnative_cache{$cache_key})) {
+ $dh{VERSION} = $pkg_version{$cache_key};
+ return $isnative_cache{$cache_key};
+ }
+ }
+
+ if (not %isnative_cache) {
+ require Dpkg::Changelog::Parse;
}
+
my $res = Dpkg::Changelog::Parse::changelog_parse(
file => $isnative_changelog,
compression => 0,
@@ -1029,15 +1057,15 @@ sub pkgfilename {
if (not defined($version) or not $version->is_valid) {
error("changelog parse failure; invalid or missing version");
}
- # Get the package version.
- $dh{VERSION} = $version->as_string;
+ # Get and cache the package version.
+ $dh{VERSION} = $pkg_version{$cache_key} = $version->as_string;
# Is this a native Debian package?
if (index($dh{VERSION}, '-') > -1) {
- return $isnative_cache{$package}=0;
+ return $isnative_cache{$cache_key} = 0;
}
else {
- return $isnative_cache{$package}=1;
+ return $isnative_cache{$cache_key} = 1;
}
}
}
@@ -1372,9 +1400,17 @@ sub filedoublearray {
my @ret;
while (<DH_FARRAY_IN>) {
chomp;
- if (not $x) {
- next if /^#/ || /^$/;
+ if ($x) {
+ if (m/^\s++$/) {
+ error("Executable config file $file produced a non-empty whitespace-only line");
+ }
+ } else {
+ s/^\s++//;
+ next if /^#/;
+ s/\s++$//;
}
+ # We always ignore/permit empty lines
+ next if $_ eq '';
my @line;
if (defined($globdir) && ! $x) {
@@ -1547,18 +1583,20 @@ sub getpackages {
$type //= 'all-listed-in-control-file';
- if (%packages_by_type) {
- return @{$packages_by_type{$type}};
+ if (not %packages_by_type) {
+ _parse_debian_control();
}
+ return @{$packages_by_type{$type}};
+}
- my $fd;
+sub _parse_debian_control {
my $package="";
my $arch="";
my $section="";
my $valid_pkg_re = qr{^${PKGNAME_REGEX}$}o;
my ($package_type, $multiarch, %seen, @profiles, $source_section,
$included_in_build_profile, $cross_type, $cross_target_arch,
- %bd_fields, $bd_field_value, %seen_fields);
+ %bd_fields, $bd_field_value, %seen_fields, $fd);
if (exists $ENV{'DEB_BUILD_PROFILES'}) {
@profiles=split /\s+/, $ENV{'DEB_BUILD_PROFILES'};
}
@@ -1619,6 +1657,11 @@ sub getpackages {
error("could not find Source: line in control file.") if not defined($sourcepackage);
if (%bd_fields) {
my ($dh_compat_bd, $final_level);
+ my %field2addon_type = (
+ 'build-depends' => 'both',
+ 'build-depends-arch' => 'arch',
+ 'build-depends-indep' => 'indep',
+ );
for my $field (sort(keys(%bd_fields))) {
my $value = join(' ', @{$bd_fields{$field}});
$value =~ s/^\s*//;
@@ -1658,14 +1701,26 @@ sub getpackages {
error("Could not parse desired debhelper compat level from relation: $dep");
}
# Build-Depends on dh-sequence-<foo> OR dh-sequence-<foo> (<op> <version>)
- if ($dep =~ m/^dh-sequence-(${PKGNAME_REGEX})\s*(?:[(]\s*(?:[<>]?=|<<|>>)\s*(${PKGVERSION_REGEX})\s*[)])?$/) {
+ if ($PARSE_DH_SEQUENCE_INFO and $dep =~ m/^dh-sequence-(${PKGNAME_REGEX})\s*(?:[(]\s*(?:[<>]?=|<<|>>)\s*(?:${PKGVERSION_REGEX})\s*[)])?(\s*[^\|]+[]>]\s*)?$/) {
my $sequence = $1;
- if ($field ne 'build-depends') {
- warning("Ignoring dh sequence add-on request for sequenece ${sequence} via ${field}: Please move it to the Build-Depends field");
- warning("The relation that triggered this warning was: ${dep} (from the ${field} field)");
- next;
+ my $has_profile_or_arch_restriction = $2 ? 1 : 0;
+ my $addon_type = $field2addon_type{$field};
+ if (not defined($field)) {
+ warning("Cannot map ${field} to an add-on type (like \"both\", \"indep\" or \"arch\")");
+ error("Internal error: Cannot satisfy dh sequence add-on request for sequence ${sequence} via ${field}.");
+ }
+ if (defined($dh_bd_sequences{$sequence})) {
+ error("Saw $dep multiple times (last time in $field). However dh only support that build-"
+ . 'dependency at most once across all Build-Depends(-Arch|-Indep) fields');
+ }
+ if ($has_profile_or_arch_restriction) {
+ require Dpkg::Deps;
+ my $dpkg_dep = Dpkg::Deps::deps_parse($dep, build_profiles => \@profiles, build_dep => 1,
+ reduce_restrictions => 1);
+ # If dpkg reduces it to nothing, then it was not relevant for us after all
+ next if not $dpkg_dep;
}
- $dh_bd_sequences{$sequence} = 1;
+ $dh_bd_sequences{$sequence} = $addon_type;
}
}
}
@@ -1805,8 +1860,6 @@ sub getpackages {
}
}
close($fd);
-
- return @{$packages_by_type{$type}};
}
# Return true if we should use root.
@@ -1958,7 +2011,7 @@ sub bd_dh_sequences {
# Use $sourcepackage as check because %dh_bd_sequence can be empty
# after running getpackages().
getpackages() if not defined($sourcepackage);
- return sort(keys(%dh_bd_sequences));
+ return \%dh_bd_sequences;
}
sub _concat_slurp_script_files {
@@ -1973,43 +2026,67 @@ sub _concat_slurp_script_files {
return $res;
}
+sub _substitution_generator {
+ my ($input) = @_;
+ my $cache = {};
+ return sub {
+ my ($orig_key) = @_;
+ return $cache->{$orig_key} if exists($cache->{$orig_key});
+ my $value = exists($input->{$orig_key}) ? $input->{$orig_key} : undef;
+ if (not defined($value)) {
+ if ($orig_key =~ m/^DEB_(?:BUILD|HOST|TARGET)_/) {
+ $value = dpkg_architecture_value($orig_key);
+ } elsif ($orig_key =~ m{^ENV[.](\S+)$}) {
+ $value = $ENV{$1} // '';
+ }
+ } elsif (ref($value) eq 'CODE') {
+ $value = $value->($orig_key);
+ } elsif ($value =~ s/^@//) {
+ $value = _concat_slurp_script_files($value);
+ }
+ $cache->{$orig_key} = $value;
+ return $value;
+ };
+}
+
# Handles #DEBHELPER# substitution in a script; also can generate a new
# script from scratch if none exists but there is a .debhelper file for it.
sub debhelper_script_subst {
- my $package=shift;
- my $script=shift;
-
+ my ($package, $script, $extra_vars) = @_;
+
my $tmp=tmpdir($package);
my $ext=pkgext($package);
my $file=pkgfile($package,$script);
+ my %variables = defined($extra_vars) ? %{$extra_vars} : ();
my $service_script = generated_file($package, "${script}.service", 0);
my @generated_scripts = ("debian/$ext$script.debhelper", $service_script);
+ my $subst;
+ @generated_scripts = grep { -f } @generated_scripts;
if ($script eq 'prerm' or $script eq 'postrm') {
@generated_scripts = reverse(@generated_scripts);
}
- @generated_scripts = grep { -f } @generated_scripts;
+ if (not exists($variables{'DEBHELPER'})) {
+ $variables{'DEBHELPER'} = sub {
+ return _concat_slurp_script_files(@generated_scripts);
+ };
+ }
+ $subst = _substitution_generator(\%variables);
if ($file ne '') {
- if (@generated_scripts) {
- if ($dh{VERBOSE}) {
- verbose_print('cp -f ' . escape_shell($file) . " $tmp/DEBIAN/$script");
- verbose_print("perl -p -i -e \"s~#DEBHELPER#~qx{cat @generated_scripts}~eg\" $tmp/DEBIAN/$script");
- }
- # Add this into the script, where it has #DEBHELPER#
- my $text = _concat_slurp_script_files(@generated_scripts);
- if (not $dh{NO_ACT}) {
- open(my $out_fd, '>', "$tmp/DEBIAN/$script") or error("open($tmp/DEBIAN/$script) failed: $!");
- open(my $in_fd, '<', $file) or error("open($file) failed: $!");
- while (my $line = <$in_fd>) {
- $line =~ s/#DEBHELPER#/$text/g;
- print {$out_fd} $line;
- }
- close($in_fd);
- close($out_fd) or error("close($tmp/DEBIAN/$script) failed: $!");
+ if ($dh{VERBOSE}) {
+ verbose_print('cp -f ' . escape_shell($file) . " $tmp/DEBIAN/$script");
+ verbose_print("[META] Replace #TOKEN#s in \"$tmp/DEBIAN/$script\"");
+ }
+ if (not $dh{NO_ACT}) {
+ my $regex = qr{#(${MAINTSCRIPT_TOKEN_REGEX})#}o;
+ open(my $out_fd, '>', "$tmp/DEBIAN/$script") or error("open($tmp/DEBIAN/$script) failed: $!");
+ open(my $in_fd, '<', $file) or error("open($file) failed: $!");
+ while (my $line = <$in_fd>) {
+ $line =~ s{$regex}{$subst->($1) // "#${1}#"}ge;
+ print {$out_fd} $line;
}
- } else {
- # Just get rid of any #DEBHELPER# in the script.
- doit({ stdout => "$tmp/DEBIAN/$script" }, 'sed', 's/#DEBHELPER#//', $file);
+ close($in_fd);
+ close($out_fd) or error("close($tmp/DEBIAN/$script) failed: $!");
}
reset_perm_and_owner('0755', "$tmp/DEBIAN/$script");
}
@@ -2632,17 +2709,54 @@ sub dbgsym_tmpdir {
return "debian/.debhelper/${package}/dbgsym-root";
}
+sub perl_cross_incdir {
+ return if !is_cross_compiling();
+
+ # native builds don't currently need this so only load it on demand
+ require Config; Config->import();
+
+ my $triplet = dpkg_architecture_value("DEB_HOST_MULTIARCH");
+ my $perl_version = $Config::Config{version};
+ my $incdir = "/usr/lib/$triplet/perl/cross-config-${perl_version}";
+ return undef if !-e "$incdir/Config.pm";
+ return $incdir;
+}
{
my %known_packages;
+ sub is_known_package {
+ my ($package) = @_;
+ %known_packages = map { $_ => 1 } getpackages() if not %known_packages;
+ return 1 if exists($known_packages{$package});
+ return 0
+ }
+
sub assert_opt_is_known_package {
my ($package, $method) = @_;
- %known_packages = map { $_ => 1 } getpackages() if not %known_packages;
- if (not exists($known_packages{$package})) {
+ if (not is_known_package($package)) {
error("Requested unknown package $package via $method, expected one of: " . join(' ', getpackages()));
}
return 1;
}
}
+{
+ my $_disable_file_seccomp;
+ sub _internal_optional_file_args {
+ if (not defined($_disable_file_seccomp)) {
+ my $consider_disabling_seccomp = 0;
+ if ($ENV{'FAKEROOTKEY'} or ($ENV{'LD_PRELOAD'}//'') =~ m/fakeroot/) {
+ $consider_disabling_seccomp = 1;
+ }
+ if ($consider_disabling_seccomp) {
+ my $has_no_sandbox = (qx_cmd('file', '--help') // '') =~ m/--no-sandbox/;
+ $consider_disabling_seccomp = 0 if not $has_no_sandbox;
+ }
+ $_disable_file_seccomp = $consider_disabling_seccomp;
+ }
+ return ('--no-sandbox') if $_disable_file_seccomp;
+ return;
+ }
+}
+
1
diff --git a/lib/Debian/Debhelper/Sequence.pm b/lib/Debian/Debhelper/Sequence.pm
new file mode 100644
index 00000000..6911c826
--- /dev/null
+++ b/lib/Debian/Debhelper/Sequence.pm
@@ -0,0 +1,130 @@
+#!/usr/bin/perl
+#
+# Internal library functions for the dh(1) command
+
+package Debian::Debhelper::Sequence;
+use strict;
+use warnings;
+
+use Exporter qw(import);
+
+use Debian::Debhelper::SequencerUtil qw(extract_rules_target_name sequence_type SEQUENCE_NO_SUBSEQUENCES
+ SEQUENCE_ARCH_INDEP_SUBSEQUENCES SEQUENCE_TYPE_ARCH_ONLY SEQUENCE_TYPE_INDEP_ONLY SEQUENCE_TYPE_BOTH
+ FLAG_OPT_SOURCE_BUILDS_NO_ARCH_PACKAGES FLAG_OPT_SOURCE_BUILDS_NO_INDEP_PACKAGES);
+
+
+sub _as_command {
+ my ($input) = @_;
+ if (ref($input) eq 'HASH') {
+ return $input;
+ }
+ my $rules_target = extract_rules_target_name($input);
+ if (defined($rules_target)) {
+ my $sequence_type = sequence_type($rules_target);
+ return {
+ 'command' => $input,
+ 'command-options' => [],
+ 'sequence-limitation' => $sequence_type,
+ }
+ }
+ return {
+ 'command' => $input,
+ 'command-options' => [],
+ 'sequence-limitation' => SEQUENCE_TYPE_BOTH,
+ }
+}
+
+sub new {
+ my ($class, $name, $sequence_type, @cmds) = @_;
+ return bless({
+ '_name' => $name,
+ '_subsequences' => $sequence_type,
+ '_cmds' => [map {_as_command($_)} @cmds],
+ }, $class);
+}
+
+sub name {
+ my ($this) = @_;
+ return $this->{'_name'};
+}
+
+sub allowed_subsequences {
+ my ($this) = @_;
+ return $this->{'_subsequences'};
+}
+
+sub _insert {
+ my ($this, $offset, $existing, $new) = @_;
+ my @list = @{$this->{'_cmds'}};
+ my @new;
+ my $new_cmd = _as_command($new);
+ foreach my $command (@list) {
+ if ($command->{'command'} eq $existing) {
+ push(@new, $new_cmd) if $offset < 0;
+ push(@new, $command);
+ push(@new, $new_cmd) if $offset > 0;
+ } else {
+ push(@new, $command);
+ }
+ }
+ $this->{'_cmds'} = \@new;
+ return;
+}
+
+sub remove_command {
+ my ($this, $command) = @_;
+ $this->{'_cmds'} = [grep { $_->{'command'} ne $command } @{$this->{'_cmds'}}];
+ return;
+}
+
+sub add_command_at_start {
+ my ($this, $command) = @_;
+ unshift(@{$this->{'_cmds'}}, _as_command($command));
+ return;
+}
+
+sub add_command_at_end {
+ my ($this, $command) = @_;
+ push(@{$this->{'_cmds'}}, _as_command($command));
+ return;
+}
+
+sub rules_target_name {
+ my ($this, $sequence_type) = @_;
+ die("Internal error: Invalid sequence type $sequence_type") if $sequence_type eq SEQUENCE_NO_SUBSEQUENCES;
+ my $name = $this->{'_name'};
+ my $allowed_sequence_type = $this->{'_subsequences'};
+ if ($sequence_type ne SEQUENCE_TYPE_BOTH and $allowed_sequence_type eq SEQUENCE_NO_SUBSEQUENCES) {
+ die("Internal error: Requested subsequence ${sequence_type} of sequence ${name}, but it has no subsequences");
+ }
+ if ($sequence_type ne SEQUENCE_TYPE_BOTH) {
+ return "${name}-${sequence_type}";
+ }
+ return $name;
+}
+
+sub as_rules_target_command {
+ my ($this) = shift;
+ my $rules_name = $this->rules_target_name(@_);
+ return "debian/rules ${rules_name}";
+}
+
+sub flatten_sequence {
+ my ($this, $sequence_type, $flags) = @_;
+ die("Invalid sequence type $sequence_type") if $sequence_type eq SEQUENCE_NO_SUBSEQUENCES;
+ my @cmds;
+ for my $cmd_desc (@{$this->{'_cmds'}}) {
+ my $seq_limitation = $cmd_desc->{'sequence-limitation'};
+ next if ($seq_limitation eq SEQUENCE_TYPE_ARCH_ONLY and ($flags & FLAG_OPT_SOURCE_BUILDS_NO_ARCH_PACKAGES));
+ next if ($seq_limitation eq SEQUENCE_TYPE_INDEP_ONLY and ($flags & FLAG_OPT_SOURCE_BUILDS_NO_INDEP_PACKAGES));
+ if ($seq_limitation eq $sequence_type or $sequence_type eq SEQUENCE_TYPE_BOTH or $seq_limitation eq SEQUENCE_TYPE_BOTH) {
+ my $cmd = $cmd_desc->{'command'};
+ my @cmd_options = $cmd_desc->{'command-options'};
+ push(@cmds, [$cmd, @cmd_options]);
+ next;
+ }
+ }
+ return @cmds;
+}
+
+1;
diff --git a/lib/Debian/Debhelper/Sequence/elf_tools.pm b/lib/Debian/Debhelper/Sequence/elf_tools.pm
new file mode 100644
index 00000000..2780bc9e
--- /dev/null
+++ b/lib/Debian/Debhelper/Sequence/elf_tools.pm
@@ -0,0 +1,14 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+
+insert_after('dh_missing', 'dh_strip');
+if (not compat(11)) {
+ insert_before('dh_strip', 'dh_dwz');
+}
+insert_after('dh_strip', 'dh_makeshlibs');
+insert_after('dh_makeshlibs', 'dh_shlibdeps');
+
+1; \ No newline at end of file
diff --git a/lib/Debian/Debhelper/SequencerUtil.pm b/lib/Debian/Debhelper/SequencerUtil.pm
index 9a9ce2bf..6dd3eb5d 100644
--- a/lib/Debian/Debhelper/SequencerUtil.pm
+++ b/lib/Debian/Debhelper/SequencerUtil.pm
@@ -5,17 +5,34 @@
package Debian::Debhelper::SequencerUtil;
use strict;
use warnings;
-use constant DUMMY_TARGET => 'debhelper-fail-me';
+use constant {
+ 'DUMMY_TARGET' => 'debhelper-fail-me',
+ 'SEQUENCE_NO_SUBSEQUENCES' => 'none',
+ 'SEQUENCE_ARCH_INDEP_SUBSEQUENCES' => 'both',
+ 'SEQUENCE_TYPE_ARCH_ONLY' => 'arch',
+ 'SEQUENCE_TYPE_INDEP_ONLY' => 'indep',
+ 'SEQUENCE_TYPE_BOTH' => 'both',
+ 'FLAG_OPT_SOURCE_BUILDS_NO_ARCH_PACKAGES' => 0x1,
+ 'FLAG_OPT_SOURCE_BUILDS_NO_INDEP_PACKAGES' => 0x2,
+};
use Exporter qw(import);
our @EXPORT = qw(
extract_rules_target_name
to_rules_target
+ sequence_type
unpack_sequence
rules_explicit_target
extract_skipinfo
DUMMY_TARGET
+ SEQUENCE_NO_SUBSEQUENCES
+ SEQUENCE_ARCH_INDEP_SUBSEQUENCES
+ SEQUENCE_TYPE_ARCH_ONLY
+ SEQUENCE_TYPE_INDEP_ONLY
+ SEQUENCE_TYPE_BOTH
+ FLAG_OPT_SOURCE_BUILDS_NO_ARCH_PACKAGES
+ FLAG_OPT_SOURCE_BUILDS_NO_INDEP_PACKAGES
);
our (%EXPLICIT_TARGETS, $RULES_PARSED);
@@ -32,39 +49,137 @@ sub to_rules_target {
return 'debian/rules '.join(' ', @_);
}
+sub sequence_type {
+ my ($sequence_name) = @_;
+ if ($sequence_name =~ m/-indep$/) {
+ return 'indep';
+ } elsif ($sequence_name =~ m/-arch/) {
+ return 'arch';
+ }
+ return 'both';
+}
+
+sub _agg_subseq {
+ my ($current_subseq, $outer_subseq) = @_;
+ if ($current_subseq eq $outer_subseq) {
+ return $current_subseq;
+ }
+ if ($current_subseq eq 'both') {
+ return $outer_subseq;
+ }
+ return $current_subseq;
+}
+
sub unpack_sequence {
- my ($sequences, $sequence_name, $always_inline, $completed_sequences) = @_;
+ my ($sequences, $sequence_name, $always_inline, $completed_sequences, $flags) = @_;
my (@sequence, @targets, %seen, %non_inlineable_targets, @stack);
+ my $sequence_type = sequence_type($sequence_name);
# Walk through the sequence effectively doing a DFS of the rules targets
# (when we are allowed to inline them).
- push(@stack, [@{$sequences->{$sequence_name}}]);
+ my $seq = $sequences->{$sequence_name};
+ $flags //= 0;
+
+ push(@stack, [$seq->flatten_sequence($sequence_type, $flags)]);
while (@stack) {
my $current_sequence = pop(@stack);
COMMAND:
while (@{$current_sequence}) {
my $command = shift(@{$current_sequence});
+ if (ref($command) eq 'ARRAY') {
+ $command = $command->[0];
+ }
my $rules_target=extract_rules_target_name($command);
next if (defined($rules_target) and exists($completed_sequences->{$rules_target}));
- if (defined($rules_target) && ($always_inline ||
- ! exists($non_inlineable_targets{$rules_target}) &&
- ! defined(rules_explicit_target($rules_target)))) {
-
- # inline the sequence for this implicit target.
+ if (defined($rules_target) and $always_inline) {
+ my $subsequence = $sequences->{$rules_target};
+ my $subseq_type = _agg_subseq(sequence_type($rules_target), $sequence_type);
push(@stack, $current_sequence);
- $current_sequence = [@{$sequences->{$rules_target}}];
+ $current_sequence = [$subsequence->flatten_sequence($subseq_type, $flags)];
+ } elsif (defined($rules_target)) {
+ my $subsequence = $sequences->{$rules_target};
+ my $subseq_type = _agg_subseq(sequence_type($rules_target), $sequence_type);
+ my @subseq_types = ($subseq_type);
+ my %subtarget_status;
+ my ($transparent_subseq, $opaque_subseq, $subtarget_decided_both);
+ if ($subseq_type eq SEQUENCE_TYPE_BOTH) {
+ push(@subseq_types, SEQUENCE_TYPE_ARCH_ONLY, SEQUENCE_TYPE_INDEP_ONLY);
+ }
+ for my $ss_type (@subseq_types) {
+ my $full_rule_target = ($ss_type eq SEQUENCE_TYPE_BOTH) ? $rules_target : "${rules_target}-${ss_type}";
+ if (exists($completed_sequences->{$full_rule_target})) {
+ $subtarget_status{$ss_type} = 'complete';
+ last if $ss_type eq $subseq_type;
+ }
+ elsif (defined(rules_explicit_target($full_rule_target))) {
+ $subtarget_status{$ss_type} = 'opaque';
+ last if $ss_type eq $subseq_type;
+ }
+ else {
+ $subtarget_status{$ss_type} = 'transparent';
+ }
+ }
+ # At this point, %subtarget_status has 1 or 3 kv-pairs.
+ # - If it has 1, then just check that and be done
+ # - If it has 3, then "both" must be "transparent".
+
+ if (scalar(keys(%subtarget_status)) == 3) {
+ if ($subtarget_status{${\SEQUENCE_TYPE_ARCH_ONLY}} eq $subtarget_status{${\SEQUENCE_TYPE_INDEP_ONLY}}) {
+ # The "both" target is transparent and the subtargets agree. This is the common case
+ # of "everything is transparent" (or both subtargets are opaque) and we reduce that by
+ # reducing it to only have one key.
+ %subtarget_status = ( $subseq_type => $subtarget_status{${\SEQUENCE_TYPE_ARCH_ONLY}} );
+ # There is one special-case for this flow if both targets are opaque.
+ $subtarget_decided_both = 1;
+ } else {
+ # The subtargets have different status but we know that the "both" key must be irrelevant
+ # then. Remove it to simplify matters below.
+ delete($subtarget_status{${\SEQUENCE_TYPE_BOTH}});
+ }
+ }
+
+ if (scalar(keys(%subtarget_status)) == 1) {
+ # "Simple" case where we only have to check exactly one result
+ if ($subtarget_status{$subseq_type} eq 'opaque') {
+ $opaque_subseq = $subseq_type;
+ }
+ elsif ($subtarget_status{$subseq_type} eq 'transparent') {
+ $transparent_subseq = $subseq_type;
+ }
+ } else {
+ # Either can be transparent, opaque or complete at this point.
+ if ($subtarget_status{${\SEQUENCE_TYPE_ARCH_ONLY}} eq 'transparent') {
+ $transparent_subseq = SEQUENCE_TYPE_ARCH_ONLY
+ } elsif ($subtarget_status{${\SEQUENCE_TYPE_INDEP_ONLY}} eq 'transparent') {
+ $transparent_subseq = SEQUENCE_TYPE_INDEP_ONLY
+ }
+ if ($subtarget_status{${\SEQUENCE_TYPE_ARCH_ONLY}} eq 'opaque') {
+ $opaque_subseq = SEQUENCE_TYPE_ARCH_ONLY
+ } elsif ($subtarget_status{${\SEQUENCE_TYPE_INDEP_ONLY}} eq 'opaque') {
+ $opaque_subseq = SEQUENCE_TYPE_INDEP_ONLY
+ }
+ }
+ if ($opaque_subseq) {
+ if ($subtarget_decided_both) {
+ # Final special-case - we are here because the rules file define X-arch AND X-indep but
+ # not X. In this case, we want two d/rules X-{arch,indep} calls rather than a single
+ # d/rules X call.
+ for my $ss_type ((SEQUENCE_TYPE_ARCH_ONLY, SEQUENCE_TYPE_INDEP_ONLY)) {
+ my $rules_target_cmd = $subsequence->as_rules_target_command($ss_type);
+ push(@targets, $rules_target_cmd) if not $seen{$rules_target_cmd}++;
+ }
+ } else {
+ my $rules_target_cmd = $subsequence->as_rules_target_command($opaque_subseq);
+ push(@targets, $rules_target_cmd) if not $seen{$rules_target_cmd}++;
+ }
+ }
+ if ($transparent_subseq) {
+ push(@stack, $current_sequence);
+ $current_sequence = [$subsequence->flatten_sequence($transparent_subseq, $flags)];
+ }
next COMMAND;
} else {
if (defined($rules_target) and not $always_inline) {
next COMMAND if exists($non_inlineable_targets{$rules_target});
- my @opaque_targets = ($rules_target);
- while (my $opaque_target = pop(@opaque_targets)) {
- for my $c (@{$sequences->{$opaque_target}}) {
- my $subtarget = extract_rules_target_name($c);
- next if not defined($subtarget);
- next if exists($non_inlineable_targets{$subtarget});
- $non_inlineable_targets{$subtarget} = $rules_target;
- }
- }
push(@targets, $command) if not $seen{$command}++;
} elsif (! $seen{$command}) {
$seen{$command} = 1;
diff --git a/man/po4a/po/de.po b/man/po4a/po/de.po
index dd679ccb..b2d5df40 100644
--- a/man/po4a/po/de.po
+++ b/man/po4a/po/de.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: debhelper 10.10.10\n"
"Report-Msgid-Bugs-To: debhelper@packages.debian.org\n"
-"POT-Creation-Date: 2018-08-08 14:37+0200\n"
+"POT-Creation-Date: 2019-10-20 17:40+0000\n"
"PO-Revision-Date: 2017-12-12 18:01+0100\n"
"Last-Translator: Chris Leick <c.leick@vollbio.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
@@ -41,7 +41,7 @@ msgid "debhelper - the debhelper tool suite"
msgstr "debhelper - die Debhelper-Werkzeugsammlung"
#. type: =head1
-#: debhelper.pod:7 debhelper-obsolete-compat.pod:5 dh:16 dh_auto_build:16
+#: debhelper.pod:7 debhelper-obsolete-compat.pod:5 dh:20 dh_auto_build:16
#: dh_auto_clean:16 dh_auto_configure:16 dh_auto_install:18 dh_auto_test:16
#: dh_bugfiles:15 dh_builddeb:17 dh_clean:15 dh_compress:17 dh_dwz:16
#: dh_fixperms:16 dh_gconf:15 dh_gencontrol:16 dh_icons:16 dh_install:15
@@ -69,7 +69,7 @@ msgstr ""
"N>I<Paket>] [B<-P>I<temporäres_Verzeichnis>]"
#. type: =head1
-#: debhelper.pod:11 dh:20 dh_auto_build:20 dh_auto_clean:20
+#: debhelper.pod:11 dh:24 dh_auto_build:20 dh_auto_clean:20
#: dh_auto_configure:20 dh_auto_install:22 dh_auto_test:20 dh_bugfiles:19
#: dh_builddeb:21 dh_clean:19 dh_compress:21 dh_dwz:20 dh_fixperms:20
#: dh_gconf:19 dh_gencontrol:20 dh_icons:20 dh_install:19 dh_installcatalogs:21
@@ -140,11 +140,16 @@ msgstr ""
#. type: textblock
#: debhelper.pod:31
+#, fuzzy
+#| msgid ""
+#| "Except where tool explicitly denotes otherwise, all of the debhelper "
+#| "tools assumes that they run from root directory of an unpacked source "
+#| "package. This is so they can locate find F<debian/control> and F<debian/"
+#| "compat> when needed."
msgid ""
"Except where tool explicitly denotes otherwise, all of the debhelper tools "
"assumes that they run from root directory of an unpacked source package. "
-"This is so they can locate find F<debian/control> and F<debian/compat> when "
-"needed."
+"This is so they can locate find files like F<debian/control> when needed."
msgstr ""
"Wo das Werkzeug es nicht ausdrücklich kennzeichnet, gehen alle Debhelper-"
"Werkzeuge davon aus, dass sie aus dem Wurzelverzeichnis eines entpackten "
@@ -382,7 +387,7 @@ msgstr ""
"Detailreicher Modus: zeigt alle Befehle, die das Paketbauverzeichnis ändern"
#. type: =item
-#: debhelper.pod:148 dh:82
+#: debhelper.pod:148 dh:99
msgid "B<--no-act>"
msgstr "B<--no-act>"
@@ -592,8 +597,8 @@ msgid "Do not modify F<postinst>, F<postrm>, etc. scripts."
msgstr "verändert keine F<postinst>-, F<postrm>- etc. Skripte"
#. type: =item
-#: debhelper.pod:228 dh_compress:56 dh_dwz:44 dh_installchangelogs:85
-#: dh_installdocs:99 dh_installexamples:77 dh_link:75 dh_makeshlibs:139
+#: debhelper.pod:228 dh_compress:56 dh_dwz:56 dh_installchangelogs:85
+#: dh_installdocs:99 dh_installexamples:77 dh_link:75 dh_makeshlibs:154
#: dh_md5sums:40 dh_shlibdeps:34 dh_strip:42
msgid "B<-X>I<item>, B<--exclude=>I<item>"
msgstr "B<-X>I<Element>, B<--exclude=>I<Element>"
@@ -671,7 +676,11 @@ msgstr ""
#. type: =item
#: debhelper.pod:257
-msgid "B<-D>I<directory>, B<--sourcedirectory=>I<directory>"
+#, fuzzy
+#| msgid "B<-D>I<directory>, B<--sourcedirectory=>I<directory>"
+msgid ""
+"B<-D>I<directory>, B<--sourcedir=>I<directory>, B<--"
+"sourcedirectory=>I<directory>"
msgstr "B<-D>I<Verzeichnis>, B<--sourcedirectory=>I<Verzeichnis>"
#. type: textblock
@@ -687,7 +696,11 @@ msgstr ""
#. type: =item
#: debhelper.pod:263
-msgid "B<-B>[I<directory>], B<--builddirectory=>[I<directory>]"
+#, fuzzy
+#| msgid "B<-B>[I<directory>], B<--builddirectory=>[I<directory>]"
+msgid ""
+"B<-B>[I<directory>], B<--builddir>[I<=directory>], B<--"
+"builddirectory>[I<=directory>]"
msgstr "B<-B>[I<Verzeichnis>], B<--builddirectory=>[I<Verzeichnis>]"
#. type: textblock
@@ -800,12 +813,79 @@ msgstr ""
"wie die Verwendung von B<--no-parallel>."
#. type: =item
-#: debhelper.pod:304 dh:74
+#: debhelper.pod:304
+msgid "B<--reload-all-buildenv-variables>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:306
+msgid ""
+"By default, L<dh(1)> will compute several environment (e.g. by using L<dpkg-"
+"buildflags(1)>) and cache them to avoid having all B<dh_auto_*> tool "
+"recompute them."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:310
+msgid ""
+"When passing this option, the concrete B<dh_auto_*> tool will ignore the "
+"cache from L<dh(1)> and retrigger a rebuild of these variables. This is "
+"useful in the very rare case where the package need to do multiple builds "
+"but with different B<...FLAGS> options. A concrete example would be needing "
+"to change the B<-O> parameter in B<CFLAGS> in the second build:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:317
+#, no-wrap
+msgid ""
+" export DEB_CFLAGS_MAINT_APPEND=-O3\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:319
+#, no-wrap
+msgid ""
+" %:\n"
+" dh $@\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:322
+#, no-wrap
+msgid ""
+" override_dh_auto_configure:\n"
+" dh_auto_configure -Bbuild-deb ...\n"
+" DEB_CFLAGS_MAINT_APPEND=-Os dh_auto_configure \\\n"
+" --reload-all-buildenv-variables -Bbuild-udeb ...\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:327
+msgid ""
+"Without B<--reload-all-buildenv-variables> in the second call to "
+"L<dh_auto_configure(1)>, the change in B<DEB_CFLAGS_MAINT_APPEND> would be "
+"ignored as L<dh_auto_configure(1)> would use the cached value of B<CFLAGS> "
+"set by L<dh(1)>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:332
+msgid ""
+"This option is only available with B<< debhelper (>= 12.7~) >> when the "
+"package uses compatibility level 9 or later."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:335 dh:91
msgid "B<--list>, B<-l>"
msgstr "B<--list>, B<-l>"
#. type: textblock
-#: debhelper.pod:306
+#: debhelper.pod:337
msgid ""
"List all build systems supported by debhelper on this system. The list "
"includes both default and third party build systems (marked as such). Also "
@@ -819,20 +899,29 @@ msgstr ""
"manuell angegeben wird."
#. type: =head1
-#: debhelper.pod:313
+#: debhelper.pod:344
msgid "COMPATIBILITY LEVELS"
msgstr "KOMPATIBILITÄTSSTUFEN"
#. type: textblock
-#: debhelper.pod:315
+#: debhelper.pod:346
+#, fuzzy
+#| msgid ""
+#| "From time to time, major non-backwards-compatible changes need to be made "
+#| "to debhelper, to keep it clean and well-designed as needs change and its "
+#| "author gains more experience. To prevent such major changes from breaking "
+#| "existing packages, the concept of debhelper compatibility levels was "
+#| "introduced. You must tell debhelper which compatibility level it should "
+#| "use, and it modifies its behavior in various ways. The compatibility "
+#| "level is specified in the F<debian/compat> file and the file must be "
+#| "present."
msgid ""
"From time to time, major non-backwards-compatible changes need to be made to "
"debhelper, to keep it clean and well-designed as needs change and its author "
"gains more experience. To prevent such major changes from breaking existing "
"packages, the concept of debhelper compatibility levels was introduced. You "
"must tell debhelper which compatibility level it should use, and it modifies "
-"its behavior in various ways. The compatibility level is specified in the "
-"F<debian/compat> file and the file must be present."
+"its behavior in various ways."
msgstr ""
"Von Zeit zu Zeit müssen wesentliche, nicht rückwärtskompatible Änderungen an "
"Debhelper vorgenommen werden, um es so ordentlich und gut entworfen wie "
@@ -845,41 +934,68 @@ msgstr ""
"Datei muss vorhanden sein."
#. type: textblock
-#: debhelper.pod:323
+#: debhelper.pod:353
+#, fuzzy
+#| msgid ""
+#| "Tell debhelper what compatibility level to use by writing a number to "
+#| "F<debian/compat>. For example, to use v#RECOMMENDED_COMPAT# mode:"
msgid ""
-"Tell debhelper what compatibility level to use by writing a number to "
-"F<debian/compat>. For example, to use v#RECOMMENDED_COMPAT# mode:"
+"In current debhelper, you can specify the compatibility level in F<debian/"
+"control> by adding a Build-Depends on the debhelper-compat package. For "
+"example, to use v#RECOMMENDED_COMPAT# mode, ensure F<debian/control> has:"
msgstr ""
"Schreiben Sie eine Zahl nach F<debian/compat>, um Debhelper mitzuteilen, "
"welche Kompatibilitätsstufe es nutzen soll. Um beispielsweise den Modus "
"V#RECOMMENDED_COMPAT# zu benutzen, geben Sie Folgendes ein:"
#. type: verbatim
-#: debhelper.pod:326
-#, no-wrap
+#: debhelper.pod:357
+#, fuzzy, no-wrap
+#| msgid ""
+#| " Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
+#| "\n"
msgid ""
-" % echo #RECOMMENDED_COMPAT# > debian/compat\n"
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
"\n"
msgstr ""
-" % echo #RECOMMENDED_COMPAT# > debian/compat\n"
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
"\n"
#. type: textblock
-#: debhelper.pod:328
+#: debhelper.pod:359
+msgid ""
+"This also serves as an appropriate versioned build dependency on a "
+"sufficient version of the debhelper package, so you do not need to specify a "
+"separate versioned build dependency on the debhelper package unless you need "
+"a specific point release of debhelper (such as for the introduction of a new "
+"feature or bugfix within a compatibility level)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:365
+msgid ""
+"Note that debhelper does not provide debhelper-compat for experimental or "
+"beta compatibility levels; packages experimenting with those compatibility "
+"levels should use F<debian/compat> or B<DH_COMPAT>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:369
msgid ""
-"Your package will also need a versioned build dependency on a version of "
-"debhelper equal to (or greater than) the compatibility level your package "
-"uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/control "
-"has:"
+"Prior versions of debhelper required specifying the compatibility level in "
+"the file F<debian/compat>, and current debhelper still supports this for "
+"backward compatibility, though a package may not specify a compatibility "
+"level via multiple methods at once. To use this method, F<debian/compat> "
+"should contain the compatibility level as a single number, and no other "
+"content. If you specify the compatibility level by this method, your package "
+"will also need a versioned build dependency on a version of the debhelper "
+"package equal to (or greater than) the compatibility level your package "
+"uses. So, if you specify compatibility level #RECOMMENDED_COMPAT# in "
+"F<debian/compat>, ensure F<debian/control> has:"
msgstr ""
-"Ihr Paket wird außerdem eine Bauabhängigkeit mit Versionspflege auf eine "
-"Debhelper-Version benötigen, die gleich (oder größer) als die ist, die von "
-"der Kompatibilitätsstufe Ihres Pakets verwandt wird. Daher müssen Sie für "
-"Kompatibilitätsstufe #RECOMMENDED_COMPAT# sicherstellen, dass debian/control "
-"Folgendes hat:"
#. type: verbatim
-#: debhelper.pod:332
+#: debhelper.pod:380
#, fuzzy, no-wrap
#| msgid ""
#| " Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
@@ -892,7 +1008,7 @@ msgstr ""
"\n"
#. type: textblock
-#: debhelper.pod:334
+#: debhelper.pod:382
msgid ""
"Unless otherwise indicated, all debhelper documentation assumes that you are "
"using the most recent compatibility level, and in most cases does not "
@@ -908,27 +1024,27 @@ msgstr ""
"den Unterschieden gegenüber älteren Kompatibilitätsstufen zu lesen."
#. type: =head2
-#: debhelper.pod:341
+#: debhelper.pod:389
msgid "Supported compatibility levels"
msgstr "Unterstützte Kompatibilitätsstufen"
#. type: textblock
-#: debhelper.pod:343
+#: debhelper.pod:391
msgid "These are the available compatibility levels:"
msgstr "Folgende Kompatibilitätsstufen sind verfügbar:"
#. type: =item
-#: debhelper.pod:347 debhelper-obsolete-compat.pod:89
+#: debhelper.pod:395 debhelper-obsolete-compat.pod:89
msgid "v5"
msgstr "v5"
#. type: textblock
-#: debhelper.pod:349 debhelper-obsolete-compat.pod:91
+#: debhelper.pod:397 debhelper-obsolete-compat.pod:91
msgid "This is the lowest supported compatibility level."
msgstr "Dies ist die unterste unterstützte Kompatibilitätsstufe."
#. type: textblock
-#: debhelper.pod:351
+#: debhelper.pod:399
msgid ""
"If you are upgrading from an earlier compatibility level, please review "
"L<debhelper-obsolete-compat(7)>."
@@ -937,39 +1053,41 @@ msgstr ""
"durchführen, überprüfen Sie bitte L<debhelper-obsolete-compat(7)>."
#. type: textblock
-#: debhelper.pod:354 debhelper.pod:386 debhelper.pod:416 debhelper.pod:447
+#: debhelper.pod:402 debhelper.pod:434 debhelper.pod:464 debhelper.pod:495
#: debhelper-obsolete-compat.pod:28 debhelper-obsolete-compat.pod:35
#: debhelper-obsolete-compat.pod:58 debhelper-obsolete-compat.pod:87
msgid "This mode is deprecated."
msgstr "Dieser Modus ist missbilligt."
#. type: =item
-#: debhelper.pod:356
+#: debhelper.pod:404
msgid "v6"
msgstr "v6"
#. type: textblock
-#: debhelper.pod:358
+#: debhelper.pod:406
msgid "Changes from v5 are:"
msgstr "Änderungen gegenüber v5 sind:"
#. type: =item
-#: debhelper.pod:362 debhelper.pod:367 debhelper.pod:373 debhelper.pod:379
-#: debhelper.pod:394 debhelper.pod:401 debhelper.pod:405 debhelper.pod:409
-#: debhelper.pod:424 debhelper.pod:428 debhelper.pod:436 debhelper.pod:441
-#: debhelper.pod:455 debhelper.pod:460 debhelper.pod:467 debhelper.pod:472
-#: debhelper.pod:477 debhelper.pod:485 debhelper.pod:491 debhelper.pod:496
-#: debhelper.pod:501 debhelper.pod:514 debhelper.pod:519 debhelper.pod:525
-#: debhelper.pod:532 debhelper.pod:538 debhelper.pod:543 debhelper.pod:549
-#: debhelper.pod:555 debhelper.pod:565 debhelper.pod:571 debhelper.pod:594
-#: debhelper.pod:601 debhelper.pod:607 debhelper.pod:613 debhelper.pod:629
-#: debhelper.pod:635 debhelper.pod:647 debhelper.pod:655 debhelper.pod:661
-#: debhelper.pod:666 debhelper.pod:671 debhelper.pod:676 debhelper.pod:684
-#: debhelper.pod:694 debhelper.pod:704 debhelper.pod:711 debhelper.pod:723
-#: debhelper.pod:728 debhelper.pod:756 debhelper.pod:775 debhelper.pod:785
-#: debhelper.pod:789 debhelper.pod:794 debhelper.pod:799 debhelper.pod:806
-#: debhelper.pod:812 debhelper.pod:820 debhelper.pod:826 debhelper.pod:830
-#: debhelper.pod:835 debhelper.pod:840 debhelper.pod:849
+#: debhelper.pod:410 debhelper.pod:415 debhelper.pod:421 debhelper.pod:427
+#: debhelper.pod:442 debhelper.pod:449 debhelper.pod:453 debhelper.pod:457
+#: debhelper.pod:472 debhelper.pod:476 debhelper.pod:484 debhelper.pod:489
+#: debhelper.pod:503 debhelper.pod:508 debhelper.pod:515 debhelper.pod:520
+#: debhelper.pod:525 debhelper.pod:533 debhelper.pod:539 debhelper.pod:544
+#: debhelper.pod:549 debhelper.pod:562 debhelper.pod:567 debhelper.pod:573
+#: debhelper.pod:579 debhelper.pod:584 debhelper.pod:590 debhelper.pod:599
+#: debhelper.pod:609 debhelper.pod:615 debhelper.pod:638 debhelper.pod:645
+#: debhelper.pod:651 debhelper.pod:657 debhelper.pod:663 debhelper.pod:692
+#: debhelper.pod:698 debhelper.pod:710 debhelper.pod:718 debhelper.pod:724
+#: debhelper.pod:729 debhelper.pod:734 debhelper.pod:739 debhelper.pod:747
+#: debhelper.pod:757 debhelper.pod:767 debhelper.pod:774 debhelper.pod:786
+#: debhelper.pod:791 debhelper.pod:819 debhelper.pod:838 debhelper.pod:848
+#: debhelper.pod:852 debhelper.pod:857 debhelper.pod:862 debhelper.pod:869
+#: debhelper.pod:875 debhelper.pod:883 debhelper.pod:889 debhelper.pod:893
+#: debhelper.pod:898 debhelper.pod:903 debhelper.pod:912 debhelper.pod:928
+#: debhelper.pod:935 debhelper.pod:951 debhelper.pod:959 debhelper.pod:964
+#: debhelper.pod:979 debhelper.pod:987 debhelper.pod:995
#: debhelper-obsolete-compat.pod:43 debhelper-obsolete-compat.pod:48
#: debhelper-obsolete-compat.pod:52 debhelper-obsolete-compat.pod:66
#: debhelper-obsolete-compat.pod:71 debhelper-obsolete-compat.pod:76
@@ -981,7 +1099,7 @@ msgid "-"
msgstr "-"
#. type: textblock
-#: debhelper.pod:364
+#: debhelper.pod:412
msgid ""
"Commands that generate maintainer script fragments will order the fragments "
"in reverse order for the F<prerm> and F<postrm> scripts."
@@ -990,7 +1108,7 @@ msgstr ""
"für die F<prerm>- und F<postrm>-Skripte in umgekehrter Reiherfolge anordnen."
#. type: textblock
-#: debhelper.pod:369
+#: debhelper.pod:417
msgid ""
"B<dh_installwm> will install a slave manpage link for F<x-window-manager.1."
"gz>, if it sees the man page in F<usr/share/man/man1> in the package build "
@@ -1001,7 +1119,7 @@ msgstr ""
"man/man1> im Bauverzeichnis des Pakets entdeckt."
#. type: textblock
-#: debhelper.pod:375
+#: debhelper.pod:423
msgid ""
"B<dh_builddeb> did not previously delete everything matching "
"B<DH_ALWAYS_EXCLUDE>, if it was set to a list of things to exclude, such as "
@@ -1012,7 +1130,7 @@ msgstr ""
"sollen, wie B<CVS:.svn:.git>. Nun tut es dies."
#. type: textblock
-#: debhelper.pod:381
+#: debhelper.pod:429
msgid ""
"B<dh_installman> allows overwriting existing man pages in the package build "
"directory. In previous compatibility levels it silently refuses to do this."
@@ -1022,17 +1140,17 @@ msgstr ""
"lautlos ab, dies zu tun."
#. type: =item
-#: debhelper.pod:388
+#: debhelper.pod:436
msgid "v7"
msgstr "v7"
#. type: textblock
-#: debhelper.pod:390
+#: debhelper.pod:438
msgid "Changes from v6 are:"
msgstr "Änderungen gegenüber v6 sind:"
#. type: textblock
-#: debhelper.pod:396
+#: debhelper.pod:444
msgid ""
"B<dh_install>, will fall back to looking for files in F<debian/tmp> if it "
"doesn't find them in the current directory (or wherever you tell it look "
@@ -1047,19 +1165,19 @@ msgstr ""
"tmp> installiert, ohne irgendwelche besonderen Parameter zu benötigen."
#. type: textblock
-#: debhelper.pod:403
+#: debhelper.pod:451
msgid "B<dh_clean> will read F<debian/clean> and delete files listed there."
msgstr ""
"B<dh_clean> wird F<debian/clean> lesen und die dort aufgeführten Dateien "
"löschen."
#. type: textblock
-#: debhelper.pod:407
+#: debhelper.pod:455
msgid "B<dh_clean> will delete toplevel F<*-stamp> files."
msgstr "<dh_clean> wird die F<*-stamp>-Dateien der obersten Ebene löschen."
#. type: textblock
-#: debhelper.pod:411
+#: debhelper.pod:459
msgid ""
"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
"none is specified."
@@ -1068,17 +1186,17 @@ msgstr ""
"Änderungsprotokoll der Originalautoren liegt, falls keines angegeben wurde."
#. type: =item
-#: debhelper.pod:418
+#: debhelper.pod:466
msgid "v8"
msgstr "v8"
#. type: textblock
-#: debhelper.pod:420
+#: debhelper.pod:468
msgid "Changes from v7 are:"
msgstr "Änderungen gegenüber v7 sind:"
#. type: textblock
-#: debhelper.pod:426
+#: debhelper.pod:474
msgid ""
"Commands will fail rather than warning when they are passed unknown options."
msgstr ""
@@ -1086,7 +1204,7 @@ msgstr ""
"Optionen übergeben werden."
#. type: textblock
-#: debhelper.pod:430
+#: debhelper.pod:478
msgid ""
"B<dh_makeshlibs> will run B<dpkg-gensymbols> on all shared libraries that it "
"generates shlibs files for. So B<-X> can be used to exclude libraries. "
@@ -1102,7 +1220,7 @@ msgstr ""
"Pakete zum Scheitern bringen."
#. type: textblock
-#: debhelper.pod:438
+#: debhelper.pod:486
msgid ""
"B<dh> requires the sequence to run be specified as the first parameter, and "
"any switches come after it. Ie, use \"B<dh $@ --foo>\", not \"B<dh --foo $@>"
@@ -1113,7 +1231,7 @@ msgstr ""
"»B<dh --foo $@>«."
#. type: textblock
-#: debhelper.pod:443
+#: debhelper.pod:491
msgid ""
"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
"F<Makefile.PL>."
@@ -1121,17 +1239,17 @@ msgstr ""
"B<dh_auto_>I<*> bevorzugt Perls B<Module::Build> gegenüber F<Makefile.PL>."
#. type: =item
-#: debhelper.pod:449
+#: debhelper.pod:497
msgid "v9"
msgstr "v9"
#. type: textblock
-#: debhelper.pod:451
+#: debhelper.pod:499
msgid "Changes from v8 are:"
msgstr "Änderungen gegenüber v8 sind:"
#. type: textblock
-#: debhelper.pod:457
+#: debhelper.pod:505
msgid ""
"Multiarch support. In particular, B<dh_auto_configure> passes multiarch "
"directories to autoconf in --libdir and --libexecdir."
@@ -1140,7 +1258,7 @@ msgstr ""
"Verzeichnisse an Autoconf in --libdir and --libexecdir weiter."
#. type: textblock
-#: debhelper.pod:462
+#: debhelper.pod:510
msgid ""
"dh is aware of the usual dependencies between targets in debian/rules. So, "
"\"dh binary\" will run any build, build-arch, build-indep, install, etc "
@@ -1154,7 +1272,7 @@ msgstr ""
"Zielen zu definieren."
#. type: textblock
-#: debhelper.pod:469
+#: debhelper.pod:517
msgid ""
"B<dh_strip> compresses debugging symbol files to reduce the installed size "
"of -dbg packages."
@@ -1163,7 +1281,7 @@ msgstr ""
"dbg«-Paketen zu verringern."
#. type: textblock
-#: debhelper.pod:474
+#: debhelper.pod:522
msgid ""
"B<dh_auto_configure> does not include the source package name in --"
"libexecdir when using autoconf."
@@ -1172,12 +1290,12 @@ msgstr ""
"Autoconf benutzt wird."
#. type: textblock
-#: debhelper.pod:479
+#: debhelper.pod:527
msgid "B<dh> does not default to enabling --with=python-support"
msgstr "Standardmäßig aktiviert B<dh> nicht --with=python-support."
#. type: textblock
-#: debhelper.pod:481
+#: debhelper.pod:529
msgid ""
"(Obsolete: As the B<dh_pysupport> tool was removed from Debian stretch. "
"Since debhelper/10.3, B<dh> no longer enables this sequence add-on "
@@ -1188,7 +1306,7 @@ msgstr ""
"unabhängig von der Kompatibilitätsstufe nicht mehr."
#. type: textblock
-#: debhelper.pod:487
+#: debhelper.pod:535
msgid ""
"All of the B<dh_auto_>I<*> debhelper programs and B<dh> set environment "
"variables listed by B<dpkg-buildflags>, unless they are already set."
@@ -1198,7 +1316,7 @@ msgstr ""
"sie nicht bereits gesetzt sind."
#. type: textblock
-#: debhelper.pod:493
+#: debhelper.pod:541
msgid ""
"B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and LDFLAGS "
"to perl F<Makefile.PL> and F<Build.PL>"
@@ -1207,7 +1325,7 @@ msgstr ""
"buildflags> an Perls F<Makefile.PL> und F<Build.PL.>"
#. type: textblock
-#: debhelper.pod:498
+#: debhelper.pod:546
msgid ""
"B<dh_strip> puts separated debug symbols in a location based on their build-"
"id."
@@ -1216,7 +1334,7 @@ msgstr ""
"ihrer Baukennzahl basiert."
#. type: textblock
-#: debhelper.pod:503
+#: debhelper.pod:551
msgid ""
"Executable debhelper config files are run and their output used as the "
"configuration."
@@ -1225,17 +1343,17 @@ msgstr ""
"Ausgabe wird als Konfiguration benutzt."
#. type: =item
-#: debhelper.pod:508
+#: debhelper.pod:556
msgid "v10"
msgstr "v10"
#. type: textblock
-#: debhelper.pod:510
+#: debhelper.pod:558
msgid "Changes from v9 are:"
msgstr "Änderungen gegenüber v9 sind:"
#. type: textblock
-#: debhelper.pod:516
+#: debhelper.pod:564
msgid ""
"B<dh_installinit> will no longer install a file named debian/I<package> as "
"an init script."
@@ -1244,7 +1362,7 @@ msgstr ""
"Skript installieren."
#. type: textblock
-#: debhelper.pod:521
+#: debhelper.pod:569
msgid ""
"B<dh_installdocs> will error out if it detects links created with --link-doc "
"between packages of architecture \"all\" and non-\"all\" as it breaks "
@@ -1255,20 +1373,7 @@ msgstr ""
"nicht-»all« erzeugt wurden, da es binNMUs beschädigt."
#. type: textblock
-#: debhelper.pod:527
-msgid ""
-"B<dh> no longer creates the package build directory when skipping running "
-"debhelper commands. This will not affect packages that only build with "
-"debhelper commands, but it may expose bugs in commands not included in "
-"debhelper."
-msgstr ""
-"B<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."
-
-#. type: textblock
-#: debhelper.pod:534
+#: debhelper.pod:575
msgid ""
"B<dh_installdeb> no longer installs a maintainer-provided debian/I<package>."
"shlibs file. This is now done by B<dh_makeshlibs> instead."
@@ -1278,7 +1383,7 @@ msgstr ""
"erledigt."
#. type: textblock
-#: debhelper.pod:540
+#: debhelper.pod:581
msgid ""
"B<dh_installwm> refuses to create a broken package if no man page can be "
"found (required to register for the x-window-manager alternative)."
@@ -1288,7 +1393,7 @@ msgstr ""
"Window-Manager zu registrieren)."
#. type: textblock
-#: debhelper.pod:545
+#: debhelper.pod:586
msgid ""
"Debhelper will default to B<--parallel> for all buildsystems that support "
"parallel building. This can be disabled by using either B<--no-parallel> or "
@@ -1300,7 +1405,7 @@ msgstr ""
"deaktiviert werden."
#. type: textblock
-#: debhelper.pod:551
+#: debhelper.pod:592
msgid ""
"The B<dh> command will not accept any of the deprecated \"manual sequence "
"control\" parameters (B<--before>, B<--after>, etc.). Please use override "
@@ -1311,7 +1416,14 @@ msgstr ""
"verwenden Sie stattdessen Aufhebungsziele."
#. type: textblock
-#: debhelper.pod:557
+#: debhelper.pod:596
+msgid ""
+"B<Retroactively applied to earlier compat levels>: B<dh> no longer accepts "
+"any of these since debhelper/12.4."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:601
msgid ""
"The B<dh> command will no longer use log files to track which commands have "
"been run. The B<dh> command I<still> keeps track of whether it already ran "
@@ -1323,12 +1435,12 @@ msgstr ""
"diesem Fall."
#. type: textblock
-#: debhelper.pod:561
+#: debhelper.pod:605
msgid "The main effects of this are:"
msgstr "Die wichtigsten Auswirkungen davon sind:"
#. type: textblock
-#: debhelper.pod:567
+#: debhelper.pod:611
msgid ""
"With this, it is now easier to debug the I<install> or/and I<binary> "
"sequences because they can now trivially be re-run (without having to do a "
@@ -1340,7 +1452,7 @@ msgstr ""
"ist)."
#. type: textblock
-#: debhelper.pod:573
+#: debhelper.pod:617
msgid ""
"The main caveat is that B<dh_*> now only keeps track of what happened in a "
"single override target. When all the calls to a given B<dh_cmd> command "
@@ -1352,12 +1464,12 @@ msgstr ""
"stattfinden, wird alles wie zuvor funktionieren."
#. type: textblock
-#: debhelper.pod:578
+#: debhelper.pod:622
msgid "Example of where it can go wrong:"
msgstr "Beispiel, bei dem es schiefgehen kann:"
#. type: verbatim
-#: debhelper.pod:580
+#: debhelper.pod:624
#, no-wrap
msgid ""
" override_dh_foo:\n"
@@ -1369,7 +1481,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: debhelper.pod:583
+#: debhelper.pod:627
#, no-wrap
msgid ""
" override_dh_bar:\n"
@@ -1383,7 +1495,7 @@ msgstr ""
"\n"
#. type: textblock
-#: debhelper.pod:587
+#: debhelper.pod:631
msgid ""
"In this case, the call to B<dh_foo --remaining> will I<also> include I<my-"
"pkg>, since B<dh_foo -pmy-pkg> was run in a separate override target. This "
@@ -1395,7 +1507,7 @@ msgstr ""
"begrenzt, es umfasst außerdem B<-a>, B<-i>, etc."
#. type: textblock
-#: debhelper.pod:596
+#: debhelper.pod:640
msgid ""
"The B<dh_installdeb> command now shell-escapes the lines in the "
"F<maintscript> config file. This was the original intent but it did not "
@@ -1409,7 +1521,7 @@ msgstr ""
"(z.B. Dateinamen in Anführungszeichen setzen)."
#. type: textblock
-#: debhelper.pod:603
+#: debhelper.pod:647
msgid ""
"The B<dh_installinit> command now defaults to B<--restart-after-upgrade>. "
"For packages needing the previous behaviour, please use B<--no-restart-after-"
@@ -1420,7 +1532,7 @@ msgstr ""
"erfordern, B<--no-restart-after-upgrade>."
#. type: textblock
-#: debhelper.pod:609
+#: debhelper.pod:653
msgid ""
"The B<autoreconf> sequence is now enabled by default. Please pass B<--"
"without autoreconf> to B<dh> if this is not desirable for a given package"
@@ -1430,7 +1542,7 @@ msgstr ""
"nicht gewünscht wird."
#. type: textblock
-#: debhelper.pod:615
+#: debhelper.pod:659
msgid ""
"The B<systemd> sequence is now enabled by default. Please pass B<--without "
"systemd> to B<dh> if this is not desirable for a given package."
@@ -1439,23 +1551,64 @@ msgstr ""
"B<--without systemd> an B<dh>, falls dies für ein angegebenes Paket nicht "
"gewünscht wird."
+#. type: textblock
+#: debhelper.pod:665
+#, fuzzy
+#| msgid ""
+#| "B<dh> no longer creates the package build directory when skipping running "
+#| "debhelper commands. This will not affect packages that only build with "
+#| "debhelper commands, but it may expose bugs in commands not included in "
+#| "debhelper."
+msgid ""
+"B<Retroactively removed>: B<dh> no longer creates the package build "
+"directory when skipping running debhelper commands. This will not affect "
+"packages that only build with debhelper commands, but it may expose bugs in "
+"commands not included in debhelper."
+msgstr ""
+"B<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."
+
+#. type: textblock
+#: debhelper.pod:670
+msgid ""
+"This compatibility feature had a bug since its inception in "
+"debhelper/9.20130516 that made it fail to apply in compat 9 and earlier. As "
+"there has been no reports of issues caused by this bug in those ~5 years, "
+"this item have been removed rather than fixed."
+msgstr ""
+
#. type: =item
-#: debhelper.pod:621
+#: debhelper.pod:677
msgid "v11"
msgstr "v11"
#. type: textblock
-#: debhelper.pod:623
-msgid "This is the recommended mode of operation."
-msgstr "Dies ist der empfohlene Betriebsmodus."
+#: debhelper.pod:679
+#, fuzzy
+#| msgid "This mode is deprecated."
+msgid "This mode is discouraged."
+msgstr "Dieser Modus ist missbilligt."
#. type: textblock
-#: debhelper.pod:625
+#: debhelper.pod:681
+msgid ""
+"The compat 11 is discouraged for new packages as it suffers from feature "
+"interaction between L<dh_installinit> and L<dh_installsystemd> causing "
+"services to not run correctly in some cases. Please consider using "
+"compatibility mode 10 or 12 instead. More details about the issue are "
+"available in Debian#887904 and L<https://lists.debian.org/debian-"
+"release/2019/04/msg01442.html>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:688
msgid "Changes from v10 are:"
msgstr "Änderungen gegenüber v10 sind:"
#. type: textblock
-#: debhelper.pod:631
+#: debhelper.pod:694
msgid ""
"B<dh_installinit> no longer installs F<service> or F<tmpfile> files, nor "
"generates maintainer scripts for those files. Please use the new "
@@ -1466,7 +1619,7 @@ msgstr ""
"neue Hilfsprogramm B<dh_installsystemd>."
#. type: textblock
-#: debhelper.pod:637
+#: debhelper.pod:700
msgid ""
"The B<dh_systemd_enable> and B<dh_systemd_start> helpers have been replaced "
"by the new B<dh_installsystemd> helper. For the same reason, the B<systemd> "
@@ -1481,7 +1634,7 @@ msgstr ""
# FIXME s/have/has/
#. type: textblock
-#: debhelper.pod:643
+#: debhelper.pod:706
msgid ""
"Please note that the B<dh_installsystemd> tool has a slightly different "
"behaviour in some cases (e.g. when using the B<--name> parameter)."
@@ -1491,7 +1644,7 @@ msgstr ""
"verhält."
#. type: textblock
-#: debhelper.pod:649
+#: debhelper.pod:712
msgid ""
"B<dh_installdirs> no longer creates debian/I<package> directories unless "
"explicitly requested (or it has to create a subdirectory in it)."
@@ -1501,25 +1654,30 @@ msgstr ""
"darin erstellt werden)."
#. type: textblock
-#: debhelper.pod:653
+#: debhelper.pod:716
msgid "The vast majority of all packages will be unaffected by this change."
msgstr ""
"Die große Mehrheit aller Pakete wird von dieser Änderung nicht betroffen "
"sein."
#. type: textblock
-#: debhelper.pod:657
+#: debhelper.pod:720
+#, fuzzy
+#| msgid ""
+#| "The B<makefile> buildsystem now passes B<INSTALL=install --strip-"
+#| "program=true> to L<make(1)>. Derivative buildsystems (e.g. B<configure> "
+#| "or B<cmake>) are unaffected by this change."
msgid ""
-"The B<makefile> buildsystem now passes B<INSTALL=install --strip-"
-"program=true> to L<make(1)>. Derivative buildsystems (e.g. B<configure> or "
-"B<cmake>) are unaffected by this change."
+"The B<makefile> buildsystem now passes B<INSTALL=\"install --strip-"
+"program=true\"> to L<make(1)>. Derivative buildsystems (e.g. B<configure> "
+"or B<cmake>) are unaffected by this change."
msgstr ""
"Das B<makefile>-Bausystem übergibt nun B<INSTALL=install --strip-"
"program=true> an L<make(1)>. Davon abgeleitete Bausysteme (z.B. B<configure> "
"oder B<cmake>) sind von dieser Änderung nicht betroffen."
#. type: textblock
-#: debhelper.pod:663
+#: debhelper.pod:726
msgid ""
"The B<autoconf> buildsystem now passes B<--runstatedir=/run> to F<./"
"configure>."
@@ -1528,7 +1686,7 @@ msgstr ""
"configure>."
#. type: textblock
-#: debhelper.pod:668
+#: debhelper.pod:731
msgid ""
"The B<cmake> buildsystem now passes B<-DCMAKE_INSTALL_RUNSTATEDIR=/run> to "
"L<cmake(1)>."
@@ -1537,7 +1695,7 @@ msgstr ""
"L<cmake(1)>."
#. type: textblock
-#: debhelper.pod:673
+#: debhelper.pod:736
msgid ""
"B<dh_installman> will now prefer detecting the language from the path name "
"rather than the extension."
@@ -1546,7 +1704,7 @@ msgstr ""
"statt der Erweiterung bestimmen."
#. type: textblock
-#: debhelper.pod:678
+#: debhelper.pod:741
msgid ""
"B<dh_auto_install> will now only create the destination directory it needs. "
"Previously, it would create the package build directory for all packages. "
@@ -1560,7 +1718,7 @@ msgstr ""
"enthalten sind."
#. type: textblock
-#: debhelper.pod:686
+#: debhelper.pod:749
msgid ""
"The helpers B<dh_installdocs>, B<dh_installexamples>, B<dh_installinfo>, and "
"B<dh_installman> now error out if their config has a pattern that does not "
@@ -1572,7 +1730,7 @@ msgstr ""
"einen Pfad bezieht, den es nicht gibt."
#. type: textblock
-#: debhelper.pod:690
+#: debhelper.pod:753
msgid ""
"Known exceptions include building with the B<nodoc> profile, where the above "
"tools will silently permit failed matches where the patterns are used to "
@@ -1583,7 +1741,7 @@ msgstr ""
"Suchmuster zur Angabe von Dokumentation benutzt werden."
#. type: textblock
-#: debhelper.pod:696
+#: debhelper.pod:759
msgid ""
"The helpers B<dh_installdocs>, B<dh_installexamples>, B<dh_installinfo>, and "
"B<dh_installman> now accept the parameter B<--sourcedir> with same meaning "
@@ -1596,7 +1754,7 @@ msgstr ""
"sie nun auch auf F<debian/tmp> wie B<dh_install> zurück."
#. type: textblock
-#: debhelper.pod:701
+#: debhelper.pod:764
msgid ""
"Migration note: A bug in debhelper 11 up to 11.1.5 made B<dh_installinfo> "
"incorrectly ignore B<--sourcedir>."
@@ -1604,7 +1762,7 @@ msgstr ""
# FIXME s/can emulate it/can get an emulation of it/ (or emulate it)
#. type: textblock
-#: debhelper.pod:706
+#: debhelper.pod:769
msgid ""
"The B<perl-makemaker> and B<perl-build> build systems no longer pass B<-I.> "
"to perl. Packages that still need this behaviour can emulate it by using "
@@ -1618,7 +1776,7 @@ msgstr ""
"dergleichen)."
#. type: textblock
-#: debhelper.pod:713
+#: debhelper.pod:776
msgid ""
"The B<PERL_USE_UNSAFE_INC> environment variable is no longer set by B<dh> or "
"any of the B<dh_auto_*> tools. It was added as a temporary work around to "
@@ -1630,7 +1788,7 @@ msgstr ""
"Pakete scheitert."
#. type: textblock
-#: debhelper.pod:718
+#: debhelper.pod:781
msgid ""
"Note this item will eventually become obsolete as upstream intends to drop "
"support for the B<PERL_USE_UNSAFE_INC> environment variable. When perl "
@@ -1644,7 +1802,7 @@ msgstr ""
"Kompatibilitätsstufen entfernt."
#. type: textblock
-#: debhelper.pod:725
+#: debhelper.pod:788
msgid ""
"The B<dh_makeshlibs> helper will now exit with an error if objdump returns a "
"non-zero exit from analysing a given file."
@@ -1654,7 +1812,7 @@ msgstr ""
"übergebenen Datei zurückgibt."
#. type: textblock
-#: debhelper.pod:730
+#: debhelper.pod:793
msgid ""
"The B<dh_installdocs> and B<dh_installexamples> tools may now install "
"I<most> of the documentation in a different path to comply with the "
@@ -1662,7 +1820,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:734
+#: debhelper.pod:797
msgid ""
"Note that if a given source package only contains a single binary package in "
"F<debian/control> or none of the packages are I<-doc> packages, then this "
@@ -1671,7 +1829,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:739
+#: debhelper.pod:802
msgid ""
"By default, these tools will now attempt to determine a \"main package for "
"the documentation\" (called a I<doc-main-package> from here on) for every I<-"
@@ -1682,7 +1840,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:747
+#: debhelper.pod:810
#, fuzzy
#| msgid ""
#| "The B<--doc-main-package> option can be used when the auto-detection is "
@@ -1696,7 +1854,7 @@ msgstr ""
"Erkennung unzureichend ist."
#. type: textblock
-#: debhelper.pod:751
+#: debhelper.pod:814
msgid ""
"Some documentation will not be affected by this change. These exceptions "
"include the copyright file, changelog files, README.Debian, etc. These "
@@ -1704,7 +1862,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:758
+#: debhelper.pod:821
msgid ""
"The B<dh_strip> and B<dh_shlibdeps> tools no longer uses filename patterns "
"to determine which files to process. Instead, they open the file and look "
@@ -1718,32 +1876,29 @@ msgstr ""
"ausführbares binäres Programm ist."
#. type: textblock
-#: debhelper.pod:763
+#: debhelper.pod:826
msgid "This change may cause the tools to process more files than previously."
msgstr ""
"Diese Änderung kann dazu führen, dass mehr Dateien als vorher verarbeitet "
"werden."
#. type: =item
-#: debhelper.pod:767
+#: debhelper.pod:830
msgid "v12"
msgstr "v12"
#. type: textblock
-#: debhelper.pod:769
-msgid ""
-"This compatibility level is still open for development; use with caution."
-msgstr ""
-"Diese Kompatibilitätsstufe ist immer noch für die Entwicklung offen. "
-"Verwenden Sie sie mit Vorsicht."
+#: debhelper.pod:832
+msgid "This is the recommended mode of operation."
+msgstr "Dies ist der empfohlene Betriebsmodus."
#. type: textblock
-#: debhelper.pod:771
+#: debhelper.pod:834
msgid "Changes from v11 are:"
msgstr "Änderungen gegenüber v11 sind:"
#. type: textblock
-#: debhelper.pod:777
+#: debhelper.pod:840
msgid ""
"The B<dh_makeshlibs> tool now generates shlibs files with versioned "
"dependency by default. This means that B<-VUpstream-Version> (a.k.a. B<-V>) "
@@ -1751,7 +1906,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:781
+#: debhelper.pod:844
msgid ""
"If an unversioned dependency in the shlibs file is wanted, this can be "
"obtained by passing B<-VNone> instead. However, please see "
@@ -1759,7 +1914,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:787
+#: debhelper.pod:850
msgid ""
"The B<-s> (B<--same-arch>) option is removed. Please use B<-a> (B<--arch>) "
"instead."
@@ -1768,7 +1923,7 @@ msgstr ""
"stattdessen B<-a> (B<--arch>)."
#. type: textblock
-#: debhelper.pod:791
+#: debhelper.pod:854
msgid ""
"Invoking B<dh_clean -k> now causes an error instead of a deprecation warning."
msgstr ""
@@ -1776,7 +1931,7 @@ msgstr ""
"Warnung, es sei missbilligt."
#. type: textblock
-#: debhelper.pod:796
+#: debhelper.pod:859
msgid ""
"The B<--no-restart-on-upgrade> option in B<dh_installinit> has been "
"removed. Please use the new name B<--no-stop-on-upgrade>"
@@ -1785,7 +1940,7 @@ msgstr ""
"Bitte verwenden Sie den neuen Namen B<--no-stop-on-upgrade>."
#. type: textblock
-#: debhelper.pod:801
+#: debhelper.pod:864
msgid ""
"There was a bug in the B<doit> (and similar) functions from L<Debian::"
"Debhelper::Dh_Lib> that made them spawn a shell in one particular "
@@ -1798,7 +1953,7 @@ msgstr ""
"auf den Fehler setzen, mit der Meldung »command not found« fehlschlagen."
#. type: textblock
-#: debhelper.pod:808
+#: debhelper.pod:871
msgid ""
"The B<--list-missing> and B<--fail-missing> in B<dh_install> has been "
"removed. Please use B<dh_missing> and its corresponding options, which can "
@@ -1809,7 +1964,7 @@ msgstr ""
"durch andere Hilfsprogramme installierten Dateien ebenfalls sehen können."
#. type: textblock
-#: debhelper.pod:814
+#: debhelper.pod:877
msgid ""
"The B<dh_installinit> helper no longer installs configuration for the "
"upstart init system. Instead, it will abort the build if it finds an old "
@@ -1825,7 +1980,7 @@ msgstr ""
"entfernen."
#. type: textblock
-#: debhelper.pod:822
+#: debhelper.pod:885
msgid ""
"The B<dh_installdeb> tool will do basic validation of some L<dpkg-"
"maintscript-helper(1)> commands and will error out if the commands appear to "
@@ -1836,26 +1991,26 @@ msgstr ""
"falls die Befehle ungültig zu sein scheinen."
#. type: textblock
-#: debhelper.pod:828
+#: debhelper.pod:891
msgid "The B<dh_missing> tool will now default to B<--list-missing>."
msgstr ""
#. type: textblock
-#: debhelper.pod:832
+#: debhelper.pod:895
msgid ""
"The B<dh_makeshlibs> tool will now only pass libraries to L<dpkg-"
"gensymbols(1)> if the ELF binary has a SONAME (containing \".so\")."
msgstr ""
#. type: textblock
-#: debhelper.pod:837
+#: debhelper.pod:900
msgid ""
"The B<dh_compress> tool no longer compresses examples (i.e. anything "
"installed in F<</usr/share/doc/I<package>/examples>>.)"
msgstr ""
#. type: textblock
-#: debhelper.pod:842
+#: debhelper.pod:905
msgid ""
"The standard sequence in B<dh> now includes B<dh_dwz> and "
"B<dh_installinitramfs> by default. This makes the B<dwz> and "
@@ -1865,7 +2020,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:851
+#: debhelper.pod:914
msgid ""
"The build systems B<meson> and B<autoconf> no longer explicitly set the B<--"
"libexecdir> variable and thus relies on the build system default - which "
@@ -1873,7 +2028,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:856
+#: debhelper.pod:919
msgid ""
"If a particular upstream package does not use the correct default, the "
"parameter can often be passed manually via L<dh_auto_configure(1)>. E.g. "
@@ -1881,7 +2036,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: debhelper.pod:860
+#: debhelper.pod:923
#, fuzzy, no-wrap
#| msgid ""
#| "\toverride_dh_auto_configure:\n"
@@ -1897,12 +2052,126 @@ msgstr ""
"\n"
#. type: textblock
-#: debhelper.pod:863
+#: debhelper.pod:926
msgid "Note the B<--> before the B<--libexecdir> parameter."
msgstr ""
+#. type: textblock
+#: debhelper.pod:930
+msgid ""
+"The B<dh_installdeb> tool no longer installs the maintainer provided "
+"F<conffiles> file. The file has mostly been obsolete since compatibility "
+"level 3, where B<dh_installdeb> began to automatically compute the resulting "
+"F<conffiles> control file."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:937
+msgid ""
+"The B<dh_installsystemd> tool no longer relies on B<dh_installinit> for "
+"handling systemd services that have a sysvinit alternative. Both tools must "
+"now be used in such a case to ensure the service is properly started under "
+"both sysvinit and systemd."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:942
+msgid ""
+"If you have an override for B<dh_installinit> (e.g. to call it with B<--no-"
+"start>) then you will probably need one for B<dh_installsystemd> as well now."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:946
+msgid ""
+"This change makes B<dh_installinit> inject a I<misc:Pre-Depends> for B<< "
+"init-system-helpers (>= 1.54~) >>. Please ensure that the package lists B<"
+"${misc:Pre-Depends}> in its B<Pre-Depends> field before upgrading to compat "
+"12."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:953
+msgid ""
+"The third-party B<dh_golang> tool (from B<dh-golang> package) now defaults "
+"on honoring B<DH_GOLANG_EXCLUDES> variable for source installation in -dev "
+"packages and not only during the building process. Please set "
+"B<DH_GOLANG_EXCLUDES_ALL> to false to revert to the previous behaviour. See "
+"B<Debian::Debhelper::Buildsystem::golang(3pm)> for details and examples."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:961
+msgid ""
+"B<dh_installsystemduser> is now included in the B<dh> standard sequence by "
+"default."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:966
+msgid ""
+"The B<python-distutils> buildsystem is now removed. Please use the third-"
+"party build system B<pybuild> instead."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:971
+#, fuzzy
+#| msgid "v1"
+msgid "v13"
+msgstr "v1"
+
+#. type: textblock
+#: debhelper.pod:973 strings-kept-translations.pod:9
+msgid ""
+"This compatibility level is still open for development; use with caution."
+msgstr ""
+"Diese Kompatibilitätsstufe ist immer noch für die Entwicklung offen. "
+"Verwenden Sie sie mit Vorsicht."
+
+#. type: textblock
+#: debhelper.pod:975
+#, fuzzy
+#| msgid "Changes from v10 are:"
+msgid "Changes from v12 are:"
+msgstr "Änderungen gegenüber v10 sind:"
+
+#. type: textblock
+#: debhelper.pod:981
+msgid ""
+"The B<meson+ninja> build system now uses B<meson test> instead of B<ninja "
+"test> when running the test suite. Any override of B<dh_auto_test> that "
+"passes extra parameters to upstream test runner should be reviewed as "
+"B<meson test> is not command line compatible with B<ninja test>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:989
+msgid ""
+"All debhelper like tools based on the official debhelper library (including "
+"B<dh> and the official B<dh_*> tools) no longer accepts abbreviated command "
+"parameters. At the same time, B<dh> now optimizes out calls to redundant "
+"B<dh_*> helpers even when passed long command line options."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:997
+msgid ""
+"The ELF related debhelper tools (B<dh_dwz>, B<dh_strip>, B<dh_makeshlibs>, "
+"B<dh_shlibdeps>) are now only run for arch dependent packages by default (i."
+"e. they are excluded from B<*-indep> targets and are passed B<-a> by "
+"default)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:1002
+msgid ""
+"If you need them for B<*-indep> targets, you can add an explicit Build-"
+"Depends on B<dh-sequence-elf-tools>."
+msgstr ""
+
#. type: =head1
-#: debhelper.pod:869 dh_auto_test:48 dh_dwz:57 dh_installcatalogs:64
+#: debhelper.pod:1009 dh_auto_test:48 dh_dwz:69 dh_installcatalogs:64
#: dh_installdocs:192 dh_installemacsen:75 dh_installexamples:89
#: dh_installinit:205 dh_installinitramfs:53 dh_installman:128
#: dh_installmodules:57 dh_installudev:50 dh_installwm:63 dh_installxfonts:40
@@ -1912,12 +2181,12 @@ msgid "NOTES"
msgstr "ANMERKUNGEN"
#. type: =head2
-#: debhelper.pod:871
+#: debhelper.pod:1011
msgid "Multiple binary package support"
msgstr "Unterstützung mehrerer Binärpakete"
#. type: textblock
-#: debhelper.pod:873
+#: debhelper.pod:1013
msgid ""
"If your source package generates more than one binary package, debhelper "
"programs will default to acting on all binary packages when run. If your "
@@ -1936,7 +2205,7 @@ msgstr ""
"Ziel »binary-indep«."
#. type: textblock
-#: debhelper.pod:881
+#: debhelper.pod:1021
msgid ""
"To facilitate this, as well as give you more control over which packages are "
"acted on by debhelper programs, all debhelper programs accept the B<-a>, B<-"
@@ -1952,7 +2221,7 @@ msgstr ""
"sind, mit nachfolgenden Ausnahmen."
#. type: textblock
-#: debhelper.pod:887
+#: debhelper.pod:1027
msgid ""
"First, any package whose B<Architecture> field in B<debian/control> does not "
"match the B<DEB_HOST_ARCH> architecture will be excluded (L<Debian Policy, "
@@ -1963,7 +2232,7 @@ msgstr ""
"(L<Debian Policy, Abschnitt 5.6.8>)."
#. type: textblock
-#: debhelper.pod:891
+#: debhelper.pod:1031
msgid ""
"Also, some additional packages may be excluded based on the contents of the "
"B<DEB_BUILD_PROFILES> environment variable and B<Build-Profiles> fields in "
@@ -1977,12 +2246,12 @@ msgstr ""
"BuildProfileSpec>."
#. type: =head3
-#: debhelper.pod:896
+#: debhelper.pod:1036
msgid "Interaction between package selections and Build-Profiles"
msgstr "Zusammenspiel zwischen Paketauswahl und Bauprofilen"
#. type: textblock
-#: debhelper.pod:898
+#: debhelper.pod:1038
msgid ""
"Build-Profiles affect which packages are included in the package selections "
"mechanisms in debhelper. Generally, the package selections are described "
@@ -1997,13 +2266,13 @@ msgstr ""
"Bauprofils (oder das Fehlen des aktiven Bauprofils) deaktiviert wird."
#. type: =item
-#: debhelper.pod:906
+#: debhelper.pod:1046
msgid "-a/--arch, -i/--indep OR no selection options (a raw \"dh_X\" call)"
msgstr ""
"-a/--arch, -i/--indep ODER keine Auswahloptionen (ein roher »dh_X«-Aufruf)"
#. type: textblock
-#: debhelper.pod:908
+#: debhelper.pod:1048
msgid ""
"The package disabled by Build-Profiles is silently excluded from the "
"selection."
@@ -2012,7 +2281,7 @@ msgstr ""
"ausgeschlossen."
#. type: textblock
-#: debhelper.pod:911
+#: debhelper.pod:1051
msgid ""
"Note you will receive a warning if I<all> packages related to these "
"selections are disabled. In that case, it generally does not make sense to "
@@ -2023,29 +2292,29 @@ msgstr ""
"Allgemeinen überhaupt sinnlos."
#. type: =item
-#: debhelper.pod:915
+#: debhelper.pod:1055
msgid "-N I<package> / --no-package I<package>"
msgstr "-N I<Paket> / --no-package I<Paket>"
#. type: textblock
-#: debhelper.pod:917
+#: debhelper.pod:1057
msgid "The option is accepted and effectively does nothing."
msgstr "Die Option wird akzeptiert und hat keine Wirkung."
#. type: =item
-#: debhelper.pod:919
+#: debhelper.pod:1059
msgid "-p I<package> / --package I<package>"
msgstr "-p I<Paket> / --package I<Paket>"
#. type: textblock
-#: debhelper.pod:921
+#: debhelper.pod:1061
msgid "The option is accepted, but debhelper will not act on the package."
msgstr ""
"Die Option wird akzeptiert, aber Debhelper wird nichts an dem Paket "
"vornehmen."
#. type: textblock
-#: debhelper.pod:925
+#: debhelper.pod:1065
msgid ""
"Note that it does not matter whether a package is enabled or disabled by "
"default."
@@ -2054,12 +2323,12 @@ msgstr ""
"aktiviert oder deaktiviert ist."
#. type: =head2
-#: debhelper.pod:928
+#: debhelper.pod:1068
msgid "Automatic generation of Debian install scripts"
msgstr "Automatisches Erzeugen von Debian-Installationsskripten"
#. type: textblock
-#: debhelper.pod:930
+#: debhelper.pod:1070
msgid ""
"Some debhelper commands will automatically generate parts of Debian "
"maintainer scripts. If you want these automatically generated things "
@@ -2076,7 +2345,7 @@ msgstr ""
"erzeugten Kode ersetzt."
#. type: textblock
-#: debhelper.pod:937
+#: debhelper.pod:1077
msgid ""
"If a script does not exist at all and debhelper needs to add something to "
"it, then debhelper will create the complete script."
@@ -2085,7 +2354,7 @@ msgstr ""
"hinzufügen muss, dann wird Debhelper das komplette Skript erstellen."
#. type: textblock
-#: debhelper.pod:940
+#: debhelper.pod:1080
msgid ""
"All debhelper commands that automatically generate code in this way let it "
"be disabled by the -n parameter (see above)."
@@ -2094,7 +2363,7 @@ msgstr ""
"dies durch den Parameter -n deaktiviert (siehe oben)."
#. type: textblock
-#: debhelper.pod:943
+#: debhelper.pod:1083
msgid ""
"Note that the inserted code will be shell code, so you cannot directly use "
"it in a Perl script. If you would like to embed it into a Perl script, here "
@@ -2108,7 +2377,7 @@ msgstr ""
"etc. gesetzt sind):"
#. type: verbatim
-#: debhelper.pod:948
+#: debhelper.pod:1088
#, no-wrap
msgid ""
" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
@@ -2140,12 +2409,12 @@ msgstr ""
"\n"
#. type: =head2
-#: debhelper.pod:961
+#: debhelper.pod:1101
msgid "Automatic generation of miscellaneous dependencies."
msgstr "Automatisches Erzeugen verschiedener Abhängigkeiten"
#. type: textblock
-#: debhelper.pod:963
+#: debhelper.pod:1103
msgid ""
"Some debhelper commands may make the generated package need to depend on "
"some other packages. For example, if you use L<dh_installdebconf(1)>, your "
@@ -2165,7 +2434,7 @@ msgstr ""
"bietet, sie zu automatisieren."
#. type: textblock
-#: debhelper.pod:971
+#: debhelper.pod:1111
msgid ""
"All commands of this type, besides documenting what dependencies may be "
"needed on their man pages, will automatically generate a substvar called B<"
@@ -2179,7 +2448,7 @@ msgstr ""
"Debhelper findet, dass Sie sie benötigen."
#. type: textblock
-#: debhelper.pod:976
+#: debhelper.pod:1116
msgid ""
"This is entirely independent of the standard B<${shlibs:Depends}> generated "
"by L<dh_makeshlibs(1)>, and the B<${perl:Depends}> generated by "
@@ -2193,12 +2462,12 @@ msgstr ""
"entspricht."
#. type: =head2
-#: debhelper.pod:981
+#: debhelper.pod:1121
msgid "Package build directories"
msgstr "Paketbauverzeichnisse"
#. type: textblock
-#: debhelper.pod:983
+#: debhelper.pod:1123
msgid ""
"By default, all debhelper programs assume that the temporary directory used "
"for assembling the tree of files in a package is debian/I<package>."
@@ -2208,7 +2477,7 @@ msgstr ""
"debian/I<Paket> ist."
#. type: textblock
-#: debhelper.pod:986
+#: debhelper.pod:1126
msgid ""
"Sometimes, you might want to use some other temporary directory. This is "
"supported by the B<-P> flag. For example, \"B<dh_installdocs -Pdebian/tmp>"
@@ -2228,12 +2497,12 @@ msgstr ""
"Debhelper-Programm auswirkt."
#. type: =head2
-#: debhelper.pod:994
+#: debhelper.pod:1134
msgid "udebs"
msgstr "Udebs"
#. type: textblock
-#: debhelper.pod:996
+#: debhelper.pod:1136
msgid ""
"Debhelper includes support for udebs. To create a udeb with debhelper, add "
"\"B<Package-Type: udeb>\" to the package's stanza in F<debian/control>. "
@@ -2251,12 +2520,12 @@ msgstr ""
"übersprungen werden."
#. type: =head1
-#: debhelper.pod:1003
+#: debhelper.pod:1143
msgid "ENVIRONMENT"
msgstr "UMGEBUNGSVARIABLEN"
#. type: textblock
-#: debhelper.pod:1005
+#: debhelper.pod:1145
msgid ""
"The following environment variables can influence the behavior of "
"debhelper. It is important to note that these must be actual environment "
@@ -2272,12 +2541,12 @@ msgstr ""
"Beispiel »B<export DH_VERBOSE>«."
#. type: =item
-#: debhelper.pod:1013
+#: debhelper.pod:1153
msgid "B<DH_VERBOSE>"
msgstr "B<DH_VERBOSE>"
#. type: textblock
-#: debhelper.pod:1015
+#: debhelper.pod:1155
msgid ""
"Set to B<1> to enable verbose mode. Debhelper will output every command it "
"runs. Also enables verbose build logs for some build systems like autoconf."
@@ -2288,12 +2557,12 @@ msgstr ""
"aktiviert."
#. type: =item
-#: debhelper.pod:1018
+#: debhelper.pod:1158
msgid "B<DH_QUIET>"
msgstr "B<DH_QUIET>"
#. type: textblock
-#: debhelper.pod:1020
+#: debhelper.pod:1160
msgid ""
"Set to B<1> to enable quiet mode. Debhelper will not output commands calling "
"the upstream build system nor will dh print which subcommands are called and "
@@ -2310,36 +2579,41 @@ msgstr ""
"wird diese Einstellung ignoriert."
#. type: =item
-#: debhelper.pod:1027
+#: debhelper.pod:1167
msgid "B<DH_COMPAT>"
msgstr "B<DH_COMPAT>"
#. type: textblock
-#: debhelper.pod:1029
+#: debhelper.pod:1169
+#, fuzzy
+#| msgid ""
+#| "Temporarily specifies what compatibility level debhelper should run at, "
+#| "overriding any value in F<debian/compat>."
msgid ""
"Temporarily specifies what compatibility level debhelper should run at, "
-"overriding any value in F<debian/compat>."
+"overriding any value specified via Build-Depends on debhelper-compat or via "
+"the F<debian/compat> file."
msgstr ""
"gibt vorübergehend an, auf welcher Kompatibilitätsstufe Debhelper ausgeführt "
"werden sollte und setzt dabei jeden Wert in F<debian/compat> außer Kraft."
#. type: =item
-#: debhelper.pod:1032
+#: debhelper.pod:1173
msgid "B<DH_NO_ACT>"
msgstr "B<DH_NO_ACT>"
#. type: textblock
-#: debhelper.pod:1034
+#: debhelper.pod:1175
msgid "Set to B<1> to enable no-act mode."
msgstr "auf B<1> gesetzt, um Modus ohne Aktion zu aktivieren."
#. type: =item
-#: debhelper.pod:1036
+#: debhelper.pod:1177
msgid "B<DH_OPTIONS>"
msgstr "B<DH_OPTIONS>"
#. type: textblock
-#: debhelper.pod:1038
+#: debhelper.pod:1179
msgid ""
"Anything in this variable will be prepended to the command line arguments of "
"all debhelper commands."
@@ -2348,7 +2622,7 @@ msgstr ""
"Befehle vorangestellt."
#. type: textblock
-#: debhelper.pod:1041
+#: debhelper.pod:1182
msgid ""
"When using L<dh(1)>, it can be passed options that will be passed on to each "
"debhelper command, which is generally better than using DH_OPTIONS."
@@ -2358,12 +2632,12 @@ msgstr ""
"DH_OPTIONS zu verwenden."
#. type: =item
-#: debhelper.pod:1044
+#: debhelper.pod:1185
msgid "B<DH_ALWAYS_EXCLUDE>"
msgstr "B<DH_ALWAYS_EXCLUDE>"
#. type: textblock
-#: debhelper.pod:1046
+#: debhelper.pod:1187
msgid ""
"If set, this adds the value the variable is set to to the B<-X> options of "
"all commands that support the B<-X> option. Moreover, B<dh_builddeb> will "
@@ -2375,7 +2649,7 @@ msgstr ""
"entspricht, B<rm -rf> ausführen."
#. type: textblock
-#: debhelper.pod:1050
+#: debhelper.pod:1191
msgid ""
"This can be useful if you are doing a build from a CVS source tree, in which "
"case setting B<DH_ALWAYS_EXCLUDE=CVS> will prevent any CVS directories from "
@@ -2393,7 +2667,7 @@ msgstr ""
"ist, wo auch immer Ihr Paket gebaut wird."
#. type: textblock
-#: debhelper.pod:1057
+#: debhelper.pod:1198
msgid ""
"Multiple things to exclude can be separated with colons, as in "
"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
@@ -2402,14 +2676,14 @@ msgstr ""
"getrennt werden, wie in B<DH_ALWAYS_EXCLUDE=CVS:.svn>."
#. type: =item
-#: debhelper.pod:1060
+#: debhelper.pod:1201
#, fuzzy
#| msgid "B<DH_OPTIONS>"
msgid "B<DH_EXTRA_ADDONS>"
msgstr "B<DH_OPTIONS>"
#. type: textblock
-#: debhelper.pod:1062
+#: debhelper.pod:1203
msgid ""
"If set, this adds the specified dh addons to be run in the appropriate "
"places in the sequence of commands. This is equivalent to specifying the "
@@ -2418,7 +2692,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:1067
+#: debhelper.pod:1208
msgid ""
"This is intended to be used by downstreams or specific local configurations "
"that require a debhelper addon to be run during multiple builds without "
@@ -2426,78 +2700,97 @@ msgid ""
"should be avoided in favor of a --with flag in the rules file."
msgstr ""
+#. type: =item
+#: debhelper.pod:1213
+msgid ""
+"B<CFLAGS>, B<CPPFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, "
+"B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS>, B<LDFLAGS>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:1215
+msgid ""
+"By default (in any non-deprecated compat level), debhelper will "
+"automatically set these flags by using L<dpkg-buildflags(1)>, when they are "
+"unset. If you need to change the default flags, please use the features "
+"from L<dpkg-buildflags(1)> to do this (e.g. "
+"B<DEB_BUILD_MAINT_OPTIONS=hardening=all> or B<DEB_CPPFLAGS_MAINT_APPEND=-"
+"DCUSTOM_MACRO=true>) rather than setting the concrete variable directly."
+msgstr ""
+
#. type: =head1
-#: debhelper.pod:1074 debhelper-obsolete-compat.pod:118 dh:1093
+#: debhelper.pod:1224 debhelper-obsolete-compat.pod:118 dh:1220
#: dh_auto_build:53 dh_auto_clean:55 dh_auto_configure:58 dh_auto_install:97
-#: dh_auto_test:64 dh_bugfiles:133 dh_builddeb:182 dh_clean:185 dh_compress:236
-#: dh_dwz:141 dh_fixperms:162 dh_gconf:101 dh_gencontrol:207 dh_icons:75
-#: dh_install:350 dh_installcatalogs:125 dh_installchangelogs:300
-#: dh_installcron:78 dh_installdeb:266 dh_installdebconf:128 dh_installdirs:128
-#: dh_installdocs:444 dh_installemacsen:137 dh_installexamples:175
-#: dh_installifupdown:72 dh_installinfo:107 dh_installinit:406
-#: dh_installinitramfs:86 dh_installlogcheck:81 dh_installlogrotate:53
-#: dh_installman:362 dh_installmanpages:198 dh_installmenu:88 dh_installmime:63
-#: dh_installmodules:109 dh_installpam:62 dh_installppp:68 dh_installudev:100
-#: dh_installwm:127 dh_installxfonts:96 dh_link:163 dh_lintian:60
-#: dh_listpackages:35 dh_makeshlibs:355 dh_md5sums:117 dh_movefiles:161
-#: dh_perl:159 dh_prep:70 dh_shlibdeps:199 dh_strip:426 dh_testdir:63
-#: dh_testroot:91 dh_usrlocal:136 dh_systemd_enable:281 dh_systemd_start:269
+#: dh_auto_test:64 dh_bugfiles:133 dh_builddeb:182 dh_clean:186 dh_compress:242
+#: dh_dwz:161 dh_fixperms:164 dh_gconf:105 dh_gencontrol:207 dh_icons:75
+#: dh_install:350 dh_installcatalogs:125 dh_installchangelogs:302
+#: dh_installcron:78 dh_installdeb:410 dh_installdebconf:128 dh_installdirs:128
+#: dh_installdocs:444 dh_installemacsen:138 dh_installexamples:175
+#: dh_installifupdown:72 dh_installinfo:107 dh_installinit:425
+#: dh_installinitramfs:85 dh_installlogcheck:81 dh_installlogrotate:53
+#: dh_installman:384 dh_installmanpages:198 dh_installmenu:88 dh_installmime:63
+#: dh_installmodules:109 dh_installpam:62 dh_installppp:68 dh_installudev:102
+#: dh_installwm:129 dh_installxfonts:90 dh_link:163 dh_lintian:60
+#: dh_listpackages:35 dh_makeshlibs:456 dh_md5sums:117 dh_movefiles:161
+#: dh_perl:171 dh_prep:70 dh_shlibdeps:204 dh_strip:432 dh_testdir:63
+#: dh_testroot:91 dh_usrlocal:136 dh_systemd_enable:281 dh_systemd_start:280
msgid "SEE ALSO"
msgstr "SIEHE AUCH"
#. type: =item
-#: debhelper.pod:1078
+#: debhelper.pod:1228
msgid "F</usr/share/doc/debhelper/examples/>"
msgstr "F</usr/share/doc/debhelper/examples/>"
#. type: textblock
-#: debhelper.pod:1080
+#: debhelper.pod:1230
msgid "A set of example F<debian/rules> files that use debhelper."
msgstr ""
"eine Zusammenstellung von F<debian/rules>-Beispieldateien, die Debhelper "
"benutzen"
#. type: =item
-#: debhelper.pod:1082
+#: debhelper.pod:1232
msgid "L<http://joeyh.name/code/debhelper/>"
msgstr "L<http://joeyh.name/code/debhelper/>"
#. type: textblock
-#: debhelper.pod:1084
+#: debhelper.pod:1234
msgid "Debhelper web site."
msgstr "Debhelper-Website"
#. type: =head1
-#: debhelper.pod:1088 dh:1099 dh_auto_build:59 dh_auto_clean:61
+#: debhelper.pod:1238 dh:1226 dh_auto_build:59 dh_auto_clean:61
#: dh_auto_configure:64 dh_auto_install:103 dh_auto_test:70 dh_bugfiles:141
-#: dh_builddeb:188 dh_clean:191 dh_compress:242 dh_dwz:147 dh_fixperms:168
-#: dh_gconf:107 dh_gencontrol:213 dh_icons:81 dh_install:356
-#: dh_installcatalogs:131 dh_installchangelogs:306 dh_installcron:84
-#: dh_installdeb:272 dh_installdebconf:134 dh_installdirs:134
-#: dh_installdocs:450 dh_installemacsen:144 dh_installexamples:181
-#: dh_installifupdown:78 dh_installinfo:113 dh_installlogcheck:87
-#: dh_installlogrotate:59 dh_installman:368 dh_installmanpages:204
-#: dh_installmenu:96 dh_installmime:69 dh_installmodules:115 dh_installpam:68
-#: dh_installppp:74 dh_installudev:106 dh_installwm:133 dh_installxfonts:102
-#: dh_link:169 dh_lintian:68 dh_listpackages:41 dh_makeshlibs:361
-#: dh_md5sums:123 dh_movefiles:167 dh_perl:165 dh_prep:76 dh_shlibdeps:205
-#: dh_strip:432 dh_testdir:69 dh_testroot:97 dh_usrlocal:142
+#: dh_builddeb:188 dh_clean:192 dh_compress:248 dh_dwz:167 dh_fixperms:170
+#: dh_gconf:111 dh_gencontrol:213 dh_icons:81 dh_install:356
+#: dh_installcatalogs:131 dh_installchangelogs:308 dh_installcron:84
+#: dh_installdeb:416 dh_installdebconf:134 dh_installdirs:134
+#: dh_installdocs:450 dh_installemacsen:145 dh_installexamples:181
+#: dh_installifupdown:78 dh_installinfo:113 dh_installinitramfs:93
+#: dh_installlogcheck:87 dh_installlogrotate:59 dh_installman:390
+#: dh_installmanpages:204 dh_installmenu:96 dh_installmime:69
+#: dh_installmodules:115 dh_installpam:68 dh_installppp:74 dh_installudev:108
+#: dh_installwm:135 dh_installxfonts:96 dh_link:169 dh_lintian:68
+#: dh_listpackages:41 dh_makeshlibs:462 dh_md5sums:123 dh_movefiles:167
+#: dh_perl:177 dh_prep:76 dh_shlibdeps:210 dh_strip:438 dh_testdir:69
+#: dh_testroot:97 dh_usrlocal:142
msgid "AUTHOR"
msgstr "AUTOR"
#. type: textblock
-#: debhelper.pod:1090 dh:1101 dh_auto_build:61 dh_auto_clean:63
+#: debhelper.pod:1240 dh:1228 dh_auto_build:61 dh_auto_clean:63
#: dh_auto_configure:66 dh_auto_install:105 dh_auto_test:72 dh_builddeb:190
-#: dh_clean:193 dh_compress:244 dh_fixperms:170 dh_gencontrol:215
-#: dh_install:358 dh_installchangelogs:308 dh_installcron:86 dh_installdeb:274
+#: dh_clean:194 dh_compress:250 dh_fixperms:172 dh_gencontrol:215
+#: dh_install:358 dh_installchangelogs:310 dh_installcron:86 dh_installdeb:418
#: dh_installdebconf:136 dh_installdirs:136 dh_installdocs:452
-#: dh_installemacsen:146 dh_installexamples:183 dh_installifupdown:80
-#: dh_installinfo:115 dh_installinit:414 dh_installlogrotate:61
-#: dh_installman:370 dh_installmanpages:206 dh_installmenu:98 dh_installmime:71
-#: dh_installmodules:117 dh_installpam:70 dh_installppp:76 dh_installudev:108
-#: dh_installwm:135 dh_installxfonts:104 dh_link:171 dh_listpackages:43
-#: dh_makeshlibs:363 dh_md5sums:125 dh_movefiles:169 dh_prep:78
-#: dh_shlibdeps:207 dh_strip:434 dh_testdir:71 dh_testroot:99
+#: dh_installemacsen:147 dh_installexamples:183 dh_installifupdown:80
+#: dh_installinfo:115 dh_installinit:433 dh_installlogrotate:61
+#: dh_installman:392 dh_installmanpages:206 dh_installmenu:98 dh_installmime:71
+#: dh_installmodules:117 dh_installpam:70 dh_installppp:76 dh_installudev:110
+#: dh_installwm:137 dh_installxfonts:98 dh_link:171 dh_listpackages:43
+#: dh_makeshlibs:464 dh_md5sums:125 dh_movefiles:169 dh_prep:78
+#: dh_shlibdeps:212 dh_strip:440 dh_testdir:71 dh_testroot:99
msgid "Joey Hess <joeyh@debian.org>"
msgstr "Joey Hess <joeyh@debian.org>"
@@ -2690,30 +2983,30 @@ msgstr ""
"expandieren."
#. type: textblock
-#: debhelper-obsolete-compat.pod:120 dh:1095 dh_auto_build:55 dh_auto_clean:57
+#: debhelper-obsolete-compat.pod:120 dh:1222 dh_auto_build:55 dh_auto_clean:57
#: dh_auto_configure:60 dh_auto_install:99 dh_auto_test:66 dh_builddeb:184
-#: dh_clean:187 dh_compress:238 dh_dwz:143 dh_fixperms:164 dh_gconf:103
+#: dh_clean:188 dh_compress:244 dh_dwz:163 dh_fixperms:166 dh_gconf:107
#: dh_gencontrol:209 dh_install:352 dh_installcatalogs:127
-#: dh_installchangelogs:302 dh_installcron:80 dh_installdeb:268
+#: dh_installchangelogs:304 dh_installcron:80 dh_installdeb:412
#: dh_installdebconf:130 dh_installdirs:130 dh_installdocs:446
#: dh_installexamples:177 dh_installifupdown:74 dh_installinfo:109
-#: dh_installlogcheck:83 dh_installlogrotate:55 dh_installman:364
+#: dh_installlogcheck:83 dh_installlogrotate:55 dh_installman:386
#: dh_installmanpages:200 dh_installmime:65 dh_installmodules:111
-#: dh_installpam:64 dh_installppp:70 dh_installudev:102 dh_installwm:129
-#: dh_installxfonts:98 dh_link:165 dh_listpackages:37 dh_makeshlibs:357
-#: dh_md5sums:119 dh_movefiles:163 dh_perl:161 dh_prep:72 dh_strip:428
-#: dh_testdir:65 dh_testroot:93 dh_usrlocal:138 dh_systemd_start:271
+#: dh_installpam:64 dh_installppp:70 dh_installudev:104 dh_installwm:131
+#: dh_installxfonts:92 dh_link:165 dh_listpackages:37 dh_makeshlibs:458
+#: dh_md5sums:119 dh_movefiles:163 dh_perl:173 dh_prep:72 dh_strip:434
+#: dh_testdir:65 dh_testroot:93 dh_usrlocal:138 dh_systemd_start:282
msgid "L<debhelper(7)>"
msgstr "L<debhelper(7)>"
#. type: =head1
-#: debhelper-obsolete-compat.pod:122 dh_installinit:412 dh_systemd_enable:285
-#: dh_systemd_start:273
+#: debhelper-obsolete-compat.pod:122 dh_installinit:431 dh_systemd_enable:285
+#: dh_systemd_start:284
msgid "AUTHORS"
msgstr "AUTOREN"
#. type: textblock
-#: debhelper-obsolete-compat.pod:124 dh_dwz:149
+#: debhelper-obsolete-compat.pod:124 dh_dwz:169 dh_installinitramfs:95
msgid "Niels Thykier <niels@thykier.net>"
msgstr "Niels Thykier <niels@thykier.net>"
@@ -2728,7 +3021,7 @@ msgid "dh - debhelper command sequencer"
msgstr "dh - Debhelper-Befehls-Sequenzer"
#. type: textblock
-#: dh:18
+#: dh:22
msgid ""
"B<dh> I<sequence> [B<--with> I<addon>[B<,>I<addon> ...]] [B<--list>] "
"[S<I<debhelper options>>]"
@@ -2737,7 +3030,7 @@ msgstr ""
"[S<I<Debhelper-Optionen>>]"
#. type: textblock
-#: dh:22
+#: dh:26
msgid ""
"B<dh> runs a sequence of debhelper commands. The supported I<sequence>s "
"correspond to the targets of a F<debian/rules> file: B<build-arch>, B<build-"
@@ -2750,12 +3043,12 @@ msgstr ""
"arch>, B<install>, B<binary-arch>, B<binary-indep> und B<binary>."
#. type: =head1
-#: dh:27
+#: dh:31
msgid "OVERRIDE TARGETS"
msgstr "ZIELE AUßER KRAFT SETZEN"
#. type: textblock
-#: dh:29
+#: dh:33
msgid ""
"A F<debian/rules> file using B<dh> can override the command that is run at "
"any step in a sequence, by defining an override target."
@@ -2765,7 +3058,7 @@ msgstr ""
"setzendes Ziel definiert wird."
#. type: textblock
-#: dh:32
+#: dh:36
msgid ""
"To override I<dh_command>, add a target named B<override_>I<dh_command> to "
"the rules file. When it would normally run I<dh_command>, B<dh> will instead "
@@ -2780,7 +3073,7 @@ msgstr ""
"stattdessen ganz andere Befehle ausführen. Lesen Sie die folgenden Beispiele."
#. type: textblock
-#: dh:38
+#: dh:42
msgid ""
"Override targets can also be defined to run only when building architecture "
"dependent or architecture independent packages. Use targets with names like "
@@ -2796,29 +3089,29 @@ msgstr ""
"haben sollten."
#. type: =head1
-#: dh:45 dh_auto_build:32 dh_auto_clean:33 dh_auto_configure:35
+#: dh:49 dh_auto_build:32 dh_auto_clean:33 dh_auto_configure:35
#: dh_auto_install:46 dh_auto_test:34 dh_bugfiles:53 dh_builddeb:34 dh_clean:47
#: dh_compress:52 dh_dwz:26 dh_fixperms:40 dh_gconf:42 dh_gencontrol:38
#: dh_icons:33 dh_install:66 dh_installcatalogs:53 dh_installchangelogs:73
-#: dh_installcron:43 dh_installdebconf:64 dh_installdirs:42 dh_installdocs:90
-#: dh_installemacsen:56 dh_installexamples:41 dh_installifupdown:42
-#: dh_installinfo:38 dh_installinit:78 dh_installinitramfs:43
-#: dh_installlogcheck:45 dh_installlogrotate:25 dh_installman:83
-#: dh_installmanpages:43 dh_installmenu:44 dh_installmodules:41
-#: dh_installpam:34 dh_installppp:38 dh_installudev:34 dh_installwm:38
-#: dh_link:66 dh_makeshlibs:52 dh_md5sums:31 dh_movefiles:41 dh_perl:34
-#: dh_prep:29 dh_shlibdeps:30 dh_strip:38 dh_testdir:26 dh_usrlocal:50
-#: dh_systemd_enable:83 dh_systemd_start:33
+#: dh_installcron:43 dh_installdeb:98 dh_installdebconf:64 dh_installdirs:42
+#: dh_installdocs:90 dh_installemacsen:56 dh_installexamples:41
+#: dh_installifupdown:42 dh_installinfo:38 dh_installinit:78
+#: dh_installinitramfs:43 dh_installlogcheck:45 dh_installlogrotate:25
+#: dh_installman:83 dh_installmanpages:43 dh_installmenu:44
+#: dh_installmodules:41 dh_installpam:34 dh_installppp:38 dh_installudev:34
+#: dh_installwm:38 dh_link:66 dh_makeshlibs:67 dh_md5sums:31 dh_movefiles:41
+#: dh_perl:34 dh_prep:29 dh_shlibdeps:30 dh_strip:38 dh_testdir:26
+#: dh_usrlocal:50 dh_systemd_enable:83 dh_systemd_start:33
msgid "OPTIONS"
msgstr "OPTIONEN"
#. type: =item
-#: dh:49
+#: dh:53
msgid "B<--with> I<addon>[B<,>I<addon> ...]"
msgstr "B<--with> I<Add-on>[B<,>I<Add-on> …]"
#. type: textblock
-#: dh:51
+#: dh:55
msgid ""
"Add the debhelper commands specified by the given addon to appropriate "
"places in the sequence of commands that is run. This option can be repeated "
@@ -2835,25 +3128,44 @@ msgstr ""
"Sequenz-Add-on-Schnittstelle finden Sie in der Datei F<PROGRAMMING>."
#. type: textblock
-#: dh:58
+#: dh:62
msgid ""
"A B<Build-Depends> relation on the package B<dh-sequence->I<addon> implies a "
"B<--with> I<addon>. This avoids the need for an explicit B<--with> in "
"F<debian/rules> that only duplicates what is already declared via the build "
-"dependencies in F<debian/control>. Note that only relations in the B<Build-"
-"Depends> field are considered (i.e. B<Build-Depends-Indep> and B<Build-"
-"Depends-Arch> are deliberately unsupported). Please keep in mind that B<dh> "
-"insists on \"simple\" relations (e.g. a relation like \"B<dh-sequence-"
-">I<addon> | B<some-other-pkg>\" will I<not> imply B<--with> I<addon>)."
+"dependencies in F<debian/control>. The relation can (since 12.5) be made "
+"optional via e.g. build-profiles. This enables you to easily disable an "
+"addon that is only useful with certain profiles (e.g. to facilitate "
+"bootstraping)."
+msgstr ""
+
+#. type: textblock
+#: dh:71
+msgid ""
+"Since debhelper 12.5, addons can also be activated in B<indep>-only mode "
+"(via B<Build-Depends-Indep>) or B<arch>-only mode (via B<Build-Depends-"
+"Arch>). Such addons are only active in the particular sequence (e.g. "
+"B<binary-indep>) which simplifies dependency management for cross-builds."
+msgstr ""
+
+#. type: textblock
+#: dh:77
+msgid ""
+"Please note that addons activated via B<Build-Depends-Indep> or B<Build-"
+"Depends-Arch> are subject to additional limitations to ensure the result is "
+"deterministic even when the addon is unavailable (e.g. during clean). This "
+"implies that some addons are incompatible with these restrictions and can "
+"only be used via B<Build-Depends> (or manually via F<debian/rules>). "
+"Currently, such addons can only add commands to sequences."
msgstr ""
#. type: =item
-#: dh:68
+#: dh:85
msgid "B<--without> I<addon>"
msgstr "B<--without> I<Add-on>"
#. type: textblock
-#: dh:70
+#: dh:87
msgid ""
"The inverse of B<--with>, disables using the given addon. This option can be "
"repeated more than once, or multiple addons to disable can be listed, "
@@ -2864,12 +3176,12 @@ msgstr ""
"ons zum Deaktivieren durch Kommas getrennt aufgelistet werden."
#. type: textblock
-#: dh:76
+#: dh:93
msgid "List all available addons."
msgstr "listet alle verfügbaren Add-ons auf."
#. type: textblock
-#: dh:78
+#: dh:95
msgid ""
"When called only with this option, B<dh> can be called from any directory (i."
"e. it does not need access to files from a source package)."
@@ -2879,7 +3191,7 @@ msgstr ""
"aus einem Quellpaket)."
#. type: textblock
-#: dh:84
+#: dh:101
msgid ""
"Prints commands that would run for a given sequence, but does not run them."
msgstr ""
@@ -2887,7 +3199,7 @@ msgstr ""
"sie aber nicht aus"
#. type: textblock
-#: dh:86
+#: dh:103
msgid ""
"Note that dh normally skips running commands that it knows will do nothing. "
"With --no-act, the full list of commands in a sequence is printed."
@@ -2897,7 +3209,7 @@ msgstr ""
"vollständige Liste der Befehle der Reihe nach ausgegeben."
#. type: textblock
-#: dh:91
+#: dh:108
msgid ""
"Other options passed to B<dh> are passed on to each command it runs. This "
"can be used to set an option like B<-v> or B<-X> or B<-N>, as well as for "
@@ -2908,13 +3220,13 @@ msgstr ""
"oder B<-N> sowie spezialisiertere Optionen zu setzen."
#. type: =head1
-#: dh:95 dh_installdocs:181 dh_installman:114 dh_link:88 dh_makeshlibs:155
+#: dh:112 dh_installdocs:181 dh_installman:114 dh_link:88 dh_makeshlibs:185
#: dh_shlibdeps:78
msgid "EXAMPLES"
msgstr "BEISPIELE"
#. type: textblock
-#: dh:97
+#: dh:114
msgid ""
"To see what commands are included in a sequence, without actually doing "
"anything:"
@@ -2923,7 +3235,7 @@ msgstr ""
"tatsächlich etwas zu tun, geben Sie Folgendes ein:"
#. type: verbatim
-#: dh:100
+#: dh:117
#, no-wrap
msgid ""
"\tdh binary-arch --no-act\n"
@@ -2933,7 +3245,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:102
+#: dh:119
msgid ""
"This is a very simple rules file, for packages where the default sequences "
"of commands work with no additional options."
@@ -2942,7 +3254,7 @@ msgstr ""
"Befehlssequenzen ohne zusätzliche Optionen arbeiten."
#. type: verbatim
-#: dh:105 dh:126 dh:139
+#: dh:122 dh:129 dh:143 dh:156 dh:213 dh:224
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2956,7 +3268,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:109
+#: dh:126
msgid ""
"Often you'll want to pass an option to a specific debhelper command. The "
"easy way to do with is by adding an override target for that command."
@@ -2966,33 +3278,23 @@ msgstr ""
"Ziel für diesen Befehl hinzuzufügen."
#. type: verbatim
-#: dh:112 dh:196 dh:207
-#, no-wrap
-msgid ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@\n"
-"\t\n"
-msgstr ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@\n"
-"\t\n"
-
-#. type: verbatim
-#: dh:116
-#, no-wrap
+#: dh:133
+#, fuzzy, no-wrap
+#| msgid ""
+#| "\toverride_dh_strip:\n"
+#| "\t\tdh_strip -Xfoo\n"
+#| "\t\n"
msgid ""
"\toverride_dh_strip:\n"
"\t\tdh_strip -Xfoo\n"
-"\t\n"
+"\n"
msgstr ""
"\toverride_dh_strip:\n"
"\t\tdh_strip -Xfoo\n"
"\t\n"
#. type: verbatim
-#: dh:119
+#: dh:136
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -3004,7 +3306,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:122
+#: dh:139
msgid ""
"Sometimes the automated L<dh_auto_configure(1)> and L<dh_auto_build(1)> "
"can't guess what to do for a strange package. Here's how to avoid running "
@@ -3016,7 +3318,7 @@ msgstr ""
"Befehle ausgeführt werden."
#. type: verbatim
-#: dh:130
+#: dh:147
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -3028,7 +3330,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:133
+#: dh:150
#, no-wrap
msgid ""
"\toverride_dh_auto_build:\n"
@@ -3040,7 +3342,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:136
+#: dh:153
msgid ""
"Another common case is wanting to do something manually before or after a "
"particular debhelper command is run."
@@ -3049,7 +3351,7 @@ msgstr ""
"besonderen Debhelper-Befehls manuell etwas tun möchten."
#. type: verbatim
-#: dh:143
+#: dh:160
#, no-wrap
msgid ""
"\toverride_dh_fixperms:\n"
@@ -3063,7 +3365,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:147
+#: dh:164
msgid ""
"Python tools are not run by dh by default, due to the continual change in "
"that area. Here is how to use B<dh_python2>."
@@ -3073,7 +3375,7 @@ msgstr ""
"benutzt wird."
#. type: verbatim
-#: dh:150
+#: dh:167
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -3087,7 +3389,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:154
+#: dh:171
msgid ""
"Here is how to force use of Perl's B<Module::Build> build system, which can "
"be necessary if debhelper wrongly detects that the package uses MakeMaker."
@@ -3097,7 +3399,7 @@ msgstr ""
"entdeckt, dass das Programm MakeMaker verwendet."
#. type: verbatim
-#: dh:158
+#: dh:175
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -3111,7 +3413,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:162
+#: dh:179
msgid ""
"Here is an example of overriding where the B<dh_auto_>I<*> commands find the "
"package's source, for a package where the source is located in a "
@@ -3122,7 +3424,7 @@ msgstr ""
"einem Unterverzeichnis liegt."
#. type: verbatim
-#: dh:166
+#: dh:183
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -3136,7 +3438,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:170
+#: dh:187
msgid ""
"And here is an example of how to tell the B<dh_auto_>I<*> commands to build "
"in a subdirectory, which will be removed on B<clean>."
@@ -3145,7 +3447,7 @@ msgstr ""
"dass in einem Unterverzeichnis gebaut wird, das mit B<clean> entfernt wird."
#. type: verbatim
-#: dh:173
+#: dh:190
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -3159,7 +3461,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:177
+#: dh:194
msgid ""
"If your package can be built in parallel, please either use compat 10 or "
"pass B<--parallel> to dh. Then B<dpkg-buildpackage -j> will work."
@@ -3169,7 +3471,7 @@ msgstr ""
"B<dpkg-buildpackage -j> funktionieren."
#. type: verbatim
-#: dh:180
+#: dh:197
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -3183,7 +3485,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:184
+#: dh:201
msgid ""
"If your package cannot be built reliably while using multiple threads, "
"please pass B<--no-parallel> to dh (or the relevant B<dh_auto_>I<*> command):"
@@ -3193,7 +3495,7 @@ msgstr ""
"zuständigen B<dh_auto_>I<*>-Befehl):"
#. type: verbatim
-#: dh:189
+#: dh:206
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -3207,7 +3509,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:193
+#: dh:210
msgid ""
"Here is a way to prevent B<dh> from running several commands that you don't "
"want it to run, by defining empty override targets for each command."
@@ -3217,7 +3519,7 @@ msgstr ""
"setzende Ziele für jeden Befehl definieren."
#. type: verbatim
-#: dh:200
+#: dh:217
#, no-wrap
msgid ""
"\t# Commands not to run:\n"
@@ -3229,7 +3531,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:203
+#: dh:220
msgid ""
"A long build process for a separate documentation package can be separated "
"out using architecture independent overrides. These will be skipped when "
@@ -3241,7 +3543,7 @@ msgstr ""
"ausgeführt werden."
#. type: verbatim
-#: dh:211
+#: dh:228
#, no-wrap
msgid ""
"\toverride_dh_auto_build-indep:\n"
@@ -3253,7 +3555,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:214
+#: dh:231
#, no-wrap
msgid ""
"\t# No tests needed for docs\n"
@@ -3265,7 +3567,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:217
+#: dh:234
#, no-wrap
msgid ""
"\toverride_dh_auto_install-indep:\n"
@@ -3277,7 +3579,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:220
+#: dh:237
msgid ""
"Adding to the example above, suppose you need to chmod a file, but only when "
"building the architecture dependent package, as it's not present when "
@@ -3289,7 +3591,7 @@ msgstr ""
"vorhanden ist."
#. type: verbatim
-#: dh:224
+#: dh:241
#, no-wrap
msgid ""
"\toverride_dh_fixperms-arch:\n"
@@ -3303,12 +3605,12 @@ msgstr ""
"\n"
#. type: =head1
-#: dh:228
+#: dh:245
msgid "INTERNALS"
msgstr "INTERNA"
#. type: textblock
-#: dh:230
+#: dh:247
msgid ""
"If you're curious about B<dh>'s internals, here's how it works under the "
"hood."
@@ -3317,7 +3619,7 @@ msgstr ""
"wie es unter der Haube arbeitet."
#. type: textblock
-#: dh:232
+#: dh:249
msgid ""
"In compat 10 (or later), B<dh> creates a stamp file F<debian/debhelper-build-"
"stamp> after the build step(s) are complete to avoid re-running them. It is "
@@ -3335,7 +3637,7 @@ msgstr ""
"zweimal ausgeführt (das zweite Mal als Root oder unter L<fakeroot(1)>)."
#. type: textblock
-#: dh:240
+#: dh:257
msgid ""
"Inside an override target, B<dh_*> commands will create a log file F<debian/"
"package.debhelper.log> to keep track of which packages the command(s) have "
@@ -3349,7 +3651,7 @@ msgstr ""
"erledigt sind."
#. type: textblock
-#: dh:245
+#: dh:262
msgid ""
"In compat 9 or earlier, each debhelper command will record when it's "
"successfully run in F<debian/package.debhelper.log>. (Which B<dh_clean> "
@@ -3363,13 +3665,18 @@ msgstr ""
"Ausführung dieser Befehle überspringen."
#. type: textblock
-#: dh:250
+#: dh:267
+#, fuzzy
+#| msgid ""
+#| "Each time B<dh> is run (in compat 9 or earlier), it examines the log, and "
+#| "finds the last logged command that is in the specified sequence. It then "
+#| "continues with the next command in the sequence. The B<--until>, B<--"
+#| "before>, B<--after>, and B<--remaining> options can override this "
+#| "behavior (though they were removed in compat 10)."
msgid ""
"Each time B<dh> is run (in compat 9 or earlier), it examines the log, and "
"finds the last logged command that is in the specified sequence. It then "
-"continues with the next command in the sequence. The B<--until>, B<--"
-"before>, B<--after>, and B<--remaining> options can override this behavior "
-"(though they were removed in compat 10)."
+"continues with the next command in the sequence."
msgstr ""
"Jedesmal, wenn B<dh> (im Kompatibilitätsmodus 9 oder älter) ausgeführt wird, "
"untersucht es das Protokoll und findet den zuletzt protokollierten Befehl in "
@@ -3379,7 +3686,7 @@ msgstr ""
"Kompatibilitätsmodus 10 entfernt wurden)."
#. type: textblock
-#: dh:256
+#: dh:271
msgid ""
"A sequence can also run dependent targets in debian/rules. For example, the "
"\"binary\" sequence runs the \"install\" target."
@@ -3388,7 +3695,7 @@ msgstr ""
"Sequenz »binary« führt zum Beispiel das Ziel »install« aus."
#. type: textblock
-#: dh:259
+#: dh:274
msgid ""
"B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass "
"information through to debhelper commands that are run inside override "
@@ -3401,7 +3708,7 @@ msgstr ""
"ist, wie der Name schon andeutet, Gegenstand dauernder Änderungen."
#. type: textblock
-#: dh:264
+#: dh:279
msgid ""
"Commands in the B<build-indep>, B<install-indep> and B<binary-indep> "
"sequences are passed the B<-i> option to ensure they only work on "
@@ -3416,91 +3723,20 @@ msgstr ""
"Option B<-a> übergeben, um sicherzustellen, dass sie nur auf "
"architekturabhängigen Paketen funktionieren."
-#. type: =head1
-#: dh:270
-msgid "DEPRECATED OPTIONS"
-msgstr "MISSBILLIGTE OPTIONEN"
-
#. type: textblock
-#: dh:272
-msgid ""
-"The following options are deprecated. It's much better to use override "
-"targets instead. They are B<not> available in compat 10."
-msgstr ""
-"Die folgenden Optionen sind veraltet. Es ist wesentlich besser, stattdessen "
-"außer Kraft setzende Ziele zu verwenden. Sie sind nicht im "
-"Kompatibilitätsmodus 10 verfügbar."
-
-#. type: =item
-#: dh:278
-msgid "B<--until> I<cmd>"
-msgstr "B<--until> I<Befehl>"
-
-#. type: textblock
-#: dh:280
-msgid "Run commands in the sequence until and including I<cmd>, then stop."
-msgstr ""
-"führt Befehle in der Sequenz bis einschließlich I<Befehl> aus und stoppt "
-"dann."
-
-#. type: =item
-#: dh:282
-msgid "B<--before> I<cmd>"
-msgstr "B<--before> I<Befehl>"
-
-#. type: textblock
-#: dh:284
-msgid "Run commands in the sequence before I<cmd>, then stop."
-msgstr "führt Befehle in der Sequenz vor I<Befehl> aus und stoppt dann."
-
-#. type: =item
-#: dh:286
-msgid "B<--after> I<cmd>"
-msgstr "B<--after> I<Befehl>"
-
-#. type: textblock
-#: dh:288
-msgid "Run commands in the sequence that come after I<cmd>."
-msgstr "führt Befehle in der Sequenz aus, die nach I<Befehl> kommen."
-
-#. type: =item
-#: dh:290
-msgid "B<--remaining>"
-msgstr "B<--remaining>"
-
-#. type: textblock
-#: dh:292
-msgid "Run all commands in the sequence that have yet to be run."
-msgstr "führt alle Befehle in der Sequenz aus, die noch auszuführen sind."
-
-#. type: textblock
-#: dh:296
-msgid ""
-"In the above options, I<cmd> can be a full name of a debhelper command, or a "
-"substring. It'll first search for a command in the sequence exactly matching "
-"the name, to avoid any ambiguity. If there are multiple substring matches, "
-"the last one in the sequence will be used."
-msgstr ""
-"In den vorhergehenden Optionen kann I<Befehl> ein vollständiger Name eines "
-"Debhelper-Befehls oder eine Teilzeichenkette sein. Es wird zuerst nach einem "
-"Befehl in der Sequenz gesucht, die exakt dem Namen entspricht, um jede "
-"Mehrdeutigkeit zu vermeiden. Falls mehrere Teilzeichenketten passen, wird "
-"der letzte in der Sequenz benutzt."
-
-#. type: textblock
-#: dh:1097 dh_auto_build:57 dh_auto_clean:59 dh_auto_configure:62
+#: dh:1224 dh_auto_build:57 dh_auto_clean:59 dh_auto_configure:62
#: dh_auto_install:101 dh_auto_test:68 dh_bugfiles:139 dh_builddeb:186
-#: dh_clean:189 dh_compress:240 dh_dwz:145 dh_fixperms:166 dh_gconf:105
-#: dh_gencontrol:211 dh_icons:79 dh_install:354 dh_installchangelogs:304
-#: dh_installcron:82 dh_installdeb:270 dh_installdebconf:132 dh_installdirs:132
-#: dh_installdocs:448 dh_installemacsen:142 dh_installexamples:179
-#: dh_installifupdown:76 dh_installinfo:111 dh_installinit:410
-#: dh_installinitramfs:92 dh_installlogrotate:57 dh_installman:366
+#: dh_clean:190 dh_compress:246 dh_dwz:165 dh_fixperms:168 dh_gconf:109
+#: dh_gencontrol:211 dh_icons:79 dh_install:354 dh_installchangelogs:306
+#: dh_installcron:82 dh_installdeb:414 dh_installdebconf:132 dh_installdirs:132
+#: dh_installdocs:448 dh_installemacsen:143 dh_installexamples:179
+#: dh_installifupdown:76 dh_installinfo:111 dh_installinit:429
+#: dh_installinitramfs:91 dh_installlogrotate:57 dh_installman:388
#: dh_installmanpages:202 dh_installmenu:94 dh_installmime:67
-#: dh_installmodules:113 dh_installpam:66 dh_installppp:72 dh_installudev:104
-#: dh_installwm:131 dh_installxfonts:100 dh_link:167 dh_lintian:64
-#: dh_listpackages:39 dh_makeshlibs:359 dh_md5sums:121 dh_movefiles:165
-#: dh_perl:163 dh_prep:74 dh_shlibdeps:203 dh_strip:430 dh_testdir:67
+#: dh_installmodules:113 dh_installpam:66 dh_installppp:72 dh_installudev:106
+#: dh_installwm:133 dh_installxfonts:94 dh_link:167 dh_lintian:64
+#: dh_listpackages:39 dh_makeshlibs:460 dh_md5sums:121 dh_movefiles:165
+#: dh_perl:175 dh_prep:74 dh_shlibdeps:208 dh_strip:436 dh_testdir:67
#: dh_testroot:95 dh_usrlocal:140
msgid "This program is a part of debhelper."
msgstr "Dieses Programm ist Teil von Debhelper."
@@ -3559,8 +3795,8 @@ msgstr ""
#. type: =item
#: dh_auto_build:39 dh_auto_clean:40 dh_auto_configure:42 dh_auto_install:59
-#: dh_auto_test:41 dh_builddeb:48 dh_dwz:50 dh_gencontrol:42
-#: dh_installdebconf:72 dh_installinit:167 dh_makeshlibs:149 dh_shlibdeps:41
+#: dh_auto_test:41 dh_builddeb:48 dh_dwz:62 dh_gencontrol:42
+#: dh_installdebconf:72 dh_installinit:167 dh_makeshlibs:179 dh_shlibdeps:41
msgid "B<--> I<params>"
msgstr "B<--> I<Parameter>"
@@ -3893,7 +4129,7 @@ msgstr ""
#: dh_installinfo:28 dh_installinit:41 dh_installinitramfs:30
#: dh_installlogcheck:24 dh_installman:73 dh_installmenu:28 dh_installmime:24
#: dh_installmodules:31 dh_installpam:24 dh_installppp:24 dh_installudev:24
-#: dh_installwm:28 dh_link:46 dh_lintian:24 dh_makeshlibs:29 dh_movefiles:29
+#: dh_installwm:28 dh_link:46 dh_lintian:24 dh_makeshlibs:44 dh_movefiles:29
#: dh_systemd_enable:41
msgid "FILES"
msgstr "DATEIEN"
@@ -3990,6 +4226,10 @@ msgstr "dh_builddeb - baut binäre Debian-Pakete"
#. type: textblock
#: dh_builddeb:19
+#, fuzzy
+#| msgid ""
+#| "B<dh_builddeb> [S<I<debhelper options>>] [B<--destdir=>I<directory>] [B<--"
+#| "filename=>I<name>] [S<B<--> I<params>>]"
msgid ""
"B<dh_builddeb> [S<I<debhelper options>>] [B<--destdir=>I<directory>] [B<--"
"filename=>I<name>] [S<B<--> I<params>>]"
@@ -4362,28 +4602,46 @@ msgstr ""
#: dh_dwz:32
msgid ""
"Whether L<dwz(1)> should generate a I<multifile> from the ELF binaries in "
-"the same package (it does by default). When enabled, if a package ships at "
-"least 2 ELF binaries, B<dh_dwz> will instruct L<dwz(1)> to generate a "
-"multifile for the package."
+"the same package. When enabled, if a package ships at least 2 ELF binaries, "
+"B<dh_dwz> will instruct L<dwz(1)> to generate a multifile for the package."
msgstr ""
#. type: textblock
#: dh_dwz:37
msgid ""
+"By default, B<dh_dwz> will attempt to create a multifile but will continue "
+"without if L<dwz(1)> does create one (but succeeds anyway). This commonly "
+"happens when the debug files do not contain debug symbols (e.g. a missing -g "
+"to the compiler) or when the debug symbols are compressed (see Debian bug "
+"#931891). If B<--dwz-multifile> is passed, then B<dh_dwz> will abort with "
+"an error if L<dwz(1)> does not create a multifile."
+msgstr ""
+
+#. type: textblock
+#: dh_dwz:45
+msgid ""
"Note this options may not work if a package contains more ELF binaries than "
"can fit on a single command line. If this becomes a problem, please pass "
"B<--no-dwz-multifile> to work around the issue."
msgstr ""
#. type: textblock
-#: dh_dwz:41
+#: dh_dwz:49
msgid ""
"The generated multifile will be compressed with B<objcopy --compress-debug-"
"sections>."
msgstr ""
#. type: textblock
-#: dh_dwz:46 dh_strip:44
+#: dh_dwz:52
+msgid ""
+"Note for B<udeb> packages: B<dh_dwz> will never generate multifiles for "
+"B<udeb> packages. It will still use B<dwz> to reduce the file size of debug "
+"files if it finds any."
+msgstr ""
+
+#. type: textblock
+#: dh_dwz:58 dh_strip:44
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"stripped. You may use this option multiple times to build up a list of "
@@ -4394,14 +4652,14 @@ msgstr ""
"um eine Liste auszuschließender Dinge zu erstellen."
#. type: textblock
-#: dh_dwz:52
+#: dh_dwz:64
msgid ""
"Pass I<params> to L<dwz(1)> when it processes ELF binaries. This is mostly "
"useful for setting memory related parameters (e.g. -l and -L)."
msgstr ""
#. type: textblock
-#: dh_dwz:59
+#: dh_dwz:71
#, fuzzy
#| msgid ""
#| "If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
@@ -4419,7 +4677,7 @@ msgstr ""
"verhindern."
#. type: textblock
-#: dh_dwz:63
+#: dh_dwz:75
msgid ""
"While this tool technically does not remove debug information from binaries, "
"it is still skipped when the B<DEB_BUILD_OPTIONS> environment variable "
@@ -4503,7 +4761,10 @@ msgstr ""
#. type: textblock
#: dh_gconf:5
-msgid "dh_gconf - install GConf defaults files and register schemas"
+#, fuzzy
+#| msgid "dh_gconf - install GConf defaults files and register schemas"
+msgid ""
+"dh_gconf - install GConf defaults files and register schemas (deprecated)"
msgstr "dh_gconf - installiert Standard-GConf-Dateien und registriert Schemen"
#. type: textblock
@@ -4574,7 +4835,7 @@ msgstr ""
"spezifische Pakete (B<90>) verwandt werden."
#. type: textblock
-#: dh_gconf:109
+#: dh_gconf:113
msgid "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
msgstr "Ross Burton <ross@burtonini.com>, Josselin Mouette <joss@debian.org>"
@@ -4688,7 +4949,7 @@ msgstr ""
#. type: =item
#: dh_icons:37 dh_installcatalogs:57 dh_installdebconf:68 dh_installemacsen:60
#: dh_installinit:82 dh_installinitramfs:47 dh_installmenu:48
-#: dh_installmodules:45 dh_installwm:48 dh_makeshlibs:132 dh_usrlocal:54
+#: dh_installmodules:45 dh_installwm:48 dh_makeshlibs:147 dh_usrlocal:54
msgid "B<-n>, B<--no-scripts>"
msgstr "B<-n>, B<--no-scripts>"
@@ -5404,29 +5665,43 @@ msgstr "Diese Betreuerskripte werden in das Verzeichnis F<DEBIAN> installiert."
#. type: textblock
#: dh_installdeb:39
msgid ""
-"Inside the scripts, the token B<#DEBHELPER#> is replaced with shell script "
-"snippets generated by other debhelper commands."
+"B<dh_installdeb> will perform substitution of known tokens of the pattern "
+"B<#TOKEN#>. In generally, scripts will want to include the B<#DEBHELPER#> "
+"to benefit from the shell scripts generated by debhelper commands (including "
+"those from B<dh_installdeb> when it processes I<package>.maintscript files)"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:45
+#, fuzzy
+#| msgid ""
+#| "Inside the scripts, the token B<#DEBHELPER#> is replaced with shell "
+#| "script snippets generated by other debhelper commands."
+msgid ""
+"For more information on what tokens Inside the scripts, the token "
+"B<#DEBHELPER#> is replaced with shell script snippets generated by other "
+"debhelper commands."
msgstr ""
"Innerhalb der Skripte wird die Markierung B<#DEBHELPER#> durch Shell-"
"Skriptschnipsel ersetzt, die durch andere Debhelper-Befehle erzeugt wurden."
#. type: =item
-#: dh_installdeb:42
+#: dh_installdeb:49
msgid "I<package>.triggers"
msgstr "I<Paket>.triggers"
#. type: =item
-#: dh_installdeb:44
+#: dh_installdeb:51
msgid "I<package>.shlibs"
msgstr "I<Paket>.shlibs"
#. type: textblock
-#: dh_installdeb:46
+#: dh_installdeb:53
msgid "These control files are installed into the F<DEBIAN> directory."
msgstr "Diese Steuerdateien sind im Verzeichnis F<DEBIAN> installiert."
#. type: textblock
-#: dh_installdeb:48
+#: dh_installdeb:55
msgid ""
"Note that I<package>.shlibs is only installed in compat level 9 and "
"earlier. In compat 10, please use L<dh_makeshlibs(1)>."
@@ -5436,33 +5711,33 @@ msgstr ""
"L<dh_makeshlibs(1)>."
#. type: =item
-#: dh_installdeb:51
+#: dh_installdeb:58
msgid "I<package>.conffiles"
msgstr "I<Paket>.conffiles"
#. type: textblock
-#: dh_installdeb:53
-msgid "This control file will be installed into the F<DEBIAN> directory."
-msgstr "Diese Steuerdatei wird in das Verzeichnis F<DEBIAN> installiert."
+#: dh_installdeb:60
+msgid ""
+"Historically, this file was needed to manually mark files files as "
+"conffiles. However, it has become de facto obsolete since debhelper "
+"automatically computed which files should be marked as conffiles."
+msgstr ""
#. type: textblock
-#: dh_installdeb:55
+#: dh_installdeb:64
msgid ""
-"In v3 compatibility mode and higher, all files in the F<etc/> directory in a "
-"package will automatically be flagged as conffiles by this program, so there "
-"is no need to list them manually here."
+"In compatibility level up and including 11, this control file will be "
+"installed into the F<DEBIAN> directory. In compatibility level 12 and "
+"later, the file is silently ignored."
msgstr ""
-"Im Kompatibilitätsmodus v3 und darüber werden alle Dateien im Verzeichnis "
-"F<etc/> in einem Paket automatisch durch dieses Programm als Conffiles "
-"markiert, daher ist es nicht nötig, sie manuell aufzuführen."
#. type: =item
-#: dh_installdeb:59
+#: dh_installdeb:68
msgid "I<package>.maintscript"
msgstr "I<Paket>.maintscript"
#. type: textblock
-#: dh_installdeb:61
+#: dh_installdeb:70
msgid ""
"Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands and "
"parameters. However, the \"maint-script-parameters\" should I<not> be "
@@ -5473,12 +5748,12 @@ msgstr ""
"eingefügt werden, da Debhelper dies automatisch hinzufügen wird."
#. type: textblock
-#: dh_installdeb:65
+#: dh_installdeb:74
msgid "Example:"
msgstr "Beispiel:"
#. type: verbatim
-#: dh_installdeb:67
+#: dh_installdeb:76
#, no-wrap
msgid ""
" # Correct\n"
@@ -5494,7 +5769,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh_installdeb:72
+#: dh_installdeb:81
msgid ""
"In compat 10 or later, any shell metacharacters will be escaped, so "
"arbitrary shell code cannot be inserted here. For example, a line such as "
@@ -5508,7 +5783,7 @@ msgstr ""
"ausreichen, um dieses Conffile zu verschieben."
#. type: textblock
-#: dh_installdeb:78
+#: dh_installdeb:87
msgid ""
"It was also the intention to escape shell metacharacters in previous compat "
"levels. However, it did not work properly and as such it was possible to "
@@ -5520,7 +5795,7 @@ msgstr ""
"vorhergehenden Kompatibilitätsstufen einzubetten."
#. type: textblock
-#: dh_installdeb:82
+#: dh_installdeb:91
msgid ""
"The B<dh_installdeb> tool will do some basic validation of some of the "
"commands listed in this file to catch common mistakes. The validation is "
@@ -5531,6 +5806,210 @@ msgstr ""
"abzufangen. Die Überprüfung wird als Warnung seit Kompatibilitätsstufe 10 "
"aktiviert und in Kompatibilitätsstufe 12 als harter Fehler."
+#. type: =item
+#: dh_installdeb:102
+msgid "B<-D>I<TOKEN=VALUE>, B<--define> I<TOKEN=VALUE>"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:104
+msgid ""
+"Define tokens to be replaced inside the maintainer scripts when it is "
+"generated. Please note that the limitations described in L</Limitations in "
+"token names> also applies to tokens defined on the command line. Invalid "
+"token names will trigger an error."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:109
+msgid ""
+"In the simple case, this parameter will cause B<< #I<TOKEN># >> to be "
+"replaced by I<VALUE>. If I<VALUE> starts with a literal I<@>-sign, then "
+"I<VALUE> is expected to point to a file containing the actual value to "
+"insert."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:114
+msgid ""
+"An explicit declared token with this parameter will replace built-in tokens."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:117
+msgid "Test examples to aid with the understanding:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:119
+#, no-wrap
+msgid ""
+"\tcat >> debian/postinst <<EOF\n"
+"\t#SIMPLE#\n"
+"\t#FILEBASED#\n"
+"\tEOF\n"
+"\techo -n \"Complex value\" > some-file\n"
+" dh_installdeb --define SIMPLE=direct --define FILEBASED=@some-file\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:126
+msgid ""
+"In this example, B<#SIMPLE#> will expand to B<direct> and B<#FILEBASED#> "
+"will expand to B<Complex value>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:129
+msgid ""
+"It is also possible to do set package-specific values for a given token. "
+"This is useful when B<dh_installdeb> is acting on multiple packages that "
+"need different values for the same token. This is done by prefixing the "
+"token name with B<< pkg.I<package-name>. >>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:134
+msgid "This can be used as in the following example:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:136
+#, no-wrap
+msgid ""
+"\tcat >> debian/foo.postinst <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/bar.postinst <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/baz.postinst <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+" dh_installdeb -pfoo -pbar -pbaz --define TOKEN=default --define pkg.bar.TOKEN=unique-bar-value \\\n"
+" --define pkg.baz.TOKEN=unique-baz-value\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:151
+msgid ""
+"In this example, B<#TOKEN#> will expand to B<default> in F<debian/foo."
+"postinst>, to B<unique-bar-value> in F<debian/bar.postinst> and to B<unique-"
+"baz-value> in F<debian/baz.postinst>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:155
+msgid ""
+"Note that the B<#pkg.*#> tokens will be visible in all scripts acted on. E."
+"g. you can refer to B<#pkg.bar.TOKEN#> inside F<debian/foo.postinst> and it "
+"will be replaced by B<unique-bar-value>."
+msgstr ""
+
+#. type: =head1
+#: dh_installdeb:161
+msgid "SUBSTITUTION IN MAINTAINER SCRIPTS"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:163
+msgid ""
+"The B<dh_installdeb> will automatically replace the following tokens inside "
+"a provided maintainer script (if not replaced via B<-D>/B<--define>):"
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:168
+#, fuzzy
+#| msgid "DEBHELPER COMMANDS"
+msgid "#DEBHELPER#"
+msgstr "DEBHELPER-BEFEHLE"
+
+#. type: textblock
+#: dh_installdeb:170
+msgid ""
+"This token is by default replaced with generated shell snippets debhelper "
+"commands. This includes the snippets generated by B<dh_installdeb> from "
+"I<package>.maintscript file (if present)."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:174
+msgid "#DEB_HOST_I<NAME>#, #DEB_BUILD_I<NAME>#, #DEB_TARGET_I<NAME>#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:176
+msgid ""
+"These tokens are replaced with the respective variable from L<dpkg-"
+"architecture(1)>. In almost all cases, you will want use the B<< "
+"#DEB_HOST_I<NAME> >> variant in a script to ensure you get the right value "
+"when cross-building."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:181
+msgid ""
+"On a best effort, tokens of this pattern that do not match a variable in "
+"L<dpkg-architecture(1)> will be left as-is."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:184
+msgid "#ENV.I<NAME>#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:186
+msgid ""
+"These tokens of this form will be replaced with value of the corresponding "
+"environment variable. If the environment variable is unset, the token is "
+"replaced with the empty string."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:191
+msgid ""
+"Note that there are limits on which names can be used (see L</Limitations in "
+"token names>)."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:194
+msgid "#PACKAGE#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:196
+msgid ""
+"This token is by default replaced the package name, which will contain the "
+"concrete script."
+msgstr ""
+
+#. type: =head2
+#: dh_installdeb:201
+msgid "Limitations in token names"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:203
+msgid ""
+"All tokens intended to be substituted must match the regex: #[A-Za-z0-9_.+]+#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:205
+msgid ""
+"Tokens that do not match that regex will be silently ignored if found in the "
+"script template. Invalid token names passed to B<-D> or B<--define> will "
+"cause B<dh_installdeb> to reject the command with an error in most cases."
+msgstr ""
+
#. type: textblock
#: dh_installdebconf:5
msgid ""
@@ -5839,11 +6318,16 @@ msgstr ""
#. type: textblock
#: dh_installdocs:35
+#, fuzzy
+#| msgid ""
+#| "In compat 11 and later, B<dh_installdocs> offers many of the features "
+#| "that L<dh_install(1)> also have. Furthermore, B<dh_installdocs> also "
+#| "supports the B<nodoc> build profile to exclude documentation (regardless "
+#| "of compat level)."
msgid ""
"In compat 11 and later, B<dh_installdocs> offers many of the features that "
-"L<dh_install(1)> also have. Furthermore, B<dh_installdocs> also supports "
-"the B<nodoc> build profile to exclude documentation (regardless of compat "
-"level)."
+"L<dh_install(1)> also has. Furthermore, B<dh_installdocs> also supports the "
+"B<nodoc> build profile to exclude documentation (regardless of compat level)."
msgstr ""
"In Kompatibilitätsstufe 11 und neuer bietet B<dh_installdocs> viele der "
"Funktionalitäten, die auch L<dh_install(1)> hat. Desweiteren unterstützt "
@@ -6340,7 +6824,7 @@ msgstr ""
"Vorgabe ist B<emacs>, Alternativen umfassen B<xemacs> und B<emacs20>."
#. type: textblock
-#: dh_installemacsen:139
+#: dh_installemacsen:140
msgid "L<debhelper(7)> L</usr/share/doc/emacsen-common/debian-emacs-policy.gz>"
msgstr ""
"L<debhelper(7)> L</usr/share/doc/emacsen-common/debian-emacs-policy.gz>"
@@ -7028,19 +7512,19 @@ msgstr ""
"F<postinst>-Skripten vor der Markierung B<#DEBHELPER#> bereitgestellt werden."
#. type: textblock
-#: dh_installinit:408
+#: dh_installinit:427
#, fuzzy
#| msgid "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
msgid "L<debhelper(7)>, L<dh_installsystemd(1)>"
msgstr "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
#. type: textblock
-#: dh_installinit:416
+#: dh_installinit:435
msgid "Steve Langasek <steve.langasek@canonical.com>"
msgstr "Steve Langasek <steve.langasek@canonical.com>"
#. type: textblock
-#: dh_installinit:418
+#: dh_installinit:437
msgid "Michael Stapelberg <stapelberg@debian.org>"
msgstr "Michael Stapelberg <stapelberg@debian.org>"
@@ -7114,7 +7598,7 @@ msgid "Do not modify F<postinst>/F<postrm> scripts."
msgstr "ändert keine F<postinst>-/F<postrm>-Skripte."
#. type: textblock
-#: dh_installinitramfs:88
+#: dh_installinitramfs:87
#, fuzzy
#| msgid "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
msgid "L<debhelper(7)> L<update-initramfs(8)> L<initramfs-tools(8)>"
@@ -7260,12 +7744,20 @@ msgstr ""
#. type: textblock
#: dh_installman:25
+#, fuzzy
+#| msgid ""
+#| "In compat 10 and earlier, this program was primarily for when upstream's "
+#| "build system does not properly install them as a part of its install step "
+#| "(or it does not have an install step). In compat 11 and later, it "
+#| "supports the same features of L<dh_install(1)> and has the advantage that "
+#| "it respects the B<nodoc> build profile (unlike L<dh_install(1)>)."
msgid ""
"In compat 10 and earlier, this program was primarily for when upstream's "
"build system does not properly install them as a part of its install step "
-"(or it does not have an install step). In compat 11 and later, it supports "
-"the same features of L<dh_install(1)> and has the advantage that it respects "
-"the B<nodoc> build profile (unlike L<dh_install(1)>)."
+"(or it does not have an install step). In compat 11 and later, it also "
+"supports the default searchdir plus --sourcedir like dh_install(1) and has "
+"the advantage that it respects the nodoc build profile (unlike "
+"dh_install(1))."
msgstr ""
"In Kompatibilitätsstufe 10 und älter war dieses Programm in erster Linie "
"dafür da, wenn das Bausystem der Ursprungsautoren sie nicht ordentlich als "
@@ -8150,10 +8642,16 @@ msgstr ""
#. type: textblock
#: dh_link:56
+#, fuzzy
+#| msgid ""
+#| "In each pair the source file (called B<target> by L<ln(1)>) comes first "
+#| "and is followed by the destination file (called B<link name> by "
+#| "L<ln(1)>). Thus the pairs of source and destination files in each line "
+#| "are give in the same order as they would be given to L<ln(1)>."
msgid ""
"In each pair the source file (called B<target> by L<ln(1)>) comes first and "
"is followed by the destination file (called B<link name> by L<ln(1)>). Thus "
-"the pairs of source and destination files in each line are give in the same "
+"the pairs of source and destination files in each line are given in the same "
"order as they would be given to L<ln(1)>."
msgstr ""
"In jedem Paar kommt die Quelldatei (durch L<ln(1)> B<Ziel> genannt) zuerst. "
@@ -8395,13 +8893,35 @@ msgstr ""
"älteren Versionen von Debhelper würde B<dh_makeshlibs> zu diesem Zweck ein "
"Betreuerskript erzeugen."
+#. type: textblock
+#: dh_makeshlibs:29
+msgid ""
+"Since debhelper 12.3, B<dh_makeshlibs> will by default add an additional "
+"I<udeb> line for udebs in the shlibs file, when the udeb has the same name "
+"as the deb followed by a \"-udeb\" suffix (e.g. if the deb is called "
+"\"libfoo1\", then debhelper will auto-detect the udeb if it is named "
+"\"libfoo1-udeb\"). Please use the B<--add-udeb> and B<--no-add-udeb> options "
+"below when this auto-detection is insufficient."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:36
+msgid ""
+"If you previously used B<--add-udeb> and is considering to migrate to using "
+"the auto-detection new auto-detection feature in 12.3, then please remember "
+"to test that the resulting F<DEBIAN/shlibs> files are as expected. There "
+"are some known corner cases, where the auto-detection is insufficient. "
+"These include when the udeb contains library files from multiple regular deb "
+"packages or when the packages do not follow the expected naming convention."
+msgstr ""
+
#. type: =item
-#: dh_makeshlibs:33
+#: dh_makeshlibs:48
msgid "debian/I<package>.shlibs"
msgstr "debian/I<Paket>.shlibs"
#. type: textblock
-#: dh_makeshlibs:35
+#: dh_makeshlibs:50
msgid ""
"Installs this file, if present, into the package as DEBIAN/shlibs. If "
"omitted, debhelper will generate a shlibs file automatically if it detects "
@@ -8412,7 +8932,7 @@ msgstr ""
"falls es irgendwelche Bibliotheken entdeckt."
#. type: textblock
-#: dh_makeshlibs:39
+#: dh_makeshlibs:54
msgid ""
"Note in compat levels 9 and earlier, this file was installed by "
"L<dh_installdeb(1)> rather than B<dh_makeshlibs>."
@@ -8421,17 +8941,17 @@ msgstr ""
"L<dh_installdeb(1)> anstatt durch B<dh_makeshlibs> installiert wurde."
#. type: =item
-#: dh_makeshlibs:42
+#: dh_makeshlibs:57
msgid "debian/I<package>.symbols"
msgstr "debian/I<Paket>.symbols"
#. type: =item
-#: dh_makeshlibs:44
+#: dh_makeshlibs:59
msgid "debian/I<package>.symbols.I<arch>"
msgstr "debian/I<Paket>.symbols.I<Architektur>"
#. type: textblock
-#: dh_makeshlibs:46
+#: dh_makeshlibs:61
msgid ""
"These symbols files, if present, are passed to L<dpkg-gensymbols(1)> to be "
"processed and installed. Use the I<arch> specific names if you need to "
@@ -8443,12 +8963,12 @@ msgstr ""
"Symbole für unterschiedliche Architekturen bereitstellen müssen."
#. type: =item
-#: dh_makeshlibs:56
+#: dh_makeshlibs:71
msgid "B<-m>I<major>, B<--major=>I<major>"
msgstr "B<-m>I<Hauptnummer>, B<--major=>I<Hauptnummer>"
#. type: textblock
-#: dh_makeshlibs:58
+#: dh_makeshlibs:73
msgid ""
"Instead of trying to guess the major number of the library with objdump, use "
"the major number specified after the -m parameter. This is much less useful "
@@ -8462,41 +8982,41 @@ msgstr ""
"verwenden."
#. type: =item
-#: dh_makeshlibs:63
+#: dh_makeshlibs:78
msgid "B<-V>, B<-V>I<dependencies>"
msgstr "B<-V>, B<-V>I<Abhängigkeiten>"
#. type: =item
-#: dh_makeshlibs:65
+#: dh_makeshlibs:80
msgid "B<--version-info>, B<--version-info=>I<dependencies>"
msgstr "B<--version-info>, B<--version-info=>I<Abhängigkeiten>"
#. type: textblock
-#: dh_makeshlibs:67
+#: dh_makeshlibs:82
msgid ""
"If a shlibs file is generated by this program, this option controls what "
"version will be used in the dependency relation."
msgstr ""
#. type: textblock
-#: dh_makeshlibs:70
+#: dh_makeshlibs:85
msgid ""
"In compat 12 and later, B<dh_makeshlibs> defaults to B<-VUpstream-Version>. "
"In compat 11 and earlier the default behaved like B<-VNone>.."
msgstr ""
#. type: textblock
-#: dh_makeshlibs:73
+#: dh_makeshlibs:88
msgid "The B<dh_makeshlibs> tool can generate dependencies in three variants:"
msgstr ""
#. type: =item
-#: dh_makeshlibs:77
+#: dh_makeshlibs:92
msgid "B<-VUpstream-Version>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:79
+#: dh_makeshlibs:94
msgid ""
"The dependency will be \"I<packagename> B<(E<gt>>= I<packageversion>B<)>\". "
"Note that I<Upstream-Version> is case-sensitive and must be written exactly "
@@ -8504,7 +9024,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:83
+#: dh_makeshlibs:98
#, fuzzy
#| msgid ""
#| "Beware of using B<-V> without any parameters; this is a conservative "
@@ -8530,7 +9050,7 @@ msgstr ""
"herauskommen könnten und es so schwieriger wird, ein Upgrade durchzuführen."
#. type: textblock
-#: dh_makeshlibs:88
+#: dh_makeshlibs:103
msgid ""
"The flip side is that packages might end up with dependencies that are too "
"tight in some cases (note a symbols file can mitigate this issue). This is "
@@ -8539,7 +9059,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:94
+#: dh_makeshlibs:109
msgid ""
"This explicit form was added in debhelper/11.3. In previous versions, a B<-"
"V> without any dependency information was used instead (and that form still "
@@ -8547,21 +9067,21 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_makeshlibs:98
+#: dh_makeshlibs:113
#, fuzzy
#| msgid "B<-V>"
msgid "B<-VNone>"
msgstr "B<-V>"
#. type: textblock
-#: dh_makeshlibs:100
+#: dh_makeshlibs:115
msgid ""
"The dependency will be \"I<packagename>\". Note that I<None> is case-"
"sensitive and must be written exactly as shown here."
msgstr ""
#. type: textblock
-#: dh_makeshlibs:103
+#: dh_makeshlibs:118
msgid ""
"This form is generally unsafe with the only exception being if upstream does "
"not extend the ABI in any way. However, most upstreams improve their "
@@ -8570,7 +9090,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:108
+#: dh_makeshlibs:123
msgid ""
"Alternatively, this may be sufficient if (and only if) the package uses "
"symbol versioning (see L<dpkg-gensymbols(1)>) and does I<not> build any udeb "
@@ -8579,14 +9099,14 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_makeshlibs:113
+#: dh_makeshlibs:128
#, fuzzy
#| msgid "B<--ddeb-migration=>I<package-relation>"
msgid "B<-V>I<package-relation>"
msgstr "B<--ddeb-migration=>I<Paketbeziehung>"
#. type: textblock
-#: dh_makeshlibs:115
+#: dh_makeshlibs:130
msgid ""
"In this case, the value passed to B<-V> will be used as a dependency "
"relation. The I<package-relation> should generally be of the form \"I<some-"
@@ -8595,7 +9115,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:120
+#: dh_makeshlibs:135
msgid ""
"Note that debhelper will use the value I<as it is> with no sanity checking "
"or modification. In I<rare special> cases, this is needed to generate a "
@@ -8603,7 +9123,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:127
+#: dh_makeshlibs:142
msgid ""
"When choosing a value for this option, please keep mind that if the package "
"provides a symbols file, then that it generally preferred over the shlibs "
@@ -8612,7 +9132,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:134
+#: dh_makeshlibs:149
msgid ""
"Do not add the \"ldconfig\" trigger even if it seems like the package might "
"need it. The option is called B<--no-scripts> for historical reasons as "
@@ -8625,7 +9145,7 @@ msgstr ""
"würde, die B<ldconfig> aufriefen."
#. type: textblock
-#: dh_makeshlibs:141
+#: dh_makeshlibs:156
msgid ""
"Exclude files that contain I<item> anywhere in their filename or directory "
"from being treated as shared libraries."
@@ -8634,12 +9154,12 @@ msgstr ""
"I<Element> enthalten, als Bibliotheken betrachtet zu werden."
#. type: =item
-#: dh_makeshlibs:144
+#: dh_makeshlibs:159
msgid "B<--add-udeb=>I<udeb>"
msgstr "B<--add-udeb=>I<Udeb>"
#. type: textblock
-#: dh_makeshlibs:146
+#: dh_makeshlibs:161
msgid ""
"Create an additional line for udebs in the shlibs file and use I<udeb> as "
"the package name for udebs to depend on instead of the regular library "
@@ -8650,19 +9170,51 @@ msgstr ""
"Bibliothekpakets."
#. type: textblock
-#: dh_makeshlibs:151
+#: dh_makeshlibs:164
+msgid ""
+"This is option is only useful for special cases such as when debhelper "
+"cannot auto-detect package name of the udeb package, when the udeb will "
+"contain libraries from multiple deb packages, or when the udeb contains "
+"libraries B<not> present in the deb package."
+msgstr ""
+
+#. type: =item
+#: dh_makeshlibs:169
+#, fuzzy
+#| msgid "B<--add-udeb=>I<udeb>"
+msgid "B<--no-add-udeb>"
+msgstr "B<--add-udeb=>I<Udeb>"
+
+#. type: textblock
+#: dh_makeshlibs:171
+msgid ""
+"Do not add any udeb lines to the shlibs file. This can be used to disable "
+"the default auto-detection of udebs."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:174
+msgid ""
+"This may be useful in case you do not want a shlibs file at all for the udeb "
+"because no package will depend on it. E.g. because adding a udeb package "
+"for the library was \"overkill\" and the library is embedded in a different "
+"udeb package."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:181
msgid "Pass I<params> to L<dpkg-gensymbols(1)>."
msgstr "übergibt I<Parameter> an L<dpkg-gensymbols(1)>."
#. type: =item
-#: dh_makeshlibs:159
+#: dh_makeshlibs:189
#, fuzzy
#| msgid "B<dh_makeshlibs -V>"
msgid "B<dh_makeshlibs -VNone>"
msgstr "B<dh_makeshlibs -V>"
#. type: verbatim
-#: dh_makeshlibs:161
+#: dh_makeshlibs:191
#, no-wrap
msgid ""
"Assuming this is a package named F<libfoobar1>, generates a shlibs file that\n"
@@ -8676,14 +9228,14 @@ msgstr ""
"\n"
#. type: =item
-#: dh_makeshlibs:165
+#: dh_makeshlibs:195
#, fuzzy
#| msgid "B<dh_makeshlibs -V>"
msgid "B<dh_makeshlibs -VUpstream-Version>"
msgstr "B<dh_makeshlibs -V>"
#. type: verbatim
-#: dh_makeshlibs:167
+#: dh_makeshlibs:197
#, no-wrap
msgid ""
"Assuming the current version of the package is 1.1-3, generates a shlibs\n"
@@ -8697,12 +9249,12 @@ msgstr ""
"\n"
#. type: =item
-#: dh_makeshlibs:171
+#: dh_makeshlibs:201
msgid "B<dh_makeshlibs -V 'libfoobar1 (E<gt>= 1.0)'>"
msgstr "B<dh_makeshlibs -V 'libfoobar1 (E<gt>= 1.0)'>"
#. type: verbatim
-#: dh_makeshlibs:173
+#: dh_makeshlibs:203
#, no-wrap
msgid ""
"Generates a shlibs file that looks something like:\n"
@@ -9022,7 +9574,7 @@ msgid "Perl policy, version 1.20"
msgstr "Perl-Richtlinie, Version 1.20"
#. type: textblock
-#: dh_perl:167
+#: dh_perl:179
msgid "Brendan O'Dea <bod@debian.org>"
msgstr "Brendan O'Dea <bod@debian.org>"
@@ -9269,7 +9821,7 @@ msgstr ""
"\t\n"
#. type: textblock
-#: dh_shlibdeps:201
+#: dh_shlibdeps:206
msgid "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
msgstr "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
@@ -9963,7 +10515,7 @@ msgid "L<dh_systemd_start(1)>, L<debhelper(7)>"
msgstr "L<dh_systemd_start(1)>, L<debhelper(7)>"
#. type: textblock
-#: dh_systemd_enable:287 dh_systemd_start:275
+#: dh_systemd_enable:287 dh_systemd_start:286
msgid "pkg-systemd-maintainers@lists.alioth.debian.org"
msgstr "pkg-systemd-maintainers@lists.alioth.debian.org"
@@ -10064,6 +10616,102 @@ msgstr ""
msgid "This compatibility level is open for beta testing; changes may occur."
msgstr "Diese Kompatibilitätsstufe ist im Beta-Test; Änderungen sind möglich."
+#~ msgid "DEPRECATED OPTIONS"
+#~ msgstr "MISSBILLIGTE OPTIONEN"
+
+#~ msgid ""
+#~ "The following options are deprecated. It's much better to use override "
+#~ "targets instead. They are B<not> available in compat 10."
+#~ msgstr ""
+#~ "Die folgenden Optionen sind veraltet. Es ist wesentlich besser, "
+#~ "stattdessen außer Kraft setzende Ziele zu verwenden. Sie sind nicht im "
+#~ "Kompatibilitätsmodus 10 verfügbar."
+
+#~ msgid "B<--until> I<cmd>"
+#~ msgstr "B<--until> I<Befehl>"
+
+#~ msgid "Run commands in the sequence until and including I<cmd>, then stop."
+#~ msgstr ""
+#~ "führt Befehle in der Sequenz bis einschließlich I<Befehl> aus und stoppt "
+#~ "dann."
+
+#~ msgid "B<--before> I<cmd>"
+#~ msgstr "B<--before> I<Befehl>"
+
+#~ msgid "Run commands in the sequence before I<cmd>, then stop."
+#~ msgstr "führt Befehle in der Sequenz vor I<Befehl> aus und stoppt dann."
+
+#~ msgid "B<--after> I<cmd>"
+#~ msgstr "B<--after> I<Befehl>"
+
+#~ msgid "Run commands in the sequence that come after I<cmd>."
+#~ msgstr "führt Befehle in der Sequenz aus, die nach I<Befehl> kommen."
+
+#~ msgid "B<--remaining>"
+#~ msgstr "B<--remaining>"
+
+#~ msgid "Run all commands in the sequence that have yet to be run."
+#~ msgstr "führt alle Befehle in der Sequenz aus, die noch auszuführen sind."
+
+#~ msgid ""
+#~ "In the above options, I<cmd> can be a full name of a debhelper command, "
+#~ "or a substring. It'll first search for a command in the sequence exactly "
+#~ "matching the name, to avoid any ambiguity. If there are multiple "
+#~ "substring matches, the last one in the sequence will be used."
+#~ msgstr ""
+#~ "In den vorhergehenden Optionen kann I<Befehl> ein vollständiger Name "
+#~ "eines Debhelper-Befehls oder eine Teilzeichenkette sein. Es wird zuerst "
+#~ "nach einem Befehl in der Sequenz gesucht, die exakt dem Namen entspricht, "
+#~ "um jede Mehrdeutigkeit zu vermeiden. Falls mehrere Teilzeichenketten "
+#~ "passen, wird der letzte in der Sequenz benutzt."
+
+#, fuzzy
+#~| msgid "dh - debhelper command sequencer"
+#~ msgid "The debhelper maintainers."
+#~ msgstr "dh - Debhelper-Befehls-Sequenzer"
+
+#~ msgid ""
+#~ "\t#!/usr/bin/make -f\n"
+#~ "\t%:\n"
+#~ "\t\tdh $@\n"
+#~ "\t\n"
+#~ msgstr ""
+#~ "\t#!/usr/bin/make -f\n"
+#~ "\t%:\n"
+#~ "\t\tdh $@\n"
+#~ "\t\n"
+
+#~ msgid ""
+#~ " % echo #RECOMMENDED_COMPAT# > debian/compat\n"
+#~ "\n"
+#~ msgstr ""
+#~ " % echo #RECOMMENDED_COMPAT# > debian/compat\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Your package will also need a versioned build dependency on a version of "
+#~ "debhelper equal to (or greater than) the compatibility level your package "
+#~ "uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/"
+#~ "control has:"
+#~ msgstr ""
+#~ "Ihr Paket wird außerdem eine Bauabhängigkeit mit Versionspflege auf eine "
+#~ "Debhelper-Version benötigen, die gleich (oder größer) als die ist, die "
+#~ "von der Kompatibilitätsstufe Ihres Pakets verwandt wird. Daher müssen Sie "
+#~ "für Kompatibilitätsstufe #RECOMMENDED_COMPAT# sicherstellen, dass debian/"
+#~ "control Folgendes hat:"
+
+#~ msgid "This control file will be installed into the F<DEBIAN> directory."
+#~ msgstr "Diese Steuerdatei wird in das Verzeichnis F<DEBIAN> installiert."
+
+#~ msgid ""
+#~ "In v3 compatibility mode and higher, all files in the F<etc/> directory "
+#~ "in a package will automatically be flagged as conffiles by this program, "
+#~ "so there is no need to list them manually here."
+#~ msgstr ""
+#~ "Im Kompatibilitätsmodus v3 und darüber werden alle Dateien im Verzeichnis "
+#~ "F<etc/> in einem Paket automatisch durch dieses Programm als Conffiles "
+#~ "markiert, daher ist es nicht nötig, sie manuell aufzuführen."
+
#~ msgid ""
#~ "The B<dh_installdocs> and B<dh_installexamples> tools will now attempt to "
#~ "guess the \"main package\" for a given documentation package (e.g. I<pkg-"
diff --git a/man/po4a/po/debhelper.pot b/man/po4a/po/debhelper.pot
index 043cc87f..97cd777e 100644
--- a/man/po4a/po/debhelper.pot
+++ b/man/po4a/po/debhelper.pot
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2018-08-08 14:37+0200\n"
+"POT-Creation-Date: 2019-10-20 17:40+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -27,7 +27,7 @@ msgid "debhelper - the debhelper tool suite"
msgstr ""
#. type: =head1
-#: debhelper.pod:7 debhelper-obsolete-compat.pod:5 dh:16 dh_auto_build:16 dh_auto_clean:16 dh_auto_configure:16 dh_auto_install:18 dh_auto_test:16 dh_bugfiles:15 dh_builddeb:17 dh_clean:15 dh_compress:17 dh_dwz:16 dh_fixperms:16 dh_gconf:15 dh_gencontrol:16 dh_icons:16 dh_install:15 dh_installcatalogs:17 dh_installchangelogs:15 dh_installcron:15 dh_installdeb:15 dh_installdebconf:15 dh_installdirs:15 dh_installdocs:17 dh_installemacsen:15 dh_installexamples:17 dh_installifupdown:15 dh_installinfo:15 dh_installinit:16 dh_installinitramfs:15 dh_installlogcheck:15 dh_installlogrotate:15 dh_installman:16 dh_installmanpages:16 dh_installmenu:15 dh_installmime:15 dh_installmodules:16 dh_installpam:15 dh_installppp:15 dh_installudev:15 dh_installwm:15 dh_installxfonts:15 dh_link:16 dh_lintian:15 dh_listpackages:15 dh_makeshlibs:15 dh_md5sums:16 dh_movefiles:15 dh_perl:17 dh_prep:15 dh_shlibdeps:17 dh_strip:16 dh_testdir:15 dh_testroot:9 dh_usrlocal:19 dh_systemd_enable:16 dh_systemd_start:17
+#: debhelper.pod:7 debhelper-obsolete-compat.pod:5 dh:20 dh_auto_build:16 dh_auto_clean:16 dh_auto_configure:16 dh_auto_install:18 dh_auto_test:16 dh_bugfiles:15 dh_builddeb:17 dh_clean:15 dh_compress:17 dh_dwz:16 dh_fixperms:16 dh_gconf:15 dh_gencontrol:16 dh_icons:16 dh_install:15 dh_installcatalogs:17 dh_installchangelogs:15 dh_installcron:15 dh_installdeb:15 dh_installdebconf:15 dh_installdirs:15 dh_installdocs:17 dh_installemacsen:15 dh_installexamples:17 dh_installifupdown:15 dh_installinfo:15 dh_installinit:16 dh_installinitramfs:15 dh_installlogcheck:15 dh_installlogrotate:15 dh_installman:16 dh_installmanpages:16 dh_installmenu:15 dh_installmime:15 dh_installmodules:16 dh_installpam:15 dh_installppp:15 dh_installudev:15 dh_installwm:15 dh_installxfonts:15 dh_link:16 dh_lintian:15 dh_listpackages:15 dh_makeshlibs:15 dh_md5sums:16 dh_movefiles:15 dh_perl:17 dh_prep:15 dh_shlibdeps:17 dh_strip:16 dh_testdir:15 dh_testroot:9 dh_usrlocal:19 dh_systemd_enable:16 dh_systemd_start:17
msgid "SYNOPSIS"
msgstr ""
@@ -39,7 +39,7 @@ msgid ""
msgstr ""
#. type: =head1
-#: debhelper.pod:11 dh:20 dh_auto_build:20 dh_auto_clean:20 dh_auto_configure:20 dh_auto_install:22 dh_auto_test:20 dh_bugfiles:19 dh_builddeb:21 dh_clean:19 dh_compress:21 dh_dwz:20 dh_fixperms:20 dh_gconf:19 dh_gencontrol:20 dh_icons:20 dh_install:19 dh_installcatalogs:21 dh_installchangelogs:19 dh_installcron:19 dh_installdeb:19 dh_installdebconf:19 dh_installdirs:19 dh_installdocs:21 dh_installemacsen:19 dh_installexamples:21 dh_installifupdown:19 dh_installinfo:19 dh_installinit:20 dh_installinitramfs:19 dh_installlogcheck:19 dh_installlogrotate:19 dh_installman:20 dh_installmanpages:20 dh_installmenu:19 dh_installmime:19 dh_installmodules:20 dh_installpam:19 dh_installppp:19 dh_installudev:19 dh_installwm:19 dh_installxfonts:19 dh_link:20 dh_lintian:19 dh_listpackages:19 dh_makeshlibs:19 dh_md5sums:20 dh_movefiles:19 dh_perl:21 dh_prep:19 dh_shlibdeps:21 dh_strip:20 dh_testdir:19 dh_testroot:13 dh_usrlocal:23 dh_systemd_enable:20 dh_systemd_start:21
+#: debhelper.pod:11 dh:24 dh_auto_build:20 dh_auto_clean:20 dh_auto_configure:20 dh_auto_install:22 dh_auto_test:20 dh_bugfiles:19 dh_builddeb:21 dh_clean:19 dh_compress:21 dh_dwz:20 dh_fixperms:20 dh_gconf:19 dh_gencontrol:20 dh_icons:20 dh_install:19 dh_installcatalogs:21 dh_installchangelogs:19 dh_installcron:19 dh_installdeb:19 dh_installdebconf:19 dh_installdirs:19 dh_installdocs:21 dh_installemacsen:19 dh_installexamples:21 dh_installifupdown:19 dh_installinfo:19 dh_installinit:20 dh_installinitramfs:19 dh_installlogcheck:19 dh_installlogrotate:19 dh_installman:20 dh_installmanpages:20 dh_installmenu:19 dh_installmime:19 dh_installmodules:20 dh_installpam:19 dh_installppp:19 dh_installudev:19 dh_installwm:19 dh_installxfonts:19 dh_link:20 dh_lintian:19 dh_listpackages:19 dh_makeshlibs:19 dh_md5sums:20 dh_movefiles:19 dh_perl:21 dh_prep:19 dh_shlibdeps:21 dh_strip:20 dh_testdir:19 dh_testroot:13 dh_usrlocal:23 dh_systemd_enable:20 dh_systemd_start:21
msgid "DESCRIPTION"
msgstr ""
@@ -80,8 +80,7 @@ msgstr ""
msgid ""
"Except where tool explicitly denotes otherwise, all of the debhelper tools "
"assumes that they run from root directory of an unpacked source package. "
-"This is so they can locate find F<debian/control> and F<debian/compat> when "
-"needed."
+"This is so they can locate find files like F<debian/control> when needed."
msgstr ""
#. type: =head1
@@ -273,7 +272,7 @@ msgid "Verbose mode: show all commands that modify the package build directory."
msgstr ""
#. type: =item
-#: debhelper.pod:148 dh:82
+#: debhelper.pod:148 dh:99
msgid "B<--no-act>"
msgstr ""
@@ -443,7 +442,7 @@ msgid "Do not modify F<postinst>, F<postrm>, etc. scripts."
msgstr ""
#. type: =item
-#: debhelper.pod:228 dh_compress:56 dh_dwz:44 dh_installchangelogs:85 dh_installdocs:99 dh_installexamples:77 dh_link:75 dh_makeshlibs:139 dh_md5sums:40 dh_shlibdeps:34 dh_strip:42
+#: debhelper.pod:228 dh_compress:56 dh_dwz:56 dh_installchangelogs:85 dh_installdocs:99 dh_installexamples:77 dh_link:75 dh_makeshlibs:154 dh_md5sums:40 dh_shlibdeps:34 dh_strip:42
msgid "B<-X>I<item>, B<--exclude=>I<item>"
msgstr ""
@@ -497,7 +496,9 @@ msgstr ""
#. type: =item
#: debhelper.pod:257
-msgid "B<-D>I<directory>, B<--sourcedirectory=>I<directory>"
+msgid ""
+"B<-D>I<directory>, B<--sourcedir=>I<directory>, "
+"B<--sourcedirectory=>I<directory>"
msgstr ""
#. type: textblock
@@ -510,7 +511,9 @@ msgstr ""
#. type: =item
#: debhelper.pod:263
-msgid "B<-B>[I<directory>], B<--builddirectory=>[I<directory>]"
+msgid ""
+"B<-B>[I<directory>], B<--builddir>[I<=directory>], "
+"B<--builddirectory>[I<=directory>]"
msgstr ""
#. type: textblock
@@ -590,13 +593,80 @@ msgid ""
msgstr ""
#. type: =item
-#: debhelper.pod:304 dh:74
-msgid "B<--list>, B<-l>"
+#: debhelper.pod:304
+msgid "B<--reload-all-buildenv-variables>"
msgstr ""
#. type: textblock
#: debhelper.pod:306
msgid ""
+"By default, L<dh(1)> will compute several environment (e.g. by using "
+"L<dpkg-buildflags(1)>) and cache them to avoid having all B<dh_auto_*> tool "
+"recompute them."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:310
+msgid ""
+"When passing this option, the concrete B<dh_auto_*> tool will ignore the "
+"cache from L<dh(1)> and retrigger a rebuild of these variables. This is "
+"useful in the very rare case where the package need to do multiple builds "
+"but with different B<...FLAGS> options. A concrete example would be needing "
+"to change the B<-O> parameter in B<CFLAGS> in the second build:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:317
+#, no-wrap
+msgid ""
+" export DEB_CFLAGS_MAINT_APPEND=-O3\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:319
+#, no-wrap
+msgid ""
+" %:\n"
+" dh $@\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:322
+#, no-wrap
+msgid ""
+" override_dh_auto_configure:\n"
+" dh_auto_configure -Bbuild-deb ...\n"
+" DEB_CFLAGS_MAINT_APPEND=-Os dh_auto_configure \\\n"
+" --reload-all-buildenv-variables -Bbuild-udeb ...\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:327
+msgid ""
+"Without B<--reload-all-buildenv-variables> in the second call to "
+"L<dh_auto_configure(1)>, the change in B<DEB_CFLAGS_MAINT_APPEND> would be "
+"ignored as L<dh_auto_configure(1)> would use the cached value of B<CFLAGS> "
+"set by L<dh(1)>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:332
+msgid ""
+"This option is only available with B<< debhelper (>= 12.7~) >> when the "
+"package uses compatibility level 9 or later."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:335 dh:91
+msgid "B<--list>, B<-l>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:337
+msgid ""
"List all build systems supported by debhelper on this system. The list "
"includes both default and third party build systems (marked as such). Also "
"shows which build system would be automatically selected, or which one is "
@@ -604,48 +674,73 @@ msgid ""
msgstr ""
#. type: =head1
-#: debhelper.pod:313
+#: debhelper.pod:344
msgid "COMPATIBILITY LEVELS"
msgstr ""
#. type: textblock
-#: debhelper.pod:315
+#: debhelper.pod:346
msgid ""
"From time to time, major non-backwards-compatible changes need to be made to "
"debhelper, to keep it clean and well-designed as needs change and its author "
"gains more experience. To prevent such major changes from breaking existing "
"packages, the concept of debhelper compatibility levels was introduced. You "
"must tell debhelper which compatibility level it should use, and it modifies "
-"its behavior in various ways. The compatibility level is specified in the "
-"F<debian/compat> file and the file must be present."
+"its behavior in various ways."
msgstr ""
#. type: textblock
-#: debhelper.pod:323
+#: debhelper.pod:353
msgid ""
-"Tell debhelper what compatibility level to use by writing a number to "
-"F<debian/compat>. For example, to use v#RECOMMENDED_COMPAT# mode:"
+"In current debhelper, you can specify the compatibility level in "
+"F<debian/control> by adding a Build-Depends on the debhelper-compat "
+"package. For example, to use v#RECOMMENDED_COMPAT# mode, ensure "
+"F<debian/control> has:"
msgstr ""
#. type: verbatim
-#: debhelper.pod:326
+#: debhelper.pod:357
#, no-wrap
msgid ""
-" % echo #RECOMMENDED_COMPAT# > debian/compat\n"
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
"\n"
msgstr ""
#. type: textblock
-#: debhelper.pod:328
+#: debhelper.pod:359
+msgid ""
+"This also serves as an appropriate versioned build dependency on a "
+"sufficient version of the debhelper package, so you do not need to specify a "
+"separate versioned build dependency on the debhelper package unless you need "
+"a specific point release of debhelper (such as for the introduction of a new "
+"feature or bugfix within a compatibility level)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:365
+msgid ""
+"Note that debhelper does not provide debhelper-compat for experimental or "
+"beta compatibility levels; packages experimenting with those compatibility "
+"levels should use F<debian/compat> or B<DH_COMPAT>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:369
msgid ""
-"Your package will also need a versioned build dependency on a version of "
-"debhelper equal to (or greater than) the compatibility level your package "
-"uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/control "
-"has:"
+"Prior versions of debhelper required specifying the compatibility level in "
+"the file F<debian/compat>, and current debhelper still supports this for "
+"backward compatibility, though a package may not specify a compatibility "
+"level via multiple methods at once. To use this method, F<debian/compat> "
+"should contain the compatibility level as a single number, and no other "
+"content. If you specify the compatibility level by this method, your package "
+"will also need a versioned build dependency on a version of the debhelper "
+"package equal to (or greater than) the compatibility level your package "
+"uses. So, if you specify compatibility level #RECOMMENDED_COMPAT# in "
+"F<debian/compat>, ensure F<debian/control> has:"
msgstr ""
#. type: verbatim
-#: debhelper.pod:332
+#: debhelper.pod:380
#, no-wrap
msgid ""
" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#~)\n"
@@ -653,7 +748,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:334
+#: debhelper.pod:382
msgid ""
"Unless otherwise indicated, all debhelper documentation assumes that you are "
"using the most recent compatibility level, and in most cases does not "
@@ -664,61 +759,61 @@ msgid ""
msgstr ""
#. type: =head2
-#: debhelper.pod:341
+#: debhelper.pod:389
msgid "Supported compatibility levels"
msgstr ""
#. type: textblock
-#: debhelper.pod:343
+#: debhelper.pod:391
msgid "These are the available compatibility levels:"
msgstr ""
#. type: =item
-#: debhelper.pod:347 debhelper-obsolete-compat.pod:89
+#: debhelper.pod:395 debhelper-obsolete-compat.pod:89
msgid "v5"
msgstr ""
#. type: textblock
-#: debhelper.pod:349 debhelper-obsolete-compat.pod:91
+#: debhelper.pod:397 debhelper-obsolete-compat.pod:91
msgid "This is the lowest supported compatibility level."
msgstr ""
#. type: textblock
-#: debhelper.pod:351
+#: debhelper.pod:399
msgid ""
"If you are upgrading from an earlier compatibility level, please review "
"L<debhelper-obsolete-compat(7)>."
msgstr ""
#. type: textblock
-#: debhelper.pod:354 debhelper.pod:386 debhelper.pod:416 debhelper.pod:447 debhelper-obsolete-compat.pod:28 debhelper-obsolete-compat.pod:35 debhelper-obsolete-compat.pod:58 debhelper-obsolete-compat.pod:87
+#: debhelper.pod:402 debhelper.pod:434 debhelper.pod:464 debhelper.pod:495 debhelper-obsolete-compat.pod:28 debhelper-obsolete-compat.pod:35 debhelper-obsolete-compat.pod:58 debhelper-obsolete-compat.pod:87
msgid "This mode is deprecated."
msgstr ""
#. type: =item
-#: debhelper.pod:356
+#: debhelper.pod:404
msgid "v6"
msgstr ""
#. type: textblock
-#: debhelper.pod:358
+#: debhelper.pod:406
msgid "Changes from v5 are:"
msgstr ""
#. type: =item
-#: debhelper.pod:362 debhelper.pod:367 debhelper.pod:373 debhelper.pod:379 debhelper.pod:394 debhelper.pod:401 debhelper.pod:405 debhelper.pod:409 debhelper.pod:424 debhelper.pod:428 debhelper.pod:436 debhelper.pod:441 debhelper.pod:455 debhelper.pod:460 debhelper.pod:467 debhelper.pod:472 debhelper.pod:477 debhelper.pod:485 debhelper.pod:491 debhelper.pod:496 debhelper.pod:501 debhelper.pod:514 debhelper.pod:519 debhelper.pod:525 debhelper.pod:532 debhelper.pod:538 debhelper.pod:543 debhelper.pod:549 debhelper.pod:555 debhelper.pod:565 debhelper.pod:571 debhelper.pod:594 debhelper.pod:601 debhelper.pod:607 debhelper.pod:613 debhelper.pod:629 debhelper.pod:635 debhelper.pod:647 debhelper.pod:655 debhelper.pod:661 debhelper.pod:666 debhelper.pod:671 debhelper.pod:676 debhelper.pod:684 debhelper.pod:694 debhelper.pod:704 debhelper.pod:711 debhelper.pod:723 debhelper.pod:728 debhelper.pod:756 debhelper.pod:775 debhelper.pod:785 debhelper.pod:789 debhelper.pod:794 debhelper.pod:799 debhelper.pod:806 debhelper.pod:812 debhelper.pod:820 debhelper.pod:826 debhelper.pod:830 debhelper.pod:835 debhelper.pod:840 debhelper.pod:849 debhelper-obsolete-compat.pod:43 debhelper-obsolete-compat.pod:48 debhelper-obsolete-compat.pod:52 debhelper-obsolete-compat.pod:66 debhelper-obsolete-compat.pod:71 debhelper-obsolete-compat.pod:76 debhelper-obsolete-compat.pod:81 debhelper-obsolete-compat.pod:97 debhelper-obsolete-compat.pod:101 debhelper-obsolete-compat.pod:106 debhelper-obsolete-compat.pod:110 dh_testroot:36 dh_testroot:41 dh_testroot:46
+#: debhelper.pod:410 debhelper.pod:415 debhelper.pod:421 debhelper.pod:427 debhelper.pod:442 debhelper.pod:449 debhelper.pod:453 debhelper.pod:457 debhelper.pod:472 debhelper.pod:476 debhelper.pod:484 debhelper.pod:489 debhelper.pod:503 debhelper.pod:508 debhelper.pod:515 debhelper.pod:520 debhelper.pod:525 debhelper.pod:533 debhelper.pod:539 debhelper.pod:544 debhelper.pod:549 debhelper.pod:562 debhelper.pod:567 debhelper.pod:573 debhelper.pod:579 debhelper.pod:584 debhelper.pod:590 debhelper.pod:599 debhelper.pod:609 debhelper.pod:615 debhelper.pod:638 debhelper.pod:645 debhelper.pod:651 debhelper.pod:657 debhelper.pod:663 debhelper.pod:692 debhelper.pod:698 debhelper.pod:710 debhelper.pod:718 debhelper.pod:724 debhelper.pod:729 debhelper.pod:734 debhelper.pod:739 debhelper.pod:747 debhelper.pod:757 debhelper.pod:767 debhelper.pod:774 debhelper.pod:786 debhelper.pod:791 debhelper.pod:819 debhelper.pod:838 debhelper.pod:848 debhelper.pod:852 debhelper.pod:857 debhelper.pod:862 debhelper.pod:869 debhelper.pod:875 debhelper.pod:883 debhelper.pod:889 debhelper.pod:893 debhelper.pod:898 debhelper.pod:903 debhelper.pod:912 debhelper.pod:928 debhelper.pod:935 debhelper.pod:951 debhelper.pod:959 debhelper.pod:964 debhelper.pod:979 debhelper.pod:987 debhelper.pod:995 debhelper-obsolete-compat.pod:43 debhelper-obsolete-compat.pod:48 debhelper-obsolete-compat.pod:52 debhelper-obsolete-compat.pod:66 debhelper-obsolete-compat.pod:71 debhelper-obsolete-compat.pod:76 debhelper-obsolete-compat.pod:81 debhelper-obsolete-compat.pod:97 debhelper-obsolete-compat.pod:101 debhelper-obsolete-compat.pod:106 debhelper-obsolete-compat.pod:110 dh_testroot:36 dh_testroot:41 dh_testroot:46
msgid "-"
msgstr ""
#. type: textblock
-#: debhelper.pod:364
+#: debhelper.pod:412
msgid ""
"Commands that generate maintainer script fragments will order the fragments "
"in reverse order for the F<prerm> and F<postrm> scripts."
msgstr ""
#. type: textblock
-#: debhelper.pod:369
+#: debhelper.pod:417
msgid ""
"B<dh_installwm> will install a slave manpage link for "
"F<x-window-manager.1.gz>, if it sees the man page in F<usr/share/man/man1> "
@@ -726,7 +821,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:375
+#: debhelper.pod:423
msgid ""
"B<dh_builddeb> did not previously delete everything matching "
"B<DH_ALWAYS_EXCLUDE>, if it was set to a list of things to exclude, such as "
@@ -734,24 +829,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:381
+#: debhelper.pod:429
msgid ""
"B<dh_installman> allows overwriting existing man pages in the package build "
"directory. In previous compatibility levels it silently refuses to do this."
msgstr ""
#. type: =item
-#: debhelper.pod:388
+#: debhelper.pod:436
msgid "v7"
msgstr ""
#. type: textblock
-#: debhelper.pod:390
+#: debhelper.pod:438
msgid "Changes from v6 are:"
msgstr ""
#. type: textblock
-#: debhelper.pod:396
+#: debhelper.pod:444
msgid ""
"B<dh_install>, will fall back to looking for files in F<debian/tmp> if it "
"doesn't find them in the current directory (or wherever you tell it look "
@@ -761,39 +856,39 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:403
+#: debhelper.pod:451
msgid "B<dh_clean> will read F<debian/clean> and delete files listed there."
msgstr ""
#. type: textblock
-#: debhelper.pod:407
+#: debhelper.pod:455
msgid "B<dh_clean> will delete toplevel F<*-stamp> files."
msgstr ""
#. type: textblock
-#: debhelper.pod:411
+#: debhelper.pod:459
msgid ""
"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
"none is specified."
msgstr ""
#. type: =item
-#: debhelper.pod:418
+#: debhelper.pod:466
msgid "v8"
msgstr ""
#. type: textblock
-#: debhelper.pod:420
+#: debhelper.pod:468
msgid "Changes from v7 are:"
msgstr ""
#. type: textblock
-#: debhelper.pod:426
+#: debhelper.pod:474
msgid "Commands will fail rather than warning when they are passed unknown options."
msgstr ""
#. type: textblock
-#: debhelper.pod:430
+#: debhelper.pod:478
msgid ""
"B<dh_makeshlibs> will run B<dpkg-gensymbols> on all shared libraries that it "
"generates shlibs files for. So B<-X> can be used to exclude libraries. "
@@ -803,7 +898,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:438
+#: debhelper.pod:486
msgid ""
"B<dh> requires the sequence to run be specified as the first parameter, and "
"any switches come after it. Ie, use \"B<dh $@ --foo>\", not \"B<dh --foo "
@@ -811,31 +906,31 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:443
+#: debhelper.pod:491
msgid ""
"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
"F<Makefile.PL>."
msgstr ""
#. type: =item
-#: debhelper.pod:449
+#: debhelper.pod:497
msgid "v9"
msgstr ""
#. type: textblock
-#: debhelper.pod:451
+#: debhelper.pod:499
msgid "Changes from v8 are:"
msgstr ""
#. type: textblock
-#: debhelper.pod:457
+#: debhelper.pod:505
msgid ""
"Multiarch support. In particular, B<dh_auto_configure> passes multiarch "
"directories to autoconf in --libdir and --libexecdir."
msgstr ""
#. type: textblock
-#: debhelper.pod:462
+#: debhelper.pod:510
msgid ""
"dh is aware of the usual dependencies between targets in debian/rules. So, "
"\"dh binary\" will run any build, build-arch, build-indep, install, etc "
@@ -844,26 +939,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:469
+#: debhelper.pod:517
msgid ""
"B<dh_strip> compresses debugging symbol files to reduce the installed size "
"of -dbg packages."
msgstr ""
#. type: textblock
-#: debhelper.pod:474
+#: debhelper.pod:522
msgid ""
"B<dh_auto_configure> does not include the source package name in "
"--libexecdir when using autoconf."
msgstr ""
#. type: textblock
-#: debhelper.pod:479
+#: debhelper.pod:527
msgid "B<dh> does not default to enabling --with=python-support"
msgstr ""
#. type: textblock
-#: debhelper.pod:481
+#: debhelper.pod:529
msgid ""
"(Obsolete: As the B<dh_pysupport> tool was removed from Debian stretch. "
"Since debhelper/10.3, B<dh> no longer enables this sequence add-on "
@@ -871,52 +966,52 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:487
+#: debhelper.pod:535
msgid ""
"All of the B<dh_auto_>I<*> debhelper programs and B<dh> set environment "
"variables listed by B<dpkg-buildflags>, unless they are already set."
msgstr ""
#. type: textblock
-#: debhelper.pod:493
+#: debhelper.pod:541
msgid ""
"B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and LDFLAGS "
"to perl F<Makefile.PL> and F<Build.PL>"
msgstr ""
#. type: textblock
-#: debhelper.pod:498
+#: debhelper.pod:546
msgid ""
"B<dh_strip> puts separated debug symbols in a location based on their "
"build-id."
msgstr ""
#. type: textblock
-#: debhelper.pod:503
+#: debhelper.pod:551
msgid ""
"Executable debhelper config files are run and their output used as the "
"configuration."
msgstr ""
#. type: =item
-#: debhelper.pod:508
+#: debhelper.pod:556
msgid "v10"
msgstr ""
#. type: textblock
-#: debhelper.pod:510
+#: debhelper.pod:558
msgid "Changes from v9 are:"
msgstr ""
#. type: textblock
-#: debhelper.pod:516
+#: debhelper.pod:564
msgid ""
"B<dh_installinit> will no longer install a file named debian/I<package> as "
"an init script."
msgstr ""
#. type: textblock
-#: debhelper.pod:521
+#: debhelper.pod:569
msgid ""
"B<dh_installdocs> will error out if it detects links created with --link-doc "
"between packages of architecture \"all\" and non-\"all\" as it breaks "
@@ -924,16 +1019,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:527
-msgid ""
-"B<dh> no longer creates the package build directory when skipping running "
-"debhelper commands. This will not affect packages that only build with "
-"debhelper commands, but it may expose bugs in commands not included in "
-"debhelper."
-msgstr ""
-
-#. type: textblock
-#: debhelper.pod:534
+#: debhelper.pod:575
msgid ""
"B<dh_installdeb> no longer installs a maintainer-provided "
"debian/I<package>.shlibs file. This is now done by B<dh_makeshlibs> "
@@ -941,14 +1027,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:540
+#: debhelper.pod:581
msgid ""
"B<dh_installwm> refuses to create a broken package if no man page can be "
"found (required to register for the x-window-manager alternative)."
msgstr ""
#. type: textblock
-#: debhelper.pod:545
+#: debhelper.pod:586
msgid ""
"Debhelper will default to B<--parallel> for all buildsystems that support "
"parallel building. This can be disabled by using either B<--no-parallel> or "
@@ -956,7 +1042,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:551
+#: debhelper.pod:592
msgid ""
"The B<dh> command will not accept any of the deprecated \"manual sequence "
"control\" parameters (B<--before>, B<--after>, etc.). Please use override "
@@ -964,7 +1050,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:557
+#: debhelper.pod:596
+msgid ""
+"B<Retroactively applied to earlier compat levels>: B<dh> no longer accepts "
+"any of these since debhelper/12.4."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:601
msgid ""
"The B<dh> command will no longer use log files to track which commands have "
"been run. The B<dh> command I<still> keeps track of whether it already ran "
@@ -972,12 +1065,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:561
+#: debhelper.pod:605
msgid "The main effects of this are:"
msgstr ""
#. type: textblock
-#: debhelper.pod:567
+#: debhelper.pod:611
msgid ""
"With this, it is now easier to debug the I<install> or/and I<binary> "
"sequences because they can now trivially be re-run (without having to do a "
@@ -985,7 +1078,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:573
+#: debhelper.pod:617
msgid ""
"The main caveat is that B<dh_*> now only keeps track of what happened in a "
"single override target. When all the calls to a given B<dh_cmd> command "
@@ -993,12 +1086,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:578
+#: debhelper.pod:622
msgid "Example of where it can go wrong:"
msgstr ""
#. type: verbatim
-#: debhelper.pod:580
+#: debhelper.pod:624
#, no-wrap
msgid ""
" override_dh_foo:\n"
@@ -1007,7 +1100,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: debhelper.pod:583
+#: debhelper.pod:627
#, no-wrap
msgid ""
" override_dh_bar:\n"
@@ -1017,7 +1110,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:587
+#: debhelper.pod:631
msgid ""
"In this case, the call to B<dh_foo --remaining> will I<also> include "
"I<my-pkg>, since B<dh_foo -pmy-pkg> was run in a separate override target. "
@@ -1026,7 +1119,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:596
+#: debhelper.pod:640
msgid ""
"The B<dh_installdeb> command now shell-escapes the lines in the "
"F<maintscript> config file. This was the original intent but it did not "
@@ -1035,7 +1128,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:603
+#: debhelper.pod:647
msgid ""
"The B<dh_installinit> command now defaults to B<--restart-after-upgrade>. "
"For packages needing the previous behaviour, please use "
@@ -1043,7 +1136,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:609
+#: debhelper.pod:653
msgid ""
"The B<autoreconf> sequence is now enabled by default. Please pass "
"B<--without autoreconf> to B<dh> if this is not desirable for a given "
@@ -1051,29 +1144,58 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:615
+#: debhelper.pod:659
msgid ""
"The B<systemd> sequence is now enabled by default. Please pass B<--without "
"systemd> to B<dh> if this is not desirable for a given package."
msgstr ""
+#. type: textblock
+#: debhelper.pod:665
+msgid ""
+"B<Retroactively removed>: B<dh> no longer creates the package build "
+"directory when skipping running debhelper commands. This will not affect "
+"packages that only build with debhelper commands, but it may expose bugs in "
+"commands not included in debhelper."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:670
+msgid ""
+"This compatibility feature had a bug since its inception in "
+"debhelper/9.20130516 that made it fail to apply in compat 9 and earlier. As "
+"there has been no reports of issues caused by this bug in those ~5 years, "
+"this item have been removed rather than fixed."
+msgstr ""
+
#. type: =item
-#: debhelper.pod:621
+#: debhelper.pod:677
msgid "v11"
msgstr ""
#. type: textblock
-#: debhelper.pod:623
-msgid "This is the recommended mode of operation."
+#: debhelper.pod:679
+msgid "This mode is discouraged."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:681
+msgid ""
+"The compat 11 is discouraged for new packages as it suffers from feature "
+"interaction between L<dh_installinit> and L<dh_installsystemd> causing "
+"services to not run correctly in some cases. Please consider using "
+"compatibility mode 10 or 12 instead. More details about the issue are "
+"available in Debian#887904 and "
+"L<https://lists.debian.org/debian-release/2019/04/msg01442.html>."
msgstr ""
#. type: textblock
-#: debhelper.pod:625
+#: debhelper.pod:688
msgid "Changes from v10 are:"
msgstr ""
#. type: textblock
-#: debhelper.pod:631
+#: debhelper.pod:694
msgid ""
"B<dh_installinit> no longer installs F<service> or F<tmpfile> files, nor "
"generates maintainer scripts for those files. Please use the new "
@@ -1081,7 +1203,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:637
+#: debhelper.pod:700
msgid ""
"The B<dh_systemd_enable> and B<dh_systemd_start> helpers have been replaced "
"by the new B<dh_installsystemd> helper. For the same reason, the B<systemd> "
@@ -1090,55 +1212,55 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:643
+#: debhelper.pod:706
msgid ""
"Please note that the B<dh_installsystemd> tool has a slightly different "
"behaviour in some cases (e.g. when using the B<--name> parameter)."
msgstr ""
#. type: textblock
-#: debhelper.pod:649
+#: debhelper.pod:712
msgid ""
"B<dh_installdirs> no longer creates debian/I<package> directories unless "
"explicitly requested (or it has to create a subdirectory in it)."
msgstr ""
#. type: textblock
-#: debhelper.pod:653
+#: debhelper.pod:716
msgid "The vast majority of all packages will be unaffected by this change."
msgstr ""
#. type: textblock
-#: debhelper.pod:657
+#: debhelper.pod:720
msgid ""
-"The B<makefile> buildsystem now passes B<INSTALL=install "
-"--strip-program=true> to L<make(1)>. Derivative buildsystems "
+"The B<makefile> buildsystem now passes B<INSTALL=\"install "
+"--strip-program=true\"> to L<make(1)>. Derivative buildsystems "
"(e.g. B<configure> or B<cmake>) are unaffected by this change."
msgstr ""
#. type: textblock
-#: debhelper.pod:663
+#: debhelper.pod:726
msgid ""
"The B<autoconf> buildsystem now passes B<--runstatedir=/run> to "
"F<./configure>."
msgstr ""
#. type: textblock
-#: debhelper.pod:668
+#: debhelper.pod:731
msgid ""
"The B<cmake> buildsystem now passes B<-DCMAKE_INSTALL_RUNSTATEDIR=/run> to "
"L<cmake(1)>."
msgstr ""
#. type: textblock
-#: debhelper.pod:673
+#: debhelper.pod:736
msgid ""
"B<dh_installman> will now prefer detecting the language from the path name "
"rather than the extension."
msgstr ""
#. type: textblock
-#: debhelper.pod:678
+#: debhelper.pod:741
msgid ""
"B<dh_auto_install> will now only create the destination directory it needs. "
"Previously, it would create the package build directory for all packages. "
@@ -1147,7 +1269,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:686
+#: debhelper.pod:749
msgid ""
"The helpers B<dh_installdocs>, B<dh_installexamples>, B<dh_installinfo>, and "
"B<dh_installman> now error out if their config has a pattern that does not "
@@ -1155,7 +1277,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:690
+#: debhelper.pod:753
msgid ""
"Known exceptions include building with the B<nodoc> profile, where the above "
"tools will silently permit failed matches where the patterns are used to "
@@ -1163,7 +1285,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:696
+#: debhelper.pod:759
msgid ""
"The helpers B<dh_installdocs>, B<dh_installexamples>, B<dh_installinfo>, and "
"B<dh_installman> now accept the parameter B<--sourcedir> with same meaning "
@@ -1172,14 +1294,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:701
+#: debhelper.pod:764
msgid ""
"Migration note: A bug in debhelper 11 up to 11.1.5 made B<dh_installinfo> "
"incorrectly ignore B<--sourcedir>."
msgstr ""
#. type: textblock
-#: debhelper.pod:706
+#: debhelper.pod:769
msgid ""
"The B<perl-makemaker> and B<perl-build> build systems no longer pass B<-I.> "
"to perl. Packages that still need this behaviour can emulate it by using "
@@ -1188,7 +1310,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:713
+#: debhelper.pod:776
msgid ""
"The B<PERL_USE_UNSAFE_INC> environment variable is no longer set by B<dh> or "
"any of the B<dh_auto_*> tools. It was added as a temporary work around to "
@@ -1196,7 +1318,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:718
+#: debhelper.pod:781
msgid ""
"Note this item will eventually become obsolete as upstream intends to drop "
"support for the B<PERL_USE_UNSAFE_INC> environment variable. When perl "
@@ -1205,14 +1327,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:725
+#: debhelper.pod:788
msgid ""
"The B<dh_makeshlibs> helper will now exit with an error if objdump returns a "
"non-zero exit from analysing a given file."
msgstr ""
#. type: textblock
-#: debhelper.pod:730
+#: debhelper.pod:793
msgid ""
"The B<dh_installdocs> and B<dh_installexamples> tools may now install "
"I<most> of the documentation in a different path to comply with the "
@@ -1220,7 +1342,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:734
+#: debhelper.pod:797
msgid ""
"Note that if a given source package only contains a single binary package in "
"F<debian/control> or none of the packages are I<-doc> packages, then this "
@@ -1229,7 +1351,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:739
+#: debhelper.pod:802
msgid ""
"By default, these tools will now attempt to determine a \"main package for "
"the documentation\" (called a I<doc-main-package> from here on) for every "
@@ -1241,7 +1363,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:747
+#: debhelper.pod:810
msgid ""
"The B<--doc-main-package> option can be used when the auto-detection is "
"insufficient or to reset the path to its previous value if there is a reason "
@@ -1249,7 +1371,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:751
+#: debhelper.pod:814
msgid ""
"Some documentation will not be affected by this change. These exceptions "
"include the copyright file, changelog files, README.Debian, etc. These "
@@ -1257,7 +1379,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:758
+#: debhelper.pod:821
msgid ""
"The B<dh_strip> and B<dh_shlibdeps> tools no longer uses filename patterns "
"to determine which files to process. Instead, they open the file and look "
@@ -1266,27 +1388,27 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:763
+#: debhelper.pod:826
msgid "This change may cause the tools to process more files than previously."
msgstr ""
#. type: =item
-#: debhelper.pod:767
+#: debhelper.pod:830
msgid "v12"
msgstr ""
#. type: textblock
-#: debhelper.pod:769
-msgid "This compatibility level is still open for development; use with caution."
+#: debhelper.pod:832
+msgid "This is the recommended mode of operation."
msgstr ""
#. type: textblock
-#: debhelper.pod:771
+#: debhelper.pod:834
msgid "Changes from v11 are:"
msgstr ""
#. type: textblock
-#: debhelper.pod:777
+#: debhelper.pod:840
msgid ""
"The B<dh_makeshlibs> tool now generates shlibs files with versioned "
"dependency by default. This means that B<-VUpstream-Version> (a.k.a. B<-V>) "
@@ -1294,7 +1416,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:781
+#: debhelper.pod:844
msgid ""
"If an unversioned dependency in the shlibs file is wanted, this can be "
"obtained by passing B<-VNone> instead. However, please see "
@@ -1302,28 +1424,28 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:787
+#: debhelper.pod:850
msgid ""
"The B<-s> (B<--same-arch>) option is removed. Please use B<-a> (B<--arch>) "
"instead."
msgstr ""
#. type: textblock
-#: debhelper.pod:791
+#: debhelper.pod:854
msgid ""
"Invoking B<dh_clean -k> now causes an error instead of a deprecation "
"warning."
msgstr ""
#. type: textblock
-#: debhelper.pod:796
+#: debhelper.pod:859
msgid ""
"The B<--no-restart-on-upgrade> option in B<dh_installinit> has been "
"removed. Please use the new name B<--no-stop-on-upgrade>"
msgstr ""
#. type: textblock
-#: debhelper.pod:801
+#: debhelper.pod:864
msgid ""
"There was a bug in the B<doit> (and similar) functions from "
"L<Debian::Debhelper::Dh_Lib> that made them spawn a shell in one particular "
@@ -1332,7 +1454,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:808
+#: debhelper.pod:871
msgid ""
"The B<--list-missing> and B<--fail-missing> in B<dh_install> has been "
"removed. Please use B<dh_missing> and its corresponding options, which can "
@@ -1340,7 +1462,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:814
+#: debhelper.pod:877
msgid ""
"The B<dh_installinit> helper no longer installs configuration for the "
"upstart init system. Instead, it will abort the build if it finds an old "
@@ -1350,7 +1472,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:822
+#: debhelper.pod:885
msgid ""
"The B<dh_installdeb> tool will do basic validation of some "
"L<dpkg-maintscript-helper(1)> commands and will error out if the commands "
@@ -1358,26 +1480,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:828
+#: debhelper.pod:891
msgid "The B<dh_missing> tool will now default to B<--list-missing>."
msgstr ""
#. type: textblock
-#: debhelper.pod:832
+#: debhelper.pod:895
msgid ""
"The B<dh_makeshlibs> tool will now only pass libraries to "
"L<dpkg-gensymbols(1)> if the ELF binary has a SONAME (containing \".so\")."
msgstr ""
#. type: textblock
-#: debhelper.pod:837
+#: debhelper.pod:900
msgid ""
"The B<dh_compress> tool no longer compresses examples (i.e. anything "
"installed in F<</usr/share/doc/I<package>/examples>>.)"
msgstr ""
#. type: textblock
-#: debhelper.pod:842
+#: debhelper.pod:905
msgid ""
"The standard sequence in B<dh> now includes B<dh_dwz> and "
"B<dh_installinitramfs> by default. This makes the B<dwz> and "
@@ -1387,7 +1509,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:851
+#: debhelper.pod:914
msgid ""
"The build systems B<meson> and B<autoconf> no longer explicitly set the "
"B<--libexecdir> variable and thus relies on the build system default - which "
@@ -1395,7 +1517,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:856
+#: debhelper.pod:919
msgid ""
"If a particular upstream package does not use the correct default, the "
"parameter can often be passed manually via L<dh_auto_configure(1)>. E.g. "
@@ -1403,7 +1525,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: debhelper.pod:860
+#: debhelper.pod:923
#, no-wrap
msgid ""
" override_dh_auto_configure:\n"
@@ -1412,22 +1534,130 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:863
+#: debhelper.pod:926
msgid "Note the B<--> before the B<--libexecdir> parameter."
msgstr ""
+#. type: textblock
+#: debhelper.pod:930
+msgid ""
+"The B<dh_installdeb> tool no longer installs the maintainer provided "
+"F<conffiles> file. The file has mostly been obsolete since compatibility "
+"level 3, where B<dh_installdeb> began to automatically compute the resulting "
+"F<conffiles> control file."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:937
+msgid ""
+"The B<dh_installsystemd> tool no longer relies on B<dh_installinit> for "
+"handling systemd services that have a sysvinit alternative. Both tools must "
+"now be used in such a case to ensure the service is properly started under "
+"both sysvinit and systemd."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:942
+msgid ""
+"If you have an override for B<dh_installinit> (e.g. to call it with "
+"B<--no-start>) then you will probably need one for B<dh_installsystemd> as "
+"well now."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:946
+msgid ""
+"This change makes B<dh_installinit> inject a I<misc:Pre-Depends> for B<< "
+"init-system-helpers (>= 1.54~) >>. Please ensure that the package lists "
+"B<${misc:Pre-Depends}> in its B<Pre-Depends> field before upgrading to "
+"compat 12."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:953
+msgid ""
+"The third-party B<dh_golang> tool (from B<dh-golang> package) now defaults "
+"on honoring B<DH_GOLANG_EXCLUDES> variable for source installation in -dev "
+"packages and not only during the building process. Please set "
+"B<DH_GOLANG_EXCLUDES_ALL> to false to revert to the previous behaviour. See "
+"B<Debian::Debhelper::Buildsystem::golang(3pm)> for details and examples."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:961
+msgid ""
+"B<dh_installsystemduser> is now included in the B<dh> standard sequence by "
+"default."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:966
+msgid ""
+"The B<python-distutils> buildsystem is now removed. Please use the "
+"third-party build system B<pybuild> instead."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:971
+msgid "v13"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:973 strings-kept-translations.pod:9
+msgid "This compatibility level is still open for development; use with caution."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:975
+msgid "Changes from v12 are:"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:981
+msgid ""
+"The B<meson+ninja> build system now uses B<meson test> instead of B<ninja "
+"test> when running the test suite. Any override of B<dh_auto_test> that "
+"passes extra parameters to upstream test runner should be reviewed as "
+"B<meson test> is not command line compatible with B<ninja test>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:989
+msgid ""
+"All debhelper like tools based on the official debhelper library (including "
+"B<dh> and the official B<dh_*> tools) no longer accepts abbreviated command "
+"parameters. At the same time, B<dh> now optimizes out calls to redundant "
+"B<dh_*> helpers even when passed long command line options."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:997
+msgid ""
+"The ELF related debhelper tools (B<dh_dwz>, B<dh_strip>, B<dh_makeshlibs>, "
+"B<dh_shlibdeps>) are now only run for arch dependent packages by default "
+"(i.e. they are excluded from B<*-indep> targets and are passed B<-a> by "
+"default)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:1002
+msgid ""
+"If you need them for B<*-indep> targets, you can add an explicit "
+"Build-Depends on B<dh-sequence-elf-tools>."
+msgstr ""
+
#. type: =head1
-#: debhelper.pod:869 dh_auto_test:48 dh_dwz:57 dh_installcatalogs:64 dh_installdocs:192 dh_installemacsen:75 dh_installexamples:89 dh_installinit:205 dh_installinitramfs:53 dh_installman:128 dh_installmodules:57 dh_installudev:50 dh_installwm:63 dh_installxfonts:40 dh_movefiles:67 dh_strip:119 dh_usrlocal:60 dh_systemd_enable:104 dh_systemd_start:68
+#: debhelper.pod:1009 dh_auto_test:48 dh_dwz:69 dh_installcatalogs:64 dh_installdocs:192 dh_installemacsen:75 dh_installexamples:89 dh_installinit:205 dh_installinitramfs:53 dh_installman:128 dh_installmodules:57 dh_installudev:50 dh_installwm:63 dh_installxfonts:40 dh_movefiles:67 dh_strip:119 dh_usrlocal:60 dh_systemd_enable:104 dh_systemd_start:68
msgid "NOTES"
msgstr ""
#. type: =head2
-#: debhelper.pod:871
+#: debhelper.pod:1011
msgid "Multiple binary package support"
msgstr ""
#. type: textblock
-#: debhelper.pod:873
+#: debhelper.pod:1013
msgid ""
"If your source package generates more than one binary package, debhelper "
"programs will default to acting on all binary packages when run. If your "
@@ -1439,7 +1669,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:881
+#: debhelper.pod:1021
msgid ""
"To facilitate this, as well as give you more control over which packages are "
"acted on by debhelper programs, all debhelper programs accept the B<-a>, "
@@ -1449,7 +1679,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:887
+#: debhelper.pod:1027
msgid ""
"First, any package whose B<Architecture> field in B<debian/control> does not "
"match the B<DEB_HOST_ARCH> architecture will be excluded (L<Debian Policy, "
@@ -1457,7 +1687,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:891
+#: debhelper.pod:1031
msgid ""
"Also, some additional packages may be excluded based on the contents of the "
"B<DEB_BUILD_PROFILES> environment variable and B<Build-Profiles> fields in "
@@ -1466,12 +1696,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: debhelper.pod:896
+#: debhelper.pod:1036
msgid "Interaction between package selections and Build-Profiles"
msgstr ""
#. type: textblock
-#: debhelper.pod:898
+#: debhelper.pod:1038
msgid ""
"Build-Profiles affect which packages are included in the package selections "
"mechanisms in debhelper. Generally, the package selections are described "
@@ -1481,19 +1711,19 @@ msgid ""
msgstr ""
#. type: =item
-#: debhelper.pod:906
+#: debhelper.pod:1046
msgid "-a/--arch, -i/--indep OR no selection options (a raw \"dh_X\" call)"
msgstr ""
#. type: textblock
-#: debhelper.pod:908
+#: debhelper.pod:1048
msgid ""
"The package disabled by Build-Profiles is silently excluded from the "
"selection."
msgstr ""
#. type: textblock
-#: debhelper.pod:911
+#: debhelper.pod:1051
msgid ""
"Note you will receive a warning if I<all> packages related to these "
"selections are disabled. In that case, it generally does not make sense to "
@@ -1501,39 +1731,39 @@ msgid ""
msgstr ""
#. type: =item
-#: debhelper.pod:915
+#: debhelper.pod:1055
msgid "-N I<package> / --no-package I<package>"
msgstr ""
#. type: textblock
-#: debhelper.pod:917
+#: debhelper.pod:1057
msgid "The option is accepted and effectively does nothing."
msgstr ""
#. type: =item
-#: debhelper.pod:919
+#: debhelper.pod:1059
msgid "-p I<package> / --package I<package>"
msgstr ""
#. type: textblock
-#: debhelper.pod:921
+#: debhelper.pod:1061
msgid "The option is accepted, but debhelper will not act on the package."
msgstr ""
#. type: textblock
-#: debhelper.pod:925
+#: debhelper.pod:1065
msgid ""
"Note that it does not matter whether a package is enabled or disabled by "
"default."
msgstr ""
#. type: =head2
-#: debhelper.pod:928
+#: debhelper.pod:1068
msgid "Automatic generation of Debian install scripts"
msgstr ""
#. type: textblock
-#: debhelper.pod:930
+#: debhelper.pod:1070
msgid ""
"Some debhelper commands will automatically generate parts of Debian "
"maintainer scripts. If you want these automatically generated things "
@@ -1544,21 +1774,21 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:937
+#: debhelper.pod:1077
msgid ""
"If a script does not exist at all and debhelper needs to add something to "
"it, then debhelper will create the complete script."
msgstr ""
#. type: textblock
-#: debhelper.pod:940
+#: debhelper.pod:1080
msgid ""
"All debhelper commands that automatically generate code in this way let it "
"be disabled by the -n parameter (see above)."
msgstr ""
#. type: textblock
-#: debhelper.pod:943
+#: debhelper.pod:1083
msgid ""
"Note that the inserted code will be shell code, so you cannot directly use "
"it in a Perl script. If you would like to embed it into a Perl script, here "
@@ -1567,7 +1797,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: debhelper.pod:948
+#: debhelper.pod:1088
#, no-wrap
msgid ""
" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
@@ -1587,12 +1817,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: debhelper.pod:961
+#: debhelper.pod:1101
msgid "Automatic generation of miscellaneous dependencies."
msgstr ""
#. type: textblock
-#: debhelper.pod:963
+#: debhelper.pod:1103
msgid ""
"Some debhelper commands may make the generated package need to depend on "
"some other packages. For example, if you use L<dh_installdebconf(1)>, your "
@@ -1604,7 +1834,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:971
+#: debhelper.pod:1111
msgid ""
"All commands of this type, besides documenting what dependencies may be "
"needed on their man pages, will automatically generate a substvar called "
@@ -1613,7 +1843,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:976
+#: debhelper.pod:1116
msgid ""
"This is entirely independent of the standard B<${shlibs:Depends}> generated "
"by L<dh_makeshlibs(1)>, and the B<${perl:Depends}> generated by "
@@ -1622,19 +1852,19 @@ msgid ""
msgstr ""
#. type: =head2
-#: debhelper.pod:981
+#: debhelper.pod:1121
msgid "Package build directories"
msgstr ""
#. type: textblock
-#: debhelper.pod:983
+#: debhelper.pod:1123
msgid ""
"By default, all debhelper programs assume that the temporary directory used "
"for assembling the tree of files in a package is debian/I<package>."
msgstr ""
#. type: textblock
-#: debhelper.pod:986
+#: debhelper.pod:1126
msgid ""
"Sometimes, you might want to use some other temporary directory. This is "
"supported by the B<-P> flag. For example, \"B<dh_installdocs "
@@ -1646,12 +1876,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: debhelper.pod:994
+#: debhelper.pod:1134
msgid "udebs"
msgstr ""
#. type: textblock
-#: debhelper.pod:996
+#: debhelper.pod:1136
msgid ""
"Debhelper includes support for udebs. To create a udeb with debhelper, add "
"\"B<Package-Type: udeb>\" to the package's stanza in F<debian/control>. "
@@ -1662,12 +1892,12 @@ msgid ""
msgstr ""
#. type: =head1
-#: debhelper.pod:1003
+#: debhelper.pod:1143
msgid "ENVIRONMENT"
msgstr ""
#. type: textblock
-#: debhelper.pod:1005
+#: debhelper.pod:1145
msgid ""
"The following environment variables can influence the behavior of "
"debhelper. It is important to note that these must be actual environment "
@@ -1677,24 +1907,24 @@ msgid ""
msgstr ""
#. type: =item
-#: debhelper.pod:1013
+#: debhelper.pod:1153
msgid "B<DH_VERBOSE>"
msgstr ""
#. type: textblock
-#: debhelper.pod:1015
+#: debhelper.pod:1155
msgid ""
"Set to B<1> to enable verbose mode. Debhelper will output every command it "
"runs. Also enables verbose build logs for some build systems like autoconf."
msgstr ""
#. type: =item
-#: debhelper.pod:1018
+#: debhelper.pod:1158
msgid "B<DH_QUIET>"
msgstr ""
#. type: textblock
-#: debhelper.pod:1020
+#: debhelper.pod:1160
msgid ""
"Set to B<1> to enable quiet mode. Debhelper will not output commands calling "
"the upstream build system nor will dh print which subcommands are called and "
@@ -1704,53 +1934,54 @@ msgid ""
msgstr ""
#. type: =item
-#: debhelper.pod:1027
+#: debhelper.pod:1167
msgid "B<DH_COMPAT>"
msgstr ""
#. type: textblock
-#: debhelper.pod:1029
+#: debhelper.pod:1169
msgid ""
"Temporarily specifies what compatibility level debhelper should run at, "
-"overriding any value in F<debian/compat>."
+"overriding any value specified via Build-Depends on debhelper-compat or via "
+"the F<debian/compat> file."
msgstr ""
#. type: =item
-#: debhelper.pod:1032
+#: debhelper.pod:1173
msgid "B<DH_NO_ACT>"
msgstr ""
#. type: textblock
-#: debhelper.pod:1034
+#: debhelper.pod:1175
msgid "Set to B<1> to enable no-act mode."
msgstr ""
#. type: =item
-#: debhelper.pod:1036
+#: debhelper.pod:1177
msgid "B<DH_OPTIONS>"
msgstr ""
#. type: textblock
-#: debhelper.pod:1038
+#: debhelper.pod:1179
msgid ""
"Anything in this variable will be prepended to the command line arguments of "
"all debhelper commands."
msgstr ""
#. type: textblock
-#: debhelper.pod:1041
+#: debhelper.pod:1182
msgid ""
"When using L<dh(1)>, it can be passed options that will be passed on to each "
"debhelper command, which is generally better than using DH_OPTIONS."
msgstr ""
#. type: =item
-#: debhelper.pod:1044
+#: debhelper.pod:1185
msgid "B<DH_ALWAYS_EXCLUDE>"
msgstr ""
#. type: textblock
-#: debhelper.pod:1046
+#: debhelper.pod:1187
msgid ""
"If set, this adds the value the variable is set to to the B<-X> options of "
"all commands that support the B<-X> option. Moreover, B<dh_builddeb> will "
@@ -1758,7 +1989,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:1050
+#: debhelper.pod:1191
msgid ""
"This can be useful if you are doing a build from a CVS source tree, in which "
"case setting B<DH_ALWAYS_EXCLUDE=CVS> will prevent any CVS directories from "
@@ -1769,19 +2000,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:1057
+#: debhelper.pod:1198
msgid ""
"Multiple things to exclude can be separated with colons, as in "
"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
msgstr ""
#. type: =item
-#: debhelper.pod:1060
+#: debhelper.pod:1201
msgid "B<DH_EXTRA_ADDONS>"
msgstr ""
#. type: textblock
-#: debhelper.pod:1062
+#: debhelper.pod:1203
msgid ""
"If set, this adds the specified dh addons to be run in the appropriate "
"places in the sequence of commands. This is equivalent to specifying the "
@@ -1790,7 +2021,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:1067
+#: debhelper.pod:1208
msgid ""
"This is intended to be used by downstreams or specific local configurations "
"that require a debhelper addon to be run during multiple builds without "
@@ -1798,38 +2029,57 @@ msgid ""
"should be avoided in favor of a --with flag in the rules file."
msgstr ""
+#. type: =item
+#: debhelper.pod:1213
+msgid ""
+"B<CFLAGS>, B<CPPFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, "
+"B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS>, B<LDFLAGS>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:1215
+msgid ""
+"By default (in any non-deprecated compat level), debhelper will "
+"automatically set these flags by using L<dpkg-buildflags(1)>, when they are "
+"unset. If you need to change the default flags, please use the features "
+"from L<dpkg-buildflags(1)> to do this "
+"(e.g. B<DEB_BUILD_MAINT_OPTIONS=hardening=all> or "
+"B<DEB_CPPFLAGS_MAINT_APPEND=-DCUSTOM_MACRO=true>) rather than setting the "
+"concrete variable directly."
+msgstr ""
+
#. type: =head1
-#: debhelper.pod:1074 debhelper-obsolete-compat.pod:118 dh:1093 dh_auto_build:53 dh_auto_clean:55 dh_auto_configure:58 dh_auto_install:97 dh_auto_test:64 dh_bugfiles:133 dh_builddeb:182 dh_clean:185 dh_compress:236 dh_dwz:141 dh_fixperms:162 dh_gconf:101 dh_gencontrol:207 dh_icons:75 dh_install:350 dh_installcatalogs:125 dh_installchangelogs:300 dh_installcron:78 dh_installdeb:266 dh_installdebconf:128 dh_installdirs:128 dh_installdocs:444 dh_installemacsen:137 dh_installexamples:175 dh_installifupdown:72 dh_installinfo:107 dh_installinit:406 dh_installinitramfs:86 dh_installlogcheck:81 dh_installlogrotate:53 dh_installman:362 dh_installmanpages:198 dh_installmenu:88 dh_installmime:63 dh_installmodules:109 dh_installpam:62 dh_installppp:68 dh_installudev:100 dh_installwm:127 dh_installxfonts:96 dh_link:163 dh_lintian:60 dh_listpackages:35 dh_makeshlibs:355 dh_md5sums:117 dh_movefiles:161 dh_perl:159 dh_prep:70 dh_shlibdeps:199 dh_strip:426 dh_testdir:63 dh_testroot:91 dh_usrlocal:136 dh_systemd_enable:281 dh_systemd_start:269
+#: debhelper.pod:1224 debhelper-obsolete-compat.pod:118 dh:1220 dh_auto_build:53 dh_auto_clean:55 dh_auto_configure:58 dh_auto_install:97 dh_auto_test:64 dh_bugfiles:133 dh_builddeb:182 dh_clean:186 dh_compress:242 dh_dwz:161 dh_fixperms:164 dh_gconf:105 dh_gencontrol:207 dh_icons:75 dh_install:350 dh_installcatalogs:125 dh_installchangelogs:302 dh_installcron:78 dh_installdeb:410 dh_installdebconf:128 dh_installdirs:128 dh_installdocs:444 dh_installemacsen:138 dh_installexamples:175 dh_installifupdown:72 dh_installinfo:107 dh_installinit:425 dh_installinitramfs:85 dh_installlogcheck:81 dh_installlogrotate:53 dh_installman:384 dh_installmanpages:198 dh_installmenu:88 dh_installmime:63 dh_installmodules:109 dh_installpam:62 dh_installppp:68 dh_installudev:102 dh_installwm:129 dh_installxfonts:90 dh_link:163 dh_lintian:60 dh_listpackages:35 dh_makeshlibs:456 dh_md5sums:117 dh_movefiles:161 dh_perl:171 dh_prep:70 dh_shlibdeps:204 dh_strip:432 dh_testdir:63 dh_testroot:91 dh_usrlocal:136 dh_systemd_enable:281 dh_systemd_start:280
msgid "SEE ALSO"
msgstr ""
#. type: =item
-#: debhelper.pod:1078
+#: debhelper.pod:1228
msgid "F</usr/share/doc/debhelper/examples/>"
msgstr ""
#. type: textblock
-#: debhelper.pod:1080
+#: debhelper.pod:1230
msgid "A set of example F<debian/rules> files that use debhelper."
msgstr ""
#. type: =item
-#: debhelper.pod:1082
+#: debhelper.pod:1232
msgid "L<http://joeyh.name/code/debhelper/>"
msgstr ""
#. type: textblock
-#: debhelper.pod:1084
+#: debhelper.pod:1234
msgid "Debhelper web site."
msgstr ""
#. type: =head1
-#: debhelper.pod:1088 dh:1099 dh_auto_build:59 dh_auto_clean:61 dh_auto_configure:64 dh_auto_install:103 dh_auto_test:70 dh_bugfiles:141 dh_builddeb:188 dh_clean:191 dh_compress:242 dh_dwz:147 dh_fixperms:168 dh_gconf:107 dh_gencontrol:213 dh_icons:81 dh_install:356 dh_installcatalogs:131 dh_installchangelogs:306 dh_installcron:84 dh_installdeb:272 dh_installdebconf:134 dh_installdirs:134 dh_installdocs:450 dh_installemacsen:144 dh_installexamples:181 dh_installifupdown:78 dh_installinfo:113 dh_installlogcheck:87 dh_installlogrotate:59 dh_installman:368 dh_installmanpages:204 dh_installmenu:96 dh_installmime:69 dh_installmodules:115 dh_installpam:68 dh_installppp:74 dh_installudev:106 dh_installwm:133 dh_installxfonts:102 dh_link:169 dh_lintian:68 dh_listpackages:41 dh_makeshlibs:361 dh_md5sums:123 dh_movefiles:167 dh_perl:165 dh_prep:76 dh_shlibdeps:205 dh_strip:432 dh_testdir:69 dh_testroot:97 dh_usrlocal:142
+#: debhelper.pod:1238 dh:1226 dh_auto_build:59 dh_auto_clean:61 dh_auto_configure:64 dh_auto_install:103 dh_auto_test:70 dh_bugfiles:141 dh_builddeb:188 dh_clean:192 dh_compress:248 dh_dwz:167 dh_fixperms:170 dh_gconf:111 dh_gencontrol:213 dh_icons:81 dh_install:356 dh_installcatalogs:131 dh_installchangelogs:308 dh_installcron:84 dh_installdeb:416 dh_installdebconf:134 dh_installdirs:134 dh_installdocs:450 dh_installemacsen:145 dh_installexamples:181 dh_installifupdown:78 dh_installinfo:113 dh_installinitramfs:93 dh_installlogcheck:87 dh_installlogrotate:59 dh_installman:390 dh_installmanpages:204 dh_installmenu:96 dh_installmime:69 dh_installmodules:115 dh_installpam:68 dh_installppp:74 dh_installudev:108 dh_installwm:135 dh_installxfonts:96 dh_link:169 dh_lintian:68 dh_listpackages:41 dh_makeshlibs:462 dh_md5sums:123 dh_movefiles:167 dh_perl:177 dh_prep:76 dh_shlibdeps:210 dh_strip:438 dh_testdir:69 dh_testroot:97 dh_usrlocal:142
msgid "AUTHOR"
msgstr ""
#. type: textblock
-#: debhelper.pod:1090 dh:1101 dh_auto_build:61 dh_auto_clean:63 dh_auto_configure:66 dh_auto_install:105 dh_auto_test:72 dh_builddeb:190 dh_clean:193 dh_compress:244 dh_fixperms:170 dh_gencontrol:215 dh_install:358 dh_installchangelogs:308 dh_installcron:86 dh_installdeb:274 dh_installdebconf:136 dh_installdirs:136 dh_installdocs:452 dh_installemacsen:146 dh_installexamples:183 dh_installifupdown:80 dh_installinfo:115 dh_installinit:414 dh_installlogrotate:61 dh_installman:370 dh_installmanpages:206 dh_installmenu:98 dh_installmime:71 dh_installmodules:117 dh_installpam:70 dh_installppp:76 dh_installudev:108 dh_installwm:135 dh_installxfonts:104 dh_link:171 dh_listpackages:43 dh_makeshlibs:363 dh_md5sums:125 dh_movefiles:169 dh_prep:78 dh_shlibdeps:207 dh_strip:434 dh_testdir:71 dh_testroot:99
+#: debhelper.pod:1240 dh:1228 dh_auto_build:61 dh_auto_clean:63 dh_auto_configure:66 dh_auto_install:105 dh_auto_test:72 dh_builddeb:190 dh_clean:194 dh_compress:250 dh_fixperms:172 dh_gencontrol:215 dh_install:358 dh_installchangelogs:310 dh_installcron:86 dh_installdeb:418 dh_installdebconf:136 dh_installdirs:136 dh_installdocs:452 dh_installemacsen:147 dh_installexamples:183 dh_installifupdown:80 dh_installinfo:115 dh_installinit:433 dh_installlogrotate:61 dh_installman:392 dh_installmanpages:206 dh_installmenu:98 dh_installmime:71 dh_installmodules:117 dh_installpam:70 dh_installppp:76 dh_installudev:110 dh_installwm:137 dh_installxfonts:98 dh_link:171 dh_listpackages:43 dh_makeshlibs:464 dh_md5sums:125 dh_movefiles:169 dh_prep:78 dh_shlibdeps:212 dh_strip:440 dh_testdir:71 dh_testroot:99
msgid "Joey Hess <joeyh@debian.org>"
msgstr ""
@@ -1985,17 +2235,17 @@ msgid "B<dh_install> errors out if wildcards expand to nothing."
msgstr ""
#. type: textblock
-#: debhelper-obsolete-compat.pod:120 dh:1095 dh_auto_build:55 dh_auto_clean:57 dh_auto_configure:60 dh_auto_install:99 dh_auto_test:66 dh_builddeb:184 dh_clean:187 dh_compress:238 dh_dwz:143 dh_fixperms:164 dh_gconf:103 dh_gencontrol:209 dh_install:352 dh_installcatalogs:127 dh_installchangelogs:302 dh_installcron:80 dh_installdeb:268 dh_installdebconf:130 dh_installdirs:130 dh_installdocs:446 dh_installexamples:177 dh_installifupdown:74 dh_installinfo:109 dh_installlogcheck:83 dh_installlogrotate:55 dh_installman:364 dh_installmanpages:200 dh_installmime:65 dh_installmodules:111 dh_installpam:64 dh_installppp:70 dh_installudev:102 dh_installwm:129 dh_installxfonts:98 dh_link:165 dh_listpackages:37 dh_makeshlibs:357 dh_md5sums:119 dh_movefiles:163 dh_perl:161 dh_prep:72 dh_strip:428 dh_testdir:65 dh_testroot:93 dh_usrlocal:138 dh_systemd_start:271
+#: debhelper-obsolete-compat.pod:120 dh:1222 dh_auto_build:55 dh_auto_clean:57 dh_auto_configure:60 dh_auto_install:99 dh_auto_test:66 dh_builddeb:184 dh_clean:188 dh_compress:244 dh_dwz:163 dh_fixperms:166 dh_gconf:107 dh_gencontrol:209 dh_install:352 dh_installcatalogs:127 dh_installchangelogs:304 dh_installcron:80 dh_installdeb:412 dh_installdebconf:130 dh_installdirs:130 dh_installdocs:446 dh_installexamples:177 dh_installifupdown:74 dh_installinfo:109 dh_installlogcheck:83 dh_installlogrotate:55 dh_installman:386 dh_installmanpages:200 dh_installmime:65 dh_installmodules:111 dh_installpam:64 dh_installppp:70 dh_installudev:104 dh_installwm:131 dh_installxfonts:92 dh_link:165 dh_listpackages:37 dh_makeshlibs:458 dh_md5sums:119 dh_movefiles:163 dh_perl:173 dh_prep:72 dh_strip:434 dh_testdir:65 dh_testroot:93 dh_usrlocal:138 dh_systemd_start:282
msgid "L<debhelper(7)>"
msgstr ""
#. type: =head1
-#: debhelper-obsolete-compat.pod:122 dh_installinit:412 dh_systemd_enable:285 dh_systemd_start:273
+#: debhelper-obsolete-compat.pod:122 dh_installinit:431 dh_systemd_enable:285 dh_systemd_start:284
msgid "AUTHORS"
msgstr ""
#. type: textblock
-#: debhelper-obsolete-compat.pod:124 dh_dwz:149
+#: debhelper-obsolete-compat.pod:124 dh_dwz:169 dh_installinitramfs:95
msgid "Niels Thykier <niels@thykier.net>"
msgstr ""
@@ -2010,14 +2260,14 @@ msgid "dh - debhelper command sequencer"
msgstr ""
#. type: textblock
-#: dh:18
+#: dh:22
msgid ""
"B<dh> I<sequence> [B<--with> I<addon>[B<,>I<addon> ...]] [B<--list>] "
"[S<I<debhelper options>>]"
msgstr ""
#. type: textblock
-#: dh:22
+#: dh:26
msgid ""
"B<dh> runs a sequence of debhelper commands. The supported I<sequence>s "
"correspond to the targets of a F<debian/rules> file: B<build-arch>, "
@@ -2026,19 +2276,19 @@ msgid ""
msgstr ""
#. type: =head1
-#: dh:27
+#: dh:31
msgid "OVERRIDE TARGETS"
msgstr ""
#. type: textblock
-#: dh:29
+#: dh:33
msgid ""
"A F<debian/rules> file using B<dh> can override the command that is run at "
"any step in a sequence, by defining an override target."
msgstr ""
#. type: textblock
-#: dh:32
+#: dh:36
msgid ""
"To override I<dh_command>, add a target named B<override_>I<dh_command> to "
"the rules file. When it would normally run I<dh_command>, B<dh> will instead "
@@ -2048,7 +2298,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:38
+#: dh:42
msgid ""
"Override targets can also be defined to run only when building architecture "
"dependent or architecture independent packages. Use targets with names like "
@@ -2058,17 +2308,17 @@ msgid ""
msgstr ""
#. type: =head1
-#: dh:45 dh_auto_build:32 dh_auto_clean:33 dh_auto_configure:35 dh_auto_install:46 dh_auto_test:34 dh_bugfiles:53 dh_builddeb:34 dh_clean:47 dh_compress:52 dh_dwz:26 dh_fixperms:40 dh_gconf:42 dh_gencontrol:38 dh_icons:33 dh_install:66 dh_installcatalogs:53 dh_installchangelogs:73 dh_installcron:43 dh_installdebconf:64 dh_installdirs:42 dh_installdocs:90 dh_installemacsen:56 dh_installexamples:41 dh_installifupdown:42 dh_installinfo:38 dh_installinit:78 dh_installinitramfs:43 dh_installlogcheck:45 dh_installlogrotate:25 dh_installman:83 dh_installmanpages:43 dh_installmenu:44 dh_installmodules:41 dh_installpam:34 dh_installppp:38 dh_installudev:34 dh_installwm:38 dh_link:66 dh_makeshlibs:52 dh_md5sums:31 dh_movefiles:41 dh_perl:34 dh_prep:29 dh_shlibdeps:30 dh_strip:38 dh_testdir:26 dh_usrlocal:50 dh_systemd_enable:83 dh_systemd_start:33
+#: dh:49 dh_auto_build:32 dh_auto_clean:33 dh_auto_configure:35 dh_auto_install:46 dh_auto_test:34 dh_bugfiles:53 dh_builddeb:34 dh_clean:47 dh_compress:52 dh_dwz:26 dh_fixperms:40 dh_gconf:42 dh_gencontrol:38 dh_icons:33 dh_install:66 dh_installcatalogs:53 dh_installchangelogs:73 dh_installcron:43 dh_installdeb:98 dh_installdebconf:64 dh_installdirs:42 dh_installdocs:90 dh_installemacsen:56 dh_installexamples:41 dh_installifupdown:42 dh_installinfo:38 dh_installinit:78 dh_installinitramfs:43 dh_installlogcheck:45 dh_installlogrotate:25 dh_installman:83 dh_installmanpages:43 dh_installmenu:44 dh_installmodules:41 dh_installpam:34 dh_installppp:38 dh_installudev:34 dh_installwm:38 dh_link:66 dh_makeshlibs:67 dh_md5sums:31 dh_movefiles:41 dh_perl:34 dh_prep:29 dh_shlibdeps:30 dh_strip:38 dh_testdir:26 dh_usrlocal:50 dh_systemd_enable:83 dh_systemd_start:33
msgid "OPTIONS"
msgstr ""
#. type: =item
-#: dh:49
+#: dh:53
msgid "B<--with> I<addon>[B<,>I<addon> ...]"
msgstr ""
#. type: textblock
-#: dh:51
+#: dh:55
msgid ""
"Add the debhelper commands specified by the given addon to appropriate "
"places in the sequence of commands that is run. This option can be repeated "
@@ -2079,26 +2329,46 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:58
+#: dh:62
msgid ""
"A B<Build-Depends> relation on the package B<dh-sequence->I<addon> implies a "
"B<--with> I<addon>. This avoids the need for an explicit B<--with> in "
"F<debian/rules> that only duplicates what is already declared via the build "
-"dependencies in F<debian/control>. Note that only relations in the "
-"B<Build-Depends> field are considered (i.e. B<Build-Depends-Indep> and "
-"B<Build-Depends-Arch> are deliberately unsupported). Please keep in mind "
-"that B<dh> insists on \"simple\" relations (e.g. a relation like "
-"\"B<dh-sequence->I<addon> | B<some-other-pkg>\" will I<not> imply B<--with> "
-"I<addon>)."
+"dependencies in F<debian/control>. The relation can (since 12.5) be made "
+"optional via e.g. build-profiles. This enables you to easily disable an "
+"addon that is only useful with certain profiles (e.g. to facilitate "
+"bootstraping)."
+msgstr ""
+
+#. type: textblock
+#: dh:71
+msgid ""
+"Since debhelper 12.5, addons can also be activated in B<indep>-only mode "
+"(via B<Build-Depends-Indep>) or B<arch>-only mode (via "
+"B<Build-Depends-Arch>). Such addons are only active in the particular "
+"sequence (e.g. B<binary-indep>) which simplifies dependency management for "
+"cross-builds."
+msgstr ""
+
+#. type: textblock
+#: dh:77
+msgid ""
+"Please note that addons activated via B<Build-Depends-Indep> or "
+"B<Build-Depends-Arch> are subject to additional limitations to ensure the "
+"result is deterministic even when the addon is unavailable (e.g. during "
+"clean). This implies that some addons are incompatible with these "
+"restrictions and can only be used via B<Build-Depends> (or manually via "
+"F<debian/rules>). Currently, such addons can only add commands to "
+"sequences."
msgstr ""
#. type: =item
-#: dh:68
+#: dh:85
msgid "B<--without> I<addon>"
msgstr ""
#. type: textblock
-#: dh:70
+#: dh:87
msgid ""
"The inverse of B<--with>, disables using the given addon. This option can be "
"repeated more than once, or multiple addons to disable can be listed, "
@@ -2106,31 +2376,31 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:76
+#: dh:93
msgid "List all available addons."
msgstr ""
#. type: textblock
-#: dh:78
+#: dh:95
msgid ""
"When called only with this option, B<dh> can be called from any directory "
"(i.e. it does not need access to files from a source package)."
msgstr ""
#. type: textblock
-#: dh:84
+#: dh:101
msgid "Prints commands that would run for a given sequence, but does not run them."
msgstr ""
#. type: textblock
-#: dh:86
+#: dh:103
msgid ""
"Note that dh normally skips running commands that it knows will do nothing. "
"With --no-act, the full list of commands in a sequence is printed."
msgstr ""
#. type: textblock
-#: dh:91
+#: dh:108
msgid ""
"Other options passed to B<dh> are passed on to each command it runs. This "
"can be used to set an option like B<-v> or B<-X> or B<-N>, as well as for "
@@ -2138,19 +2408,19 @@ msgid ""
msgstr ""
#. type: =head1
-#: dh:95 dh_installdocs:181 dh_installman:114 dh_link:88 dh_makeshlibs:155 dh_shlibdeps:78
+#: dh:112 dh_installdocs:181 dh_installman:114 dh_link:88 dh_makeshlibs:185 dh_shlibdeps:78
msgid "EXAMPLES"
msgstr ""
#. type: textblock
-#: dh:97
+#: dh:114
msgid ""
"To see what commands are included in a sequence, without actually doing "
"anything:"
msgstr ""
#. type: verbatim
-#: dh:100
+#: dh:117
#, no-wrap
msgid ""
"\tdh binary-arch --no-act\n"
@@ -2158,14 +2428,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:102
+#: dh:119
msgid ""
"This is a very simple rules file, for packages where the default sequences "
"of commands work with no additional options."
msgstr ""
#. type: verbatim
-#: dh:105 dh:126 dh:139
+#: dh:122 dh:129 dh:143 dh:156 dh:213 dh:224
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2175,33 +2445,23 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:109
+#: dh:126
msgid ""
"Often you'll want to pass an option to a specific debhelper command. The "
"easy way to do with is by adding an override target for that command."
msgstr ""
#. type: verbatim
-#: dh:112 dh:196 dh:207
-#, no-wrap
-msgid ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@\n"
-"\t\n"
-msgstr ""
-
-#. type: verbatim
-#: dh:116
+#: dh:133
#, no-wrap
msgid ""
"\toverride_dh_strip:\n"
"\t\tdh_strip -Xfoo\n"
-"\t\n"
+"\n"
msgstr ""
#. type: verbatim
-#: dh:119
+#: dh:136
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -2210,7 +2470,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:122
+#: dh:139
msgid ""
"Sometimes the automated L<dh_auto_configure(1)> and L<dh_auto_build(1)> "
"can't guess what to do for a strange package. Here's how to avoid running "
@@ -2218,7 +2478,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:130
+#: dh:147
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -2227,7 +2487,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:133
+#: dh:150
#, no-wrap
msgid ""
"\toverride_dh_auto_build:\n"
@@ -2236,14 +2496,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:136
+#: dh:153
msgid ""
"Another common case is wanting to do something manually before or after a "
"particular debhelper command is run."
msgstr ""
#. type: verbatim
-#: dh:143
+#: dh:160
#, no-wrap
msgid ""
"\toverride_dh_fixperms:\n"
@@ -2253,14 +2513,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:147
+#: dh:164
msgid ""
"Python tools are not run by dh by default, due to the continual change in "
"that area. Here is how to use B<dh_python2>."
msgstr ""
#. type: verbatim
-#: dh:150
+#: dh:167
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2270,14 +2530,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:154
+#: dh:171
msgid ""
"Here is how to force use of Perl's B<Module::Build> build system, which can "
"be necessary if debhelper wrongly detects that the package uses MakeMaker."
msgstr ""
#. type: verbatim
-#: dh:158
+#: dh:175
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2287,7 +2547,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:162
+#: dh:179
msgid ""
"Here is an example of overriding where the B<dh_auto_>I<*> commands find the "
"package's source, for a package where the source is located in a "
@@ -2295,7 +2555,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:166
+#: dh:183
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2305,14 +2565,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:170
+#: dh:187
msgid ""
"And here is an example of how to tell the B<dh_auto_>I<*> commands to build "
"in a subdirectory, which will be removed on B<clean>."
msgstr ""
#. type: verbatim
-#: dh:173
+#: dh:190
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2322,14 +2582,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:177
+#: dh:194
msgid ""
"If your package can be built in parallel, please either use compat 10 or "
"pass B<--parallel> to dh. Then B<dpkg-buildpackage -j> will work."
msgstr ""
#. type: verbatim
-#: dh:180
+#: dh:197
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2339,7 +2599,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:184
+#: dh:201
msgid ""
"If your package cannot be built reliably while using multiple threads, "
"please pass B<--no-parallel> to dh (or the relevant B<dh_auto_>I<*> "
@@ -2347,7 +2607,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:189
+#: dh:206
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2357,14 +2617,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:193
+#: dh:210
msgid ""
"Here is a way to prevent B<dh> from running several commands that you don't "
"want it to run, by defining empty override targets for each command."
msgstr ""
#. type: verbatim
-#: dh:200
+#: dh:217
#, no-wrap
msgid ""
"\t# Commands not to run:\n"
@@ -2373,7 +2633,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:203
+#: dh:220
msgid ""
"A long build process for a separate documentation package can be separated "
"out using architecture independent overrides. These will be skipped when "
@@ -2381,7 +2641,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:211
+#: dh:228
#, no-wrap
msgid ""
"\toverride_dh_auto_build-indep:\n"
@@ -2390,7 +2650,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:214
+#: dh:231
#, no-wrap
msgid ""
"\t# No tests needed for docs\n"
@@ -2399,7 +2659,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:217
+#: dh:234
#, no-wrap
msgid ""
"\toverride_dh_auto_install-indep:\n"
@@ -2408,7 +2668,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:220
+#: dh:237
msgid ""
"Adding to the example above, suppose you need to chmod a file, but only when "
"building the architecture dependent package, as it's not present when "
@@ -2416,7 +2676,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:224
+#: dh:241
#, no-wrap
msgid ""
"\toverride_dh_fixperms-arch:\n"
@@ -2426,19 +2686,19 @@ msgid ""
msgstr ""
#. type: =head1
-#: dh:228
+#: dh:245
msgid "INTERNALS"
msgstr ""
#. type: textblock
-#: dh:230
+#: dh:247
msgid ""
"If you're curious about B<dh>'s internals, here's how it works under the "
"hood."
msgstr ""
#. type: textblock
-#: dh:232
+#: dh:249
msgid ""
"In compat 10 (or later), B<dh> creates a stamp file "
"F<debian/debhelper-build-stamp> after the build step(s) are complete to "
@@ -2449,7 +2709,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:240
+#: dh:257
msgid ""
"Inside an override target, B<dh_*> commands will create a log file "
"F<debian/package.debhelper.log> to keep track of which packages the "
@@ -2458,7 +2718,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:245
+#: dh:262
msgid ""
"In compat 9 or earlier, each debhelper command will record when it's "
"successfully run in F<debian/package.debhelper.log>. (Which B<dh_clean> "
@@ -2467,24 +2727,22 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:250
+#: dh:267
msgid ""
"Each time B<dh> is run (in compat 9 or earlier), it examines the log, and "
"finds the last logged command that is in the specified sequence. It then "
-"continues with the next command in the sequence. The B<--until>, "
-"B<--before>, B<--after>, and B<--remaining> options can override this "
-"behavior (though they were removed in compat 10)."
+"continues with the next command in the sequence."
msgstr ""
#. type: textblock
-#: dh:256
+#: dh:271
msgid ""
"A sequence can also run dependent targets in debian/rules. For example, the "
"\"binary\" sequence runs the \"install\" target."
msgstr ""
#. type: textblock
-#: dh:259
+#: dh:274
msgid ""
"B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass "
"information through to debhelper commands that are run inside override "
@@ -2493,7 +2751,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:264
+#: dh:279
msgid ""
"Commands in the B<build-indep>, B<install-indep> and B<binary-indep> "
"sequences are passed the B<-i> option to ensure they only work on "
@@ -2502,69 +2760,8 @@ msgid ""
"ensure they only work on architecture dependent packages."
msgstr ""
-#. type: =head1
-#: dh:270
-msgid "DEPRECATED OPTIONS"
-msgstr ""
-
-#. type: textblock
-#: dh:272
-msgid ""
-"The following options are deprecated. It's much better to use override "
-"targets instead. They are B<not> available in compat 10."
-msgstr ""
-
-#. type: =item
-#: dh:278
-msgid "B<--until> I<cmd>"
-msgstr ""
-
#. type: textblock
-#: dh:280
-msgid "Run commands in the sequence until and including I<cmd>, then stop."
-msgstr ""
-
-#. type: =item
-#: dh:282
-msgid "B<--before> I<cmd>"
-msgstr ""
-
-#. type: textblock
-#: dh:284
-msgid "Run commands in the sequence before I<cmd>, then stop."
-msgstr ""
-
-#. type: =item
-#: dh:286
-msgid "B<--after> I<cmd>"
-msgstr ""
-
-#. type: textblock
-#: dh:288
-msgid "Run commands in the sequence that come after I<cmd>."
-msgstr ""
-
-#. type: =item
-#: dh:290
-msgid "B<--remaining>"
-msgstr ""
-
-#. type: textblock
-#: dh:292
-msgid "Run all commands in the sequence that have yet to be run."
-msgstr ""
-
-#. type: textblock
-#: dh:296
-msgid ""
-"In the above options, I<cmd> can be a full name of a debhelper command, or a "
-"substring. It'll first search for a command in the sequence exactly matching "
-"the name, to avoid any ambiguity. If there are multiple substring matches, "
-"the last one in the sequence will be used."
-msgstr ""
-
-#. type: textblock
-#: dh:1097 dh_auto_build:57 dh_auto_clean:59 dh_auto_configure:62 dh_auto_install:101 dh_auto_test:68 dh_bugfiles:139 dh_builddeb:186 dh_clean:189 dh_compress:240 dh_dwz:145 dh_fixperms:166 dh_gconf:105 dh_gencontrol:211 dh_icons:79 dh_install:354 dh_installchangelogs:304 dh_installcron:82 dh_installdeb:270 dh_installdebconf:132 dh_installdirs:132 dh_installdocs:448 dh_installemacsen:142 dh_installexamples:179 dh_installifupdown:76 dh_installinfo:111 dh_installinit:410 dh_installinitramfs:92 dh_installlogrotate:57 dh_installman:366 dh_installmanpages:202 dh_installmenu:94 dh_installmime:67 dh_installmodules:113 dh_installpam:66 dh_installppp:72 dh_installudev:104 dh_installwm:131 dh_installxfonts:100 dh_link:167 dh_lintian:64 dh_listpackages:39 dh_makeshlibs:359 dh_md5sums:121 dh_movefiles:165 dh_perl:163 dh_prep:74 dh_shlibdeps:203 dh_strip:430 dh_testdir:67 dh_testroot:95 dh_usrlocal:140
+#: dh:1224 dh_auto_build:57 dh_auto_clean:59 dh_auto_configure:62 dh_auto_install:101 dh_auto_test:68 dh_bugfiles:139 dh_builddeb:186 dh_clean:190 dh_compress:246 dh_dwz:165 dh_fixperms:168 dh_gconf:109 dh_gencontrol:211 dh_icons:79 dh_install:354 dh_installchangelogs:306 dh_installcron:82 dh_installdeb:414 dh_installdebconf:132 dh_installdirs:132 dh_installdocs:448 dh_installemacsen:143 dh_installexamples:179 dh_installifupdown:76 dh_installinfo:111 dh_installinit:429 dh_installinitramfs:91 dh_installlogrotate:57 dh_installman:388 dh_installmanpages:202 dh_installmenu:94 dh_installmime:67 dh_installmodules:113 dh_installpam:66 dh_installppp:72 dh_installudev:106 dh_installwm:133 dh_installxfonts:94 dh_link:167 dh_lintian:64 dh_listpackages:39 dh_makeshlibs:460 dh_md5sums:121 dh_movefiles:165 dh_perl:175 dh_prep:74 dh_shlibdeps:208 dh_strip:436 dh_testdir:67 dh_testroot:95 dh_usrlocal:140
msgid "This program is a part of debhelper."
msgstr ""
@@ -2606,7 +2803,7 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_auto_build:39 dh_auto_clean:40 dh_auto_configure:42 dh_auto_install:59 dh_auto_test:41 dh_builddeb:48 dh_dwz:50 dh_gencontrol:42 dh_installdebconf:72 dh_installinit:167 dh_makeshlibs:149 dh_shlibdeps:41
+#: dh_auto_build:39 dh_auto_clean:40 dh_auto_configure:42 dh_auto_install:59 dh_auto_test:41 dh_builddeb:48 dh_dwz:62 dh_gencontrol:42 dh_installdebconf:72 dh_installinit:167 dh_makeshlibs:179 dh_shlibdeps:41
msgid "B<--> I<params>"
msgstr ""
@@ -2842,7 +3039,7 @@ msgid ""
msgstr ""
#. type: =head1
-#: dh_bugfiles:25 dh_clean:34 dh_compress:35 dh_gconf:26 dh_install:40 dh_installcatalogs:39 dh_installchangelogs:49 dh_installcron:24 dh_installdeb:25 dh_installdebconf:37 dh_installdirs:28 dh_installdocs:40 dh_installemacsen:30 dh_installexamples:31 dh_installifupdown:25 dh_installinfo:28 dh_installinit:41 dh_installinitramfs:30 dh_installlogcheck:24 dh_installman:73 dh_installmenu:28 dh_installmime:24 dh_installmodules:31 dh_installpam:24 dh_installppp:24 dh_installudev:24 dh_installwm:28 dh_link:46 dh_lintian:24 dh_makeshlibs:29 dh_movefiles:29 dh_systemd_enable:41
+#: dh_bugfiles:25 dh_clean:34 dh_compress:35 dh_gconf:26 dh_install:40 dh_installcatalogs:39 dh_installchangelogs:49 dh_installcron:24 dh_installdeb:25 dh_installdebconf:37 dh_installdirs:28 dh_installdocs:40 dh_installemacsen:30 dh_installexamples:31 dh_installifupdown:25 dh_installinfo:28 dh_installinit:41 dh_installinitramfs:30 dh_installlogcheck:24 dh_installman:73 dh_installmenu:28 dh_installmime:24 dh_installmodules:31 dh_installpam:24 dh_installppp:24 dh_installudev:24 dh_installwm:28 dh_link:46 dh_lintian:24 dh_makeshlibs:44 dh_movefiles:29 dh_systemd_enable:41
msgid "FILES"
msgstr ""
@@ -3217,28 +3414,46 @@ msgstr ""
#: dh_dwz:32
msgid ""
"Whether L<dwz(1)> should generate a I<multifile> from the ELF binaries in "
-"the same package (it does by default). When enabled, if a package ships at "
-"least 2 ELF binaries, B<dh_dwz> will instruct L<dwz(1)> to generate a "
-"multifile for the package."
+"the same package. When enabled, if a package ships at least 2 ELF binaries, "
+"B<dh_dwz> will instruct L<dwz(1)> to generate a multifile for the package."
msgstr ""
#. type: textblock
#: dh_dwz:37
msgid ""
+"By default, B<dh_dwz> will attempt to create a multifile but will continue "
+"without if L<dwz(1)> does create one (but succeeds anyway). This commonly "
+"happens when the debug files do not contain debug symbols (e.g. a missing -g "
+"to the compiler) or when the debug symbols are compressed (see Debian bug "
+"#931891). If B<--dwz-multifile> is passed, then B<dh_dwz> will abort with "
+"an error if L<dwz(1)> does not create a multifile."
+msgstr ""
+
+#. type: textblock
+#: dh_dwz:45
+msgid ""
"Note this options may not work if a package contains more ELF binaries than "
"can fit on a single command line. If this becomes a problem, please pass "
"B<--no-dwz-multifile> to work around the issue."
msgstr ""
#. type: textblock
-#: dh_dwz:41
+#: dh_dwz:49
msgid ""
"The generated multifile will be compressed with B<objcopy "
"--compress-debug-sections>."
msgstr ""
#. type: textblock
-#: dh_dwz:46 dh_strip:44
+#: dh_dwz:52
+msgid ""
+"Note for B<udeb> packages: B<dh_dwz> will never generate multifiles for "
+"B<udeb> packages. It will still use B<dwz> to reduce the file size of debug "
+"files if it finds any."
+msgstr ""
+
+#. type: textblock
+#: dh_dwz:58 dh_strip:44
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"stripped. You may use this option multiple times to build up a list of "
@@ -3246,14 +3461,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_dwz:52
+#: dh_dwz:64
msgid ""
"Pass I<params> to L<dwz(1)> when it processes ELF binaries. This is mostly "
"useful for setting memory related parameters (e.g. -l and -L)."
msgstr ""
#. type: textblock
-#: dh_dwz:59
+#: dh_dwz:71
msgid ""
"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
"nothing will be stripped, in accordance with Debian policy (section 10.1 "
@@ -3261,7 +3476,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_dwz:63
+#: dh_dwz:75
msgid ""
"While this tool technically does not remove debug information from binaries, "
"it is still skipped when the B<DEB_BUILD_OPTIONS> environment variable "
@@ -3324,7 +3539,7 @@ msgstr ""
#. type: textblock
#: dh_gconf:5
-msgid "dh_gconf - install GConf defaults files and register schemas"
+msgid "dh_gconf - install GConf defaults files and register schemas (deprecated)"
msgstr ""
#. type: textblock
@@ -3383,7 +3598,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_gconf:109
+#: dh_gconf:113
msgid "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
msgstr ""
@@ -3471,7 +3686,7 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_icons:37 dh_installcatalogs:57 dh_installdebconf:68 dh_installemacsen:60 dh_installinit:82 dh_installinitramfs:47 dh_installmenu:48 dh_installmodules:45 dh_installwm:48 dh_makeshlibs:132 dh_usrlocal:54
+#: dh_icons:37 dh_installcatalogs:57 dh_installdebconf:68 dh_installemacsen:60 dh_installinit:82 dh_installinitramfs:47 dh_installmenu:48 dh_installmodules:45 dh_installwm:48 dh_makeshlibs:147 dh_usrlocal:54
msgid "B<-n>, B<--no-scripts>"
msgstr ""
@@ -4031,57 +4246,70 @@ msgstr ""
#. type: textblock
#: dh_installdeb:39
msgid ""
-"Inside the scripts, the token B<#DEBHELPER#> is replaced with shell script "
-"snippets generated by other debhelper commands."
+"B<dh_installdeb> will perform substitution of known tokens of the pattern "
+"B<#TOKEN#>. In generally, scripts will want to include the B<#DEBHELPER#> "
+"to benefit from the shell scripts generated by debhelper commands (including "
+"those from B<dh_installdeb> when it processes I<package>.maintscript files)"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:45
+msgid ""
+"For more information on what tokens Inside the scripts, the token "
+"B<#DEBHELPER#> is replaced with shell script snippets generated by other "
+"debhelper commands."
msgstr ""
#. type: =item
-#: dh_installdeb:42
+#: dh_installdeb:49
msgid "I<package>.triggers"
msgstr ""
#. type: =item
-#: dh_installdeb:44
+#: dh_installdeb:51
msgid "I<package>.shlibs"
msgstr ""
#. type: textblock
-#: dh_installdeb:46
+#: dh_installdeb:53
msgid "These control files are installed into the F<DEBIAN> directory."
msgstr ""
#. type: textblock
-#: dh_installdeb:48
+#: dh_installdeb:55
msgid ""
"Note that I<package>.shlibs is only installed in compat level 9 and "
"earlier. In compat 10, please use L<dh_makeshlibs(1)>."
msgstr ""
#. type: =item
-#: dh_installdeb:51
+#: dh_installdeb:58
msgid "I<package>.conffiles"
msgstr ""
#. type: textblock
-#: dh_installdeb:53
-msgid "This control file will be installed into the F<DEBIAN> directory."
+#: dh_installdeb:60
+msgid ""
+"Historically, this file was needed to manually mark files files as "
+"conffiles. However, it has become de facto obsolete since debhelper "
+"automatically computed which files should be marked as conffiles."
msgstr ""
#. type: textblock
-#: dh_installdeb:55
+#: dh_installdeb:64
msgid ""
-"In v3 compatibility mode and higher, all files in the F<etc/> directory in a "
-"package will automatically be flagged as conffiles by this program, so there "
-"is no need to list them manually here."
+"In compatibility level up and including 11, this control file will be "
+"installed into the F<DEBIAN> directory. In compatibility level 12 and "
+"later, the file is silently ignored."
msgstr ""
#. type: =item
-#: dh_installdeb:59
+#: dh_installdeb:68
msgid "I<package>.maintscript"
msgstr ""
#. type: textblock
-#: dh_installdeb:61
+#: dh_installdeb:70
msgid ""
"Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands and "
"parameters. However, the \"maint-script-parameters\" should I<not> be "
@@ -4089,12 +4317,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdeb:65
+#: dh_installdeb:74
msgid "Example:"
msgstr ""
#. type: verbatim
-#: dh_installdeb:67
+#: dh_installdeb:76
#, no-wrap
msgid ""
" # Correct\n"
@@ -4105,7 +4333,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdeb:72
+#: dh_installdeb:81
msgid ""
"In compat 10 or later, any shell metacharacters will be escaped, so "
"arbitrary shell code cannot be inserted here. For example, a line such as "
@@ -4115,7 +4343,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdeb:78
+#: dh_installdeb:87
msgid ""
"It was also the intention to escape shell metacharacters in previous compat "
"levels. However, it did not work properly and as such it was possible to "
@@ -4123,13 +4351,216 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdeb:82
+#: dh_installdeb:91
msgid ""
"The B<dh_installdeb> tool will do some basic validation of some of the "
"commands listed in this file to catch common mistakes. The validation is "
"enabled as a warning since compat 10 and as a hard error in compat 12."
msgstr ""
+#. type: =item
+#: dh_installdeb:102
+msgid "B<-D>I<TOKEN=VALUE>, B<--define> I<TOKEN=VALUE>"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:104
+msgid ""
+"Define tokens to be replaced inside the maintainer scripts when it is "
+"generated. Please note that the limitations described in L</Limitations in "
+"token names> also applies to tokens defined on the command line. Invalid "
+"token names will trigger an error."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:109
+msgid ""
+"In the simple case, this parameter will cause B<< #I<TOKEN># >> to be "
+"replaced by I<VALUE>. If I<VALUE> starts with a literal I<@>-sign, then "
+"I<VALUE> is expected to point to a file containing the actual value to "
+"insert."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:114
+msgid "An explicit declared token with this parameter will replace built-in tokens."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:117
+msgid "Test examples to aid with the understanding:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:119
+#, no-wrap
+msgid ""
+"\tcat >> debian/postinst <<EOF\n"
+"\t#SIMPLE#\n"
+"\t#FILEBASED#\n"
+"\tEOF\n"
+"\techo -n \"Complex value\" > some-file\n"
+" dh_installdeb --define SIMPLE=direct --define FILEBASED=@some-file\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:126
+msgid ""
+"In this example, B<#SIMPLE#> will expand to B<direct> and B<#FILEBASED#> "
+"will expand to B<Complex value>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:129
+msgid ""
+"It is also possible to do set package-specific values for a given token. "
+"This is useful when B<dh_installdeb> is acting on multiple packages that "
+"need different values for the same token. This is done by prefixing the "
+"token name with B<< pkg.I<package-name>. >>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:134
+msgid "This can be used as in the following example:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:136
+#, no-wrap
+msgid ""
+"\tcat >> debian/foo.postinst <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/bar.postinst <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/baz.postinst <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+" dh_installdeb -pfoo -pbar -pbaz --define TOKEN=default --define "
+"pkg.bar.TOKEN=unique-bar-value \\\n"
+" --define pkg.baz.TOKEN=unique-baz-value\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:151
+msgid ""
+"In this example, B<#TOKEN#> will expand to B<default> in "
+"F<debian/foo.postinst>, to B<unique-bar-value> in F<debian/bar.postinst> and "
+"to B<unique-baz-value> in F<debian/baz.postinst>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:155
+msgid ""
+"Note that the B<#pkg.*#> tokens will be visible in all scripts acted on. "
+"E.g. you can refer to B<#pkg.bar.TOKEN#> inside F<debian/foo.postinst> and "
+"it will be replaced by B<unique-bar-value>."
+msgstr ""
+
+#. type: =head1
+#: dh_installdeb:161
+msgid "SUBSTITUTION IN MAINTAINER SCRIPTS"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:163
+msgid ""
+"The B<dh_installdeb> will automatically replace the following tokens inside "
+"a provided maintainer script (if not replaced via B<-D>/B<--define>):"
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:168
+msgid "#DEBHELPER#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:170
+msgid ""
+"This token is by default replaced with generated shell snippets debhelper "
+"commands. This includes the snippets generated by B<dh_installdeb> from "
+"I<package>.maintscript file (if present)."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:174
+msgid "#DEB_HOST_I<NAME>#, #DEB_BUILD_I<NAME>#, #DEB_TARGET_I<NAME>#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:176
+msgid ""
+"These tokens are replaced with the respective variable from "
+"L<dpkg-architecture(1)>. In almost all cases, you will want use the B<< "
+"#DEB_HOST_I<NAME> >> variant in a script to ensure you get the right value "
+"when cross-building."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:181
+msgid ""
+"On a best effort, tokens of this pattern that do not match a variable in "
+"L<dpkg-architecture(1)> will be left as-is."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:184
+msgid "#ENV.I<NAME>#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:186
+msgid ""
+"These tokens of this form will be replaced with value of the corresponding "
+"environment variable. If the environment variable is unset, the token is "
+"replaced with the empty string."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:191
+msgid ""
+"Note that there are limits on which names can be used (see L</Limitations in "
+"token names>)."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:194
+msgid "#PACKAGE#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:196
+msgid ""
+"This token is by default replaced the package name, which will contain the "
+"concrete script."
+msgstr ""
+
+#. type: =head2
+#: dh_installdeb:201
+msgid "Limitations in token names"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:203
+msgid ""
+"All tokens intended to be substituted must match the regex: "
+"#[A-Za-z0-9_.+]+#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:205
+msgid ""
+"Tokens that do not match that regex will be silently ignored if found in the "
+"script template. Invalid token names passed to B<-D> or B<--define> will "
+"cause B<dh_installdeb> to reject the command with an error in most cases."
+msgstr ""
+
#. type: textblock
#: dh_installdebconf:5
msgid ""
@@ -4370,8 +4801,8 @@ msgstr ""
#: dh_installdocs:35
msgid ""
"In compat 11 and later, B<dh_installdocs> offers many of the features that "
-"L<dh_install(1)> also have. Furthermore, B<dh_installdocs> also supports "
-"the B<nodoc> build profile to exclude documentation (regardless of compat "
+"L<dh_install(1)> also has. Furthermore, B<dh_installdocs> also supports the "
+"B<nodoc> build profile to exclude documentation (regardless of compat "
"level)."
msgstr ""
@@ -4746,7 +5177,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installemacsen:139
+#: dh_installemacsen:140
msgid "L<debhelper(7)> L</usr/share/doc/emacsen-common/debian-emacs-policy.gz>"
msgstr ""
@@ -5265,17 +5696,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installinit:408
+#: dh_installinit:427
msgid "L<debhelper(7)>, L<dh_installsystemd(1)>"
msgstr ""
#. type: textblock
-#: dh_installinit:416
+#: dh_installinit:435
msgid "Steve Langasek <steve.langasek@canonical.com>"
msgstr ""
#. type: textblock
-#: dh_installinit:418
+#: dh_installinit:437
msgid "Michael Stapelberg <stapelberg@debian.org>"
msgstr ""
@@ -5326,7 +5757,7 @@ msgid "Do not modify F<postinst>/F<postrm> scripts."
msgstr ""
#. type: textblock
-#: dh_installinitramfs:88
+#: dh_installinitramfs:87
msgid "L<debhelper(7)> L<update-initramfs(8)> L<initramfs-tools(8)>"
msgstr ""
@@ -5453,9 +5884,10 @@ msgstr ""
msgid ""
"In compat 10 and earlier, this program was primarily for when upstream's "
"build system does not properly install them as a part of its install step "
-"(or it does not have an install step). In compat 11 and later, it supports "
-"the same features of L<dh_install(1)> and has the advantage that it respects "
-"the B<nodoc> build profile (unlike L<dh_install(1)>)."
+"(or it does not have an install step). In compat 11 and later, it also "
+"supports the default searchdir plus --sourcedir like dh_install(1) and has "
+"the advantage that it respects the nodoc build profile (unlike "
+"dh_install(1))."
msgstr ""
#. type: textblock
@@ -6138,7 +6570,7 @@ msgstr ""
msgid ""
"In each pair the source file (called B<target> by L<ln(1)>) comes first and "
"is followed by the destination file (called B<link name> by L<ln(1)>). Thus "
-"the pairs of source and destination files in each line are give in the same "
+"the pairs of source and destination files in each line are given in the same "
"order as they would be given to L<ln(1)>."
msgstr ""
@@ -6322,13 +6754,35 @@ msgid ""
"generate a maintainer script for this purpose."
msgstr ""
+#. type: textblock
+#: dh_makeshlibs:29
+msgid ""
+"Since debhelper 12.3, B<dh_makeshlibs> will by default add an additional "
+"I<udeb> line for udebs in the shlibs file, when the udeb has the same name "
+"as the deb followed by a \"-udeb\" suffix (e.g. if the deb is called "
+"\"libfoo1\", then debhelper will auto-detect the udeb if it is named "
+"\"libfoo1-udeb\"). Please use the B<--add-udeb> and B<--no-add-udeb> options "
+"below when this auto-detection is insufficient."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:36
+msgid ""
+"If you previously used B<--add-udeb> and is considering to migrate to using "
+"the auto-detection new auto-detection feature in 12.3, then please remember "
+"to test that the resulting F<DEBIAN/shlibs> files are as expected. There "
+"are some known corner cases, where the auto-detection is insufficient. "
+"These include when the udeb contains library files from multiple regular deb "
+"packages or when the packages do not follow the expected naming convention."
+msgstr ""
+
#. type: =item
-#: dh_makeshlibs:33
+#: dh_makeshlibs:48
msgid "debian/I<package>.shlibs"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:35
+#: dh_makeshlibs:50
msgid ""
"Installs this file, if present, into the package as DEBIAN/shlibs. If "
"omitted, debhelper will generate a shlibs file automatically if it detects "
@@ -6336,24 +6790,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:39
+#: dh_makeshlibs:54
msgid ""
"Note in compat levels 9 and earlier, this file was installed by "
"L<dh_installdeb(1)> rather than B<dh_makeshlibs>."
msgstr ""
#. type: =item
-#: dh_makeshlibs:42
+#: dh_makeshlibs:57
msgid "debian/I<package>.symbols"
msgstr ""
#. type: =item
-#: dh_makeshlibs:44
+#: dh_makeshlibs:59
msgid "debian/I<package>.symbols.I<arch>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:46
+#: dh_makeshlibs:61
msgid ""
"These symbols files, if present, are passed to L<dpkg-gensymbols(1)> to be "
"processed and installed. Use the I<arch> specific names if you need to "
@@ -6361,12 +6815,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_makeshlibs:56
+#: dh_makeshlibs:71
msgid "B<-m>I<major>, B<--major=>I<major>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:58
+#: dh_makeshlibs:73
msgid ""
"Instead of trying to guess the major number of the library with objdump, use "
"the major number specified after the -m parameter. This is much less useful "
@@ -6375,41 +6829,41 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_makeshlibs:63
+#: dh_makeshlibs:78
msgid "B<-V>, B<-V>I<dependencies>"
msgstr ""
#. type: =item
-#: dh_makeshlibs:65
+#: dh_makeshlibs:80
msgid "B<--version-info>, B<--version-info=>I<dependencies>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:67
+#: dh_makeshlibs:82
msgid ""
"If a shlibs file is generated by this program, this option controls what "
"version will be used in the dependency relation."
msgstr ""
#. type: textblock
-#: dh_makeshlibs:70
+#: dh_makeshlibs:85
msgid ""
"In compat 12 and later, B<dh_makeshlibs> defaults to B<-VUpstream-Version>. "
"In compat 11 and earlier the default behaved like B<-VNone>.."
msgstr ""
#. type: textblock
-#: dh_makeshlibs:73
+#: dh_makeshlibs:88
msgid "The B<dh_makeshlibs> tool can generate dependencies in three variants:"
msgstr ""
#. type: =item
-#: dh_makeshlibs:77
+#: dh_makeshlibs:92
msgid "B<-VUpstream-Version>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:79
+#: dh_makeshlibs:94
msgid ""
"The dependency will be \"I<packagename> B<(E<gt>>= I<packageversion>B<)>\". "
"Note that I<Upstream-Version> is case-sensitive and must be written exactly "
@@ -6417,7 +6871,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:83
+#: dh_makeshlibs:98
msgid ""
"This is a conservative setting that always ensures that other packages' "
"shared library dependencies are at least as tight as they need to be (unless "
@@ -6426,7 +6880,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:88
+#: dh_makeshlibs:103
msgid ""
"The flip side is that packages might end up with dependencies that are too "
"tight in some cases (note a symbols file can mitigate this issue). This is "
@@ -6435,7 +6889,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:94
+#: dh_makeshlibs:109
msgid ""
"This explicit form was added in debhelper/11.3. In previous versions, a "
"B<-V> without any dependency information was used instead (and that form "
@@ -6443,19 +6897,19 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_makeshlibs:98
+#: dh_makeshlibs:113
msgid "B<-VNone>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:100
+#: dh_makeshlibs:115
msgid ""
"The dependency will be \"I<packagename>\". Note that I<None> is "
"case-sensitive and must be written exactly as shown here."
msgstr ""
#. type: textblock
-#: dh_makeshlibs:103
+#: dh_makeshlibs:118
msgid ""
"This form is generally unsafe with the only exception being if upstream does "
"not extend the ABI in any way. However, most upstreams improve their "
@@ -6464,7 +6918,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:108
+#: dh_makeshlibs:123
msgid ""
"Alternatively, this may be sufficient if (and only if) the package uses "
"symbol versioning (see L<dpkg-gensymbols(1)>) and does I<not> build any udeb "
@@ -6473,12 +6927,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_makeshlibs:113
+#: dh_makeshlibs:128
msgid "B<-V>I<package-relation>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:115
+#: dh_makeshlibs:130
msgid ""
"In this case, the value passed to B<-V> will be used as a dependency "
"relation. The I<package-relation> should generally be of the form "
@@ -6487,7 +6941,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:120
+#: dh_makeshlibs:135
msgid ""
"Note that debhelper will use the value I<as it is> with no sanity checking "
"or modification. In I<rare special> cases, this is needed to generate a "
@@ -6495,7 +6949,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:127
+#: dh_makeshlibs:142
msgid ""
"When choosing a value for this option, please keep mind that if the package "
"provides a symbols file, then that it generally preferred over the shlibs "
@@ -6504,7 +6958,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:134
+#: dh_makeshlibs:149
msgid ""
"Do not add the \"ldconfig\" trigger even if it seems like the package might "
"need it. The option is called B<--no-scripts> for historical reasons as "
@@ -6513,19 +6967,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:141
+#: dh_makeshlibs:156
msgid ""
"Exclude files that contain I<item> anywhere in their filename or directory "
"from being treated as shared libraries."
msgstr ""
#. type: =item
-#: dh_makeshlibs:144
+#: dh_makeshlibs:159
msgid "B<--add-udeb=>I<udeb>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:146
+#: dh_makeshlibs:161
msgid ""
"Create an additional line for udebs in the shlibs file and use I<udeb> as "
"the package name for udebs to depend on instead of the regular library "
@@ -6533,17 +6987,47 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:151
+#: dh_makeshlibs:164
+msgid ""
+"This is option is only useful for special cases such as when debhelper "
+"cannot auto-detect package name of the udeb package, when the udeb will "
+"contain libraries from multiple deb packages, or when the udeb contains "
+"libraries B<not> present in the deb package."
+msgstr ""
+
+#. type: =item
+#: dh_makeshlibs:169
+msgid "B<--no-add-udeb>"
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:171
+msgid ""
+"Do not add any udeb lines to the shlibs file. This can be used to disable "
+"the default auto-detection of udebs."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:174
+msgid ""
+"This may be useful in case you do not want a shlibs file at all for the udeb "
+"because no package will depend on it. E.g. because adding a udeb package "
+"for the library was \"overkill\" and the library is embedded in a different "
+"udeb package."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:181
msgid "Pass I<params> to L<dpkg-gensymbols(1)>."
msgstr ""
#. type: =item
-#: dh_makeshlibs:159
+#: dh_makeshlibs:189
msgid "B<dh_makeshlibs -VNone>"
msgstr ""
#. type: verbatim
-#: dh_makeshlibs:161
+#: dh_makeshlibs:191
#, no-wrap
msgid ""
"Assuming this is a package named F<libfoobar1>, generates a shlibs file "
@@ -6554,12 +7038,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_makeshlibs:165
+#: dh_makeshlibs:195
msgid "B<dh_makeshlibs -VUpstream-Version>"
msgstr ""
#. type: verbatim
-#: dh_makeshlibs:167
+#: dh_makeshlibs:197
#, no-wrap
msgid ""
"Assuming the current version of the package is 1.1-3, generates a shlibs\n"
@@ -6569,12 +7053,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_makeshlibs:171
+#: dh_makeshlibs:201
msgid "B<dh_makeshlibs -V 'libfoobar1 (E<gt>= 1.0)'>"
msgstr ""
#. type: verbatim
-#: dh_makeshlibs:173
+#: dh_makeshlibs:203
#, no-wrap
msgid ""
"Generates a shlibs file that looks something like:\n"
@@ -6812,7 +7296,7 @@ msgid "Perl policy, version 1.20"
msgstr ""
#. type: textblock
-#: dh_perl:167
+#: dh_perl:179
msgid "Brendan O'Dea <bod@debian.org>"
msgstr ""
@@ -6996,7 +7480,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_shlibdeps:201
+#: dh_shlibdeps:206
msgid "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
msgstr ""
@@ -7549,7 +8033,7 @@ msgid "L<dh_systemd_start(1)>, L<debhelper(7)>"
msgstr ""
#. type: textblock
-#: dh_systemd_enable:287 dh_systemd_start:275
+#: dh_systemd_enable:287 dh_systemd_start:286
msgid "pkg-systemd-maintainers@lists.alioth.debian.org"
msgstr ""
diff --git a/man/po4a/po/es.po b/man/po4a/po/es.po
index d13e16c2..30c51a4a 100644
--- a/man/po4a/po/es.po
+++ b/man/po4a/po/es.po
@@ -31,7 +31,7 @@ msgid ""
msgstr ""
"Project-Id-Version: debhelper 9.20120609\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-08-08 14:37+0200\n"
+"POT-Creation-Date: 2019-10-20 17:40+0000\n"
"PO-Revision-Date: 2012-08-20 11:17+0200\n"
"Last-Translator: Omar Campagne <ocampagne@gmail.com>\n"
"Language-Team: Debian l10n Spanish <debian-l10n-spanish@lists.debian.org>\n"
@@ -69,7 +69,7 @@ msgstr "debhelper - El conjunto de herramientas debhelper"
# type: =head1
#. type: =head1
-#: debhelper.pod:7 debhelper-obsolete-compat.pod:5 dh:16 dh_auto_build:16
+#: debhelper.pod:7 debhelper-obsolete-compat.pod:5 dh:20 dh_auto_build:16
#: dh_auto_clean:16 dh_auto_configure:16 dh_auto_install:18 dh_auto_test:16
#: dh_bugfiles:15 dh_builddeb:17 dh_clean:15 dh_compress:17 dh_dwz:16
#: dh_fixperms:16 dh_gconf:15 dh_gencontrol:16 dh_icons:16 dh_install:15
@@ -103,7 +103,7 @@ msgstr ""
# type: =head1
#. type: =head1
-#: debhelper.pod:11 dh:20 dh_auto_build:20 dh_auto_clean:20
+#: debhelper.pod:11 dh:24 dh_auto_build:20 dh_auto_clean:20
#: dh_auto_configure:20 dh_auto_install:22 dh_auto_test:20 dh_bugfiles:19
#: dh_builddeb:21 dh_clean:19 dh_compress:21 dh_dwz:20 dh_fixperms:20
#: dh_gconf:19 dh_gencontrol:20 dh_icons:20 dh_install:19 dh_installcatalogs:21
@@ -179,8 +179,7 @@ msgstr ""
msgid ""
"Except where tool explicitly denotes otherwise, all of the debhelper tools "
"assumes that they run from root directory of an unpacked source package. "
-"This is so they can locate find F<debian/control> and F<debian/compat> when "
-"needed."
+"This is so they can locate find files like F<debian/control> when needed."
msgstr ""
# type: =head1
@@ -430,7 +429,7 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:148 dh:82
+#: debhelper.pod:148 dh:99
msgid "B<--no-act>"
msgstr "B<--no-act>"
@@ -663,8 +662,8 @@ msgstr "No modifica los scripts F<postinst>, F<postrm>, etc."
# type: =item
#. type: =item
-#: debhelper.pod:228 dh_compress:56 dh_dwz:44 dh_installchangelogs:85
-#: dh_installdocs:99 dh_installexamples:77 dh_link:75 dh_makeshlibs:139
+#: debhelper.pod:228 dh_compress:56 dh_dwz:56 dh_installchangelogs:85
+#: dh_installdocs:99 dh_installexamples:77 dh_link:75 dh_makeshlibs:154
#: dh_md5sums:40 dh_shlibdeps:34 dh_strip:42
msgid "B<-X>I<item>, B<--exclude=>I<item>"
msgstr "B<-X>I<elemento>, B<--exclude=>I<elemento>"
@@ -743,7 +742,11 @@ msgstr ""
# type: =item
#. type: =item
#: debhelper.pod:257
-msgid "B<-D>I<directory>, B<--sourcedirectory=>I<directory>"
+#, fuzzy
+#| msgid "B<-D>I<directory>, B<--sourcedirectory=>I<directory>"
+msgid ""
+"B<-D>I<directory>, B<--sourcedir=>I<directory>, B<--"
+"sourcedirectory=>I<directory>"
msgstr "B<-D>I<directorio>, B<--sourcedirectory=>I<directorio>"
#. type: textblock
@@ -760,7 +763,11 @@ msgstr ""
# type: =item
#. type: =item
#: debhelper.pod:263
-msgid "B<-B>[I<directory>], B<--builddirectory=>[I<directory>]"
+#, fuzzy
+#| msgid "B<-B>[I<directory>], B<--builddirectory=>[I<directory>]"
+msgid ""
+"B<-B>[I<directory>], B<--builddir>[I<=directory>], B<--"
+"builddirectory>[I<=directory>]"
msgstr "B<-B>[I<directorio>], B<--builddirectory=>[I<directorio>]"
#. type: textblock
@@ -881,14 +888,81 @@ msgid ""
"parallel>."
msgstr ""
+#. type: =item
+#: debhelper.pod:304
+msgid "B<--reload-all-buildenv-variables>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:306
+msgid ""
+"By default, L<dh(1)> will compute several environment (e.g. by using L<dpkg-"
+"buildflags(1)>) and cache them to avoid having all B<dh_auto_*> tool "
+"recompute them."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:310
+msgid ""
+"When passing this option, the concrete B<dh_auto_*> tool will ignore the "
+"cache from L<dh(1)> and retrigger a rebuild of these variables. This is "
+"useful in the very rare case where the package need to do multiple builds "
+"but with different B<...FLAGS> options. A concrete example would be needing "
+"to change the B<-O> parameter in B<CFLAGS> in the second build:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:317
+#, no-wrap
+msgid ""
+" export DEB_CFLAGS_MAINT_APPEND=-O3\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:319
+#, no-wrap
+msgid ""
+" %:\n"
+" dh $@\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:322
+#, no-wrap
+msgid ""
+" override_dh_auto_configure:\n"
+" dh_auto_configure -Bbuild-deb ...\n"
+" DEB_CFLAGS_MAINT_APPEND=-Os dh_auto_configure \\\n"
+" --reload-all-buildenv-variables -Bbuild-udeb ...\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:327
+msgid ""
+"Without B<--reload-all-buildenv-variables> in the second call to "
+"L<dh_auto_configure(1)>, the change in B<DEB_CFLAGS_MAINT_APPEND> would be "
+"ignored as L<dh_auto_configure(1)> would use the cached value of B<CFLAGS> "
+"set by L<dh(1)>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:332
+msgid ""
+"This option is only available with B<< debhelper (>= 12.7~) >> when the "
+"package uses compatibility level 9 or later."
+msgstr ""
+
# type: =item
#. type: =item
-#: debhelper.pod:304 dh:74
+#: debhelper.pod:335 dh:91
msgid "B<--list>, B<-l>"
msgstr "B<--list>, B<-l>"
#. type: textblock
-#: debhelper.pod:306
+#: debhelper.pod:337
msgid ""
"List all build systems supported by debhelper on this system. The list "
"includes both default and third party build systems (marked as such). Also "
@@ -902,13 +976,13 @@ msgstr ""
"buildsystem>."
#. type: =head1
-#: debhelper.pod:313
+#: debhelper.pod:344
msgid "COMPATIBILITY LEVELS"
msgstr "NIVELES DE COMPATIBILIDAD"
# type: textblock
#. type: textblock
-#: debhelper.pod:315
+#: debhelper.pod:346
#, fuzzy
#| msgid ""
#| "From time to time, major non-backwards-compatible changes need to be made "
@@ -923,8 +997,7 @@ msgid ""
"gains more experience. To prevent such major changes from breaking existing "
"packages, the concept of debhelper compatibility levels was introduced. You "
"must tell debhelper which compatibility level it should use, and it modifies "
-"its behavior in various ways. The compatibility level is specified in the "
-"F<debian/compat> file and the file must be present."
+"its behavior in various ways."
msgstr ""
"Cada cierto tiempo, debhelper necesita cambios que lo pueden hacer "
"incompatible con versiones anteriores para así continuar con un buen y "
@@ -936,14 +1009,15 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:323
+#: debhelper.pod:353
#, fuzzy
#| msgid ""
#| "Tell debhelper what compatibility level to use by writing a number to "
#| "F<debian/compat>. For example, to turn on v9 mode:"
msgid ""
-"Tell debhelper what compatibility level to use by writing a number to "
-"F<debian/compat>. For example, to use v#RECOMMENDED_COMPAT# mode:"
+"In current debhelper, you can specify the compatibility level in F<debian/"
+"control> by adding a Build-Depends on the debhelper-compat package. For "
+"example, to use v#RECOMMENDED_COMPAT# mode, ensure F<debian/control> has:"
msgstr ""
"Para especificar a debhelper qué nivel de compatibilidad debe utilizar, "
"escriba un número en F<debian/compat>. Por ejemplo, para activar el modo "
@@ -951,33 +1025,54 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: debhelper.pod:326
-#, no-wrap
+#: debhelper.pod:357
+#, fuzzy, no-wrap
+#| msgid ""
+#| " Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
+#| "\n"
msgid ""
-" % echo #RECOMMENDED_COMPAT# > debian/compat\n"
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
"\n"
msgstr ""
-" % echo #RECOMMENDED_COMPAT# > debian/compat\n"
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
"\n"
-# type: textblock
#. type: textblock
-#: debhelper.pod:328
+#: debhelper.pod:359
+msgid ""
+"This also serves as an appropriate versioned build dependency on a "
+"sufficient version of the debhelper package, so you do not need to specify a "
+"separate versioned build dependency on the debhelper package unless you need "
+"a specific point release of debhelper (such as for the introduction of a new "
+"feature or bugfix within a compatibility level)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:365
msgid ""
-"Your package will also need a versioned build dependency on a version of "
-"debhelper equal to (or greater than) the compatibility level your package "
-"uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/control "
-"has:"
+"Note that debhelper does not provide debhelper-compat for experimental or "
+"beta compatibility levels; packages experimenting with those compatibility "
+"levels should use F<debian/compat> or B<DH_COMPAT>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:369
+msgid ""
+"Prior versions of debhelper required specifying the compatibility level in "
+"the file F<debian/compat>, and current debhelper still supports this for "
+"backward compatibility, though a package may not specify a compatibility "
+"level via multiple methods at once. To use this method, F<debian/compat> "
+"should contain the compatibility level as a single number, and no other "
+"content. If you specify the compatibility level by this method, your package "
+"will also need a versioned build dependency on a version of the debhelper "
+"package equal to (or greater than) the compatibility level your package "
+"uses. So, if you specify compatibility level #RECOMMENDED_COMPAT# in "
+"F<debian/compat>, ensure F<debian/control> has:"
msgstr ""
-"El paquete también requiere como dependencia de construcción («build-"
-"depend») una versión de debhelper igual o mayor que el nivel de "
-"compatibilidad de debhelper que utiliza el paquete. Por ejemplo, para "
-"utilizar el nivel de compatibilidad #RECOMMENDED_COMPAT#, compruebe que "
-"«debian/control» contiene lo siguiente:"
# type: verbatim
#. type: verbatim
-#: debhelper.pod:332
+#: debhelper.pod:380
#, fuzzy, no-wrap
#| msgid ""
#| " Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
@@ -991,7 +1086,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:334
+#: debhelper.pod:382
msgid ""
"Unless otherwise indicated, all debhelper documentation assumes that you are "
"using the most recent compatibility level, and in most cases does not "
@@ -1008,7 +1103,7 @@ msgstr ""
# type: =head2
#. type: =head2
-#: debhelper.pod:341
+#: debhelper.pod:389
#, fuzzy
#| msgid "Debhelper compatibility levels"
msgid "Supported compatibility levels"
@@ -1016,25 +1111,25 @@ msgstr "Niveles de compatibilidad de debhelper"
# type: textblock
#. type: textblock
-#: debhelper.pod:343
+#: debhelper.pod:391
msgid "These are the available compatibility levels:"
msgstr "Los niveles de compatibilidad disponibles son:"
#. type: =item
-#: debhelper.pod:347 debhelper-obsolete-compat.pod:89
+#: debhelper.pod:395 debhelper-obsolete-compat.pod:89
msgid "v5"
msgstr "v5"
# type: textblock
#. type: textblock
-#: debhelper.pod:349 debhelper-obsolete-compat.pod:91
+#: debhelper.pod:397 debhelper-obsolete-compat.pod:91
#, fuzzy
#| msgid "These are the available compatibility levels:"
msgid "This is the lowest supported compatibility level."
msgstr "Los niveles de compatibilidad disponibles son:"
#. type: textblock
-#: debhelper.pod:351
+#: debhelper.pod:399
msgid ""
"If you are upgrading from an earlier compatibility level, please review "
"L<debhelper-obsolete-compat(7)>."
@@ -1042,40 +1137,42 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:354 debhelper.pod:386 debhelper.pod:416 debhelper.pod:447
+#: debhelper.pod:402 debhelper.pod:434 debhelper.pod:464 debhelper.pod:495
#: debhelper-obsolete-compat.pod:28 debhelper-obsolete-compat.pod:35
#: debhelper-obsolete-compat.pod:58 debhelper-obsolete-compat.pod:87
msgid "This mode is deprecated."
msgstr "Este modo está obsoleto."
#. type: =item
-#: debhelper.pod:356
+#: debhelper.pod:404
msgid "v6"
msgstr "v6"
#. type: textblock
-#: debhelper.pod:358
+#: debhelper.pod:406
msgid "Changes from v5 are:"
msgstr "Los cambios desde el nivel v5 son:"
# type: =item
#. type: =item
-#: debhelper.pod:362 debhelper.pod:367 debhelper.pod:373 debhelper.pod:379
-#: debhelper.pod:394 debhelper.pod:401 debhelper.pod:405 debhelper.pod:409
-#: debhelper.pod:424 debhelper.pod:428 debhelper.pod:436 debhelper.pod:441
-#: debhelper.pod:455 debhelper.pod:460 debhelper.pod:467 debhelper.pod:472
-#: debhelper.pod:477 debhelper.pod:485 debhelper.pod:491 debhelper.pod:496
-#: debhelper.pod:501 debhelper.pod:514 debhelper.pod:519 debhelper.pod:525
-#: debhelper.pod:532 debhelper.pod:538 debhelper.pod:543 debhelper.pod:549
-#: debhelper.pod:555 debhelper.pod:565 debhelper.pod:571 debhelper.pod:594
-#: debhelper.pod:601 debhelper.pod:607 debhelper.pod:613 debhelper.pod:629
-#: debhelper.pod:635 debhelper.pod:647 debhelper.pod:655 debhelper.pod:661
-#: debhelper.pod:666 debhelper.pod:671 debhelper.pod:676 debhelper.pod:684
-#: debhelper.pod:694 debhelper.pod:704 debhelper.pod:711 debhelper.pod:723
-#: debhelper.pod:728 debhelper.pod:756 debhelper.pod:775 debhelper.pod:785
-#: debhelper.pod:789 debhelper.pod:794 debhelper.pod:799 debhelper.pod:806
-#: debhelper.pod:812 debhelper.pod:820 debhelper.pod:826 debhelper.pod:830
-#: debhelper.pod:835 debhelper.pod:840 debhelper.pod:849
+#: debhelper.pod:410 debhelper.pod:415 debhelper.pod:421 debhelper.pod:427
+#: debhelper.pod:442 debhelper.pod:449 debhelper.pod:453 debhelper.pod:457
+#: debhelper.pod:472 debhelper.pod:476 debhelper.pod:484 debhelper.pod:489
+#: debhelper.pod:503 debhelper.pod:508 debhelper.pod:515 debhelper.pod:520
+#: debhelper.pod:525 debhelper.pod:533 debhelper.pod:539 debhelper.pod:544
+#: debhelper.pod:549 debhelper.pod:562 debhelper.pod:567 debhelper.pod:573
+#: debhelper.pod:579 debhelper.pod:584 debhelper.pod:590 debhelper.pod:599
+#: debhelper.pod:609 debhelper.pod:615 debhelper.pod:638 debhelper.pod:645
+#: debhelper.pod:651 debhelper.pod:657 debhelper.pod:663 debhelper.pod:692
+#: debhelper.pod:698 debhelper.pod:710 debhelper.pod:718 debhelper.pod:724
+#: debhelper.pod:729 debhelper.pod:734 debhelper.pod:739 debhelper.pod:747
+#: debhelper.pod:757 debhelper.pod:767 debhelper.pod:774 debhelper.pod:786
+#: debhelper.pod:791 debhelper.pod:819 debhelper.pod:838 debhelper.pod:848
+#: debhelper.pod:852 debhelper.pod:857 debhelper.pod:862 debhelper.pod:869
+#: debhelper.pod:875 debhelper.pod:883 debhelper.pod:889 debhelper.pod:893
+#: debhelper.pod:898 debhelper.pod:903 debhelper.pod:912 debhelper.pod:928
+#: debhelper.pod:935 debhelper.pod:951 debhelper.pod:959 debhelper.pod:964
+#: debhelper.pod:979 debhelper.pod:987 debhelper.pod:995
#: debhelper-obsolete-compat.pod:43 debhelper-obsolete-compat.pod:48
#: debhelper-obsolete-compat.pod:52 debhelper-obsolete-compat.pod:66
#: debhelper-obsolete-compat.pod:71 debhelper-obsolete-compat.pod:76
@@ -1088,7 +1185,7 @@ msgstr "-"
# type: textblock
#. type: textblock
-#: debhelper.pod:364
+#: debhelper.pod:412
msgid ""
"Commands that generate maintainer script fragments will order the fragments "
"in reverse order for the F<prerm> and F<postrm> scripts."
@@ -1098,7 +1195,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:369
+#: debhelper.pod:417
msgid ""
"B<dh_installwm> will install a slave manpage link for F<x-window-manager.1."
"gz>, if it sees the man page in F<usr/share/man/man1> in the package build "
@@ -1110,7 +1207,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:375
+#: debhelper.pod:423
msgid ""
"B<dh_builddeb> did not previously delete everything matching "
"B<DH_ALWAYS_EXCLUDE>, if it was set to a list of things to exclude, such as "
@@ -1122,7 +1219,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:381
+#: debhelper.pod:429
msgid ""
"B<dh_installman> allows overwriting existing man pages in the package build "
"directory. In previous compatibility levels it silently refuses to do this."
@@ -1132,18 +1229,18 @@ msgstr ""
"anteriores simplemente rechazaba hacerlo, de forma silenciosa."
#. type: =item
-#: debhelper.pod:388
+#: debhelper.pod:436
msgid "v7"
msgstr "v7"
#. type: textblock
-#: debhelper.pod:390
+#: debhelper.pod:438
msgid "Changes from v6 are:"
msgstr "Los cambios desde el nivel v6 son:"
# type: textblock
#. type: textblock
-#: debhelper.pod:396
+#: debhelper.pod:444
msgid ""
"B<dh_install>, will fall back to looking for files in F<debian/tmp> if it "
"doesn't find them in the current directory (or wherever you tell it look "
@@ -1159,20 +1256,20 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:403
+#: debhelper.pod:451
msgid "B<dh_clean> will read F<debian/clean> and delete files listed there."
msgstr ""
"B<dh_clean> leerá F<debian/clean> y eliminará los ficheros ahí listados."
# type: textblock
#. type: textblock
-#: debhelper.pod:407
+#: debhelper.pod:455
msgid "B<dh_clean> will delete toplevel F<*-stamp> files."
msgstr "B<dh_clean> eliminará ficheros F<*-stamp> del nivel superior."
# type: textblock
#. type: textblock
-#: debhelper.pod:411
+#: debhelper.pod:459
msgid ""
"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
"none is specified."
@@ -1181,17 +1278,17 @@ msgstr ""
"cambios de la fuente original si no se especifica ninguno."
#. type: =item
-#: debhelper.pod:418
+#: debhelper.pod:466
msgid "v8"
msgstr "v8"
#. type: textblock
-#: debhelper.pod:420
+#: debhelper.pod:468
msgid "Changes from v7 are:"
msgstr "Los cambios desde el nivel v7 son:"
#. type: textblock
-#: debhelper.pod:426
+#: debhelper.pod:474
msgid ""
"Commands will fail rather than warning when they are passed unknown options."
msgstr ""
@@ -1199,7 +1296,7 @@ msgstr ""
"opciones desconocidas."
#. type: textblock
-#: debhelper.pod:430
+#: debhelper.pod:478
msgid ""
"B<dh_makeshlibs> will run B<dpkg-gensymbols> on all shared libraries that it "
"generates shlibs files for. So B<-X> can be used to exclude libraries. "
@@ -1215,7 +1312,7 @@ msgstr ""
"paquetes."
#. type: textblock
-#: debhelper.pod:438
+#: debhelper.pod:486
msgid ""
"B<dh> requires the sequence to run be specified as the first parameter, and "
"any switches come after it. Ie, use \"B<dh $@ --foo>\", not \"B<dh --foo $@>"
@@ -1226,7 +1323,7 @@ msgstr ""
"B<dh $@ --foo>, no B<dh --foo $@>."
#. type: textblock
-#: debhelper.pod:443
+#: debhelper.pod:491
msgid ""
"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
"F<Makefile.PL>."
@@ -1235,17 +1332,17 @@ msgstr ""
"preferencia a un fichero F<Makefile.PL>."
#. type: =item
-#: debhelper.pod:449
+#: debhelper.pod:497
msgid "v9"
msgstr "v9"
#. type: textblock
-#: debhelper.pod:451
+#: debhelper.pod:499
msgid "Changes from v8 are:"
msgstr "Los cambios desde el nivel v8 son:"
#. type: textblock
-#: debhelper.pod:457
+#: debhelper.pod:505
msgid ""
"Multiarch support. In particular, B<dh_auto_configure> passes multiarch "
"directories to autoconf in --libdir and --libexecdir."
@@ -1254,7 +1351,7 @@ msgstr ""
"multiarquitectura a autoconf en «--libdir» y «--libexecdir»."
#. type: textblock
-#: debhelper.pod:462
+#: debhelper.pod:510
msgid ""
"dh is aware of the usual dependencies between targets in debian/rules. So, "
"\"dh binary\" will run any build, build-arch, build-indep, install, etc "
@@ -1268,7 +1365,7 @@ msgstr ""
"sobre otros objetivos."
#. type: textblock
-#: debhelper.pod:469
+#: debhelper.pod:517
msgid ""
"B<dh_strip> compresses debugging symbol files to reduce the installed size "
"of -dbg packages."
@@ -1277,7 +1374,7 @@ msgstr ""
"reducir el tamaño de los paquetes -dbg."
#. type: textblock
-#: debhelper.pod:474
+#: debhelper.pod:522
msgid ""
"B<dh_auto_configure> does not include the source package name in --"
"libexecdir when using autoconf."
@@ -1286,12 +1383,12 @@ msgstr ""
"libexecdir» al utilizar autoconf."
#. type: textblock
-#: debhelper.pod:479
+#: debhelper.pod:527
msgid "B<dh> does not default to enabling --with=python-support"
msgstr "B<dh> no activa «--with=python-support» de forma predeterminada."
#. type: textblock
-#: debhelper.pod:481
+#: debhelper.pod:529
msgid ""
"(Obsolete: As the B<dh_pysupport> tool was removed from Debian stretch. "
"Since debhelper/10.3, B<dh> no longer enables this sequence add-on "
@@ -1299,7 +1396,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:487
+#: debhelper.pod:535
msgid ""
"All of the B<dh_auto_>I<*> debhelper programs and B<dh> set environment "
"variables listed by B<dpkg-buildflags>, unless they are already set."
@@ -1308,7 +1405,7 @@ msgstr ""
"entorno listados en B<dpkg-buildflags>, a menos que ya estén definidas."
#. type: textblock
-#: debhelper.pod:493
+#: debhelper.pod:541
msgid ""
"B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and LDFLAGS "
"to perl F<Makefile.PL> and F<Build.PL>"
@@ -1317,7 +1414,7 @@ msgstr ""
"LDFLAGS a ficheros de Perl F<Makefile.PL> y F<Build.PL>"
#. type: textblock
-#: debhelper.pod:498
+#: debhelper.pod:546
msgid ""
"B<dh_strip> puts separated debug symbols in a location based on their build-"
"id."
@@ -1326,7 +1423,7 @@ msgstr ""
"build-id."
#. type: textblock
-#: debhelper.pod:503
+#: debhelper.pod:551
msgid ""
"Executable debhelper config files are run and their output used as the "
"configuration."
@@ -1335,24 +1432,24 @@ msgstr ""
"debhelper y su salida."
#. type: =item
-#: debhelper.pod:508
+#: debhelper.pod:556
msgid "v10"
msgstr "v10"
#. type: textblock
-#: debhelper.pod:510
+#: debhelper.pod:558
msgid "Changes from v9 are:"
msgstr "Los cambios desde el nivel v9 son:"
#. type: textblock
-#: debhelper.pod:516
+#: debhelper.pod:564
msgid ""
"B<dh_installinit> will no longer install a file named debian/I<package> as "
"an init script."
msgstr ""
#. type: textblock
-#: debhelper.pod:521
+#: debhelper.pod:569
msgid ""
"B<dh_installdocs> will error out if it detects links created with --link-doc "
"between packages of architecture \"all\" and non-\"all\" as it breaks "
@@ -1360,30 +1457,21 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:527
-msgid ""
-"B<dh> no longer creates the package build directory when skipping running "
-"debhelper commands. This will not affect packages that only build with "
-"debhelper commands, but it may expose bugs in commands not included in "
-"debhelper."
-msgstr ""
-
-#. type: textblock
-#: debhelper.pod:534
+#: debhelper.pod:575
msgid ""
"B<dh_installdeb> no longer installs a maintainer-provided debian/I<package>."
"shlibs file. This is now done by B<dh_makeshlibs> instead."
msgstr ""
#. type: textblock
-#: debhelper.pod:540
+#: debhelper.pod:581
msgid ""
"B<dh_installwm> refuses to create a broken package if no man page can be "
"found (required to register for the x-window-manager alternative)."
msgstr ""
#. type: textblock
-#: debhelper.pod:545
+#: debhelper.pod:586
msgid ""
"Debhelper will default to B<--parallel> for all buildsystems that support "
"parallel building. This can be disabled by using either B<--no-parallel> or "
@@ -1391,7 +1479,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:551
+#: debhelper.pod:592
msgid ""
"The B<dh> command will not accept any of the deprecated \"manual sequence "
"control\" parameters (B<--before>, B<--after>, etc.). Please use override "
@@ -1399,7 +1487,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:557
+#: debhelper.pod:596
+msgid ""
+"B<Retroactively applied to earlier compat levels>: B<dh> no longer accepts "
+"any of these since debhelper/12.4."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:601
msgid ""
"The B<dh> command will no longer use log files to track which commands have "
"been run. The B<dh> command I<still> keeps track of whether it already ran "
@@ -1407,12 +1502,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:561
+#: debhelper.pod:605
msgid "The main effects of this are:"
msgstr ""
#. type: textblock
-#: debhelper.pod:567
+#: debhelper.pod:611
msgid ""
"With this, it is now easier to debug the I<install> or/and I<binary> "
"sequences because they can now trivially be re-run (without having to do a "
@@ -1420,7 +1515,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:573
+#: debhelper.pod:617
msgid ""
"The main caveat is that B<dh_*> now only keeps track of what happened in a "
"single override target. When all the calls to a given B<dh_cmd> command "
@@ -1428,12 +1523,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:578
+#: debhelper.pod:622
msgid "Example of where it can go wrong:"
msgstr ""
#. type: verbatim
-#: debhelper.pod:580
+#: debhelper.pod:624
#, no-wrap
msgid ""
" override_dh_foo:\n"
@@ -1442,7 +1537,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: debhelper.pod:583
+#: debhelper.pod:627
#, no-wrap
msgid ""
" override_dh_bar:\n"
@@ -1452,7 +1547,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:587
+#: debhelper.pod:631
msgid ""
"In this case, the call to B<dh_foo --remaining> will I<also> include I<my-"
"pkg>, since B<dh_foo -pmy-pkg> was run in a separate override target. This "
@@ -1460,7 +1555,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:596
+#: debhelper.pod:640
msgid ""
"The B<dh_installdeb> command now shell-escapes the lines in the "
"F<maintscript> config file. This was the original intent but it did not "
@@ -1469,7 +1564,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:603
+#: debhelper.pod:647
msgid ""
"The B<dh_installinit> command now defaults to B<--restart-after-upgrade>. "
"For packages needing the previous behaviour, please use B<--no-restart-after-"
@@ -1477,21 +1572,39 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:609
+#: debhelper.pod:653
msgid ""
"The B<autoreconf> sequence is now enabled by default. Please pass B<--"
"without autoreconf> to B<dh> if this is not desirable for a given package"
msgstr ""
#. type: textblock
-#: debhelper.pod:615
+#: debhelper.pod:659
msgid ""
"The B<systemd> sequence is now enabled by default. Please pass B<--without "
"systemd> to B<dh> if this is not desirable for a given package."
msgstr ""
+#. type: textblock
+#: debhelper.pod:665
+msgid ""
+"B<Retroactively removed>: B<dh> no longer creates the package build "
+"directory when skipping running debhelper commands. This will not affect "
+"packages that only build with debhelper commands, but it may expose bugs in "
+"commands not included in debhelper."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:670
+msgid ""
+"This compatibility feature had a bug since its inception in "
+"debhelper/9.20130516 that made it fail to apply in compat 9 and earlier. As "
+"there has been no reports of issues caused by this bug in those ~5 years, "
+"this item have been removed rather than fixed."
+msgstr ""
+
#. type: =item
-#: debhelper.pod:621
+#: debhelper.pod:677
#, fuzzy
#| msgid "v1"
msgid "v11"
@@ -1499,19 +1612,32 @@ msgstr "v1"
# type: textblock
#. type: textblock
-#: debhelper.pod:623
-msgid "This is the recommended mode of operation."
-msgstr "Este es el modo de operación aconsejado."
+#: debhelper.pod:679
+#, fuzzy
+#| msgid "This mode is deprecated."
+msgid "This mode is discouraged."
+msgstr "Este modo está obsoleto."
+
+#. type: textblock
+#: debhelper.pod:681
+msgid ""
+"The compat 11 is discouraged for new packages as it suffers from feature "
+"interaction between L<dh_installinit> and L<dh_installsystemd> causing "
+"services to not run correctly in some cases. Please consider using "
+"compatibility mode 10 or 12 instead. More details about the issue are "
+"available in Debian#887904 and L<https://lists.debian.org/debian-"
+"release/2019/04/msg01442.html>."
+msgstr ""
#. type: textblock
-#: debhelper.pod:625
+#: debhelper.pod:688
#, fuzzy
#| msgid "Changes from v3 are:"
msgid "Changes from v10 are:"
msgstr "Los cambios desde el nivel v3 son:"
#. type: textblock
-#: debhelper.pod:631
+#: debhelper.pod:694
msgid ""
"B<dh_installinit> no longer installs F<service> or F<tmpfile> files, nor "
"generates maintainer scripts for those files. Please use the new "
@@ -1519,7 +1645,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:637
+#: debhelper.pod:700
msgid ""
"The B<dh_systemd_enable> and B<dh_systemd_start> helpers have been replaced "
"by the new B<dh_installsystemd> helper. For the same reason, the B<systemd> "
@@ -1528,55 +1654,55 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:643
+#: debhelper.pod:706
msgid ""
"Please note that the B<dh_installsystemd> tool has a slightly different "
"behaviour in some cases (e.g. when using the B<--name> parameter)."
msgstr ""
#. type: textblock
-#: debhelper.pod:649
+#: debhelper.pod:712
msgid ""
"B<dh_installdirs> no longer creates debian/I<package> directories unless "
"explicitly requested (or it has to create a subdirectory in it)."
msgstr ""
#. type: textblock
-#: debhelper.pod:653
+#: debhelper.pod:716
msgid "The vast majority of all packages will be unaffected by this change."
msgstr ""
#. type: textblock
-#: debhelper.pod:657
+#: debhelper.pod:720
msgid ""
-"The B<makefile> buildsystem now passes B<INSTALL=install --strip-"
-"program=true> to L<make(1)>. Derivative buildsystems (e.g. B<configure> or "
-"B<cmake>) are unaffected by this change."
+"The B<makefile> buildsystem now passes B<INSTALL=\"install --strip-"
+"program=true\"> to L<make(1)>. Derivative buildsystems (e.g. B<configure> "
+"or B<cmake>) are unaffected by this change."
msgstr ""
#. type: textblock
-#: debhelper.pod:663
+#: debhelper.pod:726
msgid ""
"The B<autoconf> buildsystem now passes B<--runstatedir=/run> to F<./"
"configure>."
msgstr ""
#. type: textblock
-#: debhelper.pod:668
+#: debhelper.pod:731
msgid ""
"The B<cmake> buildsystem now passes B<-DCMAKE_INSTALL_RUNSTATEDIR=/run> to "
"L<cmake(1)>."
msgstr ""
#. type: textblock
-#: debhelper.pod:673
+#: debhelper.pod:736
msgid ""
"B<dh_installman> will now prefer detecting the language from the path name "
"rather than the extension."
msgstr ""
#. type: textblock
-#: debhelper.pod:678
+#: debhelper.pod:741
msgid ""
"B<dh_auto_install> will now only create the destination directory it needs. "
"Previously, it would create the package build directory for all packages. "
@@ -1585,7 +1711,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:686
+#: debhelper.pod:749
msgid ""
"The helpers B<dh_installdocs>, B<dh_installexamples>, B<dh_installinfo>, and "
"B<dh_installman> now error out if their config has a pattern that does not "
@@ -1593,7 +1719,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:690
+#: debhelper.pod:753
msgid ""
"Known exceptions include building with the B<nodoc> profile, where the above "
"tools will silently permit failed matches where the patterns are used to "
@@ -1601,7 +1727,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:696
+#: debhelper.pod:759
msgid ""
"The helpers B<dh_installdocs>, B<dh_installexamples>, B<dh_installinfo>, and "
"B<dh_installman> now accept the parameter B<--sourcedir> with same meaning "
@@ -1610,14 +1736,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:701
+#: debhelper.pod:764
msgid ""
"Migration note: A bug in debhelper 11 up to 11.1.5 made B<dh_installinfo> "
"incorrectly ignore B<--sourcedir>."
msgstr ""
#. type: textblock
-#: debhelper.pod:706
+#: debhelper.pod:769
msgid ""
"The B<perl-makemaker> and B<perl-build> build systems no longer pass B<-I.> "
"to perl. Packages that still need this behaviour can emulate it by using "
@@ -1626,7 +1752,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:713
+#: debhelper.pod:776
msgid ""
"The B<PERL_USE_UNSAFE_INC> environment variable is no longer set by B<dh> or "
"any of the B<dh_auto_*> tools. It was added as a temporary work around to "
@@ -1634,7 +1760,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:718
+#: debhelper.pod:781
msgid ""
"Note this item will eventually become obsolete as upstream intends to drop "
"support for the B<PERL_USE_UNSAFE_INC> environment variable. When perl "
@@ -1643,14 +1769,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:725
+#: debhelper.pod:788
msgid ""
"The B<dh_makeshlibs> helper will now exit with an error if objdump returns a "
"non-zero exit from analysing a given file."
msgstr ""
#. type: textblock
-#: debhelper.pod:730
+#: debhelper.pod:793
msgid ""
"The B<dh_installdocs> and B<dh_installexamples> tools may now install "
"I<most> of the documentation in a different path to comply with the "
@@ -1658,7 +1784,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:734
+#: debhelper.pod:797
msgid ""
"Note that if a given source package only contains a single binary package in "
"F<debian/control> or none of the packages are I<-doc> packages, then this "
@@ -1667,7 +1793,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:739
+#: debhelper.pod:802
msgid ""
"By default, these tools will now attempt to determine a \"main package for "
"the documentation\" (called a I<doc-main-package> from here on) for every I<-"
@@ -1678,7 +1804,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:747
+#: debhelper.pod:810
msgid ""
"The B<--doc-main-package> option can be used when the auto-detection is "
"insufficient or to reset the path to its previous value if there is a reason "
@@ -1686,7 +1812,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:751
+#: debhelper.pod:814
msgid ""
"Some documentation will not be affected by this change. These exceptions "
"include the copyright file, changelog files, README.Debian, etc. These "
@@ -1694,7 +1820,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:758
+#: debhelper.pod:821
msgid ""
"The B<dh_strip> and B<dh_shlibdeps> tools no longer uses filename patterns "
"to determine which files to process. Instead, they open the file and look "
@@ -1703,37 +1829,32 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:763
+#: debhelper.pod:826
msgid "This change may cause the tools to process more files than previously."
msgstr ""
#. type: =item
-#: debhelper.pod:767
+#: debhelper.pod:830
#, fuzzy
#| msgid "v10"
msgid "v12"
msgstr "v10"
+# type: textblock
#. type: textblock
-#: debhelper.pod:769
-#, fuzzy
-#| msgid ""
-#| "This compatibility level is still open for development; use with caution."
-msgid ""
-"This compatibility level is still open for development; use with caution."
-msgstr ""
-"Este nivel de compatibilidad aún está en desarrollo, utilícelo con "
-"precaución."
+#: debhelper.pod:832
+msgid "This is the recommended mode of operation."
+msgstr "Este es el modo de operación aconsejado."
#. type: textblock
-#: debhelper.pod:771
+#: debhelper.pod:834
#, fuzzy
#| msgid "Changes from v3 are:"
msgid "Changes from v11 are:"
msgstr "Los cambios desde el nivel v3 son:"
#. type: textblock
-#: debhelper.pod:777
+#: debhelper.pod:840
msgid ""
"The B<dh_makeshlibs> tool now generates shlibs files with versioned "
"dependency by default. This means that B<-VUpstream-Version> (a.k.a. B<-V>) "
@@ -1741,7 +1862,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:781
+#: debhelper.pod:844
msgid ""
"If an unversioned dependency in the shlibs file is wanted, this can be "
"obtained by passing B<-VNone> instead. However, please see "
@@ -1750,7 +1871,7 @@ msgstr ""
# type: =item
#. type: textblock
-#: debhelper.pod:787
+#: debhelper.pod:850
#, fuzzy
#| msgid "B<-s>, B<--same-arch>"
msgid ""
@@ -1759,20 +1880,20 @@ msgid ""
msgstr "B<-s>, B<--same-arch>"
#. type: textblock
-#: debhelper.pod:791
+#: debhelper.pod:854
msgid ""
"Invoking B<dh_clean -k> now causes an error instead of a deprecation warning."
msgstr ""
#. type: textblock
-#: debhelper.pod:796
+#: debhelper.pod:859
msgid ""
"The B<--no-restart-on-upgrade> option in B<dh_installinit> has been "
"removed. Please use the new name B<--no-stop-on-upgrade>"
msgstr ""
#. type: textblock
-#: debhelper.pod:801
+#: debhelper.pod:864
msgid ""
"There was a bug in the B<doit> (and similar) functions from L<Debian::"
"Debhelper::Dh_Lib> that made them spawn a shell in one particular "
@@ -1781,7 +1902,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:808
+#: debhelper.pod:871
msgid ""
"The B<--list-missing> and B<--fail-missing> in B<dh_install> has been "
"removed. Please use B<dh_missing> and its corresponding options, which can "
@@ -1789,7 +1910,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:814
+#: debhelper.pod:877
msgid ""
"The B<dh_installinit> helper no longer installs configuration for the "
"upstart init system. Instead, it will abort the build if it finds an old "
@@ -1799,7 +1920,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:822
+#: debhelper.pod:885
msgid ""
"The B<dh_installdeb> tool will do basic validation of some L<dpkg-"
"maintscript-helper(1)> commands and will error out if the commands appear to "
@@ -1807,26 +1928,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:828
+#: debhelper.pod:891
msgid "The B<dh_missing> tool will now default to B<--list-missing>."
msgstr ""
#. type: textblock
-#: debhelper.pod:832
+#: debhelper.pod:895
msgid ""
"The B<dh_makeshlibs> tool will now only pass libraries to L<dpkg-"
"gensymbols(1)> if the ELF binary has a SONAME (containing \".so\")."
msgstr ""
#. type: textblock
-#: debhelper.pod:837
+#: debhelper.pod:900
msgid ""
"The B<dh_compress> tool no longer compresses examples (i.e. anything "
"installed in F<</usr/share/doc/I<package>/examples>>.)"
msgstr ""
#. type: textblock
-#: debhelper.pod:842
+#: debhelper.pod:905
msgid ""
"The standard sequence in B<dh> now includes B<dh_dwz> and "
"B<dh_installinitramfs> by default. This makes the B<dwz> and "
@@ -1836,7 +1957,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:851
+#: debhelper.pod:914
msgid ""
"The build systems B<meson> and B<autoconf> no longer explicitly set the B<--"
"libexecdir> variable and thus relies on the build system default - which "
@@ -1844,7 +1965,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:856
+#: debhelper.pod:919
msgid ""
"If a particular upstream package does not use the correct default, the "
"parameter can often be passed manually via L<dh_auto_configure(1)>. E.g. "
@@ -1852,7 +1973,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: debhelper.pod:860
+#: debhelper.pod:923
#, fuzzy, no-wrap
#| msgid ""
#| "\toverride_dh_auto_configure:\n"
@@ -1868,13 +1989,130 @@ msgstr ""
"\n"
#. type: textblock
-#: debhelper.pod:863
+#: debhelper.pod:926
msgid "Note the B<--> before the B<--libexecdir> parameter."
msgstr ""
+#. type: textblock
+#: debhelper.pod:930
+msgid ""
+"The B<dh_installdeb> tool no longer installs the maintainer provided "
+"F<conffiles> file. The file has mostly been obsolete since compatibility "
+"level 3, where B<dh_installdeb> began to automatically compute the resulting "
+"F<conffiles> control file."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:937
+msgid ""
+"The B<dh_installsystemd> tool no longer relies on B<dh_installinit> for "
+"handling systemd services that have a sysvinit alternative. Both tools must "
+"now be used in such a case to ensure the service is properly started under "
+"both sysvinit and systemd."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:942
+msgid ""
+"If you have an override for B<dh_installinit> (e.g. to call it with B<--no-"
+"start>) then you will probably need one for B<dh_installsystemd> as well now."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:946
+msgid ""
+"This change makes B<dh_installinit> inject a I<misc:Pre-Depends> for B<< "
+"init-system-helpers (>= 1.54~) >>. Please ensure that the package lists B<"
+"${misc:Pre-Depends}> in its B<Pre-Depends> field before upgrading to compat "
+"12."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:953
+msgid ""
+"The third-party B<dh_golang> tool (from B<dh-golang> package) now defaults "
+"on honoring B<DH_GOLANG_EXCLUDES> variable for source installation in -dev "
+"packages and not only during the building process. Please set "
+"B<DH_GOLANG_EXCLUDES_ALL> to false to revert to the previous behaviour. See "
+"B<Debian::Debhelper::Buildsystem::golang(3pm)> for details and examples."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:961
+msgid ""
+"B<dh_installsystemduser> is now included in the B<dh> standard sequence by "
+"default."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:966
+msgid ""
+"The B<python-distutils> buildsystem is now removed. Please use the third-"
+"party build system B<pybuild> instead."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:971
+#, fuzzy
+#| msgid "v10"
+msgid "v13"
+msgstr "v10"
+
+#. type: textblock
+#: debhelper.pod:973 strings-kept-translations.pod:9
+#, fuzzy
+#| msgid ""
+#| "This compatibility level is still open for development; use with caution."
+msgid ""
+"This compatibility level is still open for development; use with caution."
+msgstr ""
+"Este nivel de compatibilidad aún está en desarrollo, utilícelo con "
+"precaución."
+
+#. type: textblock
+#: debhelper.pod:975
+#, fuzzy
+#| msgid "Changes from v3 are:"
+msgid "Changes from v12 are:"
+msgstr "Los cambios desde el nivel v3 son:"
+
+#. type: textblock
+#: debhelper.pod:981
+msgid ""
+"The B<meson+ninja> build system now uses B<meson test> instead of B<ninja "
+"test> when running the test suite. Any override of B<dh_auto_test> that "
+"passes extra parameters to upstream test runner should be reviewed as "
+"B<meson test> is not command line compatible with B<ninja test>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:989
+msgid ""
+"All debhelper like tools based on the official debhelper library (including "
+"B<dh> and the official B<dh_*> tools) no longer accepts abbreviated command "
+"parameters. At the same time, B<dh> now optimizes out calls to redundant "
+"B<dh_*> helpers even when passed long command line options."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:997
+msgid ""
+"The ELF related debhelper tools (B<dh_dwz>, B<dh_strip>, B<dh_makeshlibs>, "
+"B<dh_shlibdeps>) are now only run for arch dependent packages by default (i."
+"e. they are excluded from B<*-indep> targets and are passed B<-a> by "
+"default)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:1002
+msgid ""
+"If you need them for B<*-indep> targets, you can add an explicit Build-"
+"Depends on B<dh-sequence-elf-tools>."
+msgstr ""
+
# type: =head1
#. type: =head1
-#: debhelper.pod:869 dh_auto_test:48 dh_dwz:57 dh_installcatalogs:64
+#: debhelper.pod:1009 dh_auto_test:48 dh_dwz:69 dh_installcatalogs:64
#: dh_installdocs:192 dh_installemacsen:75 dh_installexamples:89
#: dh_installinit:205 dh_installinitramfs:53 dh_installman:128
#: dh_installmodules:57 dh_installudev:50 dh_installwm:63 dh_installxfonts:40
@@ -1885,13 +2123,13 @@ msgstr "NOTAS"
# type: =head2
#. type: =head2
-#: debhelper.pod:871
+#: debhelper.pod:1011
msgid "Multiple binary package support"
msgstr "Compatibilidad con varios paquetes binarios"
# type: textblock
#. type: textblock
-#: debhelper.pod:873
+#: debhelper.pod:1013
msgid ""
"If your source package generates more than one binary package, debhelper "
"programs will default to acting on all binary packages when run. If your "
@@ -1912,7 +2150,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:881
+#: debhelper.pod:1021
#, fuzzy
#| msgid ""
#| "To facilitate this, as well as give you more control over which packages "
@@ -1934,7 +2172,7 @@ msgstr ""
"los paquetes listados en el fichero de control."
#. type: textblock
-#: debhelper.pod:887
+#: debhelper.pod:1027
msgid ""
"First, any package whose B<Architecture> field in B<debian/control> does not "
"match the B<DEB_HOST_ARCH> architecture will be excluded (L<Debian Policy, "
@@ -1942,7 +2180,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:891
+#: debhelper.pod:1031
msgid ""
"Also, some additional packages may be excluded based on the contents of the "
"B<DEB_BUILD_PROFILES> environment variable and B<Build-Profiles> fields in "
@@ -1951,12 +2189,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: debhelper.pod:896
+#: debhelper.pod:1036
msgid "Interaction between package selections and Build-Profiles"
msgstr ""
#. type: textblock
-#: debhelper.pod:898
+#: debhelper.pod:1038
msgid ""
"Build-Profiles affect which packages are included in the package selections "
"mechanisms in debhelper. Generally, the package selections are described "
@@ -1966,19 +2204,19 @@ msgid ""
msgstr ""
#. type: =item
-#: debhelper.pod:906
+#: debhelper.pod:1046
msgid "-a/--arch, -i/--indep OR no selection options (a raw \"dh_X\" call)"
msgstr ""
#. type: textblock
-#: debhelper.pod:908
+#: debhelper.pod:1048
msgid ""
"The package disabled by Build-Profiles is silently excluded from the "
"selection."
msgstr ""
#. type: textblock
-#: debhelper.pod:911
+#: debhelper.pod:1051
msgid ""
"Note you will receive a warning if I<all> packages related to these "
"selections are disabled. In that case, it generally does not make sense to "
@@ -1987,32 +2225,32 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:915
+#: debhelper.pod:1055
#, fuzzy
#| msgid "B<-N>I<package>, B<--no-package=>I<package>"
msgid "-N I<package> / --no-package I<package>"
msgstr "B<-N>I<paquete>, B<--no-package=>I<paquete>"
#. type: textblock
-#: debhelper.pod:917
+#: debhelper.pod:1057
msgid "The option is accepted and effectively does nothing."
msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:919
+#: debhelper.pod:1059
#, fuzzy
#| msgid "B<-p>I<package>, B<--package=>I<package>"
msgid "-p I<package> / --package I<package>"
msgstr "B<-p>I<paquete>, B<--package=>I<paquete>"
#. type: textblock
-#: debhelper.pod:921
+#: debhelper.pod:1061
msgid "The option is accepted, but debhelper will not act on the package."
msgstr ""
#. type: textblock
-#: debhelper.pod:925
+#: debhelper.pod:1065
msgid ""
"Note that it does not matter whether a package is enabled or disabled by "
"default."
@@ -2020,13 +2258,13 @@ msgstr ""
# type: =head2
#. type: =head2
-#: debhelper.pod:928
+#: debhelper.pod:1068
msgid "Automatic generation of Debian install scripts"
msgstr "Generación automática de los scripts de instalación de Debian"
# type: textblock
#. type: textblock
-#: debhelper.pod:930
+#: debhelper.pod:1070
msgid ""
"Some debhelper commands will automatically generate parts of Debian "
"maintainer scripts. If you want these automatically generated things "
@@ -2044,7 +2282,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:937
+#: debhelper.pod:1077
msgid ""
"If a script does not exist at all and debhelper needs to add something to "
"it, then debhelper will create the complete script."
@@ -2054,7 +2292,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:940
+#: debhelper.pod:1080
msgid ""
"All debhelper commands that automatically generate code in this way let it "
"be disabled by the -n parameter (see above)."
@@ -2064,7 +2302,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:943
+#: debhelper.pod:1083
msgid ""
"Note that the inserted code will be shell code, so you cannot directly use "
"it in a Perl script. If you would like to embed it into a Perl script, here "
@@ -2077,7 +2315,7 @@ msgstr ""
"caso comprobé que $1, $2, etc se definen con la orden «set»):"
#. type: verbatim
-#: debhelper.pod:948
+#: debhelper.pod:1088
#, no-wrap
msgid ""
" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
@@ -2097,12 +2335,12 @@ msgstr ""
# type: =head2
#. type: =head2
-#: debhelper.pod:961
+#: debhelper.pod:1101
msgid "Automatic generation of miscellaneous dependencies."
msgstr "Generación automática de diversas dependencias."
#. type: textblock
-#: debhelper.pod:963
+#: debhelper.pod:1103
msgid ""
"Some debhelper commands may make the generated package need to depend on "
"some other packages. For example, if you use L<dh_installdebconf(1)>, your "
@@ -2122,7 +2360,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:971
+#: debhelper.pod:1111
msgid ""
"All commands of this type, besides documenting what dependencies may be "
"needed on their man pages, will automatically generate a substvar called B<"
@@ -2137,7 +2375,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:976
+#: debhelper.pod:1116
msgid ""
"This is entirely independent of the standard B<${shlibs:Depends}> generated "
"by L<dh_makeshlibs(1)>, and the B<${perl:Depends}> generated by "
@@ -2151,13 +2389,13 @@ msgstr ""
# type: =head2
#. type: =head2
-#: debhelper.pod:981
+#: debhelper.pod:1121
msgid "Package build directories"
msgstr "Directorios de construcción del paquete"
# type: textblock
#. type: textblock
-#: debhelper.pod:983
+#: debhelper.pod:1123
msgid ""
"By default, all debhelper programs assume that the temporary directory used "
"for assembling the tree of files in a package is debian/I<package>."
@@ -2168,7 +2406,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:986
+#: debhelper.pod:1126
msgid ""
"Sometimes, you might want to use some other temporary directory. This is "
"supported by the B<-P> flag. For example, \"B<dh_installdocs -Pdebian/tmp>"
@@ -2188,13 +2426,13 @@ msgstr ""
# type: =head2
#. type: =head2
-#: debhelper.pod:994
+#: debhelper.pod:1134
msgid "udebs"
msgstr "udebs"
# type: textblock
#. type: textblock
-#: debhelper.pod:996
+#: debhelper.pod:1136
msgid ""
"Debhelper includes support for udebs. To create a udeb with debhelper, add "
"\"B<Package-Type: udeb>\" to the package's stanza in F<debian/control>. "
@@ -2213,12 +2451,12 @@ msgstr ""
# type: =head1
#. type: =head1
-#: debhelper.pod:1003
+#: debhelper.pod:1143
msgid "ENVIRONMENT"
msgstr "ENTORNO"
#. type: textblock
-#: debhelper.pod:1005
+#: debhelper.pod:1145
msgid ""
"The following environment variables can influence the behavior of "
"debhelper. It is important to note that these must be actual environment "
@@ -2229,13 +2467,13 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:1013
+#: debhelper.pod:1153
msgid "B<DH_VERBOSE>"
msgstr "B<DH_VERBOSE>"
# type: textblock
#. type: textblock
-#: debhelper.pod:1015
+#: debhelper.pod:1155
#, fuzzy
#| msgid ""
#| "Set to B<1> to enable verbose mode. Debhelper will output every command "
@@ -2250,14 +2488,14 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:1018
+#: debhelper.pod:1158
#, fuzzy
#| msgid "B<DH_COMPAT>"
msgid "B<DH_QUIET>"
msgstr "B<DH_COMPAT>"
#. type: textblock
-#: debhelper.pod:1020
+#: debhelper.pod:1160
msgid ""
"Set to B<1> to enable quiet mode. Debhelper will not output commands calling "
"the upstream build system nor will dh print which subcommands are called and "
@@ -2268,41 +2506,46 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:1027
+#: debhelper.pod:1167
msgid "B<DH_COMPAT>"
msgstr "B<DH_COMPAT>"
# type: textblock
#. type: textblock
-#: debhelper.pod:1029
+#: debhelper.pod:1169
+#, fuzzy
+#| msgid ""
+#| "Temporarily specifies what compatibility level debhelper should run at, "
+#| "overriding any value in F<debian/compat>."
msgid ""
"Temporarily specifies what compatibility level debhelper should run at, "
-"overriding any value in F<debian/compat>."
+"overriding any value specified via Build-Depends on debhelper-compat or via "
+"the F<debian/compat> file."
msgstr ""
"Especifica temporalmente bajo qué nivel de compatibilidad debe actuar "
"debhelper, ignorando cualquier valor en F<debian/compat>."
# type: =item
#. type: =item
-#: debhelper.pod:1032
+#: debhelper.pod:1173
msgid "B<DH_NO_ACT>"
msgstr "B<DH_NO_ACT>"
# type: textblock
#. type: textblock
-#: debhelper.pod:1034
+#: debhelper.pod:1175
msgid "Set to B<1> to enable no-act mode."
msgstr "Defina como B<1> para habilitar el modo no-act."
# type: =item
#. type: =item
-#: debhelper.pod:1036
+#: debhelper.pod:1177
msgid "B<DH_OPTIONS>"
msgstr "B<DH_OPTIONS>"
# type: textblock
#. type: textblock
-#: debhelper.pod:1038
+#: debhelper.pod:1179
msgid ""
"Anything in this variable will be prepended to the command line arguments of "
"all debhelper commands."
@@ -2311,7 +2554,7 @@ msgstr ""
"de órdenes de todas las órdenes de debhelper."
#. type: textblock
-#: debhelper.pod:1041
+#: debhelper.pod:1182
msgid ""
"When using L<dh(1)>, it can be passed options that will be passed on to each "
"debhelper command, which is generally better than using DH_OPTIONS."
@@ -2321,13 +2564,13 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:1044
+#: debhelper.pod:1185
msgid "B<DH_ALWAYS_EXCLUDE>"
msgstr "B<DH_ALWAYS_EXCLUDE>"
# type: textblock
#. type: textblock
-#: debhelper.pod:1046
+#: debhelper.pod:1187
msgid ""
"If set, this adds the value the variable is set to to the B<-X> options of "
"all commands that support the B<-X> option. Moreover, B<dh_builddeb> will "
@@ -2339,7 +2582,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:1050
+#: debhelper.pod:1191
msgid ""
"This can be useful if you are doing a build from a CVS source tree, in which "
"case setting B<DH_ALWAYS_EXCLUDE=CVS> will prevent any CVS directories from "
@@ -2357,7 +2600,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:1057
+#: debhelper.pod:1198
msgid ""
"Multiple things to exclude can be separated with colons, as in "
"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
@@ -2367,14 +2610,14 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:1060
+#: debhelper.pod:1201
#, fuzzy
#| msgid "B<DH_OPTIONS>"
msgid "B<DH_EXTRA_ADDONS>"
msgstr "B<DH_OPTIONS>"
#. type: textblock
-#: debhelper.pod:1062
+#: debhelper.pod:1203
msgid ""
"If set, this adds the specified dh addons to be run in the appropriate "
"places in the sequence of commands. This is equivalent to specifying the "
@@ -2383,7 +2626,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:1067
+#: debhelper.pod:1208
msgid ""
"This is intended to be used by downstreams or specific local configurations "
"that require a debhelper addon to be run during multiple builds without "
@@ -2391,41 +2634,59 @@ msgid ""
"should be avoided in favor of a --with flag in the rules file."
msgstr ""
+#. type: =item
+#: debhelper.pod:1213
+msgid ""
+"B<CFLAGS>, B<CPPFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, "
+"B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS>, B<LDFLAGS>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:1215
+msgid ""
+"By default (in any non-deprecated compat level), debhelper will "
+"automatically set these flags by using L<dpkg-buildflags(1)>, when they are "
+"unset. If you need to change the default flags, please use the features "
+"from L<dpkg-buildflags(1)> to do this (e.g. "
+"B<DEB_BUILD_MAINT_OPTIONS=hardening=all> or B<DEB_CPPFLAGS_MAINT_APPEND=-"
+"DCUSTOM_MACRO=true>) rather than setting the concrete variable directly."
+msgstr ""
+
# type: =head1
#. type: =head1
-#: debhelper.pod:1074 debhelper-obsolete-compat.pod:118 dh:1093
+#: debhelper.pod:1224 debhelper-obsolete-compat.pod:118 dh:1220
#: dh_auto_build:53 dh_auto_clean:55 dh_auto_configure:58 dh_auto_install:97
-#: dh_auto_test:64 dh_bugfiles:133 dh_builddeb:182 dh_clean:185 dh_compress:236
-#: dh_dwz:141 dh_fixperms:162 dh_gconf:101 dh_gencontrol:207 dh_icons:75
-#: dh_install:350 dh_installcatalogs:125 dh_installchangelogs:300
-#: dh_installcron:78 dh_installdeb:266 dh_installdebconf:128 dh_installdirs:128
-#: dh_installdocs:444 dh_installemacsen:137 dh_installexamples:175
-#: dh_installifupdown:72 dh_installinfo:107 dh_installinit:406
-#: dh_installinitramfs:86 dh_installlogcheck:81 dh_installlogrotate:53
-#: dh_installman:362 dh_installmanpages:198 dh_installmenu:88 dh_installmime:63
-#: dh_installmodules:109 dh_installpam:62 dh_installppp:68 dh_installudev:100
-#: dh_installwm:127 dh_installxfonts:96 dh_link:163 dh_lintian:60
-#: dh_listpackages:35 dh_makeshlibs:355 dh_md5sums:117 dh_movefiles:161
-#: dh_perl:159 dh_prep:70 dh_shlibdeps:199 dh_strip:426 dh_testdir:63
-#: dh_testroot:91 dh_usrlocal:136 dh_systemd_enable:281 dh_systemd_start:269
+#: dh_auto_test:64 dh_bugfiles:133 dh_builddeb:182 dh_clean:186 dh_compress:242
+#: dh_dwz:161 dh_fixperms:164 dh_gconf:105 dh_gencontrol:207 dh_icons:75
+#: dh_install:350 dh_installcatalogs:125 dh_installchangelogs:302
+#: dh_installcron:78 dh_installdeb:410 dh_installdebconf:128 dh_installdirs:128
+#: dh_installdocs:444 dh_installemacsen:138 dh_installexamples:175
+#: dh_installifupdown:72 dh_installinfo:107 dh_installinit:425
+#: dh_installinitramfs:85 dh_installlogcheck:81 dh_installlogrotate:53
+#: dh_installman:384 dh_installmanpages:198 dh_installmenu:88 dh_installmime:63
+#: dh_installmodules:109 dh_installpam:62 dh_installppp:68 dh_installudev:102
+#: dh_installwm:129 dh_installxfonts:90 dh_link:163 dh_lintian:60
+#: dh_listpackages:35 dh_makeshlibs:456 dh_md5sums:117 dh_movefiles:161
+#: dh_perl:171 dh_prep:70 dh_shlibdeps:204 dh_strip:432 dh_testdir:63
+#: dh_testroot:91 dh_usrlocal:136 dh_systemd_enable:281 dh_systemd_start:280
msgid "SEE ALSO"
msgstr "VÉASE TAMBIÉN"
# type: =item
#. type: =item
-#: debhelper.pod:1078
+#: debhelper.pod:1228
msgid "F</usr/share/doc/debhelper/examples/>"
msgstr "F</usr/share/doc/debhelper/examples/>"
# type: textblock
#. type: textblock
-#: debhelper.pod:1080
+#: debhelper.pod:1230
msgid "A set of example F<debian/rules> files that use debhelper."
msgstr "Varios ficheros de ejemplo F<debian/rules> que utilizan debhelper."
# type: =item
#. type: =item
-#: debhelper.pod:1082
+#: debhelper.pod:1232
#, fuzzy
#| msgid "L<http://kitenet.net/~joey/code/debhelper/>"
msgid "L<http://joeyh.name/code/debhelper/>"
@@ -2433,43 +2694,44 @@ msgstr "L<http://kitenet.net/~joey/code/debhelper/>"
# type: textblock
#. type: textblock
-#: debhelper.pod:1084
+#: debhelper.pod:1234
msgid "Debhelper web site."
msgstr "Sitio web de Debhelper."
# type: =head1
#. type: =head1
-#: debhelper.pod:1088 dh:1099 dh_auto_build:59 dh_auto_clean:61
+#: debhelper.pod:1238 dh:1226 dh_auto_build:59 dh_auto_clean:61
#: dh_auto_configure:64 dh_auto_install:103 dh_auto_test:70 dh_bugfiles:141
-#: dh_builddeb:188 dh_clean:191 dh_compress:242 dh_dwz:147 dh_fixperms:168
-#: dh_gconf:107 dh_gencontrol:213 dh_icons:81 dh_install:356
-#: dh_installcatalogs:131 dh_installchangelogs:306 dh_installcron:84
-#: dh_installdeb:272 dh_installdebconf:134 dh_installdirs:134
-#: dh_installdocs:450 dh_installemacsen:144 dh_installexamples:181
-#: dh_installifupdown:78 dh_installinfo:113 dh_installlogcheck:87
-#: dh_installlogrotate:59 dh_installman:368 dh_installmanpages:204
-#: dh_installmenu:96 dh_installmime:69 dh_installmodules:115 dh_installpam:68
-#: dh_installppp:74 dh_installudev:106 dh_installwm:133 dh_installxfonts:102
-#: dh_link:169 dh_lintian:68 dh_listpackages:41 dh_makeshlibs:361
-#: dh_md5sums:123 dh_movefiles:167 dh_perl:165 dh_prep:76 dh_shlibdeps:205
-#: dh_strip:432 dh_testdir:69 dh_testroot:97 dh_usrlocal:142
+#: dh_builddeb:188 dh_clean:192 dh_compress:248 dh_dwz:167 dh_fixperms:170
+#: dh_gconf:111 dh_gencontrol:213 dh_icons:81 dh_install:356
+#: dh_installcatalogs:131 dh_installchangelogs:308 dh_installcron:84
+#: dh_installdeb:416 dh_installdebconf:134 dh_installdirs:134
+#: dh_installdocs:450 dh_installemacsen:145 dh_installexamples:181
+#: dh_installifupdown:78 dh_installinfo:113 dh_installinitramfs:93
+#: dh_installlogcheck:87 dh_installlogrotate:59 dh_installman:390
+#: dh_installmanpages:204 dh_installmenu:96 dh_installmime:69
+#: dh_installmodules:115 dh_installpam:68 dh_installppp:74 dh_installudev:108
+#: dh_installwm:135 dh_installxfonts:96 dh_link:169 dh_lintian:68
+#: dh_listpackages:41 dh_makeshlibs:462 dh_md5sums:123 dh_movefiles:167
+#: dh_perl:177 dh_prep:76 dh_shlibdeps:210 dh_strip:438 dh_testdir:69
+#: dh_testroot:97 dh_usrlocal:142
msgid "AUTHOR"
msgstr "AUTOR"
# type: textblock
#. type: textblock
-#: debhelper.pod:1090 dh:1101 dh_auto_build:61 dh_auto_clean:63
+#: debhelper.pod:1240 dh:1228 dh_auto_build:61 dh_auto_clean:63
#: dh_auto_configure:66 dh_auto_install:105 dh_auto_test:72 dh_builddeb:190
-#: dh_clean:193 dh_compress:244 dh_fixperms:170 dh_gencontrol:215
-#: dh_install:358 dh_installchangelogs:308 dh_installcron:86 dh_installdeb:274
+#: dh_clean:194 dh_compress:250 dh_fixperms:172 dh_gencontrol:215
+#: dh_install:358 dh_installchangelogs:310 dh_installcron:86 dh_installdeb:418
#: dh_installdebconf:136 dh_installdirs:136 dh_installdocs:452
-#: dh_installemacsen:146 dh_installexamples:183 dh_installifupdown:80
-#: dh_installinfo:115 dh_installinit:414 dh_installlogrotate:61
-#: dh_installman:370 dh_installmanpages:206 dh_installmenu:98 dh_installmime:71
-#: dh_installmodules:117 dh_installpam:70 dh_installppp:76 dh_installudev:108
-#: dh_installwm:135 dh_installxfonts:104 dh_link:171 dh_listpackages:43
-#: dh_makeshlibs:363 dh_md5sums:125 dh_movefiles:169 dh_prep:78
-#: dh_shlibdeps:207 dh_strip:434 dh_testdir:71 dh_testroot:99
+#: dh_installemacsen:147 dh_installexamples:183 dh_installifupdown:80
+#: dh_installinfo:115 dh_installinit:433 dh_installlogrotate:61
+#: dh_installman:392 dh_installmanpages:206 dh_installmenu:98 dh_installmime:71
+#: dh_installmodules:117 dh_installpam:70 dh_installppp:76 dh_installudev:110
+#: dh_installwm:137 dh_installxfonts:98 dh_link:171 dh_listpackages:43
+#: dh_makeshlibs:464 dh_md5sums:125 dh_movefiles:169 dh_prep:78
+#: dh_shlibdeps:212 dh_strip:440 dh_testdir:71 dh_testroot:99
msgid "Joey Hess <joeyh@debian.org>"
msgstr "Joey Hess <joeyh@debian.org>"
@@ -2670,31 +2932,31 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper-obsolete-compat.pod:120 dh:1095 dh_auto_build:55 dh_auto_clean:57
+#: debhelper-obsolete-compat.pod:120 dh:1222 dh_auto_build:55 dh_auto_clean:57
#: dh_auto_configure:60 dh_auto_install:99 dh_auto_test:66 dh_builddeb:184
-#: dh_clean:187 dh_compress:238 dh_dwz:143 dh_fixperms:164 dh_gconf:103
+#: dh_clean:188 dh_compress:244 dh_dwz:163 dh_fixperms:166 dh_gconf:107
#: dh_gencontrol:209 dh_install:352 dh_installcatalogs:127
-#: dh_installchangelogs:302 dh_installcron:80 dh_installdeb:268
+#: dh_installchangelogs:304 dh_installcron:80 dh_installdeb:412
#: dh_installdebconf:130 dh_installdirs:130 dh_installdocs:446
#: dh_installexamples:177 dh_installifupdown:74 dh_installinfo:109
-#: dh_installlogcheck:83 dh_installlogrotate:55 dh_installman:364
+#: dh_installlogcheck:83 dh_installlogrotate:55 dh_installman:386
#: dh_installmanpages:200 dh_installmime:65 dh_installmodules:111
-#: dh_installpam:64 dh_installppp:70 dh_installudev:102 dh_installwm:129
-#: dh_installxfonts:98 dh_link:165 dh_listpackages:37 dh_makeshlibs:357
-#: dh_md5sums:119 dh_movefiles:163 dh_perl:161 dh_prep:72 dh_strip:428
-#: dh_testdir:65 dh_testroot:93 dh_usrlocal:138 dh_systemd_start:271
+#: dh_installpam:64 dh_installppp:70 dh_installudev:104 dh_installwm:131
+#: dh_installxfonts:92 dh_link:165 dh_listpackages:37 dh_makeshlibs:458
+#: dh_md5sums:119 dh_movefiles:163 dh_perl:173 dh_prep:72 dh_strip:434
+#: dh_testdir:65 dh_testroot:93 dh_usrlocal:138 dh_systemd_start:282
msgid "L<debhelper(7)>"
msgstr "L<debhelper(7)>"
# type: =head1
#. type: =head1
-#: debhelper-obsolete-compat.pod:122 dh_installinit:412 dh_systemd_enable:285
-#: dh_systemd_start:273
+#: debhelper-obsolete-compat.pod:122 dh_installinit:431 dh_systemd_enable:285
+#: dh_systemd_start:284
msgid "AUTHORS"
msgstr "AUTORES"
#. type: textblock
-#: debhelper-obsolete-compat.pod:124 dh_dwz:149
+#: debhelper-obsolete-compat.pod:124 dh_dwz:169 dh_installinitramfs:95
msgid "Niels Thykier <niels@thykier.net>"
msgstr ""
@@ -2709,7 +2971,7 @@ msgid "dh - debhelper command sequencer"
msgstr "dh - Secuenciador de órdenes de debhelper"
#. type: textblock
-#: dh:18
+#: dh:22
msgid ""
"B<dh> I<sequence> [B<--with> I<addon>[B<,>I<addon> ...]] [B<--list>] "
"[S<I<debhelper options>>]"
@@ -2718,7 +2980,7 @@ msgstr ""
"[S<I<opciones-de-debhelper>>]"
#. type: textblock
-#: dh:22
+#: dh:26
msgid ""
"B<dh> runs a sequence of debhelper commands. The supported I<sequence>s "
"correspond to the targets of a F<debian/rules> file: B<build-arch>, B<build-"
@@ -2731,12 +2993,12 @@ msgstr ""
"B<install-arch>, B<install>, B<binary-arch>, B<binary-indep>, y B<binary>."
#. type: =head1
-#: dh:27
+#: dh:31
msgid "OVERRIDE TARGETS"
msgstr "OBJETIVOS «OVERRIDE»"
#. type: textblock
-#: dh:29
+#: dh:33
msgid ""
"A F<debian/rules> file using B<dh> can override the command that is run at "
"any step in a sequence, by defining an override target."
@@ -2746,7 +3008,7 @@ msgstr ""
"«override»."
#. type: textblock
-#: dh:32
+#: dh:36
#, fuzzy
#| msgid ""
#| "To override I<dh_command>, add a target named B<override_>I<dh_command> "
@@ -2771,7 +3033,7 @@ msgstr ""
"la versión 7.0.50 o superior de debhelper."
#. type: textblock
-#: dh:38
+#: dh:42
msgid ""
"Override targets can also be defined to run only when building architecture "
"dependent or architecture independent packages. Use targets with names like "
@@ -2788,29 +3050,29 @@ msgstr ""
# type: =head1
#. type: =head1
-#: dh:45 dh_auto_build:32 dh_auto_clean:33 dh_auto_configure:35
+#: dh:49 dh_auto_build:32 dh_auto_clean:33 dh_auto_configure:35
#: dh_auto_install:46 dh_auto_test:34 dh_bugfiles:53 dh_builddeb:34 dh_clean:47
#: dh_compress:52 dh_dwz:26 dh_fixperms:40 dh_gconf:42 dh_gencontrol:38
#: dh_icons:33 dh_install:66 dh_installcatalogs:53 dh_installchangelogs:73
-#: dh_installcron:43 dh_installdebconf:64 dh_installdirs:42 dh_installdocs:90
-#: dh_installemacsen:56 dh_installexamples:41 dh_installifupdown:42
-#: dh_installinfo:38 dh_installinit:78 dh_installinitramfs:43
-#: dh_installlogcheck:45 dh_installlogrotate:25 dh_installman:83
-#: dh_installmanpages:43 dh_installmenu:44 dh_installmodules:41
-#: dh_installpam:34 dh_installppp:38 dh_installudev:34 dh_installwm:38
-#: dh_link:66 dh_makeshlibs:52 dh_md5sums:31 dh_movefiles:41 dh_perl:34
-#: dh_prep:29 dh_shlibdeps:30 dh_strip:38 dh_testdir:26 dh_usrlocal:50
-#: dh_systemd_enable:83 dh_systemd_start:33
+#: dh_installcron:43 dh_installdeb:98 dh_installdebconf:64 dh_installdirs:42
+#: dh_installdocs:90 dh_installemacsen:56 dh_installexamples:41
+#: dh_installifupdown:42 dh_installinfo:38 dh_installinit:78
+#: dh_installinitramfs:43 dh_installlogcheck:45 dh_installlogrotate:25
+#: dh_installman:83 dh_installmanpages:43 dh_installmenu:44
+#: dh_installmodules:41 dh_installpam:34 dh_installppp:38 dh_installudev:34
+#: dh_installwm:38 dh_link:66 dh_makeshlibs:67 dh_md5sums:31 dh_movefiles:41
+#: dh_perl:34 dh_prep:29 dh_shlibdeps:30 dh_strip:38 dh_testdir:26
+#: dh_usrlocal:50 dh_systemd_enable:83 dh_systemd_start:33
msgid "OPTIONS"
msgstr "OPCIONES"
#. type: =item
-#: dh:49
+#: dh:53
msgid "B<--with> I<addon>[B<,>I<addon> ...]"
msgstr "B<--with> I<extensión>[B<,>I<extensión>,...]"
#. type: textblock
-#: dh:51
+#: dh:55
msgid ""
"Add the debhelper commands specified by the given addon to appropriate "
"places in the sequence of commands that is run. This option can be repeated "
@@ -2827,26 +3089,45 @@ msgstr ""
"de secuencia consulte el fichero F<PROGRAMMING>."
#. type: textblock
-#: dh:58
+#: dh:62
msgid ""
"A B<Build-Depends> relation on the package B<dh-sequence->I<addon> implies a "
"B<--with> I<addon>. This avoids the need for an explicit B<--with> in "
"F<debian/rules> that only duplicates what is already declared via the build "
-"dependencies in F<debian/control>. Note that only relations in the B<Build-"
-"Depends> field are considered (i.e. B<Build-Depends-Indep> and B<Build-"
-"Depends-Arch> are deliberately unsupported). Please keep in mind that B<dh> "
-"insists on \"simple\" relations (e.g. a relation like \"B<dh-sequence-"
-">I<addon> | B<some-other-pkg>\" will I<not> imply B<--with> I<addon>)."
+"dependencies in F<debian/control>. The relation can (since 12.5) be made "
+"optional via e.g. build-profiles. This enables you to easily disable an "
+"addon that is only useful with certain profiles (e.g. to facilitate "
+"bootstraping)."
+msgstr ""
+
+#. type: textblock
+#: dh:71
+msgid ""
+"Since debhelper 12.5, addons can also be activated in B<indep>-only mode "
+"(via B<Build-Depends-Indep>) or B<arch>-only mode (via B<Build-Depends-"
+"Arch>). Such addons are only active in the particular sequence (e.g. "
+"B<binary-indep>) which simplifies dependency management for cross-builds."
+msgstr ""
+
+#. type: textblock
+#: dh:77
+msgid ""
+"Please note that addons activated via B<Build-Depends-Indep> or B<Build-"
+"Depends-Arch> are subject to additional limitations to ensure the result is "
+"deterministic even when the addon is unavailable (e.g. during clean). This "
+"implies that some addons are incompatible with these restrictions and can "
+"only be used via B<Build-Depends> (or manually via F<debian/rules>). "
+"Currently, such addons can only add commands to sequences."
msgstr ""
# type: =item
#. type: =item
-#: dh:68
+#: dh:85
msgid "B<--without> I<addon>"
msgstr "B<--without> I<extensión>"
#. type: textblock
-#: dh:70
+#: dh:87
msgid ""
"The inverse of B<--with>, disables using the given addon. This option can be "
"repeated more than once, or multiple addons to disable can be listed, "
@@ -2857,19 +3138,19 @@ msgstr ""
"extensiones que desactivar."
#. type: textblock
-#: dh:76
+#: dh:93
msgid "List all available addons."
msgstr "Lista todas las extensiones disponibles."
#. type: textblock
-#: dh:78
+#: dh:95
msgid ""
"When called only with this option, B<dh> can be called from any directory (i."
"e. it does not need access to files from a source package)."
msgstr ""
#. type: textblock
-#: dh:84
+#: dh:101
msgid ""
"Prints commands that would run for a given sequence, but does not run them."
msgstr ""
@@ -2877,14 +3158,14 @@ msgstr ""
"ejecuta."
#. type: textblock
-#: dh:86
+#: dh:103
msgid ""
"Note that dh normally skips running commands that it knows will do nothing. "
"With --no-act, the full list of commands in a sequence is printed."
msgstr ""
#. type: textblock
-#: dh:91
+#: dh:108
msgid ""
"Other options passed to B<dh> are passed on to each command it runs. This "
"can be used to set an option like B<-v> or B<-X> or B<-N>, as well as for "
@@ -2896,13 +3177,13 @@ msgstr ""
# type: =head1
#. type: =head1
-#: dh:95 dh_installdocs:181 dh_installman:114 dh_link:88 dh_makeshlibs:155
+#: dh:112 dh_installdocs:181 dh_installman:114 dh_link:88 dh_makeshlibs:185
#: dh_shlibdeps:78
msgid "EXAMPLES"
msgstr "EJEMPLOS"
#. type: textblock
-#: dh:97
+#: dh:114
msgid ""
"To see what commands are included in a sequence, without actually doing "
"anything:"
@@ -2911,7 +3192,7 @@ msgstr ""
"realidad:"
#. type: verbatim
-#: dh:100
+#: dh:117
#, no-wrap
msgid ""
"\tdh binary-arch --no-act\n"
@@ -2921,7 +3202,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:102
+#: dh:119
msgid ""
"This is a very simple rules file, for packages where the default sequences "
"of commands work with no additional options."
@@ -2930,7 +3211,7 @@ msgstr ""
"predeterminadas de órdenes funcionan sin opciones adicionales."
#. type: verbatim
-#: dh:105 dh:126 dh:139
+#: dh:122 dh:129 dh:143 dh:156 dh:213 dh:224
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2944,7 +3225,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:109
+#: dh:126
msgid ""
"Often you'll want to pass an option to a specific debhelper command. The "
"easy way to do with is by adding an override target for that command."
@@ -2954,33 +3235,23 @@ msgstr ""
"para esa orden."
#. type: verbatim
-#: dh:112 dh:196 dh:207
-#, no-wrap
-msgid ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@\n"
-"\t\n"
-msgstr ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@\n"
-"\t\n"
-
-#. type: verbatim
-#: dh:116
-#, no-wrap
+#: dh:133
+#, fuzzy, no-wrap
+#| msgid ""
+#| "\toverride_dh_strip:\n"
+#| "\t\tdh_strip -Xfoo\n"
+#| "\t\n"
msgid ""
"\toverride_dh_strip:\n"
"\t\tdh_strip -Xfoo\n"
-"\t\n"
+"\n"
msgstr ""
"\toverride_dh_strip:\n"
"\t\tdh_strip -Xfoo\n"
"\t\n"
#. type: verbatim
-#: dh:119
+#: dh:136
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -2992,7 +3263,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:122
+#: dh:139
msgid ""
"Sometimes the automated L<dh_auto_configure(1)> and L<dh_auto_build(1)> "
"can't guess what to do for a strange package. Here's how to avoid running "
@@ -3004,7 +3275,7 @@ msgstr ""
"ejecutar sus propias órdenes."
#. type: verbatim
-#: dh:130
+#: dh:147
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -3016,7 +3287,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:133
+#: dh:150
#, no-wrap
msgid ""
"\toverride_dh_auto_build:\n"
@@ -3028,7 +3299,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:136
+#: dh:153
msgid ""
"Another common case is wanting to do something manually before or after a "
"particular debhelper command is run."
@@ -3037,7 +3308,7 @@ msgstr ""
"se ejecute una orden en particular de debhelper."
#. type: verbatim
-#: dh:143
+#: dh:160
#, no-wrap
msgid ""
"\toverride_dh_fixperms:\n"
@@ -3051,7 +3322,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:147
+#: dh:164
#, fuzzy
#| msgid ""
#| "Python tools are not run by dh by default, due to the continual change in "
@@ -3067,7 +3338,7 @@ msgstr ""
"B<dh_python2>."
#. type: verbatim
-#: dh:150
+#: dh:167
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -3081,7 +3352,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:154
+#: dh:171
msgid ""
"Here is how to force use of Perl's B<Module::Build> build system, which can "
"be necessary if debhelper wrongly detects that the package uses MakeMaker."
@@ -3091,7 +3362,7 @@ msgstr ""
"detecta erróneamente que el paquete utiliza MakeMaker."
#. type: verbatim
-#: dh:158
+#: dh:175
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -3105,7 +3376,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:162
+#: dh:179
msgid ""
"Here is an example of overriding where the B<dh_auto_>I<*> commands find the "
"package's source, for a package where the source is located in a "
@@ -3116,7 +3387,7 @@ msgstr ""
"en el que las fuentes se ubican en un subdirectorio."
#. type: verbatim
-#: dh:166
+#: dh:183
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -3130,7 +3401,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:170
+#: dh:187
msgid ""
"And here is an example of how to tell the B<dh_auto_>I<*> commands to build "
"in a subdirectory, which will be removed on B<clean>."
@@ -3140,7 +3411,7 @@ msgstr ""
"B<clean>."
#. type: verbatim
-#: dh:173
+#: dh:190
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -3154,7 +3425,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:177
+#: dh:194
#, fuzzy
#| msgid ""
#| "If your package can be built in parallel, you can support parallel "
@@ -3168,7 +3439,7 @@ msgstr ""
"j> funcionará."
#. type: verbatim
-#: dh:180
+#: dh:197
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -3182,14 +3453,14 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:184
+#: dh:201
msgid ""
"If your package cannot be built reliably while using multiple threads, "
"please pass B<--no-parallel> to dh (or the relevant B<dh_auto_>I<*> command):"
msgstr ""
#. type: verbatim
-#: dh:189
+#: dh:206
#, fuzzy, no-wrap
#| msgid ""
#| "\t#!/usr/bin/make -f\n"
@@ -3208,7 +3479,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:193
+#: dh:210
msgid ""
"Here is a way to prevent B<dh> from running several commands that you don't "
"want it to run, by defining empty override targets for each command."
@@ -3218,7 +3489,7 @@ msgstr ""
"cada orden."
#. type: verbatim
-#: dh:200
+#: dh:217
#, no-wrap
msgid ""
"\t# Commands not to run:\n"
@@ -3230,7 +3501,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:203
+#: dh:220
msgid ""
"A long build process for a separate documentation package can be separated "
"out using architecture independent overrides. These will be skipped when "
@@ -3241,7 +3512,7 @@ msgstr ""
"omiten al ejecutar las secuencias build-arch y binary-arch."
#. type: verbatim
-#: dh:211
+#: dh:228
#, no-wrap
msgid ""
"\toverride_dh_auto_build-indep:\n"
@@ -3253,7 +3524,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:214
+#: dh:231
#, no-wrap
msgid ""
"\t# No tests needed for docs\n"
@@ -3265,7 +3536,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:217
+#: dh:234
#, no-wrap
msgid ""
"\toverride_dh_auto_install-indep:\n"
@@ -3277,7 +3548,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:220
+#: dh:237
msgid ""
"Adding to the example above, suppose you need to chmod a file, but only when "
"building the architecture dependent package, as it's not present when "
@@ -3288,7 +3559,7 @@ msgstr ""
"arquitectura, ya que no está presente cuando solo se construye documentación."
#. type: verbatim
-#: dh:224
+#: dh:241
#, no-wrap
msgid ""
"\toverride_dh_fixperms-arch:\n"
@@ -3302,12 +3573,12 @@ msgstr ""
"\n"
#. type: =head1
-#: dh:228
+#: dh:245
msgid "INTERNALS"
msgstr "FUNCIONAMIENTO INTERNO"
#. type: textblock
-#: dh:230
+#: dh:247
msgid ""
"If you're curious about B<dh>'s internals, here's how it works under the "
"hood."
@@ -3316,7 +3587,7 @@ msgstr ""
"puede ver como funciona por dentro."
#. type: textblock
-#: dh:232
+#: dh:249
msgid ""
"In compat 10 (or later), B<dh> creates a stamp file F<debian/debhelper-build-"
"stamp> after the build step(s) are complete to avoid re-running them. It is "
@@ -3327,7 +3598,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:240
+#: dh:257
msgid ""
"Inside an override target, B<dh_*> commands will create a log file F<debian/"
"package.debhelper.log> to keep track of which packages the command(s) have "
@@ -3336,7 +3607,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:245
+#: dh:262
#, fuzzy
#| msgid ""
#| "Each debhelper command will record when it's successfully run in F<debian/"
@@ -3355,7 +3626,7 @@ msgstr ""
"esas órdenes otra vez."
#. type: textblock
-#: dh:250
+#: dh:267
#, fuzzy
#| msgid ""
#| "Each time B<dh> is run, it examines the log, and finds the last logged "
@@ -3365,9 +3636,7 @@ msgstr ""
msgid ""
"Each time B<dh> is run (in compat 9 or earlier), it examines the log, and "
"finds the last logged command that is in the specified sequence. It then "
-"continues with the next command in the sequence. The B<--until>, B<--"
-"before>, B<--after>, and B<--remaining> options can override this behavior "
-"(though they were removed in compat 10)."
+"continues with the next command in the sequence."
msgstr ""
"Cada vez que se ejecuta B<dh>, comprueba el registro y encuentra la última "
"orden registrada contenida en la secuencia especificada. Después, continua "
@@ -3375,7 +3644,7 @@ msgstr ""
"before>, B<--after> y B<--remaining> pueden anular este comportamiento."
#. type: textblock
-#: dh:256
+#: dh:271
msgid ""
"A sequence can also run dependent targets in debian/rules. For example, the "
"\"binary\" sequence runs the \"install\" target."
@@ -3385,7 +3654,7 @@ msgstr ""
"ejecuta el objeto «install»."
#. type: textblock
-#: dh:259
+#: dh:274
msgid ""
"B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass "
"information through to debhelper commands that are run inside override "
@@ -3398,7 +3667,7 @@ msgstr ""
"entorno, como el nombre sugiere, está sujeto a cambios en cualquier momento."
#. type: textblock
-#: dh:264
+#: dh:279
msgid ""
"Commands in the B<build-indep>, B<install-indep> and B<binary-indep> "
"sequences are passed the B<-i> option to ensure they only work on "
@@ -3413,98 +3682,21 @@ msgstr ""
"B<binary-arch> para asegurar que sólo actúan sobre paquetes dependientes de "
"la arquitectura."
-#. type: =head1
-#: dh:270
-msgid "DEPRECATED OPTIONS"
-msgstr "OPCIONES OBSOLETAS"
-
-#. type: textblock
-#: dh:272
-#, fuzzy
-#| msgid ""
-#| "The following options are deprecated. It's much better to use override "
-#| "targets instead."
-msgid ""
-"The following options are deprecated. It's much better to use override "
-"targets instead. They are B<not> available in compat 10."
-msgstr ""
-"Las siguientes opciones están obsoletas. Se recomienda utilizar en su lugar "
-"objetivos «override»."
-
-# type: =item
-#. type: =item
-#: dh:278
-msgid "B<--until> I<cmd>"
-msgstr "B<--until> I<orden>"
-
-#. type: textblock
-#: dh:280
-msgid "Run commands in the sequence until and including I<cmd>, then stop."
-msgstr ""
-"Ejecuta las órdenes en la secuencia hasta la I<orden>, incluido, y cierra."
-
-# type: =item
-#. type: =item
-#: dh:282
-msgid "B<--before> I<cmd>"
-msgstr "B<--before> I<orden>"
-
-#. type: textblock
-#: dh:284
-msgid "Run commands in the sequence before I<cmd>, then stop."
-msgstr "Ejecuta las órdenes en la secuencia anteriores a I<orden>, y cierra."
-
-# type: =item
-#. type: =item
-#: dh:286
-msgid "B<--after> I<cmd>"
-msgstr "B<--after> I<orden>"
-
-#. type: textblock
-#: dh:288
-msgid "Run commands in the sequence that come after I<cmd>."
-msgstr "Ejecuta las órdenes en la secuencia posteriores a I<orden>."
-
-# type: =item
-#. type: =item
-#: dh:290
-msgid "B<--remaining>"
-msgstr "B<--remaining>"
-
-#. type: textblock
-#: dh:292
-msgid "Run all commands in the sequence that have yet to be run."
-msgstr "Ejecuta todas las órdenes en la secuencia que aún no se han ejecutado."
-
-#. type: textblock
-#: dh:296
-msgid ""
-"In the above options, I<cmd> can be a full name of a debhelper command, or a "
-"substring. It'll first search for a command in the sequence exactly matching "
-"the name, to avoid any ambiguity. If there are multiple substring matches, "
-"the last one in the sequence will be used."
-msgstr ""
-"En las opciones anteriores, I<orden> puede ser el nombre completo de una "
-"orden de debhelper, o una subcadena. Buscará en primer lugar una orden en la "
-"secuencia que coincide totalmente con el nombre, para evitar cualquier "
-"ambigüedad. Si hay muchas coincidencias con la subcadena se utilizará la "
-"última en la secuencia."
-
# type: textblock
#. type: textblock
-#: dh:1097 dh_auto_build:57 dh_auto_clean:59 dh_auto_configure:62
+#: dh:1224 dh_auto_build:57 dh_auto_clean:59 dh_auto_configure:62
#: dh_auto_install:101 dh_auto_test:68 dh_bugfiles:139 dh_builddeb:186
-#: dh_clean:189 dh_compress:240 dh_dwz:145 dh_fixperms:166 dh_gconf:105
-#: dh_gencontrol:211 dh_icons:79 dh_install:354 dh_installchangelogs:304
-#: dh_installcron:82 dh_installdeb:270 dh_installdebconf:132 dh_installdirs:132
-#: dh_installdocs:448 dh_installemacsen:142 dh_installexamples:179
-#: dh_installifupdown:76 dh_installinfo:111 dh_installinit:410
-#: dh_installinitramfs:92 dh_installlogrotate:57 dh_installman:366
+#: dh_clean:190 dh_compress:246 dh_dwz:165 dh_fixperms:168 dh_gconf:109
+#: dh_gencontrol:211 dh_icons:79 dh_install:354 dh_installchangelogs:306
+#: dh_installcron:82 dh_installdeb:414 dh_installdebconf:132 dh_installdirs:132
+#: dh_installdocs:448 dh_installemacsen:143 dh_installexamples:179
+#: dh_installifupdown:76 dh_installinfo:111 dh_installinit:429
+#: dh_installinitramfs:91 dh_installlogrotate:57 dh_installman:388
#: dh_installmanpages:202 dh_installmenu:94 dh_installmime:67
-#: dh_installmodules:113 dh_installpam:66 dh_installppp:72 dh_installudev:104
-#: dh_installwm:131 dh_installxfonts:100 dh_link:167 dh_lintian:64
-#: dh_listpackages:39 dh_makeshlibs:359 dh_md5sums:121 dh_movefiles:165
-#: dh_perl:163 dh_prep:74 dh_shlibdeps:203 dh_strip:430 dh_testdir:67
+#: dh_installmodules:113 dh_installpam:66 dh_installppp:72 dh_installudev:106
+#: dh_installwm:133 dh_installxfonts:94 dh_link:167 dh_lintian:64
+#: dh_listpackages:39 dh_makeshlibs:460 dh_md5sums:121 dh_movefiles:165
+#: dh_perl:175 dh_prep:74 dh_shlibdeps:208 dh_strip:436 dh_testdir:67
#: dh_testroot:95 dh_usrlocal:140
msgid "This program is a part of debhelper."
msgstr "Este programa es parte de debhelper."
@@ -3565,8 +3757,8 @@ msgstr ""
# type: =item
#. type: =item
#: dh_auto_build:39 dh_auto_clean:40 dh_auto_configure:42 dh_auto_install:59
-#: dh_auto_test:41 dh_builddeb:48 dh_dwz:50 dh_gencontrol:42
-#: dh_installdebconf:72 dh_installinit:167 dh_makeshlibs:149 dh_shlibdeps:41
+#: dh_auto_test:41 dh_builddeb:48 dh_dwz:62 dh_gencontrol:42
+#: dh_installdebconf:72 dh_installinit:167 dh_makeshlibs:179 dh_shlibdeps:41
msgid "B<--> I<params>"
msgstr "B<--> I<parámetros>"
@@ -3905,7 +4097,7 @@ msgstr ""
#: dh_installinfo:28 dh_installinit:41 dh_installinitramfs:30
#: dh_installlogcheck:24 dh_installman:73 dh_installmenu:28 dh_installmime:24
#: dh_installmodules:31 dh_installpam:24 dh_installppp:24 dh_installudev:24
-#: dh_installwm:28 dh_link:46 dh_lintian:24 dh_makeshlibs:29 dh_movefiles:29
+#: dh_installwm:28 dh_link:46 dh_lintian:24 dh_makeshlibs:44 dh_movefiles:29
#: dh_systemd_enable:41
msgid "FILES"
msgstr "FICHEROS"
@@ -4005,6 +4197,10 @@ msgstr "dh_builddeb - Construye paquetes binarios de Debian"
# type: textblock
#. type: textblock
#: dh_builddeb:19
+#, fuzzy
+#| msgid ""
+#| "B<dh_builddeb> [S<I<debhelper options>>] [B<--destdir=>I<directory>] [B<--"
+#| "filename=>I<name>] [S<B<--> I<params>>]"
msgid ""
"B<dh_builddeb> [S<I<debhelper options>>] [B<--destdir=>I<directory>] [B<--"
"filename=>I<name>] [S<B<--> I<params>>]"
@@ -4414,29 +4610,47 @@ msgstr ""
#: dh_dwz:32
msgid ""
"Whether L<dwz(1)> should generate a I<multifile> from the ELF binaries in "
-"the same package (it does by default). When enabled, if a package ships at "
-"least 2 ELF binaries, B<dh_dwz> will instruct L<dwz(1)> to generate a "
-"multifile for the package."
+"the same package. When enabled, if a package ships at least 2 ELF binaries, "
+"B<dh_dwz> will instruct L<dwz(1)> to generate a multifile for the package."
msgstr ""
#. type: textblock
#: dh_dwz:37
msgid ""
+"By default, B<dh_dwz> will attempt to create a multifile but will continue "
+"without if L<dwz(1)> does create one (but succeeds anyway). This commonly "
+"happens when the debug files do not contain debug symbols (e.g. a missing -g "
+"to the compiler) or when the debug symbols are compressed (see Debian bug "
+"#931891). If B<--dwz-multifile> is passed, then B<dh_dwz> will abort with "
+"an error if L<dwz(1)> does not create a multifile."
+msgstr ""
+
+#. type: textblock
+#: dh_dwz:45
+msgid ""
"Note this options may not work if a package contains more ELF binaries than "
"can fit on a single command line. If this becomes a problem, please pass "
"B<--no-dwz-multifile> to work around the issue."
msgstr ""
#. type: textblock
-#: dh_dwz:41
+#: dh_dwz:49
msgid ""
"The generated multifile will be compressed with B<objcopy --compress-debug-"
"sections>."
msgstr ""
+#. type: textblock
+#: dh_dwz:52
+msgid ""
+"Note for B<udeb> packages: B<dh_dwz> will never generate multifiles for "
+"B<udeb> packages. It will still use B<dwz> to reduce the file size of debug "
+"files if it finds any."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_dwz:46 dh_strip:44
+#: dh_dwz:58 dh_strip:44
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"stripped. You may use this option multiple times to build up a list of "
@@ -4447,7 +4661,7 @@ msgstr ""
"cosas a excluir."
#. type: textblock
-#: dh_dwz:52
+#: dh_dwz:64
msgid ""
"Pass I<params> to L<dwz(1)> when it processes ELF binaries. This is mostly "
"useful for setting memory related parameters (e.g. -l and -L)."
@@ -4455,7 +4669,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_dwz:59
+#: dh_dwz:71
#, fuzzy
#| msgid ""
#| "If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
@@ -4470,7 +4684,7 @@ msgstr ""
"eliminará nada, conforme a las normas de Debian (sección 10.1 «Binarios»)."
#. type: textblock
-#: dh_dwz:63
+#: dh_dwz:75
msgid ""
"While this tool technically does not remove debug information from binaries, "
"it is still skipped when the B<DEB_BUILD_OPTIONS> environment variable "
@@ -4569,7 +4783,10 @@ msgstr ""
# type: textblock
#. type: textblock
#: dh_gconf:5
-msgid "dh_gconf - install GConf defaults files and register schemas"
+#, fuzzy
+#| msgid "dh_gconf - install GConf defaults files and register schemas"
+msgid ""
+"dh_gconf - install GConf defaults files and register schemas (deprecated)"
msgstr ""
"dh_gconf - Instala ficheros de valores predeterminados de GConf y registra "
"esquemas"
@@ -4651,7 +4868,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_gconf:109
+#: dh_gconf:113
msgid "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
msgstr "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
@@ -4788,7 +5005,7 @@ msgstr ""
#. type: =item
#: dh_icons:37 dh_installcatalogs:57 dh_installdebconf:68 dh_installemacsen:60
#: dh_installinit:82 dh_installinitramfs:47 dh_installmenu:48
-#: dh_installmodules:45 dh_installwm:48 dh_makeshlibs:132 dh_usrlocal:54
+#: dh_installmodules:45 dh_installwm:48 dh_makeshlibs:147 dh_usrlocal:54
msgid "B<-n>, B<--no-scripts>"
msgstr "B<-n>, B<--no-scripts>"
@@ -5564,66 +5781,78 @@ msgstr "Estos scripts de desarrollador se instalan en el directorio F<DEBIAN>."
#. type: textblock
#: dh_installdeb:39
msgid ""
-"Inside the scripts, the token B<#DEBHELPER#> is replaced with shell script "
-"snippets generated by other debhelper commands."
+"B<dh_installdeb> will perform substitution of known tokens of the pattern "
+"B<#TOKEN#>. In generally, scripts will want to include the B<#DEBHELPER#> "
+"to benefit from the shell scripts generated by debhelper commands (including "
+"those from B<dh_installdeb> when it processes I<package>.maintscript files)"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:45
+#, fuzzy
+#| msgid ""
+#| "Inside the scripts, the token B<#DEBHELPER#> is replaced with shell "
+#| "script snippets generated by other debhelper commands."
+msgid ""
+"For more information on what tokens Inside the scripts, the token "
+"B<#DEBHELPER#> is replaced with shell script snippets generated by other "
+"debhelper commands."
msgstr ""
"Dentro de los scripts, el comodín B<#DEBHELPER#> es reemplazado con "
"fragmentos de scripts de consola generados por otras órdenes de debhelper."
#. type: =item
-#: dh_installdeb:42
+#: dh_installdeb:49
msgid "I<package>.triggers"
msgstr "I<paquete>.triggers"
# type: =item
#. type: =item
-#: dh_installdeb:44
+#: dh_installdeb:51
msgid "I<package>.shlibs"
msgstr "I<paquete>.shlibs"
# type: textblock
#. type: textblock
-#: dh_installdeb:46
+#: dh_installdeb:53
msgid "These control files are installed into the F<DEBIAN> directory."
msgstr "Estos ficheros de control se instalan en el directorio F<DEBIAN>."
#. type: textblock
-#: dh_installdeb:48
+#: dh_installdeb:55
msgid ""
"Note that I<package>.shlibs is only installed in compat level 9 and "
"earlier. In compat 10, please use L<dh_makeshlibs(1)>."
msgstr ""
#. type: =item
-#: dh_installdeb:51
+#: dh_installdeb:58
msgid "I<package>.conffiles"
msgstr "I<paquete>.conffiles"
-# type: textblock
#. type: textblock
-#: dh_installdeb:53
-msgid "This control file will be installed into the F<DEBIAN> directory."
-msgstr "Este fichero de control se instalan en el directorio F<DEBIAN>."
+#: dh_installdeb:60
+msgid ""
+"Historically, this file was needed to manually mark files files as "
+"conffiles. However, it has become de facto obsolete since debhelper "
+"automatically computed which files should be marked as conffiles."
+msgstr ""
-# type: textblock
#. type: textblock
-#: dh_installdeb:55
+#: dh_installdeb:64
msgid ""
-"In v3 compatibility mode and higher, all files in the F<etc/> directory in a "
-"package will automatically be flagged as conffiles by this program, so there "
-"is no need to list them manually here."
+"In compatibility level up and including 11, this control file will be "
+"installed into the F<DEBIAN> directory. In compatibility level 12 and "
+"later, the file is silently ignored."
msgstr ""
-"En el modo de compatibilidad v3 o superior, todos los ficheros en el "
-"directorio F<etc/> del paquete se marcarán automáticamente como conffiles "
-"por este programa, así que no hay necesidad de listarlos aquí manualmente."
#. type: =item
-#: dh_installdeb:59
+#: dh_installdeb:68
msgid "I<package>.maintscript"
msgstr "I<paquete>.maintscript"
#. type: textblock
-#: dh_installdeb:61
+#: dh_installdeb:70
msgid ""
"Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands and "
"parameters. However, the \"maint-script-parameters\" should I<not> be "
@@ -5631,12 +5860,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdeb:65
+#: dh_installdeb:74
msgid "Example:"
msgstr ""
#. type: verbatim
-#: dh_installdeb:67
+#: dh_installdeb:76
#, no-wrap
msgid ""
" # Correct\n"
@@ -5647,7 +5876,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdeb:72
+#: dh_installdeb:81
#, fuzzy
#| msgid ""
#| "Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands "
@@ -5670,7 +5899,7 @@ msgstr ""
"scripts de mantenedor necesario, para así poder mover ese «conffile»."
#. type: textblock
-#: dh_installdeb:78
+#: dh_installdeb:87
msgid ""
"It was also the intention to escape shell metacharacters in previous compat "
"levels. However, it did not work properly and as such it was possible to "
@@ -5678,13 +5907,218 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdeb:82
+#: dh_installdeb:91
msgid ""
"The B<dh_installdeb> tool will do some basic validation of some of the "
"commands listed in this file to catch common mistakes. The validation is "
"enabled as a warning since compat 10 and as a hard error in compat 12."
msgstr ""
+#. type: =item
+#: dh_installdeb:102
+msgid "B<-D>I<TOKEN=VALUE>, B<--define> I<TOKEN=VALUE>"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:104
+msgid ""
+"Define tokens to be replaced inside the maintainer scripts when it is "
+"generated. Please note that the limitations described in L</Limitations in "
+"token names> also applies to tokens defined on the command line. Invalid "
+"token names will trigger an error."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:109
+msgid ""
+"In the simple case, this parameter will cause B<< #I<TOKEN># >> to be "
+"replaced by I<VALUE>. If I<VALUE> starts with a literal I<@>-sign, then "
+"I<VALUE> is expected to point to a file containing the actual value to "
+"insert."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:114
+msgid ""
+"An explicit declared token with this parameter will replace built-in tokens."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:117
+msgid "Test examples to aid with the understanding:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:119
+#, no-wrap
+msgid ""
+"\tcat >> debian/postinst <<EOF\n"
+"\t#SIMPLE#\n"
+"\t#FILEBASED#\n"
+"\tEOF\n"
+"\techo -n \"Complex value\" > some-file\n"
+" dh_installdeb --define SIMPLE=direct --define FILEBASED=@some-file\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:126
+msgid ""
+"In this example, B<#SIMPLE#> will expand to B<direct> and B<#FILEBASED#> "
+"will expand to B<Complex value>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:129
+msgid ""
+"It is also possible to do set package-specific values for a given token. "
+"This is useful when B<dh_installdeb> is acting on multiple packages that "
+"need different values for the same token. This is done by prefixing the "
+"token name with B<< pkg.I<package-name>. >>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:134
+msgid "This can be used as in the following example:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:136
+#, no-wrap
+msgid ""
+"\tcat >> debian/foo.postinst <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/bar.postinst <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/baz.postinst <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+" dh_installdeb -pfoo -pbar -pbaz --define TOKEN=default --define pkg.bar.TOKEN=unique-bar-value \\\n"
+" --define pkg.baz.TOKEN=unique-baz-value\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:151
+msgid ""
+"In this example, B<#TOKEN#> will expand to B<default> in F<debian/foo."
+"postinst>, to B<unique-bar-value> in F<debian/bar.postinst> and to B<unique-"
+"baz-value> in F<debian/baz.postinst>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:155
+msgid ""
+"Note that the B<#pkg.*#> tokens will be visible in all scripts acted on. E."
+"g. you can refer to B<#pkg.bar.TOKEN#> inside F<debian/foo.postinst> and it "
+"will be replaced by B<unique-bar-value>."
+msgstr ""
+
+#. type: =head1
+#: dh_installdeb:161
+msgid "SUBSTITUTION IN MAINTAINER SCRIPTS"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:163
+msgid ""
+"The B<dh_installdeb> will automatically replace the following tokens inside "
+"a provided maintainer script (if not replaced via B<-D>/B<--define>):"
+msgstr ""
+
+# type: =head1
+#. type: =item
+#: dh_installdeb:168
+#, fuzzy
+#| msgid "DEBHELPER COMMANDS"
+msgid "#DEBHELPER#"
+msgstr "ÓRDENES DE DEBHELPER"
+
+#. type: textblock
+#: dh_installdeb:170
+msgid ""
+"This token is by default replaced with generated shell snippets debhelper "
+"commands. This includes the snippets generated by B<dh_installdeb> from "
+"I<package>.maintscript file (if present)."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:174
+msgid "#DEB_HOST_I<NAME>#, #DEB_BUILD_I<NAME>#, #DEB_TARGET_I<NAME>#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:176
+msgid ""
+"These tokens are replaced with the respective variable from L<dpkg-"
+"architecture(1)>. In almost all cases, you will want use the B<< "
+"#DEB_HOST_I<NAME> >> variant in a script to ensure you get the right value "
+"when cross-building."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:181
+msgid ""
+"On a best effort, tokens of this pattern that do not match a variable in "
+"L<dpkg-architecture(1)> will be left as-is."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:184
+msgid "#ENV.I<NAME>#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:186
+msgid ""
+"These tokens of this form will be replaced with value of the corresponding "
+"environment variable. If the environment variable is unset, the token is "
+"replaced with the empty string."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:191
+msgid ""
+"Note that there are limits on which names can be used (see L</Limitations in "
+"token names>)."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:194
+msgid "#PACKAGE#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:196
+msgid ""
+"This token is by default replaced the package name, which will contain the "
+"concrete script."
+msgstr ""
+
+#. type: =head2
+#: dh_installdeb:201
+msgid "Limitations in token names"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:203
+msgid ""
+"All tokens intended to be substituted must match the regex: #[A-Za-z0-9_.+]+#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:205
+msgid ""
+"Tokens that do not match that regex will be silently ignored if found in the "
+"script template. Invalid token names passed to B<-D> or B<--define> will "
+"cause B<dh_installdeb> to reject the command with an error in most cases."
+msgstr ""
+
# type: textblock
#. type: textblock
#: dh_installdebconf:5
@@ -6006,9 +6440,8 @@ msgstr ""
#: dh_installdocs:35
msgid ""
"In compat 11 and later, B<dh_installdocs> offers many of the features that "
-"L<dh_install(1)> also have. Furthermore, B<dh_installdocs> also supports "
-"the B<nodoc> build profile to exclude documentation (regardless of compat "
-"level)."
+"L<dh_install(1)> also has. Furthermore, B<dh_installdocs> also supports the "
+"B<nodoc> build profile to exclude documentation (regardless of compat level)."
msgstr ""
#. type: =item
@@ -6494,7 +6927,7 @@ msgstr ""
"omisión es B<emacs>, las alternativas son B<xemacs> y B<emacs20>."
#. type: textblock
-#: dh_installemacsen:139
+#: dh_installemacsen:140
msgid "L<debhelper(7)> L</usr/share/doc/emacsen-common/debian-emacs-policy.gz>"
msgstr ""
@@ -7229,19 +7662,19 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installinit:408
+#: dh_installinit:427
#, fuzzy
#| msgid "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
msgid "L<debhelper(7)>, L<dh_installsystemd(1)>"
msgstr "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
#. type: textblock
-#: dh_installinit:416
+#: dh_installinit:435
msgid "Steve Langasek <steve.langasek@canonical.com>"
msgstr "Steve Langasek <steve.langasek@canonical.com>"
#. type: textblock
-#: dh_installinit:418
+#: dh_installinit:437
msgid "Michael Stapelberg <stapelberg@debian.org>"
msgstr ""
@@ -7321,7 +7754,7 @@ msgstr "No modifica los scripts F<postinst>/F<postrm>."
# type: textblock
#. type: textblock
-#: dh_installinitramfs:88
+#: dh_installinitramfs:87
#, fuzzy
#| msgid "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
msgid "L<debhelper(7)> L<update-initramfs(8)> L<initramfs-tools(8)>"
@@ -7494,9 +7927,10 @@ msgstr ""
msgid ""
"In compat 10 and earlier, this program was primarily for when upstream's "
"build system does not properly install them as a part of its install step "
-"(or it does not have an install step). In compat 11 and later, it supports "
-"the same features of L<dh_install(1)> and has the advantage that it respects "
-"the B<nodoc> build profile (unlike L<dh_install(1)>)."
+"(or it does not have an install step). In compat 11 and later, it also "
+"supports the default searchdir plus --sourcedir like dh_install(1) and has "
+"the advantage that it respects the nodoc build profile (unlike "
+"dh_install(1))."
msgstr ""
#. type: textblock
@@ -8508,7 +8942,7 @@ msgstr ""
msgid ""
"In each pair the source file (called B<target> by L<ln(1)>) comes first and "
"is followed by the destination file (called B<link name> by L<ln(1)>). Thus "
-"the pairs of source and destination files in each line are give in the same "
+"the pairs of source and destination files in each line are given in the same "
"order as they would be given to L<ln(1)>."
msgstr ""
@@ -8766,15 +9200,37 @@ msgid ""
"generate a maintainer script for this purpose."
msgstr ""
+#. type: textblock
+#: dh_makeshlibs:29
+msgid ""
+"Since debhelper 12.3, B<dh_makeshlibs> will by default add an additional "
+"I<udeb> line for udebs in the shlibs file, when the udeb has the same name "
+"as the deb followed by a \"-udeb\" suffix (e.g. if the deb is called "
+"\"libfoo1\", then debhelper will auto-detect the udeb if it is named "
+"\"libfoo1-udeb\"). Please use the B<--add-udeb> and B<--no-add-udeb> options "
+"below when this auto-detection is insufficient."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:36
+msgid ""
+"If you previously used B<--add-udeb> and is considering to migrate to using "
+"the auto-detection new auto-detection feature in 12.3, then please remember "
+"to test that the resulting F<DEBIAN/shlibs> files are as expected. There "
+"are some known corner cases, where the auto-detection is insufficient. "
+"These include when the udeb contains library files from multiple regular deb "
+"packages or when the packages do not follow the expected naming convention."
+msgstr ""
+
#. type: =item
-#: dh_makeshlibs:33
+#: dh_makeshlibs:48
#, fuzzy
#| msgid "debian/I<package>.links"
msgid "debian/I<package>.shlibs"
msgstr "debian/I<paquete>.links"
#. type: textblock
-#: dh_makeshlibs:35
+#: dh_makeshlibs:50
msgid ""
"Installs this file, if present, into the package as DEBIAN/shlibs. If "
"omitted, debhelper will generate a shlibs file automatically if it detects "
@@ -8782,24 +9238,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:39
+#: dh_makeshlibs:54
msgid ""
"Note in compat levels 9 and earlier, this file was installed by "
"L<dh_installdeb(1)> rather than B<dh_makeshlibs>."
msgstr ""
#. type: =item
-#: dh_makeshlibs:42
+#: dh_makeshlibs:57
msgid "debian/I<package>.symbols"
msgstr "debian/I<paquete>.symbols"
#. type: =item
-#: dh_makeshlibs:44
+#: dh_makeshlibs:59
msgid "debian/I<package>.symbols.I<arch>"
msgstr "debian/I<paquete>.symbols.I<arquitectura>"
#. type: textblock
-#: dh_makeshlibs:46
+#: dh_makeshlibs:61
msgid ""
"These symbols files, if present, are passed to L<dpkg-gensymbols(1)> to be "
"processed and installed. Use the I<arch> specific names if you need to "
@@ -8812,13 +9268,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:56
+#: dh_makeshlibs:71
msgid "B<-m>I<major>, B<--major=>I<major>"
msgstr "B<-m>I<mayor>, B<--major=>I<mayor>"
# type: textblock
#. type: textblock
-#: dh_makeshlibs:58
+#: dh_makeshlibs:73
msgid ""
"Instead of trying to guess the major number of the library with objdump, use "
"the major number specified after the -m parameter. This is much less useful "
@@ -8833,42 +9289,42 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:63
+#: dh_makeshlibs:78
msgid "B<-V>, B<-V>I<dependencies>"
msgstr "B<-V>, B<-V>I<dependencias>"
# type: =item
#. type: =item
-#: dh_makeshlibs:65
+#: dh_makeshlibs:80
msgid "B<--version-info>, B<--version-info=>I<dependencies>"
msgstr "B<--version-info>, B<--version-info=>I<dependencias>"
#. type: textblock
-#: dh_makeshlibs:67
+#: dh_makeshlibs:82
msgid ""
"If a shlibs file is generated by this program, this option controls what "
"version will be used in the dependency relation."
msgstr ""
#. type: textblock
-#: dh_makeshlibs:70
+#: dh_makeshlibs:85
msgid ""
"In compat 12 and later, B<dh_makeshlibs> defaults to B<-VUpstream-Version>. "
"In compat 11 and earlier the default behaved like B<-VNone>.."
msgstr ""
#. type: textblock
-#: dh_makeshlibs:73
+#: dh_makeshlibs:88
msgid "The B<dh_makeshlibs> tool can generate dependencies in three variants:"
msgstr ""
#. type: =item
-#: dh_makeshlibs:77
+#: dh_makeshlibs:92
msgid "B<-VUpstream-Version>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:79
+#: dh_makeshlibs:94
msgid ""
"The dependency will be \"I<packagename> B<(E<gt>>= I<packageversion>B<)>\". "
"Note that I<Upstream-Version> is case-sensitive and must be written exactly "
@@ -8877,7 +9333,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_makeshlibs:83
+#: dh_makeshlibs:98
#, fuzzy
#| msgid ""
#| "Beware of using B<-V> without any parameters; this is a conservative "
@@ -8903,7 +9359,7 @@ msgstr ""
"su actualización."
#. type: textblock
-#: dh_makeshlibs:88
+#: dh_makeshlibs:103
msgid ""
"The flip side is that packages might end up with dependencies that are too "
"tight in some cases (note a symbols file can mitigate this issue). This is "
@@ -8912,7 +9368,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:94
+#: dh_makeshlibs:109
msgid ""
"This explicit form was added in debhelper/11.3. In previous versions, a B<-"
"V> without any dependency information was used instead (and that form still "
@@ -8921,21 +9377,21 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:98
+#: dh_makeshlibs:113
#, fuzzy
#| msgid "B<-V>"
msgid "B<-VNone>"
msgstr "B<-V>"
#. type: textblock
-#: dh_makeshlibs:100
+#: dh_makeshlibs:115
msgid ""
"The dependency will be \"I<packagename>\". Note that I<None> is case-"
"sensitive and must be written exactly as shown here."
msgstr ""
#. type: textblock
-#: dh_makeshlibs:103
+#: dh_makeshlibs:118
msgid ""
"This form is generally unsafe with the only exception being if upstream does "
"not extend the ABI in any way. However, most upstreams improve their "
@@ -8944,7 +9400,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:108
+#: dh_makeshlibs:123
msgid ""
"Alternatively, this may be sufficient if (and only if) the package uses "
"symbol versioning (see L<dpkg-gensymbols(1)>) and does I<not> build any udeb "
@@ -8954,14 +9410,14 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:113
+#: dh_makeshlibs:128
#, fuzzy
#| msgid "B<--dbg-package=>I<package>"
msgid "B<-V>I<package-relation>"
msgstr "B<--dbg-package=>I<paquete>"
#. type: textblock
-#: dh_makeshlibs:115
+#: dh_makeshlibs:130
msgid ""
"In this case, the value passed to B<-V> will be used as a dependency "
"relation. The I<package-relation> should generally be of the form \"I<some-"
@@ -8970,7 +9426,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:120
+#: dh_makeshlibs:135
msgid ""
"Note that debhelper will use the value I<as it is> with no sanity checking "
"or modification. In I<rare special> cases, this is needed to generate a "
@@ -8978,7 +9434,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:127
+#: dh_makeshlibs:142
msgid ""
"When choosing a value for this option, please keep mind that if the package "
"provides a symbols file, then that it generally preferred over the shlibs "
@@ -8987,7 +9443,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:134
+#: dh_makeshlibs:149
msgid ""
"Do not add the \"ldconfig\" trigger even if it seems like the package might "
"need it. The option is called B<--no-scripts> for historical reasons as "
@@ -8997,7 +9453,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_makeshlibs:141
+#: dh_makeshlibs:156
msgid ""
"Exclude files that contain I<item> anywhere in their filename or directory "
"from being treated as shared libraries."
@@ -9007,13 +9463,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:144
+#: dh_makeshlibs:159
msgid "B<--add-udeb=>I<udeb>"
msgstr "B<--add-udeb=>I<udeb>"
# type: textblock
#. type: textblock
-#: dh_makeshlibs:146
+#: dh_makeshlibs:161
msgid ""
"Create an additional line for udebs in the shlibs file and use I<udeb> as "
"the package name for udebs to depend on instead of the regular library "
@@ -9023,15 +9479,48 @@ msgstr ""
"utiliza I<udeb> como el nombre del paquete sobre el que dependen paquetes "
"udeb, en lugar del paquete de biblioteca habitual."
+#. type: textblock
+#: dh_makeshlibs:164
+msgid ""
+"This is option is only useful for special cases such as when debhelper "
+"cannot auto-detect package name of the udeb package, when the udeb will "
+"contain libraries from multiple deb packages, or when the udeb contains "
+"libraries B<not> present in the deb package."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: dh_makeshlibs:169
+#, fuzzy
+#| msgid "B<--add-udeb=>I<udeb>"
+msgid "B<--no-add-udeb>"
+msgstr "B<--add-udeb=>I<udeb>"
+
+#. type: textblock
+#: dh_makeshlibs:171
+msgid ""
+"Do not add any udeb lines to the shlibs file. This can be used to disable "
+"the default auto-detection of udebs."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:174
+msgid ""
+"This may be useful in case you do not want a shlibs file at all for the udeb "
+"because no package will depend on it. E.g. because adding a udeb package "
+"for the library was \"overkill\" and the library is embedded in a different "
+"udeb package."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_makeshlibs:151
+#: dh_makeshlibs:181
msgid "Pass I<params> to L<dpkg-gensymbols(1)>."
msgstr "Introduce los I<parámetros> a L<dpkg-gensymbols(1)>."
# type: =item
#. type: =item
-#: dh_makeshlibs:159
+#: dh_makeshlibs:189
#, fuzzy
#| msgid "B<dh_makeshlibs -V>"
msgid "B<dh_makeshlibs -VNone>"
@@ -9039,7 +9528,7 @@ msgstr "B<dh_makeshlibs -V>"
# type: verbatim
#. type: verbatim
-#: dh_makeshlibs:161
+#: dh_makeshlibs:191
#, no-wrap
msgid ""
"Assuming this is a package named F<libfoobar1>, generates a shlibs file that\n"
@@ -9054,7 +9543,7 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:165
+#: dh_makeshlibs:195
#, fuzzy
#| msgid "B<dh_makeshlibs -V>"
msgid "B<dh_makeshlibs -VUpstream-Version>"
@@ -9062,7 +9551,7 @@ msgstr "B<dh_makeshlibs -V>"
# type: verbatim
#. type: verbatim
-#: dh_makeshlibs:167
+#: dh_makeshlibs:197
#, no-wrap
msgid ""
"Assuming the current version of the package is 1.1-3, generates a shlibs\n"
@@ -9077,13 +9566,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:171
+#: dh_makeshlibs:201
msgid "B<dh_makeshlibs -V 'libfoobar1 (E<gt>= 1.0)'>"
msgstr "B<dh_makeshlibs -V 'libfoobar1 (E<gt>= 1.0)'>"
# type: verbatim
#. type: verbatim
-#: dh_makeshlibs:173
+#: dh_makeshlibs:203
#, no-wrap
msgid ""
"Generates a shlibs file that looks something like:\n"
@@ -9437,7 +9926,7 @@ msgstr "Normas de Perl, versión 1.20"
# type: textblock
#. type: textblock
-#: dh_perl:167
+#: dh_perl:179
msgid "Brendan O'Dea <bod@debian.org>"
msgstr "Brendan O'Dea <bod@debian.org>"
@@ -9710,7 +10199,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:201
+#: dh_shlibdeps:206
msgid "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
msgstr "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
@@ -10454,7 +10943,7 @@ msgid "L<dh_systemd_start(1)>, L<debhelper(7)>"
msgstr ""
#. type: textblock
-#: dh_systemd_enable:287 dh_systemd_start:275
+#: dh_systemd_enable:287 dh_systemd_start:286
msgid "pkg-systemd-maintainers@lists.alioth.debian.org"
msgstr ""
@@ -10578,6 +11067,114 @@ msgstr ""
"Este nivel de compatibilidad aún está en desarrollo, utilícelo con "
"precaución."
+#~ msgid "DEPRECATED OPTIONS"
+#~ msgstr "OPCIONES OBSOLETAS"
+
+#, fuzzy
+#~| msgid ""
+#~| "The following options are deprecated. It's much better to use override "
+#~| "targets instead."
+#~ msgid ""
+#~ "The following options are deprecated. It's much better to use override "
+#~ "targets instead. They are B<not> available in compat 10."
+#~ msgstr ""
+#~ "Las siguientes opciones están obsoletas. Se recomienda utilizar en su "
+#~ "lugar objetivos «override»."
+
+# type: =item
+#~ msgid "B<--until> I<cmd>"
+#~ msgstr "B<--until> I<orden>"
+
+#~ msgid "Run commands in the sequence until and including I<cmd>, then stop."
+#~ msgstr ""
+#~ "Ejecuta las órdenes en la secuencia hasta la I<orden>, incluido, y cierra."
+
+# type: =item
+#~ msgid "B<--before> I<cmd>"
+#~ msgstr "B<--before> I<orden>"
+
+#~ msgid "Run commands in the sequence before I<cmd>, then stop."
+#~ msgstr ""
+#~ "Ejecuta las órdenes en la secuencia anteriores a I<orden>, y cierra."
+
+# type: =item
+#~ msgid "B<--after> I<cmd>"
+#~ msgstr "B<--after> I<orden>"
+
+#~ msgid "Run commands in the sequence that come after I<cmd>."
+#~ msgstr "Ejecuta las órdenes en la secuencia posteriores a I<orden>."
+
+# type: =item
+#~ msgid "B<--remaining>"
+#~ msgstr "B<--remaining>"
+
+#~ msgid "Run all commands in the sequence that have yet to be run."
+#~ msgstr ""
+#~ "Ejecuta todas las órdenes en la secuencia que aún no se han ejecutado."
+
+#~ msgid ""
+#~ "In the above options, I<cmd> can be a full name of a debhelper command, "
+#~ "or a substring. It'll first search for a command in the sequence exactly "
+#~ "matching the name, to avoid any ambiguity. If there are multiple "
+#~ "substring matches, the last one in the sequence will be used."
+#~ msgstr ""
+#~ "En las opciones anteriores, I<orden> puede ser el nombre completo de una "
+#~ "orden de debhelper, o una subcadena. Buscará en primer lugar una orden en "
+#~ "la secuencia que coincide totalmente con el nombre, para evitar cualquier "
+#~ "ambigüedad. Si hay muchas coincidencias con la subcadena se utilizará la "
+#~ "última en la secuencia."
+
+#, fuzzy
+#~| msgid "dh - debhelper command sequencer"
+#~ msgid "The debhelper maintainers."
+#~ msgstr "dh - Secuenciador de órdenes de debhelper"
+
+#~ msgid ""
+#~ "\t#!/usr/bin/make -f\n"
+#~ "\t%:\n"
+#~ "\t\tdh $@\n"
+#~ "\t\n"
+#~ msgstr ""
+#~ "\t#!/usr/bin/make -f\n"
+#~ "\t%:\n"
+#~ "\t\tdh $@\n"
+#~ "\t\n"
+
+# type: verbatim
+#~ msgid ""
+#~ " % echo #RECOMMENDED_COMPAT# > debian/compat\n"
+#~ "\n"
+#~ msgstr ""
+#~ " % echo #RECOMMENDED_COMPAT# > debian/compat\n"
+#~ "\n"
+
+# type: textblock
+#~ msgid ""
+#~ "Your package will also need a versioned build dependency on a version of "
+#~ "debhelper equal to (or greater than) the compatibility level your package "
+#~ "uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/"
+#~ "control has:"
+#~ msgstr ""
+#~ "El paquete también requiere como dependencia de construcción («build-"
+#~ "depend») una versión de debhelper igual o mayor que el nivel de "
+#~ "compatibilidad de debhelper que utiliza el paquete. Por ejemplo, para "
+#~ "utilizar el nivel de compatibilidad #RECOMMENDED_COMPAT#, compruebe que "
+#~ "«debian/control» contiene lo siguiente:"
+
+# type: textblock
+#~ msgid "This control file will be installed into the F<DEBIAN> directory."
+#~ msgstr "Este fichero de control se instalan en el directorio F<DEBIAN>."
+
+# type: textblock
+#~ msgid ""
+#~ "In v3 compatibility mode and higher, all files in the F<etc/> directory "
+#~ "in a package will automatically be flagged as conffiles by this program, "
+#~ "so there is no need to list them manually here."
+#~ msgstr ""
+#~ "En el modo de compatibilidad v3 o superior, todos los ficheros en el "
+#~ "directorio F<etc/> del paquete se marcarán automáticamente como conffiles "
+#~ "por este programa, así que no hay necesidad de listarlos aquí manualmente."
+
#~ msgid ""
#~ "The syntax of these files is intentionally kept very simple to make them "
#~ "easy to read, understand, and modify. If you prefer power and complexity, "
diff --git a/man/po4a/po/fr.po b/man/po4a/po/fr.po
index 5f31dba1..cc8b3a4b 100644
--- a/man/po4a/po/fr.po
+++ b/man/po4a/po/fr.po
@@ -1,12 +1,12 @@
# Translation of debhelper manpages to French
# Valery Perrin <valery.perrin.debian@free.fr>, 2005, 2006, 2010, 2011.
# David Prévot <david@tilapin.org>, 2012-2014.
-# Baptiste Jammet <baptiste@mailoo.org>, 2015-2017.
+# Baptiste Jammet <baptiste@mailoo.org>, 2015-2017, 2019.
msgid ""
msgstr ""
"Project-Id-Version: debhelper manpages\n"
-"POT-Creation-Date: 2018-08-08 14:37+0200\n"
-"PO-Revision-Date: 2017-12-17 17:44+0100\n"
+"POT-Creation-Date: 2019-10-20 17:40+0000\n"
+"PO-Revision-Date: 2019-01-18 13:58+0100\n"
"Last-Translator: Baptiste Jammet <baptiste@mailoo.org>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
"Language: fr\n"
@@ -43,7 +43,7 @@ msgstr "debhelper - Ensemble d'outils regroupés sous le nom de debhelper"
# type: =head1
#. type: =head1
-#: debhelper.pod:7 debhelper-obsolete-compat.pod:5 dh:16 dh_auto_build:16
+#: debhelper.pod:7 debhelper-obsolete-compat.pod:5 dh:20 dh_auto_build:16
#: dh_auto_clean:16 dh_auto_configure:16 dh_auto_install:18 dh_auto_test:16
#: dh_bugfiles:15 dh_builddeb:17 dh_clean:15 dh_compress:17 dh_dwz:16
#: dh_fixperms:16 dh_gconf:15 dh_gencontrol:16 dh_icons:16 dh_install:15
@@ -73,7 +73,7 @@ msgstr ""
# type: =head1
#. type: =head1
-#: debhelper.pod:11 dh:20 dh_auto_build:20 dh_auto_clean:20
+#: debhelper.pod:11 dh:24 dh_auto_build:20 dh_auto_clean:20
#: dh_auto_configure:20 dh_auto_install:22 dh_auto_test:20 dh_bugfiles:19
#: dh_builddeb:21 dh_clean:19 dh_compress:21 dh_dwz:20 dh_fixperms:20
#: dh_gconf:19 dh_gencontrol:20 dh_icons:20 dh_install:19 dh_installcatalogs:21
@@ -109,7 +109,7 @@ msgstr ""
"automatiser les tâches courantes liées à la construction des paquets, d'où "
"un travail allégé pour le responsable. Dans une certaine mesure, cela "
"signifie également que ces outils peuvent être adaptés aux modifications "
-"éventuelles de la Charte Debian. Les paquets qui utiliseront debhelper ne "
+"éventuelles de la Charte Debian. Les paquets qui utiliseront debhelper ne "
"nécessiteront qu'une simple reconstruction pour être conformes aux nouvelles "
"règles."
@@ -151,13 +151,11 @@ msgstr ""
msgid ""
"Except where tool explicitly denotes otherwise, all of the debhelper tools "
"assumes that they run from root directory of an unpacked source package. "
-"This is so they can locate find F<debian/control> and F<debian/compat> when "
-"needed."
+"This is so they can locate find files like F<debian/control> when needed."
msgstr ""
"Sauf lorsque l'outil explicite le contraire, tous les outils debhelper sont "
"prévus pour être exécutés dans le répertoire racine d'un paquet source "
-"désarchivé. Cela leur permet de trouver les fichiers F<debian/control> et "
-"F<debian/compat>."
+"désarchivé. Cela leur permet de trouver les fichiers F<debian/control>."
# type: =head1
#. type: =head1
@@ -272,6 +270,13 @@ msgid ""
"by default installs in every binary package when it does not have a package "
"prefix (such as F<debian/copyright> or F<debian/changelog>)."
msgstr ""
+"Veuillez noter que pour le premier (ou unique) paquet binaire listé dans "
+"F<debian/control>, debhelper utilisera F<debian/toto> lorsqu'il n'y a aucun "
+"fichier F<debian/I<paquet>.toto>. Cependant, c'est une bonne idée de garder "
+"le préfixe F<I<paquet>.> car c'est plus explicite. Les principales "
+"exceptions sont les fichiers que debhelper installe par défaut dans chaque "
+"paquet binaire lorsqu'il ne trouve pas de préfixe (comme F<debian/copyright> "
+"ou F<debian/changelog>)."
# type: textblock
#. type: textblock
@@ -317,16 +322,14 @@ msgid ""
"The syntax of these files is intentionally kept very simple to make them "
"easy to read, understand, and modify."
msgstr ""
+"La syntaxe de ces fichiers est volontairement simple, pour les rendre "
+"faciles à lire, à comprendre et à modifier."
# type: textblock
#. type: =head2
#: debhelper.pod:104
-#, fuzzy
-#| msgid "Comments are ignored in debhelper config files."
msgid "Executable debhelper config files"
-msgstr ""
-"Les commentaires sont ignorés dans les fichiers de configuration de "
-"debhelper."
+msgstr "Fichiers de configuration de l'exécutable debhelper."
#. type: textblock
#: debhelper.pod:106
@@ -334,6 +337,9 @@ msgid ""
"If you need additional flexibility, many of the debhelper tools (e.g. "
"L<dh_install(1)>) support executing a config file as a script."
msgstr ""
+"Si vous avez besoin de plus de flexibilité, de nombreux outils de debhelper "
+"(par exemple L<dh_install(1)>) prennent en charge l'exécution d'un fichier "
+"de configuration comme un script."
#. type: textblock
#: debhelper.pod:109
@@ -344,6 +350,11 @@ msgid ""
"exec(1)> as interpreter of the config file to retain most of the original "
"syntax while getting the additional flexibility you need."
msgstr ""
+"Pour utiliser cette fonctionnalité, il suffit de marquer le fichier comme "
+"exécutable (B<<chmod +x debian/I<paquet>.install >>). L'outil essaiera de "
+"l'exécuter et utilisera la sortie du script. Le plus souvent, vous pouvez "
+"utiliser L<dh-exec(1)> comme interpréteur du fichier de configuration pour "
+"conserver la majorité de la syntaxe originale tout en gagnant en flexibilité."
#. type: textblock
#: debhelper.pod:117
@@ -351,6 +362,8 @@ msgid ""
"When using executable debhelper config files, please be aware of the "
"following:"
msgstr ""
+"Lorsque vous utilisez des fichiers de configuration exécutables de "
+"debhelper, veuillez vous souvenir des choses suivantes :"
#. type: =item
#: debhelper.pod:122 debhelper.pod:127
@@ -363,6 +376,8 @@ msgid ""
"The executable config file B<must> exit with success (i.e. its return code "
"should indicate success)."
msgstr ""
+"Le fichier de configuration exécutable B<doit> se terminer avec succès (le "
+"code de retour doit l'indiquer)."
#. type: textblock
#: debhelper.pod:129
@@ -370,6 +385,9 @@ msgid ""
"The output will be used exactly as it is. Notably, debhelper will I<not> "
"expand wildcards or strip comments in the output."
msgstr ""
+"La sortie sera utilisée exactement telle quelle. En particulier, debhelper "
+"ne développera B<pas> les jokers, ni ne supprimera les commentaires de la "
+"sortie."
#. type: textblock
#: debhelper.pod:134
@@ -378,6 +396,9 @@ msgid ""
"the executable bit, then you can use L<dh-exec(1)> and its B<strip-output> "
"script."
msgstr ""
+"Si vous avez besoin de construire le paquet sur un système de fichiers où "
+"l'on ne peut pas désactiver le bit d'exécution, vous pouvez utiliser L<dh-"
+"exec(1)> et son script B<strip-output>."
# type: =head1
#. type: =head1
@@ -409,7 +430,7 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:148 dh:82
+#: debhelper.pod:148 dh:99
msgid "B<--no-act>"
msgstr "B<--no-act>"
@@ -480,10 +501,8 @@ msgstr "Alias obsolète pour B<-a>."
#. type: textblock
#: debhelper.pod:171 dh_install:77 dh_install:86
-#, fuzzy
-#| msgid "The option is removed in compat 12."
msgid "This option is removed in compat 12."
-msgstr "L'option est supprimée dans le niveau de compatibilité 12."
+msgstr "Cette option est supprimée dans le niveau de compatibilité 12."
# type: =item
#. type: =item
@@ -541,7 +560,7 @@ msgid ""
msgstr ""
"Ignore le fichier indiqué. Cela peut être utilisé si F<debian/> contient un "
"fichier de configuration debhelper avec une commande qui ne doit pas être "
-"prise en compte. Nota : F<debian/compat>, F<debian/control>, et F<debian/"
+"prise en compte. Nota : F<debian/compat>, F<debian/control> et F<debian/"
"changelog> ne peuvent pas être ignorés, mais il n'existe aucune raison "
"valable de les ignorer."
@@ -645,8 +664,8 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:228 dh_compress:56 dh_dwz:44 dh_installchangelogs:85
-#: dh_installdocs:99 dh_installexamples:77 dh_link:75 dh_makeshlibs:139
+#: debhelper.pod:228 dh_compress:56 dh_dwz:56 dh_installchangelogs:85
+#: dh_installdocs:99 dh_installexamples:77 dh_link:75 dh_makeshlibs:154
#: dh_md5sums:40 dh_shlibdeps:34 dh_strip:42
msgid "B<-X>I<item>, B<--exclude=>I<item>"
msgstr "B<-X>I<élément>, B<--exclude=>I<élément>"
@@ -654,11 +673,6 @@ msgstr "B<-X>I<élément>, B<--exclude=>I<élément>"
# type: textblock
#. type: textblock
#: debhelper.pod:230
-#, fuzzy
-#| msgid ""
-#| "Exclude an item from processing. This option may be used multiple times, "
-#| "to exclude more than one thing. The \\fIitem\\fR is typically part of a "
-#| "filename, and any file containing the specified text will be excluded."
msgid ""
"Exclude an item from processing. This option may be used multiple times, to "
"exclude more than one thing. The I<item> is typically part of a filename, "
@@ -730,7 +744,11 @@ msgstr ""
# type: =item
#. type: =item
#: debhelper.pod:257
-msgid "B<-D>I<directory>, B<--sourcedirectory=>I<directory>"
+#, fuzzy
+#| msgid "B<-D>I<directory>, B<--sourcedirectory=>I<directory>"
+msgid ""
+"B<-D>I<directory>, B<--sourcedir=>I<directory>, B<--"
+"sourcedirectory=>I<directory>"
msgstr "B<-D>I<répertoire>, B<--sourcedirectory=>I<répertoire>"
#. type: textblock
@@ -746,7 +764,11 @@ msgstr ""
# type: =item
#. type: =item
#: debhelper.pod:263
-msgid "B<-B>[I<directory>], B<--builddirectory=>[I<directory>]"
+#, fuzzy
+#| msgid "B<-B>[I<directory>], B<--builddirectory=>[I<directory>]"
+msgid ""
+"B<-B>[I<directory>], B<--builddir>[I<=directory>], B<--"
+"builddirectory>[I<=directory>]"
msgstr "B<-B>[I<répertoire>], B<--builddirectory=>[I<répertoire>]"
#. type: textblock
@@ -791,7 +813,7 @@ msgstr ""
#. type: =item
#: debhelper.pod:278
msgid "B<--parallel>, B<--no-parallel>"
-msgstr "B<-parallel>, B<--no-parallel>"
+msgstr "B<--parallel>, B<--no-parallel>"
#. type: textblock
#: debhelper.pod:280
@@ -804,7 +826,7 @@ msgstr ""
"Détermine si la construction parallèle doit être utilisée, si le système "
"sous-jacent le permet. Le nombre de tâches parallèles est contrôlé, lors de "
"la construction, par la variable d'environnement B<DEB_BUILD_OPTIONS> "
-"(L<Charte Debian, section 4.9.1>). Ce nombre peut également être soumis aux "
+"(L<Charte Debian, section 4.9.1>). Ce nombre peut également être soumis aux "
"limites spécifiques du système de construction."
#. type: textblock
@@ -819,12 +841,6 @@ msgstr ""
#. type: textblock
#: debhelper.pod:289
-#, fuzzy
-#| msgid ""
-#| "As an optimization, B<dh> will try to avoid passing these options to "
-#| "subprocesses, if they are unncessary and the only options passed. "
-#| "Notably this happens when B<DEB_BUILD_OPTIONS> does not have a "
-#| "I<parallel> parameter (or its value is 1)."
msgid ""
"As an optimization, B<dh> will try to avoid passing these options to "
"subprocesses, if they are unnecessary and the only options passed. Notably "
@@ -864,42 +880,108 @@ msgstr ""
"En particulier, régler le maximum à B<1> équivaut à l'utilisation de B<--no-"
"parallel>."
+#. type: =item
+#: debhelper.pod:304
+msgid "B<--reload-all-buildenv-variables>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:306
+msgid ""
+"By default, L<dh(1)> will compute several environment (e.g. by using L<dpkg-"
+"buildflags(1)>) and cache them to avoid having all B<dh_auto_*> tool "
+"recompute them."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:310
+msgid ""
+"When passing this option, the concrete B<dh_auto_*> tool will ignore the "
+"cache from L<dh(1)> and retrigger a rebuild of these variables. This is "
+"useful in the very rare case where the package need to do multiple builds "
+"but with different B<...FLAGS> options. A concrete example would be needing "
+"to change the B<-O> parameter in B<CFLAGS> in the second build:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:317
+#, no-wrap
+msgid ""
+" export DEB_CFLAGS_MAINT_APPEND=-O3\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:319
+#, no-wrap
+msgid ""
+" %:\n"
+" dh $@\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:322
+#, no-wrap
+msgid ""
+" override_dh_auto_configure:\n"
+" dh_auto_configure -Bbuild-deb ...\n"
+" DEB_CFLAGS_MAINT_APPEND=-Os dh_auto_configure \\\n"
+" --reload-all-buildenv-variables -Bbuild-udeb ...\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:327
+msgid ""
+"Without B<--reload-all-buildenv-variables> in the second call to "
+"L<dh_auto_configure(1)>, the change in B<DEB_CFLAGS_MAINT_APPEND> would be "
+"ignored as L<dh_auto_configure(1)> would use the cached value of B<CFLAGS> "
+"set by L<dh(1)>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:332
+msgid ""
+"This option is only available with B<< debhelper (>= 12.7~) >> when the "
+"package uses compatibility level 9 or later."
+msgstr ""
+
# type: =item
#. type: =item
-#: debhelper.pod:304 dh:74
+#: debhelper.pod:335 dh:91
msgid "B<--list>, B<-l>"
msgstr "B<--list>, B<-l>"
#. type: textblock
-#: debhelper.pod:306
+#: debhelper.pod:337
msgid ""
"List all build systems supported by debhelper on this system. The list "
"includes both default and third party build systems (marked as such). Also "
"shows which build system would be automatically selected, or which one is "
"manually specified with the B<--buildsystem> option."
msgstr ""
-"Liste tous les processus de construction supportés par le système. Cette "
-"liste inclut à la fois les processus par défaut et les processus tiers "
+"Liste tous les processus de construction pris en charge par le système. "
+"Cette liste inclut à la fois les processus par défaut et les processus tiers "
"(marqués comme tels). Cette option montre également le processus de "
"construction automatiquement sélectionné ou celui indiqué manuellement avec "
"l'option B<--buildsystem>."
#. type: =head1
-#: debhelper.pod:313
+#: debhelper.pod:344
msgid "COMPATIBILITY LEVELS"
msgstr "NIVEAUX DE COMPATIBILITÉ"
# type: textblock
#. type: textblock
-#: debhelper.pod:315
+#: debhelper.pod:346
msgid ""
"From time to time, major non-backwards-compatible changes need to be made to "
"debhelper, to keep it clean and well-designed as needs change and its author "
"gains more experience. To prevent such major changes from breaking existing "
"packages, the concept of debhelper compatibility levels was introduced. You "
"must tell debhelper which compatibility level it should use, and it modifies "
-"its behavior in various ways. The compatibility level is specified in the "
-"F<debian/compat> file and the file must be present."
+"its behavior in various ways."
msgstr ""
"Parfois, des modifications majeures de debhelper doivent être faites et vont "
"briser la compatibilité ascendante. Ces modifications sont nécessaires pour "
@@ -908,63 +990,100 @@ msgstr ""
"de tels changements ne cassent les paquets existants, un concept de niveau "
"de compatibilité debhelper a été introduit. On devra préciser à debhelper le "
"niveau de compatibilité qu'il doit employer, ce qui modifiera son "
-"comportement de diverses manières. Le niveau de compatibilité est spécifié "
-"dans le fichier F<debian/compat> qui doit être présent."
+"comportement de diverses manières."
# type: textblock
#. type: textblock
-#: debhelper.pod:323
+#: debhelper.pod:353
msgid ""
-"Tell debhelper what compatibility level to use by writing a number to "
-"F<debian/compat>. For example, to use v#RECOMMENDED_COMPAT# mode:"
+"In current debhelper, you can specify the compatibility level in F<debian/"
+"control> by adding a Build-Depends on the debhelper-compat package. For "
+"example, to use v#RECOMMENDED_COMPAT# mode, ensure F<debian/control> has:"
msgstr ""
-"Pour indiquer à debhelper le niveau de compatibilité à utiliser il faut "
-"placer un nombre dans F<debian/compat>. Par exemple, pour exploiter la "
-"version #RECOMMENDED_COMPAT# :"
+"Dans la version actuelle de debhelper, vous pouvez spécifier le niveau de "
+"compatibilité à utiliser dans F<debian/control> en ajoutant une dépendance "
+"de construction (Build-Depends) sur le paquet debhelper-compat. Par exemple, "
+"pour exploiter la version #RECOMMENDED_COMPAT#, assurez-vous d'indiquer dans "
+"F<debian/control> :"
# type: verbatim
#. type: verbatim
-#: debhelper.pod:326
+#: debhelper.pod:357
#, no-wrap
msgid ""
-" % echo #RECOMMENDED_COMPAT# > debian/compat\n"
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
"\n"
msgstr ""
-" % echo #RECOMMENDED_COMPAT# > debian/compat\n"
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
"\n"
-# type: textblock
#. type: textblock
-#: debhelper.pod:328
+#: debhelper.pod:359
+msgid ""
+"This also serves as an appropriate versioned build dependency on a "
+"sufficient version of the debhelper package, so you do not need to specify a "
+"separate versioned build dependency on the debhelper package unless you need "
+"a specific point release of debhelper (such as for the introduction of a new "
+"feature or bugfix within a compatibility level)."
+msgstr ""
+"Cela sert aussi à avoir une dépendance de construction sur une version "
+"suffisante de debhelper. Ainsi il n'est pas nécessaire d'indiquer une "
+"dépendance de construction particulière sur debhelper, sauf si vous avez "
+"besoin d'une mise à jour spécifique (comme pour l'introduction d'une "
+"nouvelle fonctionnalité ou une correction de bogue à l'intérieur d'un niveau "
+"de compatibilité)."
+
+#. type: textblock
+#: debhelper.pod:365
msgid ""
-"Your package will also need a versioned build dependency on a version of "
-"debhelper equal to (or greater than) the compatibility level your package "
-"uses. So for compatibility level #RECOMMENDED_COMPAT#, ensure debian/control "
-"has:"
+"Note that debhelper does not provide debhelper-compat for experimental or "
+"beta compatibility levels; packages experimenting with those compatibility "
+"levels should use F<debian/compat> or B<DH_COMPAT>."
msgstr ""
-"Le paquet nécessitera aussi une version de debhelper dans les dépendances de "
-"construction au moins égale au niveau de compatibilité utilisée pour la "
-"construction du paquet. Ainsi, si le paquet emploie le "
-"niveau #RECOMMENDED_COMPAT# de compatibilité, F<debian/control> devra "
-"contenir :"
+"Veuillez noter que debhelper ne fournit pas debhelper-compat pour "
+"experimental ou pour les niveaux en version bêta. Les paquets qui souhaitent "
+"expérimenter avec cela devraient utiliser F<debian/compat> ou B<DH_COMPAT>."
+
+#. type: textblock
+#: debhelper.pod:369
+msgid ""
+"Prior versions of debhelper required specifying the compatibility level in "
+"the file F<debian/compat>, and current debhelper still supports this for "
+"backward compatibility, though a package may not specify a compatibility "
+"level via multiple methods at once. To use this method, F<debian/compat> "
+"should contain the compatibility level as a single number, and no other "
+"content. If you specify the compatibility level by this method, your package "
+"will also need a versioned build dependency on a version of the debhelper "
+"package equal to (or greater than) the compatibility level your package "
+"uses. So, if you specify compatibility level #RECOMMENDED_COMPAT# in "
+"F<debian/compat>, ensure F<debian/control> has:"
+msgstr ""
+"Les versions précédentes de debhelper nécessitaient d'indiquer le niveau de "
+"compatibilité dans le fichier F<debian/compat>, et la version actuelle "
+"continue à le comprendre pour des raisons de compatibilité. Cependant, un "
+"paquet ne devrait pas spécifier son niveau de compatibilité par plusieurs "
+"méthodes à la fois. Pour utiliser cette méthode, F<debian/compat> doit "
+"contenir le niveau de compatibilité comme une valeur entière, et rien "
+"d'autre. Si vous indiquez le niveau de compatibilité ainsi, votre paquet "
+"aura besoin d'une dépendance de construction versionnée sur debhelper, égale "
+"(ou supérieure) au niveau de compatibilité utilisé. Ainsi, si vous indiquez "
+"le niveau #RECOMMENDED_COMPAT# dans F<debian/compat>, assurez-vous que le "
+"fichier F<debian/control> contient :"
# type: verbatim
#. type: verbatim
-#: debhelper.pod:332
-#, fuzzy, no-wrap
-#| msgid ""
-#| " Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
-#| "\n"
+#: debhelper.pod:380
+#, no-wrap
msgid ""
" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#~)\n"
"\n"
msgstr ""
-" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#~)\n"
"\n"
# type: textblock
#. type: textblock
-#: debhelper.pod:334
+#: debhelper.pod:382
msgid ""
"Unless otherwise indicated, all debhelper documentation assumes that you are "
"using the most recent compatibility level, and in most cases does not "
@@ -982,29 +1101,29 @@ msgstr ""
# type: =head2
#. type: =head2
-#: debhelper.pod:341
+#: debhelper.pod:389
msgid "Supported compatibility levels"
msgstr "Niveaux de compatibilité pris en charge"
# type: textblock
#. type: textblock
-#: debhelper.pod:343
+#: debhelper.pod:391
msgid "These are the available compatibility levels:"
msgstr "Les niveaux de compatibilité sont les suivants :"
#. type: =item
-#: debhelper.pod:347 debhelper-obsolete-compat.pod:89
+#: debhelper.pod:395 debhelper-obsolete-compat.pod:89
msgid "v5"
msgstr "v5"
# type: textblock
#. type: textblock
-#: debhelper.pod:349 debhelper-obsolete-compat.pod:91
+#: debhelper.pod:397 debhelper-obsolete-compat.pod:91
msgid "This is the lowest supported compatibility level."
msgstr "C'est le niveau de compatibilité le plus bas pris en charge."
#. type: textblock
-#: debhelper.pod:351
+#: debhelper.pod:399
msgid ""
"If you are upgrading from an earlier compatibility level, please review "
"L<debhelper-obsolete-compat(7)>."
@@ -1014,41 +1133,43 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:354 debhelper.pod:386 debhelper.pod:416 debhelper.pod:447
+#: debhelper.pod:402 debhelper.pod:434 debhelper.pod:464 debhelper.pod:495
#: debhelper-obsolete-compat.pod:28 debhelper-obsolete-compat.pod:35
#: debhelper-obsolete-compat.pod:58 debhelper-obsolete-compat.pod:87
msgid "This mode is deprecated."
msgstr "Ce mode est déconseillé."
#. type: =item
-#: debhelper.pod:356
+#: debhelper.pod:404
msgid "v6"
msgstr "v6"
# type: textblock
#. type: textblock
-#: debhelper.pod:358
+#: debhelper.pod:406
msgid "Changes from v5 are:"
msgstr "Les changements par rapport à la version 5 sont :"
# type: =item
#. type: =item
-#: debhelper.pod:362 debhelper.pod:367 debhelper.pod:373 debhelper.pod:379
-#: debhelper.pod:394 debhelper.pod:401 debhelper.pod:405 debhelper.pod:409
-#: debhelper.pod:424 debhelper.pod:428 debhelper.pod:436 debhelper.pod:441
-#: debhelper.pod:455 debhelper.pod:460 debhelper.pod:467 debhelper.pod:472
-#: debhelper.pod:477 debhelper.pod:485 debhelper.pod:491 debhelper.pod:496
-#: debhelper.pod:501 debhelper.pod:514 debhelper.pod:519 debhelper.pod:525
-#: debhelper.pod:532 debhelper.pod:538 debhelper.pod:543 debhelper.pod:549
-#: debhelper.pod:555 debhelper.pod:565 debhelper.pod:571 debhelper.pod:594
-#: debhelper.pod:601 debhelper.pod:607 debhelper.pod:613 debhelper.pod:629
-#: debhelper.pod:635 debhelper.pod:647 debhelper.pod:655 debhelper.pod:661
-#: debhelper.pod:666 debhelper.pod:671 debhelper.pod:676 debhelper.pod:684
-#: debhelper.pod:694 debhelper.pod:704 debhelper.pod:711 debhelper.pod:723
-#: debhelper.pod:728 debhelper.pod:756 debhelper.pod:775 debhelper.pod:785
-#: debhelper.pod:789 debhelper.pod:794 debhelper.pod:799 debhelper.pod:806
-#: debhelper.pod:812 debhelper.pod:820 debhelper.pod:826 debhelper.pod:830
-#: debhelper.pod:835 debhelper.pod:840 debhelper.pod:849
+#: debhelper.pod:410 debhelper.pod:415 debhelper.pod:421 debhelper.pod:427
+#: debhelper.pod:442 debhelper.pod:449 debhelper.pod:453 debhelper.pod:457
+#: debhelper.pod:472 debhelper.pod:476 debhelper.pod:484 debhelper.pod:489
+#: debhelper.pod:503 debhelper.pod:508 debhelper.pod:515 debhelper.pod:520
+#: debhelper.pod:525 debhelper.pod:533 debhelper.pod:539 debhelper.pod:544
+#: debhelper.pod:549 debhelper.pod:562 debhelper.pod:567 debhelper.pod:573
+#: debhelper.pod:579 debhelper.pod:584 debhelper.pod:590 debhelper.pod:599
+#: debhelper.pod:609 debhelper.pod:615 debhelper.pod:638 debhelper.pod:645
+#: debhelper.pod:651 debhelper.pod:657 debhelper.pod:663 debhelper.pod:692
+#: debhelper.pod:698 debhelper.pod:710 debhelper.pod:718 debhelper.pod:724
+#: debhelper.pod:729 debhelper.pod:734 debhelper.pod:739 debhelper.pod:747
+#: debhelper.pod:757 debhelper.pod:767 debhelper.pod:774 debhelper.pod:786
+#: debhelper.pod:791 debhelper.pod:819 debhelper.pod:838 debhelper.pod:848
+#: debhelper.pod:852 debhelper.pod:857 debhelper.pod:862 debhelper.pod:869
+#: debhelper.pod:875 debhelper.pod:883 debhelper.pod:889 debhelper.pod:893
+#: debhelper.pod:898 debhelper.pod:903 debhelper.pod:912 debhelper.pod:928
+#: debhelper.pod:935 debhelper.pod:951 debhelper.pod:959 debhelper.pod:964
+#: debhelper.pod:979 debhelper.pod:987 debhelper.pod:995
#: debhelper-obsolete-compat.pod:43 debhelper-obsolete-compat.pod:48
#: debhelper-obsolete-compat.pod:52 debhelper-obsolete-compat.pod:66
#: debhelper-obsolete-compat.pod:71 debhelper-obsolete-compat.pod:76
@@ -1061,7 +1182,7 @@ msgstr "-"
# type: textblock
#. type: textblock
-#: debhelper.pod:364
+#: debhelper.pod:412
msgid ""
"Commands that generate maintainer script fragments will order the fragments "
"in reverse order for the F<prerm> and F<postrm> scripts."
@@ -1071,7 +1192,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:369
+#: debhelper.pod:417
msgid ""
"B<dh_installwm> will install a slave manpage link for F<x-window-manager.1."
"gz>, if it sees the man page in F<usr/share/man/man1> in the package build "
@@ -1083,41 +1204,41 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:375
+#: debhelper.pod:423
msgid ""
"B<dh_builddeb> did not previously delete everything matching "
"B<DH_ALWAYS_EXCLUDE>, if it was set to a list of things to exclude, such as "
"B<CVS:.svn:.git>. Now it does."
msgstr ""
-"B<dh_builddeb>, préalablement, ne supprimait pas les associations créées "
-"avec B<DH_ALWAYS_EXCLUDE> s'il était configuré sur une liste d'éléments tels "
-"que B<CVS:.svn:.git>. Maintenant il le fait."
+"Auparavant, B<dh_builddeb> ne supprimait pas les associations créées avec "
+"B<DH_ALWAYS_EXCLUDE> s'il était configuré sur une liste d'éléments tels que "
+"B<CVS:.svn:.git>. Maintenant il le fait."
# type: textblock
#. type: textblock
-#: debhelper.pod:381
+#: debhelper.pod:429
msgid ""
"B<dh_installman> allows overwriting existing man pages in the package build "
"directory. In previous compatibility levels it silently refuses to do this."
msgstr ""
"B<dh_installman> permet d'écraser les pages de manuel existantes dans le "
-"répertoire de construction du paquet. Préalablement, il refusait en silence "
-"de le faire."
+"répertoire de construction du paquet. Auparavant, il refusait en silence de "
+"le faire."
#. type: =item
-#: debhelper.pod:388
+#: debhelper.pod:436
msgid "v7"
msgstr "v7"
# type: textblock
#. type: textblock
-#: debhelper.pod:390
+#: debhelper.pod:438
msgid "Changes from v6 are:"
msgstr "Les changements par rapport à la version 6 sont :"
# type: textblock
#. type: textblock
-#: debhelper.pod:396
+#: debhelper.pod:444
msgid ""
"B<dh_install>, will fall back to looking for files in F<debian/tmp> if it "
"doesn't find them in the current directory (or wherever you tell it look "
@@ -1128,12 +1249,12 @@ msgstr ""
"B<dh_install> cherchera récursivement les fichiers dans F<debian/tmp> s'il "
"ne les trouve pas dans le répertoire courant (ou dans le répertoire indiqué "
"par B<--sourcedir>). Cela permet à B<dh_install> d'interopérer avec "
-"B<dh_auto_install>, qui place les fichiers dans F<debian/tmp>, sans "
+"B<dh_auto_install> qui place les fichiers dans F<debian/tmp>, sans "
"nécessiter de paramètres particuliers."
# type: textblock
#. type: textblock
-#: debhelper.pod:403
+#: debhelper.pod:451
msgid "B<dh_clean> will read F<debian/clean> and delete files listed there."
msgstr ""
"B<dh_clean> lit le répertoire F<debian/clean> et supprime les fichiers qui y "
@@ -1141,13 +1262,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:407
+#: debhelper.pod:455
msgid "B<dh_clean> will delete toplevel F<*-stamp> files."
msgstr "B<dh_clean> supprime les fichiers F<*-stamp>."
# type: textblock
#. type: textblock
-#: debhelper.pod:411
+#: debhelper.pod:459
msgid ""
"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
"none is specified."
@@ -1156,18 +1277,18 @@ msgstr ""
"amont si rien n'est indiqué."
#. type: =item
-#: debhelper.pod:418
+#: debhelper.pod:466
msgid "v8"
msgstr "v8"
# type: textblock
#. type: textblock
-#: debhelper.pod:420
+#: debhelper.pod:468
msgid "Changes from v7 are:"
msgstr "Les changements par rapport à la version 7 sont :"
#. type: textblock
-#: debhelper.pod:426
+#: debhelper.pod:474
msgid ""
"Commands will fail rather than warning when they are passed unknown options."
msgstr ""
@@ -1175,7 +1296,7 @@ msgstr ""
"recevront des options inconnues."
#. type: textblock
-#: debhelper.pod:430
+#: debhelper.pod:478
msgid ""
"B<dh_makeshlibs> will run B<dpkg-gensymbols> on all shared libraries that it "
"generates shlibs files for. So B<-X> can be used to exclude libraries. "
@@ -1192,7 +1313,7 @@ msgstr ""
"certains paquets."
#. type: textblock
-#: debhelper.pod:438
+#: debhelper.pod:486
msgid ""
"B<dh> requires the sequence to run be specified as the first parameter, and "
"any switches come after it. Ie, use \"B<dh $@ --foo>\", not \"B<dh --foo $@>"
@@ -1203,7 +1324,7 @@ msgstr ""
"faut écrire « B<dh $@ --toto> », et non « B<dh --toto $@> »"
#. type: textblock
-#: debhelper.pod:443
+#: debhelper.pod:491
msgid ""
"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
"F<Makefile.PL>."
@@ -1212,28 +1333,28 @@ msgstr ""
"F<Makefile.PL>."
#. type: =item
-#: debhelper.pod:449
+#: debhelper.pod:497
msgid "v9"
msgstr "v9"
# type: textblock
#. type: textblock
-#: debhelper.pod:451
+#: debhelper.pod:499
msgid "Changes from v8 are:"
msgstr "Les changements par rapport à la version 8 sont :"
#. type: textblock
-#: debhelper.pod:457
+#: debhelper.pod:505
msgid ""
"Multiarch support. In particular, B<dh_auto_configure> passes multiarch "
"directories to autoconf in --libdir and --libexecdir."
msgstr ""
-"Prise en charge multiarchitecture. En particulier B<dh_auto_configure> passe "
-"les répertoires multiarchitectures à B<autoconf> dans B<--libdir> et B<--"
-"libexecdir>."
+"Prise en charge multiarchitecture. En particulier, B<dh_auto_configure> "
+"passe les répertoires multiarchitectures à B<autoconf> dans B<--libdir> et "
+"B<--libexecdir>."
#. type: textblock
-#: debhelper.pod:462
+#: debhelper.pod:510
msgid ""
"dh is aware of the usual dependencies between targets in debian/rules. So, "
"\"dh binary\" will run any build, build-arch, build-indep, install, etc "
@@ -1247,7 +1368,7 @@ msgstr ""
"les autres cibles."
#. type: textblock
-#: debhelper.pod:469
+#: debhelper.pod:517
msgid ""
"B<dh_strip> compresses debugging symbol files to reduce the installed size "
"of -dbg packages."
@@ -1256,7 +1377,7 @@ msgstr ""
"la taille d'installation des paquets -dbg."
#. type: textblock
-#: debhelper.pod:474
+#: debhelper.pod:522
msgid ""
"B<dh_auto_configure> does not include the source package name in --"
"libexecdir when using autoconf."
@@ -1265,12 +1386,12 @@ msgstr ""
"libexecdir> en utilisant B<autoconf>."
#. type: textblock
-#: debhelper.pod:479
+#: debhelper.pod:527
msgid "B<dh> does not default to enabling --with=python-support"
msgstr "B<dh> n'active pas B<--with=python-support> par défaut."
#. type: textblock
-#: debhelper.pod:481
+#: debhelper.pod:529
msgid ""
"(Obsolete: As the B<dh_pysupport> tool was removed from Debian stretch. "
"Since debhelper/10.3, B<dh> no longer enables this sequence add-on "
@@ -1281,7 +1402,7 @@ msgstr ""
"niveau de compatibilité)"
#. type: textblock
-#: debhelper.pod:487
+#: debhelper.pod:535
msgid ""
"All of the B<dh_auto_>I<*> debhelper programs and B<dh> set environment "
"variables listed by B<dpkg-buildflags>, unless they are already set."
@@ -1291,7 +1412,7 @@ msgstr ""
"sont déjà configurées."
#. type: textblock
-#: debhelper.pod:493
+#: debhelper.pod:541
msgid ""
"B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and LDFLAGS "
"to perl F<Makefile.PL> and F<Build.PL>"
@@ -1300,7 +1421,7 @@ msgstr ""
"buildflags> à F<Makefile.PL> et F<Build.PL> de Perl."
#. type: textblock
-#: debhelper.pod:498
+#: debhelper.pod:546
msgid ""
"B<dh_strip> puts separated debug symbols in a location based on their build-"
"id."
@@ -1309,7 +1430,7 @@ msgstr ""
"fonction de leur identifiant de construction (build-id)."
#. type: textblock
-#: debhelper.pod:503
+#: debhelper.pod:551
msgid ""
"Executable debhelper config files are run and their output used as the "
"configuration."
@@ -1318,18 +1439,18 @@ msgstr ""
"sortie est utilisée comme configuration."
#. type: =item
-#: debhelper.pod:508
+#: debhelper.pod:556
msgid "v10"
msgstr "v10"
# type: textblock
#. type: textblock
-#: debhelper.pod:510
+#: debhelper.pod:558
msgid "Changes from v9 are:"
msgstr "Les changements par rapport à la version 9 sont :"
#. type: textblock
-#: debhelper.pod:516
+#: debhelper.pod:564
msgid ""
"B<dh_installinit> will no longer install a file named debian/I<package> as "
"an init script."
@@ -1338,7 +1459,7 @@ msgstr ""
"script d'initialisation."
#. type: textblock
-#: debhelper.pod:521
+#: debhelper.pod:569
msgid ""
"B<dh_installdocs> will error out if it detects links created with --link-doc "
"between packages of architecture \"all\" and non-\"all\" as it breaks "
@@ -1350,21 +1471,7 @@ msgstr ""
"responsable)."
#. type: textblock
-#: debhelper.pod:527
-msgid ""
-"B<dh> no longer creates the package build directory when skipping running "
-"debhelper commands. This will not affect packages that only build with "
-"debhelper commands, but it may expose bugs in commands not included in "
-"debhelper."
-msgstr ""
-"B<dh> ne crée plus le répertoire de construction du paquet lors de "
-"l'omission des commandes debhelper en cours. Cela n'affectera pas les "
-"paquets qui se construisent uniquement avec dehelper, mais pourrait faire "
-"apparaître des bogues dans les commandes qui ne sont pas incluses avec "
-"debhelper."
-
-#. type: textblock
-#: debhelper.pod:534
+#: debhelper.pod:575
msgid ""
"B<dh_installdeb> no longer installs a maintainer-provided debian/I<package>."
"shlibs file. This is now done by B<dh_makeshlibs> instead."
@@ -1374,7 +1481,7 @@ msgstr ""
"B<dh_makeshlibs>."
#. type: textblock
-#: debhelper.pod:540
+#: debhelper.pod:581
msgid ""
"B<dh_installwm> refuses to create a broken package if no man page can be "
"found (required to register for the x-window-manager alternative)."
@@ -1384,19 +1491,18 @@ msgstr ""
"manager)."
#. type: textblock
-#: debhelper.pod:545
+#: debhelper.pod:586
msgid ""
"Debhelper will default to B<--parallel> for all buildsystems that support "
"parallel building. This can be disabled by using either B<--no-parallel> or "
"passing B<--max-parallel> with a value of 1."
msgstr ""
"Debhelper active par défaut la parallélisation pour tous les systèmes de "
-"construction qui le supportent. Cela peut être désactivé en utilisant "
-"l'option B<--no-parallel> ou en passant la valeur 1 à l'option B<--max-"
-"parallel>."
+"construction qui le gèrent. Cela peut être désactivé en utilisant l'option "
+"B<--no-parallel> ou en passant la valeur B<1> à l'option B<--max-parallel>."
#. type: textblock
-#: debhelper.pod:551
+#: debhelper.pod:592
msgid ""
"The B<dh> command will not accept any of the deprecated \"manual sequence "
"control\" parameters (B<--before>, B<--after>, etc.). Please use override "
@@ -1407,7 +1513,14 @@ msgstr ""
"cibles de réécritures à la place."
#. type: textblock
-#: debhelper.pod:557
+#: debhelper.pod:596
+msgid ""
+"B<Retroactively applied to earlier compat levels>: B<dh> no longer accepts "
+"any of these since debhelper/12.4."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:601
msgid ""
"The B<dh> command will no longer use log files to track which commands have "
"been run. The B<dh> command I<still> keeps track of whether it already ran "
@@ -1419,12 +1532,12 @@ msgstr ""
"cas."
#. type: textblock
-#: debhelper.pod:561
+#: debhelper.pod:605
msgid "The main effects of this are:"
msgstr "Les principa