summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAurelien Jarno <aurel32@debian.org>2023-08-14 21:07:54 +0200
committerAurelien Jarno <aurel32@debian.org>2023-08-14 21:07:54 +0200
commit259ab8a0d17d9846ae80a157b6636e9d22be131a (patch)
tree8ee3751f62004a10458ece2ef29566b356bcaeac
parent76669f0e65fa2b7bf70d2a1293be591c38d0caba (diff)
parent2998eb8dfc6d0e62ad0269ff9184d2ef1c334196 (diff)
Record debhelper (13.11.5) in archive suite sid
-rw-r--r--.dir-locals.el7
-rw-r--r--.editorconfig11
-rw-r--r--.gitattributes1
-rw-r--r--.gitlab-ci.yml31
-rw-r--r--CONTRIBUTING.md194
-rw-r--r--Debian/Debhelper/Buildsystem/ant.pm37
-rw-r--r--Debian/Debhelper/Buildsystem/cmake.pm77
-rw-r--r--Debian/Debhelper/Buildsystem/qmake_qt4.pm18
-rw-r--r--Debian/Debhelper/Dh_Buildsystems.pm228
-rw-r--r--Debian/Debhelper/Dh_Lib.pm1018
-rw-r--r--Debian/Debhelper/Sequence/python_support.pm15
-rw-r--r--Makefile113
-rw-r--r--autoscripts/postinst-alternatives3
-rw-r--r--autoscripts/postinst-emacsen7
-rw-r--r--autoscripts/postinst-icons6
-rw-r--r--autoscripts/postinst-init8
-rw-r--r--autoscripts/postinst-init-nostart6
-rw-r--r--autoscripts/postinst-init-restart16
-rw-r--r--autoscripts/postinst-init-tmpfiles8
-rw-r--r--autoscripts/postinst-makeshlibs3
-rw-r--r--autoscripts/postinst-menu2
-rw-r--r--autoscripts/postinst-menu-method2
-rw-r--r--autoscripts/postinst-modules2
-rw-r--r--autoscripts/postinst-moveconffile9
-rw-r--r--autoscripts/postinst-python7
-rw-r--r--autoscripts/postinst-suid8
-rw-r--r--autoscripts/postinst-systemd-dont-enable15
-rw-r--r--autoscripts/postinst-systemd-enable15
-rw-r--r--autoscripts/postinst-systemd-restart11
-rw-r--r--autoscripts/postinst-systemd-restartnostart8
-rw-r--r--autoscripts/postinst-systemd-start6
-rw-r--r--autoscripts/postinst-systemd-user-dont-enable17
-rw-r--r--autoscripts/postinst-systemd-user-enable17
-rw-r--r--autoscripts/postinst-systemd-user-restart6
-rw-r--r--autoscripts/postinst-sysusers3
-rw-r--r--autoscripts/postinst-ucf2
-rw-r--r--autoscripts/postinst-usrlocal19
-rw-r--r--autoscripts/postinst-wm2
-rw-r--r--autoscripts/postinst-wm-noman2
-rw-r--r--autoscripts/postinst-xfonts2
-rw-r--r--autoscripts/postrm-icons2
-rw-r--r--autoscripts/postrm-init12
-rw-r--r--autoscripts/postrm-makeshlibs3
-rw-r--r--autoscripts/postrm-menu2
-rw-r--r--autoscripts/postrm-menu-method2
-rw-r--r--autoscripts/postrm-suid4
-rw-r--r--autoscripts/postrm-systemd5
-rw-r--r--autoscripts/postrm-systemd-reload-only3
-rw-r--r--autoscripts/postrm-systemd-user5
-rw-r--r--autoscripts/postrm-systemd-user-reload-only3
-rw-r--r--autoscripts/postrm-ucf4
-rw-r--r--autoscripts/postrm-xfonts2
-rw-r--r--autoscripts/preinst-emacsen2
-rw-r--r--autoscripts/preinst-init-chmod3
-rw-r--r--autoscripts/preinst-init-stop3
-rw-r--r--autoscripts/preinst-moveconffile9
-rw-r--r--autoscripts/preinst-sgmlcatalog8
-rw-r--r--autoscripts/preinst-systemd-stop3
-rw-r--r--autoscripts/prerm-alternatives3
-rw-r--r--autoscripts/prerm-emacsen2
-rw-r--r--autoscripts/prerm-init4
-rw-r--r--autoscripts/prerm-init-norestart4
-rw-r--r--autoscripts/prerm-python3
-rw-r--r--autoscripts/prerm-systemd3
-rw-r--r--autoscripts/prerm-systemd-restart3
-rw-r--r--autoscripts/prerm-systemd-user-stop3
-rw-r--r--debhelper-compat-upgrade-checklist.pod780
-rw-r--r--debhelper-obsolete-compat.pod188
-rw-r--r--debhelper.pod854
-rw-r--r--debian/changelog4422
-rw-r--r--debian/compat2
-rw-r--r--debian/control83
-rw-r--r--debian/copyright48
-rw-r--r--debian/debhelper.docs (renamed from debian/docs)0
-rw-r--r--debian/debhelper.examples (renamed from debian/examples)0
-rw-r--r--debian/debhelper.install1
-rw-r--r--debian/debhelper.manpages (renamed from debian/manpages)0
-rw-r--r--debian/gbp.conf6
-rw-r--r--debian/gen-provides21
-rw-r--r--debian/libdebhelper-perl.install2
-rwxr-xr-xdebian/rules19
-rw-r--r--debian/source/format1
-rw-r--r--debian/source/lintian-overrides2
-rw-r--r--debian/source/options2
-rw-r--r--debian/tests/pkg-perl/skip-syntax1
-rw-r--r--debian/tests/pkg-perl/smoke-files4
-rw-r--r--debian/tests/pkg-perl/smoke-skip5
-rwxr-xr-xdh1156
-rwxr-xr-xdh_assistant576
-rwxr-xr-xdh_auto_build8
-rwxr-xr-xdh_auto_clean7
-rwxr-xr-xdh_auto_configure8
-rwxr-xr-xdh_auto_install37
-rwxr-xr-xdh_auto_test13
-rwxr-xr-xdh_bugfiles33
-rwxr-xr-xdh_builddeb144
-rwxr-xr-xdh_clean112
-rwxr-xr-xdh_compress275
-rwxr-xr-xdh_desktop41
-rwxr-xr-xdh_dwz173
-rwxr-xr-xdh_fixperms193
-rwxr-xr-xdh_gconf112
-rwxr-xr-xdh_gencontrol184
-rwxr-xr-xdh_icons20
-rwxr-xr-xdh_install321
-rwxr-xr-xdh_installalternatives193
-rwxr-xr-xdh_installcatalogs48
-rwxr-xr-xdh_installchangelogs396
-rwxr-xr-xdh_installcron25
-rwxr-xr-xdh_installdeb353
-rwxr-xr-xdh_installdebconf127
-rwxr-xr-xdh_installdirs69
-rwxr-xr-xdh_installdocs256
-rwxr-xr-xdh_installemacsen43
-rwxr-xr-xdh_installexamples102
-rwxr-xr-xdh_installgsettings20
-rwxr-xr-xdh_installifupdown15
-rwxr-xr-xdh_installinfo68
-rwxr-xr-xdh_installinit281
-rwxr-xr-xdh_installinitramfs103
-rwxr-xr-xdh_installlogcheck13
-rwxr-xr-xdh_installlogrotate13
-rwxr-xr-xdh_installman393
-rwxr-xr-xdh_installmanpages31
-rwxr-xr-xdh_installmenu27
-rwxr-xr-xdh_installmime20
-rwxr-xr-xdh_installmodules32
-rwxr-xr-xdh_installpam28
-rwxr-xr-xdh_installppp13
-rwxr-xr-xdh_installsystemd453
-rwxr-xr-xdh_installsystemduser288
-rwxr-xr-xdh_installsysusers115
-rwxr-xr-xdh_installtmpfiles128
-rwxr-xr-xdh_installudev35
-rwxr-xr-xdh_installwm50
-rwxr-xr-xdh_installxfonts19
-rwxr-xr-xdh_link128
-rwxr-xr-xdh_lintian13
-rwxr-xr-xdh_listpackages10
-rwxr-xr-xdh_makeshlibs390
-rwxr-xr-xdh_md5sums96
-rwxr-xr-xdh_missing271
-rwxr-xr-xdh_movefiles39
-rwxr-xr-xdh_perl66
-rwxr-xr-xdh_prep24
-rwxr-xr-xdh_scrollkeeper38
-rwxr-xr-xdh_shlibdeps146
-rwxr-xr-xdh_strip425
-rwxr-xr-xdh_suidregister127
-rwxr-xr-xdh_systemd_enable288
-rwxr-xr-xdh_systemd_start288
-rwxr-xr-xdh_testdir15
-rwxr-xr-xdh_testroot78
-rwxr-xr-xdh_ucf29
-rwxr-xr-xdh_undocumented38
-rwxr-xr-xdh_update_autotools_config82
-rwxr-xr-xdh_usrlocal112
-rw-r--r--doc/PROGRAMMING318
-rw-r--r--doc/PROGRAMMING.md694
-rw-r--r--doc/SUPPORT-POLICY20
-rw-r--r--doc/TODO12
-rw-r--r--lib/Debian/Debhelper/Buildsystem.pm (renamed from Debian/Debhelper/Buildsystem.pm)270
-rw-r--r--lib/Debian/Debhelper/Buildsystem/ant.pm52
-rw-r--r--lib/Debian/Debhelper/Buildsystem/autoconf.pm (renamed from Debian/Debhelper/Buildsystem/autoconf.pm)44
-rw-r--r--lib/Debian/Debhelper/Buildsystem/cmake.pm216
-rw-r--r--lib/Debian/Debhelper/Buildsystem/makefile.pm (renamed from Debian/Debhelper/Buildsystem/makefile.pm)68
-rw-r--r--lib/Debian/Debhelper/Buildsystem/meson.pm174
-rw-r--r--lib/Debian/Debhelper/Buildsystem/ninja.pm90
-rw-r--r--lib/Debian/Debhelper/Buildsystem/perl_build.pm (renamed from Debian/Debhelper/Buildsystem/perl_build.pm)34
-rw-r--r--lib/Debian/Debhelper/Buildsystem/perl_makemaker.pm (renamed from Debian/Debhelper/Buildsystem/perl_makemaker.pm)34
-rw-r--r--lib/Debian/Debhelper/Buildsystem/python_distutils.pm (renamed from Debian/Debhelper/Buildsystem/python_distutils.pm)20
-rw-r--r--lib/Debian/Debhelper/Buildsystem/qmake.pm (renamed from Debian/Debhelper/Buildsystem/qmake.pm)30
-rw-r--r--lib/Debian/Debhelper/Buildsystem/qmake_qt4.pm15
-rw-r--r--lib/Debian/Debhelper/DH/AddonAPI.pm228
-rw-r--r--lib/Debian/Debhelper/DH/SequenceState.pm31
-rw-r--r--lib/Debian/Debhelper/Dh_Buildsystems.pm320
-rw-r--r--lib/Debian/Debhelper/Dh_Getopt.pm (renamed from Debian/Debhelper/Dh_Getopt.pm)118
-rw-r--r--lib/Debian/Debhelper/Dh_Lib.pm3111
-rw-r--r--lib/Debian/Debhelper/Sequence.pm131
-rw-r--r--lib/Debian/Debhelper/Sequence/build_stamp.pm10
-rw-r--r--lib/Debian/Debhelper/Sequence/dwz.pm14
-rw-r--r--lib/Debian/Debhelper/Sequence/elf_tools.pm14
-rw-r--r--lib/Debian/Debhelper/Sequence/installinitramfs.pm14
-rw-r--r--lib/Debian/Debhelper/Sequence/installsysusers.pm9
-rw-r--r--lib/Debian/Debhelper/Sequence/root_sequence.pm120
-rw-r--r--lib/Debian/Debhelper/Sequence/single_binary.pm34
-rw-r--r--lib/Debian/Debhelper/Sequence/systemd.pm19
-rw-r--r--lib/Debian/Debhelper/SequencerUtil.pm888
-rw-r--r--man/po4a/add.fr16
-rw-r--r--man/po4a/po/de.po11152
-rw-r--r--man/po4a/po/debhelper.pot7074
-rw-r--r--man/po4a/po/es.po9469
-rw-r--r--man/po4a/po/fr.po11667
-rw-r--r--man/po4a/po/ja.po12624
-rw-r--r--man/po4a/po/pt.po10880
-rw-r--r--man/po4a/po4a.cfg15
-rwxr-xr-xrun9
-rw-r--r--strings-kept-translations.pod12
-rwxr-xr-xt/Dh_Lib/00-use.t20
-rwxr-xr-xt/Dh_Lib/control-parsing.t36
-rw-r--r--t/Dh_Lib/debian/changelog5
-rw-r--r--t/Dh_Lib/debian/control19
-rwxr-xr-xt/Dh_Lib/path.t26
-rw-r--r--t/Test/DH.pm212
-rwxr-xr-xt/buildsystems/01-build-system-basic-api.t43
-rwxr-xr-xt/buildsystems/02-make-jobserver-makeflags.t57
-rwxr-xr-xt/buildsystems/03-bs-auto-buildable.t218
-rwxr-xr-xt/buildsystems/04-dh_auto_do_autoconf.t88
-rwxr-xr-xt/buildsystems/05-load-build-system.t55
-rwxr-xr-xt/buildsystems/06-buildsystem-mkdir-rmdir.t51
-rwxr-xr-xt/buildsystems/autoconf/configure14
-rwxr-xr-xt/buildsystems/buildsystem_tests641
-rwxr-xr-xt/buildsystems/buildsystem_tests.t293
-rw-r--r--t/buildsystems/debian/compat1
-rw-r--r--t/buildsystems/debian/control2
-rwxr-xr-xt/buildsystems/load-bs.pl16
-rw-r--r--t/debhelper-compat/debian/control12
-rwxr-xr-xt/debhelper-compat/syntax.t82
-rwxr-xr-xt/dh-lib31
-rwxr-xr-xt/dh-lib.t63
-rwxr-xr-xt/dh-sequencer.t282
-rwxr-xr-xt/dh_compress.t114
-rwxr-xr-xt/dh_install88
-rwxr-xr-xt/dh_install/01-basics.t33
-rwxr-xr-xt/dh_install/02-bugs-53XXXX.t65
-rwxr-xr-xt/dh_install/03-866570-dont-install-from-host.t24
-rwxr-xr-xt/dh_install/04-sourcedir.t47
-rw-r--r--t/dh_installchangelogs/debian/control10
-rwxr-xr-xt/dh_installchangelogs/dh_installchangelogs.t252
-rwxr-xr-xt/dh_installdocs/01-868204-ignore-broken-symlinks.t30
-rw-r--r--t/dh_installdocs/debian/changelog5
-rw-r--r--t/dh_installdocs/debian/control21
-rw-r--r--t/dh_installdocs/debian/copyright1
-rw-r--r--t/dh_installdocs/debian/docfile1
-rwxr-xr-xt/dh_installdocs/dh_installdocs.t75
-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
-rw-r--r--t/dh_installinit/debian/changelog5
-rw-r--r--t/dh_installinit/debian/control20
-rw-r--r--t/dh_installinit/debian/foo.service5
-rwxr-xr-xt/dh_installinit/dh_installinit.t44
-rwxr-xr-xt/dh_installman/01-basics.t94
-rw-r--r--t/dh_installman/libmanpage.so.1.2.3.pod17
-rw-r--r--t/dh_installman/libmanpage.so.9.2.31
-rw-r--r--t/dh_installman/manpage-compressed.pod17
-rw-r--r--t/dh_installman/manpage-perl.pod17
-rw-r--r--t/dh_installman/manpage-uncompressed.pod17
-rw-r--r--t/dh_installpam/debian/changelog5
-rw-r--r--t/dh_installpam/debian/control10
-rw-r--r--t/dh_installpam/debian/foo.pam1
-rwxr-xr-xt/dh_installpam/dh_installpam.t38
-rw-r--r--t/dh_installsystemd/debian/changelog5
-rw-r--r--t/dh_installsystemd/debian/control20
-rw-r--r--t/dh_installsystemd/debian/foo.init4
-rw-r--r--t/dh_installsystemd/debian/foo.service8
-rw-r--r--t/dh_installsystemd/debian/foo2.service8
-rwxr-xr-xt/dh_installsystemd/dh_installsystemd.t255
-rwxr-xr-xt/dh_installsystemd/dh_installsystemd_tmpfiles.t87
-rwxr-xr-xt/dh_installsystemd/dh_systemd.t123
-rw-r--r--t/dh_installsystemd/simple/debian/changelog5
-rw-r--r--t/dh_installsystemd/simple/debian/control10
-rw-r--r--t/dh_installsystemd/simple/debian/foo.service8
-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
-rwxr-xr-xt/dh_installsystemduser/dh_installsystemduser.t112
-rwxr-xr-xt/dh_link45
-rwxr-xr-xt/dh_link/01-basic.t50
-rwxr-xr-xt/dh_link/02-346405.t29
-rwxr-xr-xt/dh_link/03-894229.t55
-rwxr-xr-xt/dh_missing/01-no-missing.t28
-rwxr-xr-xt/dh_missing/02-fail-on-missing.t33
-rwxr-xr-xt/dh_missing/03-dh_install-redirection.t30
-rwxr-xr-xt/dh_missing/04-not-installed-glob.t37
-rw-r--r--t/dh_missing/template/Makefile7
-rw-r--r--t/dh_missing/template/debian/changelog5
-rw-r--r--t/dh_missing/template/debian/control20
-rw-r--r--t/dh_missing/template/debian/foo.install1
-rw-r--r--t/dh_missing/template/file-for-foo1
-rwxr-xr-xt/dh_usrlocal/01-basic.t157
-rw-r--r--t/maintscript19
-rwxr-xr-xt/maintscript.t70
-rwxr-xr-xt/override_target.t (renamed from t/override_target)16
-rwxr-xr-xt/pod10
-rwxr-xr-xt/pod.t10
-rwxr-xr-xt/size.t (renamed from t/size)13
-rwxr-xr-xt/syntax12
l---------t/syntax/syntax-libs.t1
-rwxr-xr-xt/syntax/syntax-progs.t28
292 files changed, 75907 insertions, 17291 deletions
diff --git a/.dir-locals.el b/.dir-locals.el
new file mode 100644
index 00000000..50364f24
--- /dev/null
+++ b/.dir-locals.el
@@ -0,0 +1,7 @@
+((perl-mode
+ (tab-width . 4)
+ (indent-tabs-mode . t))
+ (cperl-mode
+ (cperl-indent-level . 4)
+ (tab-width . 4)
+ (indent-tabs-mode . t)))
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 00000000..3cca0bfa
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,11 @@
+root = true
+
+[*]
+end_of_line = lf
+insert_final_newline = true
+
+[*.py]
+indent_style = space
+
+[*.{pl,pm}]
+indent_style = tab
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 5d425843..00000000
--- a/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-debian/changelog merge=dpkg-mergechangelogs
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 00000000..713ae1ab
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,31 @@
+tests-stable-backports:
+ stage: test
+ image: debian:stable-backports
+ script:
+ - apt-get update
+ - apt-get build-dep -y .
+ - dpkg-buildpackage -us -uc -tc
+
+tests-testing:
+ stage: test
+ image: debian:testing
+ script:
+ - apt-get update
+ - 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
+ script:
+ - apt-get update
+ - apt-get build-dep -y .
+ - dpkg-buildpackage -us -uc -tc
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 00000000..791c2eaa
--- /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 need 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/Debian/Debhelper/Buildsystem/ant.pm b/Debian/Debhelper/Buildsystem/ant.pm
deleted file mode 100644
index 52def4f6..00000000
--- a/Debian/Debhelper/Buildsystem/ant.pm
+++ /dev/null
@@ -1,37 +0,0 @@
-# A debhelper build system class for handling Ant based projects.
-#
-# Copyright: © 2009 Joey Hess
-# License: GPL-2+
-
-package Debian::Debhelper::Buildsystem::ant;
-
-use strict;
-use base 'Debian::Debhelper::Buildsystem';
-
-sub DESCRIPTION {
- "Ant (build.xml)"
-}
-
-sub check_auto_buildable {
- my $this=shift;
- return (-e $this->get_sourcepath("build.xml")) ? 1 : 0;
-}
-
-sub new {
- my $class=shift;
- my $this=$class->SUPER::new(@_);
- $this->enforce_in_source_building();
- return $this;
-}
-
-sub build {
- my $this=shift;
- $this->doit_in_sourcedir("ant", @_);
-}
-
-sub clean {
- my $this=shift;
- $this->doit_in_sourcedir("ant", "clean", @_);
-}
-
-1
diff --git a/Debian/Debhelper/Buildsystem/cmake.pm b/Debian/Debhelper/Buildsystem/cmake.pm
deleted file mode 100644
index db971db1..00000000
--- a/Debian/Debhelper/Buildsystem/cmake.pm
+++ /dev/null
@@ -1,77 +0,0 @@
-# A debhelper build system class for handling CMake based projects.
-# It prefers out of source tree building.
-#
-# Copyright: © 2008-2009 Modestas Vainius
-# License: GPL-2+
-
-package Debian::Debhelper::Buildsystem::cmake;
-
-use strict;
-use Debian::Debhelper::Dh_Lib qw(compat);
-use base 'Debian::Debhelper::Buildsystem::makefile';
-
-sub DESCRIPTION {
- "CMake (CMakeLists.txt)"
-}
-
-sub check_auto_buildable {
- my $this=shift;
- my ($step)=@_;
- if (-e $this->get_sourcepath("CMakeLists.txt")) {
- my $ret = ($step eq "configure" && 1) ||
- $this->SUPER::check_auto_buildable(@_);
- # Existence of CMakeCache.txt indicates cmake has already
- # been used by a prior build step, so should be used
- # instead of the parent makefile class.
- $ret++ if ($ret && -e $this->get_buildpath("CMakeCache.txt"));
- return $ret;
- }
- return 0;
-}
-
-sub new {
- my $class=shift;
- my $this=$class->SUPER::new(@_);
- $this->prefer_out_of_source_building(@_);
- return $this;
-}
-
-sub configure {
- my $this=shift;
- my @flags;
-
- # Standard set of cmake flags
- push @flags, "-DCMAKE_INSTALL_PREFIX=/usr";
- push @flags, "-DCMAKE_VERBOSE_MAKEFILE=ON";
- push @flags, "-DCMAKE_BUILD_TYPE=None";
-
- # CMake doesn't respect CPPFLAGS, see #653916.
- if ($ENV{CPPFLAGS} && ! compat(8)) {
- $ENV{CFLAGS} .= ' ' . $ENV{CPPFLAGS};
- $ENV{CXXFLAGS} .= ' ' . $ENV{CPPFLAGS};
- }
-
- $this->mkdir_builddir();
- eval {
- $this->doit_in_builddir("cmake", $this->get_source_rel2builddir(), @flags, @_);
- };
- if ($@) {
- if (-e $this->get_buildpath("CMakeCache.txt")) {
- $this->doit_in_builddir("tail -v -n +0 CMakeCache.txt");
- }
- die $@;
- }
-}
-
-sub test {
- my $this=shift;
-
- # Unlike make, CTest does not have "unlimited parallel" setting (-j implies
- # -j1). So in order to simulate unlimited parallel, allow to fork a huge
- # number of threads instead.
- my $parallel = ($this->get_parallel() > 0) ? $this->get_parallel() : 999;
- $ENV{CTEST_OUTPUT_ON_FAILURE} = 1;
- return $this->SUPER::test(@_, "ARGS+=-j$parallel");
-}
-
-1
diff --git a/Debian/Debhelper/Buildsystem/qmake_qt4.pm b/Debian/Debhelper/Buildsystem/qmake_qt4.pm
deleted file mode 100644
index d5bac585..00000000
--- a/Debian/Debhelper/Buildsystem/qmake_qt4.pm
+++ /dev/null
@@ -1,18 +0,0 @@
-package Debian::Debhelper::Buildsystem::qmake_qt4;
-
-use strict;
-use warnings;
-use Debian::Debhelper::Dh_Lib qw(error);
-use base 'Debian::Debhelper::Buildsystem::qmake';
-
-sub DESCRIPTION {
- "qmake for QT 4 (*.pro)";
-}
-
-sub configure {
- my $this=shift;
- $Debian::Debhelper::Buildsystem::qmake::qmake="qmake-qt4";
- $this->SUPER::configure(@_);
-}
-
-1
diff --git a/Debian/Debhelper/Dh_Buildsystems.pm b/Debian/Debhelper/Dh_Buildsystems.pm
deleted file mode 100644
index 0a51a4d2..00000000
--- a/Debian/Debhelper/Dh_Buildsystems.pm
+++ /dev/null
@@ -1,228 +0,0 @@
-# A module for loading and managing debhelper build system classes.
-# This module is intended to be used by all dh_auto_* programs.
-#
-# Copyright: © 2009 Modestas Vainius
-# License: GPL-2+
-
-package Debian::Debhelper::Dh_Buildsystems;
-
-use strict;
-use warnings;
-use Debian::Debhelper::Dh_Lib;
-use File::Spec;
-
-use base 'Exporter';
-our @EXPORT=qw(&buildsystems_init &buildsystems_do &load_buildsystem &load_all_buildsystems);
-
-use constant BUILD_STEPS => qw(configure build test install clean);
-
-# Historical order must be kept for backwards compatibility. New
-# build systems MUST be added to the END of the list.
-our @BUILDSYSTEMS = (
- "autoconf",
- (! compat(7) ? "perl_build" : ()),
- "perl_makemaker",
- "makefile",
- "python_distutils",
- (compat(7) ? "perl_build" : ()),
- "cmake",
- "ant",
- "qmake",
- "qmake_qt4",
-);
-
-my $opt_buildsys;
-my $opt_sourcedir;
-my $opt_builddir;
-my $opt_list;
-my $opt_parallel;
-
-sub create_buildsystem_instance {
- my $system=shift;
- my %bsopts=@_;
- my $module = "Debian::Debhelper::Buildsystem::$system";
-
- eval "use $module";
- if ($@) {
- error("unable to load build system class '$system': $@");
- }
-
- if (!exists $bsopts{builddir} && defined $opt_builddir) {
- $bsopts{builddir} = ($opt_builddir eq "") ? undef : $opt_builddir;
- }
- if (!exists $bsopts{sourcedir} && defined $opt_sourcedir) {
- $bsopts{sourcedir} = ($opt_sourcedir eq "") ? undef : $opt_sourcedir;
- }
- if (!exists $bsopts{parallel}) {
- $bsopts{parallel} = $opt_parallel;
- }
- return $module->new(%bsopts);
-}
-
-# Autoselect a build system from the list of instances
-sub autoselect_buildsystem {
- my $step=shift;
- my $selected;
- my $selected_level = 0;
-
- foreach my $inst (@_) {
- # Only derived (i.e. more specific) build system can be
- # considered beyond the currently selected one.
- next if defined $selected && !$inst->isa(ref $selected);
-
- # If the build system says it is auto-buildable at the current
- # step and it can provide more specific information about its
- # status than its parent (if any), auto-select it.
- my $level = $inst->check_auto_buildable($step);
- if ($level > $selected_level) {
- $selected = $inst;
- $selected_level = $level;
- }
- }
- return $selected;
-}
-
-# Similar to create_build system_instance(), but it attempts to autoselect
-# a build system if none was specified. In case autoselection fails, undef
-# is returned.
-sub load_buildsystem {
- my $system=shift;
- my $step=shift;
- if (defined $system) {
- my $inst = create_buildsystem_instance($system, @_);
- return $inst;
- }
- else {
- # Try to determine build system automatically
- my @buildsystems;
- foreach $system (@BUILDSYSTEMS) {
- push @buildsystems, create_buildsystem_instance($system, @_);
- }
- return autoselect_buildsystem($step, @buildsystems);
- }
-}
-
-sub load_all_buildsystems {
- my $incs=shift || \@INC;
- my (%buildsystems, @buildsystems);
-
- foreach my $inc (@$incs) {
- my $path = File::Spec->catdir($inc, "Debian/Debhelper/Buildsystem");
- if (-d $path) {
- foreach my $module_path (glob "$path/*.pm") {
- my $name = basename($module_path);
- $name =~ s/\.pm$//;
- next if exists $buildsystems{$name};
- $buildsystems{$name} = create_buildsystem_instance($name, @_);
- }
- }
- }
-
- # Standard debhelper build systems first
- foreach my $name (@BUILDSYSTEMS) {
- error("standard debhelper build system '$name' could not be found/loaded")
- if not exists $buildsystems{$name};
- push @buildsystems, $buildsystems{$name};
- delete $buildsystems{$name};
- }
-
- # The rest are 3rd party build systems
- foreach my $name (keys %buildsystems) {
- my $inst = $buildsystems{$name};
- $inst->{thirdparty} = 1;
- push @buildsystems, $inst;
- }
-
- return @buildsystems;
-}
-
-sub buildsystems_init {
- my %args=@_;
-
- my $max_parallel=1;
-
- # Available command line options
- my %options = (
- "D=s" => \$opt_sourcedir,
- "sourcedirectory=s" => \$opt_sourcedir,
-
- "B:s" => \$opt_builddir,
- "builddirectory:s" => \$opt_builddir,
-
- "S=s" => \$opt_buildsys,
- "buildsystem=s" => \$opt_buildsys,
-
- "l" => \$opt_list,
- "list" => \$opt_list,
-
- "parallel" => sub { $max_parallel = -1 },
- "max-parallel=i" => \$max_parallel,
- );
- $args{options}{$_} = $options{$_} foreach keys(%options);
- Debian::Debhelper::Dh_Lib::init(%args);
- Debian::Debhelper::Dh_Lib::set_buildflags();
- set_parallel($max_parallel);
-}
-
-sub set_parallel {
- my $max=shift;
-
- # Get number of processes from parallel=n option, limiting it
- # with $max if needed
- $opt_parallel=get_buildoption("parallel") || 1;
-
- if ($max > 0 && $opt_parallel > $max) {
- $opt_parallel = $max;
- }
-}
-
-sub buildsystems_list {
- my $step=shift;
-
- my @buildsystems = load_all_buildsystems();
- my $auto = autoselect_buildsystem($step, grep { ! $_->{thirdparty} } @buildsystems);
- my $specified;
-
- # List build systems (including auto and specified status)
- foreach my $inst (@buildsystems) {
- if (! defined $specified && defined $opt_buildsys && $opt_buildsys eq $inst->NAME()) {
- $specified = $inst;
- }
- printf("%-20s %s", $inst->NAME(), $inst->DESCRIPTION());
- print " [3rd party]" if $inst->{thirdparty};
- print "\n";
- }
- print "\n";
- print "Auto-selected: ", $auto->NAME(), "\n" if defined $auto;
- print "Specified: ", $specified->NAME(), "\n" if defined $specified;
- print "No system auto-selected or specified\n"
- if ! defined $auto && ! defined $specified;
-}
-
-sub buildsystems_do {
- my $step=shift;
-
- if (!defined $step) {
- $step = basename($0);
- $step =~ s/^dh_auto_//;
- }
-
- if (grep(/^\Q$step\E$/, BUILD_STEPS) == 0) {
- error("unrecognized build step: " . $step);
- }
-
- if ($opt_list) {
- buildsystems_list($step);
- exit 0;
- }
-
- my $buildsystem = load_buildsystem($opt_buildsys, $step);
- if (defined $buildsystem) {
- $buildsystem->pre_building_step($step);
- $buildsystem->$step(@_, @{$dh{U_PARAMS}});
- $buildsystem->post_building_step($step);
- }
- return 0;
-}
-
-1
diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm
deleted file mode 100644
index 0519d20a..00000000
--- a/Debian/Debhelper/Dh_Lib.pm
+++ /dev/null
@@ -1,1018 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Library functions for debhelper programs, perl version.
-#
-# Joey Hess, GPL copyright 1997-2008.
-
-package Debian::Debhelper::Dh_Lib;
-use strict;
-
-use Exporter;
-use vars qw(@ISA @EXPORT %dh);
-@ISA=qw(Exporter);
-@EXPORT=qw(&init &doit &doit_noerror &complex_doit &verbose_print &error
- &warning &tmpdir &pkgfile &pkgext &pkgfilename &isnative
- &autoscript &filearray &filedoublearray
- &getpackages &basename &dirname &xargs %dh
- &compat &addsubstvar &delsubstvar &excludefile &package_arch
- &is_udeb &udeb_filename &debhelper_script_subst &escape_shell
- &inhibit_log &load_log &write_log &commit_override_log
- &dpkg_architecture_value &sourcepackage
- &is_make_jobserver_unavailable &clean_jobserver_makeflags
- &cross_command &set_buildflags &get_buildoption);
-
-my $max_compat=10;
-
-# The Makefile changes this if debhelper is installed in a PREFIX.
-my $prefix="/usr";
-
-sub init {
- my %params=@_;
-
- # Check to see if an option line starts with a dash,
- # or DH_OPTIONS is set.
- # If so, we need to pass this off to the resource intensive
- # Getopt::Long, which I'd prefer to avoid loading at all if possible.
- if ((defined $ENV{DH_OPTIONS} && length $ENV{DH_OPTIONS}) ||
- (defined $ENV{DH_INTERNAL_OPTIONS} && length $ENV{DH_INTERNAL_OPTIONS}) ||
- grep /^-/, @ARGV) {
- eval "use Debian::Debhelper::Dh_Getopt";
- error($@) if $@;
- Debian::Debhelper::Dh_Getopt::parseopts(%params);
- }
-
- # Another way to set excludes.
- if (exists $ENV{DH_ALWAYS_EXCLUDE} && length $ENV{DH_ALWAYS_EXCLUDE}) {
- push @{$dh{EXCLUDE}}, split(":", $ENV{DH_ALWAYS_EXCLUDE});
- }
-
- # Generate EXCLUDE_FIND.
- if ($dh{EXCLUDE}) {
- $dh{EXCLUDE_FIND}='';
- foreach (@{$dh{EXCLUDE}}) {
- my $x=$_;
- $x=escape_shell($x);
- $x=~s/\./\\\\./g;
- $dh{EXCLUDE_FIND}.="-regex .\\*$x.\\* -or ";
- }
- $dh{EXCLUDE_FIND}=~s/ -or $//;
- }
-
- # Check to see if DH_VERBOSE environment variable was set, if so,
- # make sure verbose is on.
- if (defined $ENV{DH_VERBOSE} && $ENV{DH_VERBOSE} ne "") {
- $dh{VERBOSE}=1;
- }
-
- # Check to see if DH_NO_ACT environment variable was set, if so,
- # make sure no act mode is on.
- if (defined $ENV{DH_NO_ACT} && $ENV{DH_NO_ACT} ne "") {
- $dh{NO_ACT}=1;
- }
-
- # Get the name of the main binary package (first one listed in
- # debian/control). Only if the main package was not set on the
- # command line.
- if (! exists $dh{MAINPACKAGE} || ! defined $dh{MAINPACKAGE}) {
- my @allpackages=getpackages();
- $dh{MAINPACKAGE}=$allpackages[0];
- }
-
- # Check if packages to build have been specified, if not, fall back to
- # the default, building all relevant packages.
- if (! defined $dh{DOPACKAGES} || ! @{$dh{DOPACKAGES}}) {
- push @{$dh{DOPACKAGES}}, getpackages('both');
- }
-
- # Check to see if -P was specified. If so, we can only act on a single
- # package.
- if ($dh{TMPDIR} && $#{$dh{DOPACKAGES}} > 0) {
- error("-P was specified, but multiple packages would be acted on (".join(",",@{$dh{DOPACKAGES}}).").");
- }
-
- # Figure out which package is the first one we were instructed to build.
- # This package gets special treatement: files and directories specified on
- # the command line may affect it.
- $dh{FIRSTPACKAGE}=${$dh{DOPACKAGES}}[0];
-
- # If no error handling function was specified, just propagate
- # errors out.
- if (! exists $dh{ERROR_HANDLER} || ! defined $dh{ERROR_HANDLER}) {
- $dh{ERROR_HANDLER}='exit \$?';
- }
-}
-
-# Run at exit. Add the command to the log files for the packages it acted
-# on, if it's exiting successfully.
-my $write_log=1;
-sub END {
- if ($? == 0 && $write_log) {
- write_log(basename($0), @{$dh{DOPACKAGES}});
- }
-}
-
-sub logfile {
- my $package=shift;
- my $ext=pkgext($package);
- return "debian/${ext}debhelper.log"
-}
-
-sub add_override {
- my $line=shift;
- $line="override_$ENV{DH_INTERNAL_OVERRIDE} $line"
- if defined $ENV{DH_INTERNAL_OVERRIDE};
- return $line;
-}
-
-sub remove_override {
- my $line=shift;
- $line=~s/^\Qoverride_$ENV{DH_INTERNAL_OVERRIDE}\E\s+//
- if defined $ENV{DH_INTERNAL_OVERRIDE};
- return $line;
-}
-
-sub load_log {
- my ($package, $db)=@_;
-
- my @log;
- open(LOG, "<", logfile($package)) || return;
- while (<LOG>) {
- chomp;
- my $command=remove_override($_);
- push @log, $command;
- $db->{$package}{$command}=1 if defined $db;
- }
- close LOG;
- return @log;
-}
-
-sub write_log {
- my $cmd=shift;
- my @packages=@_;
-
- return if $dh{NO_ACT};
-
- foreach my $package (@packages) {
- my $log=logfile($package);
- open(LOG, ">>", $log) || error("failed to write to ${log}: $!");
- print LOG add_override($cmd)."\n";
- close LOG;
- }
-}
-
-sub commit_override_log {
- my @packages=@_;
-
- return if $dh{NO_ACT};
-
- foreach my $package (@packages) {
- my @log=map { remove_override($_) } load_log($package);
- my $log=logfile($package);
- open(LOG, ">", $log) || error("failed to write to ${log}: $!");
- print LOG $_."\n" foreach @log;
- close LOG;
- }
-}
-
-sub inhibit_log {
- $write_log=0;
-}
-
-# Pass it an array containing the arguments of a shell command like would
-# be run by exec(). It turns that into a line like you might enter at the
-# shell, escaping metacharacters and quoting arguments that contain spaces.
-sub escape_shell {
- my @args=@_;
- my $line="";
- my @ret;
- foreach my $word (@args) {
- if ($word=~/\s/) {
- # Escape only a few things since it will be quoted.
- # Note we use double quotes because you cannot
- # escape ' in single quotes, while " can be escaped
- # in double.
- # This does make -V"foo bar" turn into "-Vfoo bar",
- # but that will be parsed identically by the shell
- # anyway..
- $word=~s/([\n`\$"\\])/\\$1/g;
- push @ret, "\"$word\"";
- }
- else {
- # This list is from _Unix in a Nutshell_. (except '#')
- $word=~s/([\s!"\$()*+#;<>?@\[\]\\`|~])/\\$1/g;
- push @ret,$word;
- }
- }
- return join(' ', @ret);
-}
-
-# Run a command, and display the command to stdout if verbose mode is on.
-# Throws error if command exits nonzero.
-#
-# All commands that modifiy files in $TMP should be ran via this
-# function.
-#
-# Note that this cannot handle complex commands, especially anything
-# involving redirection. Use complex_doit instead.
-sub doit {
- doit_noerror(@_) || _error_exitcode(join(" ", @_));
-}
-
-sub doit_noerror {
- verbose_print(escape_shell(@_));
-
- if (! $dh{NO_ACT}) {
- return (system(@_) == 0)
- }
- else {
- return 1;
- }
-}
-
-# Run a command and display the command to stdout if verbose mode is on.
-# Use doit() if you can, instead of this function, because this function
-# forks a shell. However, this function can handle more complicated stuff
-# like redirection.
-sub complex_doit {
- verbose_print(join(" ",@_));
-
- if (! $dh{NO_ACT}) {
- # The join makes system get a scalar so it forks off a shell.
- system(join(" ", @_)) == 0 || _error_exitcode(join(" ", @_))
- }
-}
-
-sub _error_exitcode {
- my $command=shift;
- if ($? == -1) {
- error("$command failed to to execute: $!");
- }
- elsif ($? & 127) {
- error("$command died with signal ".($? & 127));
- }
- else {
- error("$command returned exit code ".($? >> 8));
- }
-}
-
-# Run a command that may have a huge number of arguments, like xargs does.
-# Pass in a reference to an array containing the arguments, and then other
-# parameters that are the command and any parameters that should be passed to
-# it each time.
-sub xargs {
- my $args=shift;
-
- # The kernel can accept command lines up to 20k worth of characters.
- my $command_max=20000; # LINUX SPECIFIC!!
- # (And obsolete; it's bigger now.)
- # I could use POSIX::ARG_MAX, but that would be slow.
-
- # Figure out length of static portion of command.
- my $static_length=0;
- foreach (@_) {
- $static_length+=length($_)+1;
- }
-
- my @collect=();
- my $length=$static_length;
- foreach (@$args) {
- if (length($_) + 1 + $static_length > $command_max) {
- error("This command is greater than the maximum command size allowed by the kernel, and cannot be split up further. What on earth are you doing? \"@_ $_\"");
- }
- $length+=length($_) + 1;
- if ($length < $command_max) {
- push @collect, $_;
- }
- else {
- doit(@_,@collect) if $#collect > -1;
- @collect=($_);
- $length=$static_length + length($_) + 1;
- }
- }
- doit(@_,@collect) if $#collect > -1;
-}
-
-# Print something if the verbose flag is on.
-sub verbose_print {
- my $message=shift;
-
- if ($dh{VERBOSE}) {
- print "\t$message\n";
- }
-}
-
-# Output an error message and die (can be caught).
-sub error {
- my $message=shift;
-
- die basename($0).": $message\n";
-}
-
-# Output a warning.
-sub warning {
- my $message=shift;
-
- print STDERR basename($0).": $message\n";
-}
-
-# Returns the basename of the argument passed to it.
-sub basename {
- my $fn=shift;
-
- $fn=~s/\/$//g; # ignore trailing slashes
- $fn=~s:^.*/(.*?)$:$1:;
- return $fn;
-}
-
-# Returns the directory name of the argument passed to it.
-sub dirname {
- my $fn=shift;
-
- $fn=~s/\/$//g; # ignore trailing slashes
- $fn=~s:^(.*)/.*?$:$1:;
- return $fn;
-}
-
-# Pass in a number, will return true iff the current compatibility level
-# is less than or equal to that number.
-{
- my $warned_compat=0;
- my $c;
-
- sub compat {
- my $num=shift;
- my $nowarn=shift;
-
- if (! defined $c) {
- $c=1;
- if (-e 'debian/compat') {
- open (COMPAT_IN, "debian/compat") || error "debian/compat: $!";
- my $l=<COMPAT_IN>;
- close COMPAT_IN;
- if (! defined $l || ! length $l) {
- warning("debian/compat is empty, assuming level $c")
- unless defined $ENV{DH_COMPAT};
- }
- else {
- chomp $l;
- $c=$l;
- }
- }
- else {
- warning("No compatibility level specified in debian/compat");
- warning("This package will soon FTBFS; time to fix it!");
- }
-
- if (defined $ENV{DH_COMPAT}) {
- $c=$ENV{DH_COMPAT};
- }
- }
-
- if ($c <= 4 && ! $warned_compat && ! $nowarn) {
- warning("Compatibility levels before 5 are deprecated (level $c in use)");
- $warned_compat=1;
- }
-
- if ($c > $max_compat) {
- error("Sorry, but $max_compat is the highest compatibility level supported by this debhelper.");
- }
-
- return ($c <= $num);
- }
-}
-
-# Pass it a name of a binary package, it returns the name of the tmp dir to
-# use, for that package.
-sub tmpdir {
- my $package=shift;
-
- if ($dh{TMPDIR}) {
- return $dh{TMPDIR};
- }
- elsif (compat(1) && $package eq $dh{MAINPACKAGE}) {
- # This is for back-compatibility with the debian/tmp tradition.
- return "debian/tmp";
- }
- else {
- return "debian/$package";
- }
-}
-
-# Pass this the name of a binary package, and the name of the file wanted
-# for the package, and it will return the actual existing filename to use.
-#
-# It tries several filenames:
-# * debian/package.filename.buildarch
-# * debian/package.filename.buildos
-# * debian/package.filename
-# * debian/filename (if the package is the main package)
-# If --name was specified then the files
-# must have the name after the package name:
-# * debian/package.name.filename.buildarch
-# * debian/package.name.filename.buildos
-# * debian/package.name.filename
-# * debian/name.filename (if the package is the main package)
-sub pkgfile {
- my $package=shift;
- my $filename=shift;
-
- if (defined $dh{NAME}) {
- $filename="$dh{NAME}.$filename";
- }
-
- # First, check for files ending in buildarch and buildos.
- my $match;
- foreach my $file (glob("debian/$package.$filename.*")) {
- next if ! -f $file;
- next if $dh{IGNORE} && exists $dh{IGNORE}->{$file};
- if ($file eq "debian/$package.$filename.".buildarch()) {
- $match=$file;
- # buildarch files are used in preference to buildos files.
- last;
- }
- elsif ($file eq "debian/$package.$filename.".buildos()) {
- $match=$file;
- }
- }
- return $match if defined $match;
-
- my @try=("debian/$package.$filename");
- if ($package eq $dh{MAINPACKAGE}) {
- push @try, "debian/$filename";
- }
-
- foreach my $file (@try) {
- if (-f $file &&
- (! $dh{IGNORE} || ! exists $dh{IGNORE}->{$file})) {
- return $file;
- }
-
- }
-
- return "";
-
-}
-
-# Pass it a name of a binary package, it returns the name to prefix to files
-# in debian/ for this package.
-sub pkgext {
- my $package=shift;
-
- if (compat(1) and $package eq $dh{MAINPACKAGE}) {
- return "";
- }
- return "$package.";
-}
-
-# Pass it the name of a binary package, it returns the name to install
-# files by in eg, etc. Normally this is the same, but --name can override
-# it.
-sub pkgfilename {
- my $package=shift;
-
- if (defined $dh{NAME}) {
- return $dh{NAME};
- }
- return $package;
-}
-
-# Returns 1 if the package is a native debian package, null otherwise.
-# 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;
-
- sub isnative {
- my $package=shift;
-
- return $isnative_cache{$package} if defined $isnative_cache{$package};
-
- # Make sure we look at the correct changelog.
- my $isnative_changelog=pkgfile($package,"changelog");
- if (! $isnative_changelog) {
- $isnative_changelog="debian/changelog";
- }
- # Get the package version.
- my $version=`dpkg-parsechangelog -l$isnative_changelog`;
- ($dh{VERSION})=$version=~m/Version:\s*(.*)/m;
- # Did the changelog parse fail?
- if (! defined $dh{VERSION}) {
- error("changelog parse failure");
- }
-
- # Is this a native Debian package?
- if ($dh{VERSION}=~m/.*-/) {
- return $isnative_cache{$package}=0;
- }
- else {
- return $isnative_cache{$package}=1;
- }
- }
-}
-
-# Automatically add a shell script snippet to a debian script.
-# Only works if the script has #DEBHELPER# in it.
-#
-# Parameters:
-# 1: package
-# 2: script to add to
-# 3: filename of snippet
-# 4: either text: shell-quoted sed to run on the snippet. Ie, 's/#PACKAGE#/$PACKAGE/'
-# or a sub to run on each line of the snippet. Ie sub { s/#PACKAGE#/$PACKAGE/ }
-sub autoscript {
- my $package=shift;
- my $script=shift;
- my $filename=shift;
- my $sed=shift || "";
-
- # This is the file we will modify.
- my $outfile="debian/".pkgext($package)."$script.debhelper";
-
- # Figure out what shell script snippet to use.
- my $infile;
- if (defined($ENV{DH_AUTOSCRIPTDIR}) &&
- -e "$ENV{DH_AUTOSCRIPTDIR}/$filename") {
- $infile="$ENV{DH_AUTOSCRIPTDIR}/$filename";
- }
- else {
- if (-e "$prefix/share/debhelper/autoscripts/$filename") {
- $infile="$prefix/share/debhelper/autoscripts/$filename";
- }
- else {
- error("$prefix/share/debhelper/autoscripts/$filename does not exist");
- }
- }
-
- if (-e $outfile && ($script eq 'postrm' || $script eq 'prerm')
- && !compat(5)) {
- # Add fragments to top so they run in reverse order when removing.
- complex_doit("echo \"# Automatically added by ".basename($0)."\"> $outfile.new");
- autoscript_sed($sed, $infile, "$outfile.new");
- complex_doit("echo '# End automatically added section' >> $outfile.new");
- complex_doit("cat $outfile >> $outfile.new");
- complex_doit("mv $outfile.new $outfile");
- }
- else {
- complex_doit("echo \"# Automatically added by ".basename($0)."\">> $outfile");
- autoscript_sed($sed, $infile, $outfile);
- complex_doit("echo '# End automatically added section' >> $outfile");
- }
-}
-
-sub autoscript_sed {
- my $sed = shift;
- my $infile = shift;
- my $outfile = shift;
- if (ref($sed) eq 'CODE') {
- open(IN, $infile) or die "$infile: $!";
- open(OUT, ">>$outfile") or die "$outfile: $!";
- while (<IN>) { $sed->(); print OUT }
- close(OUT) or die "$outfile: $!";
- close(IN) or die "$infile: $!";
- }
- else {
- complex_doit("sed \"$sed\" $infile >> $outfile");
- }
-}
-
-# Removes a whole substvar line.
-sub delsubstvar {
- my $package=shift;
- my $substvar=shift;
-
- my $ext=pkgext($package);
- my $substvarfile="debian/${ext}substvars";
-
- if (-e $substvarfile) {
- complex_doit("grep -s -v '^${substvar}=' $substvarfile > $substvarfile.new || true");
- doit("mv", "$substvarfile.new","$substvarfile");
- }
-}
-
-# Adds a dependency on some package to the specified
-# substvar in a package's substvar's file.
-sub addsubstvar {
- my $package=shift;
- my $substvar=shift;
- my $deppackage=shift;
- my $verinfo=shift;
- my $remove=shift;
-
- my $ext=pkgext($package);
- my $substvarfile="debian/${ext}substvars";
- my $str=$deppackage;
- $str.=" ($verinfo)" if defined $verinfo && length $verinfo;
-
- # Figure out what the line will look like, based on what's there
- # now, and what we're to add or remove.
- my $line="";
- if (-e $substvarfile) {
- my %items;
- open(SUBSTVARS_IN, "$substvarfile") || error "read $substvarfile: $!";
- while (<SUBSTVARS_IN>) {
- chomp;
- if (/^\Q$substvar\E=(.*)/) {
- %items = map { $_ => 1} split(", ", $1);
-
- last;
- }
- }
- close SUBSTVARS_IN;
- if (! $remove) {
- $items{$str}=1;
- }
- else {
- delete $items{$str};
- }
- $line=join(", ", sort keys %items);
- }
- elsif (! $remove) {
- $line=$str;
- }
-
- if (length $line) {
- complex_doit("(grep -s -v ${substvar} $substvarfile; echo ".escape_shell("${substvar}=$line").") > $substvarfile.new");
- doit("mv", "$substvarfile.new", $substvarfile);
- }
- else {
- delsubstvar($package,$substvar);
- }
-}
-
-# Reads in the specified file, one line at a time. splits on words,
-# and returns an array of arrays of the contents.
-# If a value is passed in as the second parameter, then glob
-# expansion is done in the directory specified by the parameter ("." is
-# frequently a good choice).
-sub filedoublearray {
- my $file=shift;
- my $globdir=shift;
-
- # executable config files are a v9 thing.
- my $x=! compat(8) && -x $file;
- if ($x) {
- require Cwd;
- my $cmd=Cwd::abs_path($file);
- open (DH_FARRAY_IN, "$cmd |") || error("cannot run $file: $!");
- }
- else {
- open (DH_FARRAY_IN, $file) || error("cannot read $file: $!");
- }
-
- my @ret;
- while (<DH_FARRAY_IN>) {
- chomp;
- # Only ignore comments and empty lines in v5 mode.
- if (! compat(4) && ! $x) {
- next if /^#/ || /^$/;
- }
- my @line;
- # Only do glob expansion in v3 mode.
- #
- # The tricky bit is that the glob expansion is done
- # as if we were in the specified directory, so the
- # filenames that come out are relative to it.
- if (defined $globdir && ! compat(2) && ! $x) {
- foreach (map { glob "$globdir/$_" } split) {
- s#^$globdir/##;
- push @line, $_;
- }
- }
- else {
- @line = split;
- }
- push @ret, [@line];
- }
-
- close DH_FARRAY_IN || error("problem reading $file: $!");
-
- return @ret;
-}
-
-# Reads in the specified file, one word at a time, and returns an array of
-# the result. Can do globbing as does filedoublearray.
-sub filearray {
- return map { @$_ } filedoublearray(@_);
-}
-
-# Passed a filename, returns true if -X says that file should be excluded.
-sub excludefile {
- my $filename = shift;
- foreach my $f (@{$dh{EXCLUDE}}) {
- return 1 if $filename =~ /\Q$f\E/;
- }
- return 0;
-}
-
-{
- my %dpkg_arch_output;
- sub dpkg_architecture_value {
- my $var = shift;
- if (! exists($dpkg_arch_output{$var})) {
- local $_;
- open(PIPE, '-|', 'dpkg-architecture')
- or error("dpkg-architecture failed");
- while (<PIPE>) {
- chomp;
- my ($k, $v) = split(/=/, $_, 2);
- $dpkg_arch_output{$k} = $v;
- }
- close(PIPE);
- }
- return $dpkg_arch_output{$var};
- }
-}
-
-# Returns the build architecture.
-sub buildarch {
- dpkg_architecture_value('DEB_HOST_ARCH');
-}
-
-# Returns the build OS.
-sub buildos {
- dpkg_architecture_value("DEB_HOST_ARCH_OS");
-}
-
-# Passed an arch and a list of arches to match against, returns true if matched
-{
- my %knownsame;
-
- sub samearch {
- my $arch=shift;
- my @archlist=split(/\s+/,shift);
-
- foreach my $a (@archlist) {
- # Avoid expensive dpkg-architecture call to compare
- # with a simple architecture name. "linux-any" and
- # other architecture wildcards are (currently)
- # always hypenated.
- if ($a !~ /-/) {
- return 1 if $arch eq $a;
- }
- elsif (exists $knownsame{$arch}{$a}) {
- return 1 if $knownsame{$arch}{$a};
- }
- elsif (system("dpkg-architecture", "-a$arch", "-i$a") == 0) {
- return $knownsame{$arch}{$a}=1;
- }
- else {
- $knownsame{$arch}{$a}=0;
- }
- }
-
- return 0;
- }
-}
-
-# Returns source package name
-sub sourcepackage {
- open (CONTROL, 'debian/control') ||
- error("cannot read debian/control: $!\n");
- while (<CONTROL>) {
- chomp;
- s/\s+$//;
- if (/^Source:\s*(.*)/) {
- close CONTROL;
- return $1;
- }
- }
-
- close CONTROL;
- error("could not find Source: line in control file.");
-}
-
-# Returns a list of packages in the control file.
-# Pass "arch" or "indep" to specify arch-dependant (that will be built
-# for the system's arch) or independant. If nothing is specified,
-# returns all packages. Also, "both" returns the union of "arch" and "indep"
-# packages.
-#
-# As a side effect, populates %package_arches and %package_types
-# with the types of all packages (not only those returned).
-my (%package_types, %package_arches);
-sub getpackages {
- my $type=shift;
-
- %package_types=();
- %package_arches=();
-
- $type="" if ! defined $type;
-
- my $package="";
- my $arch="";
- my $package_type;
- my @list=();
- my %seen;
- my @profiles=();
- my $included_in_build_profile;
- if (exists $ENV{'DEB_BUILD_PROFILES'}) {
- @profiles=split /\s+/, $ENV{'DEB_BUILD_PROFILES'};
- }
- open (CONTROL, 'debian/control') ||
- error("cannot read debian/control: $!\n");
- while (<CONTROL>) {
- chomp;
- s/\s+$//;
- if (/^Package:\s*(.*)/) {
- $package=$1;
- # Detect duplicate package names in the same control file.
- if (! $seen{$package}) {
- $seen{$package}=1;
- }
- else {
- error("debian/control has a duplicate entry for $package");
- }
- $package_type="deb";
- $included_in_build_profile=1;
- }
- if (/^Architecture:\s*(.*)/) {
- $arch=$1;
- }
- if (/^(?:X[BC]*-)?Package-Type:\s*(.*)/) {
- $package_type=$1;
- }
- # rely on libdpkg-perl providing the parsing functions because
- # if we work on a package with a Build-Profiles field, then a
- # high enough version of dpkg-dev is needed anyways
- if (/^Build-Profiles:\s*(.*)/) {
- my $build_profiles=$1;
- eval {
- require Dpkg::BuildProfiles;
- my @restrictions=Dpkg::BuildProfiles::parse_build_profiles($build_profiles);
- if (@restrictions) {
- $included_in_build_profile=Dpkg::BuildProfiles::evaluate_restriction_formula(\@restrictions, \@profiles);
- }
- };
- if ($@) {
- error("The control file has a Build-Profiles field. Requires libdpkg-perl >= 1.17.14");
- }
- }
-
- if (!$_ or eof) { # end of stanza.
- if ($package) {
- $package_types{$package}=$package_type;
- $package_arches{$package}=$arch;
- }
-
- if ($package && $included_in_build_profile &&
- ((($type eq 'indep' || $type eq 'both') && $arch eq 'all') ||
- (($type eq 'arch' || $type eq 'both') &&
- ($arch eq 'any' ||
- ($arch ne 'all' && samearch(buildarch(), $arch))
- )
- ) || ! $type)
- ) {
- push @list, $package;
- $package="";
- $arch="";
- }
- }
- }
- close CONTROL;
-
- return @list;
-}
-
-# Returns the arch a package will build for.
-sub package_arch {
- my $package=shift;
-
- if (! exists $package_arches{$package}) {
- warning "package $package is not in control info";
- return buildarch();
- }
- return $package_arches{$package} eq 'all' ? "all" : buildarch();
-}
-
-# Return true if a given package is really a udeb.
-sub is_udeb {
- my $package=shift;
-
- if (! exists $package_types{$package}) {
- warning "package $package is not in control info";
- return 0;
- }
- return $package_types{$package} eq 'udeb';
-}
-
-# Generates the filename that is used for a udeb package.
-sub udeb_filename {
- my $package=shift;
-
- my $filearch=package_arch($package);
- isnative($package); # side effect
- my $version=$dh{VERSION};
- $version=~s/^[0-9]+://; # strip any epoch
- return "${package}_${version}_$filearch.udeb";
-}
-
-# 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 $tmp=tmpdir($package);
- my $ext=pkgext($package);
- my $file=pkgfile($package,$script);
-
- if ($file ne '') {
- if (-f "debian/$ext$script.debhelper") {
- # Add this into the script, where it has #DEBHELPER#
- complex_doit("perl -pe 's~#DEBHELPER#~qx{cat debian/$ext$script.debhelper}~eg' < $file > $tmp/DEBIAN/$script");
- }
- else {
- # Just get rid of any #DEBHELPER# in the script.
- complex_doit("sed s/#DEBHELPER#// < $file > $tmp/DEBIAN/$script");
- }
- doit("chown","0:0","$tmp/DEBIAN/$script");
- doit("chmod",755,"$tmp/DEBIAN/$script");
- }
- elsif ( -f "debian/$ext$script.debhelper" ) {
- complex_doit("printf '#!/bin/sh\nset -e\n' > $tmp/DEBIAN/$script");
- complex_doit("cat debian/$ext$script.debhelper >> $tmp/DEBIAN/$script");
- doit("chown","0:0","$tmp/DEBIAN/$script");
- doit("chmod",755,"$tmp/DEBIAN/$script");
- }
-}
-
-# Checks if make's jobserver is enabled via MAKEFLAGS, but
-# the FD used to communicate with it is actually not available.
-sub is_make_jobserver_unavailable {
- if (exists $ENV{MAKEFLAGS} &&
- $ENV{MAKEFLAGS} =~ /(?:^|\s)--jobserver-fds=(\d+)/) {
- if (!open(my $in, "<&$1")) {
- return 1; # unavailable
- }
- else {
- close $in;
- return 0; # available
- }
- }
-
- return; # no jobserver specified
-}
-
-# Cleans out jobserver options from MAKEFLAGS.
-sub clean_jobserver_makeflags {
- if (exists $ENV{MAKEFLAGS}) {
- if ($ENV{MAKEFLAGS} =~ /(?:^|\s)--jobserver-fds=(\d+)/) {
- $ENV{MAKEFLAGS} =~ s/(?:^|\s)--jobserver-fds=\S+//g;
- $ENV{MAKEFLAGS} =~ s/(?:^|\s)-j\b//g;
- }
- delete $ENV{MAKEFLAGS} if $ENV{MAKEFLAGS} =~ /^\s*$/;
- }
-}
-
-# If cross-compiling, returns appropriate cross version of command.
-sub cross_command {
- my $command=shift;
- if (dpkg_architecture_value("DEB_BUILD_GNU_TYPE")
- ne dpkg_architecture_value("DEB_HOST_GNU_TYPE")) {
- return dpkg_architecture_value("DEB_HOST_GNU_TYPE")."-$command";
- }
- else {
- return $command;
- }
-}
-
-# Sets environment variables from dpkg-buildflags. Avoids changing
-# any existing environment variables.
-sub set_buildflags {
- return if $ENV{DH_INTERNAL_BUILDFLAGS} || compat(8);
- $ENV{DH_INTERNAL_BUILDFLAGS}=1;
-
- eval "use Dpkg::BuildFlags";
- if ($@) {
- warning "unable to load build flags: $@";
- return;
- }
-
- my $buildflags = Dpkg::BuildFlags->new();
- $buildflags->load_config();
- foreach my $flag ($buildflags->list()) {
- next unless $flag =~ /^[A-Z]/; # Skip flags starting with lowercase
- if (! exists $ENV{$flag}) {
- $ENV{$flag} = $buildflags->get($flag);
- }
- }
-}
-
-# Gets a DEB_BUILD_OPTIONS option, if set.
-sub get_buildoption {
- my $wanted=shift;
-
- return undef unless exists $ENV{DEB_BUILD_OPTIONS};
-
- foreach my $opt (split(/\s+/, $ENV{DEB_BUILD_OPTIONS})) {
- # currently parallel= is the only one with a parameter
- if ($opt =~ /^parallel=(-?\d+)$/ && $wanted eq 'parallel') {
- return $1;
- }
- elsif ($opt eq $wanted) {
- return 1;
- }
- }
-}
-
-1
diff --git a/Debian/Debhelper/Sequence/python_support.pm b/Debian/Debhelper/Sequence/python_support.pm
deleted file mode 100644
index c93d2126..00000000
--- a/Debian/Debhelper/Sequence/python_support.pm
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/perl
-# debhelper sequence file for python-support
-
-use warnings;
-use strict;
-use Debian::Debhelper::Dh_Lib;
-
-# Test if dh_pysupport is available before inserting it.
-# (This would not be needed if this file was contained in the python-support
-# package.)
-if (-x "/usr/bin/dh_pysupport") {
- insert_before("dh_installinit", "dh_pysupport");
-}
-
-1
diff --git a/Makefile b/Makefile
index 3d2d093a..76036b7c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,29 @@
+PERL ?= perl
+PO4A ?= po4a
+POD2MAN ?= pod2man
+
# List of files of dh_* commands. Sorted for debhelper man page.
-COMMANDS=$(shell find . -maxdepth 1 -type f -perm /100 -name "dh_*" -printf "%f\n" | sort)
+COMMANDS=$(shell find . -maxdepth 1 -type f -perm /100 -name "dh_*" -printf "%f\n" | grep -v '~$$' | LC_ALL=C sort)
+MANPAGES=$(COMMANDS:=.1) dh.1
# Find deprecated commands by looking at their synopsis.
DEPRECATED=$(shell egrep -l '^dh_.* - .*deprecated' $(COMMANDS))
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+ TEST_JOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+else
+ TEST_JOBS = 1
+endif
+
+# Figure out the `current debhelper version.
+VERSION=$(shell dpkg-parsechangelog -SVersion)
+
# This generates a list of synopses of debhelper commands, and substitutes
# it in to the #LIST# line on the man page fed to it on stdin. Must be passed
# parameters of all the executables or pod files to get the synopses from.
# For correct conversion of pod tags (like S< >) #LIST# must be substituted in
# the pod file and not in the troff file.
-MAKEMANLIST=perl -e ' \
+MAKEMANLIST=$(PERL) -e ' \
undef $$/; \
foreach (@ARGV) { \
open (IN, $$_) or die "$$_: $$!"; \
@@ -26,62 +40,81 @@ MAKEMANLIST=perl -e ' \
} \
} \
END { \
+ my $$recommended_compat = q{$(VERSION)}; \
+ $$recommended_compat =~ s{^\d+\K(?:\D.*|\..*)?}{}; \
while (<STDIN>) { \
- s/\#LIST\#/$$list/; \
- s/\#LIST_DEPRECATED\#/$$list_deprecated/; \
+ s/\#LIST\#/$$list/g; \
+ s/\#LIST_DEPRECATED\#/$$list_deprecated/g; \
+ s/\#RECOMMENDED_COMPAT\#/$$recommended_compat/g; \
print; \
}; \
}'
-# Figure out the `current debhelper version.
-VERSION=$(shell expr "`dpkg-parsechangelog |grep Version:`" : '.*Version: \(.*\)')
-
-PERLLIBDIR=$(shell perl -MConfig -e 'print $$Config{vendorlib}')/Debian/Debhelper
+PERLLIBDIR=$(shell $(PERL) -MConfig -e 'print $$Config{vendorlib}')/Debian/Debhelper
PREFIX=/usr
-POD2MAN=pod2man --utf8 -c Debhelper -r "$(VERSION)"
+POD2MAN_FLAGS=--utf8 -c Debhelper -r "$(VERSION)"
ifneq ($(USE_NLS),no)
# l10n to be built is determined from .po files
LANGS?=$(notdir $(basename $(wildcard man/po4a/po/*.po)))
+LANG_TARGETS = $(foreach L,$(LANGS),translated-$(L)-stamp)
else
LANGS=
+LANG_TARGETS =
endif
-build: version debhelper.7
- find . -maxdepth 1 -type f -perm /100 -name "dh*" \
- -exec $(POD2MAN) {} {}.1 \;
-ifneq ($(USE_NLS),no)
- po4a --previous -L UTF-8 man/po4a/po4a.cfg
+build: $(LANG_TARGETS) version debhelper.7 debhelper-compat-upgrade-checklist.7 debhelper-obsolete-compat.7 $(MANPAGES)
+
+
+po4a-stamp:
+ $(PO4A) --previous -L UTF-8 man/po4a/po4a.cfg
+ touch $@
+
+translated-%-stamp: po4a-stamp
set -e; \
- for lang in $(LANGS); do \
- dir=man/$$lang; \
- for file in $$dir/dh*.pod; do \
- prog=`basename $$file | sed 's/.pod//'`; \
- $(POD2MAN) $$file $$prog.$$lang.1; \
- done; \
- if [ -e $$dir/debhelper.pod ]; then \
- cat $$dir/debhelper.pod | \
- $(MAKEMANLIST) `find $$dir -type f -maxdepth 1 -name "dh_*.pod" | sort` | \
- $(POD2MAN) --name="debhelper" --section=7 > debhelper.$$lang.7; \
- fi; \
- done
-endif
+ lang=$* ; \
+ dir=man/$$lang; \
+ for file in $$dir/dh*.pod; do \
+ prog=`basename $$file | sed 's/.pod//'`; \
+ $(POD2MAN) $(POD2MAN_FLAGS) $$file $$prog.$$lang.1; \
+ done; \
+ if [ -e $$dir/debhelper.pod ]; then \
+ cat $$dir/debhelper.pod | \
+ $(MAKEMANLIST) `find $$dir -type f -maxdepth 1 -name "dh_*.pod" | LC_ALL=C sort` | \
+ $(POD2MAN) $(POD2MAN_FLAGS) --name="debhelper" --section=7 > debhelper.$$lang.7; \
+ fi; \
+ if [ -e $$dir/debhelper-compat-upgrade-checklist.pod ]; then \
+ $(POD2MAN) $(POD2MAN_FLAGS) --name="debhelper" --section=7 $$dir/debhelper-compat-upgrade-checklist.pod > debhelper-compat-upgrade-checklist.$$lang.7; \
+ fi ; \
+ if [ -e $$dir/debhelper-obsolete-compat.pod ]; then \
+ $(POD2MAN) $(POD2MAN_FLAGS) --name="debhelper" --section=7 $$dir/debhelper-obsolete-compat.pod > debhelper-obsolete-compat.$$lang.7; \
+ fi
+ touch $@
version:
printf "package Debian::Debhelper::Dh_Version;\n\$$version='$(VERSION)';\n1" > \
- Debian/Debhelper/Dh_Version.pm
+ lib/Debian/Debhelper/Dh_Version.pm
+
+dh_%.1: dh_%
+ $(POD2MAN) $(POD2MAN_FLAGS) $^ $@
+
+dh.1: dh
+ $(POD2MAN) $(POD2MAN_FLAGS) $^ $@
debhelper.7: debhelper.pod
cat debhelper.pod | \
$(MAKEMANLIST) $(COMMANDS) | \
- $(POD2MAN) --name="debhelper" --section=7 > debhelper.7
+ $(POD2MAN) $(POD2MAN_FLAGS) --name="debhelper" --section=7 > $@
+
+%.7: %.pod
+ $(POD2MAN) $(POD2MAN_FLAGS) --name="debhelper" --section=7 $^ > $@
clean:
- rm -f *.1 *.7 Debian/Debhelper/Dh_Version.pm
+ rm -f *-stamp *.1 *.7 lib/Debian/Debhelper/Dh_Version.pm
ifneq ($(USE_NLS),no)
- po4a --previous --rm-translations --rm-backups man/po4a/po4a.cfg
+ $(PO4A) --previous --rm-translations --rm-backups man/po4a/po4a.cfg
endif
for lang in $(LANGS); do \
if [ -e man/$$lang ]; then rmdir man/$$lang; fi; \
@@ -91,16 +124,20 @@ install:
install -d $(DESTDIR)$(PREFIX)/bin \
$(DESTDIR)$(PREFIX)/share/debhelper/autoscripts \
$(DESTDIR)$(PERLLIBDIR)/Sequence \
- $(DESTDIR)$(PERLLIBDIR)/Buildsystem
+ $(DESTDIR)$(PERLLIBDIR)/Buildsystem \
+ $(DESTDIR)$(PERLLIBDIR)/DH
install dh $(COMMANDS) $(DESTDIR)$(PREFIX)/bin
install -m 0644 autoscripts/* $(DESTDIR)$(PREFIX)/share/debhelper/autoscripts
- install -m 0644 Debian/Debhelper/*.pm $(DESTDIR)$(PERLLIBDIR)
+ install -m 0644 lib/Debian/Debhelper/*.pm $(DESTDIR)$(PERLLIBDIR)
[ "$(PREFIX)" = /usr ] || \
sed -i '/$$prefix=/s@/usr@$(PREFIX)@g' $(DESTDIR)$(PERLLIBDIR)/Dh_Lib.pm
- install -m 0644 Debian/Debhelper/Sequence/*.pm $(DESTDIR)$(PERLLIBDIR)/Sequence
- install -m 0644 Debian/Debhelper/Buildsystem/*.pm $(DESTDIR)$(PERLLIBDIR)/Buildsystem
+ if [ "$(VERSION)" ]; then \
+ MV=$$(echo "$(VERSION)" | $(PERL) -ne 'print $$1 if /^(\d+)[~.]/;') ; \
+ sed -i "/constant HIGHEST_STABLE_COMPAT_LEVEL =>/s@=>.*;@=> $${MV};@g" $(DESTDIR)$(PERLLIBDIR)/Dh_Lib.pm ; \
+ fi
+ install -m 0644 lib/Debian/Debhelper/Sequence/*.pm $(DESTDIR)$(PERLLIBDIR)/Sequence
+ install -m 0644 lib/Debian/Debhelper/Buildsystem/*.pm $(DESTDIR)$(PERLLIBDIR)/Buildsystem
+ install -m 0644 lib/Debian/Debhelper/DH/*.pm $(DESTDIR)$(PERLLIBDIR)/DH
test: version
- ./run perl -MTest::Harness -e 'runtests grep { ! /CVS/ && ! /\.svn/ && -f && -x } @ARGV' t/* t/buildsystems/*
- # clean up log etc
- ./run dh_clean
+ MAKEFLAGS= prove -lrj$(TEST_JOBS) --timer t
diff --git a/autoscripts/postinst-alternatives b/autoscripts/postinst-alternatives
new file mode 100644
index 00000000..eb59f69e
--- /dev/null
+++ b/autoscripts/postinst-alternatives
@@ -0,0 +1,3 @@
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ]; then
+ update-alternatives #INSTALL_OPTIONS#
+fi
diff --git a/autoscripts/postinst-emacsen b/autoscripts/postinst-emacsen
index 6a46d79f..0d3fd133 100644
--- a/autoscripts/postinst-emacsen
+++ b/autoscripts/postinst-emacsen
@@ -1,4 +1,5 @@
-if [ "$1" = "configure" ] && [ -e /var/lib/emacsen-common/state/package/installed/emacsen-common ]
-then
- /usr/lib/emacsen-common/emacs-package-install --postinst #PACKAGE#
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if [ -e /var/lib/emacsen-common/state/package/installed/emacsen-common -a -x /usr/lib/emacsen-common/emacs-package-install ] ; then
+ /usr/lib/emacsen-common/emacs-package-install --postinst #PACKAGE#
+ fi
fi
diff --git a/autoscripts/postinst-icons b/autoscripts/postinst-icons
index 9e00f039..802134bf 100644
--- a/autoscripts/postinst-icons
+++ b/autoscripts/postinst-icons
@@ -1,3 +1,5 @@
-if which update-icon-caches >/dev/null 2>&1 ; then
- update-icon-caches #DIRLIST#
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if command -v update-icon-caches >/dev/null; then
+ update-icon-caches #DIRLIST#
+ fi
fi
diff --git a/autoscripts/postinst-init b/autoscripts/postinst-init
index 2430b2c0..8da1a734 100644
--- a/autoscripts/postinst-init
+++ b/autoscripts/postinst-init
@@ -1,4 +1,6 @@
-if [ -x "/etc/init.d/#SCRIPT#" ]; then
- update-rc.d #SCRIPT# #INITPARMS# >/dev/null
- invoke-rc.d #SCRIPT# start || #ERROR_HANDLER#
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if [ -z "${DPKG_ROOT:-}" ] && [ -x "/etc/init.d/#SCRIPT#" ]; then
+ update-rc.d #SCRIPT# #INITPARMS# >/dev/null
+ invoke-rc.d #INVOKE_RCD_PARAMS##SCRIPT# start || #ERROR_HANDLER#
+ fi
fi
diff --git a/autoscripts/postinst-init-nostart b/autoscripts/postinst-init-nostart
index 7a1bd5e8..820a106a 100644
--- a/autoscripts/postinst-init-nostart
+++ b/autoscripts/postinst-init-nostart
@@ -1,3 +1,5 @@
-if [ -x "/etc/init.d/#SCRIPT#" ]; then
- update-rc.d #SCRIPT# #INITPARMS# >/dev/null || #ERROR_HANDLER#
+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 || #ERROR_HANDLER#
+ fi
fi
diff --git a/autoscripts/postinst-init-restart b/autoscripts/postinst-init-restart
index 35bba207..d52182b4 100644
--- a/autoscripts/postinst-init-restart
+++ b/autoscripts/postinst-init-restart
@@ -1,9 +1,11 @@
-if [ -x "/etc/init.d/#SCRIPT#" ]; then
- update-rc.d #SCRIPT# #INITPARMS# >/dev/null
- if [ -n "$2" ]; then
- _dh_action=restart
- else
- _dh_action=start
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if [ -z "${DPKG_ROOT:-}" ] && [ -x "/etc/init.d/#SCRIPT#" ]; then
+ update-rc.d #SCRIPT# #INITPARMS# >/dev/null
+ if [ -n "$2" ]; then
+ _dh_action=restart
+ else
+ _dh_action=start
+ fi
+ invoke-rc.d #INVOKE_RCD_PARAMS##SCRIPT# $_dh_action || #ERROR_HANDLER#
fi
- invoke-rc.d #SCRIPT# $_dh_action || #ERROR_HANDLER#
fi
diff --git a/autoscripts/postinst-init-tmpfiles b/autoscripts/postinst-init-tmpfiles
index fd613bcd..3a70d251 100644
--- a/autoscripts/postinst-init-tmpfiles
+++ b/autoscripts/postinst-init-tmpfiles
@@ -1,5 +1,5 @@
-# In case this system is running systemd, we need to ensure that all
-# necessary tmpfiles (if any) are created before starting.
-if [ -d /run/systemd/system ] ; then
- systemd-tmpfiles --create #TMPFILES# >/dev/null || true
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if [ -x "$(command -v systemd-tmpfiles)" ]; then
+ systemd-tmpfiles ${DPKG_ROOT:+--root="$DPKG_ROOT"} --create #TMPFILES# || true
+ fi
fi
diff --git a/autoscripts/postinst-makeshlibs b/autoscripts/postinst-makeshlibs
deleted file mode 100644
index 8a25b9e9..00000000
--- a/autoscripts/postinst-makeshlibs
+++ /dev/null
@@ -1,3 +0,0 @@
-if [ "$1" = "configure" ]; then
- ldconfig
-fi
diff --git a/autoscripts/postinst-menu b/autoscripts/postinst-menu
index b56a3462..08c14eaf 100644
--- a/autoscripts/postinst-menu
+++ b/autoscripts/postinst-menu
@@ -1,3 +1,3 @@
-if [ "$1" = "configure" ] && [ -x "`which update-menus 2>/dev/null`" ]; then
+if [ "$1" = "configure" ] && [ -x "`command -v update-menus`" ] && [ -x "$DPKG_ROOT`command -v update-menus`" ]; then
update-menus
fi
diff --git a/autoscripts/postinst-menu-method b/autoscripts/postinst-menu-method
index c56d6258..deec0341 100644
--- a/autoscripts/postinst-menu-method
+++ b/autoscripts/postinst-menu-method
@@ -1,7 +1,7 @@
inst=/etc/menu-methods/#PACKAGE#
if [ -f $inst ]; then
chmod a+x $inst
- if [ -x "`which update-menus 2>/dev/null`" ]; then
+ if [ -x "`command -v update-menus`" ] && [ -x "$DPKG_ROOT`command -v update-menus`" ]; then
update-menus
fi
fi
diff --git a/autoscripts/postinst-modules b/autoscripts/postinst-modules
index f17dc2da..9f8d205b 100644
--- a/autoscripts/postinst-modules
+++ b/autoscripts/postinst-modules
@@ -1,4 +1,4 @@
-if [ "$1" = "configure" ]; then
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
if [ -e /boot/System.map-#KVERS# ]; then
depmod -a -F /boot/System.map-#KVERS# #KVERS# || true
fi
diff --git a/autoscripts/postinst-moveconffile b/autoscripts/postinst-moveconffile
deleted file mode 100644
index 28f061e3..00000000
--- a/autoscripts/postinst-moveconffile
+++ /dev/null
@@ -1,9 +0,0 @@
-if [ "$1" = configure ]; then
- if [ -e "#OLD#" ]; then
- echo "Preserving user changes to #NEW# ..."
- if [ -e "#NEW#" ]; then
- mv -f "#NEW#" "#NEW#.dpkg-new"
- fi
- mv -f "#OLD#" "#NEW#"
- fi
-fi
diff --git a/autoscripts/postinst-python b/autoscripts/postinst-python
deleted file mode 100644
index 5a1943eb..00000000
--- a/autoscripts/postinst-python
+++ /dev/null
@@ -1,7 +0,0 @@
-PYTHON=#PYVER#
-if which $PYTHON >/dev/null 2>&1 && [ -e /usr/lib/$PYTHON/compileall.py ]; then
- DIRLIST="#DIRLIST#"
- for i in $DIRLIST ; do
- $PYTHON /usr/lib/$PYTHON/compileall.py -q $i
- done
-fi
diff --git a/autoscripts/postinst-suid b/autoscripts/postinst-suid
deleted file mode 100644
index db4bc6dd..00000000
--- a/autoscripts/postinst-suid
+++ /dev/null
@@ -1,8 +0,0 @@
-if [ "$1" = "configure" ]; then
- if which suidregister >/dev/null 2>&1 && [ -e /etc/suid.conf ]; then
- suidregister -s #PACKAGE# /#FILE# #OWNER# #GROUP# #PERMS#
- elif [ -e /#FILE# ]; then
- chown #OWNER#:#GROUP# /#FILE#
- chmod #PERMS# /#FILE#
- fi
-fi
diff --git a/autoscripts/postinst-systemd-dont-enable b/autoscripts/postinst-systemd-dont-enable
new file mode 100644
index 00000000..8cd2bf44
--- /dev/null
+++ b/autoscripts/postinst-systemd-dont-enable
@@ -0,0 +1,15 @@
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if deb-systemd-helper debian-installed #UNITFILE#; then
+ # The following line should be removed in trixie or trixie+1
+ deb-systemd-helper unmask #UNITFILE# >/dev/null || true
+
+ if deb-systemd-helper --quiet was-enabled #UNITFILE#; then
+ # Create new symlinks, if any.
+ deb-systemd-helper 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 update-state #UNITFILE# >/dev/null || true
+fi
diff --git a/autoscripts/postinst-systemd-enable b/autoscripts/postinst-systemd-enable
new file mode 100644
index 00000000..d06c2fe2
--- /dev/null
+++ b/autoscripts/postinst-systemd-enable
@@ -0,0 +1,15 @@
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ # The following line should be removed in trixie or trixie+1
+ deb-systemd-helper unmask #UNITFILE# >/dev/null || true
+
+ # was-enabled defaults to true, so new installations run enable.
+ if deb-systemd-helper --quiet was-enabled #UNITFILE#; then
+ # Enables the unit on first installation, creates new
+ # symlinks on upgrades if the unit file has changed.
+ deb-systemd-helper 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 update-state #UNITFILE# >/dev/null || true
+ fi
+fi
diff --git a/autoscripts/postinst-systemd-restart b/autoscripts/postinst-systemd-restart
new file mode 100644
index 00000000..8155bc05
--- /dev/null
+++ b/autoscripts/postinst-systemd-restart
@@ -0,0 +1,11 @@
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if [ -d /run/systemd/system ]; then
+ systemctl --system daemon-reload >/dev/null || true
+ if [ -n "$2" ]; then
+ _dh_action=#RESTART_ACTION#
+ else
+ _dh_action=start
+ fi
+ deb-systemd-invoke $_dh_action #UNITFILES# >/dev/null || true
+ fi
+fi
diff --git a/autoscripts/postinst-systemd-restartnostart b/autoscripts/postinst-systemd-restartnostart
new file mode 100644
index 00000000..ebba20b8
--- /dev/null
+++ b/autoscripts/postinst-systemd-restartnostart
@@ -0,0 +1,8 @@
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if [ -z "${DPKG_ROOT:-}" ] && [ -d /run/systemd/system ]; then
+ systemctl --system daemon-reload >/dev/null || true
+ if [ -n "$2" ]; then
+ deb-systemd-invoke #RESTART_ACTION# #UNITFILES# >/dev/null || true
+ fi
+ fi
+fi
diff --git a/autoscripts/postinst-systemd-start b/autoscripts/postinst-systemd-start
new file mode 100644
index 00000000..9072c534
--- /dev/null
+++ b/autoscripts/postinst-systemd-start
@@ -0,0 +1,6 @@
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if [ -z "${DPKG_ROOT:-}" ] && [ -d /run/systemd/system ]; then
+ systemctl --system daemon-reload >/dev/null || true
+ deb-systemd-invoke start #UNITFILES# >/dev/null || true
+ fi
+fi
diff --git a/autoscripts/postinst-systemd-user-dont-enable b/autoscripts/postinst-systemd-user-dont-enable
new file mode 100644
index 00000000..a916f2ff
--- /dev/null
+++ b/autoscripts/postinst-systemd-user-dont-enable
@@ -0,0 +1,17 @@
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if [ -z "${DPKG_ROOT:-}" ]; then
+ if deb-systemd-helper --user debian-installed #UNITFILE# ; then
+ # The following line should be removed in trixie or trixie+1
+ 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
+fi
diff --git a/autoscripts/postinst-systemd-user-enable b/autoscripts/postinst-systemd-user-enable
new file mode 100644
index 00000000..b400c849
--- /dev/null
+++ b/autoscripts/postinst-systemd-user-enable
@@ -0,0 +1,17 @@
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if [ -z "${DPKG_ROOT:-}" ] ; then
+ # The following line should be removed in trixie or trixie+1
+ 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
+fi
diff --git a/autoscripts/postinst-systemd-user-restart b/autoscripts/postinst-systemd-user-restart
new file mode 100644
index 00000000..5b849391
--- /dev/null
+++ b/autoscripts/postinst-systemd-user-restart
@@ -0,0 +1,6 @@
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ if [ -z "${DPKG_ROOT:-}" ] && [ -d /run/systemd/system ]; then
+ systemctl --global daemon-reload >/dev/null || true
+ deb-systemd-invoke --user restart #UNITFILES# >/dev/null || true
+ fi
+fi
diff --git a/autoscripts/postinst-sysusers b/autoscripts/postinst-sysusers
new file mode 100644
index 00000000..fdd27d6d
--- /dev/null
+++ b/autoscripts/postinst-sysusers
@@ -0,0 +1,3 @@
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
+ systemd-sysusers ${DPKG_ROOT:+--root="$DPKG_ROOT"} #CONFILE_BASENAME#
+fi
diff --git a/autoscripts/postinst-ucf b/autoscripts/postinst-ucf
index 05468310..7445e942 100644
--- a/autoscripts/postinst-ucf
+++ b/autoscripts/postinst-ucf
@@ -1,4 +1,4 @@
-if [ "$1" = "configure" ]; then
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ]; then
ucf "#UCFSRC#" "#UCFDEST#"
ucfr #PACKAGE# "#UCFDEST#"
fi
diff --git a/autoscripts/postinst-usrlocal b/autoscripts/postinst-usrlocal
index a2f004db..e856e0f8 100644
--- a/autoscripts/postinst-usrlocal
+++ b/autoscripts/postinst-usrlocal
@@ -1,12 +1,25 @@
-if [ "$1" = configure ]; then
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ]; then
(
+ default_mode=0755
+ default_user=root
+ default_group=root
+ if [ -e /etc/staff-group-for-usr-local ]; then
+ default_mode=02775
+ default_group=staff
+ fi
while read line; do
set -- $line
dir="$1"; mode="$2"; user="$3"; group="$4"
+ if [ "$mode" = "default" ]; then
+ mode="$default_mode"
+ user="$default_user"
+ group="$default_group"
+ fi
if [ ! -e "$dir" ]; then
if mkdir "$dir" 2>/dev/null; then
- chown "$user":"$group" "$dir"
- chmod "$mode" "$dir"
+ if chown "$user":"$group" "$dir" ; then
+ chmod "$mode" "$dir" || true
+ fi
fi
fi
done
diff --git a/autoscripts/postinst-wm b/autoscripts/postinst-wm
index ee636287..be008728 100644
--- a/autoscripts/postinst-wm
+++ b/autoscripts/postinst-wm
@@ -1,4 +1,4 @@
-if [ "$1" = "configure" ]; then
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ]; then
update-alternatives --install /usr/bin/x-window-manager \
x-window-manager #WM# #PRIORITY# \
--slave /usr/share/man/man1/x-window-manager.1.gz \
diff --git a/autoscripts/postinst-wm-noman b/autoscripts/postinst-wm-noman
index aef412a3..07e8d9a2 100644
--- a/autoscripts/postinst-wm-noman
+++ b/autoscripts/postinst-wm-noman
@@ -1,4 +1,4 @@
-if [ "$1" = "configure" ]; then
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
update-alternatives --install /usr/bin/x-window-manager \
x-window-manager #WM# #PRIORITY#
fi
diff --git a/autoscripts/postinst-xfonts b/autoscripts/postinst-xfonts
index 96390e4e..93ca535d 100644
--- a/autoscripts/postinst-xfonts
+++ b/autoscripts/postinst-xfonts
@@ -1,3 +1,3 @@
-if which update-fonts-dir >/dev/null 2>&1; then
+if command -v update-fonts-dir >/dev/null; then
#CMDS#
fi
diff --git a/autoscripts/postrm-icons b/autoscripts/postrm-icons
index 9e00f039..c77c52a6 100644
--- a/autoscripts/postrm-icons
+++ b/autoscripts/postrm-icons
@@ -1,3 +1,3 @@
-if which update-icon-caches >/dev/null 2>&1 ; then
+if command -v update-icon-caches >/dev/null; then
update-icon-caches #DIRLIST#
fi
diff --git a/autoscripts/postrm-init b/autoscripts/postrm-init
index 6f5bb09a..6b813418 100644
--- a/autoscripts/postrm-init
+++ b/autoscripts/postrm-init
@@ -1,10 +1,6 @@
-if [ "$1" = "purge" ] ; then
- update-rc.d #SCRIPT# remove >/dev/null
+if [ "$1" = "remove" ] && [ -x "/etc/init.d/#SCRIPT#" ] ; then
+ chmod -x "/etc/init.d/#SCRIPT#" >/dev/null || true
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
+if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = "purge" ] ; then
+ update-rc.d #SCRIPT# remove >/dev/null
fi
diff --git a/autoscripts/postrm-makeshlibs b/autoscripts/postrm-makeshlibs
deleted file mode 100644
index 96bf24ed..00000000
--- a/autoscripts/postrm-makeshlibs
+++ /dev/null
@@ -1,3 +0,0 @@
-if [ "$1" = "remove" ]; then
- ldconfig
-fi
diff --git a/autoscripts/postrm-menu b/autoscripts/postrm-menu
index a180558d..4c4b00c5 100644
--- a/autoscripts/postrm-menu
+++ b/autoscripts/postrm-menu
@@ -1 +1 @@
-if [ -x "`which update-menus 2>/dev/null`" ]; then update-menus ; fi
+if [ -x "`command -v update-menus`" ] && [ -x "$DPKG_ROOT`command -v update-menus`" ]; then update-menus ; fi
diff --git a/autoscripts/postrm-menu-method b/autoscripts/postrm-menu-method
index ffa1e486..bcbdf47e 100644
--- a/autoscripts/postrm-menu-method
+++ b/autoscripts/postrm-menu-method
@@ -1,3 +1,3 @@
inst=/etc/menu-methods/#PACKAGE#
if [ "$1" = "remove" ] && [ -f "$inst" ]; then chmod a-x $inst ; fi
-if [ -x "`which update-menus 2>/dev/null`" ]; then update-menus ; fi
+if [ -x "`command -v update-menus`" ] && [ -x "$DPKG_ROOT`command -v update-menus`" ]; then update-menus ; fi
diff --git a/autoscripts/postrm-suid b/autoscripts/postrm-suid
deleted file mode 100644
index a4cfecf9..00000000
--- a/autoscripts/postrm-suid
+++ /dev/null
@@ -1,4 +0,0 @@
-if [ "$1" = remove ] && [ -e /etc/suid.conf ] && \
- which suidunregister >/dev/null 2>&1; then
- suidunregister -s #PACKAGE# /#FILE#
-fi
diff --git a/autoscripts/postrm-systemd b/autoscripts/postrm-systemd
new file mode 100644
index 00000000..a782f3af
--- /dev/null
+++ b/autoscripts/postrm-systemd
@@ -0,0 +1,5 @@
+if [ "$1" = "purge" ]; then
+ if [ -x "/usr/bin/deb-systemd-helper" ]; then
+ deb-systemd-helper purge #UNITFILES# >/dev/null || true
+ fi
+fi
diff --git a/autoscripts/postrm-systemd-reload-only b/autoscripts/postrm-systemd-reload-only
new file mode 100644
index 00000000..dac15c30
--- /dev/null
+++ b/autoscripts/postrm-systemd-reload-only
@@ -0,0 +1,3 @@
+if [ "$1" = remove ] && [ -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..0745d6fe
--- /dev/null
+++ b/autoscripts/postrm-systemd-user
@@ -0,0 +1,5 @@
+if [ "$1" = "purge" ]; then
+ if [ -z "${DPKG_ROOT:-}" ] && [ -x "/usr/bin/deb-systemd-helper" ] ; then
+ deb-systemd-helper --user purge #UNITFILES# >/dev/null || true
+ fi
+fi
diff --git a/autoscripts/postrm-systemd-user-reload-only b/autoscripts/postrm-systemd-user-reload-only
new file mode 100644
index 00000000..8f41121b
--- /dev/null
+++ b/autoscripts/postrm-systemd-user-reload-only
@@ -0,0 +1,3 @@
+if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = remove ] && [ -d /run/systemd/system ] ; then
+ systemctl --global daemon-reload >/dev/null || true
+fi
diff --git a/autoscripts/postrm-ucf b/autoscripts/postrm-ucf
index da375726..ff2f32c6 100644
--- a/autoscripts/postrm-ucf
+++ b/autoscripts/postrm-ucf
@@ -3,10 +3,10 @@ if [ "$1" = "purge" ]; then
rm -f "#UCFDEST#$ext"
done
- if [ -x "`which ucf 2>/dev/null`" ]; then
+ if [ -x "`command -v ucf`" ]; then
ucf --purge "#UCFDEST#"
fi
- if [ -x "`which ucfr 2>/dev/null`" ]; then
+ if [ -x "`command -v ucfr`" ]; then
ucfr --purge #PACKAGE# "#UCFDEST#"
fi
fi
diff --git a/autoscripts/postrm-xfonts b/autoscripts/postrm-xfonts
index cd476a3d..57610dcd 100644
--- a/autoscripts/postrm-xfonts
+++ b/autoscripts/postrm-xfonts
@@ -1,3 +1,3 @@
-if [ -x "`which update-fonts-dir 2>/dev/null`" ]; then
+if [ -x "`command -v update-fonts-dir`" ]; then
#CMDS#
fi
diff --git a/autoscripts/preinst-emacsen b/autoscripts/preinst-emacsen
index 780fc697..c4285d92 100644
--- a/autoscripts/preinst-emacsen
+++ b/autoscripts/preinst-emacsen
@@ -1,5 +1,5 @@
if ( [ "$1" = "install" ] || [ "$1" = "upgrade" ] ) \
- && [ -e /var/lib/emacsen-common/state/package/installed/emacsen-common ]
+ && [ -e /var/lib/emacsen-common/state/package/installed/emacsen-common -a -x /usr/lib/emacsen-common/emacs-package-install ]
then
/usr/lib/emacsen-common/emacs-package-install --preinst #PACKAGE#
fi
diff --git a/autoscripts/preinst-init-chmod b/autoscripts/preinst-init-chmod
new file mode 100644
index 00000000..4001b827
--- /dev/null
+++ b/autoscripts/preinst-init-chmod
@@ -0,0 +1,3 @@
+if [ "$1" = "install" ] && [ -n "$2" ] && [ -e "/etc/init.d/#SCRIPT#" ] ; then
+ chmod +x "/etc/init.d/#SCRIPT#" >/dev/null || true
+fi
diff --git a/autoscripts/preinst-init-stop b/autoscripts/preinst-init-stop
new file mode 100644
index 00000000..1cb01759
--- /dev/null
+++ b/autoscripts/preinst-init-stop
@@ -0,0 +1,3 @@
+if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = upgrade ] && [ -x "/etc/init.d/#SCRIPT#" ] ; then
+ invoke-rc.d #INVOKE_RCD_PARAMS##SCRIPT# stop || #ERROR_HANDLER#
+fi
diff --git a/autoscripts/preinst-moveconffile b/autoscripts/preinst-moveconffile
deleted file mode 100644
index 619b4cef..00000000
--- a/autoscripts/preinst-moveconffile
+++ /dev/null
@@ -1,9 +0,0 @@
-if [ "$1" = install ] || [ "$1" = upgrade ]; then
- if [ -e "#OLD#" ]; then
- if [ "`md5sum \"#OLD#\" | sed -e \"s/ .*//\"`" = \
- "`dpkg-query -W -f='${Conffiles}' #PACKAGE# | sed -n -e \"\\\\' #OLD# '{s/ obsolete$//;s/.* //p}\"`" ]
- then
- rm -f "#OLD#"
- fi
- fi
-fi
diff --git a/autoscripts/preinst-sgmlcatalog b/autoscripts/preinst-sgmlcatalog
deleted file mode 100644
index 96f06738..00000000
--- a/autoscripts/preinst-sgmlcatalog
+++ /dev/null
@@ -1,8 +0,0 @@
-if test -f #CENTRALCAT# -a "(" "$1" = "upgrade" -o "$1" = "install" -a -n "$2" ")" &&
- ! dpkg-query -S #CENTRALCAT# >/dev/null 2>&1; then
- # If the dpkg-query command returns non-zero, the central catalog is
- # not owned by any package. This is due to an old behaviour of
- # debhelper. Now that file becomes a conffile. In order to avoid a
- # question during installation, we remove the old non-conffile.
- mv #CENTRALCAT# #CENTRALCAT#.old
-fi
diff --git a/autoscripts/preinst-systemd-stop b/autoscripts/preinst-systemd-stop
new file mode 100644
index 00000000..f4255100
--- /dev/null
+++ b/autoscripts/preinst-systemd-stop
@@ -0,0 +1,3 @@
+if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = upgrade ] && [ -d /run/systemd/system ] ; then
+ deb-systemd-invoke stop #UNITFILES# >/dev/null || true
+fi
diff --git a/autoscripts/prerm-alternatives b/autoscripts/prerm-alternatives
new file mode 100644
index 00000000..72eb2cfe
--- /dev/null
+++ b/autoscripts/prerm-alternatives
@@ -0,0 +1,3 @@
+if [ "$1" = "remove" ]; then
+ update-alternatives #RM_OPTIONS#
+fi
diff --git a/autoscripts/prerm-emacsen b/autoscripts/prerm-emacsen
index 31ecfaa4..4c7c2b0b 100644
--- a/autoscripts/prerm-emacsen
+++ b/autoscripts/prerm-emacsen
@@ -1,3 +1,3 @@
-if [ -e /var/lib/emacsen-common/state/package/installed/emacsen-common ] ; then
+if [ -e /var/lib/emacsen-common/state/package/installed/emacsen-common -a -x /usr/lib/emacsen-common/emacs-package-remove ] ; then
/usr/lib/emacsen-common/emacs-package-remove --prerm #PACKAGE#
fi
diff --git a/autoscripts/prerm-init b/autoscripts/prerm-init
index 2a8aa4c6..94fbcf18 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#
+if [ -z "${DPKG_ROOT:-}" ] && [ -x "/etc/init.d/#SCRIPT#" ]; then
+ 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..a9408ebe 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#
+if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = remove ] && [ -x "/etc/init.d/#SCRIPT#" ] ; then
+ invoke-rc.d #INVOKE_RCD_PARAMS##SCRIPT# stop || #ERROR_HANDLER#
fi
diff --git a/autoscripts/prerm-python b/autoscripts/prerm-python
deleted file mode 100644
index e6e779f8..00000000
--- a/autoscripts/prerm-python
+++ /dev/null
@@ -1,3 +0,0 @@
-dpkg -L #PACKAGE# |
- awk '$0~/\.py$/ {print $0"c\n" $0"o"}' |
- xargs rm -f >&2
diff --git a/autoscripts/prerm-systemd b/autoscripts/prerm-systemd
new file mode 100644
index 00000000..2810349d
--- /dev/null
+++ b/autoscripts/prerm-systemd
@@ -0,0 +1,3 @@
+if [ -z "${DPKG_ROOT:-}" ] && [ -d /run/systemd/system ]; then
+ deb-systemd-invoke stop #UNITFILES# >/dev/null || true
+fi
diff --git a/autoscripts/prerm-systemd-restart b/autoscripts/prerm-systemd-restart
new file mode 100644
index 00000000..17ee105a
--- /dev/null
+++ b/autoscripts/prerm-systemd-restart
@@ -0,0 +1,3 @@
+if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = remove ] && [ -d /run/systemd/system ] ; then
+ deb-systemd-invoke stop #UNITFILES# >/dev/null || true
+fi
diff --git a/autoscripts/prerm-systemd-user-stop b/autoscripts/prerm-systemd-user-stop
new file mode 100644
index 00000000..beab3941
--- /dev/null
+++ b/autoscripts/prerm-systemd-user-stop
@@ -0,0 +1,3 @@
+if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = remove ] && [ -d /run/systemd/system ] ; then
+ deb-systemd-invoke --user stop #UNITFILES# >/dev/null || true
+fi
diff --git a/debhelper-compat-upgrade-checklist.pod b/debhelper-compat-upgrade-checklist.pod
new file mode 100644
index 00000000..1ddeba7e
--- /dev/null
+++ b/debhelper-compat-upgrade-checklist.pod
@@ -0,0 +1,780 @@
+=encoding UTF-8
+
+=head1 NAME
+
+debhelper-compat-upgrade-checklist - Upgrade checklist for supported debhelper compat levels
+
+=head1 SYNOPSIS
+
+This document is an upgrade checklist of all the supported debhelper compat levels. It also
+lists all the support debhelper compat levels.
+
+Information about how to declare the compat level is in L<debhelper(7)/COMPATIBILITY LEVELS>.
+
+If you are upgrading from a (now) obsolete compat level, then please refer to
+L<debhelper-obsolete-compat(7)>.
+
+=head1 DESCRIPTION
+
+=head2 Upgrade checklist for supported compatibility levels
+
+These are the available compatibility levels:
+
+=over 4
+
+=item v15
+
+This compatibility level is still open for development; use with caution.
+
+Changes from v14 are:
+
+=over 8
+
+=item -
+
+The B<dh_auto_install> tool no longer defaults to B<< --destdir=debian/I<package> >>
+for source packages only producing a single binary. If this behaviour is wanted,
+the package should explicitly activate the B<single-binary> dh addon (e.g., by adding
+B<dh-sequence-single-binary> to B<Build-Depends>) or pass B<--destdir> to
+B<dh_auto_install>.
+
+The rationale for this change is to avoid "surprises" when adding a second binary package
+later. Previously, debhelper would silently change behaviour often resulting in empty
+binary packages being uploaded to the archive by mistake. With the new behaviour,
+the B<single-binary> addon will detect the mismatch and warn the maintainer of what is
+about to happen.
+
+=back
+
+=item v14
+
+This compatibility level is still open for development; use with caution.
+
+Changes from v13 are:
+
+=over 8
+
+=item -
+
+The B<cmake> buildsystem now passes
+B<-DCMAKE_BUILD_RPATH_USE_ORIGIN=ON> to L<cmake(1)> to avoid some
+reproducibility issues.
+
+=item -
+
+The tool B<dh_installsysusers> is now included in the default sequence. This
+helper tool will process systemd sysusers files.
+
+=item -
+
+Use of the B<dh_gconf> command in override and hook targets now causes
+an error. The B<dh_gconf> command has been a no-op for years and was
+removed in debhelper 13.4.
+
+=item -
+
+The B<dh> sequencer will warn if the B<single-binary> addon is implicitly activated to
+warn maintainers of the pending compat 15 change in B<dh_auto_install>.
+
+Maintainers are urged to either explicitly activate the B<single-binary> addon to
+preserve the existing behaviour (e.g., by adding B<dh-sequence-single-binary> to
+Build-Depends), or explicitly passing B<--destdir> to B<dh_auto_install> if used and
+then passing B<--without single-binary> to B<dh> (the latter to silence the warning).
+
+The rationale for this change is to avoid "surprises" when adding a second binary package
+later. Previously, debhelper would silently change behaviour often resulting in empty
+binary packages being uploaded to the archive by mistake. With the new behaviour,
+the B<single-binary> addon will detect the mismatch and warn the maintainer of what is
+about to happen.
+
+=item -
+
+The B<dh_installalternatives> tool will now be run after B<dh_link> rather than after
+B<dh_installinitramfs> in the default B<dh> sequence.
+
+=item -
+
+The B<dh_installpam> tool will now install PAM configuration files under
+F<< /usr/lib/pam.d/I<package> >> instead of F<< /etc/pam.d/I<package> >>.
+
+Please consider using the "rm_conffile" feature from
+L<dh_installdeb(1)> to ensure the proper removal of previous PAM files.
+
+=item -
+
+The B<meson+ninja> and B<cmake> build systems now use B<meson install> and
+B<cmake --install>, respectively, instead of B<ninja install> and B<make install>
+in the L<dh_auto_install(1)> call. Any override of B<dh_auto_install> that
+passes extra parameters to the upstream build system should be reviewed.
+
+=item -
+
+The B<cmake> build system passes B<< -DBUILD_TESTING:BOOL=OFF >> to B<cmake>
+if B<DEB_BUILD_OPTIONS> contains B<nocheck> thus disabling CTest.
+
+=back
+
+=item v13
+
+This is the recommended mode of operation.
+
+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>.
+
+=item -
+
+The third-party B<gradle> build system (from B<gradle-debian-helper>
+package) now runs the upstream-provided test suite automatically. To
+suppress such behavior, override B<dh_auto_test>.
+
+=item -
+
+The B<dh_installman> tool now aborts if it sees conflicting
+definitions of a manpage. This typically happens if the upstream
+build system is installing a compressed version and the package lists
+an uncompressed version of the manpage in F<<
+debian/I<package>.manpages >>. Often the easiest fix is to remove the
+manpage from F<< debian/I<package>.manpages >> (assuming both versions
+are identical).
+
+=item -
+
+The B<dh_auto_*> helpers now reset the environment variables B<HOME>
+and common B<XDG_*> variable. Please see description of the
+environment variables in L</ENVIRONMENT> for how this is handled.
+
+I<This feature changed between debhelper 13 and debhelper 13.2.>
+
+=item -
+
+The B<dh> command will now error if an override or hook target for an
+obsolete command are present in F<debian/rules>
+(e.g. B<override_dh_systemd_enable:>).
+
+=item -
+
+The B<dh_missing> command will now default to B<--fail-missing>. This
+can be reverted to a non-fatal warning by explicitly passing
+B<--list-missing> like it was in compat 12.
+
+If you do not want the warning either, please omit the call to
+B<dh_missing>. If you use the B<dh> command sequencer, then you can
+do this by inserting an empty override target in the
+F<debian/rules> file of the relevant package. As an example:
+
+ # Disable dh_missing
+ override_dh_missing:
+
+=item -
+
+The B<dh> command sequencer now runs B<dh_installtmpfiles> in the
+default sequence. The B<dh_installtmpfiles> takes over handling of
+tmpfiles.d configuration files. Related functionality in
+B<dh_installsystemd> is now disabled.
+
+Note that B<dh_installtmpfiles> responds to
+F<< debian/I<package>.tmpfiles >> where B<dh_installsystemd> used
+a name without the trailing "s".
+
+=item -
+
+Many B<dh_*> tools now support limited variable expansion via the
+B<${foo}> syntax. In many cases, this can be used to reference paths
+that contain either spaces or L<dpkg-architecture(1)> values. While
+this can reduce the need for L<dh-exec(1)> in some cases, it is B<not>
+a replacement L<dh-exec(1)> in general. If you need filtering,
+renaming, etc., the package will still need L<dh-exec(1)>.
+
+Please see L</Substitutions in debhelper config files> for syntax and
+available substitution variables. To B<dh_*> tool writers, substitution
+expansion occurs as a part of the B<filearray> and B<filedoublearray>
+functions.
+
+=item -
+
+The B<dh> command sequencer will now skip all hook and override targets
+for B<dh_auto_test>, B<dh_dwz> and B<dh_strip> when B<DEB_BUILD_OPTIONS>
+lists the relevant B<nocheck> / B<nostrip> options.
+
+Any package relying on these targets to always be run should instead
+move relevant logic out of those targets. E.g. non-test related
+packaging code from B<override_dh_auto_test> would have to be moved to
+B<execute_after_dh_auto_build> or B<execute_before_dh_auto_install>.
+
+=item -
+
+The B<cmake> buildsystem now passes B<-DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON>
+to L<cmake(1)> to speed up automatic installation process. If for some reason
+you need previous behavior, override the flag:
+
+ dh_auto_configure -- -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=OFF ...
+
+=back
+
+=item v12
+
+Changes from v11 are:
+
+=over 8
+
+=item -
+
+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>) is now the default.
+
+If an unversioned dependency in the shlibs file is wanted, this can be
+obtained by passing B<-VNone> instead. However, please see
+L<dh_makeshlibs(1)> for the caveat of unversioned dependencies.
+
+=item -
+
+The B<-s> (B<--same-arch>) option is removed. Please use B<-a> (B<--arch>) instead.
+
+=item -
+
+Invoking B<dh_clean -k> now causes an error instead of a deprecation
+warning.
+
+=item -
+
+The B<--no-restart-on-upgrade> option in B<dh_installinit> has been removed.
+Please use the new name B<--no-stop-on-upgrade>
+
+=item -
+
+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 circumstance. This bug is now removed and will cause
+helpers that rely on the bug to fail with a "command not found"-error.
+
+=item -
+
+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 also see the files installed by other helpers.
+
+=item -
+
+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 upstart configuration file. The error is there to
+remind the package maintainer to ensure the proper removal of the
+conffiles shipped in previous versions of the package (if any).
+
+=item -
+
+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 be invalid.
+
+=item -
+
+The B<dh_missing> tool will now default to B<--list-missing>.
+
+=item -
+
+The B<dh_makeshlibs> tool will now only pass libraries to L<dpkg-gensymbols(1)>
+if the ELF binary has a SONAME (containing ".so").
+
+=item -
+
+The B<dh_compress> tool no longer compresses examples (i.e. anything installed
+in F<</usr/share/doc/I<package>/examples>>.)
+
+=item -
+
+The standard sequence in B<dh> now includes B<dh_dwz> and
+B<dh_installinitramfs> by default. This makes the B<dwz> and
+B<installinitramfs> sequences obsolete and they will now fail with an
+error. If you want to skip these commands, then please insert an
+empty override target for them in F<debian/rules>
+(e.g. I<override_dh_dwz:>)
+
+=item -
+
+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 should be B</usr/libexec> (per FHS 3.0, adopted in
+Debian Policy 4.1.5).
+
+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.
+via the following example:
+
+ override_dh_auto_configure:
+ dh_auto_configure -- --libexecdir=/usr/libexec
+
+Note the B<--> before the B<--libexecdir> parameter.
+
+=item -
+
+B<Retroactively removed in debhelper/13.5>:
+
+The B<dh_installdeb> tool would no longer installs the maintainer provided
+F<conffiles> file as it was deemed unnecessary. However, the
+B<remove-on-upgrade> from dpkg/1.20 made the file relevant again and
+B<dh_installdeb> now installs it again in compat levels 12+.
+
+=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 v11
+
+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:
+
+=over 8
+
+=item -
+
+B<dh_installinit> no longer installs F<service> or F<tmpfile> files,
+nor generates maintainer scripts for those files. Please use the new
+B<dh_installsystemd> helper.
+
+=item -
+
+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> sequence for B<dh> has also been removed. If you need
+to disable the B<dh_installsystemd> helper tool, please use an empty
+override target.
+
+Please note that the B<dh_installsystemd> tool has a slightly
+different behaviour in some cases (e.g. when using the B<--name>
+parameter).
+
+=item -
+
+B<dh_installdirs> no longer creates debian/I<package> directories
+unless explicitly requested (or it has to create a subdirectory in
+it).
+
+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
+(e.g. B<configure> or B<cmake>) are unaffected by this change.
+
+=item -
+
+The B<autoconf> buildsystem now passes B<--runstatedir=/run> to
+F<./configure>.
+
+=item -
+
+The B<cmake> buildsystem now passes
+B<-DCMAKE_INSTALL_RUNSTATEDIR=/run> to L<cmake(1)>.
+
+=item -
+
+B<dh_installman> will now prefer detecting the language from the
+path name rather than the extension.
+
+=item -
+
+B<dh_auto_install> will now only create the destination
+directory it needs. Previously, it would create the package build
+directory for all packages. This will not affect packages that only
+build with debhelper commands, but it may expose bugs in commands not
+included in debhelper.
+
+=item -
+
+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 match anything or reference a path that does not exist.
+
+Known exceptions include building with the B<nodoc> profile, where the
+above tools will silently permit failed matches where the patterns
+are used to specify documentation.
+
+=item -
+
+The helpers B<dh_installdocs>, B<dh_installexamples>, B<dh_installinfo>,
+and B<dh_installman> now accept the parameter B<--sourcedir> with same
+meaning as B<dh_install>. Furthermore, they now also fall back to
+F<debian/tmp> like B<dh_install>.
+
+Migration note: A bug in debhelper 11 up to 11.1.5 made
+B<dh_installinfo> incorrectly ignore B<--sourcedir>.
+
+=item -
+
+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 the B<PERL5LIB> environment variable. E.g. by adding
+B<export PERL5LIB=.> in their debian/rules file (or similar).
+
+=item -
+
+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 avoid a lot of packages failing to build at the same
+time.
+
+Note this item will eventually become obsolete as upstream intends
+to drop support for the B<PERL_USE_UNSAFE_INC> environment variable.
+When perl drops support for it, then this variable will be removed
+retroactively from existing compat levels as well.
+
+=item -
+
+The B<dh_makeshlibs> helper will now exit with an error if objdump
+returns a non-zero exit from analysing a given file.
+
+=item -
+
+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
+recommendation from Debian policy §12.3 (since version 3.9.7).
+
+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 change is not relevant for that source package and
+you can skip to the next change.
+
+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<-doc> package. If they find such a I<doc-main-package>, they
+will now install the documentation into the path F<<
+/usr/share/doc/I<doc-main-package> >> in the given doc package.
+I.e. the path can change but the documentation is still shipped in the
+I<-doc> package.
+
+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 to diverge from Debian policy recommendation.
+
+Some documentation will not be affected by this change. These
+exceptions include the copyright file, changelog files, README.Debian,
+etc. These files will still be installed in the path F<<
+/usr/share/doc/I<package> >>.
+
+=item -
+
+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 for an ELF header to determine if a given file is an
+shared object or an ELF executable.
+
+This change may cause the tools to process more files than previously.
+
+=back
+
+=item v10
+
+Changes from v9 are:
+
+=over 8
+
+=item -
+
+B<dh_installinit> will no longer installs a file named debian/I<package>
+as an init script.
+
+=item -
+
+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 binNMUs.
+
+=item -
+
+B<dh_installdeb> no longer installs a maintainer-provided
+debian/I<package>.shlibs file. This is now done by B<dh_makeshlibs>
+instead.
+
+=item -
+
+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).
+
+=item -
+
+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.
+
+=item -
+
+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
+have been run. The B<dh> command I<still> keeps track of whether it
+already ran the "build" sequence and skip it if it did.
+
+The main effects of this are:
+
+=over 4
+
+=item -
+
+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 full "clean and rebuild" cycle)
+
+=item -
+
+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 happens in the same override target everything will work as
+before.
+
+Example of where it can go wrong:
+
+ override_dh_foo:
+ dh_foo -pmy-pkg
+
+ override_dh_bar:
+ dh_bar
+ dh_foo --remaining
+
+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 issue is not limited to B<--remaining>, but also includes
+B<-a>, B<-i>, etc.
+
+=back
+
+=item -
+
+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 work properly and packages have begun to rely on the incomplete
+shell escaping (e.g. quoting file names).
+
+=item -
+
+The B<dh_installinit> command now defaults to
+B<--restart-after-upgrade>. For packages needing the previous
+behaviour, please use B<--no-restart-after-upgrade>.
+
+=item -
+
+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
+
+=item -
+
+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 v9
+
+Changes from v8 are:
+
+=over 8
+
+=item -
+
+Multiarch support. In particular, B<dh_auto_configure> passes
+multiarch directories to autoconf in --libdir and --libexecdir.
+
+=item -
+
+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 targets that exist in the rules file. There's no need to define an
+explicit binary target with explicit dependencies on the other targets.
+
+=item -
+
+B<dh_strip> compresses debugging symbol files to reduce the installed
+size of -dbg packages.
+
+=item -
+
+B<dh_auto_configure> does not include the source package name
+in --libexecdir when using autoconf.
+
+=item -
+
+B<dh> does not default to enabling --with=python-support
+
+(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 regardless of compat level)
+
+=item -
+
+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.
+
+=item -
+
+B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and
+LDFLAGS to perl F<Makefile.PL> and F<Build.PL>
+
+=item -
+
+B<dh_strip> puts separated debug symbols in a location based on their
+build-id.
+
+=item -
+
+Executable debhelper config files are run and their output used as the
+configuration.
+
+=back
+
+This mode is deprecated.
+
+=item v8
+
+Changes from v7 are:
+
+=over 8
+
+=item -
+
+Commands will fail rather than warning when they are passed unknown options.
+
+=item -
+
+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.
+Also, libraries in unusual locations that B<dpkg-gensymbols> would not
+have processed before will be passed to it, a behavior change that
+can cause some packages to fail to build.
+
+=item -
+
+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 $@>".
+
+=item -
+
+B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to F<Makefile.PL>.
+
+=back
+
+This mode is deprecated.
+
+=item v7
+
+This mode is deprecated.
+
+This is the lowest supported compatibility level.
+
+If you are upgrading from an earlier compatibility level, please
+review L<debhelper-obsolete-compat(7)>.
+
+=back
+
+=head1 SEE ALSO
+
+=over 4
+
+=item L<debhelper-obsolete-compat(7)>
+
+Upgrading from a (now) obsolete compatibility level? This document covers the
+upgrade checklist up to the earliest supported level.
+
+=item L<debhelper(7)>
+
+General information about the debhelper framework. This document also covers
+how to declare your chosen debhelper compat level.
+
+=back
+
+=head1 AUTHORS
+
+Niels Thykier <niels@thykier.net>
+
+Joey Hess
+
+=cut
diff --git a/debhelper-obsolete-compat.pod b/debhelper-obsolete-compat.pod
new file mode 100644
index 00000000..965c8947
--- /dev/null
+++ b/debhelper-obsolete-compat.pod
@@ -0,0 +1,188 @@
+=head1 NAME
+
+debhelper-obsolete-compat - List of no longer supported compat levels
+
+=head1 SYNOPSIS
+
+This document contains the upgrade guidelines from all compat levels
+which are no longer supported. Accordingly it is mostly for
+historical purposes and to assist people upgrading from a
+non-supported compat level to a supported level.
+
+For upgrades from supported compat levels, please see L<debhelper(7)>.
+
+=head1 UPGRADE LIST FOR COMPAT LEVELS
+
+The following is the list of now obsolete compat levels and their
+changes.
+
+=over 4
+
+=item v7
+
+This is the lowest supported compatibility level.
+
+Changes from v6 are:
+
+=over 8
+
+=item -
+
+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 using
+B<--sourcedir>). This allows B<dh_install> to interoperate with B<dh_auto_install>,
+which installs to F<debian/tmp>, without needing any special parameters.
+
+=item -
+
+B<dh_clean> will read F<debian/clean> and delete files listed there.
+
+=item -
+
+B<dh_clean> will delete toplevel F<*-stamp> files.
+
+=item -
+
+B<dh_installchangelogs> will guess at what file is the upstream changelog if
+none is specified.
+
+=back
+
+=item v6
+
+Changes from v5 are:
+
+=over 8
+
+=item -
+
+Commands that generate maintainer script fragments will order the
+fragments in reverse order for the F<prerm> and F<postrm> scripts.
+
+=item -
+
+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
+directory.
+
+=item -
+
+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.
+
+=item -
+
+B<dh_installman> allows overwriting existing man pages in the package build
+directory. In previous compatibility levels it silently refuses to do this.
+
+=back
+
+This mode is deprecated.
+
+=item v5
+
+Changes from v4 are:
+
+=over 8
+
+=item -
+
+Comments are ignored in debhelper config files.
+
+=item -
+
+B<dh_strip --dbg-package> now specifies the name of a package to put debugging
+symbols in, not the packages to take the symbols from.
+
+=item -
+
+B<dh_installdocs> skips installing empty files.
+
+=item -
+
+B<dh_install> errors out if wildcards expand to nothing.
+
+=back
+
+=item v4
+
+Changes from v3 are:
+
+=over 8
+
+=item -
+
+B<dh_makeshlibs -V> will not include the Debian part of the version number in
+the generated dependency line in the shlibs file.
+
+=item -
+
+You are encouraged to put the new B<${misc:Depends}> into F<debian/control> to
+supplement the B<${shlibs:Depends}> field.
+
+=item -
+
+B<dh_fixperms> will make all files in F<bin/> directories and in F<etc/init.d>
+executable.
+
+=item -
+
+B<dh_link> will correct existing links to conform with policy.
+
+=back
+
+This mode is deprecated.
+
+=item v3
+
+This mode works like v2, with the following additions:
+
+=over 8
+
+=item -
+
+Debhelper config files support globbing via B<*> and B<?>, when appropriate. To
+turn this off and use those characters raw, just prefix with a backslash.
+
+=item -
+
+B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call B<ldconfig>.
+
+=item -
+
+Every file in F<etc/> is automatically flagged as a conffile by B<dh_installdeb>.
+
+=back
+
+This mode is deprecated.
+
+=item v2
+
+In this mode, debhelper will consistently use debian/I<package>
+as the package tree directory for every package that is built.
+
+This mode is deprecated.
+
+=item v1
+
+This is the original debhelper compatibility level, and so it is the default
+one. In this mode, debhelper will use F<debian/tmp> as the package tree
+directory for the first binary package listed in the control file, while using
+debian/I<package> for all other packages listed in the F<control> file.
+
+This mode is deprecated.
+
+=back
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+=head1 AUTHORS
+
+Niels Thykier <niels@thykier.net>
+
+Joey Hess
+
+=cut
diff --git a/debhelper.pod b/debhelper.pod
index 659c4a30..29a37f7f 100644
--- a/debhelper.pod
+++ b/debhelper.pod
@@ -1,10 +1,12 @@
+=encoding UTF-8
+
=head1 NAME
debhelper - the debhelper tool suite
=head1 SYNOPSIS
-B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-p>I<package>] [B<-N>I<package>] [B<-P>I<tmpdir>]
+B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<--no-act>] [B<-p>I<package>] [B<-N>I<package>] [B<-P>I<tmpdir>]
=head1 DESCRIPTION
@@ -26,6 +28,11 @@ package, which contains a L<dh_make|dh_make(1)> command that partially
automates the process. For a more gentle introduction, the B<maint-guide> Debian
package contains a tutorial about making your first package using debhelper.
+Except where the tool explicitly denotes otherwise, all of the debhelper
+tools assume that they run from the root directory of an unpacked source
+package. This is so they can locate find files like F<debian/control>
+when needed.
+
=head1 DEBHELPER COMMANDS
Here is the list of debhelper commands you can use. See their man
@@ -71,7 +78,11 @@ complicated formats.
Note for the first (or only) binary package listed in
F<debian/control>, debhelper will use F<debian/foo> when there's no
-F<debian/package.foo> file.
+F<debian/I<package>.foo> file. However, it is often a good idea to keep
+the F<I<package>.> prefix as it is more explicit. The primary exception
+to this are files that debhelper by default installs in every binary
+package when it does not have a package prefix (such as
+F<debian/copyright> or F<debian/changelog>).
In some rare cases, you may want to have different versions of these files
for different architectures or OSes. If files named debian/I<package>.foo.I<ARCH>
@@ -88,10 +99,172 @@ You can also put comments in these files; lines beginning with B<#> are
ignored.
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,
-you can make the file executable, and write a program that outputs
-whatever content is appropriate for a given situation. When you do so,
-the output is not further processed to expand wildcards or strip comments.
+easy to read, understand, and modify.
+
+=head2 Substitutions in debhelper config files
+
+In compatibility level 13 and later, it is possible to use simple
+substitutions in debhelper config files for the following tools:
+
+=over 4
+
+=item *
+
+dh_clean
+
+=item *
+
+dh_install
+
+=item *
+
+dh_installcatalogs
+
+=item *
+
+dh_installdeb
+
+=item *
+
+dh_installdirs
+
+=item *
+
+dh_installdocs
+
+=item *
+
+dh_installexamples
+
+=item *
+
+dh_installinfo
+
+=item *
+
+dh_installman
+
+=item *
+
+dh_installwm
+
+=item *
+
+dh_link
+
+=item *
+
+dh_missing
+
+=item *
+
+dh_ucf
+
+=back
+
+All substitution variables are of the form I<${foo}> and the braces
+are mandatory. Variable names are case-sensitive and consist of
+alphanumerics (a-zA-Z0-9), hyphens (-), underscores (_), and colons (:).
+The first character must be an alphanumeric.
+
+If you need a literal dollar sign that cannot trigger a substitution,
+you can either use the B<${Dollar}> substitution or the sequence B<${}>.
+
+The following expansions are available:
+
+=over 4
+
+=item B<DEB_HOST_*>, B<DEB_BUILD_*>, B<DEB_TARGET_*>
+
+Expands to the relevant L<dpkg-architecture(1)> value (similar to
+I<dpkg-architecture -qVARIABLE_HERE>).
+
+When in doubt, the B<DEB_HOST_*> variant is the one that will work both
+for native and cross builds.
+
+For performance reasons, debhelper will attempt to resolve these
+names from the environment first before consulting
+L<dpkg-architecture(1)>. This is mostly mentioned for completeness
+as it will not matter for most cases.
+
+=item B<Dollar>
+
+Expands to a single literal B<$>-symbol. This symbol will I<never>
+be considered part of a substitution variable. That is:
+
+ # Triggers an error
+ ${NO_SUCH_TOKEN}
+ # Expands to the literal value "${NO_SUCH_TOKEN}"
+ ${Dollar}{NO_SUCH_TOKEN}
+
+This variable equivalent to the sequence B<${}> and the two can be
+used interchangeably.
+
+=item B<Newline>, B<Space>, B<Tab>
+
+Expands to a single ASCII newline, space and tab respectively.
+
+This can be useful if you need to include a literal whitespace
+character (e.g. space) where it would otherwise be stripped or
+used as a separator.
+
+=item B<< env:I<NAME> >>
+
+Expands to the environment variable I<NAME>. The environment
+variable must be set (but can be set to the empty string).
+
+=back
+
+Note that all variables must expand to a defined value. As an example,
+if debhelper sees I<${env:FOO}>, then it will insist that the environment
+variable I<FOO> is set (it can be set to the empty string).
+
+=head3 Substitution limits
+
+To avoid infinite loops and resource exhaustion, debhelper will stop
+with an error if the text contains many substitution variables (50) or
+they expand beyond a certain size (4096 characters or 3x length of
+the original input - whichever is bigger).
+
+=head2 Executable debhelper config files
+
+If you need additional flexibility, many of the debhelper tools
+(e.g. L<dh_install(1)>) support executing a config file as a script.
+
+To use this feature, simply mark the config file as executable
+(e.g. B<< chmod +x debian/I<package>.install >>) and the tool will
+attempt to execute it and use the output of the script. In many
+cases, you can use L<dh-exec(1)> as interpreter of the config file to
+retain most of the original syntax while getting the additional
+flexibility you need.
+
+
+When using executable debhelper config files, please be aware of the
+following:
+
+=over 4
+
+=item *
+
+The executable config file B<must> exit with success (i.e. its return
+code should indicate success).
+
+=item *
+
+In compatibility level 13+, the output will be subject to substitutions
+(see L</Substitutions in debhelper config files>) where the tool
+support these. Remember to be careful if your generator I<also> provides
+substitutions as this can cause unnecessary confusion.
+
+Otherwise, the output will be used exactly as-is. Notably, debhelper
+will I<not> expand wildcards or strip comments or strip whitespace
+in the output.
+
+=back
+
+If you need the package to build on a file system where you cannot
+disable the executable bit, then you can use L<dh-exec(1)> and its
+B<strip-output> script.
=head1 SHARED DEBHELPER OPTIONS
@@ -101,7 +274,10 @@ The following command line options are supported by all debhelper programs.
=item B<-v>, B<--verbose>
-Verbose mode: show all commands that modify the package build directory.
+Verbose mode: show commands that modify the package build directory.
+
+Note that verbose mode may also output other "internal" commands that do not
+directly affect the package build directory.
=item B<--no-act>
@@ -111,7 +287,7 @@ will output what it would have done.
=item B<-a>, B<--arch>
Act on architecture dependent packages that should be built for the
-build architecture.
+B<DEB_HOST_ARCH> architecture.
=item B<-i>, B<--indep>
@@ -124,8 +300,9 @@ times to make debhelper operate on a given set of packages.
=item B<-s>, B<--same-arch>
-This used to be a smarter version of the B<-a> flag, but the B<-a> flag is now
-equally smart.
+Deprecated alias of B<-a>.
+
+This option is removed in compat 12.
=item B<-N>I<package>, B<--no-package=>I<package>
@@ -140,16 +317,6 @@ For example, if you need to call the command with special options only for a
couple of binary packages, pass this option to the last call of the command to
process the rest of packages with default settings.
-=item B<--ignore=>I<file>
-
-Ignore the specified file. This can be used if F<debian/> contains a debhelper
-config file that a debhelper command should not act on. Note that
-F<debian/compat>, F<debian/control>, and F<debian/changelog> can't be ignored, but
-then, there should never be a reason to ignore those files.
-
-For example, if upstream ships a F<debian/init> that you don't want
-B<dh_installinit> to install, use B<--ignore=debian/init>
-
=item B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>
Use I<tmpdir> for package build directory. The default is debian/I<package>
@@ -185,7 +352,7 @@ Do not modify F<postinst>, F<postrm>, etc. scripts.
=item B<-X>I<item>, B<--exclude=>I<item>
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
+to exclude more than one thing. The I<item> is typically part of a
filename, and any file containing the specified text will be excluded.
=item B<-A>, B<--all>
@@ -211,13 +378,21 @@ 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>
+Pass B<none> as I<buildsystem> to disable auto-selection.
+
+=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>]
+B<Warning>: The B<--sourcedir> variant matches a similar named option in
+B<dh_install> and B<dh_missing> (etc.) for historical reasons. While they
+have a similar name, they have very distinct purposes and in some cases
+it can cause errors when this variant is passed to B<dh> (when then passes
+it on to all tools).
+
+=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
@@ -232,15 +407,21 @@ If the build system prefers out of source tree building but still
allows in source building, the latter can be re-enabled by passing a build
directory path that is the same as the source directory path.
-=item B<--parallel>
+=item B<--parallel>, B<--no-parallel>
+
+Control whether parallel builds should be used if underlying build
+system supports them. The number of parallel jobs is controlled by
+the B<DEB_BUILD_OPTIONS> environment variable (L<Debian Policy,
+section 4.9.1>) at build time. It might also be subject to a build
+system specific limit.
-Enable parallel builds if underlying build system supports them.
-The number of parallel jobs is controlled by the
-B<DEB_BUILD_OPTIONS> environment variable (L<Debian Policy, section 4.9.1>) at
-build time. It might also be subject to a build system specific limit.
+If neither option is specified, debhelper currently defaults to
+B<--parallel> in compat 10 (or later) and B<--no-parallel> otherwise.
-If this option is not specified, debhelper currently defaults to not
-allowing parallel package builds.
+As an optimization, B<dh> will try to avoid passing these options to
+subprocesses, if they are unnecessary 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).
=item B<--max-parallel=>I<maximum>
@@ -249,6 +430,40 @@ jobs that can be used in a parallel build. If the package build is known to
only work with certain levels of concurrency, you can set this to the maximum
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 variables (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
@@ -263,20 +478,49 @@ is manually specified with the B<--buildsystem> option.
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 tell debhelper which compatibility level it should use, and
+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.
-Tell debhelper what compatibility level to use by writing a number to
-F<debian/compat>. For example, to turn on v9 mode:
-
- % echo 9 > 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 9, ensure debian/control has:
-
- Build-Depends: debhelper (>= 9)
+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, if only for selected commands, 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. To use this method, the F<debian/compat> file 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#~)
+
+Note that you must use either the build-dependency on debhelper-compat or
+the F<debian/compat> file. Whenever possible, the debhelper-compat
+build-dependency is recommended.
+
+If needed be, the B<DH_COMPAT> environment variable can be used to override
+the compat level for a given command. The feature is mostly useful for
+either temporarily upgrading a few commands to a new compat level or
+keeping a few commands on a lower compat level. The feature is best used
+sparingly as it effectively introduces special-cases into the
+F<debian/rules> file that may be surprising to maintainers or reviewers
+(or, in the long term, to yourself).
Unless otherwise indicated, all debhelper documentation assumes that you
are using the most recent compatibility level, and in most cases does not
@@ -285,270 +529,10 @@ if you are not using the most recent compatibility level, you're advised to
read below for notes about what is different in earlier compatibility
levels.
-These are the available compatibility levels:
-
-=over 4
-
-=item v1
-
-This is the original debhelper compatibility level, and so it is the default
-one. In this mode, debhelper will use F<debian/tmp> as the package tree
-directory for the first binary package listed in the control file, while using
-debian/I<package> for all other packages listed in the F<control> file.
-
-This mode is deprecated.
-
-=item v2
-
-In this mode, debhelper will consistently use debian/I<package>
-as the package tree directory for every package that is built.
-
-This mode is deprecated.
-
-=item v3
-
-This mode works like v2, with the following additions:
-
-=over 8
-
-=item -
-
-Debhelper config files support globbing via B<*> and B<?>, when appropriate. To
-turn this off and use those characters raw, just prefix with a backslash.
-
-=item -
-
-B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call B<ldconfig>.
-
-=item -
-
-Every file in F<etc/> is automatically flagged as a conffile by B<dh_installdeb>.
-
-=back
-
-This mode is deprecated.
-
-=item v4
-
-Changes from v3 are:
-
-=over 8
-
-=item -
-
-B<dh_makeshlibs -V> will not include the Debian part of the version number in
-the generated dependency line in the shlibs file.
-
-=item -
-
-You are encouraged to put the new B<${misc:Depends}> into F<debian/control> to
-supplement the B<${shlibs:Depends}> field.
-
-=item -
-
-B<dh_fixperms> will make all files in F<bin/> directories and in F<etc/init.d>
-executable.
-
-=item -
-
-B<dh_link> will correct existing links to conform with policy.
-
-=back
-
-This mode is deprecated.
-
-=item v5
-
-Changes from v4 are:
-
-=over 8
-
-=item -
-
-Comments are ignored in debhelper config files.
-
-=item -
-
-B<dh_strip --dbg-package> now specifies the name of a package to put debugging
-symbols in, not the packages to take the symbols from.
-
-=item -
-
-B<dh_installdocs> skips installing empty files.
-
-=item -
-
-B<dh_install> errors out if wildcards expand to nothing.
-
-=back
-
-=item v6
-
-Changes from v5 are:
-
-=over 8
-
-=item -
-
-Commands that generate maintainer script fragments will order the
-fragments in reverse order for the F<prerm> and F<postrm> scripts.
-
-=item -
-
-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
-directory.
+=head2 Supported compatibility levels
-=item -
-
-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.
-
-=item -
-
-B<dh_installman> allows overwriting existing man pages in the package build
-directory. In previous compatibility levels it silently refuses to do this.
-
-=back
-
-=item v7
-
-Changes from v6 are:
-
-=over 8
-
-=item -
-
-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 using
-B<--sourcedir>). This allows B<dh_install> to interoperate with B<dh_auto_install>,
-which installs to F<debian/tmp>, without needing any special parameters.
-
-=item -
-
-B<dh_clean> will read F<debian/clean> and delete files listed there.
-
-=item -
-
-B<dh_clean> will delete toplevel F<*-stamp> files.
-
-=item -
-
-B<dh_installchangelogs> will guess at what file is the upstream changelog if
-none is specified.
-
-=back
-
-=item v8
-
-Changes from v7 are:
-
-=over 8
-
-=item -
-
-Commands will fail rather than warning when they are passed unknown options.
-
-=item -
-
-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.
-Also, libraries in unusual locations that B<dpkg-gensymbols> would not
-have processed before will be passed to it, a behavior change that
-can cause some packages to fail to build.
-
-=item -
-
-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 $@>".
-
-=item -
-
-B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to F<Makefile.PL>.
-
-=back
-
-=item v9
-
-This is the recommended mode of operation.
-
-Changes from v8 are:
-
-=over 8
-
-=item -
-
-Multiarch support. In particular, B<dh_auto_configure> passes
-multiarch directories to autoconf in --libdir and --libexecdir.
-
-=item -
-
-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 targets that exist in the rules file. There's no need to define an
-explicit binary target with explicit dependencies on the other targets.
-
-=item -
-
-B<dh_strip> compresses debugging symbol files to reduce the installed
-size of -dbg packages.
-
-=item -
-
-B<dh_auto_configure> does not include the source package name
-in --libexecdir when using autoconf.
-
-=item -
-
-B<dh> does not default to enabling --with=python-support
-
-=item -
-
-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.
-
-=item -
-
-B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and
-LDFLAGS to perl F<Makefile.PL> and F<Build.PL>
-
-=item -
-
-B<dh_strip> puts separated debug symbols in a location based on their
-build-id.
-
-=item -
-
-Executable debhelper config files are run and their output used as the
-configuration.
-
-=back
-
-=item v10
-
-This compatibility level is still open for development; use with caution.
-
-Changes from v9 are:
-
-=item -
-
-B<dh_installinit> will no longer install a file named debian/I<package>
-as an init script.
-
-=over 8
-
-=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.
-
-=back
-
-=back
+The list of supported compatibility levels and the related upgrade check
+list has moved to L<debhelper-compat-upgrade-checklist(7)>.
=head1 NOTES
@@ -569,7 +553,7 @@ If none are given, debhelper programs default to acting on all packages listed
in the control file, with the exceptions below.
First, any package whose B<Architecture> field in B<debian/control> does not
-match the build architecture will be excluded
+match the B<DEB_HOST_ARCH> architecture will be excluded
(L<Debian Policy, section 5.6.8>).
Also, some additional packages may be excluded based on the contents of the
@@ -577,6 +561,38 @@ B<DEB_BUILD_PROFILES> environment variable and B<Build-Profiles> fields in
binary package stanzas in B<debian/control>, according to the draft policy at
L<https://wiki.debian.org/BuildProfileSpec>.
+=head3 Interaction between package selections and Build-Profiles
+
+Build-Profiles affect which packages are included in the package
+selections mechanisms in debhelper. Generally, the package selections
+are described from the assumption that all packages are enabled. This
+section describes how the selections react when a package is disabled
+due to the active Build-Profiles (or lack of active Build-Profiles).
+
+=over 4
+
+=item -a/--arch, -i/--indep OR no selection options (a raw "dh_X" call)
+
+The package disabled by Build-Profiles is silently excluded from the
+selection.
+
+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 do the build in the first place.
+
+=item -N I<package> / --no-package I<package>
+
+The option is accepted and effectively does nothing.
+
+=item -p I<package> / --package I<package>
+
+The option is accepted, but debhelper will not act on the package.
+
+=back
+
+Note that it does not matter whether a package is enabled or disabled
+by default.
+
=head2 Automatic generation of Debian install scripts
Some debhelper commands will automatically generate parts of Debian
@@ -600,8 +616,15 @@ the set command):
my $temp="set -e\nset -- @ARGV\n" . << 'EOF';
#DEBHELPER#
EOF
- system ($temp) / 256 == 0
- or die "Problem with debhelper scripts: $!";
+ if (system($temp)) {
+ my $exit_code = ($? >> 8) & 0xff;
+ my $signal = $? & 0x7f;
+ if ($exit_code) {
+ die("The debhelper script failed with error code: ${exit_code}");
+ } else {
+ die("The debhelper script was killed by signal: ${signal}");
+ }
+ }
=head2 Automatic generation of miscellaneous dependencies.
@@ -647,17 +670,36 @@ F<preinst>, F<postrm>, F<prerm>, and F<config> scripts, etc.
=head1 ENVIRONMENT
+This section describes some of the environment variables that influences
+the behaviour of debhelper or which debhelper interacts with.
+
+It is important to note that these must be actual environment variables in
+order to affect the behaviour of debhelper (not simply F<Makefile> variables).
+To specify them properly in F<debian/rules>, be sure to "B<export>" them. For
+example, "B<export DH_VERBOSE>".
+
=over 4
=item B<DH_VERBOSE>
-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.
+Set to a non-empty value to enable verbose mode. Please see the B<-v> / B<--verbose>
+option for details.
+
+=item B<DH_QUIET>
+
+Set to a non-empty value to enable quiet mode. Debhelper will not output commands calling
+the upstream build system nor will dh print which subcommands are called
+and depending on the upstream build system might make that more quiet, too.
+This makes it easier to spot important messages but makes the output quite
+useless as buildd log.
+
+Ignored if DH_VERBOSE is also set or B<-v> / B<--verbose> is passed.
=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>
@@ -665,8 +707,10 @@ Set to B<1> to enable no-act mode.
=item B<DH_OPTIONS>
-Anything in this variable will be prepended to the command line arguments
-of all debhelper commands.
+All debhelper tools will parse command line arguments listed in this variable
+before any command option (as if they had been prepended to the command
+line arguments). Unfortunately, some third-party provided tools may not
+support this variable and will ignore these command line arguments.
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.
@@ -687,12 +731,196 @@ your package is built.
Multiple things to exclude can be separated with colons, as in
B<DH_ALWAYS_EXCLUDE=CVS:.svn>
+=item B<DH_EXTRA_ADDONS>
+
+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 addon to run
+with the --with flag in the debian/rules file. Any --without calls specifying
+an addon in this environment variable will not be run.
+
+This is intended to be used by downstreams or specific local configurations
+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<DH_COLORS>, B<DPKG_COLORS>
+
+These variables can be used to control whether debhelper commands should use
+colors in their textual output. Can be set to "always", "auto" (the default),
+or "never".
+
+Note that B<DPKG_COLOR> also affects a number of dpkg related tools and
+debhelper uses it on the assumption that you want the same color setting for
+dpkg and debhelper. In the off-hand chance you want different color setting
+for debhelper, you can use B<DH_COLORS> instead or in addition to
+B<DPKG_COLORS>.
+
+=item B<NO_COLOR>
+
+If no explicit request for color has been given (e.g. B<DH_COLORS> and
+B<DPKG_COLORS> are both unset), the presence of this environment variable
+cause the default color setting to be "never".
+
+The variable is defined according to L<https://no-color.org/>. In this
+project, the environment variables (such as B<DH_COLORS>) are considered
+an explicit request for color.
+
+=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.
+
+=item B<HOME>, B<XDG_*>
+
+In compat 13 and later, these environment variables are reset before invoking
+the upstream build system via the B<dh_auto_*> helpers. The variables B<HOME>
+(all B<dh_auto_*> helpers) and B<XDG_RUNTIME_DIR> (B<dh_auto_test> only) will
+be set to a writable directory. All remaining variables and B<XDG_RUNTIME_DIR>
+(except for during B<dh_auto_test>) will be cleared.
+
+The B<HOME> directory will be created as an empty directory but it will be
+reused between calls to B<dh_auto_*>. Any content will persist until
+explicitly deleted or B<dh_clean>.
+
+=item B<DEB_BUILD_OPTIONS>
+
+Please see L</Supported flags in DEB_BUILD_OPTIONS> for this environment
+variable.
+
+Please note that this variable should I<not> be altered by package maintainers
+inside F<debian/rules> to change the behaviour of debhelper. Instead, where
+the package maintainer need these features, they should look disabling the
+relevant feature directly (e.g. by overriding the concrete tools).
+
+=item B<DEB_BUILD_MAINT_OPTIONS>
+
+This is a dpkg specific environment variable (see e.g. L<dpkg-buildflags(1)>).
+The debhelper tool suite silently ignores it.
+
+It is documented here because it has a similar name to B<DEB_BUILD_OPTIONS>,
+which make some people mistakenly assume that debhelper will also react to this
+variable.
+
=back
+=head2 Supported flags in DEB_BUILD_OPTIONS
+
+The debhelper tool suite reacts to the following flags in B<DEB_BUILD_OPTIONS>.
+
+=over 4
+
+=item B<dherroron=obsolete-compat-levels>
+
+I<This is a debhelper specific value.>
+
+When B<dherroron> is present and set to B<obsolete-compat-levels>, then
+debhelper tools will promote deprecation warnings for usage of old soon
+to be removed compat levels into errors.
+
+This is useful for automated checking for code relying on deprecated
+compat levels that is scheduled for removal.
+
+This option is intended for testing purposes; not production builds.
+
+=item B<nostrip>
+
+I<This value will change the content of the debs being built. The .deb
+packages built when this is set is therefore not bit-for-bit reproducible
+with a regular build in the general case.>
+
+This value will cause the official debhelper tools will skip actions and
+helpers that either remove, detach or deduplicate debugging symbols in
+ELF binaries.
+
+This value affects L<dh_dwz(1)> and L<dh_strip(1)>.
+
+=item B<nocheck>
+
+This value will cause the official debhelper build systems to skip runs
+of upstream test suites.
+
+Package maintainers looking to avoid running the upstream tests should
+B<not> rely on this. Instead, they can add an empty override target
+to skip B<dh_auto_test>.
+
+This value affects L<dh_auto_test(1)>.
+
+=item B<nodoc>
+
+I<This value will change the content of the debs being built. The .deb
+packages built when this is set is therefore not bit-for-bit reproducible
+with a regular build in the general case.>
+
+This value will cause several debhelper tools to skip installation of
+documentation such as manpages or upstream provided documentation.
+Additionally, the tools will also ignore if declared documentation is
+"missing" on the assumption that the documentation has not been built.
+
+This value effects tools I<like> L<dh_installdocs(1)>, which I<knows>
+it is working with documentation.
+
+=item B<notrimdch>
+
+I<This value will change the content of the debs being built. The .deb
+packages built when this is set is therefore not bit-for-bit reproducible
+with a regular build in the general case.>
+
+This value will cause L<dh_installchangelogs(1)> to act as if it
+had been passed the B<--no-trim> option, forcing it to forgo removing
+older entries from changelogs.
+
+=item B<noautodbgsym>, B<noddebs>
+
+I<The official name is noautodbgsym. The noddebs variant is accepted
+for historical reasons.>
+
+This value causes debhelper to skip the generation of automatically
+generated debug symbol packages.
+
+This value affects L<dh_strip(1)>.
+
+=item B<parallel=N>
+
+This value enables debhelper to use up to B<N> threads or processes
+(subject to parameters like B<--no-parallel> and B<--max-parallel=M>).
+Not all debhelper tools work with parallel tasks and may silently
+ignore the request.
+
+This value affects many debhelper tools. Most notably B<dh_auto_*>,
+which will attempt to run the underlying upstream build system with
+that number of threads.
+
+=item B<terse>
+
+This value will cause the official debhelper build systems to configure
+upstream builds to be terse (i.e. reduce verbosity in their output).
+This is subject to the upstream and the debhelper build system
+supporting such features.
+
+This value affects most B<dh_auto_*> tools directly. For commands
+provided by the debhelper package, it also causes the tools to act like
+the B<DH_QUIET> environment variable was non-empty.
+
+=back
+
+Unknown flags are silently ignored.
+
+Note third-party debhelper-like tools or third-party provided build systems
+may or may not react to the above flags. This tends to depend on
+implementation details of the tool.
+
=head1 SEE ALSO
=over 4
+=item L<debhelper-compat-upgrade-checklist(7)>
+
+List of supported compat levels and an upgrade checklist for each of them.
+
=item F</usr/share/doc/debhelper/examples/>
A set of example F<debian/rules> files that use debhelper.
diff --git a/debian/changelog b/debian/changelog
index 17b4cb1a..62928d3a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,3973 @@
+debhelper (13.11.5) unstable; urgency=medium
+
+ * Team upload.
+
+ [ Translations ]
+ * Update Portuguese translation (Américo Monteiro)
+ (Closes: #1028159)
+ * Update on German translation of pages (Closes: #1028564)
+
+ [ Tianon Gravi ]
+ * Fix minor typo in DEB_BUILD_OPTIONS warning ("and but not" -> "but not")
+
+ [ Niels Thykier ]
+ * AddonAPI.pm: Correct method name in error message.
+ Thanks to wferi@Github
+
+ [ Diederik de Haas ]
+ * dh_missing: Update link to PROGRAMMING.md.gz
+
+ [ Helmut Grohne ]
+ * cmake.pm: set -DBUILD_TESTING=OFF for nocheck builds
+
+ [ Johannes Schauer Marin Rodrigues ]
+ * autoscripts/postinst-init-tmpfiles: do not output to /dev/null to not hide error messages
+
+ [ Simon McVittie ]
+ * cmake.pm, meson.pm: Set DEB_PYTHON_INSTALL_LAYOUT=deb if not already set
+ (Closes: #1043136)
+ * buildsystems: Give XDG_RUNTIME_DIR spec-compliant u=rwx,og-rwx permissions
+ * meson.pm: Disable Python byte-compilation if the Meson version is new enough
+ (Closes: #1042398)
+
+ -- Aurelien Jarno <aurel32@debian.org> Mon, 14 Aug 2023 21:07:54 +0200
+
+debhelper (13.11.4) unstable; urgency=medium
+
+ [ Peter Pentchev ]
+ * meson.pm: Pass --destdir to `meson install`. (Closes: #1027014)
+
+ -- Niels Thykier <niels@thykier.net> Mon, 02 Jan 2023 14:54:26 +0000
+
+debhelper (13.11.3) unstable; urgency=medium
+
+ * Dh_Lib.pm: Have addsubstvars check the value for newlines (Closes: #1026014)
+ * Stop using (fake)root for mkdirs again.
+ Should have been removed as a part of the clean up in the previous
+ upload but was overlooked causing breakage in packages still having
+ `Rules-Requires-Root: binary-targets`. (Closes: #1026125)
+ * PROGRAMMING.md: Fix typos
+
+ -- Niels Thykier <niels@thykier.net> Thu, 15 Dec 2022 09:07:38 +0000
+
+debhelper (13.11.2) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * Dh_Lib.pm: Remove unused third parameter from install_dh_config_file
+ * makefile.pm: Provide hook for subclasses to reuse cross-build support
+ (Closes: #1024296)
+ * Dh_Lib.pm: Revert change where `install_{file,prog,lib}` would use chown.
+ The problem that prompted this change was not caused by debhelper but
+ by fakeroot (#1024544) and the change in debhelper would not even
+ function as a work around in this case. Accordingly, the extra
+ complexity is not worth it and has been reverted.
+
+ [ Jakub Wilk ]
+ * Dh_Lib.pm: Fix typo in warning message about dherroron
+
+ -- Niels Thykier <niels@thykier.net> Wed, 14 Dec 2022 20:32:18 +0000
+
+debhelper (13.11.1) unstable; urgency=medium
+
+ * Team upload.
+ * Fix missed 3 to 4 arguments conversion in _install_file_to_path call.
+ (Closes: #1024520)
+
+ -- Axel Beckert <abe@debian.org> Mon, 21 Nov 2022 00:56:24 +0100
+
+debhelper (13.11) unstable; urgency=medium
+
+ [ Gioele Barabucci ]
+ * dh_installchangelogs: Ensure that at least four old entries are preserved
+ (Closes: #1021467)
+
+ [ Andrea Pappacoda ]
+ * meson.pm: Use `meson setup` in the configure step rather than just `meson`.
+
+ [ Niels Thykier ]
+ * Put newest compat level first in documentation
+ * Rename debhelper config files to include package name
+ * dh_installdebconf: Fix typo in manual page
+ * Dh_Lib.pm: `qx_cmd` support env/chdir changes like `doit` (Closes: #1016354)
+ * Remove obsolete compat checks in the code
+ * dh_dwz: Ensure dwz multifile is owned by root:root when root should be used
+ * dh_builddeb: Always pass `--root-owner-group` to `dpkg-deb` for dbgsym packages.
+ * Dh_Lib.pm: Provide `mkdirs` to create (non-package) directories.
+ * Dh_Lib.pm: Make `install_dir` chown created directories when root should be
+ used for debhelper's own commands. This fixes #1024261 for packages that only
+ use debhelper itself. However, third-party debhelper tools may still cause
+ packages with incorrect ownership for now if they are run after `dh_fixperms`
+ (or `dh_fixperms` is omitted).
+ * Dh_Lib.pm: Ensure `install_{file,prog,lib}` uses chown when root should be used.
+ Previously, they would skip the `chown` call and rely on `dh_fixperms`
+ or `dpkg-deb` to fix the ownership. However, that could cause issues
+ when the helper was run after `dh_fixperms` and install files that
+ `dpkg-deb` would not reset ownership of.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 20 Nov 2022 20:02:12 +0000
+
+debhelper (13.10.1) unstable; urgency=medium
+
+ * Team upload.
+
+ [ Luca Boccassi ]
+ * dh_installsysusers: make output reproducible
+
+ [ Jakub Wilk ]
+ * dh_assistant: Suggest json_pp as JSON formatter
+
+ [ Niels Thykier ]
+ * dh_assistant: Fix typo of active-compat-level
+ * dh_installchangelogs: Fix typo of performed
+
+ -- Luca Boccassi <bluca@debian.org> Fri, 28 Oct 2022 10:48:06 +0100
+
+debhelper (13.10) unstable; urgency=medium
+
+ [ Luca Boccassi ]
+ * Install `installsysusers` sequence (to match the provide).
+
+ [ Gioele Barabucci ]
+ * dh_installchangelogs: Trim old Debian changelog entries
+ automatically. Distributions can disable this by using
+ `DEB_BUILD_OPTIONS=notrimdch`.
+ * dh_installchangelogs.t: Force locale to be `C.UTF-8` to
+ avoid generating invalid changelog entries under
+ non-default locales.
+
+ [ Andrea Pappacoda ]
+ * meson.pm: Stop providing `MESON_TESTTHREADS` environment
+ variable for the install target. Said variable only
+ applies for testing.
+ * cmake.pm: Use `cmake --install` in compat 14.
+ (Closes: #1020732)
+ * docs/PROGRAMMING{,.md}: Rewrite PROGRAMMING into markdown.
+
+ [ Michael Biebl ]
+ * dh_installsystemduser: Stop masking user units on package
+ removal. They should never have been masked in the first
+ place. See #1021027.
+ * dh_installinit: Remove executable bit of init scripts on
+ package removal (via preinst). Related to #1021027.
+ * dh_installsystemd: Stop masking system units on package
+ removal. This is no longer necessary with the init scripts
+ getting their exec bit cleared on package removal.
+ (Closes: #1021027)
+
+ [ Niels Thykier ]
+ * Dh_Lib.pm: Add `package_type` as a function (extracted
+ from `is_udeb`).
+ * Dh_Getopt.pm: Fix duplicated `warning` in output for a
+ particular warning.
+ * dh_assistant: Provide a new `detect-hook-targets` command.
+ * dh: Recommend using `dh_assistant detect-hook-targets` for
+ checking whether hook targets are correct.
+ * dh: Hoist `nodoc` and `nocheck` from `DEB_BUILD_PROFILES`
+ into `DEB_BUILD_OPTIONS` when they are present in the former
+ and absent in the latter. Emit a warning when doing so to
+ aid the user, so they know why this does not work when they
+ are later building a package that does not use dh.
+ (Closes: #979401)
+ * dh: Provide a warning when cross building an `nocheck` is
+ absent from `DEB_BUILD_OPTIONS` to cross builders, who are
+ not experienced with Debian's requirements for
+ cross-building. The warning also recommends activating the
+ `cross` build profile and provides a way to disable the
+ warning without using `nocheck` (for the special case, where
+ people have a system that can run host binaries).
+ * Dh_Lib.pm: Fix bug where `addsubstvars` would not respect
+ the `--no-act` parameter.
+ * dh_perl: For scripts that are detected as perl scripts
+ that would trigger a dependency, normalize the shebang line to
+ use the same perl as debhelper is run under (/usr/bin/perl
+ in Debian, YMMV in derivatives). (Closes: #904409)
+ * dh_assistant: Provide new `log-installed-files` command to
+ help users and third-party tools record which files they have
+ installed. Third-party tools should use the
+ `--on-behalf-of-cmd` to have their tool name recorded.
+ (Closes: #972724)
+ * dh_installexamples: Explicitly recommend `examples/*` over
+ `examples` as content for the `debian/<pkg>.examples` file
+ to avoid the triggering `.../examples/examples` case.
+ (Closes: #1000384)
+ * debhelper.pod: Clarify the documentation around `-v` +
+ `--verbose` vs. `DH_VERBOSE` vs. `DH_QUIET` and `terse`
+ from `DEB_BUILD_OPTIONS`. Notably, clarify that `-v`
+ and `DH_VERBOSE` provides the same functionality and
+ that they do not cause *all* commands to be shown.
+ (Closes: #1002464)
+
+ [ Translations ]
+ * Update Portuguese translation (Américo Monteiro)
+ (Closes: #1019231)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 08 Oct 2022 18:13:35 +0000
+
+debhelper (13.9.1) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * autoscripts/postinst-init-tmpfiles: Re-instate runtime check
+ before running `systemd-tmpfiles`. However, explicitly check
+ for `systemd-tmpfiles` rather than asserting the system was
+ booted by systemd. This resolves #1013969 without requiring
+ a strict dependency as originally suggested by Guilhem Moulin
+ in #1013969.
+ * dh_installtmpfiles: Remove the `systemd | systemd-tmpfiles`
+ dependency as it is no longer required. (Closes: #1017441)
+ * dh_installsystemd: Ditto.
+ * dh_installinit: Ditto.
+
+ [ Johannes Schauer Marin Rodrigues ]
+ * autoscripts/postinst-init-tmpfiles: Only pass `--root` to systemd
+ when `DPKG_ROOT` is present (as `--root=/` is different from
+ omitting `--root` entirely).
+ * autoscripts/postinst-sysusers: Ditto
+
+ -- Niels Thykier <niels@thykier.net> Tue, 30 Aug 2022 15:24:43 +0000
+
+debhelper (13.9) unstable; urgency=medium
+
+ [ Gioele Barabucci ]
+ * d/control: Provide dh-sequence-installsysusers.
+
+ [ Andreas Hübner ]
+ * debhelper.pod: Add missing word "variables".
+
+ [ Niels Thykier ]
+ * Dh_Lib.pm: Fix in addsubstvar where a value was added when
+ it should not have been. (Closes: #1015263)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 14 Aug 2022 12:34:54 +0000
+
+debhelper (13.8) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_perl: Fix incorrect binary versioning caused by a regression
+ in 13.3. Thanks to Niko Tyni for reporting the issue.
+ (Closes: #997961)
+ * d/control: Bump Standards-Version to 4.6.1 - no changes required.
+ * root_sequence.pm: Run `dh_installsysusers` before
+ `dh_installtmpfiles` (only affects compat 14 or later). Thanks
+ to Nicholas Brown for the suggestion. (Closes: #1011099)
+ * autoscripts/postinst-init-tmpfiles: Remove runtime check on the
+ system having systemd as init system.
+ * dh_installtmpfiles: Replace runtime check on the system running
+ under systemd in generated `postinst` script with a dependency
+ on `systemd | systemd-tmpfiles` added to `${misc:Depends}`.
+ Thanks to Guilhem Moulin for the suggestion. (Closes: #1013969)
+ * dh_installsystemd: Ditto.
+ * dh_installinit: Ditto.
+ * debhelper-compat-upgrade-checklist.pod: Correct description for
+ the addition of dh_installsysusers in compat 14.
+ * meson.pm: Use `meson install` instead of `ninja install` for
+ dh_auto_install in compat 14. Thanks to Andrea Pappacoda for
+ the suggestion. (Closes: #1006805)
+
+ [ Max-Julian Pogner ]
+ * Dh_Lib.pm: Remove double semi-colon. (Closes: #1010591)
+ * Dh_Lib.pm: _strip_spaces now explicitly returns undef on undef
+ argument.
+ (Closes: #1010594)
+
+ [ Andrea Pappacoda ]
+ * cmake.pm: Set FETCHCONTENT_FULLY_DISCONNECTED to true. This
+ ensures that the `FetchContent` module does not attempt to
+ use internet connection.
+
+ [ Vagrant Cascadian ]
+ * debhelper-compat-upgrade-checklist.pod: Update documentation
+ for compat 14 change. (Closes: #1011404)
+
+ [ Ferenc Wágner ]
+ * debhelper.pod: Correct link to the new upgrade checklist.
+ (Closes: #1012777)
+
+ [ Luca Boccassi ]
+ * dh_installman: Avoid false positive language detection on
+ shared libs.
+
+ [ Translations ]
+ * Update Portuguese translation (Américo Monteiro)
+ (Closes: #1011256)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 03 Jul 2022 09:04:23 +0000
+
+debhelper (13.7.1) unstable; urgency=medium
+
+ * debhelper.pod: Fix several typos. Thanks to Guillem Jover
+ for pointing them out and proposing corrections.
+ * dh_installalternatives: Correct a file check that caused
+ false-positive rejections of valid alternatives files. Thanks to
+ Hiroyuki YAMAMORI for reporting the bug and providing an initial
+ patch. (Closes: #1009844)
+
+ -- Niels Thykier <niels@thykier.net> Wed, 20 Apr 2022 06:17:57 +0000
+
+debhelper (13.7) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_installalternatives: Improve validation of alternative files to
+ catch some "obvious" copy-waste mistakes.
+ * dh: Invoke dh_installalternatives after dh_link in compat 14 or
+ later. Thanks to Colin Watson for the suggestion.
+ (Closes: #1002800)
+ * cmake.pm: Drop -DCMAKE_SKIP_RPATH=on in compat v14. Thanks to
+ Vagrant Cascadian for the suggestion and the investigative work on
+ this topic. (Closes: #1004939)
+ * debhelper-compat-upgrade-checklist.pod: New file.
+ * debhelper.pod: Move list of supported compat levels and the related
+ upgrade checklist into debhelper-compat-upgrade-checklist.pod.
+ This means you now need `man 7 debhelper-compat-upgrade-checklist`
+ to see the upgrade checklist.
+ * dh_installdebconf: Support -D/--define command line parameters
+ (mirroring those from dh_installdeb).
+ * Dh_Lib.pm: Cope with "?=" as assignment operator in substvars files
+ to be future proof with (possible) planned addition of "optional
+ substvars. At the moment, debhelper will still always use "=" when
+ adding a substvar but it will now preserve "?=" operator if an
+ existing substvar is modified.
+
+ [ Guillem Jover ]
+ * autoconf.pm: Add support for autotest test suites by passing the
+ TESTSUITEFLAGS environment variable to `make test`.
+
+ [ Dave Jones ]
+ * Rewrite handling of stop services to use the `preinst` when using
+ --no-restart-after-upgrade. This fixes a regression caused by
+ the fix for #989155. (Closes: #994204)
+
+ [ Johannes Schauer Marin Rodrigues ]
+ * dh_installmenu: Respect DPKG_ROOT when checking for update-menus.
+ Note this implementation assumes update-menus is present both
+ inside and outside the chroot to activate. If it is absent on
+ either side, the update-menus call is skipped.
+
+ [ Gioele Barabucci ]
+ * dh_installsysusers: Invoke systemd-sysusers even when DPKG_ROOT
+ is set (relying on `--root`).
+ * dh_installpam: In compat 14, install pam snippets into
+ `/usr/lib/pam.d` instead of `/etc/pam.d`. Remember to remove
+ (now) obsolete conffiles when you bump to compat 14.
+
+ [ Andreas Hübner ]
+ * debhelper.pod: Correct spelling of DEB_BUILD_MAINT_OPTIONS.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 17 Apr 2022 09:42:46 +0000
+
+debhelper (13.6) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_assistant: Avoid creating `debian/.debhelper` when the
+ which-build-system sub command is invoked. Thanks to
+ Jelmer Vernooij for spotting that bug.
+ * dh_assistant: Add new active-compat-level command, which
+ outputs information about which compat level is declared
+ and active. It also tells how the compat level was
+ declared.
+ * Dh_Lib.pm: Add new function, get_non_binnmu_date_epoch,
+ only needed for dh_strip_nondeterminism.
+ * dh_installcron: Add support for `cron.yearly` packaging
+ file. Thanks to Martin-Éric Racine for the suggestion.
+ (Closes: #1000363)
+ * Dh_Lib.pm: Remove support for compat 5 and 6.
+ * debhelper.pod,debhelper-obsolete-compat.pod: Update to
+ reflect the new status for compat 5 and 6.
+
+ [ Guillem Jover ]
+ * dh: Add missing _ in execute_after example in POD.
+
+ [ Sandro Tosi ]
+ * dh_compress: Exclude .woff and .woff2 by default.
+
+ [ Translations ]
+ * Update Portuguese translation (Américo Monteiro)
+ (Closes: #1000719)
+
+ -- Niels Thykier <niels@thykier.net> Mon, 20 Dec 2021 12:55:03 +0000
+
+debhelper (13.5.2) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_installsystemd: Revert change to deploy systemd files into
+ usr/lib/systemd. (Closes: #993316, #993759)
+ * dh_installinit: Ditto.
+ * dh_systemd_enable: Ditto.
+ * dh_systemd_start: Ditto.
+ * SequencerUtil.pm: Remove duplicate "-a" option to some commands.
+ Thanks to Christoph Berg for reporting the issue.
+ (Closes: #971761)
+ * dh_installdeb: Revert the change to rewrite `rm_conffiles` into
+ `remove-on-upgrade` due to it causing bugs in non-trivial cases.
+ (Closes: #994919)
+
+ [ Christoph Berg ]
+ * dh_installtmpfiles: Add missing option name in POD documentation.
+
+ -- Niels Thykier <niels@thykier.net> Thu, 23 Sep 2021 16:44:25 +0000
+
+debhelper (13.5.1) unstable; urgency=medium
+
+ [ Paul Wise ]
+ * cmake.pm: make it possible to override dh provided ctest arguments
+
+ [ Niels Thykier ]
+ * cmake.pm: Add missing import which broke cmake related builds.
+ Thanks to Boyuan Yang for reporting the issue.
+ (Closes: #993345)
+
+ -- Niels Thykier <niels@thykier.net> Tue, 31 Aug 2021 05:43:35 +0000
+
+debhelper (13.5) unstable; urgency=medium
+
+ * dh_installdeb: Install debian/conffiles in compat 12+ again
+ (undoing the compat 12 change saying dh_installdeb would ignore
+ this file). The file can now be using for the activating the
+ `remove-on-upgrade` feature from dpkg 1.20.
+ * dh_installdeb: Automatically rewrite `rm_conffiles` into the
+ new `remove-on-upgrade` feature from dpkg when possible.
+ * cmake.pm: Pass `ARGS+=--verbose` to make when running tests
+ in the cmake+make variant except when "terse" is in
+ DEB_BUILD_OPTIONS. Thanks to Paul Wise for the suggestion.
+ (Closes: #992623)
+ * python_support.pm: Remove obsolete dh addon. It did nothing
+ but warn and nothing used it anymore.
+ * dh: Document debhelper provided dh addon sequences.
+ * single_binary.pm: New dh addon ("single-binary") that explicitly
+ activates the "single binary" work flow, where dh_auto_install
+ uses debian/<pkg> as default --destdir when there is only a
+ single binary package. It will error out if used in a
+ source package building multiple binary packages.
+ * dh: Activate "single-binary" addon by default in compat levels
+ up to and including compat 14 when the source package only lists
+ one binary package in debian/control. In compat 14, emit a warning
+ when this happens implicitly requesting users to explicitly enable
+ or disable the addon for single binary source packages to avoid
+ surprises in compat 15.
+ * dh_auto_install: In compat 15, remove special-case default for
+ --destdir for single binary source packages. If the previous
+ default is desired, please use the "single-binary" dh addon or
+ explicitly pass --destdir to dh_auto_install.
+ (Closes: #971432)
+ * debian/control: Provide dh-sequence-single-binary.
+ * debhelper.pod: Document the dh_auto_install will change behaviour
+ in compat 15 for single binary packages and dh will warning about
+ that in compat 14.
+ * dh_assistant: New tool for assisting third-party tools. At the
+ moment, it primarily supports introspection related features but
+ will hopefully be extended to support more use cases.
+ (Closes: #984900)
+
+ -- Niels Thykier <niels@thykier.net> Mon, 30 Aug 2021 19:50:42 +0000
+
+debhelper (13.4.1) unstable; urgency=medium
+
+ [ Clint Adams ]
+ * autoscripts/*: Replace `which` with `command -v`.
+
+ [ Simon McVittie ]
+ * dh_installsystemd: Only merge /lib/systemd/system into /usr
+ for now. (Closes: #992554)
+ * dh_systemd_enable: Ditto.
+
+ [ Johannes Schauer Marin Rodrigues ]
+ * autoscripts/postinst-init-nostart: Call invoke-rc.d when
+ a non-empty DPKG_ROOT is used. (Closes: #992556)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 21 Aug 2021 09:01:00 +0000
+
+debhelper (13.4+nmu1) unstable; urgency=high
+
+ [ Sean Whitton ]
+ * Non-maintainer upload.
+ * Replace "use v5.28" with "use v5.24" in Dh_Lib.pm.
+ The change to "use v5.28" in 13.4 broke the test to distinguish 0755
+ from "0755" in the reset_perm_and_owner function, breaking builds.
+ Thanks Adrian Bunk and Ansgar for help isolating the problem.
+
+ [ Niels Thykier ]
+ * debian/changelog: Correct bug number in the 13.4 entry.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Tue, 17 Aug 2021 13:34:02 -0700
+
+debhelper (13.4) unstable; urgency=medium
+
+ [ Dimitri John Ledkov ]
+ * dh_dwz: run in parallel across packages. (Closes: !47)
+
+ [ Andrej Shadura ]
+ * Dh_Buildsystems.pm: Add bmake and mkcmake as third-party
+ build systems. (Closes: !46)
+
+ [ Guillem Jover ]
+ * Dh_Buildsystems.pm: Add golang as a third-party build
+ system. (Closes: #981106)
+
+ [ Niels Thykier ]
+ * autoscripts/*: Add support for DPKG_ROOT in systemd, tmpusers,
+ sysusers and init related snippets. Based on an initial patch
+ from Helmut Grohne. (Closes: #983566)
+ * autoscripts/*: Reorder conditions in some scripts to avoid
+ doing a redundant stat call when a script parameter can decide
+ to skip it.
+ * dh_gconf: Remove the command as it does nothing.
+ (Closes: #908845)
+ * doc/TODO: Remove reference to dh_gconf.
+ * root_sequence.pm: Remove dh_gconf from root sequence and declare
+ it as obsolete (causing errors from compat 14 if still referenced
+ in hook targets).
+ * man/po4a/po4a.cfg: Remove dh_gconf from translations.
+ * AddonAPI.pm: The declare_command_obsolete command now accepts an
+ "$error_compat" parameter to enable addons to choose which compat
+ level that will trigger an error (though it must be minimum 13).
+ * doc/PROGRAMMING: Update docs to reflect API change.
+ * debhelper.pod: Document that referencing dh_gconf in hook targets
+ will cause an error in compat 14.
+ * dh_fixperms: Correct permissions of files beneath usr/libexec to
+ be executable. (Closes: #980325)
+ * dh_installtmpfiles: Only register tmpfiles ending with ".conf" as
+ tmpfiles in /usr/lib/tmpfiles.d and /etc/tmpfiles.d. This ensures
+ that dh_installtmpfiles gracefully copes with e.g. README files
+ provided by systemd upstream. (Closes: #986329)
+ * dh_installsystemd: Ditto (but only relevant in compat 12 or
+ earlier)
+ * cmake.pm: Pass -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF to cmake in
+ addition to -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON as the
+ former is intended to replace the latter. Thanks to Raul Tambre
+ for reporting the issue. (Closes: #988973)
+ * Dh_Lib.pm: Bump version requirement to v5.28 to reflect the actual
+ requirements (the code was using v5.28 features). Thanks to
+ Sérgio Basto for reporting the issue.
+ * dh_missing: Ditto.
+ * autoscripts/postinst-init,autoscripts/postinst-systemd-start: Use
+ "restart" instead of "start" when starting the services. This
+ ensures a smooth transition from --restart-after-upgrade to
+ --no-restart-after-upgrade in dh_installinit and dh_installsystemd.
+ Thanks to Ryan Tandy for reporting the issue.
+ (Closes: #989155)
+ * dh_installsystemd: Remove usage of autoscripts/postinst-systemd-restart
+ * dh_installinit: Remove usage of autoscripts/postinst-init-restart
+ * autoscripts/autoscripts/postinst-systemd-restart: Removed.
+ * autoscripts/postinst-init-restart: Removed
+ * dh_installsystemd: Prefer /usr/lib/systemd/ to /lib/systemd.
+ (Closes: #987989)
+ * dh_systemd_enable: Ditto.
+ * dh_systemd_start: Ditto.
+ * dh_installinit: Ditto.
+ * dh_installsystemd: Merge /lib/systemd into /usr/lib/systemd if both
+ are present in the package staging directory (preferring the latter
+ in case of conflicts). (Closes: #987989)
+ * dh_systemd_enable: Ditto.
+
+ [ Dominic Hargreaves ]
+ * perl_build.pm,perl_makemaker.pm: Make debhelper use the same perl
+ as it runs under (via Perl's $^X variable) when invoking the
+ upstream build system. (Closes: !40, #966396)
+
+ [ Axel Beckert ]
+ * Always generate unique doc-base file names based on package name and
+ document ID. (Closes: #980903)
+
+ -- Niels Thykier <niels@thykier.net> Tue, 17 Aug 2021 16:32:34 +0000
+
+debhelper (13.3.4) unstable; urgency=medium
+
+ [ Jakub Wilk ]
+ * debhelper.pod: Add missing space after ")"
+
+ [ Translations ]
+ * Update French translation (Jean-Pierre Giraud) (Closes: #982675)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 06 Mar 2021 09:53:10 +0000
+
+debhelper (13.3.3) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_installsysusers: Add systemd-sysusers as alternative provider
+ in the ${misc:Depends} dependency as that is the name used by
+ opensysusers.
+
+ [ Translations ]
+ * Update Portuguese translation (Américo Monteiro) (Closes: #981567)
+
+ -- Niels Thykier <niels@thykier.net> Wed, 03 Feb 2021 19:43:32 +0000
+
+debhelper (13.3.2) unstable; urgency=medium
+
+ * Team upload.
+
+ [ Niels Thykier ]
+ * cmake.pm: Correct parameter -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON
+ passed to cmake in compat 14+. Thanks to Raul Tambre for
+ reporting the issue. (Closes: #977255)
+ * dh_strip: Fix wording. Thanks to Chris Leick and Pfannenstein
+ Erik.
+ * debhelper.pod: Fix typos. Thanks to Chris Leick and
+ Pfannenstein Erik.
+ * dh_makeshlibs: Ditto.
+ * debian/control: Bump Standards-Versions to 4.5.1. No changes
+ required.
+
+ [ Axel Beckert ]
+ * Extend dh_installdocs documentation on debian/$pkg.doc-base.* with
+ regards to when deduplication does not work and may cause
+ uninstallable packages. (Mitigates: #980903)
+
+ [ Translations ]
+ * Update German translation (Pfannenstein Erik) (Closes: #979608)
+
+ -- Axel Beckert <abe@debian.org> Mon, 01 Feb 2021 00:53:24 +0100
+
+debhelper (13.3.1) unstable; urgency=medium
+
+ * d/control: Bump dependency on dwz to pull newer version of dwz
+ in buster-backports, which makes backporting easier. Thanks to
+ Anthony Fok for the patch and for backporting dwz.
+
+ -- Niels Thykier <niels@thykier.net> Mon, 28 Dec 2020 16:52:01 +0000
+
+debhelper (13.3) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_md5sums: When reading the conffiles file, ignore every line
+ except those starting with a slash "/".
+ * SequencerUtil.pm,dh_testroot: Let dh skip dh_testroot when
+ the builder supports Rules-Requires-Root and it is set to "no".
+ * Dh_Lib.pm: Provide a more helpful error message when
+ lintian-overrides config files are executable by mistake.
+ * dh_gencontrol: Discard the "Protected" field in dbgsym packages.
+ Thanks to Axel Beckert for reporting the issue.
+ (Closes: #976323)
+ * dh_installsysusers: New tool to install and integrate sysusers
+ into debian packaging. Thanks to Michael Biebl and Moritz
+ Muehlenhoff for feedback and initial testing.
+ (Closes: #962384)
+ * d/control: Remove transitional package for dh-systemd. Thanks
+ to Michael Biebl for poking reverse dependencies to migrate and
+ getting us ready to remove it. (Closes: #871312)
+ * cmake.pm: Pass VERBOSE=1 to make by default when building to
+ ensure that gmock builds are also verbose. Thanks to
+ Johannes Schauer for reporting the issue. (Closes: #973029)
+ * Dh_Lib.pm: Disable "unicode_strings" feature, which caused
+ issues with UTF-8 encoded files. Thanks to Sebastien Bacher
+ for reporting the issue. (Closes: #971362)
+ * dh_installinfo: Work around upstream installing the
+ usr/share/info/dir file. If seen, dh_installinfo will now
+ tag it as "installed" even though it is not installed. This
+ avoids promoting the installation of the file by dh_missing
+ only to have lintian tell people to remove it again.
+ (Closes: #971036)
+
+ [ Michael Biebl ]
+ * autoscripts/postrm-systemd-reload-only: Run daemon-reload on
+ "remove" only.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 06 Dec 2020 20:11:53 +0000
+
+debhelper (13.2.1) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * debian/changelog: Fix some typos in previous entries.
+ * Dh_Lib.pm,Dh_Buildsystems.pm: Properly clear buildflags with
+ --reload-all-buildenv-variables is passed. Thanks to
+ Harald Welte and Guillem Jover for reporting and debugging
+ the issue. (Closes: #966689)
+ * dh_missing: Improve message about related files found. Thanks
+ to Diego Escalante for reporting the issue. (Closes: #966834)
+
+ [ Peter Pentchev ]
+ * dh_installalternatives: Correct order of values in the example for
+ Dependents links. (Closes: #966285)
+
+ [ Chris Lamb ]
+ * dh_missing: Sort order of missing files to make output
+ deterministic. (Closes: #968187)
+
+ [ Translations ]
+ * Update Portuguese translation (Américo Monteiro) (Closes: #964784)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 12 Sep 2020 20:27:03 +0000
+
+debhelper (13.2) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_missing: Explicitly remind people that they should not
+ copy-waste multi-arch paths directly into debian/not-installed.
+ Instead, recommend the use of wildcards of ${DEB_HOST_MULTIARCH}
+ to replace the hardcoded value.
+ * d/changelog: Clarify what dh_installman change in 13.1 related to
+ #958343 was about.
+ * Dh_Lib.pm: Add support for raising compat deprecation warnings to
+ an error if there are pending removals. This currently triggers
+ for usage of compat 5 and 6.
+ * cmake.pm: Pass -DCMAKE_SKIP_RPATH=ON -DBUILD_RPATH_USE_ORIGIN=ON
+ to cmake in compat 14. This should fix some reproducibility
+ issues but may cause breakage if packages run binaries directly
+ from the build directory. Thanks to Timo Röhling for the
+ suggestion. (Closes: #962474)
+ * dh,dh_auto_*: Change the handling of XDG_RUNTIME_DIR in compat 13.
+ It is now only set to a writable directory for dh_auto_test but
+ set to a much shorter directory avoid issues with socket lengths.
+ In all other cases, the XDG_RUNTIME_DIR is now cleared. Thanks to
+ Simon McVittie for the report. (Closes: #961655)
+ * debhelper.pod: Document that --sourcedir clashes between dh_auto_*
+ and dh_missing (etc.). Thanks to Thorsten Glaser for reporting
+ the issue. (See #964230)
+ * PROGRAMMING: Minor improvements and clarifications to the API
+ documentation.
+
+ [ Anel Husakovic ]
+ * debhelper.7: Fix typo/grammatical errors.
+
+ [ Translations ]
+ * Update Portuguese translation (Américo Monteiro) (Closes: #962568)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 05 Jul 2020 21:14:04 +0000
+
+debhelper (13.1) unstable; urgency=low
+
+ [ Niels Thykier ]
+ * dh_installinitramfs: Remove misleading "in compat 12" as the
+ behaviour was unrelated to the compat level.
+ * dh_installinitramfs: Migrate to triggering update-initramfs
+ via activate-noawait trigger (replacing maintscript calls to
+ "update-initramfs -u", which had the same affect).
+ (Closes: #822730).
+ * dh_installman: Improve error messages and handling of broken
+ section numbers. Notably, the auto-detection no longer picks
+ section numbers that look suspiciously like a version number
+ (or a date). This can cause dh_installman to reject manpages
+ if it can no longer guess a suitable section for the manpage
+ Thanks to Paul Gevers for reporting the bug.
+ (Closes: #958343)
+ * Dh_Lib.pm: Support that Architecture (among other fields) can be
+ folded in d/control. Thanks to Thorsten Glaser for reporting
+ the issue. (Closes: #958987)
+ * SequencerUtil.pm: Fix use of uninitialized variable warning.
+ * Dh_Lib.pm: Properly error out on paragraphs missing the Package
+ field (rather than silently ignoring them).
+ * debian/rules: Fix call to gen-provides that seemed to work more
+ due to luck than by design.
+ * Dh_Lib.pm: Provide HIGHEST_STABLE_COMPAT_LEVEL, which reflects
+ the latest stable compat level. Thanks to Jelmer Vernooij
+ for the suggestion.
+ * Dh_Lib.pm: Respond to DH_DATAFILES environment variable in
+ addition to DH_AUTOSCRIPTS as a means to find data files. This
+ is mostly useful for testing purposes or to be "self-hosting".
+ The new DH_DATAFILES is more general than DH_AUTOSCRIPTS and
+ enable us to add new data file sources without inventing new
+ environment variables.
+ * Dh_Lib.pm: Require perl v5.24 (available in Debian oldstable)
+ to enable more modern features.
+ * Dh_Lib.pm: Fix a bug in variable substitution where ${Tab}
+ incorrectly expanded to "\b" rather than "\t".
+ * dh_installchangelogs: Loosely document which file names that
+ dh_installchangelogs uses as guesses for finding an upstream
+ changelog file. Thanks to Laurent Bigonville for suggesting
+ the change. (Closes: #933224)
+ * Dh_Lib.pm: When setting HOME or XDG_RUNTIME_DIR in compat 13,
+ use an absolute path. Thanks to Dmitry Shachnev for reporting
+ the issue. (Closes: #959731)
+ * dh_installsystemd: Copy the description for the
+ --no-stop-on-upgrade option from dh_installinit.
+ * dh_installsystemd: Have --no-start or --no-stop-on-upgrade
+ disable --restart-after-upgrade as the documentation says it
+ will. Thanks to Axel Beckert for reporting the issue.
+ (Closes: #959678)
+ * dh_installinit: Ditto.
+ * dh: Explicitly document that hook targets can cause
+ complications when they are made unconditional by a makefile
+ target and suggest alternatives. Thanks to Marcin Owsiany for
+ reporting this. (Closes: #645873)
+ * cmake.pm: Rollback -DCMAKE_AUTOGEN_VERBOSE=ON temporarily as it
+ trips bhlc due to a bug in cmake. Thanks to Nicolas
+ Braud-Santoni and "anoteng" for reporting the issue.
+ (Closes: #959494)
+ * dh_clean: Rephrase the description of dh_clean to avoid
+ confusion about when it is run. Thanks to Hugh McMaster for
+ the suggestion. (Closes: #960110)
+ * dh_missing: Update documentation to reflect that the
+ --fail-missing option is now the default in compat 13.
+ Thanks to Hugh McMaster and Christoph Berg for the report.
+ (Closes: #960107, #960697)
+ * dh: Filter out the root-sequence in "--list" output and reject
+ attempts to activate or deactivate the sequence as it is an
+ implementation detail.
+ * dh_installalternatives: New helper that can setup alternatives
+ (update-alternatives) based on a declarative format. Currently,
+ the format is converted to calls to update-alternatives, which
+ are inserted into the maintscripts of the package. Thanks to
+ David Engel and Fumitoshi UKAI for the original requests.
+ (Closes: #43720)
+ * dh_missing: Attempt to guess if missing files might be caused by
+ the packager installing the same file via a different path and
+ let them know of this. (Closes: #960781)
+
+ [ Guillem Jover ]
+ * autoconf.pm: Pass --disable-option-checking to ./configure
+ scripts to avoid warnings about unknown options.
+ (Closes: #942813)
+
+ [ Translations ]
+ * Fix typo in German translation. (Andreas Bombe)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 17 May 2020 17:07:30 +0000
+
+debhelper (13) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * debian/changelog: Fix typo of a bug number in the 12.10
+ entry. Thanks to Andy Caldwell for reporting it.
+ * Dh_Lib.pm: Flag compat 9 as deprecated as announced in
+ https://lists.debian.org/debian-devel-announce/2020/02/msg00000.html
+ * dh_install: Remove trailing slashes from value to the --sourcedir
+ parameter. This avoids dh_install computing an incorrect directory
+ name. Thanks to Mihai Moldovan for reporting the issue.
+ (Closes: #955568)
+ * dh_missing: Ditto.
+ * SequencerUtil.pm/dh: Fix bug where the long forms of --builddirectory
+ and --sourcedirectory might be ignored by dh causing it to skip
+ dh_auto_* when it should not. This is in practice only a problem in
+ compat 13 as long form of arguments are not optimized in compat 12 or
+ earlier.
+
+ [ Chris Leick ]
+ * debhelper.pod: Fix typos.
+ * dh_makeshlibs: Ditto.
+ * dh: Ditto.
+
+ [ Helmut Grohne ]
+ * perl_makemaker.pm: Add missing import of "warning" function.
+
+ -- Niels Thykier <niels@thykier.net> Wed, 15 Apr 2020 14:44:56 +0000
+
+debhelper (12.10) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_installsystemd: Improve documentation about tmpfiles that
+ are now handled by dh_installtmpfiles in compat 13.
+ * dh_installtmpfiles: Prefer debian/package.tmpfiles over
+ debian/package.tmpfile, but accept the old path with a warning.
+ Thanks to Michael Biebl for suggesting the change.
+ * dh_strip: Automatically strip Link-Time Optimization (LTO)
+ symbols from static archives. The format is not stable between
+ compiler versions. Thanks to Matthias Klose for the
+ suggestion and for providing the exact options.
+ (Closes: #939656)
+ * dh: Tweak the command-skipping optimization to skip commands
+ in a few more cases when the command is known not to react to
+ command line options.
+ * dh,dh_installsytemd*: Work around broken NOOP promise caused by
+ dh_installsystemd* using nonstandard "package@" prefix for
+ pkgfiles. Thanks to Badreddin Aboubakr and Andy Caldwell for
+ reporting it. (Closes: #950723, #951820)
+
+ [ Nicholas Guriev ]
+ * cmake: Verbose autogen rules.
+ * cmake: Skip install all dependency with compatibility level 13 and
+ above.
+
+ [ Andy Caldwell ]
+ * dh_installsystemduser: Fix bug that prevented dh_installsystemduser
+ from installing parameterized services. (Closes: #951819)
+
+ [ Translations ]
+ * Update German translation (Chris Leick) (Closes: #951917)
+
+ -- Niels Thykier <niels@thykier.net> Tue, 24 Mar 2020 15:55:09 +0000
+
+debhelper (12.9) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * debhelper.7: Clarify how DH_OPTIONS works and that some
+ third-party tools may ignore it if they do not support
+ it. Thanks to Andrej Shadura for reporting the issue
+ over IRC.
+ * doc/PROGRAMMING: Introduce a section on the NOOP PROMISE
+ comment.
+ * dh: In compat 13, skip calls to hook and override targets
+ for dh_auto_test, dh_dwz and dh_strip. Thanks to
+ Mike Hommey for suggesting it. (Closes: #568897)
+ * Dh_Getopt.pm: Remove support for "--ignore". No package
+ uses it any more. For most parts, it has been replaced
+ by the "3.0 (quilt)" source format.
+ * debian/changelog: Clarify that substitutions change in
+ 12.8 only apply to the maintscript file (and not
+ maintainer scripts) for dh_installdeb.
+ * debhelper.7: Improve text in compat 13 section.
+ * autoconf.pm: Only consider "configure" as an autoconf
+ script if it is a file (and not a directory). Thanks to
+ Andrius Merkys for reporting the bug and providing a
+ patch. (Closes: #949396)
+ * debian/control: Bump Standards-Version to 4.5.0 - no
+ changes required.
+ * dh_shlibdeps: Pass "--" in front of filenames passed to
+ file(1). Thanks to Christoph Biedl for the suggestion.
+ (Closes: #949538)
+ * dh_strip: Ditto
+ * dh.1: Improve documentation for override targets and
+ include a section on the new hook target.
+ (Closes: #885994)
+ * Dh_Lib.pm: Make it possible to disable the command
+ logging by passing "inhibit_log => 1" to the init sub.
+ Furthermore, the logging is now only enabled when init
+ is called (and not disabled by that option or
+ inhibit_log()). This prevents Dh_Lib from triggering
+ a log write just by being loaded.
+ * dh: Refactor addon loading. As a side-effect, dh no
+ longer leaks as many functions into the scope of addons.
+ Addons depending on the previous behaviour may now fail
+ due to calls to undefined subroutines and will need to
+ be fixed.
+ * dh_installinitramfs.1: Correct the name of localized
+ versions of dh_installinitramfs so that man can find
+ them.
+
+ [ Thorsten Glaser ]
+ * dh_auto_*: Make it possible to disable build systems by
+ passing --buildsystem=none. Previously this would
+ require overriding each and every dh_auto_* tool.
+ (Closes: #949635)
+
+ -- Niels Thykier <niels@thykier.net> Mon, 27 Jan 2020 20:45:05 +0000
+
+debhelper (12.8) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * Dh_Lib.pm: Simplify internal logging of which commands
+ have been run. We are no longer interested in whether
+ it was an override target or not.
+ * dh: Support "execute_before_X" and "execute_after_X"
+ targets in debian/rules. This is useful for injecting
+ commands before or after the command "X" that dh runs.
+ Note this feature requires compat 10 or later due to
+ internal limitations in debhelper. Attempts to use
+ it in compat 9 will trigger an error. Thanks to
+ Christoph Berg for the suggestion. (Closes: #885994)
+ * dh: Detect and warn about override and hook targets
+ for known obsolete commands. In compat 13, this will
+ be an error instead of a warning.
+ * dh: Reset umask to 0022 as a consistent default value.
+ Thanks to Thorsten Glaser for the suggestion.
+ (Closes: #944691)
+ * dh_missing: The --fail-missing parameter is now default
+ in compat 13. Thanks to Mattia Rizzolo for the
+ suggestion. (Closes: #917368)
+ * dh_installtmpfiles: New command extracted from
+ dh_installsystem that will handle tmpfiles.d
+ configuration. Thanks to Michael Biebl for the
+ suggestion. (Closes: #944478)
+ * dh_installsystemd: In compat 13, this command will no
+ longer manage tmpfiles.d configuration.
+ * dh: Run dh_installtmpfiles by default in compat 13.
+ * Dh_Lib.pm: Emit "error" and "warning" with error and
+ warning messages. Thanks to Paul Wise for the
+ suggestion. (Closes: #906723)
+ * Dh_Lib.pm: Support colored output for warnings and
+ errors (enabled by default). The colors can be
+ controlled by setting DH_COLORS or DPKG_COLORS. The
+ latter will also affect dpkg-related tools.
+ Note: NO_COLOR is respected in the absence of
+ DH_COLORS and DPKG_COLORS.
+ * Dh_Lib.pm: Support substitution variables in files
+ handled by filearray and filedoublearray in compat 13.
+ This also applies to executable configuration files.
+ As the substitution occurs after splitting the files
+ into tokens, it can be used to include spaces in the
+ tokens (often file names). (Closes: #198507)
+ * dh_install: Support substitution configuration files.
+ * dh_clean: Ditto.
+ * dh_installcatalogs: Ditto.
+ * dh_installdeb: Ditto (debian/*.maintscripts only).
+ * dh_installdirs: Ditto.
+ * dh_installdocs: Ditto.
+ * dh_installexamples: Ditto.
+ * dh_installinfo: Ditto.
+ * dh_installman: Ditto.
+ * dh_installwm: Ditto.
+ * dh_link: Ditto.
+ * dh_missing: Ditto.
+ * dh_ucf: Ditto.
+ * debian/rules: Remove override for dh_missing as the
+ --fail-missing parameter is default now.
+
+ [ Helmut Grohne ]
+ * Warn about missing perl-xs-dev for perl_* buildsystems.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 19 Jan 2020 10:02:16 +0000
+
+debhelper (12.7.3) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_perl: Use perl:any for perl module in addition to perl
+ programs. Thanks to Helmut Grohne and Niko Tyni for the
+ suggestion and analysis. (Closes: #946655)
+ * dh_gencontrol: Clear the "Built-Using" flag for dbgsym
+ packages. It is irrelevant as the original binary will
+ have the field plus the field can cause lintian warnings.
+ (Closes: #947506)
+ * lintian-overrides: Override no-dh-sequencer as it is a
+ false-positive that lintian cannot be expected to know.
+
+ [ Debian Janitor ]
+ * Fix day-of-week for changelog entry 4.0.0.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 29 Dec 2019 17:59:47 +0000
+
+debhelper (12.7.2) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh: Skip conditional dh sequence addons in the clean target.
+ This avoids FTBFS with conditional addons where the
+ build-dependency is not satisfied. (Closes: #944225)
+ * meson.pm: Fix bug where dh_auto_test would break horribly
+ under compat 13 due to an uninitialized variable. Thanks to
+ Benjamin Jacobs for reporting the issue. (Closes: #945149)
+ * dh_installman: Fix non-deterministic behaviour when there
+ multiple definitions of the same manpage in a package.
+ In compat 13, this is resolved by aborting with an error.
+ In older compat levels, dh_installman will deterministically
+ pick a canonical version (via sort) along with emitting a
+ warning. Thanks to Colin Watson for reporting the issue.
+ (Closes: #943705)
+ * dh_auto_*: In compat 13+, reset HOME and XDG_* environment
+ variables. Some are cleared and some are set to a writable
+ directory that persist until dh_clean. Thanks to
+ Simon McVittie for reporting the issue.
+ (Closes: #942111)
+ * dh_auto_*: As a side-effect of the above, debhelper in compat
+ 13+ no longer trips a FTBFS in sbuild for meson packages when
+ ccache is installed but not configured/used explicitly.
+ Thanks to Simon McVittie for reporting the issue.
+ (Closes: #933799)
+ * d/control: Bump Standards-Versions to 4.4.1 - no changes
+ required.
+
+ [ Andrius Merkys ]
+ * debhelper.pod: Document changes to the gradle third-party
+ build system in compat 13.
+
+ [ Translations ]
+ * Update German translation (Chris Leick) (Closes: #943853)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 07 Dec 2019 17:44:32 +0000
+
+debhelper (12.7.1) unstable; urgency=medium
+
+ [ 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
+
+ [ 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 gratuitous
+ 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 provide "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 avoid
+ 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.pm: 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 insufficient. (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)
+
+ -- 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 installing package
+ maintainer supplied systemd user instance units and to produce
+ postinst and postrm maintainer 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-abbreviation 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 claiming that dh_dwz
+ was experimental. Since debhelper/11.3, dh_dwz was no longer
+ experimental.
+ * cmake.pm: Explicitly set CMAKE_INSTALL_LIBDIR on native builds.
+ This should not make any practical difference but aligns the
+ behaviour of native and cross builds. Thanks to Simon McVittie
+ for the suggestion. (Closes: #903042)
+ * autoconf.pm: Leave --libexecdir at upstream default (/usr/libexec)
+ in compat 12 and later. (Closes: #859724)
+ * meson.pm: Ditto.
+ * dh: Support implicitly loading addons via "dh-sequence-${name}"
+ relations in Build-Depends (which would imply "dh ... --with ${name}").
+ Only simple relations in Build-Depends are considered at the moment.
+ * debian/control: Provide dh-sequence-dwz, dh-sequence-installinitramfs,
+ and dh-sequence-systemd, which enables packages to use the new
+ feature to implicitly autoload dh addons via Build-Depends.
+ * dh_md5sums: Rewrite handling of conffiles and excludes to better
+ support an arbitrary number of files that should be omitted from the
+ md5sums file. Previously, dh_md5sums could fail with the error:
+ """... "/bin/sh": Argument list too long at ..."""
+ (Closes: #864182)
+ * dh_installinit.1: Correct documentation which was inaccurate in relation
+ to which compat levels where dh_installinit still supported systemd
+ items and upstart jobs. Thanks to Theodore Y. Ts'o for bring up the
+ 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.
+
+ [ 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.3.5) unstable; urgency=medium
+
+ * Dh_Lib.pm: Introduce a new glob_expand error handler to
+ better emulate the old style glob code to fail when a
+ non-glob entry in the config file is missing.
+ * dh_installdocs: Use the new glob_expand error handler to
+ restore the behaviour to that of debhelper/10.5.1 and older.
+ Thanks to Christoph Berg for reporting the issue.
+ (Closes: #902355)
+ * dh_installexamples: Ditto.
+ * dh_installinfo: Ditto.
+ * dh_installman: Ditto.
+ * Dh_Lib.pm: Fix a bug where ending debian/control on (what
+ debhelper believed was) a comment line could cause debhelper
+ to omit the last package listed in the file. Thanks to
+ Santiago Vila for reporting the bug. (Closes: #902748)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 30 Jun 2018 11:52:51 +0000
+
+debhelper (11.3.4) unstable; urgency=medium
+
+ * Dh_Lib.pm: Fix bug that made the parser assign the wrong
+ value from the Build-Profiles field. Thanks to Sven Joachim
+ for reporting the bug. (Closes: #902268)
+ * debhelper.pod: Rewrite the compat 11 change on "main doc
+ packages" in an attempt to clarify what is happening in
+ compat 11. Thanks to Paul Gevers for pointing out some of
+ the confusing aspects.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 24 Jun 2018 09:46:35 +0000
+
+debhelper (11.3.3) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * d/control: Remove versioned Breaks on qt5-qmake as it
+ prevents others from backporting qt5 packages to
+ stable-backports. The Breaks was added to assist
+ cross-building in buster and it has already served that
+ purpose by now.
+ * Dh_Lib.pm: Provide a more helpful diagnostic message when
+ an executable config file fails and it does not have a
+ #!-line (and is not an ELF binary). Thanks to Nadav
+ Ruskin for the suggestion. (Closes: #902214)
+ * debhelper.pod: Make a dedicated subsection about executable
+ debhelper config files to make them more prominent. Thanks
+ to Nadav Ruskin for the suggestion. (Closes: #901715)
+ * Dh_Lib.pm: Avoid forking a shell when running executable
+ debhelper config files.
+ * Dh_Lib.pm: Validate package names according the rules for
+ Debian packages. Thanks to Raphael Geissert and Tim
+ Düsterhus for the suggestion. (Closes: #567178)
+ * Dh_Lib.pm: Rewrite deb822 parser to validate d/control
+ more strictly. Particularly, debhelper no longer permits
+ the same field twice in a stanza. Thanks to Tim Düsterhus
+ for the suggestion.
+ * Dh_Lib.pm: Ensure that at most once definition of
+ (X-)Package-Type is used per stanza.
+
+ [ Roberto C. Sánchez ]
+ * cmake.pm: Reorder arguments to cmake to make "-D FOO=BAR"
+ work. This form only works if it is before the directory
+ passed to cmake.
+
+ [ Daniele Nicolodi ]
+ * dh_installsystemd: Improve man page.
+ * dh_installsystemd: Tighten error handling: fail immediately if an unit
+ name not installed by the package is specified on the command line.
+ * dh_installsystemd: Fix the undocumented '--no-also' command line
+ option to do not affect handling of the Alias= directives.
+ * dh_installsystemd: Add timer units to the list of units considered
+ when the '--name' option is specified.
+
+ -- Niels Thykier <niels@thykier.net> Sat, 23 Jun 2018 18:30:08 +0000
+
+debhelper (11.3.2) unstable; urgency=medium
+
+ * dh_installchangelogs: Fix a second regression that made
+ dh_installchangelogs ignore upstream changelogs in the
+ source directories. Thanks to gregor herrmann for
+ reporting the incomplete fix. (Closes: #899248)
+
+ -- Niels Thykier <niels@thykier.net> Wed, 23 May 2018 05:59:59 +0000
+
+debhelper (11.3.1) unstable; urgency=medium
+
+ * dh_installchangelogs: Fix logic error that made
+ dh_installchangelogs incorrectly ignore explicitly passed
+ changelogs. Thanks to Sven Joachim and Rene Engelhard
+ for reporting the bug. (Closes: #899248)
+
+ -- Niels Thykier <niels@thykier.net> Mon, 21 May 2018 20:02:32 +0000
+
+debhelper (11.3) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * Buildsystem.pm: Fix use of undefined variable in certain
+ error conditions.
+ * dh_makeshlibs: Support -VUpstream-Version and -VNone as
+ alternative to passing -V or omitting -V respectively.
+ * dh_makeshlibs: Make -VUpstream-Version the default in
+ compat 12 when -V is omitted. (Closes: #896464)
+ * dh_makeshlibs: Correct handling of an explicit -V when
+ a source builds multiple library packages and provides
+ explicit shlibs files for a subset of them. Previously,
+ the -V option could have been ignored for some of the
+ packages containing libraries.
+ * Dh_Lib.pm: Fall back to a regular mv(1) when rename fails
+ with EXDEV (cross mount point moves). This restores
+ debhelper's ability to move files between mount points,
+ which can happen in dh_builddeb has to correct the
+ extension of a binary package built by dpkg-deb.
+ Thanks to Evan Krall for the report. (Closes: #897569)
+ * dh_missing.1: Consistently mention that dh_missing
+ defaults to --list-missing in compat 12. Thanks to
+ 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
+ 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)
+ * debian/control: Depend on dwz for dh_dwz.
+ * dh_dwz: Generate a per-package multifile by default. This
+ feature can be disabled by --no-dwz-multifile.
+ * dh: Run dh_dwz by default in compat 12.
+ * dh_dwz: Remove warning about the dwz feature being experimental.
+ * dwz.pm: Ditto.
+ * dh_installsystemd: Use the basename of the "tmpfiles" config
+ files. This makes "systemd-tmpfiles --create" search for it
+ in both /usr/lib/tmpfiles.d and in /etc/tmpfiles.d. With
+ this change the system administrator can now override the
+ "tmpfiles" config shipped by the package in
+ /usr/libtmpfiles.d. Thanks to Nick Groenen and Seyeong Kim
+ for filing the bug. (Closes: #894510)
+ * dh_installinit: Ditto.
+ * dh_installchangelogs: Look for changelog files installed by the
+ upstream build system in the package build dir (i.e. d/<pkg>/
+ and *not* debian/tmp!) and use them in preference to the one in the
+ source package where available. This avoids some cases of duplicated
+ upstream changelogs. Thanks to Evgeni Golov for the suggestion.
+ (Closes: #513521)
+ * dh_md5sums: Stop deleting empty md5sums files as dpkg (now) creates
+ the empty file on install if absent. Thanks to Rhonda D'Vine for
+ suggesting the improvement. (Closes: #776853)
+ * Dh_Lib.pm: Re-organise exports.
+ * Dh_Lib.pm: Retract "print_and_complex_doit"; the only potential
+ consumer went with a different code snippet.
+ * dh_installinitramfs: New tool to install initramfs hook scripts and
+ handle related maintscripts. Thanks to Evgeni Golov for the
+ suggestion. (Closes: #491027)
+ * installinitramfs.pm: New sequence to enable dh_installinitramfs in
+ compat 11 and earlier.
+ * dh_installdirs: Add --(no-)create-in-sourcedir option to make
+ dh_installdirs create directories in the source directory in addition
+ in the package build directory. Furthermore, dh_installdirs now
+ accepts --sourcedir to overrule the default source directory (just
+ like e.g. dh_install). Thanks to Robert Luberda for the suggestion.
+ (Closes: #816332)
+ * Buildsystem.pm: Move code from Dh_Buildsystems.pm to Buildsystem.pm
+ to make the latter independent of the former. This makes it possible
+ to load Buildsystem.pm without debian/control being present. Thanks
+ to Andreas Tille for the bug report. (Closes: #897026)
+ * dh_installinit.1: Fix some incorrect markup in the documentation of
+ --no-enable.
+ * makefile.pm: Revert the use of -O/-Oline for make, which helps
+ debugging what commands time out on the buildds. Thanks to
+ Adrian Bunk for the report. (Closes: #895196)
+ * dh_testroot.1: Update R³ documentation to reflect the current
+ implementation and not the initial draft. Thanks to Jens Reyer
+ for reporting the inconsistency. (Closes: #899125)
+ * d/changelog: Retroactively add Closes for LP bug #1766102 in 11.2
+ release.
+ * Dh_Lib.pm: Correct control parser to permit zero or more leading
+ space after the "Section" field (instead of "exactly one" space).
+ * python_distutils.pm: Deprecate the python-distutils build system
+ and mark it as removed in compat 12. Users are recommended to
+ migrate to the third-party build system called "pybuild". This
+ deprecation implies that python3 (among other) will not be
+ supported in the python-distutils build system.
+ (Closes: #568033, #597105, #597342, #769840, #813686, #898347)
+ * Dh_Lib.pm: Remove warning for using "debhelper-compat"
+ build-dependency.
+
+ [ Dmitry Shachnev ]
+ * qmake.pm: Use ${DEB_HOST_GNU_TYPE}-qmake wrapper for
+ cross-compilation. (Closes: #895286)
+
+ [ Helmut Grohne ]
+ * cmake: Pass CC/CXX environment variables down during native
+ compilation as well. (Closes: #897083)
+
+ [ Chris Lamb ]
+ * dh_listpackages.1: Document that packages are listed in the
+ order that they appear in debian/control.
+ (Closes: #897949)
+
+ [ Peter Pentchev ]
+ * Dh_Lib.pm: Permit leading and trailing whitespace around the
+ debhelper-compat dependency when it is the first or the last
+ relation listed. (Closes: #897937)
+
+ [ Jakub Wilk ]
+ * dh_usrlocal: Fix invalid POD markup.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 20 May 2018 20:35:00 +0000
+
+debhelper (11.2.1) unstable; urgency=medium
+
+ * Buildsystem.pm: Correctly pass build directory values to
+ target buildsystems. Thanks to Helmut Grohne, Adrian Bunk
+ and Tobias Frost for the reports and debugging.
+ (Closes: #895174, #895181)
+ * Buildsystems: Avoid choosing a build system for the clean
+ step if it is not necessary. Previously, debhelper could
+ choose a "random" build system that would prefer building
+ in a separate build directory on the basis that the build
+ directory should be removed. With this, change we only
+ choose such a build system if there is a build directory
+ to remove.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 08 Apr 2018 08:47:35 +0000
+
+debhelper (11.2) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * debhelper.7: Add a ~ to the suggested Build-Depends to ensure
+ backports also work for debhelper with single integer versions.
+ Thanks to Trent W. Buck for the suggestion. (Closes: #894666)
+ * makefile.pm: Use -Oline with make. This avoids make mistaking
+ a target name for a value for -O and should make build time
+ outs less likely for "long" targets. (Closes: #894573)
+ * Dh_Lib.pm: Fix bug that make debhelper trip on packages with
+ the version "0". Thanks to Chris Lamb for reporting the bug
+ plus debugging the issue. (Closes: #894895, LP: #1766102)
+ * Buildsystem.pm: Rewrite to support build systems that generate
+ build files for another build system (without using
+ inheritance). This enables generator build systems to have
+ multiple backends.
+ * cmake.pm: Support ninja as alternative backend (by using the
+ build system cmake+ninja). Thanks to Kyle Edwards for the
+ suggestion. (Closes: #895044)
+ * meson.pm: Rewrite as a generator build system with ninja as
+ the only backend.
+ * debhelper.7: Recommend packagers to use "debian/<pkg>.<file>"
+ over "debian/<file>" in most cases. Thanks to Johannes
+ Schauer for the suggestion.
+ * dh_usrlocal: Implement a simple guard for directories that
+ will likely cause issues in the shell snippets.
+ * dh_usrlocal: Use the new rules from Debian Policy 4.1.4 to
+ determine the default ownership and mode for directories.
+ * d/control: Bump Standards-Versions to 4.1.4. Beyond the
+ dh_usrlocal change listed above, no changes were required.
+
+ [ Nicolas Boulenguez ]
+ * dh_installxfonts: Fix typo that causes a misc:Depends on
+ non-existing xfont-utils. (Closes: #894835)
+ * dh_installwm.1: Document --all. (Closes: #895011)
+ * dh_usrlocal: Fix bug where the generated prerm script generated
+ by dh_usrlocal could remove a directory directly in /usr/local.
+ (Closes: #894549)
+
+ [ Mattia Rizzolo ]
+ * Lower the version restrictions on dpkg and dpkg-dev. They are not
+ needed anymore, as R³ support is not implied anymore, but requires
+ an environment variable to be passed.
+
+ -- Niels Thykier <niels@thykier.net> Sat, 07 Apr 2018 19:23:32 +0000
+
+debhelper (11.1.6) unstable; urgency=medium
+
+ * Dh_Lib.pm: Avoid passing invalid parameters to a function, which
+ caused tons of "package ARRAY(...) is not in control info"
+ warnings from dh in some cases. It triggers when dh thinks
+ the package might have architecture qualified debhelper config
+ files. The warning is harmless (besides the noise) for all
+ native builds and most cross builds, but it did invalidate
+ attempt to make pkgfile() use "DEB_TARGET_ARCH{,_OS}"
+ (see 11.1.5~alpha1). Thanks to Andreas Beckmann for reporting
+ the issue. (Closes: #891546)
+ * dh: Refactor handling of sequences to simplify some code paths.
+ * autopkgtests: Remove "use-name" tests as it no longer works.
+ The debhelper module makes assumptions in which directory it is
+ run from and the test breaks these assumptions.
+ * debian/control: Comment out versioned dependency on make.
+ It is not strictly necessary for Debian and causes issues with
+ make-guile. On the other hand, it is useful for people
+ backporting debhelper on derivatives and hench leaving it as a
+ comment. (Closes: #892586)
+ * debian/control: Bump dependency on dh-autoreconf for the fix for
+ #889567.
+ * dh_installinfo: Accept --sourcedir like the documentation says
+ for compat 11. Previously the option was incorrectly silently
+ ignored. Thanks to Nicolas Boulenguez for the report and the
+ patch. (Closes: #894226)
+ * dh_ucf.1: Apply patch from Nicolas Boulenguez to add missing
+ documentation of the "--all" and non-option parameters.
+ (Closes: #894228)
+ * dh_installxfonts: Apply patch from Nicolas Boulenguez. This
+ ensures that the generated maintscript snippets are bit-for-bit
+ reproducible when a package ships xfonts in multiple fonts
+ directories. (Closes: #894227)
+ * Dh_Lib.pm: Improve the "make_symlink" code to avoid non-compliant
+ symlinks when the link name was not a normalized path. Note
+ that ".."-segments are now disallowed in the link name (but not
+ the link target). Thanks to Nicolas Boulenguez for reporting
+ the bug plus the test cases. (Closes: #894229)
+ * dh_installinfo: Report installed files to dh_missing. Thanks
+ to Daniel Kahn Gillmor for reporting this omission.
+ (Closes: #893160)
+ * Dh_Lib.pm: Make Dh_Lib loadable again without a debian/control being
+ present. This makes the autopkgtests work again.
+
+ -- Niels Thykier <niels@thykier.net> Thu, 29 Mar 2018 19:26:59 +0000
+
+debhelper (11.1.5) unstable; urgency=medium
+
+ * Upload to unstable.
+ * Add a warning for using the new experimental feature for
+ requesting the compat level via the Build-Depends field.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 25 Feb 2018 10:05:22 +0000
+
+debhelper (11.1.5~alpha1) experimental; urgency=medium
+
+ * dh_installdocs: Add missing documentation about --sourcedir
+ in compat 11.
+ * dh_installdocs: Document that d/tmp is used by default
+ in compat 11.
+ * dh_installexamples: Ditto.
+ * dh_installinfo: Ditto.
+ * dh_installman: Ditto.
+ * meson.pm: Apply patch from Jakub Wilk to fix typo in the name
+ of the "C.UTF-8" locale.
+ * autoscripts/postinst-systemd-restart: Apply patch from
+ Christoph Biedl to fix indentation. (Closes: #890373)
+ * dh_testroot: With the advent of DEB_RULES_REQUIRES_ROOT, it
+ no longer needs to read debian/control to tell whether root
+ is needed or not. However, the warning remains for calling
+ dh_testroot outside the source root (as we may need to check
+ the compat level in a future version of debhelper).
+ * makefile.pm: Synchronize output from make (via -O) when
+ make runs in parallel except when STDOUT is a TTY. Thanks
+ to Goswin von Brederlow for the suggestion. (Closes: #768791)
+ * dh_gencontrol: Avoid uninitialized value warning when there
+ are no build-ids (e.g. because the builder disabled the
+ dbgsym building via DEB_BUILD_OPTIONS). This regression
+ was introduced in 11.1. Thanks to Christian Marillat for
+ reporting the bug. (Closes: #890736)
+ * Dh_Lib.pm: pkgfile() now properly uses for DEB_TARGET_ARCH{,_OS}
+ when the package is set to be built for the target
+ architecture.
+ * d/control: Drop dependency on binutils; it does not reflect
+ our actual requirement and the package or builder will ensure
+ that the current binutils is installed for other reasons
+ any way. Thanks to Helmut Grohne for the report.
+ (Closes: #891187)
+ * Dh_Lib.pm: Add an experimental feature to determine the requested
+ compat level from the Build-Depends field.
+
+ -- Niels Thykier <niels@thykier.net> Sat, 24 Feb 2018 16:01:31 +0000
+
+debhelper (11.1.4) unstable; urgency=medium
+
+ * qmake.pm,qmake_qt4.pm: Avoid global state in the build systems.
+ * dh_makeshlibs: Fix --no-act, which could still cause writes
+ to the shlibs file. Thanks to Sven Joachim for reporting it.
+ (Closes: #888974)
+ * dh_installdocs: Discard auto-detected main doc package when
+ passed -A/--all as it causes file-conflicts.
+ (Closes: #886108, #888294)
+ * Dh_Lib.pm: Fix regression where "foo{bar}" would not be matched
+ when the pattern was handled as a glob. The bug was
+ introduced in debhelper/10.6. Thanks to Wouter Verhelst for
+ finding the bug. (Closes: #888251)
+ * d/control: Update the Vcs-* fields to point to
+ salsa.debian.org as a part of the migration from alioth.
+ * d/control: Update maintainer address debhelper@packages.d.o
+ as a part of the migration from alioth. Any subscription
+ to debhelper-devel@lists.alioth.debian.org should be
+ replaced by a subscription in tracker.debian.org or
+ salsa.debian.org.
+ * d/control: Remove Bernhard R. Link from uploaders as he does
+ not appear to be active in debhelper at the moment. Thanks
+ to Bernhard for his past contributions.
+ * d/control: Bump (Build-)Dependency on dpkg to ensure that
+ dpkg provides DEB_RULES_REQUIRES_ROOT and DEB_GAIN_ROOT_CMD
+ as a part of its Rules-Requires-Root support.
+ * Dh_Lib.pm: Rely on DEB_RULES_REQUIRES_ROOT instead of the
+ field to determine whether or not tools may "root-only"
+ actions (such as chown'ing).
+ * d/control: Bump dependency on dh-autoreconf to ensure that
+ packages do not experience #887482.
+ * makefile.pm: Ensure that command line arguments are passed
+ deterministically to make when cross-compiling.
+
+ -- Niels Thykier <niels@thykier.net> Wed, 31 Jan 2018 21:36:13 +0000
+
+debhelper (11.1.3) unstable; urgency=medium
+
+ * autoscripts/*: Improve rollback handling of many scripts.
+ Notably a lot of scripts failed to rerun the postinst parts
+ on an "abort-upgrade". (Closes: #446856)
+ * debian/control: Add a Breaks on meson to ensure that we have
+ meson (>= 0.40.0) as the meson build system uses --wrap-mode.
+ This is mostly relevant for backports.
+ * Dh_Lib.pm: When printing commands (e.g. for doit), also show
+ changes to the environment (when done as a part of the
+ command).
+ * ninja.pm: Set LC_ALL=C.UTF-8 when calling ninja to avoid
+ meson choking on UTF-8 characters when it embeds itself into
+ e.g. the build or install. (Closes: #873831)
+ * dh: Remove the assumption that sequences will supply only
+ "safe no-op" parameters to commands. Thanks to Axel Beckert
+ and Sascha Steinbiss for the report. (Closes: #887727)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 20 Jan 2018 18:26:06 +0000
+
+debhelper (11.1.2) unstable; urgency=medium
+
+ * dh: Fix non-sense error about a missing "startpoint object
+ method".
+
+ -- Niels Thykier <niels@thykier.net> Sun, 07 Jan 2018 21:31:40 +0000
+
+debhelper (11.1.1) unstable; urgency=medium
+
+ * dh: Fix an off-by-one in a compat check. This fixes an
+ internal error for compat 9 packages that requires dh to
+ recurse into the debian/rules file. Thanks to Helmut
+ Grohne for reporting the bug. (Closes: #886518)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 07 Jan 2018 09:48:17 +0000
+
+debhelper (11.1) unstable; urgency=medium
+
+ [ Paul Tagliamonte ]
+ * dh: Provide the DH_EXTRA_ADDONS environment as a method for
+ e.g. derivatives to enable additional debhelper add-ons.
+ It is *not* a replacement for the --with parameter (which
+ package maintainers should still use). (Closes: #570935)
+
+ [ Hideki Yamane ]
+ * Fix typo of unnecessary. (Closes: #884574)
+
+ [ Niels Thykier ]
+ * dh_missing: Support wildcards in debian/not-installed. Thanks
+ to Maximiliano Curia for the suggestion. (Closes: #884556)
+ * dh_missing: Tweak handling of missing source directory and
+ single binary packages.
+ * dh_missing: Make --list-missing the default in compat 12.
+ Thanks to Daniel Leidert and Christian Göttsche for the
+ suggestions. (Closes: #650129, #858834)
+ * meson.pm: Set LC_ALL to C.UTF-8 when invoking meson and
+ debcrossgen (helper tool for cross-building). Thanks to
+ Jeremy Bicha for the suggestion. (Closes: #873831)
+ * dh_makeshlibs: Avoid forking a shell per line in the
+ generated shlibs file.
+ * dh_makeshlibs: Find all libraries with an unversioned SONAME
+ field (and not just the unversioned ones containing ".so").
+ * dh_makeshlibs: In compat 12, stop passing ELF binaries without
+ a SONAME to dpkg-gensymbols. Thanks to Steve Langasek for the
+ report. (Closes: #653640)
+ * dh_compress: In compat 12, stop compressing any thing in
+ /usr/share/doc/$pkg/examples. Thanks to Piotr Ożarowski for
+ the suggestion. (Closes: #593382)
+ * dh_installinit: Support a new --no-enable parameter to setup the
+ init script with the "defaults-disabled" and add the proper
+ versioned dependency on "init-system-helpers (>= 1.51)", which is
+ the first (functional) version with support for
+ "defaults-disabled". Thanks to Laurent Bigonville for the
+ report and Evgeni Golov for filing #857452. (Closes: #709384)
+ * Dh_Lib.pm: Make "exit 1" the default error-handler instead of
+ "exit $?" as this makes it easier to migrate from sed-based
+ autoscript substitutions to the new hash-based ones.
+ * autoscripts/*systemd*: Also use "|| true" in removal scripts for
+ systemd related tools if we do it in other scripts for the same
+ command. Thanks to Laurent Bigonville for the report.
+ (Closes: #761272)
+ * dh_installinit: Perform the autoscript substitutions without
+ needing a shell.
+ * dh_clean: Skip cleaning in the '.pc' and '_darcs' directories.
+ (Closes: #566861)
+ * dh_strip: Do not strip debug symbols in ".../debug/.build-id/".
+ Thanks to Mattia Rizzolo for reporting the bug.
+ (Closes: #886037)
+ * dh_gencontrol: Deduplicate debug-ids before inserting them into
+ the control file. Thanks to Mattia Rizzolo for reporting the
+ bug. (Closes: #886038)
+ * dh: Rewrite sequence handling to ensure that dh does not "inline"
+ a subtarget of a target it recurses into. Thanks to James
+ Cowgill for reporting the bug. (Closes: #880840)
+ * d/control: Add a Breaks against cmake (<< 3.8~) to ensure that
+ cmake response to the /run change in compat 11. Thanks to
+ Adrian Bunk for the suggestion. (Closes: #886127)
+ * Dh_Lib.pm/dh_testroot: Support the DEB_GAIN_ROOT_CMD environment
+ that replaces DPKG_GAIN_ROOT_CMD.
+ * dh_installinit/dh_installsystemd: Re-order snippets so service
+ handling is always the first to happen in removal scripts and last
+ to happen on install scripts. This means that configuration file
+ management and systemd-tmpfiles handling will now always happen
+ before the service is started on install/upgrade. Thanks to
+ Дилян Палаузов and Simon McVittie for reporting the bug.
+ (Closes: #814285, #885998)
+ - Note that the deprecated dh_systemd_enable and dh_systemd_start
+ helpers have not been changed. Services handled by these may
+ still be started before configuration management happens.
+ * debian/control: Drop some very old versioned constraints that are
+ no longer important.
+ * dh_installsystemd: Fix NOOP PROMISE to account for the tmpfiles.d
+ files.
+ * debian/control: Bump Standards-Versions to 4.1.3 - no additional
+ changes required.
+
+ [ Translations ]
+ * Update French translation (Baptiste Jammet) (Closes: #886279)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 06 Jan 2018 21:17:47 +0000
+
+debhelper (11) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_installdeb: Do basic validation of rm_conffile and mv_conffile
+ parameters in "maintscript" parameters in compat 10 and newer.
+ In compat 12, this is an error. Thanks to Andreas Beckmann for
+ the suggestions. (Closes: #882626)
+ * dh_strip: Fix bug where the Build-Id field would not be properly
+ filled when using --dbg-package. Thanks to Paul Wise for finding
+ and reporting the bug. (Closes: #884152)
+ * d/control: Bump Standards-Version to 4.1.2 - no changes required.
+ * dh_installsystemd: Remove neutering of dh_installsystemd in compat
+ levels prior to 11 now that compat 11 is stable.
+
+ [ Chris Leick ]
+ * debhelper.pod: Improve the wording of two paragraphs.
+
+ [ Translations ]
+ * Update Portuguese translation (Américo Monteiro)
+ (Closes: #883635)
+ * Update German translation (Chris Leick) (Closes: #884205)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 16 Dec 2017 15:41:17 +0000
+
+debhelper (10.10.9) unstable; urgency=medium
+
+ [ Dmitry Shachnev ]
+ * qmake.pm: Add missing import of generated_file.
+ * meson.pm: Find typo of meson in the name of the cross config
+ file.
+ * qmake.pm: Push compiler information as ‘early’ flags to qmake, to
+ make sure qmake calls the right compiler to get library paths.
+ * qmake.pm: Add all possible settings to generated qmake-cross.conf.
+ Now output of ‘qmake -query’ with and without using this file is
+ identical. This makes cross-building Qt’s own modules possible.
+
+ [ Niels Thykier ]
+ * dh_missing: Permit a missing debian/tmp without failing in
+ compat 11 when debian/tmp is an implicit source directory.
+ Thanks to Christoph Biedl for reporting the bug.
+ (Closes: #882083)
+ * dh_missing: Improve the wording about "debian/not-installed".
+
+ -- Niels Thykier <niels@thykier.net> Sun, 19 Nov 2017 11:04:45 +0000
+
+debhelper (10.10.8) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * Document that compat 11 is now in its open beta phase.
+ * Dh_Getopt.pm: Improve warning message when a package is excluded
+ due to profiles or architecture restrictions.
+ * dh_install: Properly allow patterns to be excluded without
+ complaining about missing files. (Closes: #881658)
+ * qmake.pm: Ensure that the qmake cross-build config file
+ survives until clean.
+
+ [ Dmitry Shachnev ]
+ * qmake.pm: Set QMAKE_LINK correctly for cross-builds.
+
+ -- Niels Thykier <niels@thykier.net> Wed, 15 Nov 2017 19:46:00 +0000
+
+debhelper (10.10.7) unstable; urgency=medium
+
+ * dh_strip: Fix a regression that caused debug symbols for
+ executables to be discarded instead of included into
+ debug packages.
+ * Dh_Lib.pm: Ensure that $dh{U_PARAMS} is always defined as a
+ list. Thanks to Adrian Bunk for the bug report.
+
+ -- Niels Thykier <niels@thykier.net> Sat, 11 Nov 2017 14:10:21 +0000
+
+debhelper (10.10.6) unstable; urgency=medium
+
+ [ Axel Beckert ]
+ * Cleanup trailing whitespace in ancient debian/changelog entries and
+ debian/rules.
+ * Fix typo "belive" in debian/copyright and ancient debian/changelog
+ entries.
+ * Use HTTPS in debian/copyright format URL.
+
+ [ Niels Thykier ]
+ * Remove support for named compat levels.
+ * dh_perl: Make dh_perl faster on packages with large doc
+ directories by pruning the entire doc directory.
+ * dh,dh_auto_*: Support skipping all of the dh_auto_* helpers if the
+ package does not seem to have a build system (and there are no build
+ system related options passed to dh).
+ * Dh_Lib.pm: Define a (hardcoded) extension for dbgsym packages.
+ * dh_gencontrol: Pass -DPackage-Type to dpkg-gencontrol when the
+ package type for dbgsym is different than for regular deb packages.
+ * dh_builddeb: Automatically handle renaming of dbgsym packages when
+ the extension of the dbgsym packages are different than for regular
+ deb packages.
+ * dh_installsystemd,dh_systemd_start: Use "restart" instead of the
+ "try-restart" action. This ensures that newly added services are
+ started the first time they are installed. (Closes: #879727,
+ LP: #1707880)
+ * dh_install: Fix regression where it was no longer possible to
+ exclude an entire pattern / source file. Thanks to James Cowgill
+ for the report. (Closes: #814856, LP: #1554979)
+ * dh_installsystemd: Permit missing explicitly requested file in
+ package as long as another on being acted on ships it.
+ * dh_installsystemd: Optimize the search for files installed in the
+ tmpfiles.d directories to only look in the tmpfiles.d directories.
+ * Add experimental support for building some packages for "TARGET"
+ rather than "HOST" via the X-DH-Build-For-Type field. The field
+ is subject to removal and changes without notice. The field is
+ not considered by dpkg tooling and therefore you will still have
+ to manually work around tools like dpkg-gencontrol (even when
+ called via dh_gencontrol).
+ * dh_makeshlibs: Ignore non-ELF files even if they are named ".so".
+ (Closes: #880480)
+ * Dh_Lib.pm: Improve the performance of isnative by using
+ Dpkg::Changelog::Parse instead of calling dpkg-parsechangelog as
+ an external process. This improves the performance of
+ dh_installchangelogs by ~10%.
+
+ [ Felipe Sateler ]
+ * dh_installsystemd: Fix a bug where dh_installsystemd would generate
+ invalid maintscript, when there were no units to start or enable.
+ Thanks to Ben Hutchings and Bastian Blank for the bug report.
+ (Closes: #881190)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 11 Nov 2017 11:18:11 +0000
+
+debhelper (10.10.5) unstable; urgency=medium
+
+ * meson.pm: Add missing import of generated_file that broke
+ cross building.
+ * Dh_Lib.pm: Fix regression where an empty line before the source
+ paragraph in d/control would cause parse error.
+ (Closes: #879762)
+
+ -- Niels Thykier <niels@thykier.net> Thu, 26 Oct 2017 19:10:51 +0000
+
+debhelper (10.10.4) unstable; urgency=medium
+
+ * meson.pm: Keep the meson cross file until dh_clean is
+ called as otherwise ninja tries and fails to regenerate the
+ build rules. Thanks to Helmut Grohne for reporting the
+ bug. (Closes: #879658)
+ * dh_dwz: Add new experimental tool to run dwz(1) to deduplicate
+ ELF debugging symbols. It should be generally be run before
+ dh_strip (as dh_strip compresses the debug symbols and dwz
+ expects uncompressed debug symbols). (Closes: #878888)
+ * dwz.pm: New sequence to add dh_dwz to the sequence.
+ * d/control: Add a Suggests on dwz for the optional dh_dwz tool.
+ * Dh_Lib.pm: Fix regression where the source section would not
+ be parsed leading to dbgsym packages possibly getting an
+ incorrect value in the Section field. Thanks to Mihai
+ Moldovan for reporting the issue. (Closes: #879667)
+
+ -- Niels Thykier <niels@thykier.net> Wed, 25 Oct 2017 06:00:13 +0000
+
+debhelper (10.10.3) unstable; urgency=medium
+
+ * dh_strip: Skip the entire directory when an exclude rule
+ parameter matches it.
+ * dh_fixperms: Improve the documentation to assume less familiarity
+ with "Rules-Requires-Root" (R³).
+ * dh_usrlocal: Ditto.
+ * dh_builddeb: Ditto.
+ * dh_usrlocal: Correct the group name when creating directories
+ owned by "root:staff". Thanks to Paul Gevers for reporting
+ the bug. (Closes: #879643)
+ * dh_usrlocal: Fix inverted boolean logic that made dh_usrlocal
+ ignore ownership of directories when it should have preserved
+ them.
+
+ -- Niels Thykier <niels@thykier.net> Mon, 23 Oct 2017 21:24:08 +0000
+
+debhelper (10.10.2) unstable; urgency=medium
+
+ * Dh_Lib.pm: Fix uninitialized warning in find_hardlinks that
+ broke dh_compress's ability to deal with hardlinks. Thanks
+ to Ondřej Surý for finding the bug.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 22 Oct 2017 21:21:58 +0000
+
+debhelper (10.10.1) unstable; urgency=medium
+
+ * debhelper.pod: Document that all tools by default must be run
+ in the root of an unpacked source.
+ * dh: Clarify that --list can be run anywhere.
+ * dh_testroot: Temporarily cope with being run outside a source
+ root. (Closes: #879478)
+ * dh_testroot: Update manpage to mention its new scope.
+ * d/control: Bump (build-)dependency on dpkg to 1.19.0.3~. That
+ was technically necessary already in the previous upload.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 22 Oct 2017 09:00:12 +0000
+
+debhelper (10.10) unstable; urgency=medium
+
+ * dh_installsystemd: Improve error messages to include the actual
+ error caused by attempted to open the file.
+ * dh_systemd_enable: Ditto.
+ * dh_systemd_start: Ditto.
+ * dh_installinit: In compat 12, error out if an upstart init file
+ is provided with a reminder message about how to remove the
+ obsolete conffile. (Closes: #876453)
+ * dh_systemd_enable: Permit missing explicitly requested file in
+ package as long as another on being acted on ships it.
+ (Closes: #878911)
+ * dh_systemd_start: Ditto.
+ * Dh_Lib.pm: Add support for R³ (Rules-Requires-Root field) to
+ enable package builds without requiring root (or only
+ selectively require root).
+ * dh_fixperms: Skip "chown" calls when R³ is set to anything but
+ "binary-targets".
+ * dh_installchangelogs: Ditto.
+ * dh_installdocs: Ditto.
+ * dh_testroot: Update check for root to support R³.
+ * makefile.pm: Call "make install" with DPKG_GAIN_ROOT_CMD when
+ R³ contains the "debhelper/upstream-make-install" keyword.
+ * dh_builddeb: Pass --root-owner-group to dpkg-deb in packages
+ with R³ (except for "binary-targets").
+ * dh_usrlocal: When R³ is enabled (and not "binary-targets"),
+ ignore the ownership/mode information on the directories.
+ Instead, the ownership "root:staff" and the mode 02775 is used.
+ * d/control: Bump (Build-)Dependency on dpkg-dev to support to
+ support R³.
+ * d/control: Set R³ to "no".
+
+ -- Niels Thykier <niels@thykier.net> Sat, 21 Oct 2017 17:59:46 +0000
+
+debhelper (10.9.2) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_install: Defer the removal of --list-missing and
+ --fail-missing until compat 12.
+ * dh: Run the new dh_installsystemd helper by default in compat 11.
+ * systemd.pm: Remove the sequence in compat 11. It has been replaced
+ by the new dh_installsystemd helper.
+
+ [ Lisandro Damián Nicanor Pérez Meyer ]
+ * qmake.pm: Remove unnecessary "-nocache" parameter.
+ (Closes: #878427, LP: #1206234)
+
+ [ Ville Skyttä ]
+ * Fix a number of spelling mistakes. (Closes: #878325)
+
+ [ Felipe Sateler ]
+ * dh_installsystemd: New command (currently noop except when used in
+ the experimental compat 11). This new helper:
+ - Generates postinst code for tmpfiles (now that dh_installinit
+ does not).
+ - Follows the naming convention for other built-in dh_* commands.
+ - Replaces dh_systemd_enable and dh_systemd_start in compat 11
+ and later.
+ - Only acts on units with the name specified by "--name" when this
+ option is given.
+ (Closes: #752521, #857306, #870768, #876486)
+ * dh_systemd_enable: Remove as obsolete in compat 11.
+ * dh_systemd_start: Ditto.
+
+ [ Helmut Grohne ]
+ * cmake.pm: Also supply PKGCONFIG_EXECUTABLE for obsolete
+ UsePkgConfig.cmake. (Closes: #878460)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 14 Oct 2017 07:19:38 +0000
+
+debhelper (10.9.1) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_builddeb: Add some missing error checks.
+ * Dh_Lib.pm: Fix bug where debhelper could discard some error
+ messages during parsing when -O options were passed via
+ DH_OPTIONS (among other). Thanks to Adrian Bunk and
+ Andrew Shadura for reporting the issue. (Closes: #876689)
+ * Dh_Getopt.pm: Gracefully reduce the tool to a no-op when given
+ a -p<pkg> and <pkg> is disabled by a Build-Profile.
+ * debhelper.7: Document how package selections interact with
+ Build-Profiles. Thanks to Helmut Grohne for the report.
+ (Closes: #872745)
+ * dh_installdocs: Validate that the package passed to
+ --doc-main-package are listed in debian/control.
+ * dh_installexamples: Ditto.
+ * dh_systemd_start: Regex escape two paths used in a regex.
+ * Dh_Lib.pm: Open compat 12.
+ * dh_clean: Defer making -k an error until compat 12.
+ * Dh_Getopt.pm: Defer making -s an error until compat 12.
+ * dh_installinit: Defer making --no-restart-on-upgrade an error
+ until compat 12.
+ * Dh_Lib.pm: Defer making the "shell-spawning bug" in doit an error
+ until compat 12.
+ * dh_systemd_enable: Fix regression in debhelper/10.9 where
+ template units would be installed as regular units (and
+ possibly replace regular units). (Closes: #877989)
+ * dh_systemd_enable: Drop versioned dependency on
+ init-system-helpers that is satisfied in oldstable.
+ * Dh_Lib.pm: Fix regression where --no-act would actually create
+ maintscript snippets.
+ * dh_systemd_*: If an unit file cannot be read (e.g. to check for
+ the [Install] section), error out instead of emitting a warning
+ and continuing.
+ * t: Add tests for dh_systemd_* based on WIP tests from Felipe
+ Sateler related to a new dh_installsystemd helper.
+ * dh_systemd_enable: Properly quote unit names to preserve
+ escaped names like "\x2d". Thanks to Bernd Zeimetz for
+ reporting the issue. (Closes: #764730)
+ * dh_systemd_start: Ditto.
+ * meson.pm: Add prototype support for cross building by relying
+ on /usr/share/meson/debcrossgen. Note that this is currently
+ not functional due to #875703.
+ * debian/control: Bump Standards-Versions to 4.1.1 - No changes
+ required.
+
+ [ Dmitry Shachnev ]
+ * qmake.pm: Add basic cross-building support. (Closes: #877357)
+
+ -- Niels Thykier <niels@thykier.net> Tue, 10 Oct 2017 19:01:00 +0000
+
+debhelper (10.9) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * debhelper.pod: Fix typo.
+ * dh_fixperms: Reset permissions of .scss and .sass files to
+ 0644. Thanks to Jonas Smedegaard for the suggestion.
+ (Closes: #875586)
+ * dh_shlibdeps: Disable unused file(1) tests.
+ * dh_strip: In compat 11, rely on file headers/magic to
+ determine whether files are ELF binaries worth processing
+ instead of using filenames/extensions. (Closes: #35733)
+ * dh_shlibdeps: Ditto.
+ * d/control: Bump Standards-Versions to 4.1.0:
+ - Bump priority of dh-systemd to "optional".
+ * dh_makeshlibs: Avoid gratuitous warning about a non-existing
+ directory, when the packaging directory does not exist.
+ (Closes: #626685)
+ * dh_gencontrol: Ensure that dbgsym packages do not inherit the
+ "Important" field.
+ * dh_installinfo: Merge two chmod calls into one to save a
+ fork+exec.
+ * dh_builddeb: Use -z6 compression for udebs (up from -z1).
+ Thanks to Adrian Bunk for the suggestion and Aurelien Jarno
+ for confirming it would be fine for d-i. (Closes: #870201)
+ * dh_fixperms: Set the permissions of /usr/lib/nodejs/*/{cli,bin}.js
+ to 0755. Thanks to Pirate Praveen for the report.
+ (Closes: #840913)
+ * Dh_lib.pm: Expand *_doit and doit to also support a chdir in the
+ child process.
+ * Dh_Getopt.pm: Validate package names passed via -p and -N to ensure
+ they are present in d/control. Thanks to Matthias Klose for the
+ report. (Closes: #795432)
+ * debhelper.7: Fix typo of compatibility.
+
+ [ Felipe Sateler ]
+ * dh_systemd_enable: Refactor and add support for timer units.
+ (Closes: #841746)
+
+ -- Niels Thykier <niels@thykier.net> Tue, 19 Sep 2017 18:49:57 +0000
+
+debhelper (10.8) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * Dh_Lib.pm: Introduce a qx_cmd sub to behave like a mix of qx
+ and doit (i.e. avoid the shell while capturing stdout).
+ * dh_makeshlibs: Avoid forking a shell when calling objdump in
+ compat 11.
+ * dh_shlibdeps: Avoid forking a shell when calling file.
+ * dh_shlibdeps: Avoid passing files with "newline" to
+ subprocesses.
+ * dh_installdocs: Ignore missing files in compat 11 for packages
+ that are not processed (e.g. arch:all packages during a -B build).
+ Thanks to Jens Reyer for reporting the issue. (Closes: #870892)
+ * dh_installexamples: Ditto.
+ * dh_installinfo: Ditto.
+ * dh_installman: Ditto.
+ * dh_compress: Avoid forking a shell for a find command.
+ * dh_gconf: Ditto.
+ * dh_installgsettings: Ditto.
+ * dh_perl: Avoid forking a shell for a dpkg call.
+ * dh_gencontrol: Set the priority of all dbgsym packages to
+ optional to be compliant with Standards-Version 4.0.1.
+ Thanks to Mattia Rizzolo for the report. (Closes: #870905)
+ * dh_installdocs: Accept "nodoc" via DEB_BUILD_OPTIONS as well.
+ Thanks to Sébastien Villemot for the suggestion.
+ (Closes: #866619)
+ * dh_installexamples: Ditto.
+ * dh_installinfo: Ditto.
+ * dh_installman: Ditto.
+ * dh_installwm: Ditto.
+ * debhelper.pod: Tweak text for some compat 11 changes.
+ * dh_installdeb: Stop emitting versioned Pre-Depends on dpkg for
+ symlink_to_dir and dir_to_symlink maintscripts. The version
+ requirements are satisfied in oldoldstable.
+ * dh_installdocs: Merge two chmod calls to save a fork+exec.
+ * dh_strip: Disable parallelism when --dbg-package is used as it
+ causes non-deterministic failures in some cases. Thanks to
+ Helmut Grohne for reporting the issue. (Closes: #872007)
+ * dh_installdocs: Auto-detect "main package" for documentation
+ packages in compat 11 to assist with Debian policy §12.3. This
+ auto-detection can be overruled with the new --doc-main-package.
+ (Closes: #824221)
+ * dh_installexamples: Ditto.
+ * dh_update_autotools_config: Improve detection to also catch very
+ old versions of config.{guess,sub} that do not have the
+ "timestamp" variable. Thanks to Guillem Jover for reporting the
+ bug. (Closes: #872510)
+
+ [ Adam Conrad ]
+ * dh_gencontrol: Change the synopsis of dbgsym packages so it
+ follows best practises. (Closes: #872274)
+
+ [ Geoffrey Thomas ]
+ * Support building debhelper on case-insensitive filesystems by
+ moving the Debian (perl package) to the lib subdirectory.
+ (Closes: #873043)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 09 Sep 2017 15:07:38 +0000
+
+debhelper (10.7.2) unstable; urgency=medium
+
+ * Dh_Lib.pm: Fix inverted boolean logic that causes a
+ compatibility rule to be ignored. Thanks to Adrian Bunk,
+ Andreas Beckmann, Markus Koschany and Emmanuel Bourg for
+ reporting and analysing the issue. (Closes: #870339)
+
+ -- Niels Thykier <niels@thykier.net> Tue, 01 Aug 2017 16:51:58 +0000
+
+debhelper (10.7.1) unstable; urgency=medium
+
+ * Dh_Lib.pm: Fix doit's new call to ensure it does not call a shell
+ (like the documentation promises).
+ * dh: Ensure that we do not fork a shell for running a simple
+ command.
+ * autoconf: Revert expansion of ${var} variables passed to
+ configure as several packages implicitly assume that are not
+ expanded. E.g. liblockfile relies on ${prefix} being
+ unexpanded for DESTDIR to work. Reopens: #813266
+
+ -- Niels Thykier <niels@thykier.net> Mon, 31 Jul 2017 19:00:45 +0000
+
+debhelper (10.7) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_usrlocal: Fix call to doit to avoid making it fork a shell.
+ * autoconf.pm: Ditto.
+ * cmake.pm: Ditto.
+ * meson.pm: Ditto.
+ * dh_installmodules: Ensure maintscripts are reproducible even with
+ multiple kernel versions detected.
+ * Apply patches from gregor herrmann to improve autopkgtests.
+ * Dh_Lib.pm: Introduce a print_and_complex_doit.
+ * Buildsystem: Introduce a complex_doit_in_builddir, which is needed
+ by gradle-debian-helper.
+ * Dh_Lib.pm: Fix bug in doit + doit_* that made them fork a shell in
+ some cases. For backwards compatibility, there is detection code
+ that should make it warn for this case and retain bug-compatibility.
+ This can cause a weird "Please specify the compatibility level in
+ debian/compat" error if the tools have chdir to a different directory.
+ * Dh_Lib.pm: Support an optional hashref in doit + doit_* to enable some
+ trivial operations in the child process (e.g. redirect stdout).
+ * dh_installman: Avoid forking a shell where a simple subprocess call
+ is sufficient.
+ * Dh_Lib.pm: Avoid forking 2 to 7 subprocesses for adding an autosnippet
+ when helper tools use a subroutine rather then a sed snippet.
+ * Dh_Lib.pm: Extend autoscript to accept a hashref and use that for
+ substituting into the snippet. This variant (like the subroutine
+ variant) avoids forking a lot of subprocesses and need not worry
+ about a shell possibly interpreting metacharacters.
+ * dh_installman: Pass "-l" to man when recoding the manpages.
+ * dh_icons: Use hashref based autoscripts generation.
+ * dh_installcatalogs: Ditto.
+ * dh_installemacsen: Ditto.
+ * dh_installmenu: Ditto.
+ * dh_installmodules: Ditto.
+ * dh_installwm: Ditto.
+ * dh_installxfonts: Ditto.
+ * dh_systemd_enable: Ditto.
+ * dh_systemd_start: Ditto.
+ * Dh_Lib.pm: Reduce the use of shell and external commands for
+ generating the final maintscripts.
+ * Dh_Lib.pm: Make getpackages without any arguments return all
+ packages as the documentation promises it should. Previously,
+ it would hide packages not built (e.g. due to Build-Profiles).
+ * Dh_Lib.pm: Provide a better error message when getpackages() is called
+ by a helper in the wrong directory. Unfortunately, dh cannot rely
+ on dh_testdir to do this as dh_testdir is called too late.
+ * dh: optimize out the call to dh_testdir. It is useless for
+ printing a helpful error message when called by dh.
+ * dh_installdocs: Apply patch from Sven Joachim to revert an
+ incorrect regression "fix". Thanks to Adrian Bunk for
+ reporting the issue. (Closes: #868649)
+ * dh_installexamples: Ditto.
+ * dh_installinfo: Ditto.
+ * dh_installman: Ditto.
+ * dh_gencontrol: Rewrite code that ensures that misc:Depends and
+ misc:Pre-Depends are present to avoid relying external processes
+ for this.
+ * dh_builddeb: Let dpkg-deb choose the default compression level for
+ dbgsym packages instead of using xz -1e. The current default (xz -6)
+ is likely to be a better default value for dbgsym packages. Thanks to
+ Adrian Bunk for the suggestion. (Closes: #868674)
+ * cmake.pm: Pass -DCMAKE_INSTALL_RUNSTATEDIR=/run to cmake in compat 11.
+ Thanks to Felix Geyer for the suggestion. (Closes: #869697)
+ * cmake.pm: Avoid using the user specific cmake package registry. Thanks
+ to Christian Seiler and Felix Geyer. (Closes: #868584)
+
+ [ Colin Watson ]
+ * Quote assignment to $recommended_compat in case it isn't a valid Perl
+ version string (e.g. for Debian derivatives). Fix typos that caused it
+ not to be used correctly. Use the /g flag so that all instances of the
+ substitution variable are handled. (Closes: #869780)
+
+ [ Isaac Jurado ]
+ * Make the autoconf buildsystem expand "${var}" values send to configure
+ (e.g. pass --mandir=/usr/share/man instead of --mandir=${prefix}/share/man).
+ (Closes: #813266)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 29 Jul 2017 18:00:24 +0000
+
+debhelper (10.6.4) unstable; urgency=medium
+
+ * dh_installmenu: Revert "Stop installing menu files in compat 11
+ (menu-methods are still installed)".
+ * dh: Revert "--without=build-stamp by default in compat 11". Keep
+ the compat 10 behaviour while enable packages to opt-in by
+ explicitly passing --without=build-stamp themselves.
+ * dh_installman: Apply patch from Sven Joachim to fix regression,
+ where dh_installman would fail to remove the compressed manpage.
+ With hardlinks involved, this could make dh_compress fail later.
+ (Closes: #867846)
+ * Dh_lib.pm: Rewrite reset_perm_and_owner to it does chmod + chown
+ using perl built-ins rather than forking+exec.
+ * dh_compress: Apply patch from Sven Joachim to make dh_compress
+ gracefully handle hardlinks, where the target files already
+ exists. (Closes: #867881)
+ * dh_install: Re-instate bug compatibility with debhelper (<< 10.6)
+ where (some) path arguments where split on space as if it had
+ been parsed in the config file. (Closes: #867866)
+ * dh_installdocs: Ditto.
+ * dh_installexamples: Ditto.
+ * dh_installinfo: Ditto.
+ * dh_installman: Ditto.
+ * Dh_Lib.pm: Fix a regression in handling of dangling symlinks for
+ native file copying that caused dh_installdocs to no longer replace
+ dangling symlinks with real files. Thanks to Stéphane Glondu
+ for the report. (Closes: #868204)
+ * dh_install: Silently disable bulk optimization when two source paths
+ have the same destination. Thanks to Gianfranco Costamagna for
+ reporting the regression. (Closes: #868169)
+ * d/control: Set Testsuite to autopkgtest-pkg-perl to enable
+ autopkgtests.
+
+ -- Niels Thykier <niels@thykier.net> Fri, 14 Jul 2017 17:49:46 +0000
+
+debhelper (10.6.3) unstable; urgency=medium
+
+ * Makefile: Use "dpkg-parsechangelog -S" rather than
+ "dpkg-parsechangelog | grep".
+ * debhelper.pod: Use substitution to ensure examples always use the
+ recommended compatibility level.
+ * Dh_Lib.pm: Embed tool versions into autoscripts so lintian can
+ extract and display them. Tools that want to rely on this
+ feature should set "$main::VERSION" to the version of the tool.
+ * dh_install: Rewrite and re-enable optimization so it
+ deterministically and gracefully handles cases like #866405.
+ * dh: Support new "pkgfile-logged" hint, which can be used by
+ helpers that log what files they install. It enables dh to
+ see that it may need to run a helper that would install no
+ files, but log what it would have done to avoid making
+ dh_missing complain. Thanks to Michael Stapelberg for
+ reporting the issue and testing the fix. (Closes: #867246)
+ * PROGRAMMING: Document how to write "logging" helpers that work
+ with dh_missing.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 09 Jul 2017 08:24:34 +0000
+
+debhelper (10.6.2) unstable; urgency=medium
+
+ * Refactor test suite and support running tests in parallel.
+ * Add a test case for #866570.
+ * dh_compress: Apply patch from Sven Joachim to fix a
+ regression in 10.5.1. (Closes: #866713)
+ * dh_installman: Fix regression introduced in 10.5.1 that
+ caused a "file not found" error when using -P with an
+ absolute argument. Thanks to Adrian Bunk for reporting
+ it over IRC.
+
+ -- Niels Thykier <niels@thykier.net> Wed, 05 Jul 2017 08:40:00 +0000
+
+debhelper (10.6.1) unstable; urgency=medium
+
+ * Makefile: Enable running some tasks in parallel to better
+ utilize multiple cores.
+ * Dh_Lib.pm: Revert a change that caused dh_install (and other
+ tools) to take filenames as absolute if they started with
+ a leading slash. Thanks to Sven Joachim for the prompt
+ discovery and notification. (Closes: #866570)
+ * dh_install: Make optimization conditional on compat 11
+ for now. (Closes: #866405)
+
+ -- Niels Thykier <niels@thykier.net> Fri, 30 Jun 2017 06:50:10 +0000
+
+debhelper (10.6) unstable; urgency=medium
+
+ * dh_installinfo: Use "xargs" so it works even if there are
+ "a lot" of info files.
+ * Dh_Lib.pm: Introduce a is_build_profile_active function, which
+ can be used to check if a given Build-Profile was specified.
+ * dh_installdocs: Ignore given documentation files when the
+ "nodoc" build profile is specified in DEB_BUILD_PROFILES.
+ Note that dh_installdocs is not a complete noop in this case
+ as it still ensures the package has a copyright file (or a
+ symlinked doc directory). (Closes: #865869)
+ * dh_installman: Fix regression in compat 5 that could make it
+ ignore one manpage per invocation.
+ * dh_installdocs: Warn if a pattern in the config file matches
+ nothing. In compat 11, this becomes a hard error.
+ * dh_installexamples: Ditto.
+ * dh_installinfo: Ditto.
+ * dh_installman: Ditto.
+ * dh_installexamples: Support missing documentation under the nodoc
+ profile.
+ * dh_installinfo: Ditto.
+ * dh_installman: Ditto.
+ * dh_installwm: Ditto. (Closes: #865707)
+ * dh_installdocs: Log installed files so dh_missing can see them.
+ * dh_installexamples: Ditto. (Closes: #863456)
+ * dh_installinfo: Ditto.
+ * dh_installdocs: In compat 11, automatically fall back to debian/tmp
+ if the files are not found in ".". Furthermore, accept the option
+ --sourcedir with the same meaning as dh_install.
+ * dh_installexamples: Ditto.
+ * dh_installinfo: Ditto.
+ * dh_installman: Ditto.
+ * dh_installman: Fix bug in how it handled language auto-detection in
+ compat 11. Previously, it did not work as intended.
+ * dh_installdocs: Revert change in compat 11, where it would install
+ documentation into /usr/share/doc/mainpackage. (Reopens: #824221)
+ * Dh_Lib.pm: Stop setting PERL_USE_UNSAFE_INC in compat 11.
+ * perl_build.pm: Stop passing -I. to perl in compat 11.
+ * perl_makemaker.pm: Ditto.
+
+ -- Niels Thykier <niels@thykier.net> Thu, 29 Jun 2017 17:15:00 +0000
+
+debhelper (10.5.1) unstable; urgency=medium
+
+ * Dh_Lib.pm: Fix rounding error when computing how many processes
+ to use. This rounding error could cause dh-tools to use one more
+ process than permitted by DEB_BUILD_OPTIONS.
+ * Dh_Lib.pm: Check return value of open+close when creating a log of
+ installed files.
+ * Dh_Lib.pm: Implement subroutines to facility file removal and
+ symlink creation without a fork+exec.
+ * Dh_Lib.pm: Avoid a fork+exec for rm -f and ln -s.
+ * dh_compress: Ditto.
+ * dh_installman: Ditto.
+ * dh_clean: Avoid a fork+exec for rm -f.
+ * dh_installdeb: Ditto.
+ * dh_makeshlibs: Ditto.
+ * dh_md5sums: Ditto.
+ * dh_installdocs: Avoid a fork+exec for ln -s.
+ * dh_strip: Ditto.
+ * Dh_Lib.pm: Avoid 1-2 stat calls in make_symlink by reusing existing
+ stat calls.
+ * dh_installman: Avoid a fork+exec for renaming a path.
+ * dh_installdocs: Avoid unnecessary stat call.
+ * dh_installman: Ditto.
+ * dh_strip: Ditto.
+ * dh_shlibdeps: Fix a regression where non-detached debug symbol files
+ where not properly processed. Thanks to Sven Joachim for reporting
+ the issue. (Closes: #865982)
+ * dh_installman: When re-encoding manpages, use the actual manpages as
+ tasks to split rather than packages. This provides a much better
+ performance if the manpages are unevenly split between the packages.
+ * dh_install: Optimize some patterns into bulked "cp" calls. This
+ optimization is only applicable in some cases (notably, it is always
+ disabled by --exclude).
+ * dh_builddeb: Account for dbgsym packages separately when determining
+ how many tasks can be run in parallel.
+ * dh_strip: Process packages in parallel.
+
+ -- Niels Thykier <niels@thykier.net> Mon, 26 Jun 2017 17:25:00 +0000
+
+debhelper (10.5) unstable; urgency=medium
+
+ * Upload to unstable. (Closes: #865363)
+
+ [ Niels Thykier ]
+ * dh_installman: Remove unnecessary "chown" call that made things a
+ lot slower. Thanks to Kurt Roeckx for reporting it.
+ * dh_installman: Fix wrong permission of man pages (set 0755 instead
+ of 0644). Regression introduced in 10.2.2.
+ * dh_installman: Batch chmod calls to reduce the overhead for
+ packages with many manpages.
+ * dh: Undo an unsafe optimisation that caused "-indep" and "-arch"
+ override targets to be ignored. Thanks to Gianfranco Costamagna
+ for reporting it and Iain Lane for tracing it to the commit
+ that introduced the issue. (Closes: #863887)
+ * dh_clean, dh_prep: Bulk delete most files and directories, which
+ gives a noticeable speed up for source packages building many
+ binary packages.
+ * dh_shlibdeps: Avoid creating debian/<pkg>/DEBIAN directory if it
+ is not needed.
+ * Dh_Lib.pm: Fix typo in error message.
+ * Dh_Lib.pm: Rewrite install_* to use File::Copy to avoid the
+ overhead of a fork+exec per file. For simplicity, the verbose
+ output still claim debhelper uses "install -p -m <mode>" for this.
+ * Dh_Lib.pm: Replace most of the fork+exec calls to mv for simple
+ file renames.
+ * Dh_Lib.pm: Add sub to make common dh_* tools do their thing in
+ parallel with very little coding effort. This parallel support
+ accounts for DEB_BUILD_OPTIONS to set the upper limit.
+ * dh_fixperms: Run package updates in parallel if DEB_BUILD_OPTIONS
+ permits it.
+ * dh_installchangelogs: Ditto.
+ * dh_compress: Ditto.
+ * dh_installman: Ditto.
+ * dh_genchanges: Ditto.
+ * dh_shlibdeps: Ditto.
+ * dh_md5sums: Ditto.
+ * dh_builddeb: Rewrite the hand-written parallel code to use the new
+ simpler way of doing it.
+ * dh_shlibdeps: Avoid calling file(1) on debug symbols.
+ * SUPPORT-POLICY: Include new document that describes the current
+ support policy of debhelper compat levels.
+ * Dh_Lib.pm: Pass ":unix" layer when using the ":gzip" layer due to
+ PerlIO-gzip bug RT#114557.
+ * Dh_Lib.pm: Ignore empty dpkg-architecture variables.
+ (Closes: #862844)
+ * dh_installchangelogs: Avoid trying to install a directory by default
+ as a changelog file. Thanks to Markus Koschany for reporting the
+ issue. (Closes: #861852)
+ * dh_installwm.1: Correct documentation to reflect the behaviour in
+ compat 10. Thanks to Robert Luberda for reporting the issue.
+ (Closes: #865708)
+ * dh_installcatalogs: Use explicit await triggers to avoid trigger
+ a lintian warning.
+ * dh_installman: In compat 11, attempt to detect the language of the
+ manpage based on the directory (/man/<LANG>/manX/) before using the
+ extension. This is more reliably for packages using dh_installman
+ to install manpages from the temporary install dir.
+ (Closes: #761024)
+ * dh_installcatalogs: Check the return code of close when generating
+ a catalog for sgml-base.
+ * 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 not create package build
+ directories (except if one of them happens to be the default
+ "destdir" for dh_auto_install).
+
+ [ Iain Lane ]
+ * Dh_Lib.pm: Re-add warning + exit 0 for the -i/-a shortcut that was
+ added in 10.3. (Closes: #863961)
+ * dh_install: Pass --exclude/-X to dh_missing. (Closes: #863447)
+
+ [ Michael Stapelberg ]
+ * Dh_Getopt.pm: Provide a more detailed error message when there are
+ no buildable packages caused by architecture restrictions.
+ (Closes: #858467)
+ * Dh_Lib.pm: Split package_arch($package) into three distinct functions.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 25 Jun 2017 17:00:00 +0000
+
+debhelper (10.4) experimental; urgency=medium
+
+ * Team upload.
+
+ [ Niels Thykier ]
+ * meson.pm: Pass --wrap-mode=nodownload to meson (requires meson
+ 0.40-1 or later).
+ * dh_install: Fix initialized warning when --sourcedir is absent
+ on the cmd-line.
+ * dh_missing: Accept --sourcedir (given it is passed by dh_install).
+ (Closes: #862049)
+ * Dh_Lib.pm: Fix a bug in pkgfile that caused dh to skip helpers
+ that had configuration files. Thanks to Michael Biebl for finding
+ and reporting. (Closes: #863387)
+
+ [ Chris Lamb ]
+ * dh_fixperms: Fix regression where dh_fixperms would fail to correct
+ permissions because it used an invalid find expression.
+ (Closes: #862003)
+
+ -- Michael Biebl <biebl@debian.org> Fri, 26 May 2017 22:08:37 +0200
+
+debhelper (10.3) experimental; urgency=medium
+
+ [ Helmut Grohne ]
+ * Supply PKG_CONFIG for cross compilation with the makefile buildsystem.
+ (Closes: #853881)
+ * Disable stripping during dh_auto_* in makefile buildsystem in compat 11.
+ (Closes: #844077)
+ * Remove explicit "Multi-Arch: no" stanzas as they are auto-rejected.
+ (Closes: #857028)
+
+ [ Niels Thykier ]
+ * Dh_Lib.pm: Make getpackages() produce the correct result independently
+ of the order of the fields in a given paragraph of debian/control.
+ (Closes: #847138)
+ * dh_installman: Report installed manpages so the new dh_missing tool
+ is informed about them.
+ * dh_install: Deprecate --list-missing/--fail-missing in favor of the
+ new dh_missing tool. The options will be removed in compat 11.
+ * dh: Run dh_missing by default (in no op mode).
+ * dh_prep: Clean up generated files so they work like other temporary
+ debhelper files.
+ * dh_installinit: Clarify that it might make sense to skip dh_installinit
+ for a package if it provides a systemd service but no sysvinit file.
+ (Closes: #800043)
+ * dh_installinit: Deprecate --no-restart-on-upgrade in favor of the new
+ name --no-stop-on-upgrade, which does the same thing but is less
+ likely to be confused with --no-restart-after-upgrade and is more
+ descriptive of what it actually does. Thanks to Simon McVittie and
+ Michael Biebl for the help. (Closes: #837528)
+ * debian/rules: Only apply the --no-parallel to dh_auto_test. The rest
+ of debhelper's build appears to work fine with --parallel.
+ * dh_systemd_enable.1: Clarify that --no-enable does not control
+ whether a service is started and that dh_systemd_start is the tool
+ that does that. (Closes: #770281)
+ * autoconf.pm: Set --runstatedir to "/run" in compat 11. Thanks to
+ Michael Biebl for the suggestion.
+ * dh_fixperms: Refactor to reduce the constant overhead a bit and
+ extract some patterns into data list. The latter hopefully reducing
+ the need for tweaking dh_fixperms' logic.
+ * dh_installdocs: Document that --link-doc has limitations on source and
+ target package plus that compat 10 will reject unsupported
+ combinations.
+ * dh_gencontrol: Avoid adding Homepage fields to dbgsym packages. Avoids
+ non-overridable warnings from lintian when there is an issue in the
+ homepage field of the original binary. (Closes: #812248)
+ * dh_strip: Fix a check that could cause dh_strip to generate dbgsym
+ packages when it should not.
+ * dh: Stop loading python-support in all compat levels as dh_pysupport
+ has been removed in stretch.
+ * python_support.pm: Remove the content with a deprecation warning as
+ the module can no longer do anything.
+ * dh_installman.1: Improve the manpage to clarify the scope of
+ dh_installman and provide an examples. (Closes: LP: #184156)
+ * makefile.pm: Disable parallel installation if libtool is present to
+ avoid a race-condition in automake when using libtool.
+ (Closes: #861627)
+
+ [ Steven Chamberlain ]
+ * When cross-compiling for GNU/kFreeBSD host systems, set
+ CMAKE_SYSTEM_NAME to the correct value "kFreeBSD", not "FreeBSD".
+ (Closes: #856688)
+
+ [ Felipe Sateler ]
+ * dh_systemd_enable.1: Improve the wording of the documentation for
+ the --no-enable option. (Closes: #844602)
+
+ [ Michael Biebl ]
+ * Add support for meson + ninja build systems. (Closes: #795253)
+
+ [ Michael Stapelberg ]
+ * dh_missing: New tool to handle --list-missing/--fail-missing.
+ (Closes: #415396, #616070)
+ * Dh_Lib.pm: Introduce a log_installed_files sub that can be used
+ to inform dh_missing that a given file has been installed.
+
+ [ Johannes Schauer ]
+ * dh_link.1: Improve the documentation and use ln(1) as a reference
+ to make it simpler for people, who are used to the terms from ln.
+ (Closes: #860091)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 06 May 2017 13:29:31 +0000
+
+debhelper (10.2.5) unstable; urgency=medium
+
+ [ Translations ]
+ * Add Japanese translation (Hideki Yamane) (Closes: #852520)
+
+ -- Niels Thykier <niels@thykier.net> Wed, 25 Jan 2017 20:47:27 +0000
+
+debhelper (10.2.4) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * d/changelog: Add missing changelog entry in 10.2.3 for a
+ compat 11 change.
+ * dh: Show when the "create-stamp" "command" is being run.
+ * dh: Fix a bug where dh would repeat part of the build sequence
+ when an add-on modified the build sequence after "dh_auto_test".
+ Thanks to Sean Whitton for reporting the issue.
+ (Closes: #851071)
+
+ [ Luca Boccassi ]
+ * dh_systemd_enable: Correct installation for "mount" units.
+ (Closes: #851744)
+
+ [ Translations ]
+ * Update Portuguese translation (Américo Monteiro)
+ (Closes: #851207)
+ * Update French translation (Baptiste Jammet) (Closes: #852211)
+ * Update German translation (Chris Leick) (Closes: #851962)
+
+ -- Niels Thykier <niels@thykier.net> Mon, 23 Jan 2017 20:28:37 +0000
+
+debhelper (10.2.3) unstable; urgency=medium
+
+ [ Axel Beckert ]
+ * Fix wrong German translation of dh_systemd_start man page. Thanks to
+ Thorsten Alteholz for spotting the mistake! (Closes: #839655)
+
+ [ Mattia Rizzolo ]
+ * dh_auto_test: Apply patch from Mattia Rizzolo to update
+ documentation about running tests during cross-building.
+
+ [ Niels Thykier ]
+ * Bump dependency on dh-strip-nondeterminism to ensure
+ stable-backports uses a functional version. Thanks to Christoph
+ Biedl for the report. (Closes: #843813)
+ * Massage md5sum output to avoid GNU-specific escaping extension
+ while we wait for dpkg-gendigests for a more compatible tool.
+ Thanks to Bernd Zeimetz for the report. (Closes: #843163)
+ * In compat 11, dh will now skip creating a stamp file unless the
+ package explicitly requests it with "--with build-stamp".
+
+ [ Felipe Sateler ]
+ * dh_systemd_start: Fix a bug where --restart-after-upgrade with
+ --no-start would still start the service. (Closes: #805878)
+ * dh_installinit: Leave the handling of debian/pkg.service and
+ debian/pkg.tmpfiles to dh_systemd_*. (Closes: #830208)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 31 Dec 2016 21:27:54 +0000
+
+debhelper (10.2.2) unstable; urgency=medium
+
+ * Fix typo in changelog entry for release 10.2. Thanks to
+ Peter Pentchev for reporting it.
+ * Deprecate all compat levels lower than 9.
+ * dh: Discard override log files before running the override
+ rather than after.
+ * dh_compress,dh_fixperms: Remove references to long
+ obsolete directories such as usr/info, usr/man and
+ usr/X11*/man.
+ * autoreconf.pm: Apply patch from Helmut Grohne to fix
+ autoconf/cross regression from #836988. The autoreconf
+ build-system is now also used directly for "clean" and
+ "build" (while still using the "make" build-system for the
+ heavy lifting). (Closes: #839681)
+ * dh_installdirs: In compat 11, avoid creating debian/<pkg>
+ directories except when required to do so. This fixes a
+ corner case, where an arch:all build would behave
+ differently than an arch:all+arch:any when dh_installdir is
+ optimised out only for the arch:all build.
+ * Dh_Lib.pm: Fix typo of positive. Thanks to Matthias Klose
+ for spotting it.
+
+ -- Niels Thykier <niels@thykier.net> Sat, 08 Oct 2016 10:16:23 +0000
+
+debhelper (10.2.1) unstable; urgency=medium
+
+ * d/rules: Add a ./run in front of dh_auto_install. It is
+ technically not needed, but it prevents lintian from assuming
+ that we need to Build-Depend debhelper.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 02 Oct 2016 06:51:49 +0000
+
+debhelper (10.2) unstable; urgency=medium
+
+ * Apply patch from Peter Pentchev to fix some typos.
+ * Apply patch from Michael Biebl to undo a major
+ regression where all of debhelper's functionality was
+ missing (introduced in 10.1). (Closes: #839557)
+ * dh_installinit,dh_systemd_start: Introduce a new
+ --no-stop-on-upgrade as an alternative to
+ --no-restart-on-upgrade. This new option should
+ reduce the confusion of what it does. Thanks to
+ Michael Biebl for the suggestion.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 02 Oct 2016 06:20:56 +0000
+
+debhelper (10.1) unstable; urgency=medium
+
+ * Apply patch from Michael Biebl to take over dh-systemd
+ package to ease backporting to jessie-backports.
+ (Closes: #837585)
+ * Apply patch from Helmut Grohne and Julian Andres Klode
+ to improve cross-building support in the cmake build
+ system. (Closes: #833789)
+ * Make the makefile.pm buildsystem (but not subclasses thereof)
+ pass the CC and CXX variables set to the host compilers when
+ cross-building. Thanks to Helmut Grohne for the idea and
+ the initial patch. (Closes: #836988)
+ * dh_md5sums.1: Mention dpkg --verify as a consumer of the
+ output file. Thanks to Guillem Jover for reporting it.
+ * debhelper-obsolete-compat.pod: Add a manpage for the
+ upgrade checklist for all obsolete/removed compat levels.
+ Thanks to Jakub Wilk for the suggestion.
+ * Dh_Getopt.pm,dh_*: Rename --onlyscripts to --only-scripts and
+ --noscripts to --no-scripts for consistency with other
+ options. The old variants are accepted for compatibility.
+ Thanks to Raphaël Hertzog for the suggestion.
+ (Closes: #838446)
+ * cmake.pm: If cmake fails, also dump CMakeFiles/CMakeOutput.log
+ and CMakeFiles/CMakeError.log if they are present. Thanks to
+ Michael Banck for the suggestion. (Closes: #839389)
+ * d/copyright: Correct copyright and license of dh_systemd*
+ tools.
+
+ -- Niels Thykier <niels@thykier.net> Sat, 01 Oct 2016 20:45:27 +0000
+
+debhelper (10) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * Dh_Lib.pm: Support a new named "beta-tester" compat level.
+ If you want to participate in beta testing of new compat
+ levels, please review "man 7 debhelper" for more
+ information.
+ * Dh_Lib.pm: Fix bug in detection of existing auto-trigger.
+
+ [ Axel Beckert ]
+ * Apply patch by Jens Reyer to fix typo in dh_installdocs man page.
+ (Closes: #836344)
+ * Use uppercase "Debian" in package description when the project is
+ meant. Fixes lintian warning capitalization-error-in-description.
+ * Apply "wrap-and-sort -a"
+ * Add a .mailmap file for making "git shortlog" work properly.
+
+ [ Translations ]
+ * Update German translation (Chris Leick) (Closes: #835593)
+ * Update Portuguese translation (Américo Monteiro)
+ (Closes: #835403)
+ * Update French translation (Baptiste Jammet) (Closes: #836693)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 11 Sep 2016 09:00:23 +0000
+
+debhelper (9.20160814) unstable; urgency=medium
+
+ * dh_installdocs: Apply patch from Sven Joachim to make
+ --link-doc work again in compat 11 (See: #830309)
+ * t: Apply patch from Sven Joachim to add some test cases
+ to dh_installdocs's --link-doc behaviour.
+ (Closes: #831465)
+ * dh_installinit,dh_systemd_start: Apply patches from
+ Peter Pentchev to make -R default in compat 10 (as
+ documented, but not as implemented).
+ * perl_{build,makemaker}.pm: Apply patch from Dominic
+ Hargreaves to explicitly pass -I. to perl. This is to
+ assist with the fix for CVE-2016-1238. (Closes: #832436)
+ * dh_install: Clarify that "debian/not-installed" is not
+ related to the --exclude parameter.
+ * dh_install: Apply patch from Sven Joachim to support
+ the "debian/tmp" prefix being optional in
+ "debian/not-installed". (Closes: #815506)
+ * Dh_Lib.pm: Apply patch from Dominic Hargreaves to set
+ PERL_USE_UNSAFE_INC to fix a further set of packages
+ which fail to build with . removed from @INC.
+ (Closes: #832436)
+ * Dh_Buildsystems.pm: Enable auto-detection of the maven
+ and gradle buildsystems (provided they are installed).
+ Thanks to Emmanuel Bourg for the suggestion.
+ (Closes: #801732)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 14 Aug 2016 09:19:35 +0000
+
+debhelper (9.20160709) unstable; urgency=medium
+
+ * Explicitly Build-Depends on perl:any for pod2man instead
+ of relying on it implicitly via libdpkg-perl.
+ * dh_shlibdeps: Clarify that -L is also useful for packages
+ using debian/shlibs.local for private libraries.
+ * dh_installdocs: Apply patch from Sven Joachim to fix a
+ regression with --link-doc and installing extra
+ documentation. (Closes: #830309)
+ * Apply patches from Michael Biebl to merge dh_systemd_enable
+ and dh_systemd_start from the dh-systemd package.
+ (Closes: #822670)
+ * dh: Enable the systemd helpers by default in compat 10 and
+ later.
+
+ -- Niels Thykier <niels@thykier.net> Sat, 09 Jul 2016 09:53:02 +0000
+
+debhelper (9.20160702) unstable; urgency=medium
+
+ * Start on compat 11.
+ * dh_installmenu: Stop installing menu files in compat 11
+ (menu-methods are still installed).
+ * dh_*: Deprecate -s in favor of -a. The -s option is
+ removed in compat 11.
+ * dh_strip: Fix regression in 9.20160618, which caused
+ issues when there were hardlinked ELF binaries in a
+ package. Thanks to Sven Joachim for the report, the
+ analysis/testing and for providing a patch for the
+ most common case. (Closes: #829142)
+ * Dh_Lib.pm: Cope with the parallel options in make 4.2.
+ Thanks to Martin Dorey for the report. (Closes: #827132)
+ * dh_installdocs: In compat 11, install documentation into
+ /usr/share/doc/mainpackage as requested by policy 3.9.7.
+ Thanks to Sandro Knauß for the report. (Closes: #824221)
+ * dh_perl: Emit perl:any dependencies when a package only
+ contains perl programs (but no modules of any kind).
+ Thanks to Javier Serrano Polo and Niko Tyni for the
+ report and feedback. (Closes: #824696)
+
+ [ Translations ]
+ * Update German translation (Chris Leick + Eduard Bloch)
+ (Closes: #827699)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 02 Jul 2016 13:24:21 +0000
+
+debhelper (9.20160618.1) unstable; urgency=medium
+
+ * Dh_Lib.pm: Reject requests for compat 4 instead of
+ silently accepting it (while all helpers no longer
+ check for it).
+
+ -- Niels Thykier <niels@thykier.net> Sat, 18 Jun 2016 20:52:29 +0000
+
+debhelper (9.20160618) unstable; urgency=medium
+
+ * dh: Fix bug where "--help" or "--list" would not work
+ unless "debian/compat" existed and had a supported
+ compat level. (Closes: #820508)
+ * dh_compress: Gracefully handle debian (or any other
+ path segment in the package "tmpdir") being a symlink
+ pointing outside the same directory. Thanks to
+ Bernhard Miklautz for the report. (Closes: #820711)
+ * Dh_Lib.pm: Compat files are now mandatory.
+ * dh_clean: Remove work around for missing compat file.
+ This removes a confusing warning when the package is
+ not built by CDBS. (Closes: #811059)
+ * debhelper.pod: Add a line stating that debian/compat
+ is mandatory. (Closes: #805405)
+ * dh_strip: Apply patch from Peter Pentchev to only strip
+ static libraries with a basename matching "lib.*\.a".
+ (Closes: #820446)
+ * ant.pm: Apply patch from Emmanuel Bourg to pass a
+ normalised "user.name" parameter to ant.
+ (Closes: #824490)
+ * dh_installudev/dh_installmodules: Drop maintainer
+ script snippets for migrating conffiles.
+ - Side effect, avoids portability issue with certain
+ shell implementations. (Closes: #815158)
+ * autoscripts/*inst-moveconffile: Remove unused files.
+ * dh: Update documentation to reflect the current
+ implementation.
+ * Remove support for compat 4.
+ * dh_strip: Add debuglinks to ELF binaries even with
+ DEB_BUILD_OPTIONS=noautodbgsym to make the regular deb
+ bit-for-bit reproducible with vs. without this flag.
+ Thanks to Helmut Grohne for the report.
+ * dh_installcatalogs: Apply patch from Helmut Grohne to
+ explicitly trigger a new update-sgmlcatalog trigger,
+ since dpkg does not triger conffiles on package removal.
+ (Closes: #825005)
+ * dh_installcatalos: Apply patch from Helmut Grohne to
+ remove autoscript for a transition that completed in
+ Wheezy.
+ * dh_strip: Unconditionally pass --enable-deterministic-archives
+ to strip for static libs as the stable version of binutils
+ supports it.
+ * dh_strip: Use file(1) to determine the build-id when
+ available. This saves an readelf call for every binary in
+ the package.
+ * dh_strip: Cache file(1) output to avoid calling file(1)
+ twice on all ELF binaries in the package.
+ * Dh_Lib.pm: Add better error messages when a debhelper program
+ fails due to an executable config file not terminating with
+ success. (Closes: #818933)
+ * dh_strip: Pass -e to file(1) to skip tests for file formats
+ that dh_strip does not care about.
+ * Bump standards-version to 3.9.8 - no changes required.
+
+ -- Niels Thykier <niels@thykier.net> Sat, 18 Jun 2016 14:41:05 +0000
+
+debhelper (9.20160403) unstable; urgency=medium
+
+ * d/control: Require dh-autoreconf (>= 12) to ensure
+ non-autotools can be built in compat 10.
+ * dh: In a "PROMISE: DH NOOP" clause, make no assumptions
+ about being able to skip "foo(bar)" if "foo" is not known.
+ * debhelper.pod: Use DEB_HOST_ARCH instead of the incorrect
+ "build architecture". Thanks to Helmut Grohne for the
+ report.
+ * dh_makeshlibs: Use same regex for extracting SONAME as
+ dpkg-shlibdeps. (Closes: #509931)
+ * dh_makeshlibs: Add an ldconfig trigger if there is an
+ unversioned SONAME and the maintainer provides a
+ symbols file.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 03 Apr 2016 08:56:07 +0000
+
+debhelper (9.20160402) unstable; urgency=medium
+
+ * Remove dh_desktop.
+ * dh_install: Fix a regression where a non-existing file
+ was ignored if another file was matched for the same
+ destination dir. Thanks to Ben Hutchings for reporting
+ the issue. (Closes: #818834)
+ * d/rules: Use overrides to disable unnecessary helpers
+ (for which debhelper does not Build-Depend on the
+ necessary packages to run the tools).
+ * dh: Enable "autoreconf" sequence by default in compat
+ 10 (or higher). (Closes: #480576)
+ * d/control: Add a dependency on dh-autoreconf due to
+ the above.
+ * autoscripts/*-makeshlibs: Remove again. Most of the
+ reverse dependencies have migrated already.
+ * Declare compat 10 ready for testing.
+
+ -- Niels Thykier <niels@thykier.net> Sat, 02 Apr 2016 19:20:17 +0000
+
+debhelper (9.20160313) unstable; urgency=medium
+
+ * Remove dh_undocumented.
+ * dh_install: Attempt to improve the documentation of the
+ config file "debian/not-installed".
+ * dh_compress: Gracefully handle absolute paths passed via
+ the -P option. Thanks to Andreas Beckmann for reporting
+ the issue. (Closes: #818049)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 13 Mar 2016 14:21:02 +0000
+
+debhelper (9.20160306) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * Remove dh_suidregister and related autoscripts. No package
+ (that can be built in unstable) invokes this tool.
+ * dh: Do not create stamp files when running with --no-act.
+ * dh_strip/dh_gencontrol: Move "is_udeb" guard to dh_strip.
+ This should avoid adding build-ids to udebs without having
+ the actual debug symbols available. Thanks to Jérémy Bobbio
+ for reporting the issue. (Closes: #812879)
+ * dh_makeshlibs: Do not claim to be using maintainer scripts
+ for invoking ldconfig. Thanks to Eugene V. Lyubimkin for
+ the report. (Closes: #815401)
+ * Remove dh_scrollkeeper. It is no longer used in unstable.
+ * autoconf.pm: Apply patch from Gergely Nagy to set "VERBOSE=1"
+ when running tests to make sure that the build logs are
+ dumped on error with automake. (Closes: #798648, #744380)
+ * dh_installdeb: In compat 10, properly shell escape lines
+ from the maintscript config file. This will *not* be fixed
+ retroactively since people have begun to rely on the bug
+ in previous versions (e.g. by quoting the file names).
+ Thanks to Jakub Wilk for reporting the issue.
+ (Closes: #803341)
+ * dh_installdeb: In compat 10, avoid adding two comments per line
+ in the maintscript file. Thanks to Didier Raboud for
+ reporting the bug. (Closes: #615854)
+ * cmake.pm: Apply patch from Helmut Grohne to correct the
+ name of the default cross compilers. (Closes: #812136)
+ * dh_installdeb: Clarify what goes in the "maintscript" config
+ files. Thanks to Julian Andres Klode for the report.
+ (Closes: #814761)
+ * dh_compress: Correct and warn if given a path with a package
+ tmp dir prefix (e.g. "debian/<pkg>/path/to/file").
+ * dh_compress: Handle file resolution failures more gracefully.
+ Thanks to Daniel Leidert for reporting this issue.
+ (Closes: #802274)
+ * dh_installinit: Make --restart-after-upgrade the default in
+ compat 10. Packages can undo this by using the new
+ --no-restart-after-upgrade parameter.
+ * d/control: Update Vcs links.
+ * d/control: Bump Standards-Version to 3.9.7 - no changes
+ required.
+ * Import newer German translations from Chris Leick.
+ (Closes: #812790)
+
+ [ Joachim Breitner ]
+ * addsubstvar: Pass -a to grep to handle substvars with unicode content
+ gracefully (Closes: #815620)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 06 Mar 2016 13:14:43 +0000
+
+debhelper (9.20160115) unstable; urgency=medium
+
+ * Fix brown paper bag bug that caused many packages to
+ FTBFS when dh_update_autotools_config was called.
+ (Closes: #811052)
+ * Revert removal of autoscripts/*-makeshlibs. Some packages
+ injected them directly into their maintainer scripts.
+ (Closes: #811038)
+
+ -- Niels Thykier <niels@thykier.net> Fri, 15 Jan 2016 20:28:37 +0000
+
+debhelper (9.20160114) unstable; urgency=low
+
+ [ Niels Thykier ]
+ * Dh_Lib.pm: Pass "-S" to dpkg-parsechangelog when requesting
+ the Version field.
+ * Drop compat level 3.
+ * dh_install: Only fallback to debian/tmp if the given glob
+ does not start with debian/tmp. This should make the
+ output on failures less weird.
+ * autoscripts/*-makeshlibs: Removed, no longer used.
+ * dh: In compat 10, drop the manual sequence control arguments
+ and the sequence log files. (Closes: #510855)
+ * dh_update_autotools_config: New helper to update config.sub
+ and config.guess.
+ * dh: Run dh_update_autotools_config before dh_auto_configure.
+ (Closes: #733045)
+ * d/control: Add dependency on autotools-dev for the new
+ dh_update_autotools_config tool.
+ * dh_installinit: Correct the "PROMISE NOOP" clause to account
+ for /etc/tmpfiles.d and /usr/lib/tmpfiles.d.
+ * dh_strip: Add "--(no-)automatic-dbgsym" and "--dbgsym-migration"
+ options to replace "--(no-)ddebs" and "--ddeb-migration".
+ (Closes: #810948)
+
+ [ Dmitry Shachnev ]
+ * dh_install: Fail because of missing files only after processing
+ all file lists for all packages. (Closes: #488346)
+
+ -- Niels Thykier <niels@thykier.net> Thu, 14 Jan 2016 22:01:03 +0000
+
+debhelper (9.20151225) unstable; urgency=medium
+
+ * dh_installmanpages: Fix call to getpackages. Thanks to
+ Niko Tyni for reporting the issue. (Closes: #808603)
+ * Dh_Lib.pm: Restore the behaviour of getpackages(), which
+ is slightly different from getpackages('both'). Fixes
+ a regression introduced in 9.20151220.
+
+ -- Niels Thykier <niels@thykier.net> Fri, 25 Dec 2015 14:39:18 +0000
+
+debhelper (9.20151220) unstable; urgency=medium
+
+ * dh_strip: Document that dbgsym packages are built by
+ default.
+ * Dh_Lib.pm: Cache the results of getpackages.
+ * dh_gencontrol: Create debug symbol packages with the same
+ component as the original package.
+
+ -- Niels Thykier <niels@thykier.net> Sun, 20 Dec 2015 11:59:33 +0000
+
+debhelper (9.20151219) unstable; urgency=medium
+
+ * dh_installinit: Apply patch from Reiner Herrmann to sort
+ temporary files put in postinst. (Closes: #806392)
+ * dh_installinit: Import change from Ubuntu to add /g
+ modifier when substituting the auto-script snippets.
+ * dh_*: Add /g when substituting the auto-script snippts in
+ other commands as well.
+ * dh_strip: Do not assume that ELF binaries have a Build-Id.
+ Thanks to Helmut Grohne for spotting this issue.
+ (Closes: #806814)
+ * dh_strip: Enable generation of dbgsym packages by default.
+ Thanks to Ansgar Burchardt and Paul Tagliamonte for
+ implementing the DAK side of this feature.
+ (Closes: #510772)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 19 Dec 2015 22:01:53 +0000
+
+debhelper (9.20151126) unstable; urgency=medium
+
+ * dh_compress: Apply patch from Michael Biebl to skip
+ compression of .devhelp2 files. (Closes: #789153)
+ * dh_installinit: Undo "Disable initscripts when a package is
+ removed (but not yet purged)". (Reopens #749400,
+ Closes: #806276)
+
+ -- Niels Thykier <niels@thykier.net> Thu, 26 Nov 2015 18:06:06 +0100
+
+debhelper (9.20151117) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_clean: Temporarily interpret the absence of d/compat and
+ DH_COMPAT to mean compat 5. This is to avoid breaking
+ packages that rely on cdbs to set debian/compat to 5 during
+ the build. This temporary work around will live until
+ d/compat becomes mandatory. (Closes: #805404)
+
+ [ Translations ]
+ * Update German translation (Chris Leick)
+ (Closes: #802198)
+
+ -- Niels Thykier <niels@thykier.net> Tue, 17 Nov 2015 21:29:17 +0100
+
+debhelper (9.20151116) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_strip: Sort build-ids to make the Build-Ids header
+ reproducible.
+ * Dh_Lib.pm: Respect --no-act in autotrigger, thanks to
+ Andreas Henriksson and Helmut Grohne for reporting
+ the issue. (Closes: #800919)
+ * Fix typos in various manpages. Thanks to Chris Leick
+ for reporting them.
+ * dh_clean: Avoid cleaning up debian/.debhelper when
+ passed the "-d" flag.
+ * Dh_Lib.pm: Reject compat levels earlier than 3.
+ * dh_clean: Support removal of directory (plus contents)
+ when they are marked with a trailing slash.
+ (Closes: #511048)
+ * dh_install,dh_installdocs,dh_installexamples: Apply
+ patches from Niko Tyni to make timestamp of directories
+ created from "find"-pipelines reproducible.
+ (Closes: #802005)
+ * dh_installinit: The postinst snippets are now only run
+ during "configure" or "abort-upgrade".
+ (Closes: #188028)
+ * cmake.pm: Apply patch from Jonathan Hall to fix an
+ accidental error hiding. (Closes: #802984)
+ * qmake.pm: Apply patch from Sergio Durigan Junior to
+ create the build dir if it doesn't exist.
+ (Closes: #800738)
+ * dh_installinit: Disable initscripts when a package is
+ removed (but not yet purged). (Closes: #749400)
+ * Dh_Lib.pm: Reject debian/compat files where the first
+ line is not entirely a positive number.
+
+ [ Translations ]
+ * Update German translation (Chris Leick)
+ (Closes: #802198)
+ * Update Portuguese translation (Américo Monteiro)
+ (Closes: #804631)
+ * Updated french translation (Baptiste Jammet)
+ (Closes: #805218)
+
+ -- Niels Thykier <niels@thykier.net> Mon, 16 Nov 2015 21:05:53 +0100
+
+debhelper (9.20151005) unstable; urgency=medium
+
+ * dh_strip: Sort build-ids to make the Build-Ids header
+ reproducible.
+ * Dh_Lib.pm: Respect --no-act in autotrigger, thanks to
+ Andreas Henriksson and Helmut Grohne for reporting
+ the issue. (Closes: #800919)
+
+ -- Niels Thykier <niels@thykier.net> Mon, 05 Oct 2015 08:33:26 +0200
+
+debhelper (9.20151004) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh,dh_auto_*: Apply patch from Eduard Sanou to define
+ SOURCE_DATE_EPOCH. (Closes: #791823)
+ * cmake.pm: Add better cross-compile support for cmake.
+ Heavily based on a patch from Helmut Grohne.
+ (Closes: #794396)
+ * cmake.pm: Pass -DCMAKE_INSTALL_SYSCONFDIR=/etc and
+ -DCMAKE_INSTALL_LOCALSTATEDIR=/var to cmake. Thanks to
+ Felix Geyer, Lisandro Damián Nicanor Pérez Meyer and
+ Michael Terry for the assistance plus suggestions.
+ (Closes: #719148)
+ * dh_installinit: Quote directory name before using it in
+ a regex.
+ * dh_installinit: Create script snippets for tmpfiles.d
+ files even if the package has no sysvinit script or
+ explicit debian/<package>.service file.
+ (Closes: #795519)
+ * dh_makeshlibs: Revert passing -X to ldconfig in compat 10
+ after talking with the glibc maintainer. This is not the
+ right place to make this change.
+ * d/control: Remove the homepage field.
+ * dh: Make dh_strip_nondeterminism optional, so debhelper
+ does not need to build-depend on it.
+ * dh_gencontrol/dh_builddeb: Temporarily stop building ddebs
+ for udebs as dpkg-gencontrol and dpkg-deb does not agree
+ the default file extension for these.
+ * dh_builddeb: Generate udebs with the correct filename even
+ when "-V" is passed to dpkg-gencontrol. This relies on
+ dpkg-deb getting everything but the extension correct
+ (see #575059, #452273 for why it does not produce the
+ correct extension).
+ (Closes: #516721, #677353, #672282)
+ * Dh_Lib.pm: Drop now unused "udeb_filename" subroutine.
+ * dh_strip.1: Correct the documentation about ddebs to
+ reflect the current implementation (rather than the
+ desired "state"). Thanks to Jakub Wilk for the report.
+ (Closes: #797002)
+ * dh_fixperms: Reset permissions to 0644 for .js, .css,
+ .jpeg, .jpg, .png, and .gif files. Thanks to Ernesto
+ Hernández-Novich for the suggestion. (Closes: #595097)
+ * dh_install: Read debian/not-installed if present as a
+ list of files that are deliberately not installed.
+ Files listed here will not cause dh_install to complain
+ with --list-missing. Thanks to Peter Eisentraut for the
+ suggestion. (Closes: #436240)
+ * Dh_Lib.pm: Cherry-pick patch from Chris Lamb to only read
+ the latest changelog entry when determining the
+ SOURCE_DATE_EPOCH.
+ * debhelper.7: Provide a better example of how to insert
+ the debhelper maintainer script snippets into a maintainer
+ script written in Perl. Thanks to Jakub Wilk for
+ reporting the issues. (Closes: #797904)
+ * dh_shlibdeps: The "-L" option can now be passed multiple
+ times with different package names. Thanks to Tristan
+ Schmelcher for the suggestion. (Closes: #776103)
+ * dh,Buildsytems: In compat 10, default to --parallel.
+ * dh,Buildsytems: Accept "--no-parallel" to disable
+ parallel builds. It is effectively the same as using
+ --max-parallel=1 but may be more intuitive to some people.
+ * dh_makeshlibs: Use a noawait trigger to invoke ldconfig
+ rather maintscripts.
+ * dh_installdirs.1: Add a note that many packages will work
+ fine without calling dh_installdirs. (Closes: #748993)
+ * dh_compress: Apply patch from Rafael Kitover to support
+ passing files to dh_compress that would have been
+ compressed anyway. (Closes: #794898)
+ * Dh_Lib.pm: Apply patch from Gergely Nagy to make debhelper
+ export "DH_CONFIG_ACT_ON_PACKAGES" when executing an
+ executable debhelper config file. This is intended to
+ assist dh-exec (etc.) in figuring what packages are
+ acted on. (Closes: #698054)
+ * dh_movefiles: Expand globs in arguments passed in all
+ compat levels (and not just compat 1 and 2).
+ (Closes: #800332)
+ * dh_installinit: Clearly document that --onlyscripts
+ should generally be used with -p (or similar) to limit
+ the number of affected packages. (Closes: #795193)
+
+ [ Paul Tagliamonte ]
+ * dh_gencontrol: Put debug debs back in the "debug" section.
+ * dh_strip/dh_gencontrol: Add a space separated list of
+ build-ids in the control file of packages containing
+ detached debug symbols.
+
+ [ Andrew Ayer ]
+ * d/control: Depend on dh-strip-nondeterminism
+ * dh: Call dh_strip_nondeterminism during build.
+ (Closes: #759895)
+
+ [ Colin Watson ]
+ * Buildsystem.pm: Fix doit_in_sourcedir/doit_in_builddir to
+ always chdir back to the original directory even if the
+ subprocess exits non-zero. (Closes: #798116)
+
+ [ Translations ]
+ * Update Portuguese translation (Américo Monteiro)
+ (Closes: #790820)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 04 Oct 2015 17:34:16 +0200
+
+debhelper (9.20150811) unstable; urgency=medium
+
+ * d/changelog: Add missing entry for dh_md5sums/#786695 in
+ the 9.20150628 release.
+ * Makefile: Set LC_ALL=C when sorting.
+ * dh: Avoid passing --parallel to other debhelper commands
+ if it is the only option and "parallel" is not set (or
+ set to 1) in DEB_BUILD_OPTIONS.
+ * dh_strip: Apply patch from Guillem Jover to fix a typo.
+ (Closes: #792207)
+ * dh_makeshlibs: Avoid an uninitialised warning in some
+ error cases. Thanks to Jakub Wilk for reporting it.
+ (Closes: #793092)
+ * Dh_Lib.pm: Apply patch from Guillem Jover to use the
+ value of dpkg-architecture variables from the environment,
+ if present. (Closes: #793440)
+ * Dh_Buildsystems.pm/Dh_Lib.pm: Import Exporter's import
+ subroutine rather than adding Exporter to @ISA.
+ * Dh_Lib.pm: Use Dpkg::Arch's debarch_is rather than running
+ dpkg-architecture to determine if an architecture matches
+ a wildcard. Heavily based on a patch from Guillem Jover.
+ (Closes: #793443)
+ * dh_strip: Always compress debug sections of debug symbols
+ in ddebs.
+ * dh_strip: Strip ".comment" and ".note" sections from static
+ libraries. Thanks to Helmut Grohne for the suggestion.
+ (Closes: #789351)
+ * dh_gencontrol: Stop explicitly passing -DSource to
+ dpkg-gencontrol when building ddebs. The passed value was
+ wrong sometimes (e.g. with binNMUs) and dpkg-gencontrol
+ since 1.18.2~ computes the value correctly.
+ * d/control: Bump dependency on dpkg-dev to 1.18.2~ for
+ ddebs. Build-depends not bumped since debhelper itself
+ does not produce any ddebs.
+ * dh_makeshlibs: Continue generating reports from
+ dpkg-gensymbols after the first error. This helps
+ packages with multiple libraries to spot all the symbol
+ issues in one build.
+
+ -- Niels Thykier <niels@thykier.net> Tue, 11 Aug 2015 22:47:08 +0200
+
+debhelper (9.20150628) unstable; urgency=medium
+
+ * Upload to unstable with ddebs support disabled by default.
+
+ [ Niels Thykier ]
+ * Buildsystem.pm: Apply patch from Emmanuel Bourg to
+ provide doit_in_{build,source}dir_noerror methods.
+ (Closes: #785811)
+ * Dh_Lib.pm: Promote error_exitcode to a regular exported
+ subroutine (from an internal one).
+ * dh_compress: Apply patch from Osamu Aoki to avoid compressing
+ ".xhtml" files and to use a POSIX compliant find expression.
+ (Closes: #740405)
+ * dh_makeshlibs: Fix typo in manpage. Thanks to Jakub Wilk for
+ reporting it. (Closes: #788473)
+ * dh_auto_test: Run tests by default even during cross-building.
+ (Closes: #726967)
+ * dh_gencontrol: Put ddebs in the "debugsym" section.
+ * dh_strip: Support a new --[no-]ddebs option intended for
+ packages to disable automatic ddebs.
+ * dh_strip: Do not create ddebs for "-dbg" packages.
+ * dh_builddeb/dh_gencontrol: Let dpkg figure out the name
+ of the ddebs itself now that ddebs uses a ".deb"
+ extension.
+ * dh_md5sums: create DEBIAN dir in ddebs before using it.
+ (Closes: #786695)
+
+ [ Thibaut Paumard ]
+ * Bug fix: "dh_usrlocal leaves directories behind", thanks to Andreas
+ Beckmann (Closes: #788098).
+
+ -- Niels Thykier <niels@thykier.net> Sun, 28 Jun 2015 13:51:48 +0200
+
+debhelper (9.20150519+ddebs) experimental; urgency=medium
+
+ * dh_strip: Add --ddeb-migration option to support migration
+ from a --dbg-package to a automatic ddeb.
+ * Dh_Lib.pm: Add "package_multiarch" function.
+ * d/control: Add versioned Build-Depends on dpkg-dev to support
+ creating ddebs with the ".deb" extension.
+ * Dh_Lib.pm: Generate ddebs with the ".deb" extension.
+ * dh_gencontrol: Reduce the "pkg:arch" to "pkg" as APT and dpkg
+ disagree on what satisfies an "pkg:arch" dependency.
+ * dh_strip.1: Document what inhibits ddeb generation.
+ * dh_gencontrol: Only mark a ddeb as Multi-Arch: same if the
+ original deb was Multi-Arch: same. All other ddebs are now
+ Multi-Arch: no (by omitting the field).
+ * dh_strip: Avoid generating a ddeb if the same name as an
+ explicitly declared package. Apparently, Ubuntu has been
+ creating some of these manually.
+
+ -- Niels Thykier <niels@thykier.net> Tue, 19 May 2015 21:56:55 +0200
+
+debhelper (9.20150507) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_bugfiles: Fix regression in installing the reportbug
+ script correctly. Thanks to Jakub Wilk for reporting.
+ (Closes: #784648)
+
+ [ Translation updates ]
+ * pt - Thanks to Américo Monteiro.
+ (Closes: #784582)
+
+ -- Niels Thykier <niels@thykier.net> Thu, 07 May 2015 20:07:49 +0200
+
+debhelper (9.20150502+ddebs) experimental; urgency=medium
+
+ * Add /experimental/ ddebs support *if* the environment
+ variable DH_BUILD_DDEBS is set to 1.
+
+ -- Niels Thykier <niels@thykier.net> Sat, 02 May 2015 10:35:29 +0200
+
+debhelper (9.20150502) unstable; urgency=medium
+
+ * dh_compress: REVERT change to avoid compressing ".xhtml"
+ files due to #784016. (Reopens: #740405, Closes: #784016)
+
+ -- Niels Thykier <niels@thykier.net> Sat, 02 May 2015 10:21:42 +0200
+
+debhelper (9.20150501) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * dh_strip: Recognise .node as potential ELF binaries that
+ should be stripped like a regular shared library. Thanks
+ to Paul Tagliamonte for the report. (Closes: #668852)
+ * dh_shlibdeps: Recognise .node as potential ELF binaries that
+ should be processed like a regular shared library. Thanks
+ to Paul Tagliamonte for the report. (Closes: #668851)
+ * Convert package to the 3.0 (native) format, so dpkg-source
+ strips the .git directory by default during build.
+ * Reorder two paragraphs in d/copyright to avoid one of them
+ being completely overwritten by the other.
+ * d/control: Use the canonical URLs for the Vcs-* fields.
+ * dh_makeshlibs: Apply patch from Jérémy Bobbio to ensure
+ stable ordering of generated shlibs files.
+ (Closes: #774100)
+ * dh_icons: Apply patch from Jérémy Bobbio to ensure stable
+ ordering of the icon list inserted into generated maintainer
+ scripts. (Closes: #774102)
+ * Dh_Lib.pm: Add a public "make_symlink" subroutine allowing
+ dh_*-like tools to generate policy compliant symlinks without
+ invoking dh_link. (Closes: #610173)
+ * dh_compress: Apply patch from Osamu Aoki to avoid compressing
+ ".xhtml" files. (Closes: #740405)
+ * dh_gconf: Apply patch from Josselin Mouette to avoid
+ dependency on gconf2 for installs of non-schema files.
+ (Closes: #592958)
+ * dh_fixperms: Correct permissions of reportbug files and scripts.
+ Thanks to Fabian Greffrath for the report and a basic patch.
+ (Closes: #459548)
+ * The "ant" build system now loads debian/ant.properties
+ automatically before build and clean (like CDBS). Thanks to
+ Thomas Koch for the report. (Closes: #563909)
+ * Dh_Lib.pm: Add install_dh_config_file to install a file either by
+ copying the source file or (with an executable file under compat
+ 9) execute the file and use its output to generate the
+ destination.
+ * dh_lintian: Under compat 9, the debian/lintian-overrides are now
+ executed if they have the exec-bit set like the debian/install
+ files. Thanks to Axel Beckert for the report. (Closes: #698500)
+ * d/rules: Remove makefile target only intended for/used by the
+ previous maintainer.
+ * dh_makeshlibs: In compat 10+, pass "-X" to ldconfig to
+ only regenerate the cache (instead of also creating missing
+ symlinks). Thanks to Joss Mouette for the suggestion.
+ (Closes: #549990)
+ * autoscripts/post{inst,rm}-makeshlibs-c10: New files.
+ * dh_strip: Pass the --enable-deterministic-archives option to strip
+ when it is stripping static libraries. This avoids some
+ unnecessary non-determinism in builds. Based on patch by
+ Andrew Ayer.
+ * dh_install, dh_installdocs, dh_installexamples and dh_installinfo:
+ Pass --reflink=auto to cp. On supported filesystems, this provides
+ faster copying.
+ * Make perl tests verbose. Thanks to gregor herrmann for the patch.
+ (Closes: #714546)
+ * Dh_Lib.pm: Apply patch from Martin Koeppe to provide
+ install_{dir,file,prog,lib} subroutines for installing directories,
+ regular files, scripts/executables and libraries (respectively).
+ * Migrate many "ad-hoc" calls to "install" to the new "install_X"
+ subroutines from Dh_Lib.pm. Based on patch from Martin Koeppe.
+ (Closes: #438930)
+ * dh_gconf: Apply patch from Martin Koeppe to avoid adding a layer
+ of shell-escaping to a printed command line when the command was
+ in fact run without said layer of shell-escaping.
+ * dh_installdocs: Use ${binary:Version} for generating dependencies
+ with "--link-doc" instead of trying to determine the correct
+ package version. Thanks to Stephen Kitt for reporting this
+ issue. (Closes: #747141)
+ * dh_installdocs.1: Document that --link-doc may in some cases
+ require a dir to symlink (or symlink to dir) migration.
+ (Closes: #659044)
+ * dh_usrlocal: Apply patch from Jérémy Bobbio to generate
+ deterministic output. (Closes: #775020)
+ * dh_makeshlibs: In compat 10, install the maintainer-provided shlibs
+ file (replacing the generated one). (Closes: #676168)
+ * dh_installdeb: In compat 10, stop installing the maintainer-provided
+ shlibs file as it is now done by dh_makeshlibs instead.
+ * dh_installdocs: Remove remark about dh_installdocs not being
+ idempotent as it no longer adds anything to maintainer scripts.
+ * autoscripts/*-emacsen: Apply patch from Paul Wise to check that
+ emacs-package-{install,remove} is (still) present before invoking
+ it. (Closes: #736896)
+ * dh_install: Document that dh-exec can be used to do renaming
+ and provide a trivial example of how to achieve it. (Closes: #245554)
+ * dh_makeshlibs: Apply patch from Guillem Jover to stop adding
+ Pre-Depends on multiarch-support. The transition is far enough that
+ we do not need it any longer. (Closes: #783898)
+ * dh_gencontrol: Insert an empty misc:Pre-Depends to avoid warnings
+ in packages for using a (now often) non-existing substvars.
+ * d/control: Remove versioned conflicts that are no longer relevant.
+
+ [ Bernhard R. Link ]
+ * Dh_Lib.pm: apply patch from Guillem Jover to support case-insensitive
+ control field names. (Closes: #772129)
+ * add DH_QUIET environment variable to make things more silent
+ * dh: don't output commands to run if DH_QUIET is set
+ * buildsystems print commands unless DH_QUIET is set
+ (Closes: #639168, #680687)
+ * autoconf is always passed one of
+ --enable-silent-rules (if DH_QUIET is set) or
+ --disable-silent-rules (otherwise). (Closes: #551463, #680686)
+ * dh_compress: exclude .xz .lzma and .lz files from compression
+ (Closes: #778927)
+ * dh_installwm: call by dh after dh_link (Closes: #781077),
+ error out in compat 10 if no man page found
+
+ [ Jason Pleau ]
+ * dh_installchangelogs: Add CHANGES.md to the list of common changelog
+ filenames (Closes: #779471)
+
+ [ Axel Beckert ]
+ * dh_installchangelogs: Consistent suffix search order (none, ".txt",
+ ".md") for all upstream changelog file names ("changelog", "changes",
+ "history").
+ + Looks for "history.md" now, too.
+ + Makes it easier to add base names or suffixes in the future.
+ * dh_installchangelogs: Also look for changelogs with .rst suffix.
+
+ [ Tianon Gravi ]
+ * debhelper.pod: Clarify "ENVIRONMENT" requirements for Makefile syntax.
+ (Closes: #780133)
+
+ [ Translation updates ]
+ * pt - Thanks to Américo Monteiro.
+ (Closes: #758575)
+
+ -- Niels Thykier <niels@thykier.net> Fri, 01 May 2015 14:53:16 +0200
+
+debhelper (9.20150101) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * Revert detection of unsafe binNMUs under compat 9 and
+ earlier. It had some false-positives. (Closes: #773965)
+
+ [ Axel Beckert ]
+ * Document that dh_installdocs will error out on --link-doc
+ between arch:all and arch:any packages in man 7 debhelper.
+
+ -- Niels Thykier <niels@thykier.net> Thu, 01 Jan 2015 17:05:01 +0100
+
+debhelper (9.20141222) unstable; urgency=medium
+
+ * Add missing entry about #747141.
+ * Fix typo in comment in dh_installman. Thanks to Raphael
+ Geissert for spotting it. (Closes: #772502)
+
+ -- Niels Thykier <niels@thykier.net> Mon, 22 Dec 2014 01:02:52 +0100
+
+debhelper (9.20141221) unstable; urgency=medium
+
+ [ Niels Thykier ]
+ * New debhelper maintainers. (Closes: #768507)
+ - Add Niels Thykier to uploaders.
+ * dh_installdeb: Raise required dpkg version for dir_to_symlink to
+ 1.17.13 (see #769843, msg #10). Thanks to Guillem Jover.
+ * Refuse to build packages using --link-doc between arch:any and
+ arch:all packages (or vice versa) as it results in broken
+ packages.
+ - In compat 9 or less: Only during an actual binNMU.
+ - In compat 10 or newer: Unconditionally.
+ (Closes: #747141)
+
+ [ Bernhard R. Link ]
+ - Add Bernhard Link to uploaders.
+
+ [ Axel Beckert ]
+ * dh_installdeb: Raise required dpkg version for symlink_to_dir to
+ 1.17.14. It is needed in case of relative symlinks. (Closes: #770245)
+
+ -- Niels Thykier <niels@thykier.net> Sun, 21 Dec 2014 21:21:18 +0100
+
debhelper (9.20141107) unstable; urgency=medium
* I'm leaving Debian, and Debhelper needs a new maintainer.
@@ -252,7 +4222,7 @@ debhelper (9.20130516) unstable; urgency=low
debhelper (9.20130509) unstable; urgency=low
- * dh_installinit: Remove obsolete systemd-tempfiles hack in postinst
+ * dh_installinit: Remove obsolete systemd-tmpfiles hack in postinst
autoscript. Closes: #707159
* dh_installinfo: Stop inserting dependencies for partial upgrades
from lenny to squeeze. Closes: #707218
@@ -280,7 +4250,7 @@ debhelper (9.20130507) unstable; urgency=low
* dh_installdeb: Drop pre-dependency on dpkg for dpkg-maintscript-helper.
Closes: #703264
* makefile buildsystem: Pass any parameters specified after -- when
- running make -n to test for the existance of targets.
+ running make -n to test for the existence of targets.
In some makefiles, the parameters may be necessary to enable a target.
Closes: #706923
* Revert python2.X-minimal fix, because it was buggy.
@@ -290,7 +4260,7 @@ debhelper (9.20130507) unstable; urgency=low
debhelper (9.20130504) unstable; urgency=low
- * dh_shlibdeps: Warn if -V flag is passed, to avoid it accidentially being
+ * dh_shlibdeps: Warn if -V flag is passed, to avoid it accidentally being
used here rather than in dh_makeshlibs. Closes: #680339
* dh_lintian: Source overrides doc improvement. Closes: #683941
* dh_installmime: No longer makes maintainer scripts run update-mime and
@@ -299,7 +4269,7 @@ debhelper (9.20130504) unstable; urgency=low
* python distutils buildsystem: Propagate failure of pyversions.
Closes: #683551 Thanks, Clint Byrum
* python distutils buildsystem: When checking if a version of python is
- installed, don't trust the presense of the executable, as
+ installed, don't trust the presence of the executable, as
a python2.X-minimal package may provide it while not having
distutils installed. Closes: #683557, #690378
* dh_icons: Improve documentation. Closes: #684895
@@ -381,7 +4351,7 @@ debhelper (9.20120513) unstable; urgency=low
* Improve -v logging. Closes: #672448
* dh_builddeb: Build udebs with xz compression, level 1, extreme strategy.
This has been chosen to not need any more memory or cpu when uncompressing,
- while yeilding the best compressions for udebs. Thanks, Philipp Kern.
+ while yielding the best compressions for udebs. Thanks, Philipp Kern.
* Depend on a new enough dpkg for above features. Backporters will need
to revert these changes.
@@ -526,7 +4496,7 @@ debhelper (8.9.10) unstable; urgency=low
debhelper (8.9.9) unstable; urgency=low
- * dh_auto_build: Use target architecture (not host architecture)
+ * dh_auto_build: Use target architecture (not host architecture)
for build directory name. Closes: #644553 Thanks, Tom Hughes
* dh: Add dh_auto_configure parameter example. Closes: #645335
@@ -558,11 +4528,11 @@ debhelper (8.9.7) unstable; urgency=low
but no corresponding override_dh_fixperms-indep, then the unoverridden
dh_fixperms will be run on the indep packages.
.
- Note that the old override_dh_command takes precidence over the new
+ Note that the old override_dh_command takes precedence over the new
overrides, because mixing the two types of overrides would have been
too complicated. In particular, it's difficult to ensure an
old override target will work if it's sometimes constrained to only
- acting on half the packages it would normally run on. This would be
+ acting on half the packages it would normally run on. This would be
a source of subtle bugs, so is avoided.
* dh: Don't bother running dh_shlibdebs, dh_makeshlibs, or dh_strip
in the binary target when all packages being acted on are indep.
@@ -615,7 +4585,7 @@ debhelper (8.9.4) unstable; urgency=low
debhelper (8.9.3) unstable; urgency=low
* dh: Remove obsolete optimisation hack that caused sequence breakage
- in v9 with a rules file with an explict build target. Closes: #634784
+ in v9 with a rules file with an explicit build target. Closes: #634784
-- Joey Hess <joeyh@debian.org> Tue, 19 Jul 2011 23:26:43 -0400
@@ -668,7 +4638,7 @@ debhelper (8.1.6) unstable; urgency=low
debhelper (8.1.5) unstable; urgency=low
* dh_ucf: New command, contributed by Jeroen Schot. Closes: #213078
- * dh_installgsettings: Correct bug in use of find that caused some
+ * dh_installgsettings: Correct bug in use of find that caused some
gsettings files to be missed. Closes: #624377
-- Joey Hess <joeyh@debian.org> Wed, 27 Apr 2011 21:33:50 -0400
@@ -680,7 +4650,7 @@ debhelper (8.1.4) unstable; urgency=low
when passed bundled options (like "-Nfoo" instead of "-N foo") that
it does not understand; and it was not possible to fix that
for any compat level before v8. But also, such logs can occur
- for other reasons, like interrupted builds during development,
+ for other reasons, like interrupted builds during development,
and it should be safe to clean them all. Closes: #623446
* Fix Typos in documentation regarding {pre,post}{inst,rm}
Closes: #623709
@@ -773,11 +4743,11 @@ debhelper (8.1.0) unstable; urgency=low
* dh_installinit: never call init scripts directly, only through invoke-rc.d
Closes: #610340
(Thanks, Steve Langasek)
-
+
[ Valery Perrin ]
* update french translation.
* Fix french misspelling.
- * French translation update after massive man page typography
+ * French translation update after massive man page typography
-- Joey Hess <joeyh@debian.org> Sat, 05 Feb 2011 12:00:04 -0400
@@ -811,7 +4781,7 @@ debhelper (7.9.1) unstable; urgency=low
changes are planned for that mode.
* dh_installman: Support .so links relative to the current section.
* dh_installman: Avoid converting .so links to symlinks if the link
- target is not present in the same binary package, on advice of
+ target is not present in the same binary package, on advice of
Colin Watson. (To support eventual so search paths.)
* Add deprecation warning for dh_clean -k.
* dh_testversion: Removed this deprecated and unused command.
@@ -903,7 +4873,7 @@ debhelper (7.4.15) unstable; urgency=low
* The fix for #563557 caused some new trouble involving makefile
that misbehave when stderr is closed. Reopen it to /dev/null
- when testing for the existance of a makefile target. Closes: #570443
+ when testing for the existence of a makefile target. Closes: #570443
-- Joey Hess <joeyh@debian.org> Thu, 18 Feb 2010 16:37:34 -0500
@@ -986,8 +4956,8 @@ debhelper (7.4.8) unstable; urgency=low
debhelper (7.4.7) unstable; urgency=low
- * make: Avoid infinite make recursion that occurrs when testing existence
- of a target in a certian horribly broken makefile, by making the test stop
+ * make: Avoid infinite make recursion that occurs when testing existence
+ of a target in a certain horribly broken makefile, by making the test stop
after it sees one line of output from make. (This may be better replaced
with dh's makefile parser in the future.) Closes: #557307
@@ -1052,7 +5022,7 @@ debhelper (7.4.3) unstable; urgency=low
dh_installudev, dh_lintian, dh_prep into po4a.cfg manpages list
* fix a spelling mistake in dh_makeshlibs man french
translation (#494300 part 2)
-
+
[ Joey Hess ]
* dh_perl: Do not look at perl scripts under /usr/share/doc.
Closes: #546683
@@ -1089,7 +5059,7 @@ debhelper (7.4.1) unstable; urgency=low
symlinks in /etc/init.d for sysv-rc implementations. Closes: #536035.
[ Joey Hess ]
- * Add FILES sections to man pages. Closes: #545041
+ * Add FILES sections to man pages. Closes: #545041
* dh_prep(1): Clarify when it should be called. Closes: #544969
-- Joey Hess <joeyh@debian.org> Sun, 06 Sep 2009 18:44:40 -0400
@@ -1097,7 +5067,7 @@ debhelper (7.4.1) unstable; urgency=low
debhelper (7.4.0) unstable; urgency=low
* Optimise -s handling to avoid running dpkg-architecture if a package
- is arch all. This was, suprisingly, the only overhead of using the -s
+ is arch all. This was, surprisingly, the only overhead of using the -s
flag with arch all/any packages.
* The -a flag now does the same thing as the -s flag, so debhelper users
do not need to worry about using the -s flag when building a package
@@ -1130,7 +5100,7 @@ debhelper (7.3.15) unstable; urgency=low
* dh_installudev: Add code to delete old conffiles unless
they're modified, and in that case, rename them to override
the corresponding file in /lib/udev. (Based on patch by
- Martin Pitt.) (Note that this file will not be deleted on purge --
+ Martin Pitt.) (Note that this file will not be deleted on purge --
I can't see a good way to determine when it's appropriate to do
that.)
* dh_installudev: Set default priority to 60; dropping the "z".
@@ -1467,7 +5437,7 @@ debhelper (7.2.5) unstable; urgency=low
to avoid ~/.modulebuildrc influencing the build. Closes: #517423
* dh_installmenus: Revert removal of update-menus calls. Closes: #518919
Menu refuses to add unconfigured packages to the menu, and thus
- omits packages when triggered, unfortunatly. I hope its behavior will
+ omits packages when triggered, unfortunately. I hope its behavior will
change.
-- Joey Hess <joeyh@debian.org> Mon, 09 Mar 2009 16:20:41 -0400
@@ -1492,7 +5462,7 @@ debhelper (7.2.3) unstable; urgency=low
of specific upstream changelogs. re-Closes: #490937
* Compat level 4 is now deprecated.
* dh_makeshlibs: Re-add --add-udeb support. Closes: #518655
- * dh_shlibdeps: Remove --add-udeb switch (was accidentially added here).
+ * dh_shlibdeps: Remove --add-udeb switch (was accidentally added here).
-- Joey Hess <joeyh@debian.org> Sat, 07 Mar 2009 14:52:20 -0500
@@ -1534,7 +5504,7 @@ debhelper (7.2.0) experimental; urgency=low
debhelper (7.1.1) experimental; urgency=low
* dh_install(1): Order options alphabetically. Closes:# 503896
- * Fix some docs that refered to --srcdir rather than --sourcedir.
+ * Fix some docs that referred to --srcdir rather than --sourcedir.
Closes: #504742
* Add Vcs-Browser field. Closes: #507804
* Ignore unknown options in DH_OPTIONS. Debhelper will always ignore
@@ -1554,7 +5524,7 @@ debhelper (7.1.0) experimental; urgency=low
complaining about it when it's empty. Closes: #498666
* dh: Fix typo in example. Closes: #500836
* Allow individual debhelper programs to define their own special options
- by passing a hash to init(), which is later passed on the Getopt::Long.
+ by passing a hash to init(), which is later passed on the Getopt::Long.
Closes: #370823
* Move many command-specific options to only be accepted by the command
that uses them. Affected options are:
@@ -1602,7 +5572,7 @@ debhelper (7.0.50) unstable; urgency=low
* dh: Support debian/rules calling make with -B,
which is useful to avoid issues with phony implicit
rules (see bug #509756).
-
+
-- Joey Hess <joeyh@debian.org> Fri, 27 Feb 2009 15:25:52 -0500
debhelper (7.0.17) unstable; urgency=low
@@ -1695,7 +5665,7 @@ debhelper (7.0.9) unstable; urgency=low
debhelper (7.0.8) unstable; urgency=low
* dh: Add an interface that third-party packages providing debhelper commands
- can use to insert them into a command sequence.
+ can use to insert them into a command sequence.
(See dh(1), "SEQUENCE ADDONS".)
* dh: --with=foo can be used to include such third-party commands.
So, for example, --with=cli could add the dh_cli* commands from
@@ -1708,7 +5678,7 @@ debhelper (7.0.8) unstable; urgency=low
debhelper (7.0.7) unstable; urgency=low
- * dh_installxfonts: Fix precidence problem that exposes a new warning
+ * dh_installxfonts: Fix precedence problem that exposes a new warning
message in perl 5.10.
-- Joey Hess <joeyh@debian.org> Sun, 04 May 2008 13:43:41 -0400
@@ -1851,10 +5821,10 @@ debhelper (6.0.7) unstable; urgency=low
debhelper (6.0.6) unstable; urgency=low
- * dh_compress: Pass -n to gzip to yeild more reproducible file contents.
+ * dh_compress: Pass -n to gzip to yield more reproducible file contents.
The time stamp information need not be contained in the .gz file since the
time stamp is preserved when compressing and decompressing. Closes: #467100
- * The order of dependencies generated by debhelper has been completly random
+ * The order of dependencies generated by debhelper has been completely random
(hash key order), so sort it. Closes: #468959
-- Joey Hess <joeyh@debian.org> Wed, 05 Mar 2008 21:35:21 -0500
@@ -2054,7 +6024,7 @@ debhelper (5.0.50) unstable; urgency=low
* Update urls to web page.
* Add some checks for attempts to act on packages not defined in the control
file. (Thanks Wakko)
- * Use dpkg-query to retrieve conffile info in udev rules upgrade code
+ * Use dpkg-query to retrieve conffile info in udev rules upgrade code
rather than parsing status directly. (Thanks Guillem)
-- Joey Hess <joeyh@debian.org> Thu, 31 May 2007 13:14:06 -0400
@@ -2074,7 +6044,7 @@ debhelper (5.0.49) unstable; urgency=low
debhelper (5.0.48) unstable; urgency=low
* Remove use of #SECTION# from dh_installinfo postinst snippet
- that was accidentially re-added in 5.0.46 due to a corrupt svn checkout.
+ that was accidentally re-added in 5.0.46 due to a corrupt svn checkout.
Closes: #419849
-- Joey Hess <joeyh@debian.org> Wed, 18 Apr 2007 13:24:58 -0400
@@ -2105,7 +6075,7 @@ debhelper (5.0.45) unstable; urgency=low
the rules file to the new location on upgrade.
* This would be a good time for the many packages that manage rules files
w/o using dh_installudev to begin to use it..
- * Do script fragement reversal only in v6, since it can break certian
+ * Do script fragment reversal only in v6, since it can break certain
third party programs such as dh_installtex. Closes: #419060
-- Joey Hess <joeyh@debian.org> Fri, 13 Apr 2007 12:34:10 -0400
@@ -2163,7 +6133,7 @@ debhelper (5.0.43) unstable; urgency=low
debhelper (5.0.42) unstable; urgency=low
[ Valery Perrin ]
- * Update french translation with recents changes in dh_link and
+ * Update french translation with recent changes in dh_link and
dh_installinfo
[ Joey Hess ]
@@ -2212,7 +6182,7 @@ debhelper (5.0.38) unstable; urgency=low
[ Valery Perrin ]
* Update french translation with recent change in dh_installmodules
-
+
[ Joey Hess]
* ACK last three NMUs with thanks to Raphael Hertzog for making the best of
a difficult situation.
@@ -2233,13 +6203,13 @@ debhelper (5.0.37.3) unstable; urgency=low
* Non-maintainer upload.
* Update of dh_python
- - when buidling for a non-standard Python version, generate more
+ - when building for a non-standard Python version, generate more
reasonable Depends like "python (>= X.Y) | pythonX.Y"
Closes: #375576
- fix handling of private extensions. Closes: #375948
- fix parsing of XS-Python-Version, it didn't work if only fixed versions
were listed in XS-Python-Version.
- - fix use of unitialized value. Closes: #374776
+ - fix use of uninitialized value. Closes: #374776
- fix typos in POD documentation. Closes: #375936
-- Raphael Hertzog <hertzog@debian.org> Mon, 10 Jul 2006 13:20:06 +0200
@@ -2345,7 +6315,7 @@ debhelper (5.0.32) unstable; urgency=low
debhelper (5.0.31) unstable; urgency=low
[ Valery Perrin ]
- * Update french translation with recents changes in dh_installxfonts,
+ * Update french translation with recent changes in dh_installxfonts,
dh_link and dh_compress manpages
* Delete -f option in po4a command line. Bug in po4a has been corrected in
new version (0.24.1).
@@ -2407,7 +6377,7 @@ debhelper (5.0.27) unstable; urgency=low
debhelper (5.0.26) unstable; urgency=high
- * dh_installinit: Fix badly generated code in maint scripts that used
+ * dh_installinit: Fix badly generated code in maintscripts that used
|| exit 0 instead of the intended
|| exit $?
due to a bad shell expansion and caused invoke-rc.d errors to be
@@ -2584,7 +6554,7 @@ debhelper (5.0.8) unstable; urgency=low
debhelper (5.0.7) unstable; urgency=low
- * Patch from Valéry Perrin to update Frensh translation, and also update
+ * Patch from Valéry Perrin to update French translation, and also update
the po4a stuff. Closes: #338713
* Fix a bad regexp in -s handling code that breaks if an architecture name,
such as i386-uclibc is the hyphenated version of a different arch.
@@ -2646,7 +6616,7 @@ debhelper (5.0.0) unstable; urgency=low
level and changes from earlier levels are concentrated in the
"Debhelper compatibility levels" section of debhelper.1. Closes: #336906
* Deprecate v3.
- * dh_install: Add package name to missing files error. Closes: #336908
+ * dh_install: Add package name to missing files error. Closes: #336908
-- Joey Hess <joeyh@debian.org> Tue, 1 Nov 2005 18:54:29 -0500
@@ -2696,8 +6666,8 @@ debhelper (4.9.10) unstable; urgency=low
debhelper (4.9.9) unstable; urgency=low
- * dh_shlibdeps: Avoid a use strict warning in some cases if
- LD_LIBRARY_PATH is not set.
+ * dh_shlibdeps: Avoid a use strict warning in some cases if
+ LD_LIBRARY_PATH is not set.
* ACK NMU. Closes: #327209
-- Joey Hess <joeyh@debian.org> Wed, 7 Sep 2005 15:32:53 -0400
@@ -2705,7 +6675,7 @@ debhelper (4.9.9) unstable; urgency=low
debhelper (4.9.8.1) unstable; urgency=low
* NMU with maintainer approval.
- * dh_gconf: delegate schema registration the gconf-schemas script,
+ * dh_gconf: delegate schema registration the gconf-schemas script,
which moves schemas to /var/lib/gconf, and require gconf2 2.10.1-2,
where it can be found. Closes: #327209
@@ -2735,7 +6705,7 @@ debhelper (4.9.5) unstable; urgency=low
* dh_install: in v5 mode, error out if there are wildcards in the file
list and the wildcards expand to nothing. Done only for v5 as this is a
behavior change. Closes: #249815
- * dh_usrlocal: generate prerm scripts that do not remove distroties in
+ * dh_usrlocal: generate prerm scripts that do not remove directories in
/usr/local, but only subdirectories thereof, in accordance with policy.
Closes: #319181
@@ -2746,8 +6716,8 @@ debhelper (4.9.4) unstable; urgency=low
* dh_clean: switch to using complex_doit for the evil find command
and quoting everything explicitly rather than the doit approach used
before. This way all uses of EXCLUDE_FIND will use complex_doit, which
- is necesary for sanity.
- * Dh_Lib: Make COMPLEX_DOIT properly escape wildcards for use with
+ is necessary for sanity.
+ * Dh_Lib.pm: Make COMPLEX_DOIT properly escape wildcards for use with
complex_doit. Before they were unescaped, which could lead to subtle
breakage.
@@ -2776,7 +6746,7 @@ debhelper (4.9.1) unstable; urgency=low
debhelper (4.9.0) unstable; urgency=low
* Begin work on compatibility level 5. The set of changes in this mode is
- still being determined, and will be until debhelper version 5.0 is
+ still being determined, and will be until debhelper version 5.0 is
released, so use at your own risk.
* dh_strip: In v5, make --dbg-package specify a single debugging package
that gets the debugging symbols from the other packages acted on.
@@ -2794,7 +6764,7 @@ debhelper (4.9.0) unstable; urgency=low
* Make compat() cache the expensive bits, since we run it more and more,
including twice per config file line now..
* Add a "run" program to source tree to make local testing easier
- and simplfy the rules file.
+ and simplify the rules file.
* Man page typo fixes. Closes: #305806, #305816
* dh_installmenu: menus moved to /usr/share/menu. Closes: #228618
Anyone with a binary executable menu file is SOL but there are none in
@@ -2858,7 +6828,7 @@ debhelper (4.2.31) unstable; urgency=low
debhelper (4.2.30) unstable; urgency=low
- * dh_installmime: Patch from Loïc Minier to add support for instlaling
+ * dh_installmime: Patch from Loïc Minier to add support for installing
"sharedmimeinfo" files and calling update-mime-database. Closes: #255719
* Modified patch to not hardcode pathnames.
* Modified other autoscripts so there are no hardcoded pathnames at all
@@ -2869,7 +6839,7 @@ debhelper (4.2.30) unstable; urgency=low
debhelper (4.2.29) unstable; urgency=low
* dh_installdocs Spanish manpage update
- * dh_installlogcheck: change permissions of logcheck rulefules from 600 to
+ * dh_installlogcheck: change permissions of logcheck rulefiles from 600 to
644, at request of logcheck maintainer. Closes: #288357
* dh_installlogcheck: fix indentation
@@ -2975,7 +6945,7 @@ debhelper (4.2.15) unstable; urgency=low
debhelper (4.2.14) unstable; urgency=low
* Make dh_gconf postinst more portable.
- * Strip spoch when generating udeb filenames. Closes: #258864
+ * Strip epoch when generating udeb filenames. Closes: #258864
-- Joey Hess <joeyh@debian.org> Sat, 10 Jul 2004 11:15:34 -0400
@@ -2987,7 +6957,7 @@ debhelper (4.2.13) unstable; urgency=low
* dh_gconf: kill gconfd-2 so that the newly installed schemas
are available straight away. (Josselin Mouette)
* dh_gconf: fix bashism in restart of gconfd-2
- * dh_gconf: fix innaccuracy in man page; gconfd-2 is HUPPed, not
+ * dh_gconf: fix inaccuracy in man page; gconfd-2 is HUPPed, not
killed.
* dh_scrollkeeper: stop adding scrollkeeper to misc:Depends, since
the postinst will not run it if it's not installed, and a single run after
@@ -3065,7 +7035,7 @@ debhelper (4.2.4) unstable; urgency=low
* dh_installdocs: ignore .EX files as produced by dh-make.
* dh_movefiles: if the file cannot be found, do not go ahead and try
- to move it anyway, as this can produce unpredictable behavor with globs
+ to move it anyway, as this can produce unpredictable behavior with globs
passed in from the shell. See bug #234105
-- Joey Hess <joeyh@debian.org> Fri, 20 Feb 2004 10:43:33 -0500
@@ -3100,14 +7070,14 @@ debhelper (4.2.0) unstable; urgency=low
* Added udeb support, as pioneered by di-packages-build. Understands
"XC-Package-Type: udeb" in debian/control. See debhelper(1) for
details.
- * Dh_Lib: add and export is_udeb and udeb_filename
+ * Dh_Lib.pm: add and export is_udeb and udeb_filename
* dh_builddeb: name udebs with proper extension
* dh_gencontrol: pass -n and filename to dpkg-gencontrol
* dh_installdocs, dh_makeshlibs, dh_md5sums, dh_installchangelogs,
dh_installexamples, dh_installman, dh_installmanpages: skip udebs
* dh_shlibdeps: skip udebs. This may be temporary.
* dh_installdeb: do not process conffiles, shlibs, preinsts, postrms,
- or prerms for udebs. Do not substiture #DEBHELPER# tokens in
+ or prerms for udebs. Do not substitute #DEBHELPER# tokens in
postinst scripts for udebs.
* dh_installdebconf: skip config script for udebs, still do templates
@@ -3118,7 +7088,7 @@ debhelper (4.1.90) unstable; urgency=low
* dh_strip: Add note to man page that the detached debugging symbols options
mean the package must build-depend on a new enough version of binutils.
Closes: #231382
- * dh_installdebconf: The debconf dependency has changed to include
+ * dh_installdebconf: The debconf dependency has changed to include
"| debconf-2.0". Closes: #230622
-- Joey Hess <joeyh@debian.org> Sat, 7 Feb 2004 15:10:10 -0500
@@ -3240,7 +7210,7 @@ debhelper (4.1.76) unstable; urgency=low
debhelper (4.1.75) unstable; urgency=low
* dh_install: add --fail-missing option. Closes: #120026
- * Fix mispelling in prerm-sgmlcatalog. Closes: #215189
+ * Fix misspelling in prerm-sgmlcatalog. Closes: #215189
-- Joey Hess <joeyh@debian.org> Fri, 10 Oct 2003 22:12:59 -0400
@@ -3436,7 +7406,7 @@ debhelper (4.1.50) unstable; urgency=low
debhelper (4.1.49) unstable; urgency=low
- * dh_installman: Don't require trailing whitespace after the seciton number
+ * dh_installman: Don't require trailing whitespace after the section number
in the TH line.
-- Joey Hess <joeyh@debian.org> Thu, 3 Jul 2003 14:08:41 -0400
@@ -3451,7 +7421,7 @@ debhelper (4.1.48) unstable; urgency=low
debhelper (4.1.47) unstable; urgency=low
- * dh_install: recalculate automatic $dest eash time through the glob loop.
+ * dh_install: recalculate automatic $dest each time through the glob loop.
It might change if there are multiple wildcards Closes: #196344
-- Joey Hess <joeyh@debian.org> Mon, 16 Jun 2003 13:35:27 -0400
@@ -3612,7 +7582,7 @@ debhelper (4.1.26) unstable; urgency=low
debhelper (4.1.25) unstable; urgency=low
- * Added a dh_python command, by Josselin Mouette
+ * Added a dh_python command, by Josselin Mouette
<josselin.mouette@ens-lyon.org>.
-- Joey Hess <joeyh@debian.org> Thu, 21 Nov 2002 00:55:35 -0500
@@ -3784,7 +7754,7 @@ debhelper (4.1.3) unstable; urgency=low
* dh_installinit: Always start daemon on upgraded even if
--no-restart-on-upgrade is given; since the daemon is not stopped
with that parameter starting it again is a no-op, unless the daemon was
- not running for some reason. This makes transtions to using the flag
+ not running for some reason. This makes transitions to using the flag
easier. Closes: #90976 and sorry it took me so long to verify you were
right.
@@ -3806,7 +7776,7 @@ debhelper (4.1.1) unstable; urgency=low
debhelper (4.1.0) unstable; urgency=low
* Remove /usr/doc manglement code from postinst and prerm.
- Do not use this verion of debhelper for woody backports!
+ Do not use this version of debhelper for woody backports!
* Removed dh_installxaw.
-- Joey Hess <joeyh@debian.org> Sun, 21 Jul 2002 15:26:10 -0400
@@ -3835,7 +7805,7 @@ debhelper (4.0.18) unstable; urgency=low
debhelper (4.0.17) unstable; urgency=low
* In dh_install, don't limit to -type f when doing the find due to -X.
- This makes it properly install syml8inks, cf my rpm bug.
+ This makes it properly install symlinks, cf my rpm bug.
-- Joey Hess <joeyh@debian.org> Fri, 5 Jul 2002 22:58:03 -0400
@@ -3928,7 +7898,7 @@ debhelper (4.0.5) unstable; urgency=low
debhelper (4.0.4) unstable; urgency=low
* Set DH_ALWAYS_EXCLUDE=CVS and debhelper will exclude CVS directories
- from processing by any command that takes a -X option, and dh_builddeb
+ from processing by any command that takes a -X option, and dh_builddeb
will also go in and rm -rf any that still sneak into the build tree.
* dh_install: A patch from Eric Dorland <eric@debian.org> adds support for
--sourcedir, which allows debian/package.files files to be moved over to
@@ -3947,7 +7917,7 @@ debhelper (4.0.3) unstable; urgency=low
debhelper (4.0.2) unstable; urgency=low
- * dh_install: delay globbing until after destintations have been found.
+ * dh_install: delay globbing until after destinations have been found.
Closes: #143234
-- Joey Hess <joeyh@debian.org> Tue, 16 Apr 2002 21:25:32 -0400
@@ -3971,25 +7941,25 @@ debhelper (4.0.0) unstable; urgency=low
- doesn't have that whole annoying debian/package.files vs. debian/files
mess, as it uses debian/install.
- supports copying empty subdirs. Closes: #133037
- - doesn't use tar, thus no error reproting problems. Closes: #112538
+ - doesn't use tar, thus no error reporting problems. Closes: #112538
- files are listed relative to the pwd, debian/tmp need not be used at
all, so no globbing issues. Closes: #100404
- supports -X. Closes: #116902
- the whole concept of moving files out of a directory is gone, so this
bug doesn't really apply. Closes: #120026
- This is exactly what Bill Allombert asked for in #117383, even though I
- designed it seemingly independantly. Thank you Bill! Closes: #117383
+ designed it seemingly independently. Thank you Bill! Closes: #117383
* Made debhelper's debian/rules a lot simpler by means of the above.
* Updated example rules file to use dh_install. Also some reordering and
other minor changes.
* dh_movefiles is lightly deprecated, and when you run into its bugs and
- bad design, you are incouraged to just use dh_install instead.
+ bad design, you are encouraged to just use dh_install instead.
* dh_fixperms: in v4 only, make all files in bin/ dirs +x. Closes: #119039
* dh_fixperms: in v4 only, make all files in etc/init.d executable (of
- course there's -X ..)
+ course there's -X ..)
* dh_link: in v4 only, finds existing, non-policy-conformant symlinks
and corrects them. This has the side effect of making dh_link idempotent.
- * Added a -h/--help option. This seems very obvious, but it never occured to
+ * Added a -h/--help option. This seems very obvious, but it never occurred to
me before..
* use v4 for building debhelper itself
* v4 mode is done, you may now use it without fear of it changing.
@@ -3998,7 +7968,7 @@ debhelper (4.0.0) unstable; urgency=low
for woody should continue to use whatever compatibility level they are
using.)
- -- Joey Hess <joeyh@debian.org> Tue, 11 Apr 2002 17:28:57 -0400
+ -- Joey Hess <joeyh@debian.org> Thu, 11 Apr 2002 17:28:57 -0400
debhelper (3.4.14) unstable; urgency=low
@@ -4015,7 +7985,7 @@ debhelper (3.4.13) unstable; urgency=low
debhelper (3.4.12) unstable; urgency=low
- * Fix to #99169 was accidentually reverted in 3.0.42; reinstated.
+ * Fix to #99169 was accidentally reverted in 3.0.42; reinstated.
-- Joey Hess <joeyh@debian.org> Sat, 16 Mar 2002 23:31:46 -0500
@@ -4085,7 +8055,7 @@ debhelper (3.4.4) unstable; urgency=low
on. For example, dh_installinit in v4 mode adds sysvinit (>= 2.80-1) to
that dep list, and dh_installxfonts adds a dep on xutils. This variable
should make it easier to keep track of what your package needs to depends
- on, supplimenting the ${shlibs:Depends} and ${perl:Depends} substvars.
+ on, supplementing the ${shlibs:Depends} and ${perl:Depends} substvars.
Hmm, this appears to be based loosely on an idea by Masato Taruishi
<taru@debian.org>, filtered through a long period of mulling it over.
Closes: #76352
@@ -4107,11 +8077,11 @@ debhelper (3.4.2) unstable; urgency=low
* dh_installxfonts:
- Packages that use this should depend on xutils. See man page.
- However, if you really want to, you can skip the dep, and the
- postinst will avoid running program that arn't available. Closes: #131053
+ postinst will avoid running program that aren't available. Closes: #131053
- Use update-fonts-dir instead of handling encodings ourselves. Yay!
- Pass only the last component of the directory name to
- update-fonts-*, since that's what they perfer now.
- - Other changes, chould fully comply with Debian X font policy now.
+ update-fonts-*, since that's what they prefer now.
+ - Other changes, should fully comply with Debian X font policy now.
-- Joey Hess <joeyh@debian.org> Tue, 15 Jan 2002 12:17:43 -0500
@@ -4138,10 +8108,10 @@ debhelper (3.4.0) unstable; urgency=low
* dh_installxaw is deprecated -- xaw-wrappers in no longer in the
distribution. A warning message is now output when it runs. Currently used
by: 3 packages (bugs filed).
- * Added referneces to menufile in dh_installmenu man page. Closes: #127978
+ * Added references to menufile in dh_installmenu man page. Closes: #127978
(dh_make is not a part of debhelper, if you want it changed, file a bug on
dh-make.)
-
+
-- Joey Hess <joeyh@debian.org> Sat, 5 Jan 2002 22:45:09 -0500
debhelper (3.0.54) unstable; urgency=low
@@ -4179,7 +8149,7 @@ debhelper (3.0.50) unstable; urgency=low
* dh_installdeb: changed the #!/bin/sh -e to set -e on a new line. Whether
this additional bloat is worth it to make it easier for people to sh -x
a script by hand is debatable either way, I guess. Closes: #119046
- * Added a check for duplicated package stanzas in debian/control,
+ * Added a check for duplicated package stanzas in debian/control,
Closes: #118805
-- Joey Hess <joeyh@debian.org> Sat, 17 Nov 2001 14:00:54 -0500
@@ -4228,17 +8198,17 @@ debhelper (3.0.43) unstable; urgency=low
* dh_perl: made it use doit commands so -v mode works. Yeah, uglier.
Closes: #92826
- Also some indentation fixes.
+ Also some indentation fixes.
-- Joey Hess <joeyh@debian.org> Fri, 24 Aug 2001 15:34:55 -0400
debhelper (3.0.42) unstable; urgency=low
* dh_movefiles: Typo, Closes: #106532
- * Use -x to test for existance of init scripts, rather then -e since
+ * Use -x to test for existence of init scripts, rather then -e since
we'll be running them, Closes: #109692
- * dh_clean: remove debian/*.debhelper. No need to name files
- specifically; any file matching that is a debhelper temp file.
+ * dh_clean: remove debian/*.debhelper. No need to name files
+ specifically; any file matching that is a debhelper temp file.
Closes: #106514, #85520
-- Joey Hess <joeyh@debian.org> Thu, 23 Aug 2001 15:47:35 -0400
@@ -4314,10 +8284,10 @@ debhelper (3.0.30) unstable; urgency=low
data, but it uses a different internal filename now). It will be merged
with any automatically determined substvars data. See bug #98819
* I want to stress that no one should ever rely in internal, undocumented
- debhelper workings. Just because debhelper uses a certian name for some
+ debhelper workings. Just because debhelper uses a certain name for some
internally used file does not mean that you should feel free to modify
that file to your own ends in a debian package. If you do use it, don't
- be at all suprised when it breaks. If you find that debhelper is lacking
+ be at all surprised when it breaks. If you find that debhelper is lacking
a documented interface for something that you need, ask for it!
(debhelper's undocumented, internal use only files should now all be
prefixed with ".debhelper")
@@ -4333,7 +8303,7 @@ debhelper (3.0.29) unstable; urgency=low
debhelper (3.0.28) unstable; urgency=low
- * dh_clean: clean up temp files used by earlier versons of debhelper.
+ * dh_clean: clean up temp files used by earlier versions of debhelper.
Closes: #99169
-- Joey Hess <joeyh@debian.org> Wed, 30 May 2001 16:24:09 -0400
@@ -4341,22 +8311,22 @@ debhelper (3.0.28) unstable; urgency=low
debhelper (3.0.27) unstable; urgency=low
* Fixed issues with extended parameters to dh_gencontrol including spaces
- and quotes. This was some histirical cruft that deals with splitting up
+ and quotes. This was some historical cruft that deals with splitting up
the string specified by -u, and it should not have applied to the set
of options after --. Now that it's fixed, any and all programs that
support a -- and options after it, do not require any special quoting
of the succeeding options. Quote just like you would in whatever
- program those options go to. So, for example,
+ program those options go to. So, for example,
dh_gencontrol -Vblah:Depends='foo, bar (>= 1.2)' will work just as you
would hope. This fix does NOT apply to -u; don't use -u if you must do
something complex. Closes: #89311
* Made escape_shell output a lot better.
-
+
-- Joey Hess <joeyh@debian.org> Tue, 29 May 2001 17:54:19 -0400
debhelper (3.0.26) unstable; urgency=low
- * Always include package name in maintainer script fragment filenames
+ * Always include package name in maintainer script fragment filenames
and generated shlibs files (except for in DH_COMPAT=1 mode). This is a
purely cosmetic change, and if it breaks anything, you were using an
undocumented interface. Closes: #95387
@@ -4381,7 +8351,7 @@ debhelper (3.0.24) unstable; urgency=low
debhelper (3.0.23) unstable; urgency=low
* dh_shlibdeps: the -l switch now just adds to LD_LIBRARY_PATH, if it is
- already set. Newer fakeroots set it, and clobbering their settings
+ already set. Newer fakeroot sets it, and clobbering their settings
breaks things since they LD_PRELOAD a library that is specified in the
LD_LIBRARY_PATH. (blah) Closes: #97494
@@ -4389,7 +8359,7 @@ debhelper (3.0.23) unstable; urgency=low
debhelper (3.0.22) unstable; urgency=low
- * dh_installinfo: doc enchancement, Closes: #97515
+ * dh_installinfo: doc enhancement, Closes: #97515
* dh_md5sums: don't fail if pwd has spaces in it (must be scraping the
bottom of the bug barrel here). Closes: #97404
@@ -4493,10 +8463,10 @@ debhelper (3.0.9) unstable; urgency=low
* Continues to depend on lynx for html changelog conversions. Yes, these
and packages with translated debconf templates are rather rare, but
it makes more sense for debhelper to consistently depend on all utilities
- it uses internally rather than force people to keep their dependancies
+ it uses internally rather than force people to keep their dependencies
up to date with debhelper internals. If I decide tomorrow that w3m is
the better program to use to format html changelogs, I can make the
- change and packages don't need to update their build dependancies.
+ change and packages don't need to update their build dependencies.
Closes: #88464, #77743
* Test for init scripts before running them, since they are conffiles and
the admin may have removed them for some reason, and policy wants
@@ -4517,7 +8487,7 @@ debhelper (3.0.8) unstable; urgency=low
debhelper (3.0.7) unstable; urgency=low
- * dh_makeshlibs: only generate call to ldconfig if it really looks like
+ * dh_makeshlibs: only generate call to ldconfig if it really looks like
a given *.so* file is indeed a shared library.
-- Joey Hess <joeyh@debian.org> Fri, 23 Feb 2001 14:38:50 -0800
@@ -4526,7 +8496,7 @@ debhelper (3.0.6) unstable; urgency=low
* Corrected some uninitialized value stuff in dh_suidregister (actually
quite a bad bug).
- * dh_installman: fixed variable socoping error, so file conversions
+ * dh_installman: fixed variable scoping error, so file conversions
should work now.
-- Joey Hess <joeyh@debian.org> Fri, 16 Feb 2001 14:15:02 -0800
@@ -4553,14 +8523,14 @@ debhelper (3.0.1) unstable; urgency=low
debhelper (3.0.0) unstable; urgency=low
* Added dh_installman, a new program that replaces dh_installmanpages.
- It is not DWIM. You tell it what to install and it figures out where
- based on .TH section field and filename extention. I reccommend everyone
+ It is not DWIM. You tell it what to install and it figures out where
+ based on .TH section field and filename extension. I recommend everyone
begin using it, since this is much better then dh_installmanpages's
evilness. I've been meaning to do this for a very long time..
Closes: #38673, #53964, #64297, #16933, #17061, #54059, #54373, #61816
* dh_installmanpages remains in the package for backwards compatibility,
but is mildly deprecated.
- * dh_testversion is deprecated; use build dependancies instead.
+ * dh_testversion is deprecated; use build dependencies instead.
* dh_suidregister: re-enabled. Aj thinks that requiring people to stop
using it is unacceptable. Who am I to disagree with a rc bug report?
Closes: #84910 It is still deprecated, and it will still whine at you
@@ -4571,7 +8541,7 @@ debhelper (3.0.0) unstable; urgency=low
thought-toy, but nobody really used it, right?
* Since the from-debstd document walks the maintainer through running
dh_debstd to get a list of debhelper commands, and since that document
- has really outlives its usefullness, I removed it too. Use dh-make
+ has really outlives its usefulness, I removed it too. Use dh-make
instead.
* dh_installman installs only into /usr/share/man, not the X11R6
directory. Policy says "files must not be installed into
@@ -4587,7 +8557,7 @@ debhelper (3.0.0) unstable; urgency=low
variable names, pod man pages).
* Since with the fixing of the man page installer issue, my checklist for
debhelper v3 is complete, I pronounce debhelper v3 done! Revved the
- version number appropriatly (a large jump; v3 changes less than I had
+ version number appropriately (a large jump; v3 changes less than I had
planned). Note that I have no plans for a v4 at this time. :-)
* Testing: I have used this new version of debhelper to build a large
number of my own packages, and it seems to work. But this release
@@ -4618,14 +8588,14 @@ debhelper (2.2.19) unstable; urgency=low
debhelper (2.2.18) unstable; urgency=medium
* Added a suggests to debconf-utils, Closes: #83643
- I may chenge this to a dependancy at some point in the future,
+ I may change this to a dependency at some point in the future,
since one debconf command needs the package to work.
-- Joey Hess <joeyh@debian.org> Tue, 30 Jan 2001 22:39:54 -0800
debhelper (2.2.17) unstable; urgency=medium
- * dh_installdebconf: marge in templates with a .ll_LL extention,
+ * dh_installdebconf: marge in templates with a .ll_LL extension,
they were previously ignored.
-- Joey Hess <joeyh@debian.org> Mon, 29 Jan 2001 13:05:21 -0800
@@ -4675,7 +8645,7 @@ debhelper (2.2.12) unstable; urgency=medium
debhelper (2.2.11) unstable; urgency=medium
- * Fixed dh_installwm. Oops. Closes: #81124
+ * Fixed dh_installwm. Oops. Closes: #81124
-- Joey Hess <joeyh@debian.org> Wed, 3 Jan 2001 10:18:38 -0800
@@ -4687,13 +8657,13 @@ debhelper (2.2.10) unstable; urgency=low
debhelper (2.2.9) unstable; urgency=low
- * Fixed perl wanring, Closes: #80242
+ * Fixed perl warning, Closes: #80242
-- Joey Hess <joey@kitenet.net> Thu, 21 Dec 2000 14:43:11 -0800
debhelper (2.2.8) unstable; urgency=medium
- * dh_installwm: Moved update-alternatives --remove call to prerm,
+ * dh_installwm: Moved update-alternatives --remove call to prerm,
Closes: #80209
* ALso guarded all update-alternatives --remove calls.
@@ -4728,7 +8698,7 @@ debhelper (2.2.3) unstable; urgency=low
* If DH_COMPAT=3 is set, the following happens:
- Various debian/foo files like debian/docs, debian/examples, etc,
begin to support filename globbing. use \* to escape the wildcards of
- course. I doubt this will bite anyone (Debian doesn't seem to contain
+ course. I doubt this will bite anyone (Debian doesn't seem to contain
files with "*" or "?" in their names..), but it is guarded by v3 just
to be sure. Closes: #34120, #37694, #39846, #46249
@@ -4747,7 +8717,7 @@ debhelper (2.2.1) unstable; urgency=low
* Reverted the change to make debian/README be treated as README.Debian,
after I learned people use it for eg, documenting the source package
itself. Closes: #34628, since it seems this is not such an "incredibly
- minor" change after all. Never underetimate the annoyance of
+ minor" change after all. Never underestimate the annoyance of
backwards-compatibility.
-- Joey Hess <joeyh@debian.org> Mon, 27 Nov 2000 12:01:52 -0800
@@ -4757,7 +8727,7 @@ debhelper (2.2.0) unstable; urgency=low
* DH_COMPAT=3 now enables the following new features which I can't just
turn on by default for fear of breaking backwards compatibility:
- dh_makeshlibs makes the postinst/postrm call ldconfig. Closes: #77154
- Patch from Masato Taruishi <taru@debian.org> (modified). If you
+ Patch from Masato Taruishi <taru@debian.org> (modified). If you
use this, be sure dh_makeshlibs runs before dh_installdeb; many
old rules files have the ordering backwards.
- dh_installdeb now causes all files in /etc to be registered as
@@ -4829,7 +8799,7 @@ debhelper (2.1.22) unstable; urgency=low
debhelper (2.1.21) unstable; urgency=low
* dh_movefiles: no longer does the symlink ordering hack, as
- this is supported by dpkg itself now. Added a dependancy on
+ this is supported by dpkg itself now. Added a dependency on
dpkg-dev >= 1.7.0 to make sure this doesn't break anything.
* While I'm updating for dpkg 1.7.0, I removed the -ldirectory hack
from dh_shlibdeps; dpkg-shlibdeps has its own much more brutal hack to
@@ -4872,7 +8842,7 @@ debhelper (2.1.17) unstable; urgency=low
debhelper (2.1.16) unstable; urgency=low
- * dh_movefiles: fixed a regexp quoting problem with --sourcedir.
+ * dh_movefiles: fixed a regexp quoting problem with --sourcedir.
Closes: #75434
* Whoops, I think I overwrote bod's NMU with 2.2.15. Let's merge those
in:
@@ -4901,7 +8871,7 @@ debhelper (2.1.15) unstable; urgency=low
debhelper (2.1.14) unstable; urgency=low
* Rats, the previous change makes duplicate lines be created in the
- shlibs file, and lintian conplains. Added some hackery that should
+ shlibs file, and lintian complains. Added some hackery that should
prevent that. Closes: #73052
-- Joey Hess <joeyh@debian.org> Tue, 3 Oct 2000 12:32:22 -0700
@@ -5059,7 +9029,7 @@ debhelper (2.0.100) unstable; urgency=low
* Modified all postinst script fragments to only run when called with
"configure". I looked at the other possibilities, and I don't think any
- of the supported stuff should be called if the postist is called for
+ of the supported stuff should be called if the postinst is called for
error unwinds. Closes: #66673
* Implemented dh_clean -X, to allow specification of files to not delete,
Closes: #66670
@@ -5068,7 +9038,7 @@ debhelper (2.0.100) unstable; urgency=low
debhelper (2.0.99) unstable; urgency=low
- * dh_installmodules will now install modiles even if etc/modutils already
+ * dh_installmodules will now install modules even if etc/modutils already
exists (wasn't because of a logic error). Closes: #66289
* dh_movefiles now uses debian/movelist, rather than just movelist. This
is to fix an unlikely edge case involving a symlinked debian directory.
@@ -5121,7 +9091,7 @@ debhelper (2.0.93) unstable; urgency=low
debhelper (2.0.92) unstable; urgency=low
- * Detect changelog parse failures and use a better error message.
+ * Detect changelog parse failures and use a better error message.
Closes: #62058
-- Joey Hess <joeyh@debian.org> Sat, 8 Apr 2000 20:02:16 -0700
@@ -5151,7 +9121,7 @@ debhelper (2.0.89) unstable; urgency=low
* dh_installwm now behaves like a proper debhelper command, and reads
debian/<package>.wm too. This is a small behavior change; filenames
specified on the command line no longer apply to all packages it acts
- on. I can't belive this program existed for 2 years with such a glaring
+ on. I can't believe this program existed for 2 years with such a glaring
problem; I guess most people don't need ot register 5 wm's in 3
sub-packages. Anyway, it can handle such things now. :-)
* Moved Dh_*.pm to /usr/lib/perl5/Debian/Debhelper. *big* change.
@@ -5179,7 +9149,7 @@ debhelper (2.0.86) unstable; urgency=low
debhelper (2.0.85) unstable; urgency=low
- * Downgraded fileutils dependancy just a bit for the Hurd foks.
+ * Downgraded fileutils dependency just a bit for the Hurd folks.
Closes: #54620
-- Joey Hess <joeyh@debian.org> Mon, 10 Jan 2000 16:41:29 -0800
@@ -5207,7 +9177,7 @@ debhelper (2.0.82) unstable; urgency=low
debhelper (2.0.81) unstable; urgency=low
- * dh_installxaw: Patch from Josip Rodin to update to fhs paths,
+ * dh_installxaw: Patch from Josip Rodin to update to fhs paths,
Closes: #53029
-- Joey Hess <joeyh@debian.org> Mon, 20 Dec 1999 12:21:34 -0800
@@ -5220,7 +9190,7 @@ debhelper (2.0.80) unstable; urgency=low
debhelper (2.0.79) unstable; urgency=low
- * Corrected mispellings, Closes: #52013
+ * Corrected misspellings, Closes: #52013
-- Joey Hess <joeyh@debian.org> Mon, 6 Dec 1999 13:46:18 -0800
@@ -5238,7 +9208,7 @@ debhelper (2.0.77) unstable; urgency=low
link, and then removing its suid bit. This messed up the registration
of the other had links, since their permissions were now changed,
leading to unpredictable results. The fix is to just not remove suid
- bits until all files have been registered.
+ bits until all files have been registered.
-- Joey Hess <joeyh@debian.org> Tue, 30 Nov 1999 00:26:42 -0800
@@ -5246,20 +9216,20 @@ debhelper (2.0.76) unstable; urgency=low
* dh_installmanpages:
- Added support for translated man pages, with a patch from Kis Gergely
- <kisg@lme.linux.hu>. Closes: #51268
- - Fixed the undefined value problem in Kis's patch.
- - This also Closes: #37092 come to think of it.
+ <kisg@lme.linux.hu>. Closes: #51268
+ - Fixed the undefined value problem in Kis's patch.
+ - This also Closes: #37092 come to think of it.
* dh_shlibdeps, dh_shlibdeps.1:
- Added -X option, which makes it not examine some files. This is
- useful in rare cases. Closes: #51100
+ useful in rare cases. Closes: #51100
- Always pass "-dDepends" before the list of files, which makes it
easier to specify other -d parameters in the uparams, and doesn't
- otherwise change the result at all.
+ otherwise change the result at all.
* doc/TODO:
- dh_installdebfiles is no longer a part of debhelper. This affects
exactly one package in unstable, biss-awt, which has had a bug filed
against it for 200+ days now asking that it stop using the program.
- dh_installdebfiles has been depreacted for nearly 2 years now..
+ dh_installdebfiles has been deprecated for nearly 2 years now..
* This changelog was automatically generated from CVS commit information.
Fear makechangelog.
@@ -5277,7 +9247,7 @@ debhelper (2.0.74) unstable; urgency=low
act on files that don't exist.
* dh_installchangelogs: to comply with policy, if it's told to act on a
html changelog, it installs it as changelog.html.gz and dumps a plain
- text version to changelog.gz. The dumping is done with lynx.
+ text version to changelog.gz. The dumping is done with lynx.
(Closes: #51099)
* Dh_Getopt.pm: Modified it so any options specified after -- are added to
U_PARAMS. This means that instead of passing '-u"something nasty"' to
@@ -5300,14 +9270,14 @@ debhelper (2.0.72) unstable; urgency=low
debhelper (2.0.71) unstable; urgency=low
- * Oh, the build dependancies include all of debhelper's regular
- dependancies as well, since it builds using itself.
+ * Oh, the build dependencies include all of debhelper's regular
+ dependencies as well, since it builds using itself.
-- Joey Hess <joeyh@debian.org> Fri, 5 Nov 1999 14:14:26 -0800
debhelper (2.0.70) unstable; urgency=low
- * Added build dependancies to this package. That was easy; it just uses
+ * Added build dependencies to this package. That was easy; it just uses
perl5 for regression testing, the rest of its build-deps are things
in base.
* dh_version.1: Added note that this program is quickly becoming obsolete.
@@ -5321,7 +9291,7 @@ debhelper (2.0.69) unstable; urgency=low
* dh_shlibdeps: added -l option, which lets you specify a path that
LD_LIBRARY_PATH is then set to when dpkg-shlibdeps is run. This
should make it easier for library packages that also build binary
- packages to be built with correct dependancies. Closes: #36751
+ packages to be built with correct dependencies. Closes: #36751
* In honor of Burn all GIFs Day (hi Don!), I added alternative
image formats .png, .jpg (and .jpeg) to the list of extensions dh_compress
does not compress. Closes: #41733
@@ -5379,15 +9349,15 @@ debhelper (2.0.62) unstable; urgency=low
<cwryu@dor17988.kaist.ac.kr>. Closes: #46684
I made some changes, though:
- I rewrote lots of this script to be more my style of perl.
- - I removed all the verbisity from the postinst script fragment, since
+ - I removed all the verbosity from the postinst script fragment, since
that is a clear violation of policy.
- I made the postinst fail if the mkfontdir, etc commands fail, because
this really makes more sense. Consider idempotency.
- I moved the test to see if the font dir is really a directory into the
dh_ script and out of the snippet. If the maintainer plays tricks on
- us, mkfontdir will blow up satisfactorally anyway.
+ us, mkfontdir will blow up satisfactorily anyway.
- So, the snippet is 9 lines long now, down from 20-some.
- - I realize this isn't following the reccommendations made in Brando^Hen's
+ - I realize this isn't following the recommendations made in Brando^Hen's
font policy. I'll fight it out with him. :-)
- In postrm fragment, used rmdir -p to remove as many parent directories
as I can.
@@ -5411,15 +9381,15 @@ debhelper (2.0.60) unstable; urgency=low
debhelper (2.0.59) unstable; urgency=low
* dh_installdocs: if $TMP/usr/share/doc/$PACKAGE is a broken symlink,
- leaves it alone, assumming that the maintainer knows what they're doing
- and is probably linking to the doc dir of another package.
+ leaves it alone, assuming that the maintainer knows what they're doing
+ and is probably linking to the doc dir of another package.
(Closes: #46183)
-- Joey Hess <joeyh@debian.org> Mon, 4 Oct 1999 16:27:28 -0700
debhelper (2.0.58) unstable; urgency=low
- * Dh_Lib.pm: fixed bug in xargs() that made boundry words be skipped.
+ * Dh_Lib.pm: fixed bug in xargs() that made boundary words be skipped.
-- Joey Hess <joeyh@debian.org> Sun, 3 Oct 1999 18:55:29 -0700
@@ -5481,7 +9451,7 @@ debhelper (2.0.51) unstable; urgency=low
debhelper (2.0.50) unstable; urgency=medium
- * Oops. Fixed dh_shlibdeps so it actually generates dependancies, broke in
+ * Oops. Fixed dh_shlibdeps so it actually generates dependencies, broke in
last version.
-- Joey Hess <joeyh@debian.org> Sat, 18 Sep 1999 19:00:10 -0700
@@ -5498,7 +9468,7 @@ debhelper (2.0.48) unstable; urgency=low
* 4 whole days without a debhelper upload! Can't let that happen. Let's see..
* dh_installperl.1: explain what you have to put in your control file
- for the dependancies to be generated.
+ for the dependencies to be generated.
-- Joey Hess <joeyh@debian.org> Thu, 16 Sep 1999 21:15:05 -0700
@@ -5512,7 +9482,7 @@ debhelper (2.0.47) unstable; urgency=low
debhelper (2.0.46) unstable; urgency=low
* dh_installemacsen: the script fragments it generates now test for the
- existance of emacs-package-install/remove before calling them. Though
+ existence of emacs-package-install/remove before calling them. Though
a strict reading of the emacsen policy indicates that such a test
shouldn't be needed, there may be edge cases (cf bug 44924), where it
is.
@@ -5554,7 +9524,7 @@ debhelper (2.0.41) unstable; urgency=low
debhelper (2.0.40) unstable; urgency=low
- * FHS complience. Patch from Johnie Ingram <johnie@netgod.net>.
+ * FHS compliance. Patch from Johnie Ingram <johnie@netgod.net>.
For the most part, this was a straight-forward substitution,
dh_installmanpages needed a non-obvious change though.
* Closes: #42489, #42587, #41732.
@@ -5563,7 +9533,7 @@ debhelper (2.0.40) unstable; urgency=low
to make /usr/doc/<package> a compatibility symlink to
/usr/share/doc/<package>. Note that currently if something exists in
/usr/doc/<package> when the postinst is run, it will silently not make
- the symlink. I'm considering more intellingent handing of this case.
+ the symlink. I'm considering more intelligent handing of this case.
* Note that if you build a package with this version of debhelper, it will
use /usr/share/man, /usr/share/doc, and /usr/share/info. You may need to
modify other files in your package that reference the old locations.
@@ -5580,7 +9550,7 @@ debhelper (2.0.30) unstable; urgency=low
* examples/rules.multi: use the above method to get rid of -i's and -a's.
* examples/rules.multi2: new file, example of a multi-binary package that
works for arch-indep and arch-dependant packages, and also allows
- building of single binary packages independntly, via binary-<package>
+ building of single binary packages independently, via binary-<package>
targets. It accomplishes all this using only one list of debhelper
commands.
* examples/*: removed source and diff targets. They've been obsolete for 2
@@ -5597,7 +9567,7 @@ debhelper (2.0.29) unstable; urgency=low
debhelper (2.0.28) unstable; urgency=low
- * Oops, dh_installpam was omitted from the package. Added back.
+ * Oops, dh_installpam was omitted from the package. Added back.
Closes: #43652
-- Joey Hess <joeyh@debian.org> Fri, 27 Aug 1999 19:16:38 -0700
@@ -5620,7 +9590,7 @@ debhelper (2.0.25) unstable; urgency=low
debhelper (2.0.24) unstable; urgency=low
- * dh_installdocs: Handle trailing whitespace after Document: name.
+ * dh_installdocs: Handle trailing whitespace after Document: name.
Closes: #43148.
-- Joey Hess <joeyh@debian.org> Wed, 18 Aug 1999 10:23:17 -0700
@@ -5685,7 +9655,7 @@ debhelper (2.0.16) unstable; urgency=low
* Dh_lib.pm: when looking for debhelper files in debian/, test with -f,
not with -e, because it might fail if you're building a package named,
say, 'docs', with a temp dir of debian/docs. I don't anticipate this
- ever happenning, but it pays to be safe.
+ ever happening, but it pays to be safe.
-- Joey Hess <joeyh@debian.org> Tue, 20 Jul 1999 21:00:04 -0700
@@ -5701,7 +9671,7 @@ debhelper (2.0.14) unstable; urgency=low
* Moved /usr/lib/debhelper to /usr/share/debhelper for FHS compliance
(#41174). If you used Dh_lib or something in another package, be sure to
- update your "use" line and declare an appropriate dependancy. (Closes:
+ update your "use" line and declare an appropriate dependency. (Closes:
#41174)
* dh_installxaw: Patch from Josip Rodin <joy@cibalia.gkvk.hr> to fix
multiple-stanza xaw file support. (Closes: #41173)
@@ -5730,8 +9700,8 @@ debhelper (2.0.11) unstable; urgency=low
debhelper (2.0.10) unstable; urgency=low
* dh_compress: compress changelog.html files. (Closes: #40626)
- * dh_installchangelogs: installs a link from changelog.html.gz to changelog.gz,
- because I think it's important that upstream changelogs always be accessable
+ * dh_installchangelogs: installs a link from changelog.html.gz to changelog.gz,
+ because I think it's important that upstream changelogs always be accessible
at that name.
* dh_compress: removed the usr/share/X11R6/man bit. Note part of FHS.
@@ -5741,7 +9711,7 @@ debhelper (2.0.09) unstable; urgency=low
* dh_compress: added some FHS support. Though debhelper doesn't put stuff
there (and won't until people come up with a general transition strategy or
- decide to not have a clean transiotion), dh_compress now compresses
+ decide to not have a clean transition), dh_compress now compresses
various files in /usr/share/{man,doc,info}. (Closes: #40892)
-- Joey Hess <joeyh@debian.org> Wed, 7 Jul 1999 09:55:03 -0700
@@ -5777,7 +9747,7 @@ debhelper (2.0.05) unstable; urgency=low
debhelper (2.0.04) unstable; urgency=low
* Patch from Raphael Hertzog <rhertzog@hrnet.fr> to make dh_perl support a
- -d flag that makes it add a dependancy on the sppropriate perl-XXX-base
+ -d flag that makes it add a dependency on the appropriate perl-XXX-base
package. Few packages will really need this. (Closes: #40631)
-- Joey Hess <joeyh@debian.org> Fri, 2 Jul 1999 11:22:00 -0700
@@ -5791,7 +9761,7 @@ debhelper (2.0.03) unstable; urgency=low
debhelper (2.0.02) unstable; urgency=low
- * If you're going to use v2, it's reccommended you call
+ * If you're going to use v2, it's recommended you call
"dh_testversion 2". Added a note about that to doc/v2.
* Dh_Lib.pm compat: if a version that is greater than the highest
supported compatibility level is specified, abort with an error. Perhaps
@@ -5812,7 +9782,7 @@ debhelper (2.0.00) unstable; urgency=low
* If DH_COMPAT=2, then debian/<package> will be used for the temporary
build directory for all packages. debian/tmp is no more! (Well, except
dh_movefiles still uses it.)
- * debhelper.1: documented this.
+ * debhelper.1: documented this.
* Dh_lib.pm: added compat(), pass in a number, it returns true if the
current compatibility level is equal to that number.
* doc/PROGRAMMING: documented that.
@@ -5827,7 +9797,7 @@ debhelper (1.9.00) unstable; urgency=low
* This is a release of debhelper in preparation for debhelper v2.
* doc/v2: added, documented status of v2 changes.
* README: mention doc/v2
- * debhelper.1: docuimented DH_COMPAT
+ * debhelper.1: documented DH_COMPAT
* examples/*: added DH_COMAPT=1 to top of rules files
-- Joey Hess <joeyh@debian.org> Thu, 1 Jul 1999 13:16:41 -0700
@@ -5865,7 +9835,7 @@ debhelper (1.2.80) unstable; urgency=low
debhelper (1.2.79) unstable; urgency=low
* Added dh_perl by Raphael Hertzog <rhertzog@hrnet.fr>. dh_perl handles
- finding dependancies of perl scripts, plus deleting those annoying
+ finding dependencies of perl scripts, plus deleting those annoying
.packlist files.
* I don't think dh_perl is going to be useful until the new version of
perl comes out.
@@ -5889,7 +9859,7 @@ debhelper (1.2.76) unstable; urgency=low
* dh_fixperms: Do not use chmod/chown -R at all anymore, instead it uses
the (slower) find then chown method. Necessary because the -R methods will
- happyily attempt to chown a dangling symlink, which makes them fail.
+ happily attempt to chown a dangling symlink, which makes them fail.
(Closes: #38911)
-- Joey Hess <joeyh@debian.org> Mon, 7 Jun 1999 20:20:01 -0700
@@ -5951,7 +9921,7 @@ debhelper (1.2.68) unstable; urgency=low
* doc/README: updated example of using #DEBHELPER# in a perl script, with
help from Julian Gilbey.
* dh_link: generate absolute symlinks where appropriate. The links
- generated before were wrong simetimes (#37774)
+ generated before were wrong sometimes (#37774)
* Started writing a regression test suite for debhelper. Currently covers
only the above bugfix and a few more dh_link tests.
* Tossed Test.pm into the package (for regression tests) until we get perl
@@ -5989,7 +9959,7 @@ debhelper (1.2.64) unstable; urgency=low
debhelper (1.2.63) unstable; urgency=low
* dh_installxaw: updated to work with xaw-wrappers 0.90 and above. It
- actually has to partially parse the xaw-wrappers config files now.
+ actually has to partially parse the xaw-wrappers config files now.
-- Joey Hess <joeyh@debian.org> Sun, 2 May 1999 19:13:34 -0700
@@ -6051,7 +10021,7 @@ debhelper (1.2.55) unstable; urgency=low
debhelper (1.2.54) unstable; urgency=low
* dh_installinit.1: man page fixups (#34160).
- * *.1: the date of each man page is now automatically updated when
+ * *.1: the date of each man page is now automatically updated when
debhelper is built to be the last modification time of the man page.
-- Joey Hess <joeyh@debian.org> Thu, 8 Apr 1999 20:28:00 -0700
@@ -6174,7 +10144,7 @@ debhelper (1.2.38) unstable; urgency=low
debhelper (1.2.37) unstable; urgency=low
* dh_installdocs: Patch from Jim Pick <jim@jimpick.com>, fixes regexp error (Closes: #33431).
- * dh_installxaw: new program by Daniel Martin
+ * dh_installxaw: new program by Daniel Martin
<Daniel.Martin@jhu.edu>, handles xaw-wrappers integration.
* dh_installxaw.1: wrote man page.
@@ -6189,7 +10159,7 @@ debhelper (1.2.36) unstable; urgency=low
debhelper (1.2.35) unstable; urgency=low
- * Dh_Lib.pm filearray(): Deal with multiple spaces and spaces at the
+ * Dh_Lib.pm filearray(): Deal with multiple spaces and spaces at the
beginning of lines in files. (closes: #33161)
-- Joey Hess <joeyh@debian.org> Tue, 9 Feb 1999 21:01:07 -0800
@@ -6208,7 +10178,7 @@ debhelper (1.2.33) unstable; urgency=low
* dh_compress: verbose_print() cd's.
* dh_compress: clear the hash of hard links when we loop - was making
- dh_compress fail on multi-binary packages that had harlinks. Thanks to
+ dh_compress fail on multi-binary packages that had hardlinks. Thanks to
Craig Small for spotting this.
-- Joey Hess <joeyh@debian.org> Thu, 4 Feb 1999 20:19:37 -0800
@@ -6237,7 +10207,7 @@ debhelper (1.2.30) unstable; urgency=low
debhelper (1.2.29) unstable; urgency=high
* Do not include bogus chsh, chfn, passwd links in debhelper binary!
- These were acidentially left in after dh_link testing I did as I was
+ These were accidentally left in after dh_link testing I did as I was
working on the last version of debhelper.
-- Joey Hess <joeyh@debian.org> Mon, 25 Jan 1999 20:26:46 -0800
@@ -6257,7 +10227,7 @@ debhelper (1.2.27) unstable; urgency=low
debhelper (1.2.26) unstable; urgency=low
- * dh_installdocs: use prerm-doc-base script fragement. Was using
+ * dh_installdocs: use prerm-doc-base script fragment. Was using
postrm-doc-base, for some weird reason.
-- Joey Hess <joeyh@debian.org> Mon, 18 Jan 1999 13:36:40 -0800
@@ -6266,7 +10236,7 @@ debhelper (1.2.25) unstable; urgency=low
* autoscripts/*menu*: It turns out that "command" is like test -w, it will
still return true if update-menus is not executable. This can
- legitimatly happen if you are upgrading the menu package, and it makes
+ legitimately happen if you are upgrading the menu package, and it makes
postinsts that use command fail. Reverted to using test -x. Packages
built with debhelper >= 1.2.21 that use menus should be rebuilt.
@@ -6326,7 +10296,7 @@ debhelper (1.2.19) unstable; urgency=low
* dh_listpackages: new command. Takes the standard options taken by other
debhelper commands, and just outputs a list of the binary packages a
debhelper command would act on. Added because of bug #30626, and because
- of wn's truely ugly use of debhelper internals to get the same info (and
+ of wn's truly ugly use of debhelper internals to get the same info (and
because it's just 4 lines of code ;-).
* dh_compress: is now smart about compressing files that are hardlinks.
When possible, will only compress one file, delete the hardlinks, and
@@ -6346,7 +10316,7 @@ debhelper (1.2.17) unstable; urgency=low
* dh_makeshlibs: relaxed regexp to find library name and number a little so
it will work on libraries with a major but no minor version in their
filename (examples of such: libtcl8.0.so.1, libBLT-unoff.so.1)
- * dh_movefiles: added --sourcedir option to make it move files out of
+ * dh_movefiles: added --sourcedir option to make it move files out of
some directory besides debian/tmp (#30221)
-- Joey Hess <joeyh@debian.org> Fri, 4 Dec 1998 13:56:57 -0800
@@ -6411,7 +10381,7 @@ debhelper (1.2.10) unstable; urgency=low
debhelper (1.2.9) unstable; urgency=low
- * Added dh_link, which generates policy complient symlinks in binary
+ * Added dh_link, which generates policy compliant symlinks in binary
packages, painlessly.
-- Joey Hess <joeyh@debian.org> Thu, 19 Nov 1998 18:43:36 -0800
@@ -6438,7 +10408,7 @@ debhelper (1.2.5) unstable; urgency=low
* The perl conversion is complete.
.
- * dh_compress: perlized (yay, perl has readlink, no more ls -l | awk
+ * dh_compress: perlized (yay, perl has readlink, no more ls -l | awk
garbage!)
* dh_lib, dh_getopt.pl: deleted, nothing uses them anymore.
* debian/rules: don't install above 2 files.
@@ -6472,7 +10442,7 @@ debhelper (1.2.2) unstable; urgency=low
* dh_du, dh_shlibdeps, dh_undocumented: rewrite in perl.
* dh_undocumented: shortened the symlink used for section 7 undocumented
- man pages, since it can link to undocuemented.7.gz in the same directory.
+ man pages, since it can link to undocumented.7.gz in the same directory.
-- Joey Hess <joeyh@debian.org> Tue, 10 Nov 1998 13:40:22 -0800
@@ -6485,7 +10455,7 @@ debhelper (1.2.1) unstable; urgency=low
debhelper (1.2.0) unstable; urgency=low
* A new unstable dist means I'm back to converting more of debhelper to
- perl.. Since 1.1 has actually stabalized, I've upped this to 1.2.
+ perl.. Since 1.1 has actually stabilized, I've upped this to 1.2.
* dh_md5sums: rewritten in perl, for large speed gain under some
circumstances (old version called perl sometimes, once per package.)
* dh_installmenu, dh_installemacsen, dh_installwm: perlized.
@@ -6543,7 +10513,7 @@ debhelper (1.1.20) unstable; urgency=low
debhelper (1.1.19) unstable; urgency=low
* dh_installmanpages: look at basename of man pacges specified on command
- line to skip, for backwards compatibility.
+ line to skip, for backwards compatibility.
-- Joey Hess <joeyh@debian.org> Thu, 10 Sep 1998 11:31:42 -0700
@@ -6571,14 +10541,14 @@ debhelper (1.1.17) unstable; urgency=low
debhelper (1.1.16) unstable; urgency=low
- * dh_fixperms: remove execute bits from static libraries as well as
+ * dh_fixperms: remove execute bits from static libraries as well as
shared libraries. (#26414)
-- Joey Hess <joeyh@debian.org> Fri, 4 Sep 1998 14:46:37 -0700
debhelper (1.1.15) unstable; urgency=medium
- * dh_installmanpages: the new perl version had a nasty habit of
+ * dh_installmanpages: the new perl version had a nasty habit of
installing .so.x library files as man pages. Fixed.
* dh_installmanpages: the code to exclude searching for man pages in
debian/tmp directories was broken. Fixed.
@@ -6627,14 +10597,14 @@ debhelper (1.1.10) unstable; urgency=low
* It's come to my attention that a few packages use filename globbing in
debian/{docs,examples,whatever} files and expect that to work. It used
to work before the perl conversion, but it was never _documented_, or
- intented to work. If you use this in your packages, they are broken and
+ intended to work. If you use this in your packages, they are broken and
need fixing (and will refuse to build with current versions of debhelper).
I apologize for the inconvenience.
- * dh_clean: fixed a bug, intorduced in version 1.1.8, where it didn't
+ * dh_clean: fixed a bug, introduced in version 1.1.8, where it didn't
remove debian/files properly.
* dh_shlibdeps, dh_testdir, dh_testroot, dh_testversion: converted to perl.
- * Encode the version of debhelper in a sepererate file, so dh_testversion
+ * Encode the version of debhelper in a separate file, so dh_testversion
doesn't have to be generated when a new version of debhelper is built.
* Removed bogus menu file.
@@ -6654,7 +10624,7 @@ debhelper (1.1.8) unstable; urgency=low
escaped. Also, no longer escape "-".
* dh_clean, dh_gencontrol, dh_installcron: converted to perl.
* dh_gencontrol.1, dh_gencontrol: the man page had said that
- --update-rcd-params was equivilant to -u for this program. You should
+ --update-rcd-params was equivalent to -u for this program. You should
really use --dpkg-gencontrol-params.
-- Joey Hess <joeyh@debian.org> Fri, 14 Aug 1998 14:07:35 -0700
@@ -6687,7 +10657,7 @@ debhelper (1.1.5) unstable; urgency=low
metacharacters in the output. I probably don't escape out all the
characters I should, but this is just a convenience to the user anyway.
* dh_installdebfiles: it's been broken forever, I fixed it. Obviously
- nobody uses it anymore, which is good, since it's deprected :-)
+ nobody uses it anymore, which is good, since it's deprecated :-)
-- Joey Hess <joeyh@debian.org> Tue, 11 Aug 1998 15:23:34 -0700
@@ -6702,10 +10672,10 @@ debhelper (1.1.4) unstable; urgency=low
* Made all perl code work with use strict and -w (well, except
dh_getopt.pl, but that's a hack that'll go away one day).
* I didn't realize, but rewriting dh_installdocs in perl fixed bug #24686
- (blank lines in debian/docs file problem), although this same problem
+ (blank lines in debian/docs file problem), although this same problem
applies to other debhelper programs... like dh_installexamples, which had
the same bug fixed when I rewrote it in perl just now.
- * Dh_Lib.pm: accidentially didn't check DH_VERBOSE if commands were not
+ * Dh_Lib.pm: accidentally didn't check DH_VERBOSE if commands were not
passed any switches.
* Dh_Getopt.pm: --noscripts was broken.
@@ -6714,12 +10684,12 @@ debhelper (1.1.4) unstable; urgency=low
debhelper (1.1.3) unstable; urgency=low
* dh_md5sums: -x was broken since version 1.1.1 - fixed.
- * dh_lib: removed get_arch_indep_packages() function that hasn't been used
+ * Dh_Lib.pm: removed get_arch_indep_packages() function that hasn't been used
at all for a long while.
* Added Dh_Lib.pm, a translation of dh_lib into perl.
* dh_getopt.pl: moved most of it into new Dh_Getopt.pm module, rewriting
large chunks in the process.
- * dh_installdocs: completly rewritten in perl. Now it's faster and it can
+ * dh_installdocs: completely rewritten in perl. Now it's faster and it can
install many oddly named files it died on before.
* dh_installdocs: fixed a bug that installed TODO files mode 655 in native
debian packages.
@@ -6750,15 +10720,15 @@ debhelper (1.1.1) unstable; urgency=low
debhelper (1.1.0) unstable; urgency=low
* New unstable branch of debhelper.
-
+
* TODO: list all current bugs, in order I plan to tackle them.
* Added debhelper.1 man page, which groups all the debhelper options that
are common to all commands in once place so I can add new options w/o
updating 27 man pages.
- * dh_*.1: updated all debheper man pages to refer to debhelper(1) where
+ * dh_*.1: updated all debhelper man pages to refer to debhelper(1) where
appropriate. Also corrected a host of little errors.
* doc/README: moved a lot of this file into debhelper.1.
- * dh_*: -N option now excludes a package from the list of packages the
+ * dh_*: -N option now excludes a package from the list of packages the
programs act on. (#25247)
-- Joey Hess <joeyh@debian.org> Sat, 8 Aug 1998 17:49:56 -0700
@@ -6766,8 +10736,8 @@ debhelper (1.1.0) unstable; urgency=low
debhelper (1.0) stable unstable; urgency=low
* 1.0 at last!
-
- * This relelase is not really intended for stable. I throw a copy into
+
+ * This release is not really intended for stable. I throw a copy into
stable-updates because I want it to be available as an upgrade for
people using debian 2.0 (the current version in debian 2.0 has no
critical bugs, but this version is of course a lot nicer), and I plan
@@ -6818,7 +10788,7 @@ debhelper (0.99) unstable; urgency=low
debhelper (0.98) unstable; urgency=low
- * dh_lib: isnative: pass -l<changelog> to dpkg-parsechangelog, to support
+ * Dh_Lib.pm: isnative: pass -l<changelog> to dpkg-parsechangelog, to support
odd packages with multiple different debian changelogs.
* doc/PROGRAMMING: cleaned up the docs on DH_EXCLUDE_FIND.
@@ -6827,10 +10797,10 @@ debhelper (0.98) unstable; urgency=low
debhelper (0.97) unstable; urgency=low
* doc/from-debstd: fixed a typo.
- * examples/*: install-stamp no longer depends on phony build targey; now
+ * examples/*: install-stamp no longer depends on phony build target; now
install-stamp depends on build-stamp instead (#24234).
* dh_fixperms: applied patch from Herbert Xu <herbert@gondor.apana.org.au>
- to fix bad uses of the find command, so it should now work on packages
+ to fix bad uses of the find command, so it should now work on packages
with files with spaces in them (#22005). It's also much cleaner. Thanks,
Herbert!
* dh_getopt.pl, doc/PROGRAMMING: added DH_EXCLUDE_FIND, to make the above
@@ -6848,14 +10818,14 @@ debhelper (0.96) unstable; urgency=low
debhelper (0.95) unstable; urgency=low
- * dh_movefiles: move even very strangly named files. (#23775) Unfortunatly,
+ * dh_movefiles: move even very strangely named files. (#23775) Unfortunately,
I had to use a temporary file. Oh well..
-- Joey Hess <joeyh@debian.org> Mon, 22 Jun 1998 17:16:17 -0700
debhelper (0.94) unstable; urgency=low
- * dh_md5sums: fixed so it handles spaces and other odd characters in
+ * dh_md5sums: fixed so it handles spaces and other odd characters in
filenames correctly. (#23046, #23700, #22010)
* As a side effect, got rid of the nasty temporary file dh_md5sums used
before.
@@ -6896,16 +10866,16 @@ debhelper (0.90) unstable; urgency=low
converting a package from debstd to debhelper. "dh_debstd -v" will
output the sequence of debhelper commands that approximate what debstd
would do in the same situation.
- * dh_debstd is completly untested, I don't have the source to any packages
- that use debstd available. Once this is tested, I plan to release
+ * dh_debstd is completely untested, I don't have the source to any packages
+ that use debstd available. Once this is tested, I plan to release
debhelper 1.0!
* Added a from-debstd document that gives a recipe to convert from debstd
to debhelper.
* dh_fixperms: can now use -X to exclude files from having their
permissions changed.
- * dh_testroot: test for uid == 0, instead of username == root, becuase
+ * dh_testroot: test for uid == 0, instead of username == root, because
some people enjoy changing root's name.
- * dh_installinit: handle debian/init.d as well as debian/init files,
+ * dh_installinit: handle debian/init.d as well as debian/init files,
for backwards compatibility with debstd. Unlike with debstd, the two
files are treated identically.
* dh_lib, PROGRAMMING: added "warning" function.
@@ -6981,7 +10951,7 @@ debhelper (0.80) unstable; urgency=low
* Moved under cvs (so I can fork a stable and an unstable version).
* dh_movefiles: first move real files, then move symlinks. (#18220)
- Thanks to Bdale Garbee <bdale@gag.com> and Adam Heath
+ Thanks to Bdale Garbee <bdale@gag.com> and Adam Heath
<adam.heath@usa.net> for help on the implementation.
* dh_installchangelogs: use debian/package.changelog files if they exist
rather than debian/changelog. It appears some people do need per-package
@@ -6996,7 +10966,7 @@ debhelper (0.78) frozen unstable; urgency=low
* More spelling fixes from Christian T. Steigies. (I ignored the spelling
fixes to the changelog, though - too many, and a changelog isn't meant
to be changed after the fact :-)
- * dh_fixperms: remove execute bits from .la files genrated by libtool.
+ * dh_fixperms: remove execute bits from .la files generated by libtool.
-- Joey Hess <joeyh@debian.org> Mon, 30 Mar 1998 12:44:42 -0800
@@ -7052,7 +11022,7 @@ debhelper (0.71) unstable; urgency=low
* dh_makeshlibs: -V flag was broken: if just -V was specified,
dh_makeshlibs would die. Corrected this.
- * dh_lib: removed warning if the arguments passed to a debhelper command
+ * Dh_Lib.pm: removed warning if the arguments passed to a debhelper command
do not apply to the main package. It's been long enough so I'm 100% sure
no packages use the old behavior.
@@ -7060,8 +11030,8 @@ debhelper (0.71) unstable; urgency=low
debhelper (0.70) unstable; urgency=low
- * dh_lib: autoscript(): no longer add the modification date to the
- comments aurrounding debhelper-added code. I don't think this date was
+ * Dh_Lib.pm: autoscript(): no longer add the modification date to the
+ comments surrounding debhelper-added code. I don't think this date was
gaining us anything, so let's remove it and save some disk space.
-- Joey Hess <joeyh@debian.org> Sun, 8 Mar 1998 21:15:13 -0800
@@ -7111,12 +11081,12 @@ debhelper (0.64) unstable; urgency=low
debhelper (0.63) unstable; urgency=low
* Removed some debugging output from dh_installmanpages.
- * du_du: no longer does anything, becuase it has been decided on
+ * du_du: no longer does anything, because it has been decided on
debian-policy that du control files are bad.
* examples/*: removed dh_du calls.
* debian/rules: removed dh_du call.
- * Modified dh_gencontrol, dh_makeshlibs, and dh_md5sums to generate files
- with the correct permissions even if the umask is set to unusual
+ * Modified dh_gencontrol, dh_makeshlibs, and dh_md5sums to generate files
+ with the correct permissions even if the umask is set to unusual
values. (#18283)
-- Joey Hess <joeyh@debian.org> Mon, 16 Feb 1998 23:34:36 -0800
@@ -7156,7 +11126,7 @@ debhelper (0.59) unstable; urgency=low
debhelper (0.58) unstable; urgency=low
- * Fixed bug #17597 - DH_VERBOSE wasn'talways taking effect.
+ * Fixed bug #17597 - DH_VERBOSE wasn't always taking effect.
-- Joey Hess <joeyh@debian.org> Wed, 28 Jan 1998 17:18:17 -0500
@@ -7175,7 +11145,7 @@ debhelper (0.56) unstable; urgency=low
debhelper (0.55) unstable; urgency=low
- * dh_clean: delete substvarsfiles probperly again (broken in 0.53). #17077
+ * dh_clean: delete substvarsfiles properly again (broken in 0.53). #17077
* Added call to dh_movefiles, and a commented out call to dh_testversion,
to some of the sample rules files. #17076
@@ -7183,7 +11153,7 @@ debhelper (0.55) unstable; urgency=low
debhelper (0.54) unstable; urgency=low
- * dh_lib: no longer call getopt(1) to parse options. I wrote my own
+ * Dh_Lib.pm: no longer call getopt(1) to parse options. I wrote my own
argument processor in perl.
* Added long versions of all arguments. TODO: document them.
* All parameters may now be passed values that include whitespace (ie,
@@ -7230,7 +11200,7 @@ debhelper (0.50) unstable; urgency=low
* dh_makeshlibs: added -m parameter, which can force the major number
of the shared library if it is guessed incorrectly.
- * Added dh_testversion to let your package depend on a certian version of
+ * Added dh_testversion to let your package depend on a certain version of
debhelper to build.
* dh_{installdirs,installdocs,installexamples,suidregieter,undocumented}:
behavior modification - any files/directories specified on the command
@@ -7243,7 +11213,7 @@ debhelper (0.50) unstable; urgency=low
and debhelper's behavior has altered.
* I have grepped debian's source packages, and I'm quite sure this
is not going to affect any packages currently in debian.
- * dh_lib: isnative() now caches its return value, which should optimize
+ * Dh_Lib.pm: isnative() now caches its return value, which should optimize
away several more calls to dpkg-parsechangelog.
* README: explain a way to embed debhelper generated shell script into a
perl script.
@@ -7271,7 +11241,7 @@ debhelper (0.36) unstable; urgency=low
debhelper (0.35) unstable; urgency=low
- * dh_lib: use dpkg-parsechangelog instead of parsing it by hand. This
+ * Dh_Lib.pm: use dpkg-parsechangelog instead of parsing it by hand. This
makes a package build slower (by about 30 seconds, on average), so
I might remove it or optimize it if too many people yell at me. :-)
* dh_undocumented.1: note that it really links to undocumented.7.gz.
@@ -7286,7 +11256,7 @@ debhelper (0.34) unstable; urgency=low
debhelper (0.33) unstable; urgency=low
- * examples/*: use prefix, instead of PREFIX, becuase autoconf uses that.
+ * examples/*: use prefix, instead of PREFIX, because autoconf uses that.
Also, use `pwd`/debian/tmp, instead of debian/tmp.
* Always substitute #DEBHELPER# in maintainer scripts, even if it expands
to nothing, for neatness and to save a few bytes. #15863
@@ -7299,7 +11269,7 @@ debhelper (0.33) unstable; urgency=low
debhelper (0.32) unstable; urgency=low
* Split dh_installdebfiles into 3 programs (dh_installdeb, dh_shlibdeps,
- and dh_gencontrol). dh_installdebfiles still works, but is depricated.
+ and dh_gencontrol). dh_installdebfiles still works, but is deprecated.
* Added an examples/rules.indep file.
* examples/rules.multi: changed dh_du -a to dh_du -i in binary-indep
section.
@@ -7320,12 +11290,12 @@ debhelper (0.30) unstable; urgency=low
debhelper (0.29) unstable; urgency=low
- * dh_lib: don't expand text passed to doit() a second time. This fixes
+ * Dh_Lib.pm: don't expand text passed to doit() a second time. This fixes
#15624, and hopefully doesn't break anything else.
* A side effect of this (of interest only to the debhelper programmer) is
that doit() can no longer handle complex commands now. (ie, pipes, `;',
`&', etc separating multiple commands, or redirection)
- * dh_makeshlibs, dh_md5sums, dh_installdebfiles, dh_du, dh_clean,
+ * dh_makeshlibs, dh_md5sums, dh_installdebfiles, dh_du, dh_clean,
dh_installdirs: don't pass complex commands to doit().
-- Joey Hess <joeyh@debian.org> Thu, 4 Dec 1997 13:56:14 -0500
@@ -7338,7 +11308,7 @@ debhelper (0.28) unstable; urgency=low
debhelper (0.27) unstable; urgency=low
- * README: fixed typoes (one serious).
+ * README: fixed typos (one serious).
* Ran ispell on all the documentation.
-- Joey Hess <joeyh@debian.org> Sun, 30 Nov 1997 18:48:20 -0500
@@ -7367,7 +11337,7 @@ debhelper (0.24) unstable; urgency=low
debhelper (0.23) unstable; urgency=low
- * Now depends on fileutils (>= 3.16-4), becuase with any earlier version
+ * Now depends on fileutils (>= 3.16-4), because with any earlier version
of fileutils, install -p will not work (#14680)
-- Joey Hess <joeyh@debian.org> Wed, 19 Nov 1997 23:59:43 -0500
@@ -7401,11 +11371,11 @@ debhelper (0.19) unstable; urgency=low
debhelper (0.18) unstable; urgency=low
* examples/*: added source, diff targets that just print an error.
- * dh_clean: clean up more files - *.orig, *.rej, *.bak, .*.orig, .*.rej,
+ * dh_clean: clean up more files - *.orig, *.rej, *.bak, .*.orig, .*.rej,
.SUMS, TAGS, and empty files.
- * dh_lib: doit(): use eval on parameters, instead of directly running
+ * Dh_Lib.pm: doit(): use eval on parameters, instead of directly running
them. This lets me clean up several nasty areas where I had to echo the
- commands once, and then run them seperatly.
+ commands once, and then run them separately.
-- Joey Hess <joeyh@debian.org> Mon, 10 Nov 1997 19:48:36 -0500
@@ -7413,20 +11383,20 @@ debhelper (0.17) unstable; urgency=low
* Added dh_installdirs, automatically creates subdirectories (for
compatibility with debstd's debian/dirs file.
- * dh_lib: fixed problem with -P flag.
+ * Dh_Lib.pm: fixed problem with -P flag.
-- Joey Hess <joeyh@debian.org> Fri, 7 Nov 1997 16:07:11 -0500
debhelper (0.16) unstable; urgency=low
- * dh_compress: always compress changelog and upstream changelog, no
+ * dh_compress: always compress changelog and upstream changelog, no
matter what their size (#14604) (policy 5.8)
-- Joey Hess <joeyh@debian.org> Thu, 6 Nov 1997 19:50:36 -0500
debhelper (0.15) unstable; urgency=low
- * README: documented what temporary directories are used by default for
+ * README: documented what temporary directories are used by default for
installing package files into.
* dh_*: added -P flag, to let a different package build directory be
specified.
@@ -7449,7 +11419,7 @@ debhelper (0.13) unstable; urgency=low
debhelper (0.12) unstable; urgency=low
- * Fixed mispelling of dh_md5sums in examples rules files and README.
+ * Fixed misspelling of dh_md5sums in examples rules files and README.
(#13990) Thanks, Adrian.
-- Joey Hess <joeyh@debian.org> Fri, 24 Oct 1997 14:35:30 -0400
@@ -7545,7 +11515,7 @@ debhelper (0.2) unstable; urgency=low
* dh_clean: allow specification of additional files to remove as
parameters.
* dh_compress: fixed it to not compress doc/package/copyright
- * dh_installmanpage: allow listing of man pages that should not be
+ * dh_installmanpage: allow listing of man pages that should not be
auto-installed as parameters.
* dh_installdebfiles: make sure all installed files have proper ownerships
and permissions.
diff --git a/debian/compat b/debian/compat
index f599e28b..60d3b2f4 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-10
+15
diff --git a/debian/control b/debian/control
index e4d56a0a..4a63b296 100644
--- a/debian/control
+++ b/debian/control
@@ -1,23 +1,80 @@
Source: debhelper
Section: devel
Priority: optional
-Maintainer: Debhelper Maintainers <debhelper-devel@lists.alioth.debian.org>
-Build-Depends: po4a (>= 0.24)
-Standards-Version: 3.9.6
-Vcs-Git: git://git.debian.org/git/debhelper/debhelper.git
-Vcs-Browser: http://git.debian.org/?p=debhelper/debhelper.git;a=summary
-Homepage: http://joeyh.name/code/debhelper/
+Maintainer: Debhelper Maintainers <debhelper@packages.debian.org>
+Uploaders: Niels Thykier <niels@thykier.net>,
+Build-Depends: dpkg-dev (>= 1.18.0~),
+ libtest-pod-perl <pkg.debhelper.ci>,
+ man-db <pkg.debhelper.ci>,
+ perl:any,
+ po4a,
+Rules-Requires-Root: no
+Standards-Version: 4.6.1
+Testsuite: autopkgtest-pkg-perl
+Vcs-Git: https://salsa.debian.org/debian/debhelper.git
+Vcs-Browser: https://salsa.debian.org/debian/debhelper
Package: debhelper
Architecture: all
-Depends: ${perl:Depends}, ${misc:Depends}, file (>= 3.23), dpkg (>= 1.16.2), dpkg-dev (>= 1.17.0), binutils, po-debconf, man-db (>= 2.5.1-1), libdpkg-perl (>= 1.17.14)
-Suggests: dh-make
-Conflicts: dpkg-cross (<< 1.18), python-support (<< 0.5.3), python-central (<< 0.5.6), automake (<< 1.11.2)
+Depends: autotools-dev,
+# Version 12 is where dh-autoreconf supports --sourcedirectory.
+# Version 16 fixes #887482, version 17 fixes #889567
+# Constraint can be relaxed if packages do not rely/require any of the
+# above fixes
+ dh-autoreconf (>= 17~),
+# Version constraint is to get a version of dh-strip-nondeterminism
+# without several bugs. The constraint can be relaxed if an older
+# version is sufficient.
+ dh-strip-nondeterminism (>= 0.028~),
+# dbgsym support landed in 1.18.0, 1.18.2 fixes a related nasty bug.
+ dpkg (>= 1.18.0~),
+ dpkg-dev (>= 1.18.2~),
+ dwz (>= 0.12.20190711),
+ file (>= 3.23),
+ libdebhelper-perl (= ${source:Version}),
+ libdpkg-perl (>= 1.17.14),
+ man-db,
+ po-debconf,
+ ${misc:Depends},
+ ${perl:Depends},
+Breaks:
+# To ensure cmake understands -DCMAKE_INSTALL_RUNSTATEDIR=/run as used in compat 11
+# - Can be dropped (with the caveat that cmake packages may behave differently
+# depending on the version of cmake).
+ cmake (<< 3.9~),
+# meson build system uses --wrap-mode, which requires meson (>= 0.40.0)
+ meson (<< 0.40.0~),
+# Re-add if qt5-qmake is added to stretch-backports
+# The qmake cross wrapper was introduced in 5.9.2+dfsg-5, but got some important
+# fixes in the subsequent uploads. It is only needed for cross-building.
+# qt5-qmake (<< 5.9.2+dfsg-8),
+Suggests: dh-make,
+Provides: dh-sequence-dwz,
+ dh-sequence-elf-tools,
+ dh-sequence-installinitramfs,
+ dh-sequence-installsysusers,
+ dh-sequence-single-binary,
+ dh-sequence-systemd,
+ ${dh:CompatLevels},
Multi-Arch: foreign
Description: helper programs for debian/rules
A collection of programs that can be used in a debian/rules file to
- automate common tasks related to building debian packages. Programs
- are included to install various files into your package, compress
- files, fix file permissions, integrate your package with the debian
- menu system, debconf, doc-base, etc. Most debian packages use debhelper
+ automate common tasks related to building Debian packages. Programs
+ are included to install various files into your package, compress
+ 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.
diff --git a/debian/copyright b/debian/copyright
index 0e79f07a..13eac2ca 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,7 +1,8 @@
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Files: *
Copyright: 1997-2011 Joey Hess <joeyh@debian.org>
+ 2015-2016 Niels Thykier <niels@thykier.net>
License: GPL-2+
Files: examples/* autoscripts/*
@@ -9,7 +10,7 @@ Copyright: 1997-2011 Joey Hess <joeyh@debian.org>
License: public-domain
These files are in the public domain.
.
- Pedants who belive I cannot legally say that code I have written is in
+ Pedants who believe I cannot legally say that code I have written is in
the public domain may consider them instead to be licensed as follows:
.
Redistribution and use in source and binary forms, with or without
@@ -23,10 +24,6 @@ Files: dh_installcatalogs
Copyright: Adam Di Carlo <aph@debian.org>
License: GPL-2+
-Files: dh_scrollkeeper
-Copyright: Ross Burton <ross@burtonini.com>
-License: GPL-2+
-
Files: dh_usrlocal
Copyright: Andrew Stribblehill <ads@debian.org>
License: GPL-2+
@@ -65,14 +62,18 @@ Files: dh_ucf
Copyright: 2011 Jeroen Schot <schot@A-Eskwadraat.nl>
License: GPL-2+
-Files: Debian/Debhelper/Buildsystem/qmake.pm
-Copyright: 2010 Kel Modderman
-License: GPL-2+
+Files: dh_systemd_enable dh_systemd_start
+Copyright: 2013 Michael Stapelberg
+License: BSD-3-clause
-Files: Debian/Debhelper/Buildsystem* Debian/Debhelper/Dh_Buildsystems.pm
+Files: lib/Debian/Debhelper/Buildsystem.pm lib/Debian/Debhelper/Buildsystem/* lib/Debian/Debhelper/Dh_Buildsystems.pm
Copyright: 2008-2009 Modestas Vainius
License: GPL-2+
+Files: lib/Debian/Debhelper/Buildsystem/qmake.pm
+Copyright: 2010 Kel Modderman
+License: GPL-2+
+
Files: man/po4a/po/fr.po
Copyright: 2005-2011 Valery Perrin <valery.perrin.debian@free.fr>
License: GPL-2+
@@ -93,3 +94,30 @@ License: GPL-3+
The full text of the GPL version 3 is distributed in
/usr/share/common-licenses/GPL-3 on Debian systems.
+License: BSD-3-clause
+ All rights reserved.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ .
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ .
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ * Neither the name of Michael Stapelberg nor the
+ names of contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY Michael Stapelberg ''AS IS'' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL Michael Stapelberg BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/debian/docs b/debian/debhelper.docs
index 30d29dea..30d29dea 100644
--- a/debian/docs
+++ b/debian/debhelper.docs
diff --git a/debian/examples b/debian/debhelper.examples
index e39721e2..e39721e2 100644
--- a/debian/examples
+++ b/debian/debhelper.examples
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/manpages b/debian/debhelper.manpages
index 5a7b08ee..5a7b08ee 100644
--- a/debian/manpages
+++ b/debian/debhelper.manpages
diff --git a/debian/gbp.conf b/debian/gbp.conf
new file mode 100644
index 00000000..703e45fe
--- /dev/null
+++ b/debian/gbp.conf
@@ -0,0 +1,6 @@
+[DEFAULT]
+debian-branch = main
+
+[dch]
+multimaint-merge = true
+ignore-regex = (Signed-off|Acked|Tested|Reviewed)-by:|Fix-For:|Fixes:
diff --git a/debian/gen-provides b/debian/gen-provides
new file mode 100644
index 00000000..c9e971e4
--- /dev/null
+++ b/debian/gen-provides
@@ -0,0 +1,21 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib qw(error);
+
+my @provides;
+my $lowest = Debian::Debhelper::Dh_Lib::LOWEST_VIRTUAL_DEBHELPER_COMPAT_LEVEL
+ // error("LOWEST_VIRTUAL_DEBHELPER_COMPAT_LEVEL is undef");
+my $highest = Debian::Debhelper::Dh_Lib::HIGHEST_STABLE_COMPAT_LEVEL
+ // error("HIGHEST_STABLE_COMPAT_LEVEL is undef");
+
+if ($highest < $lowest) {
+ error("HIGHEST_STABLE_COMPAT_LEVEL is lower than LOWEST_VIRTUAL_DEBHELPER_COMPAT_LEVEL");
+}
+
+for (my $i = $lowest ; $i <= $highest ; $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 faeac03f..fb4e5201 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,14 +1,23 @@
#!/usr/bin/make -f
# If you're looking for an example debian/rules that uses debhelper, see
# the examples directory.
-#
+#
# Each debhelper command in this rules file has to be run using ./run,
# to ensure that the commands and libraries in the source tree are used,
# rather than the installed ones.
+#
+# We disable autoreconf to avoid build-depending on it (it does
+# nothing for debhelper and it keeps the set of B-D smaller)
+
+PERL ?= perl
%:
- ./run dh $@
+ ./run dh $@ --without autoreconf --with build-stamp
+
+# Disable as they are unneeded (and we can then be sure debhelper
+# builds without needing autotools-dev, dh-strip-nondeterminism etc.)
+override_dh_update_autotools_config override_dh_strip_nondeterminism:
-# Not intended for use by anyone except the author.
-announcedir:
- @echo ${HOME}/src/joeywiki/code/debhelper/news
+execute_before_dh_install:
+ PERLLIBDIR=$$($(PERL) -MConfig -e 'print $$Config{vendorlib}')/ ; \
+ $(PERL) -I"debian/tmp/$${PERLLIBDIR}" debian/gen-provides > debian/debhelper.substvars
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 00000000..89ae9db8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (native)
diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides
new file mode 100644
index 00000000..a0a4f394
--- /dev/null
+++ b/debian/source/lintian-overrides
@@ -0,0 +1,2 @@
+debhelper source: no-dh-sequencer
+debhelper source: package-does-not-use-debhelper-or-cdbs
diff --git a/debian/source/options b/debian/source/options
new file mode 100644
index 00000000..edbbfb5b
--- /dev/null
+++ b/debian/source/options
@@ -0,0 +1,2 @@
+tar-ignore
+tar-ignore=debhelper/.idea
diff --git a/debian/tests/pkg-perl/skip-syntax b/debian/tests/pkg-perl/skip-syntax
new file mode 100644
index 00000000..3ea2891f
--- /dev/null
+++ b/debian/tests/pkg-perl/skip-syntax
@@ -0,0 +1 @@
+Dummy/Entry.pm
diff --git a/debian/tests/pkg-perl/smoke-files b/debian/tests/pkg-perl/smoke-files
new file mode 100644
index 00000000..2a0aeddb
--- /dev/null
+++ b/debian/tests/pkg-perl/smoke-files
@@ -0,0 +1,4 @@
+t/
+debian/compat
+debian/control
+debian/changelog
diff --git a/debian/tests/pkg-perl/smoke-skip b/debian/tests/pkg-perl/smoke-skip
new file mode 100644
index 00000000..c006e7ab
--- /dev/null
+++ b/debian/tests/pkg-perl/smoke-skip
@@ -0,0 +1,5 @@
+# If we set the path to /usr/bin when run under autopkgtest,
+# other dh_* commands are tested as well. This might be nice
+# or not but it currently fails for dh_autotools-dev_updateconfig.
+# So let's skip t/size.t for now.
+t/size.t
diff --git a/dh b/dh
index f3bd3213..89cc7760 100755
--- a/dh
+++ b/dh
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,7 +7,17 @@ dh - debhelper command sequencer
=cut
use strict;
+use warnings;
+use constant {
+ 'UNSKIPPABLE_CLI_OPTIONS_BUILD_SYSTEM' => q(-S|--buildsystem|-D|--sourcedir(?:ectory)?|-B|--builddir(?:ectory)?),
+ 'BUILD_STAMP_FILE' => 'debian/debhelper-build-stamp',
+};
use Debian::Debhelper::Dh_Lib;
+use Debian::Debhelper::Sequence;
+use Debian::Debhelper::SequencerUtil;
+use Debian::Debhelper::DH::SequenceState ();
+
+our $VERSION = DH_BUILTIN_VERSION;
=head1 SYNOPSIS
@@ -20,10 +30,29 @@ correspond to the targets of a F<debian/rules> file: B<build-arch>,
B<build-indep>, B<build>, B<clean>, B<install-indep>, B<install-arch>,
B<install>, B<binary-arch>, B<binary-indep>, and B<binary>.
-=head1 OVERRIDE TARGETS
+=head1 OVERRIDE AND HOOK TARGETS
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.
+at any step in a sequence, by defining an override target. It is also
+possible to inject a command before or after any step without affecting
+the step itself.
+
+=head2 Injecting commands before or after a step
+
+I<Note>: This feature requires debhelper 12.8 or later plus the package must
+use compatibility mode 10 or later.
+
+To inject commands before I<dh_command>, add a target named
+B<execute_before_>I<dh_command> to the rules files. Similarly, if you
+want to inject commands after I<dh_command>, add the target
+B<execute_after_>I<dh_command>. Both targets can be used for the same
+I<dh_command> and also even if the command is overridden (as described in
+L</Overriding a command> below).
+
+When these targets are defined, B<dh> will call the targets respectively
+before or after it would invoke I<dh_command> (or its override target).
+
+=head2 Overriding a command
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
@@ -31,12 +60,199 @@ instead call that target. The override target can then run the command with
additional options, or run entirely different commands instead. See
examples below.
-Override targets can also be defined to run only when building
-architecture dependent or architecture independent packages.
-Use targets with names like B<override_>I<dh_command>B<-arch>
-and B<override_>I<dh_command>B<-indep>.
-(Note that to use this feature, you should Build-Depend on
-debhelper 8.9.7 or above.)
+=head2 Architecture dependent/independent override and hook targets
+
+The override and hook targets can also be defined to run only
+when building architecture dependent or architecture independent
+packages. Use targets with names like B<override_>I<dh_command>B<-arch>
+and B<execute_after_>I<dh_command>B<-indep>.
+
+This feature is available since debhelper 8.9.7 (for override targets)
+and 12.8 (for hook targets).
+
+=head2 Completely empty targets
+
+As a special optimization, B<dh> will skip a target if it is
+completely empty and does not depend on any other target. This is
+mostly useful for override targets, where the command will simply be
+skipped without the overhead of invoking a dummy target.
+
+Note that the target has to be completely empty for this to work:
+
+ # Skip dh_bar - the good and optimized way
+ # Some rationale for skipping dh_bar goes here
+ override_dh_bar:
+
+
+ # Skip dh_foo - the slow way
+ override_dh_foo:
+ # Some rationale for skipping dh_foo goes here
+ # (these comments causes a dummy target to be run)
+
+=head2 Verifying targets are picked up by dh
+
+As of debhelper 13.10, you can use L<dh_assistant(1)> to see which override
+and hook targets will be seen by B<dh>. Here is an example run of L<dh_assistant(1)>
+along with its output:
+
+ $ dh_assistant detect-hook-targets
+ {
+ "commands-not-in-path": [
+ "dh_foo"
+ ],
+ "hook-targets": [
+ {
+ "command": "dh_strip_nondeterminism",
+ "is-empty": true,
+ "package-section-param": null,
+ "target-name": "override_dh_strip_nondeterminism"
+ },
+ {
+ "command": "dh_foo",
+ "is-empty": false,
+ "package-section-param": "-a",
+ "target-name": "override_dh_foo-arch"
+ }
+ ]
+ }
+
+The B<commands-not-in-path> is useful for spotting mistakes in the hook target
+names. A non-empty value implies one of more hook targets are related to a command
+that is either not installed or no command with that name exists at all. It is
+generally worth double checking these.
+
+Additionally, the B<is-empty> attribute for each hook target can be used for seeing
+whether a hook target triggers the L</Completely empty targets> optimization.
+
+If you are interested in the other attributes, please read the L<dh_assistant(1)>
+for the details.
+
+=head3 Verifying targets are picked up by dh (when debhelper is older than 13.10)
+
+
+
+On older versions of debhelper, you have to use B<dh> with B<--no-act>.
+You can use the following command as an example:
+
+ $ dh binary --no-act | grep dh_install | head -n5
+ dh_installdirs
+ dh_install
+ debian/rules execute_after_dh_install
+ dh_installdocs
+ dh_installchangelogs
+
+The B<debian/rules execute_after_dh_install> in the output, which signals
+that B<dh> registered a B<execute_after_dh_install> target and would
+run it directly after L<dh_install(1)>.
+
+Note that L</Completely empty targets> will be omitted in the listing above.
+This makes it a bit harder to spot as you are looking for the omission of
+a command name. But otherwise, the principle remains the same.
+
+=head2 Caveats with hook targets and makefile conditionals
+
+If you choose to wrap a hook target in makefile conditionals, please
+be aware that B<dh> computes all the hook targets a head of time and
+caches the result for that run. Furthermore, the conditionals will be
+invoked again when B<dh> calls the hook target later and will assume
+the answer did not change.
+
+The parsing and caching I<often> happens before B<dh> knows whether it
+will build arch:any (-a) or/and arch:all (-i) packages, which can
+produce confusing results - especially when L<dh_listpackages(1)> is
+part of the conditional.
+
+Most of the problems can be avoided by making the hook target
+unconditional and then have the "body" be partially or completely
+conditional. As an example:
+
+ # SIMPLE: It is well-defined what happens. The hook target
+ # is always considered. The "maybe run this" bit is
+ # conditional but dh_foo is definitely skipped.
+ #
+ # Note: The conditional is evaluated "twice" where its
+ # influences what happens. Once when dh check which hook
+ # targets exist and once when the override_dh_foo hook target
+ # is run. If *either* times return false, "maybe run this"
+ # is skipped.
+ override_dh_foo:
+ ifneq (...)
+ maybe run this
+ endif
+
+ # SIMPLE: This is also well-defined. The hook target is always
+ # run and dh_bar is skipped. The "maybe run this" bit is
+ # conditional as one might expect.
+ #
+ # Note: The conditional is still evaluated multiple times (in
+ # different process each time). However, only the evaluation
+ # that happens when the hook target is run influences what
+ # happens.
+ override_dh_bar:
+ : # Dummy command to force the target to always be run
+ ifneq (...)
+ maybe run this
+ endif
+
+
+ # COMPLICATED: This case can be non-trivial and have sharp edges.
+ # Use at your own peril if dh_listpackages in the conditional.
+ #
+ # Here, either dh_baz is run normally OR "maybe run this" is run
+ # instead.
+ #
+ # And it gets even more complicated to reason about if dh needs to
+ # recurse into debian/rules because you have an "explicit"
+ # standard target (e.g. a "build-arch:" target separate from "%:").
+ ifneq (...)
+ override_dh_baz:
+ maybe run this
+ endif
+
+These recipes are also relevant for conditional dependency targets,
+which are often seen in a variant of the following example:
+
+ COND_TASKS =
+ ifneq (...)
+ COND_TASKS += maybe-run-this
+ endif
+ ...
+
+ maybe-run-this:
+ ...
+
+ # SIMPLE: It is well-defined what happens. Either the
+ # $(COND_TASKS) are skipped or run.
+ #
+ # Note: The conditional is evaluated "twice" where its
+ # influences what happens. Once when dh check which hook
+ # targets exist and once when the override_dh_foo hook target
+ # is run. If *either* times return false, $(COND_TASKS)
+ # is skipped.
+ override_dh_foo: $(COND_TASKS)
+
+
+ # SIMPLE: This is also well-defined. The hook target is always
+ # run and dh_bar is skipped. The $(COND_TASKS) bit is
+ # conditional as one might expect.
+ #
+ # Note: The conditional is still evaluated multiple times (in
+ # different process each time). However, only the evaluation
+ # that happens when the hook target is run influences what
+ # happens.
+ override_dh_bar: $(COND_TASKS)
+ : # Dummy command to force the target to always be run
+
+ # COMPLICATED: This case can be non-trivial and have sharp edges.
+ # Use at your own peril if dh_listpackages in the conditional.
+ #
+ ifneq (...)
+ override_dh_baz: $(COND_TASKS)
+ endif
+
+
+When in doubt, pick the relevant B<SIMPLE> case in the examples above
+that match your need.
=head1 OPTIONS
@@ -51,6 +267,29 @@ This is used when there is a third-party package that provides
debhelper commands. See the F<PROGRAMMING> file for documentation about
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>. 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
+bootstrapping).
+
+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>
The inverse of B<--with>, disables using the given addon. This option
@@ -61,6 +300,10 @@ listed, separated by commas.
List all available addons.
+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).
+
=item B<--no-act>
Prints commands that would run for a given sequence, but does not run them.
@@ -94,10 +337,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
@@ -122,22 +365,24 @@ after a particular debhelper command is run.
%:
dh $@
- override_dh_fixperms:
- dh_fixperms
+ # Example assumes debhelper/12.8 and compat 10+
+ execute_after_dh_fixperms:
chmod 4755 debian/foo/usr/bin/foo
-If your package uses autotools and you want to freshen F<config.sub> and
-F<config.guess> with newer versions from the B<autotools-dev> package
-at build time, you can use some commands provided in B<autotools-dev>
-that automate it, like this.
+If you are on an older debhelper or compatibility level, the above
+example would have to be written as.
#!/usr/bin/make -f
%:
- dh $@ --with autotools_dev
+ dh $@
+
+ # Older debhelper versions or using compat 9 or lower.
+ override_dh_fixperms:
+ dh_fixperms
+ chmod 4755 debian/foo/usr/bin/foo
Python tools are not run by dh by default, due to the continual change
-in that area. (Before compatibility level v9, dh does run B<dh_pysupport>.)
-Here is how to use B<dh_python2>.
+in that area. Here is how to use B<dh_python2>.
#!/usr/bin/make -f
%:
@@ -166,20 +411,29 @@ in a subdirectory, which will be removed on B<clean>.
%:
dh $@ --builddirectory=build
-If your package can be built in parallel, you can support parallel building
-as follows. Then B<dpkg-buildpackage -j> will work.
+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.
#!/usr/bin/make -f
%:
dh $@ --parallel
+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):
+
+
+ #!/usr/bin/make -f
+ %:
+ dh $@ --no-parallel
+
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.
#!/usr/bin/make -f
%:
dh $@
-
+
# Commands not to run:
override_dh_auto_test override_dh_compress override_dh_fixperms:
@@ -190,7 +444,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
@@ -204,105 +458,159 @@ 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 building only documentation.
- override_dh_fixperms-arch:
- dh_fixperms
+ # Example assumes debhelper/12.8 and compat 10+
+ execute_after_dh_fixperms-arch:
chmod 4755 debian/foo/usr/bin/foo
-=head1 INTERNALS
+=head1 DEBHELPER PROVIDED DH ADDONS
-If you're curious about B<dh>'s internals, here's how it works under the hood.
+The primary purpose of B<dh> addons is to provide easy integration with
+third-party provided features for debhelper. However, debhelper itself
+also provide a few sequences that can be useful in some cases. These
+are documented in this list:
-Each debhelper command will record when it's successfully run in
-F<debian/package.debhelper.log>. (Which B<dh_clean> deletes.) So B<dh> can tell
-which commands have already been run, for which packages, and skip running
-those commands again.
+=over 4
-Each time B<dh> is run, 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.
+=item build-stamp
-A sequence can also run dependent targets in debian/rules. For
-example, the "binary" sequence runs the "install" target.
+A special addon for controlling whether B<dh> (in compat 10 or later)
+will create stamp files to tell whether the build target has been run
+successfully. See L</INTERNALS> for more details.
-B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass information
-through to debhelper commands that are run inside override targets. The
-contents (and indeed, existence) of this environment variable, as the name
-might suggest, is subject to change at any time.
+This addon is active by default but can disabled by using
+B<dh $@ --without build-stamp>
-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
-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.
+=item dwz (obsolete)
-=head1 DEPRECATED OPTIONS
+Adds L<dh_dwz(1)> to the sequence in compat level 11 or below. Obsolete
+in compat 12 or later.
-The following options are deprecated. It's much
-better to use override targets instead.
+=item elf-tools
-=over 4
+This addon adds tools related to ELF files to the sequence such as
+L<dh_strip(1)> and L<dh_shlibdeps(1)>
+
+This addon is I<conditionally> active by default for architecture
+specific packages - that is, it is skipped for arch:all packages.
+In the special case where you need these tools to work on arch:all
+packages, you can use B<--with elf-tools> to activate it
+unconditionally.
+
+=item installinitramfs (obsolete)
-=item B<--until> I<cmd>
+Adds L<dh_installinitramfs(1)> to the sequence in compat level 11 or below.
+Obsolete in compat 12 or later.
-Run commands in the sequence until and including I<cmd>, then stop.
+=item root-sequence (internal)
-=item B<--before> I<cmd>
+This is reserved for internal usage.
-Run commands in the sequence before I<cmd>, then stop.
+=item single-binary
-=item B<--after> I<cmd>
+A special-purpose addon that makes debhelper run in "single binary" mode.
-Run commands in the sequence that come after I<cmd>.
+When active, it will pass B<< --destdir=debian/I<package>/ >> to
+L<dh_auto_install(1)>. This makes every file "installed" by the upstream
+build system part of the (only) binary package by default without having
+to use other helpers such as L<dh_install(1)>.
-=item B<--remaining>
+The addon will refuse to activate when the source package lists 2 or more
+binary packages in F<debian/control> as a precaution.
-Run all commands in the sequence that have yet to be run.
+Before compat 15. this behaviour was the default when there was only a single
+binary package listed in F<debian/control>. In compat 15 and later, this
+addon must explicitly be activated for this feature to work.
+
+The rationale for requiring this as an explicit choice is that if it is
+implicit then debhelper will silently change behaviour on adding a new
+binary package. This has caused many RC bugs when maintainers renamed
+a binary and added transitional packages with the intention of supporting
+seamless upgrades. The result would often be two empty binary packages that
+were uploaded to archive with users frustrated as their "upgrade" removed
+their programs.
+
+=item systemd (obsolete)
+
+Adds L<dh_systemd_enable(1)> and L<dh_systemd_start(1)> to the sequence in
+compat level 10 or below. Obsolete in compat 11 or later.
=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.
+=head1 INTERNALS
+
+If you're curious about B<dh>'s internals, here's how it works under the hood.
+
+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 possible to avoid the stamp file by
+passing B<--without=build-stamp> to B<dh>. This makes "no clean"
+builds behave more like what some people expect at the expense of
+possibly running the build and test twice (the second time as root or
+under L<fakeroot(1)>).
+
+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 been run for. These log files are then removed once
+the override target is complete.
+
+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> deletes.) So B<dh> can tell which commands have already
+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.
+
+A sequence can also run dependent targets in debian/rules. For
+example, the "binary" sequence runs the "install" target.
+
+B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass information
+through to debhelper commands that are run inside override targets. The
+contents (and indeed, existence) of this environment variable, as the name
+might suggest, is subject to change at any time.
+
+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
+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.
=cut
# Stash this away before init modifies it.
my @ARGV_orig=@ARGV;
+my (@addons, @addon_requests);
+
+# Reset umask to 0022 per #944691
+umask(0022);
-if (compat(8, 1)) {
- # python-support was enabled by default before v9.
- # (and comes first so python-central loads later and can disable it).
- unshift @ARGV, "--with=python-support";
-}
-
init(options => {
"until=s" => \$dh{UNTIL},
"after=s" => \$dh{AFTER},
"before=s" => \$dh{BEFORE},
"remaining" => \$dh{REMAINING},
"with=s" => sub {
- my ($option,$value)=@_;
- push @{$dh{WITH}},split(",", $value);
+ my ($option, $value) = @_;
+ push(@addon_requests, map { "+${_}" } split(",", $value));
},
"without=s" => sub {
- my ($option,$value)=@_;
- my %without = map { $_ => 1 } split(",", $value);
- @{$dh{WITH}} = grep { ! $without{$_} } @{$dh{WITH}};
+ my ($option, $value) = @_;
+ push(@addon_requests, map { "-${_}" } split(",", $value));
},
"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,
+ inhibit_log => 1,
);
-inhibit_log();
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
@@ -335,183 +643,29 @@ if (! defined $sequence) {
# Also support completely empty override targets.
# Note: it's not safe to use rules_explicit_target before this check,
# since it causes dh to be run.
-my $dummy_target="debhelper-fail-me";
if ($sequence eq 'debian/rules' ||
$sequence =~ /^override_dh_/ ||
- $sequence eq $dummy_target) {
+ $sequence =~ /^execute_(?:after|before)_dh_/ ||
+ $sequence eq DUMMY_TARGET) {
exit 0;
}
-# Definitions of sequences.
-my %sequences;
-my @bd_minimal = qw{
- dh_testdir
-};
-my @bd = qw{
- dh_testdir
- dh_auto_configure
- dh_auto_build
- dh_auto_test
-};
-my @i = qw{
- dh_testroot
- dh_prep
- dh_installdirs
- dh_auto_install
-
- dh_install
- dh_installdocs
- dh_installchangelogs
- dh_installexamples
- dh_installman
-
- dh_installcatalogs
- dh_installcron
- dh_installdebconf
- dh_installemacsen
- dh_installifupdown
- dh_installinfo
- dh_installinit
- dh_installmenu
- dh_installmime
- dh_installmodules
- dh_installlogcheck
- dh_installlogrotate
- dh_installpam
- dh_installppp
- dh_installudev
- dh_installwm
- dh_installgsettings
- dh_bugfiles
- dh_ucf
- dh_lintian
- dh_gconf
- dh_icons
- dh_perl
- dh_usrlocal
-
- dh_link
- dh_installxfonts
- dh_compress
- dh_fixperms
-};
-my @ba=qw{
- dh_strip
- dh_makeshlibs
- dh_shlibdeps
-};
-if (! getpackages("arch")) {
- @ba=();
-}
-my @b=qw{
- dh_installdeb
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-};
-$sequences{clean} = [qw{
- dh_testdir
- dh_auto_clean
- dh_clean
-}];
-$sequences{'build-indep'} = [@bd];
-$sequences{'build-arch'} = [@bd];
-if (! compat(8)) {
- # From v9, sequences take standard rules targets into account.
- $sequences{build} = [@bd_minimal, rules("build-arch"), rules("build-indep")];
- $sequences{'install-indep'} = [rules("build-indep"), @i];
- $sequences{'install-arch'} = [rules("build-arch"), @i];
- $sequences{'install'} = [rules("build"), rules("install-arch"), rules("install-indep")];
- $sequences{'binary-indep'} = [rules("install-indep"), @b];
- $sequences{'binary-arch'} = [rules("install-arch"), @ba, @b];
- $sequences{binary} = [rules("install"), rules("binary-arch"), rules("binary-indep")];
-}
-else {
- $sequences{build} = [@bd];
- $sequences{'install'} = [@{$sequences{build}}, @i];
- $sequences{'install-indep'} = [@{$sequences{'build-indep'}}, @i];
- $sequences{'install-arch'} = [@{$sequences{'build-arch'}}, @i];
- $sequences{binary} = [@{$sequences{install}}, @ba, @b];
- $sequences{'binary-indep'} = [@{$sequences{'install-indep'}}, @b];
- $sequences{'binary-arch'} = [@{$sequences{'install-arch'}}, @ba, @b];
-}
+load_sequence_addon('root-sequence', SEQUENCE_TYPE_BOTH);
-# Additional command options
-my %command_opts;
-
-# sequence addon interface
-sub _insert {
- my $offset=shift;
- my $existing=shift;
- my $new=shift;
- 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;
- }
-}
-sub insert_before {
- _insert(-1, @_);
-}
-sub insert_after {
- _insert(1, @_);
-}
-sub remove_command {
- my $command=shift;
- foreach my $sequence (keys %sequences) {
- $sequences{$sequence}=[grep { $_ ne $command } @{$sequences{$sequence}}];
- }
-
-}
-sub add_command {
- my $command=shift;
- my $sequence=shift;
- unshift @{$sequences{$sequence}}, $command;
-}
-sub add_command_options {
- my $command=shift;
- push @{$command_opts{$command}}, @_;
-}
-sub remove_command_options {
- my $command=shift;
- if (@_) {
- # Remove only specified options
- if (my $opts = $command_opts{$command}) {
- foreach my $opt (@_) {
- $opts = [ grep { $_ ne $opt } @$opts ];
- }
- $command_opts{$command} = $opts;
- }
- }
- else {
- # Clear all additional options
- delete $command_opts{$command};
- }
-}
sub list_addons {
my %addons;
for my $inc (@INC) {
- eval q{use File::Spec};
+ require File::Spec;
my $path = File::Spec->catdir($inc, "Debian/Debhelper/Sequence");
if (-d $path) {
for my $module_path (glob "$path/*.pm") {
my $name = basename($module_path);
$name =~ s/\.pm$//;
$name =~ s/_/-/g;
+ next if $name eq 'root-sequence';
$addons{$name} = 1;
}
}
@@ -524,448 +678,194 @@ sub list_addons {
exit 0;
}
-# Load addons, which can modify sequences.
-foreach my $addon (@{$dh{WITH}}) {
- 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).")";
-}
-my @sequence=optimize_sequence(@{$sequences{$sequence}});
# The list of all packages that can be acted on.
my @packages=@{$dh{DOPACKAGES}};
+my @arch_packages = getpackages("arch");
+my @indep_packages = getpackages("indep");
+my %sequence2packages = (
+ 'build-arch' => \@arch_packages,
+ 'install-arch' => \@arch_packages,
+ 'binary-arch' => \@arch_packages,
+
+ 'build-indep' => \@indep_packages,
+ 'install-indep' => \@indep_packages,
+ 'binary-indep' => \@indep_packages,
+
+ 'clean' => \@packages,
+ 'build' => \@packages,
+ 'install' => \@packages,
+ 'binary' => \@packages,
+);
+
+my $sequence_unpack_flags = 0;
-# 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;
if ($sequence eq 'build-arch' ||
$sequence eq 'install-arch' ||
$sequence eq 'binary-arch') {
- push @options, "-a";
+ push(@Debian::Debhelper::DH::SequenceState::options, "-a");
# as an optimisation, remove from the list any packages
# that are not arch dependent
- my %arch_packages = map { $_ => 1 } getpackages("arch");
- @packages = grep { $arch_packages{$_} } @packages;
+ @packages = @{$sequence2packages{$sequence}};
}
elsif ($sequence eq 'build-indep' ||
$sequence eq 'install-indep' ||
$sequence eq 'binary-indep') {
- push @options, "-i";
+ push(@Debian::Debhelper::DH::SequenceState::options, "-i");
# ditto optimisation for arch indep
- my %indep_packages = map { $_ => 1 } getpackages("indep");
- @packages = grep { $indep_packages{$_} } @packages;
-}
-while (@ARGV_orig) {
- my $opt=shift @ARGV_orig;
- if ($opt =~ /^--?(after|until|before|with|without)$/) {
- shift @ARGV_orig;
- next;
- }
- elsif ($opt =~ /^--?(no-act|remaining|(after|until|before|with|without)=)/) {
- next;
- }
- elsif ($opt=~/^-/) {
- push @options, "-O".$opt;
- $user_specified_options=1
- unless $opt =~ /^--(parallel|buildsystem|sourcedirectory|builddirectory|)/;
- }
- elsif (@options) {
- $user_specified_options=1;
- if ($options[$#options]=~/^-O--/) {
- $options[$#options].="=".$opt;
- }
- else {
- $options[$#options].=$opt;
- }
- }
- else {
- error "Unknown parameter: $opt";
- }
-}
-
-# Figure out at what point in the sequence to start for each package.
-my %logged;
-my %startpoint;
-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}, @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($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..$#sequence) {
- if ($command eq $sequence[$i]) {
- $startpoint{$package}=$i+1;
- last COMMAND;
- }
- }
- }
- }
+ @packages = @{$sequence2packages{$sequence}};
}
-# Figure out what point in the sequence to go to.
-my $stoppoint=$#sequence;
-if ($dh{UNTIL}) {
- $stoppoint=command_pos($dh{UNTIL}, @sequence);
-}
-elsif ($dh{BEFORE}) {
- $stoppoint=command_pos($dh{BEFORE}, @sequence) - 1;
+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;
}
-# Now run the commands in the sequence.
-foreach my $i (0..$stoppoint) {
- my $command=$sequence[$i];
-
- # Figure out which packages need to run this command.
- my @todo;
- my @opts=@options;
- foreach my $package (@packages) {
- if ($startpoint{$package} > $i ||
- $logged{$package}{$sequence[$i]}) {
- push @opts, "-N$package";
- }
- else {
- push @todo, $package;
- }
- }
- next unless @todo;
-
- my $rules_target = rules_target($command);
- if (defined $rules_target) {
- # Don't pass DH_ environment variables, since this is
- # a fresh invocation of debian/rules and any sub-dh commands.
- delete $ENV{DH_INTERNAL_OPTIONS};
- delete $ENV{DH_INTERNAL_OVERRIDE};
- run("debian/rules", $rules_target);
- 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
- # makes little sense.)
- my @oldtodo=@todo;
- foreach my $override_type (undef, "arch", "indep") {
- @todo = run_override($override_type, $command, \@todo, @opts);
- }
- 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;
- }
+@addons = compute_selected_addons($sequence, @addon_requests);
- # No need to run the command for any packages handled by the
- # override targets.
- my %todo=map { $_ => 1 } @todo;
- foreach my $package (@oldtodo) {
- if (! $todo{$package}) {
- push @opts, "-N$package";
+# Load addons, which can modify sequences.
+foreach my $addon (@addons) {
+ my $addon_name = $addon->{'name'};
+ my $addon_type = $addon->{'addon-type'};
+ load_sequence_addon($addon_name, $addon_type);
+}
+
+if (%Debian::Debhelper::DH::SequenceState::commands_added_by_addon) {
+ while (my ($cmd, $addon) = each(%Debian::Debhelper::DH::SequenceState::commands_added_by_addon)) {
+ my $addon_type = $addon->{'addon-type'};
+ if ($addon_type eq 'indep') {
+ unshift(@{$Debian::Debhelper::DH::SequenceState::command_opts{$cmd}}, '-i');
+ } elsif ($addon_type eq 'arch') {
+ unshift(@{$Debian::Debhelper::DH::SequenceState::command_opts{$cmd}}, '-a');
}
}
-
- run($command, @opts);
}
-sub run {
- my $command=shift;
- my @options=@_;
- # Include additional command options if any
- unshift @options, @{$command_opts{$command}}
- if exists $command_opts{$command};
-
- # 3 space indent lines the command being run up under the
- # sequence name after "dh ".
- print " ".escape_shell($command, @options)."\n";
-
- return if $dh{NO_ACT};
-
- my $ret=system($command, @options);
- if ($ret >> 8 != 0) {
- exit $ret >> 8;
- }
- elsif ($ret) {
- exit 1;
- }
+if (! exists($Debian::Debhelper::DH::SequenceState::sequences{$sequence})) {
+ error("Unknown sequence $sequence (choose from: ".
+ join(" ", sort(keys(%Debian::Debhelper::DH::SequenceState::sequences))).")");
}
-# Tries to run an override target for a command. Returns the list of
-# packages that it was unable to run an override target for.
-sub run_override {
- my $override_type=shift; # arch, indep, or undef
- my $command=shift;
- my @packages=@{shift()};
- my @options=@_;
-
- my $override="override_$command".
- (defined $override_type ? "-".$override_type : "");
-
- # Check which packages are of the right architecture for the
- # override_type.
- my (@todo, @rest);
- if (defined $override_type) {
- foreach my $package (@packages) {
- my $isall=package_arch($package) eq 'all';
- if (($override_type eq 'indep' && $isall) ||
- ($override_type eq 'arch' && !$isall)) {
- push @todo, $package;
- }
- else {
- push @rest, $package;
- push @options, "-N$package";
- }
- }
- }
- else {
- @todo=@packages;
- }
-
- my $has_explicit_target = rules_explicit_target($override);
- return @packages unless defined $has_explicit_target; # no such override
- return @rest if ! $has_explicit_target; # has empty override
- return @rest unless @todo; # has override, but no packages to act on
+parse_dh_cmd_options(@ARGV_orig);
- if (defined $override_type) {
- # Ensure appropriate -a or -i option is passed when running
- # an arch-specific override target.
- my $opt=$override_type eq "arch" ? "-a" : "-i";
- push @options, $opt unless grep { $_ eq $opt } @options;
- }
+_hoist_profile_into_dbo('nodoc');
+_hoist_profile_into_dbo('nocheck');
- # This passes the options through to commands called
- # inside the target.
- $ENV{DH_INTERNAL_OPTIONS}=join("\x1e", @options);
- $ENV{DH_INTERNAL_OVERRIDE}=$command;
- run("debian/rules", $override);
- delete $ENV{DH_INTERNAL_OPTIONS};
- delete $ENV{DH_INTERNAL_OVERRIDE};
-
- # Update log for overridden command now that it has
- # finished successfully.
- # (But avoid logging for dh_clean since it removes
- # the log earlier.)
- if (! $dh{NO_ACT} && $command ne 'dh_clean') {
- write_log($command, @todo);
- commit_override_log(@todo);
+if (is_cross_compiling() && !get_buildoption('nocheck') && !get_buildoption('crossbuildcanrunhostbinaries')) {
+ warning('Running tests during cross-builds is not supported in the general case (except for special cases or by');
+ warning('using emulation)');
+ warning('If the build fails, please consider rebuilding with DEB_BUILD_OPTIONS=nocheck.');
+ if (!is_build_profile_active('cross')) {
+ warning('Additionally, you might have to set the "cross" profile. For dpkg-buildpackage, you do this by');
+ warning('passing the -Pcross option. Check the documentation of your build tool for how to set');
+ warning('DEB_BUILD_PROFILES if you use another build tool that does not auto-configure cross-building for you');
}
-
- return @rest;
+ warning('If you have setup the relevant support for running cross-compiled binaries and want to silence this');
+ warning('warning, please use DEB_BUILD_OPTIONS=crossbuildcanrunhostbinaries')
}
-sub optimize_sequence {
- my @sequence;
- my %seen;
- my $add=sub {
- # commands can appear multiple times when sequences are
- # inlined together; only the first should be needed
- my $command=shift;
- if (! $seen{$command}) {
- $seen{$command}=1;
- push @sequence, $command;
- }
- };
- foreach my $command (@_) {
- my $rules_target=rules_target($command);
- if (defined $rules_target &&
- ! defined rules_explicit_target($rules_target)) {
- # inline the sequence for this implicit target
- $add->($_) foreach optimize_sequence(@{$sequences{$rules_target}});
- }
- else {
- $add->($command);
+# Figure out at what point in the sequence to start for each package.
+my (%logged, %startpoint, $completed_sequences);
+
+$completed_sequences = _check_for_completed_sequences(\%sequence2packages);
+
+# In compat <= 8, the sequences are always inlined (those versions do not
+# recurse into debian/rules anyway). In compat 9+, we never inline an
+# existing rules target.
+my ($rules_targets, $full_sequence) = unpack_sequence(\%Debian::Debhelper::DH::SequenceState::sequences,
+ $sequence,
+ (!compat(8) ? 0 : 1),
+ $completed_sequences,
+ $sequence_unpack_flags,
+ );
+check_for_obsolete_commands($full_sequence);
+
+%startpoint = compute_starting_point_in_sequences(\@packages, $full_sequence, \%logged);
+
+for my $rules_command (@{$rules_targets}) {
+ my $rules_target = extract_rules_target_name($rules_command)
+ // error("Internal error: $rules_command was not a rules target!?");
+ # Don't pass DH_ environment variables, since this is
+ # a fresh invocation of debian/rules and any sub-dh commands.
+ delete($ENV{DH_INTERNAL_OPTIONS});
+ delete($ENV{DH_INTERNAL_OVERRIDE});
+ run_sequence_command_and_exit_on_failure("debian/rules", $rules_target);
+ my $override_packages = $sequence2packages{$rules_target} // \@packages;
+ for my $package (@{$override_packages}) {
+ my (undef, $seq) = unpack_sequence(\%Debian::Debhelper::DH::SequenceState::sequences, $rules_target, 1);
+ COMMAND: for my $c (reverse(@{$seq})) {
+ for my $j (0 .. $#{$full_sequence}) {
+ if ($c eq $full_sequence->[$j]) {
+ # Unfortunately, we do not guarantee any order
+ # between the run targets. Assuming e.g.
+ # "install-arch" and "build" are opaque targets
+ # then we could process "install-arch" first and
+ # then "build". In this case, it is important
+ # that we do not "reset" the starting point for
+ # "arch" packages. Otherwise, we might repeat
+ # part of the "install-arch" sequence when we
+ # should not.
+ $startpoint{$package} = $j + 1 if $j + 1 > $startpoint{$package};
+ last COMMAND;
+ }
+ }
}
}
- return @sequence;
}
-sub rules_target {
- my $command=shift;
- if ($command =~ /^debian\/rules\s+(.*)/) {
- return $1
- }
- else {
- return undef;
- }
-}
+run_through_command_sequence($full_sequence, \%startpoint, \%logged,
+ \@Debian::Debhelper::DH::SequenceState::options,
+ \@packages, \@arch_packages, \@indep_packages);
-sub rules {
- return "debian/rules ".join(" ", @_);
-}
-{
-my %targets;
-my $rules_parsed;
-
-sub rules_explicit_target {
- # Checks if a specified target exists as an explicit target
- # in debian/rules.
- # undef is returned if target does not exist, 0 if target is noop
- # and 1 if target has dependencies or executes commands.
- my $target=shift;
-
- if (! $rules_parsed) {
- my $processing_targets = 0;
- my $not_a_target = 0;
- my $current_target;
- open(MAKE, "LC_ALL=C make -Rrnpsf debian/rules $dummy_target 2>/dev/null |");
- while (<MAKE>) {
- if ($processing_targets) {
- if (/^# Not a target:/) {
- $not_a_target = 1;
- }
- else {
- if (!$not_a_target && /^([^#:]+)::?\s*(.*)$/) {
- # Target is defined. NOTE: if it is a dependency of
- # .PHONY it will be defined too but that's ok.
- # $2 contains target dependencies if any.
- $current_target = $1;
- $targets{$current_target} = ($2) ? 1 : 0;
- }
- else {
- if (defined $current_target) {
- if (/^#/) {
- # Check if target has commands to execute
- if (/^#\s*(commands|recipe) to execute/) {
- $targets{$current_target} = 1;
- }
- }
- else {
- # Target parsed.
- $current_target = undef;
- }
- }
- }
- # "Not a target:" is always followed by
- # a target name, so resetting this one
- # here is safe.
- $not_a_target = 0;
- }
+sub _check_for_completed_sequences {
+ my ($sequence2packages) = @_;
+ my (%completed, %stamp_file_content);
+ if ( -f BUILD_STAMP_FILE and not compat(9)) {
+ open(my $fd, '<', BUILD_STAMP_FILE) or error("open(${\BUILD_STAMP_FILE}, ro) failed: $!");
+ while (my $line = <$fd>) {
+ chomp($line);
+ $stamp_file_content{$line} = 1;
+ }
+ close($fd);
+ my $build_indep_target_done = 1;
+ my $build_arch_target_done = 1;
+ for my $pkg (@{$sequence2packages->{'build-arch'}}) {
+ if (not $stamp_file_content{$pkg}) {
+ $build_arch_target_done = 0;
+ last;
}
- elsif (/^# Files$/) {
- $processing_targets = 1;
+ }
+ for my $pkg (@{$sequence2packages->{'build-indep'}}) {
+ if (not $stamp_file_content{$pkg}) {
+ $build_indep_target_done = 0;
+ last;
}
}
- close MAKE;
- $rules_parsed = 1;
+ $completed{'build-arch'} = 1 if $build_arch_target_done;
+ $completed{'build-indep'} = 1 if $build_indep_target_done;
+ $completed{'build'} = 1 if $build_indep_target_done and $build_arch_target_done;
}
-
- return $targets{$target};
+ return \%completed;
}
-}
-sub warn_deprecated {
+sub reject_obsolete_params {
foreach my $deprecated ('until', 'after', 'before', 'remaining') {
if (defined $dh{uc $deprecated}) {
- warning("The --$deprecated option is deprecated. Use override targets instead.");
+ error("The --$deprecated option is not supported any longer (#932537). Use override targets instead.");
}
}
}
-sub command_pos {
- my $command=shift;
- my @sequence=@_;
-
- foreach my $i (0..$#sequence) {
- if ($command eq $sequence[$i]) {
- return $i;
- }
- }
-
- 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=shift;
- my @packages=@_;
-
- return 0 if $user_specified_options ||
- (exists $ENV{DH_OPTIONS} && length $ENV{DH_OPTIONS});
-
- if (! defined $skipinfo{$command}) {
- $skipinfo{$command}=[extract_skipinfo($command)];
- }
- my @skipinfo=@{$skipinfo{$command}};
- return 0 unless @skipinfo;
-
- foreach my $package (@packages) {
- foreach my $skipinfo (@skipinfo) {
- if ($skipinfo=~/^tmp\((.*)\)$/) {
- my $need=$1;
- my $tmp=tmpdir($package);
- return 0 if -e "$tmp/$need";
- }
- elsif (pkgfile($package, $skipinfo) ne '') {
- return 0;
- }
- }
- }
- return 1;
-}
-
-sub extract_skipinfo {
- my $command=shift;
-
- foreach my $dir (split (':', $ENV{PATH})) {
- if (open (my $h, "<", "$dir/$command")) {
- while (<$h>) {
- if (m/PROMISE: DH NOOP WITHOUT\s+(.*)/) {
- close $h;
- return split(' ', $1);
- }
- }
- close $h;
- return ();
- }
+sub _hoist_profile_into_dbo {
+ my ($name) = @_;
+ if (is_build_profile_active($name) && !get_buildoption($name)) {
+ $ENV{'DEB_BUILD_OPTIONS'} //= '';
+ $ENV{'DEB_BUILD_OPTIONS'} .= ' ' . $name;
+ warning("Copying ${name} into DEB_BUILD_OPTIONS: It was in DEB_BUILD_PROFILES but not in DEB_BUILD_OPTIONS");
}
}
diff --git a/dh_assistant b/dh_assistant
new file mode 100755
index 00000000..27b87035
--- /dev/null
+++ b/dh_assistant
@@ -0,0 +1,576 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+dh_assistant - tool for supporting debhelper tools and provide introspection
+
+=cut
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+use JSON::PP ();
+
+=head1 SYNOPSIS
+
+B<dh_assistant> B<I<command>> [S<I<additional options>>]
+
+=head1 DESCRIPTION
+
+B<dh_assistant> is a debhelper program that provides introspection into the
+debhelper stack to assist third-party tools (e.g. linters) or third-party
+debhelper implementations not using the debhelper script API (e.g., because
+they are not written in Perl).
+
+=head1 COMMANDS
+
+The B<dh_assistant> supports the following commands:
+
+=head2 active-compat-level (JSON)
+
+B<Synopsis>: B<dh_assistant> B<active-compat-level>
+
+Outputs information about which compat level the package is using.
+
+For packages without valid debhelper compatibility information (whether missing, ambiguous,
+not supported or simply invalid), this command operates on a "best effort" basis and may abort
+when error instead of providing data.
+
+The returned JSON dictionary contains the following key-value pairs:
+
+=over 4
+
+=item active-compat-level
+
+The compat level that debhelper will be using. This is the same as B<DH_COMPAT> when present
+or else B<declared-compat-level>. This can be B<null> when no compat level can be detected.
+
+=item declared-compat-level
+
+The compat level that the package declared as its default compat level. This can be B<null>
+if the package does not declare any compat level at all.
+
+=item declared-compat-level-source
+
+Defines how the compat level was declared. This is null (for the same reason as
+B<declared-compat-level>) or one of:
+
+=over 4
+
+=item debian/compat
+
+The compatibility level was declared in the first line F<debian/compat> file.
+
+=item Build-Depends: debhelper-compat (= <C>)
+
+The compatibility was declared in the F<debian/control> via a build dependency on the
+B<< debhelper-compat (= <C>) >> package in the B<Build-Depends> field. In the output,
+the B<C> is replaced by the actual compatibility level. A full example value would be:
+
+ Build-Depends: debhelper-compat (= 13)
+
+=back
+
+=back
+
+=head2 supported-compat-levels (JSON, CRFA)
+
+B<Synopsis>: B<dh_assistant> B<supported-compat-levels>
+
+Outputs information about which compat levels, this build of debhelper knows
+about.
+
+This command accepts no options or arguments.
+
+=head2 which-build-system (JSON)
+
+B<Synopsis>: B<dh_assistant> B<which-build-system> [S<I<build step>>] [S<I<build system options>>]
+
+Output information about which build system would be used for a particular build step. The build step
+must be one of B<configure>, B<build>, B<test>, B<install> or B<clean> and must be the first argument
+after B<which-build-system> when provided. If omitted, it defaults to B<configure> as it is the
+most reliable step to use auto-detection on in a clean source directory. Note that build steps do not
+always agree when using auto-detection - particularly if the B<configure> step has not been run.
+
+Additionally, the B<clean> step can also provide "surprising" results for builds that rely on
+a separate build directory. In such cases, debhelper will return the first build system that
+uses a separate build directory rather than the one build system that B<configure> would detect.
+This is generally a cosmetic issue as both build systems are all basically a glorified
+B<rm -fr builddir> and more precise detection is functionally irrelevant as far as debhelper is
+concerned.
+
+The option accepts all debhelper build system arguments - i.e., options you can pass to all of
+the B<dh_auto_*> commands plus (for the B<install> step) the B<--destdir> option. These options
+affect the output and auto-detection in various ways. Passing B<-S> or B<--buildsystem>
+overrides the auto-detection (as it does for B<dh_auto_*>) but it still provides introspection
+into the chosen build system.
+
+Things that are useful to know about the output:
+
+=over 4
+
+=item *
+
+The key B<build-system> is the build system that would be used by debhelper for the given
+step (with the given options, debhelper compat level, environment variables and the given
+working directory). When B<-S> and B<--buildsystem> are omitted, this is the result of
+debhelper's auto-detection logic.
+
+The value is valid as a parameter for the B<--buildsystem> option.
+
+The special value B<none> is used to denote that no build system would be used. This value
+is not present in B<--list> parameter for the B<dh_auto_*> commands, but since debhelper/12.9
+the value is accepted for the B<--buildsystem> option.
+
+Note that auto-detection is subject to limitations in regards to third-party build systems.
+While debhelper I<does> support auto-detecting some third-party build systems, they must be
+installed for the detection to work. If they are not installed, the detection logic silently
+skips that build system (often resulting in B<build-system> being B<none> in the output).
+
+=item *
+
+The B<build-directory> and B<buildpath> values serve different but related purposes. The
+B<build-directory> generally mirrors the B<--builddirectory> option where as B<buildpath>
+is the output directory that debhelper will use. Therefore the former will often be null
+when B<--builddirectory> has not been passed while the latter will generally not be null
+(except when B<build-system> is B<none>).
+
+=item *
+
+The B<dest-directory> (B<--destdir>) is undefined for all build steps except the B<install> build
+step (will be output as null or absent). For the same reason, B<--destdir> should only be
+passed for B<install> build step.
+
+Note that if not specified, this value is currently null by default.
+
+=item *
+
+The B<parallel> value is subject to B<DEB_BUILD_OPTIONS>. Notably, if that does not include
+the B<parallel> keyword, then B<parallel> field in the output will always be 1.
+
+=item *
+
+Most fields in the output I<can> be null. Particular if there is no build system is detected
+(or when B<--buildsystem=none>). Additionally, many of the fields can be null even if there
+is a build system if the build system does not use/set/define that variable.
+
+=back
+
+=head2 detect-hook-targets (JSON)
+
+B<Synopsis>: B<dh_assistant> B<detect-hook-targets>
+
+Detects possible override targets and hook targets that L<dh(1)> might use (provided that the
+relevant command is in the sequence).
+
+The detection is based on scanning the rules file for any target that I<might look> like a hook
+target and can therefore list targets that are in fact not hook targets (or are but will never
+be triggered for other reasons).
+
+The detection uses a similar logic for scanning the rules file and is therefore subject to
+makefile conditionals (i.e., the truth value of makefile conditionals can change whether a hook
+target is visible in the output of this command). In theory, you would have to setup up the
+environment to look like it would during a build for getting the most accurate output. Though,
+a lot of packages will not have conditional hook targets, so the "out of the box" behaviour
+will work well in most cases.
+
+The output looks something like this:
+
+ {
+ "commands-not-in-path": [
+ "dh_foo"
+ ],
+ "hook-targets": [
+ {
+ "command": "dh_strip_nondeterminism",
+ "is-empty": true,
+ "package-section-param": null,
+ "target-name": "override_dh_strip_nondeterminism"
+ },
+ {
+ "command": "dh_foo",
+ "is-empty": false,
+ "package-section-param": "-a",
+ "target-name": "override_dh_foo-arch"
+ }
+ ]
+ }
+
+In more details:
+
+=over 4
+
+=item commands-not-in-path
+
+This attribute lists all the commands related to hook targets, which B<dh_assistant> could B<not>
+find in PATH. These are usually caused by either the command not being installed on the system
+where B<dh_assistant> is run or by the command not existing at all.
+
+If you are using this command to verify an hook target is present, please double check that the
+command is spelled correctly.
+
+=item hook-targets
+
+List over hook targets found along with additional information about them.
+
+=over 4
+
+=item command
+
+Attribute that lists which command this hook target is related too.
+
+=item target-name
+
+The actual target name detected in the F<debian/rules> file.
+
+=item is-empty
+
+A boolean that determines whether L<dh(1)> will optimize the hook out at runtime (see "Completely empty targets" in
+L<dh(1)>). Note that empty override targets will still cause L<dh(1)> to skip the original command.
+
+=item package-section-param
+
+This attribute defines what package selection parameter should be passed to B<dh_*> commands used
+in the hook target. It can either be B<-a>, B<-i> or (if no parameter should be used) C<null>.
+
+=back
+
+=back
+
+This command accepts no options or arguments.
+
+=head2 log-installed-files
+
+B<Synopsis>: B<dh_assistant> B<< -pI<pkg> >> I<[--on-behalf-of-cmd=dh_foo]> B<path ...>
+
+Mark one or more paths as installed for a given package. This is useful for telling L<dh_missing(1)> that the
+paths have been installed manually.
+
+The B<--on-behalf-of-cmd> option can be used by third-party tools to have B<dh_assistant> list them as the
+installer of the provided paths. The convention is to use the basename of the tool itself as its name
+(e.g. B<dh_install>).
+
+Please keep in mind that:
+
+=over 4
+
+=item *
+
+B<No> glob or substitution expansion is done by B<dh_assistant> on the provided paths. If you want to use globs,
+have the shell perform the expansion first.
+
+=item *
+
+Paths must be given as relative to the source root directory (e.g., F<debian/tmp/...>)
+
+=item *
+
+You I<can> provide a directory. If you do, the directory and anything recursively below it will be considered
+as installed. Note that it is fine to provide the directory even if paths inside of it has been excluded as long
+as the directory is fully "covered".
+
+=item *
+
+Do not worry about providing the same filename twice in different invocations to B<dh_assistant> due to B<-arch> /
+B<-indep> overrides. While it will be recorded multiple internally, L<dh_missing(1)> will deduplicate when it
+parses the records.
+
+=back
+
+Note this command only I<marks> paths as installed. It does not actually install them - the caller should ensure
+that the paths are in fact handled (or installed).
+
+=head1 COMMAND TAGS
+
+Most commands have one or more of the following "tags" associated with them. Their
+meaning is defined here.
+
+=over 4
+
+=item JSON
+
+The command provides JSON output. See L</JSON OUTPUT> for details.
+
+=item CRFA
+
+I<Mnemonic "Can be Run From Anywhere">
+
+Most commands must be run inside a source package root directory (a directory
+containing F<debian/control>) because debhelper will need the package metadata
+to lookup the information. Any command with this tag are exempt from this
+requirement and is expected to work regardless of where they are run.
+
+=back
+
+=head1 JSON OUTPUT
+
+Most commands uses JSON format as output. Consumers need to be aware that:
+
+=over 4
+
+=item *
+
+Additional keys may be added at any time. For backwards compatibility, the absence
+of a key should in general be interpreted as null unless another default is documented
+or would be "obvious" for that case.
+
+=item *
+
+Many keys can be null/undefined in special cases. As an example, some information may
+be unavailable when this command is run directly from the debhelper source (git repository).
+
+=back
+
+The output will be prettified when stdout is detected as a terminal. If
+you need to pipe the output to a pager/file (etc.) and still want it
+prettified, please use an external JSON formatter. An example of this:
+
+ dh_assistant supported-compat-levels | json_pp | less
+
+=cut
+
+my $JSON_ENCODER = JSON::PP->new->utf8;
+
+# Prettify if we think the user is reading this.
+$JSON_ENCODER = $JSON_ENCODER->pretty->space_before(0)->canonical if -t STDOUT;
+
+# We never use the log file for this tool
+inhibit_log();
+
+my %COMMANDS = (
+ 'help' => \&_do_help,
+ '-h' => \&_do_help,
+ '--help' => \&_do_help,
+ 'active-compat-level' => \&active_compat_level,
+ 'supported-compat-levels' => \&supported_compat_levels,
+ 'which-build-system' => \&which_build_system,
+ 'detect-hook-targets' => \&detect_hook_targets,
+ 'log-installed-files' => \&log_installed_files_cmd,
+);
+
+my ($COMMAND) = shift(@ARGV);
+for my $arg (@ARGV) {
+ if ($arg eq '--help' or $arg eq '-h') {
+ $COMMAND = 'help';
+ last;
+ }
+}
+
+
+sub _do_help {
+ my $me = basename($0);
+ print <<"EOF";
+${me}: Tool for supporting debhelper tools and provide introspection
+
+Usage: ${me} <command> [... addition arguments or options ...]
+
+The following commands are available:
+ help Show this help
+ active-compat-level Output information about which compat level is declared/active (JSON)
+ supported-compat-levels Output information about supported compat levels (JSON, CRFA)
+ which-build-system Determine which build system will be used (JSON)
+ detect-hook-targets Detect and output possible override and hook targets (JSON)
+ log-installed-files Mark one or more paths as "installed" so dh_missing is aware (BLD)
+
+Command tags:
+
+ * JSON The command provides JSON output.
+ * CRFA Command does not need to be run from a package source directory
+ (Mnemonic "Can be Run From Anywhere")
+ * BLD The command is intended to be used as a part of a package build.
+ It may leave artifacts behind that will need a dh_clean invocation to remove.
+
+
+Its primary purpose is to provide support for third-party debhelper implementations
+not using the debhelper script API or provide introspection for third-party tools
+(e.g., linters). Unless stated otherwise, commands must be run inside a source
+package root directory - that is, the directory containing "debian/control".
+
+Most commands use JSON output. When stdout is a TTY, the JSON will be prettified.
+See the manpage if you want formatting in other cases.
+EOF
+ return;
+}
+
+sub _assert_debian_control_exists {
+ return if -f 'debian/control';
+ require Cwd;
+ my $cwd = Cwd::getcwd();
+ warning("$cwd does not look like a package source directory (expected $cwd/debian/control to exist and be a file)");
+ error("$COMMAND must be run inside a package source directory");
+ return;
+}
+
+sub _output {
+ my ($kvpairs) = @_;
+ print $JSON_ENCODER->encode($kvpairs);
+ return;
+}
+
+sub active_compat_level {
+ if (@ARGV) {
+ error("$COMMAND: No arguments supported (please remove everything after the command)");
+ }
+ _assert_debian_control_exists();
+ my ($active_compat, $declared_compat, $declared_compat_source) = Debian::Debhelper::Dh_Lib::get_compat_info();
+ if (not defined($declared_compat_source)) {
+ $declared_compat = undef;
+ $active_compat = undef if not exists($ENV{DH_COMPAT});
+ }
+ my %compat_info = (
+ 'active-compat-level' => $active_compat,
+ 'declared-compat-level' => $declared_compat,
+ 'declared-compat-level-source' => $declared_compat_source,
+ );
+ _output(\%compat_info);
+ return;
+}
+
+sub supported_compat_levels {
+ if (@ARGV) {
+ error("$COMMAND: No arguments supported (please remove everything after the command)");
+ }
+ my %compat_levels = (
+ 'MIN_COMPAT_LEVEL' => Debian::Debhelper::Dh_Lib::MIN_COMPAT_LEVEL,
+ 'LOWEST_NON_DEPRECATED_COMPAT_LEVEL' => Debian::Debhelper::Dh_Lib::LOWEST_NON_DEPRECATED_COMPAT_LEVEL,
+ 'LOWEST_VIRTUAL_DEBHELPER_COMPAT_LEVEL' => Debian::Debhelper::Dh_Lib::LOWEST_VIRTUAL_DEBHELPER_COMPAT_LEVEL,
+ 'MAX_COMPAT_LEVEL' => Debian::Debhelper::Dh_Lib::MAX_COMPAT_LEVEL,
+ 'HIGHEST_STABLE_COMPAT_LEVEL' => Debian::Debhelper::Dh_Lib::HIGHEST_STABLE_COMPAT_LEVEL,
+ 'MIN_COMPAT_LEVEL_NOT_SCHEDULED_FOR_REMOVAL' => Debian::Debhelper::Dh_Lib::MIN_COMPAT_LEVEL_NOT_SCHEDULED_FOR_REMOVAL,
+ );
+ _output(\%compat_levels);
+ return;
+}
+
+sub which_build_system {
+ my ($opt_buildsys, $destdir);
+ my $first_argv = @ARGV ? $ARGV[0] : '';
+ my %options = (
+ # Emulate dh_auto_install's --destdir
+ "destdir=s" => \$destdir,
+ );
+ _assert_debian_control_exists();
+ # We never want the build system initialization to modify anything (e.g. create "HOME")
+ $dh{NO_ACT} = 1;
+ require Debian::Debhelper::Dh_Buildsystems;
+ Debian::Debhelper::Dh_Buildsystems::buildsystems_init(options => \%options);
+ my @non_options = grep { !m/^-/ } @ARGV;
+ my $step = @non_options ? $non_options[0] : 'configure';
+ if (@non_options && $first_argv =~ m/^-/) {
+ error("$COMMAND: If the build step is provided, it must be before any options");
+ }
+ if (@non_options > 1) {
+ error("$COMMAND: At most one positional argument is supported");
+ }
+ if (defined($destdir) and $step ne 'install') {
+ warning("$COMMAND: --destdir is not defined for build step \"$step\". Ignoring option")
+ }
+ {
+ no warnings qw(once);
+ $opt_buildsys = $Debian::Debhelper::Dh_Buildsystems::opt_buildsys;
+ }
+ my $build_system = Debian::Debhelper::Dh_Buildsystems::load_buildsystem($opt_buildsys, $step);
+ my %result = (
+ 'build-system' => defined($build_system) ? $build_system->NAME : 'none',
+ 'for-build-step' => $step,
+ 'source-directory' => defined($build_system) ? $build_system->get_sourcedir : undef,
+ 'build-directory' => defined($build_system) ? $build_system->get_builddir : undef,
+ 'dest-directory' => defined($build_system) ? $destdir : undef,
+ 'buildpath' => defined($build_system) ? $build_system->get_buildpath : undef,
+ 'parallel' => defined($build_system) ? $build_system->get_parallel : undef,
+ 'upstream-arguments' => $dh{U_PARAMS},
+ );
+ _output(\%result);
+ return;
+}
+
+sub _in_path {
+ my ($cmd) = @_;
+ for my $dir (split(':', $ENV{PATH})) {
+ return 1 if -x "${dir}/${cmd}";
+ }
+ return 0;
+}
+
+sub detect_hook_targets {
+ if (@ARGV) {
+ error("$COMMAND: No arguments supported (please remove everything after the command)");
+ }
+ _assert_debian_control_exists();
+ require Debian::Debhelper::SequencerUtil;
+ Debian::Debhelper::SequencerUtil::rules_explicit_target('does-not-matter');
+ my ($explicit_targets, %result, @targets, @unverifiable_commands, %seen_cmds);
+ {
+ no warnings qw(once);
+ $explicit_targets = \%Debian::Debhelper::SequencerUtil::EXPLICIT_TARGETS;
+ }
+ while (my ($target, $non_empty) = each(%{$explicit_targets})) {
+ next if $target !~ m{^(?:execute_before_|execute_after_|override_)(\S+?)(-indep|-arch)?$};
+ my ($command, $archness) = ($1, $2);
+ my $param;
+ if ($archness) {
+ $param = ($archness eq '-arch') ? '-a' : '-i' ;
+ }
+ my $target_info = {
+ 'target-name' => $target,
+ 'command' => $command,
+ 'package-section-param' => $param,
+ 'is-empty' => $non_empty ? JSON::PP::false : JSON::PP::true,
+ };
+ push(@targets, $target_info);
+ push(@unverifiable_commands, $command) if not exists($seen_cmds{$command}) and not _in_path($command);
+ $seen_cmds{$command} = 1;
+ }
+ $result{'hook-targets'} = \@targets;
+ $result{'commands-not-in-path'} = \@unverifiable_commands;
+ _output(\%result);
+}
+
+sub log_installed_files_cmd {
+ my $on_behalf_of = 'manually-via-dh_assistant';
+ init(
+ options => {
+ 'on-behalf-of-cmd=s' => \$on_behalf_of,
+ },
+ inhibit_log => 1,
+ );
+ if (index($on_behalf_of, '/') >= 0) {
+ error('The value for --on-behalf-of-cmd must not contain slashes');
+ }
+ if (@{$dh{DOPACKAGES}} != 1) {
+ error('The log-installed-files command must act on exactly one package (use -p<pkg> to define which)');
+ }
+ my $package = $dh{DOPACKAGES}[0];
+ for my $arg (@ARGV) {
+ $arg =~ tr:/:/:s;
+ if (! -e $arg) {
+ warning("The path ${arg} does not exist - double check it is correct. Note: it will recorded anyway.");
+ }
+ }
+ log_installed_files({
+ 'package' => $package,
+ 'tool_name' => $on_behalf_of,
+ }, @ARGV);
+}
+
+if (not defined($COMMAND)) {
+ error('Usage: ' . basename($0) . ' <command>');
+}
+my $handler = $COMMANDS{$COMMAND};
+if (not defined($handler)) {
+ warning("Arguments/options must not be the first argument (except for --help)")
+ if $COMMAND =~ m/^-/;
+ error("Unknown command: $COMMAND");
+}
+
+$handler->();
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=cut
+
+1;
diff --git a/dh_auto_build b/dh_auto_build
index bbb5e851..6321e191 100755
--- a/dh_auto_build
+++ b/dh_auto_build
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,12 @@ dh_auto_build - automatically builds a package
=cut
use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
use Debian::Debhelper::Dh_Buildsystems;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_auto_build> [S<I<build system options>>] [S<I<debhelper options>>] [S<B<--> I<params>>]
@@ -41,6 +45,8 @@ B<dh_auto_build> usually passes.
=cut
+# PROMISE: DH NOOP WITHOUT cli-options(BUILDSYSTEM) buildsystem(build)
+
buildsystems_init();
buildsystems_do();
diff --git a/dh_auto_clean b/dh_auto_clean
index 3abb5f3e..828f2efb 100755
--- a/dh_auto_clean
+++ b/dh_auto_clean
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,12 @@ dh_auto_clean - automatically cleans up after a build
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
use Debian::Debhelper::Dh_Buildsystems;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_auto_clean> [S<I<build system options>>] [S<I<debhelper options>>] [S<B<--> I<params>>]
@@ -43,6 +46,8 @@ B<dh_auto_clean> usually passes.
=cut
+# PROMISE: DH NOOP WITHOUT cli-options(BUILDSYSTEM) buildsystem(clean)
+
inhibit_log();
buildsystems_init();
buildsystems_do();
diff --git a/dh_auto_configure b/dh_auto_configure
index e1ca7af2..5cdcfa06 100755
--- a/dh_auto_configure
+++ b/dh_auto_configure
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,12 @@ dh_auto_configure - automatically configure a package prior to building
=cut
use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
use Debian::Debhelper::Dh_Buildsystems;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_auto_configure> [S<I<build system options>>] [S<I<debhelper options>>] [S<B<--> I<params>>]
@@ -46,6 +50,8 @@ B<dh_auto_configure> usually passes. For example:
=cut
+# PROMISE: DH NOOP WITHOUT cli-options(BUILDSYSTEM) buildsystem(configure)
+
buildsystems_init();
buildsystems_do();
diff --git a/dh_auto_install b/dh_auto_install
index ef46a3c5..420fdfd6 100755
--- a/dh_auto_install
+++ b/dh_auto_install
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,11 +7,14 @@ dh_auto_install - automatically runs make install or similar
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
use Debian::Debhelper::Dh_Buildsystems;
use File::Spec;
use Cwd;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_auto_install> [S<I<build system options>>] [S<I<debhelper options>>] [S<B<--> I<params>>]
@@ -26,11 +29,17 @@ if the environment variable is set). If there is a F<setup.py> or F<Build.PL>,
it is used. Note that the Ant build system does not support installation,
so B<dh_auto_install> will not install files built using Ant.
-Unless B<--destdir> option is specified, the files are installed into
-debian/I<package>/ if there is only one binary package. In the multiple binary
-package case, the files are instead installed into F<debian/tmp/>, and should be
-moved from there to the appropriate package build directory using
-L<dh_install(1)>.
+In compat 15 or later, B<dh_auto_install> will use F<debian/tmp> as the default
+B<--destdir> and should be moved from there to the appropriate package build
+directory using L<dh_install(1)> or similar tools. Though if the B<single-binary>
+addon for L<dh(1)> is activated, then it will pass an explicit
+B<< --destdir=debian/I<package>/ >> to B<dh_auto_install>.
+
+For earlier compat levels then unless B<--destdir> option is
+specified, the files are installed into debian/I<package>/ if there is only one
+binary package. In the multiple binary package case, the files are instead
+installed into F<debian/tmp/>, and should be moved from there to the
+appropriate package build directory using L<dh_install(1)> or similar tools.
B<DESTDIR> is used to tell make where to install the files.
If the Makefile was generated by MakeMaker from a F<Makefile.PL>, it will
@@ -68,23 +77,25 @@ buildsystems_init(options => {
"destdir=s" => \$destdir,
});
+# PROMISE: DH NOOP WITHOUT cli-options(BUILDSYSTEM) buildsystem(install)
+
# If destdir is not specified, determine it automatically
if (!$destdir) {
my @allpackages=getpackages();
- if (@allpackages > 1) {
+ if (@allpackages > 1 or not compat(14)) {
$destdir="debian/tmp";
}
else {
$destdir=tmpdir($dh{MAINPACKAGE});
}
}
-$destdir = File::Spec->rel2abs($destdir, cwd());
+$destdir = File::Spec->rel2abs($destdir, getcwd());
-foreach my $package (@{$dh{DOPACKAGES}}) {
- my $tmp=tmpdir($package);
- if (! -e $tmp) {
- doit("install","-d",$tmp);
- }
+if (compat(10)) {
+ # Ensure that all debian/<pkg> directories exist
+ install_dir(map { tmpdir($_) } @{$dh{DOPACKAGES}});
+} else {
+ install_dir($destdir);
}
buildsystems_do("install", $destdir);
diff --git a/dh_auto_test b/dh_auto_test
index 01dc5df5..05acea80 100755
--- a/dh_auto_test
+++ b/dh_auto_test
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,12 @@ dh_auto_test - automatically runs a package's test suites
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
use Debian::Debhelper::Dh_Buildsystems;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_auto_test> [S<I<build system options>>] [S<I<debhelper options>>] [S<B<--> I<params>>]
@@ -47,13 +50,11 @@ B<dh_auto_test> usually passes.
If the B<DEB_BUILD_OPTIONS> environment variable contains B<nocheck>, no
tests will be performed.
-dh_auto_test does not run the test suite when a package is being cross
-compiled.
-
=cut
-if (get_buildoption("nocheck")
- || (dpkg_architecture_value("DEB_HOST_GNU_TYPE") ne dpkg_architecture_value("DEB_BUILD_GNU_TYPE"))) {
+# PROMISE: DH NOOP WITHOUT cli-options(BUILDSYSTEM) buildsystem(test)
+
+if (get_buildoption("nocheck")) {
exit 0;
}
diff --git a/dh_bugfiles b/dh_bugfiles
index 83428f51..62229223 100755
--- a/dh_bugfiles
+++ b/dh_bugfiles
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_bugfiles - install bug reporting customization files into package build direc
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_bugfiles> [B<-A>] [S<I<debhelper options>>]
@@ -71,13 +74,14 @@ 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);
my $tmp=tmpdir($package);
- my $dir="$tmp/usr/share/bug/$package";
+ my $p_dir="${tmp}/usr/share/bug";
+ my $dir="${p_dir}/$package";
# Gather information which bug files are available for the
# package in question
@@ -95,29 +99,34 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
# If there is only a bug script to install, install it as
# usr/share/bug/$package (unless this path is a directory)
if (! -d $dir && scalar(keys(%bugfiles)) == 1 && exists $bugfiles{script}) {
- doit("install","-D","-p","-m755",$bugfiles{script},$dir);
+ install_dir($p_dir);
+ install_prog($bugfiles{script}, $dir);
}
elsif (scalar(keys(%bugfiles)) > 0) {
if (-f $dir) {
# Move usr/share/bug/$package to usr/share/bug/$package/script
- doit("mv", $dir, "${dir}.tmp");
- doit("install","-d",$dir);
- doit("mv", "${dir}.tmp", "$dir/script");
+ rename_path($dir, "${dir}.tmp");
+ install_dir($dir);
+ rename_path("${dir}.tmp", "$dir/script");
}
- elsif (! -d $dir) {
- doit("install","-d",$dir);
+ else {
+ install_dir($dir);
}
while (my ($type, $srcfile) = each(%bugfiles)) {
- doit("install","-p","-m644",$srcfile, "$dir/$type");
+ if ($type eq 'script') {
+ install_prog($srcfile, "$dir/$type");
+ } else {
+ install_file($srcfile, "$dir/$type");
+ }
}
}
# Ensure that the bug script is executable
if (-f $dir) {
- chmod 0755, $dir;
+ reset_perm_and_owner(0755, $dir);
}
elsif (-f "$dir/script") {
- chmod 0755, "$dir/script";
+ reset_perm_and_owner(0755, "$dir/script");
}
}
diff --git a/dh_builddeb b/dh_builddeb
index bf9fc27d..aca17f6d 100755
--- a/dh_builddeb
+++ b/dh_builddeb
@@ -1,4 +1,6 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
+
+=encoding UTF-8
=head1 NAME
@@ -7,20 +9,28 @@ dh_builddeb - build Debian binary packages
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_builddeb> [S<I<debhelper options>>] [B<--destdir=>I<directory>] [B<--filename=>I<name>] [S<B<--> I<params>>]
=head1 DESCRIPTION
-B<dh_builddeb> simply calls L<dpkg-deb(1)> to build a Debian package or
-packages.
+B<dh_builddeb> simply calls L<dpkg-deb(1)> to build a Debian package
+or packages. It will also build dbgsym packages when L<dh_strip(1)>
+and L<dh_gencontrol(1)> have prepared them.
It supports building multiple binary packages in parallel, when enabled by
DEB_BUILD_OPTIONS.
+When the I<Rules-Requires-Root> field is not (effectively)
+I<binary-targets>, B<dh_builddeb> will pass B<--root-owner-group> to
+L<dpkg-deb(1)>.
+
=head1 OPTIONS
=over 4
@@ -66,60 +76,102 @@ else {
$dh{FILENAME}="/$dh{FILENAME}";
}
-my $max_procs=get_buildoption("parallel") || 1;
-
-my $processes=1;
-my $exit=0;
-sub reap {
- if (wait == -1) {
- $processes=0;
+sub build_and_rename_deb {
+ my ($package, $destdir, $cmd, $rename_sub) = @_;
+ my $build_dir = "debian/.debhelper/scratch-space/build-${package}";
+ my ($dpkg_filename, $desired_filename);
+ mkdirs($build_dir);
+ doit(@${cmd}, $build_dir);
+ opendir(my $fd, $build_dir) or error("opendir($build_dir) failed: $!");
+ for my $name (readdir($fd)) {
+ next if $name eq '.' or $name eq '..';
+ if ($dpkg_filename) {
+ error("\"@{$cmd} ${build_dir}\" produced two debs: $dpkg_filename and $name");
+ }
+ $dpkg_filename = $name;
}
- else {
- $processes--;
- $exit=1 if $? != 0;
+ closedir($fd);
+ if (not defined($dpkg_filename)) {
+ error("\"@{$cmd} ${build_dir}\" did not produce *any* file but was successful!?");
}
+ local $_ = $dpkg_filename;
+ $rename_sub->();
+ $desired_filename = $_;
+ if ($desired_filename ne $dpkg_filename) {
+ print "\tRenaming $dpkg_filename to $desired_filename\n";
+ }
+ rename_path("${build_dir}/${dpkg_filename}",
+ "${destdir}/${desired_filename}");
}
-foreach my $package (@{$dh{DOPACKAGES}}) {
- my $pid=fork();
- if (! defined $pid) {
- error("fork failed! $!");
- }
- if ($pid) { # parent
- $processes++;
- reap while $processes > $max_procs;
- next;
+my @items;
+my @dpkg_options;
+push(@dpkg_options, '--root-owner-group') if not should_use_root();
+my @dbgsym_dpkg_options = ('--root-owner-group');
+
+
+for my $package (@{$dh{DOPACKAGES}}) {
+ push(@items, [$package, 0]);
+ if (not is_udeb($package)) {
+ my $dbgsym_tmpdir = dbgsym_tmpdir($package);
+ my $dbgsym_control = "${dbgsym_tmpdir}/DEBIAN/control";
+ if ( -f $dbgsym_control) {
+ # Only build the dbgsym package if it has a control file.
+ # People might have skipped dh_gencontrol.
+ push(@items, [$package, 1]);
+ } elsif (-d $dbgsym_tmpdir) {
+ warning("Not building dbgsym package for ${package} as it has no control file");
+ warning("Please use dh_gencontrol to avoid this issue");
+ }
}
+}
- # child
- my $tmp=tmpdir($package);
- if (exists $ENV{DH_ALWAYS_EXCLUDE} && length $ENV{DH_ALWAYS_EXCLUDE}) {
- if (! compat(5)) {
+on_items_in_parallel(\@items, sub {
+ foreach my $item (@_) {
+ my ($package, $dbgsym) = @{$item};
+ my $tmp=tmpdir($package);
+
+ if ($dbgsym) {
+ my $dbgsym_tmpdir = dbgsym_tmpdir($package);
+ my @cmd = ("dpkg-deb", @dbgsym_dpkg_options, @{$dh{U_PARAMS}},
+ "--build", $dbgsym_tmpdir);
+ if (DBGSYM_PACKAGE_TYPE eq DEFAULT_PACKAGE_TYPE) {
+ doit(@cmd, $dh{DESTDIR});
+ } else {
+ build_and_rename_deb($package, $dh{DESTDIR}, \@cmd,
+ sub {s/\.\Q${\DEFAULT_PACKAGE_TYPE}\E$/\.\Q${\DBGSYM_PACKAGE_TYPE}\E/g});
+ }
+ next;
+ }
+ if (exists $ENV{DH_ALWAYS_EXCLUDE} && length $ENV{DH_ALWAYS_EXCLUDE}) {
complex_doit("find $tmp $dh{EXCLUDE_FIND} | xargs rm -rf");
}
- else {
- # Old broken code here for compatibility. Does not
- # remove everything.
- complex_doit("find $tmp -name $_ | xargs rm -rf")
- foreach split(":", $ENV{DH_ALWAYS_EXCLUDE});
+ if (! is_udeb($package)) {
+ doit("dpkg-deb", @dpkg_options, @{$dh{U_PARAMS}}, "--build", $tmp, $dh{DESTDIR}.$dh{FILENAME});
}
- }
- if (! is_udeb($package)) {
- doit("dpkg-deb", @{$dh{U_PARAMS}}, "--build", $tmp, $dh{DESTDIR}.$dh{FILENAME});
- }
- else {
- my $filename=$dh{FILENAME};
- if (! $filename) {
- $filename="/".udeb_filename($package);
+ else {
+ my $filename=$dh{FILENAME};
+ my @cmd = qw(dpkg-deb -z6 -Zxz -Sextreme);
+ push(@cmd, @dpkg_options);
+ push(@cmd, @{$dh{U_PARAMS}}) if $dh{U_PARAMS};
+ push(@cmd, '--build', $tmp);
+ if (! $filename) {
+ # dpkg-gencontrol does not include "Package-Type" in the
+ # control file (see #575059, #452273) for political
+ # reasons.
+ #
+ # dh_builddeb used to guess the "correct" filename, but it
+ # fell short when dpkg-gencontrol -V was used. The best
+ # solution so far: Let dpkg-deb build the deb and
+ # have dh_builddeb fix the extension.
+ build_and_rename_deb($package, $dh{DESTDIR}, \@cmd,
+ sub { s/\.deb$/\.udeb/g });
+ } else {
+ doit(@cmd, $dh{DESTDIR}.$filename);
+ }
}
- doit("dpkg-deb", "-z1", "-Zxz", "-Sextreme",
- @{$dh{U_PARAMS}}, "--build", $tmp, $dh{DESTDIR}.$filename);
}
- exit 0;
-}
-
-reap while $processes;
-exit $exit;
+});
=head1 SEE ALSO
diff --git a/dh_clean b/dh_clean
index 85f87f21..beb67c49 100755
--- a/dh_clean
+++ b/dh_clean
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,34 +7,42 @@ dh_clean - clean up package build directories
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
-B<dh_clean> [S<I<debhelper options>>] [B<-k>] [B<-d>] [B<-X>I<item>] [S<I<file> ...>]
+B<dh_clean> [S<I<debhelper options>>] [B<-k>] [B<-d>] [B<-X>I<item>] [S<I<path> ...>]
=head1 DESCRIPTION
-B<dh_clean> is a debhelper program that is responsible for cleaning up after a
-package is built. It removes the package build directories, and removes some
-other files including F<debian/files>, and any detritus left behind by other
-debhelper commands. It also removes common files that should not appear in a
-Debian diff:
+B<dh_clean> is a debhelper program that is responsible for cleaning up. It should
+be the last step of the B<clean> target and other debhelper commands generally
+assume that B<dh_clean> will clean up after them.
+
+It removes the package build directories, and removes some other files including
+F<debian/files>, and any detritus left behind by other debhelper commands. It
+also removes common files that should not appear in a Debian diff:
#*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp
It does not run "make clean" to clean up after the build process. Use
L<dh_auto_clean(1)> to do things like that.
-B<dh_clean> should be the last debhelper command run in the
-B<clean> target in F<debian/rules>.
-
=head1 FILES
=over 4
=item F<debian/clean>
-Can list other files to be removed.
+Can list other paths to be removed.
+
+Note that directories listed in this file B<must> end with a trailing
+slash. Any content in these directories will be removed as well.
+
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
=back
@@ -46,6 +54,8 @@ Can list other files to be removed.
This is deprecated, use L<dh_prep(1)> instead.
+The option is removed in compat 12.
+
=item B<-d>, B<--dirs-only>
Only clean the package build directories, do not clean up any other files
@@ -57,65 +67,98 @@ Exclude files that contain I<item> anywhere in their filename from being
deleted, even if they would normally be deleted. You may use this option
multiple times to build up a list of things to exclude.
-=item I<file> ...
+=item I<path> ...
+
+Delete these I<path>s too.
-Delete these I<file>s too.
+Note that directories passed as arguments B<must> end with a trailing
+slash. Any content in these directories will be removed as well.
=back
=cut
init(options => {
- "dirs-only" => \$dh{D_FLAG},
-});
-inhibit_log();
+ 'dirs-only' => \$dh{D_FLAG},
+ 'keep|k' => \$dh{K_FLAG},
+ },
+ inhibit_log => 1,
+);
if ($dh{K_FLAG}) {
- # dh_prep will be emulated (mostly) by the code below.
- warning("dh_clean -k is deprecated; use dh_prep instead");
+ deprecated_functionality('dh_clean -k is deprecated; use dh_prep instead',
+ 12,
+ 'The -k option is not supported in compat 12; use dh_prep instead');
}
+# Remove the debhelper stamp file
+rm_files('debian/debhelper-build-stamp') if not $dh{D_FLAG};
+
+my (@clean_files, @clean_dirs, %seen);
+
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
my $ext=pkgext($package);
+ my $source_dir = default_sourcedir($package);
if (! $dh{D_FLAG}) {
- doit("rm","-f","debian/${ext}substvars")
+ push(@clean_files, "debian/${ext}substvars")
unless excludefile("debian/${ext}substvars");
# These are all debhelper temp files, and so it is safe to
# wildcard them.
- complex_doit("rm -f debian/$ext*.debhelper");
+ my @temp = glob("debian/$ext*.debhelper");
+ push(@clean_files, @temp);
}
- doit ("rm","-rf",$tmp."/")
+ push(@clean_dirs , "${tmp}/")
unless excludefile($tmp);
+ push(@clean_dirs, "${source_dir}/")
+ if (not $seen{$source_dir}++ and not excludefile($source_dir));
}
+
+if (not $dh{D_FLAG}) {
+ # Restore all files in our bucket (before we delete said bucket)
+ restore_all_files(1);
+
+ # Remove internal state data
+ doit('rm', '-rf', 'debian/.debhelper/');
+}
+
+
# Remove all debhelper logs.
if (! $dh{D_FLAG} && ! $dh{K_FLAG}) {
- complex_doit("rm","-f","debian/*.debhelper.log");
- if (compat(1)) {
- doit("rm","-f","debian/debhelper.log");
- }
+ my @logs = glob('debian/*.debhelper.log');
+ rm_files(@logs) if @logs;
}
if (! $dh{D_FLAG}) {
if (@ARGV) {
- doit("rm","-f","--",@ARGV);
+ push(@clean_files, grep { !m@/$@ } @ARGV);
+ push(@clean_dirs, grep { m@/$@ } @ARGV);
}
if (! $dh{K_FLAG}) {
if (!compat(6) && -e "debian/clean") {
- my @clean=grep { ! excludefile($_) }
- filearray("debian/clean", ".");
- doit("rm","-f","--",@clean) if @clean;
+ my @clean=grep {
+ ! excludefile($_)
+ # Silently ignore missing files - for all we know, dh_clean is run before
+ # they have been created.
+ } filearray('debian/clean', ["."], \&glob_expand_error_handler_silently_ignore);
+ push(@clean_files, grep { !m@/$@ } @clean);
+ push(@clean_dirs, grep { m@/$@ } @clean);
}
- doit("rm","-f","debian/files")
+ push(@clean_files, 'debian/files')
unless excludefile("debian/files");
}
+}
+
+xargs(\@clean_files, 'rm', '-f', '--') if @clean_files;
+xargs(\@clean_dirs, 'rm', '-fr', '--') if @clean_dirs;
+if (! $dh{D_FLAG}) {
# See if some files that would normally be deleted are excluded.
my $find_options='';
if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') {
@@ -123,8 +166,9 @@ if (! $dh{D_FLAG}) {
}
# vcs directories that should not have their contents cleaned
+ # (plus the internal "quilt" directory)
my $vcs_dirs=join " -o ", map { "-path .\\*/" . $_ }
- (".git", ".svn", ".bzr", ".hg", "CVS");
+ (".git", ".svn", ".bzr", ".hg", "CVS", '.pc', '_darcs');
# Remove other temp files.
complex_doit("find . $find_options \\( \\( \\
@@ -137,11 +181,9 @@ if (! $dh{D_FLAG}) {
\\( -type d -a -name autom4te.cache -prune -exec rm -rf {} + \\) \\)");
}
-doit('rm', '-rf', 'debian/tmp') if -x 'debian/tmp' && ! compat(1) &&
- ! excludefile("debian/tmp");
-
if (!compat(6) && !$dh{K_FLAG}) {
- complex_doit('rm -f *-stamp');
+ my @stamp_files = glob('*-stamp');
+ rm_files(@stamp_files) if @stamp_files;
}
=head1 SEE ALSO
diff --git a/dh_compress b/dh_compress
index e908dd82..ac726879 100755
--- a/dh_compress
+++ b/dh_compress
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,13 @@ dh_compress - compress files and fix symlinks in package build directories
=cut
use strict;
-use Cwd;
+use warnings;
+use Cwd qw(getcwd abs_path);
+use File::Spec::Functions qw(abs2rel);
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_compress> [S<I<debhelper options>>] [B<-X>I<item>] [B<-A>] [S<I<file> ...>]
@@ -75,136 +79,165 @@ Debian policy, version 3.0
init();
-foreach my $package (@{$dh{DOPACKAGES}}) {
- my $tmp=tmpdir($package);
+on_pkgs_in_parallel {
+ my $olddir;
- my $compress=pkgfile($package,"compress");
+ foreach my $package (@_) {
+ my $tmp=tmpdir($package);
- # Run the file name gathering commands from within the directory
- # structure that will be effected.
- next unless -d $tmp;
- my $olddir=getcwd();
- verbose_print("cd $tmp");
- chdir($tmp) || error("Can't cd to $tmp: $!");
+ my $compress=pkgfile($package,"compress");
- # Figure out what files to compress.
- my @files;
- # First of all, deal with any files specified right on the command line.
- if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
- push @files, @ARGV;
- }
- if ($compress) {
- # The compress file is a sh script that outputs the files to be compressed
- # (typically using find).
- warning("$compress is deprecated; use -X or avoid calling dh_compress instead");
- push @files, split(/\n/,`sh $olddir/$compress 2>/dev/null`);
- }
- else {
- # Note that all the excludes of odd things like _z
- # are because gzip refuses to compress such files, assuming
- # they are zip files. I looked at the gzip source to get the
- # complete list of such extensions: ".gz", ".z", ".taz",
- # ".tgz", "-gz", "-z", "_z"
- push @files, split(/\n/,`
- find usr/info usr/share/info usr/man usr/share/man usr/X11*/man -type f ! -iname "*.gz" \\
- ! -iname "*.gif" ! -iname "*.png" ! -iname "*.jpg" \\
- ! -iname "*.jpeg" \\
- 2>/dev/null || true;
- find usr/share/doc \\
- \\( -type d -name _sources -prune -false \\) -o \\
- -type f \\( -size +4k -or -name "changelog*" -or -name "NEWS*" \\) \\
- \\( -name changelog.html -or ! -iname "*.htm*" \\) \\
- ! -iname "*.gif" ! -iname "*.png" ! -iname "*.jpg" \\
- ! -iname "*.jpeg" ! -iname "*.gz" ! -iname "*.taz" \\
- ! -iname "*.tgz" ! -iname "*.z" ! -iname "*.bz2" \\
- ! -iname "*-gz" ! -iname "*-z" ! -iname "*_z" \\
- ! -iname "*.epub" ! -iname "*.jar" ! -iname "*.zip" \\
- ! -iname "*.odg" ! -iname "*.odp" ! -iname "*.odt" \\
- ! -iname ".htaccess" ! -iname "*.css" \\
- ! -iname "*.svg" ! -iname "*.svgz" ! -iname "*.js" \\
- ! -name "index.sgml" ! -name "objects.inv" ! -name "*.map" \\
- ! -name "copyright" 2>/dev/null || true;
- find usr/share/fonts/X11 -type f -name "*.pcf" 2>/dev/null || true;
- `);
- }
+ # Run the file name gathering commands from within the directory
+ # structure that will be effected.
+ next unless -d $tmp;
+ my $ignore_doc_dirs = '-name _sources';
+ 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: $!");
+
+ # Figure out what files to compress.
+ my @files;
+ # First of all, deal with any files specified right on the command line.
+ if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
+ push @files, map { s{^/+}{}; $_ } @ARGV;
+ }
+ if ($compress) {
+ # The compress file is a sh script that outputs the files to be compressed
+ # (typically using find).
+ warning("$compress is deprecated; use -X or avoid calling dh_compress instead");
+ push @files, split(/\n/,`sh $olddir/$compress 2>/dev/null`);
+ } else {
+ # Note that all the excludes of odd things like _z
+ # are because gzip refuses to compress such files, assuming
+ # they are zip files. I looked at the gzip source to get the
+ # complete list of such extensions: ".gz", ".z", ".taz",
+ # ".tgz", "-gz", "-z", "_z"
+ push @files, split(/\n/,`
+ find usr/share/info usr/share/man -type f ! -iname "*.gz" \\
+ ! -iname "*.gif" ! -iname "*.png" ! -iname "*.jpg" \\
+ ! -iname "*.jpeg" \\
+ 2>/dev/null || true;
+ find usr/share/doc \\
+ \\( -type d \\( $ignore_doc_dirs \\) -prune -false \\) -o \\
+ -type f \\( -size +4k -o -name "changelog*" -o -name "NEWS*" \\) \\
+ \\( -name changelog.html -o ! -iname "*.htm*" \\) \\
+ ! -iname "*.xhtml" \\
+ ! -iname "*.gif" ! -iname "*.png" ! -iname "*.jpg" \\
+ ! -iname "*.jpeg" ! -iname "*.gz" ! -iname "*.taz" \\
+ ! -iname "*.tgz" ! -iname "*.z" ! -iname "*.bz2" \\
+ ! -iname "*-gz" ! -iname "*-z" ! -iname "*_z" \\
+ ! -iname "*.epub" ! -iname "*.jar" ! -iname "*.zip" \\
+ ! -iname "*.odg" ! -iname "*.odp" ! -iname "*.odt" \\
+ ! -iname ".htaccess" ! -iname "*.css" \\
+ ! -iname "*.xz" ! -iname "*.lz" ! -iname "*.lzma" \\
+ ! -iname "*.haddock" ! -iname "*.hs" \\
+ ! -iname "*.woff" ! -iname "*.woff2" \\
+ ! -iname "*.svg" ! -iname "*.svgz" ! -iname "*.js" \\
+ ! -name "index.sgml" ! -name "objects.inv" ! -name "*.map" \\
+ ! -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;
+ `);
+ }
- # Exclude files from compression.
- if (@files && defined($dh{EXCLUDE}) && $dh{EXCLUDE}) {
- my @new=();
- foreach (@files) {
- my $ok=1;
- foreach my $x (@{$dh{EXCLUDE}}) {
- if (/\Q$x\E/) {
- $ok='';
- last;
- }
- }
- push @new,$_ if $ok;
+ # Exclude files from compression.
+ if (@files && defined($dh{EXCLUDE}) && $dh{EXCLUDE}) {
+ my @new = grep { not excludefile($_) } @files;
+ @files=@new;
}
- @files=@new;
- }
-
- # Look for files with hard links. If we are going to compress both,
- # we can preserve the hard link across the compression and save
- # space in the end.
- my @f=();
- my %hardlinks;
- my %seen;
- foreach (@files) {
- my ($dev, $inode, undef, $nlink)=stat($_);
- if ($nlink > 1) {
- if (! $seen{"$inode.$dev"}) {
- $seen{"$inode.$dev"}=$_;
- push @f, $_;
- }
- else {
- # This is a hardlink.
- $hardlinks{$_}=$seen{"$inode.$dev"};
- }
+
+ # Look for files with hard links. If we are going to compress both,
+ # we can preserve the hard link across the compression and save
+ # space in the end.
+ my ($unique_files, $hardlinks) = find_hardlinks(@files);
+ my @f = @{$unique_files};
+
+ # normalize file names and remove duplicates
+ my $norm_from_dir = $tmp;
+ if ($norm_from_dir !~ m{^/}) {
+ $norm_from_dir = "${olddir}/${tmp}";
}
- else {
- push @f, $_;
+ my $resolved = abs_path($norm_from_dir)
+ or error("Cannot resolve $norm_from_dir: $!");
+ my @normalized = normalize_paths($norm_from_dir, $resolved, $tmp, @f);
+ my %uniq_f; @uniq_f{@normalized} = ();
+ @f = sort keys %uniq_f;
+
+ # do it
+ if (@f) {
+ # Make executables not be anymore.
+ xargs(\@f,"chmod","a-x");
+ xargs(\@f,"gzip","-9nf");
}
- }
- if (@f) {
- # Make executables not be anymore.
- xargs(\@f,"chmod","a-x");
-
- xargs(\@f,"gzip","-9nf");
- }
-
- # Now change over any files we can that used to be hard links so
- # they are again.
- foreach (keys %hardlinks) {
- # Remove old file.
- doit("rm","-f","$_");
- # Make new hardlink.
- doit("ln","$hardlinks{$_}.gz","$_.gz");
- }
+ # Now change over any files we can that used to be hard links so
+ # they are again.
+ foreach (keys %{$hardlinks}) {
+ # Remove old file.
+ rm_files($_);
+ # Make new hardlink.
+ doit("ln", "-f", "$hardlinks->{$_}.gz", "$_.gz");
+ }
- verbose_print("cd '$olddir'");
- chdir($olddir);
-
- # Fix up symlinks that were pointing to the uncompressed files.
- my %links = map { chomp; $_ => 1 } `find $tmp -type l`;
- my $changed;
- # Keep looping through looking for broken links until no more
- # changes are made. This is done in case there are links pointing
- # to links, pointing to compressed files.
- do {
- $changed = 0;
- foreach my $link (keys %links) {
- my ($directory) = $link =~ m:(.*)/:;
- my $linkval = readlink($link);
- if (! -e "$directory/$linkval" && -e "$directory/$linkval.gz") {
- doit("rm","-f",$link);
- doit("ln","-sf","$linkval.gz","$link.gz");
- delete $links{$link};
- $changed++;
+ verbose_print("cd '$olddir'");
+ chdir($olddir);
+
+ # Fix up symlinks that were pointing to the uncompressed files.
+ my %links = map { chomp; $_ => 1 } qx_cmd('find', $tmp, '-type', 'l');
+ my $changed;
+ # Keep looping through looking for broken links until no more
+ # changes are made. This is done in case there are links pointing
+ # to links, pointing to compressed files.
+ do {
+ $changed = 0;
+ foreach my $link (keys %links) {
+ my ($directory) = $link =~ m:(.*)/:;
+ my $linkval = readlink($link);
+ if (! -e "$directory/$linkval" && -e "$directory/$linkval.gz") {
+ # Avoid duplicate ".gz.gz" if the link already has
+ # the .gz extension. This can happen via
+ # dh_installman when the .so is already compressed
+ # and then dh_installman reencodes the target
+ # manpage.
+ my $link_name = $link;
+ $link_name .= '.gz' if $link_name !~ m/[.]gz$/;
+ rm_files($link, "$link.gz");
+ make_symlink_raw_target("$linkval.gz", $link_name);
+ delete $links{$link};
+ $changed++;
+ }
}
+ } while $changed;
+ }
+};
+
+sub normalize_paths {
+ my ($cwd, $cwd_resolved, $tmp, @paths) = @_;
+ my @normalized;
+ my $prefix = qr{\Q${tmp}/};
+
+ for my $path (@paths) {
+ my $abs = abs_path($path);
+ if (not defined($abs)) {
+ my $err = $!;
+ my $alt = $path;
+ if ($alt =~ s/^$prefix//) {
+ $abs = abs_path($alt);
+ }
+ error(qq{Cannot resolve "$path": $err (relative to "${cwd}")})
+ if (not defined($abs));
+ warning(qq{Interpreted "$path" as "$alt"});
}
- } while $changed;
+ error("${abs} does not exist") if not -e $abs;
+ push(@normalized, abs2rel($abs, $cwd_resolved));
+ }
+ return @normalized;
}
=head1 SEE ALSO
diff --git a/dh_desktop b/dh_desktop
deleted file mode 100755
index 075597fb..00000000
--- a/dh_desktop
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/perl -w
-
-=head1 NAME
-
-dh_desktop - deprecated no-op
-
-=cut
-
-use strict;
-use Debian::Debhelper::Dh_Lib;
-
-=head1 SYNOPSIS
-
-B<dh_desktop> [S<I<debhelper options>>]
-
-=head1 DESCRIPTION
-
-B<dh_desktop> was a debhelper program that registers F<.desktop> files.
-However, it no longer does anything, and is now deprecated.
-
-If a package ships F<desktop> files, they just need to be installed in the
-correct location (F</usr/share/applications>) and they will be registered by
-the appropriate tools for the corresponding desktop environments.
-
-=cut
-
-init();
-
-warning("This program is deprecated, and does nothing anymore.");
-
-=head1 SEE ALSO
-
-L<debhelper>
-
-This program is a part of debhelper.
-
-=head1 AUTHOR
-
-Ross Burton <ross@burtonini.com>
-
-=cut
diff --git a/dh_dwz b/dh_dwz
new file mode 100755
index 00000000..1334ee09
--- /dev/null
+++ b/dh_dwz
@@ -0,0 +1,173 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+dh_dwz - optimize DWARF debug information in ELF binaries via dwz
+
+=cut
+
+use strict;
+use warnings;
+use File::Find;
+use Debian::Debhelper::Dh_Lib;
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_dwz> [S<I<debhelper options>>] [B<-X>I<item>] [S<B<--> I<params>>]
+
+=head1 DESCRIPTION
+
+B<dh_dwz> is a debhelper program that will optimize the (uncompressed)
+size of the DWARF debug information in ELF binaries. It does so by
+running L<dwz(1)> on all the ELF binaries in the package.
+
+=head1 OPTIONS
+
+=over 4
+
+=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. 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 not 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,
+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
+stripped. You may use this option multiple times to build up a list of
+things to exclude.
+
+=item B<--> I<params>
+
+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).
+
+=back
+
+=head1 NOTES
+
+If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>,
+nothing will be stripped, in accordance with Debian policy (section
+10.1 "Binaries").
+
+While this tool technically does not remove debug information from
+binaries, it is still skipped when the B<DEB_BUILD_OPTIONS>
+environment variable contains B<nostrip>. This is because B<nostrip>
+is often used to optimize build times (e.g. for "build and
+test"-cycles) rather than optimizing for size.
+
+=cut
+
+my $create_multifile = 'auto';
+
+init(options => {
+ 'dwz-multifile!' => \$create_multifile,
+});
+
+# This variable can be used to turn off stripping (see Policy).
+exit 0 if get_buildoption('nostrip');
+
+my @elf_files;
+
+sub testfile {
+ my $fn = $_;
+ return if -l $fn; # Always skip symlinks.
+
+ # See if we were asked to exclude this file.
+ # Note that we have to test on the full filename, including directory.
+ if (excludefile($fn)) {
+ $File::Find::prune = 1 if -d _;
+ return;
+ }
+ return if -d _;
+ # Do not process output files from dwz
+ return if index($fn, '/debug/.dwz/') > -1;
+ if (is_so_or_exec_elf_file($fn)) {
+ push(@elf_files, $fn);
+ }
+ return;
+}
+
+on_items_in_parallel(\@{$dh{DOPACKAGES}}, sub {
+foreach my $package (@_) {
+ my $tmp = tmpdir($package);
+
+ next if not -d $tmp;
+
+ @elf_files = ();
+ find({
+ wanted => \&testfile,
+ no_chdir => 1,
+ }, $tmp);
+ next if not @elf_files;
+ # Consistent order;
+ @elf_files = sort(@elf_files);
+ my ($unique_files, $hardlinks) = find_hardlinks(@elf_files);
+ 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', @dwz_options, @{$dh{U_PARAMS}}, '--', @{$unique_files});
+ if ( -f "${tmp}/${m}") {
+ doit($objcopy, '--compress-debug-sections', "${tmp}/${m}");
+ reset_perm_and_owner(0644, "${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}/${dwz_dir}");
+ }
+ } else {
+ xargs($unique_files, 'dwz', @{$dh{U_PARAMS}}, '--');
+ }
+
+
+ # Now change over any files we can that used to be hard links so
+ # they are again.
+ for my $hardlink (keys %{$hardlinks}) {
+ my $target = $hardlinks->{$hardlink};
+ # Remove old file.
+ rm_files($hardlink);
+ # Make new hardlink.
+ doit('ln', '-f', $target, $hardlink);
+ }
+}});
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Niels Thykier <niels@thykier.net>
+
+=cut
diff --git a/dh_fixperms b/dh_fixperms
index da45ee64..8c491bbc 100755
--- a/dh_fixperms
+++ b/dh_fixperms
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,12 @@ dh_fixperms - fix permissions of files in package build directories
=cut
use strict;
+use warnings;
use Config;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_fixperms> [S<I<debhelper options>>] [B<-X>I<item>]
@@ -20,14 +23,19 @@ B<dh_fixperms> is a debhelper program that is responsible for setting the
permissions of files and directories in package build directories to a
sane state -- a state that complies with Debian policy.
-B<dh_fixperms> makes all files in F<usr/share/doc> in the package build directory
-(excluding files in the F<examples/> directory) be mode 644. It also changes
-the permissions of all man pages to mode 644. It makes all files be owned
-by root, and it removes group and other write permission from all files. It
-removes execute permissions from any libraries, headers, Perl modules, or
-desktop files that have it set. It makes all files in the standard F<bin> and
-F<sbin> directories, F<usr/games/> and F<etc/init.d> executable (since v4). Finally,
-it removes the setuid and setgid bits from all files in the package.
+B<dh_fixperms> makes all files in F<usr/share/doc> in the package
+build directory (excluding files in the F<examples/> directory) be
+mode 644. It also changes the permissions of all man pages to mode
+644. It removes group and other write permission from all files. It
+removes execute permissions from any libraries, headers, Perl modules,
+or desktop files that have it set. It makes all files in the standard
+F<bin> and F<sbin> directories, F<usr/games/> and F<etc/init.d>
+executable (since v4). Finally, it removes the setuid and setgid bits
+from all files in the package.
+
+When the I<Rules-Requires-Root> field has the (effective) value of
+I<binary-targets>, B<dh_fixperms> will also reset the ownership of
+all paths to "root:root".
=head1 OPTIONS
@@ -45,88 +53,113 @@ up a list of things to exclude.
init();
+sub patterns2find_expr {
+ return sprintf('\\( -name %s \\)', join(' -o -name ', map { "'$_'" } @_));
+}
+
+
my $vendorlib = substr $Config{vendorlib}, 1;
my $vendorarch = substr $Config{vendorarch}, 1;
+my @executable_files_dirs = (
+ qw{usr/bin bin usr/sbin sbin usr/games usr/libexec etc/init.d},
+);
+my @mode_0644_patterns = (
+ # Libraries and related files
+ '*.so.*', '*.so', '*.la', '*.a',
+ # Web application related files
+ '*.js', '*.css', '*.scss', '*.sass',
+ # Images
+ '*.jpeg', '*.jpg', '*.png', '*.gif',
+ # OCaml native-code shared objects
+ '*.cmxs',
+ # Node bindings
+ '*.node',
+);
+my @mode_0755_patterns = (
+ # None for Debian
+);
+my $find_exclude_options='-true';
+if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') {
+ $find_exclude_options="! \\( $dh{EXCLUDE_FIND} \\)";
+}
-foreach my $package (@{$dh{DOPACKAGES}}) {
- my $tmp=tmpdir($package);
-
- my $find_options='';
- if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') {
- $find_options="! \\( $dh{EXCLUDE_FIND} \\)";
+sub find_and_reset_perm {
+ my ($in_dirs, $mode, $raw_find_expr, $raw_find_expr_late) = @_;
+ my (@dirs, $dir_string);
+ if (ref ($in_dirs) ) {
+ @dirs = grep { -d } @{$in_dirs};
+ return if not @dirs;
+ } else {
+ return if not -d $in_dirs;
+ @dirs = ($in_dirs);
}
+ $dir_string = escape_shell(@dirs);
+ $raw_find_expr //= '';
+ $raw_find_expr_late //= '-true';
+ complex_doit("find ${dir_string} ${raw_find_expr} -a ${find_exclude_options} -a ${raw_find_expr_late} -print0",
+ "2>/dev/null | xargs -0r chmod ${mode}");
+}
- # General permissions fixing.
- complex_doit("find $tmp $find_options -print0",
- "2>/dev/null | xargs -0r chown --no-dereference 0:0");
- complex_doit("find $tmp ! -type l $find_options -print0",
- "2>/dev/null | xargs -0r chmod go=rX,u+rw,a-s");
-
- # Fix up permissions in usr/share/doc, setting everything to not
- # executable by default, but leave examples directories alone.
- complex_doit("find $tmp/usr/share/doc -type f $find_options ! -regex '$tmp/usr/share/doc/[^/]*/examples/.*' -print0 2>/dev/null",
- "| xargs -0r chmod 644");
- complex_doit("find $tmp/usr/share/doc -type d $find_options -print0 2>/dev/null",
- "| xargs -0r chmod 755");
-
- # Executable man pages are a bad thing..
- complex_doit("find $tmp/usr/share/man $tmp/usr/man/ $tmp/usr/X11*/man/ -type f",
- "$find_options -print0 2>/dev/null | xargs -0r chmod 644");
-
- # ..and so are executable shared and static libraries
- # (and .la files from libtool) ..
- complex_doit("find $tmp -perm -5 -type f",
- "\\( -name '*.so.*' -or -name '*.so' -or -name '*.la' -or -name '*.a' \\) $find_options -print0",
- "2>/dev/null | xargs -0r chmod 644");
-
- # ..and header files ..
- complex_doit("find $tmp/usr/include -type f $find_options -print0",
- "2>/dev/null | xargs -0r chmod 644");
-
- # ..and desktop files ..
- complex_doit("find $tmp/usr/share/applications -type f $find_options -print0",
- "2>/dev/null | xargs -0r chmod 644");
-
- # ..and OCaml native-code shared objects ..
- complex_doit("find $tmp -perm -5 -type f",
- "\\( -name '*.cmxs' \\) $find_options -print0",
- "2>/dev/null | xargs -0r chmod 644");
-
- # .. and perl modules.
- complex_doit("find $tmp/$vendorarch $tmp/$vendorlib -type f",
- "-perm -5 -name '*.pm' $find_options -print0",
- "2>/dev/null | xargs -0r chmod a-X");
+on_pkgs_in_parallel {
+ foreach my $package (@_) {
+ my $tmp=tmpdir($package);
+
+ next if not -d $tmp;
+
+ # General permissions fixing.
+ complex_doit("find $tmp ${find_exclude_options} -print0",
+ "2>/dev/null | xargs -0r chown --no-dereference 0:0") if should_use_root();
+ find_and_reset_perm($tmp, 'go=rX,u+rw,a-s', '! -type l');
- # v4 and up
- if (! compat(3)) {
+ # Fix up permissions in usr/share/doc, setting everything to not
+ # executable by default, but leave examples directories alone.
+ find_and_reset_perm("${tmp}/usr/share/doc", '0644', '-type f', "! -regex '$tmp/usr/share/doc/[^/]*/examples/.*'");
+ find_and_reset_perm("${tmp}/usr/share/doc", '0755', '-type d');
+
+ # Manpages, include file, desktop files, etc., shouldn't be executable
+ find_and_reset_perm([
+ "${tmp}/usr/share/man",
+ "${tmp}/usr/include",
+ "${tmp}/usr/share/applications",
+ "${tmp}/usr/share/lintian/overrides",
+ ], '0644', '-type f');
+
+ # nor should perl modules.
+ find_and_reset_perm(["${tmp}/${vendorarch}", "${tmp}/${vendorlib}"],
+ 'a-X', "-type f -perm -5 -name '*.pm'");
+
+ find_and_reset_perm($tmp, '0644', '-type f ' . patterns2find_expr(@mode_0644_patterns)) if @mode_0644_patterns;
+ find_and_reset_perm($tmp, '0755', '-type f ' . patterns2find_expr(@mode_0755_patterns)) if @mode_0755_patterns;
+
# Programs in the bin and init.d dirs should be executable..
- for my $dir (qw{usr/bin bin usr/sbin sbin usr/games etc/init.d}) {
- if (-d "$tmp/$dir") {
- complex_doit("find $tmp/$dir -type f $find_options -print0 2>/dev/null",
- "| xargs -0r chmod a+x");
+ find_and_reset_perm([map { "${tmp}/$_"} @executable_files_dirs], 'a+x', '-type f');
+
+ # ADA ali files should be mode 444 to avoid recompilation
+ find_and_reset_perm("${tmp}/usr/lib", 'uga-w', "-type f -name '*.ali'");
+
+ if ( -d "$tmp/usr/lib/nodejs/") {
+ my @nodejs_exec_patterns = qw(*/cli.js */bin.js);
+ my @exec_files = grep {
+ not excludefile($_) and -f $_;
+ } glob_expand(["$tmp/usr/lib/nodejs"], \&glob_expand_error_handler_silently_ignore, @nodejs_exec_patterns);
+ reset_perm_and_owner(0755, @exec_files)
+ }
+
+ if ( -d "$tmp/usr/share/bug/$package") {
+ complex_doit("find $tmp/usr/share/bug/$package -type f",
+ "! -name 'script' ${find_exclude_options} -print0",
+ "2>/dev/null | xargs -0r chmod 644");
+ if ( -f "$tmp/usr/share/bug/$package/script" ) {
+ reset_perm_and_owner(0755, "$tmp/usr/share/bug/$package/script");
}
+ } elsif ( -f "$tmp/usr/share/bug/$package" ) {
+ reset_perm_and_owner(0755, "$tmp/usr/share/bug/$package");
}
- }
-
- # ADA ali files should be mode 444 to avoid recompilation
- complex_doit("find $tmp/usr/lib -type f",
- "-name '*.ali' $find_options -print0",
- "2>/dev/null | xargs -0r chmod uga-w");
-
- # Lintian overrides should never be executable, too.
- if (-d "$tmp/usr/share/lintian") {
- complex_doit("find $tmp/usr/share/lintian/overrides",
- "-type f $find_options -print0",
- "2>/dev/null | xargs -0r chmod 644");
- }
- # Files in $tmp/etc/sudoers.d/ must be mode 440.
- if (-d "$tmp/etc/sudoers.d") {
- complex_doit("find $tmp/etc/sudoers.d",
- "-type f ! -perm 440 $find_options -print0",
- "2>/dev/null | xargs -0r chmod 440");
+ # Files in $tmp/etc/sudoers.d/ must be mode 0440.
+ find_and_reset_perm("${tmp}/etc/sudoers.d", '0440', "-type f ! -perm 440");
}
-}
+};
=head1 SEE ALSO
diff --git a/dh_gconf b/dh_gconf
deleted file mode 100755
index 48b05ba2..00000000
--- a/dh_gconf
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/perl -w
-
-=head1 NAME
-
-dh_gconf - install GConf defaults files and register schemas
-
-=cut
-
-use strict;
-use Debian::Debhelper::Dh_Lib;
-
-=head1 SYNOPSIS
-
-B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>]
-
-=head1 DESCRIPTION
-
-B<dh_gconf> is a debhelper program that is responsible for installing GConf
-defaults files and registering GConf schemas.
-
-An appropriate dependency on gconf2 will be generated in B<${misc:Depends}>.
-
-=head1 FILES
-
-=over 4
-
-=item debian/I<package>.gconf-defaults
-
-Installed into F<usr/share/gconf/defaults/10_package> in the package build
-directory, with I<package> replaced by the package name.
-
-=item debian/I<package>.gconf-mandatory
-
-Installed into F<usr/share/gconf/mandatory/10_package> in the package build
-directory, with I<package> replaced by the package name.
-
-=back
-
-=head1 OPTIONS
-
-=over 4
-
-=item B<--priority> I<priority>
-
-Use I<priority> (which should be a 2-digit number) as the defaults
-priority instead of B<10>. Higher values than ten can be used by
-derived distributions (B<20>), CDD distributions (B<50>), or site-specific
-packages (B<90>).
-
-=back
-
-=cut
-
-init();
-
-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)
-
-foreach my $package (@{$dh{DOPACKAGES}}) {
- my $tmp=tmpdir($package);
-
- my $gconf_dep = 0;
- my $mandatory = pkgfile($package, "gconf-mandatory");
- if ($mandatory ne '') {
- doit("mkdir","-p","$tmp/usr/share/gconf/mandatory");
- doit("install","-p","-m644",$mandatory,"$tmp/usr/share/gconf/mandatory/${priority}_$package");
- addsubstvar($package, "misc:Depends", "gconf2 (>= 2.28.1-2)");
- $gconf_dep = 1;
- }
- my $defaults = pkgfile($package,"gconf-defaults");
- if ($defaults ne '') {
- doit("mkdir","-p","$tmp/usr/share/gconf/defaults");
- doit("install","-p","-m644",$defaults,"$tmp/usr/share/gconf/defaults/${priority}_$package");
- addsubstvar($package, "misc:Depends", "gconf2 (>= 2.28.1-2)") unless $gconf_dep;
- $gconf_dep = 1;
- }
-
- my $old_schemas_dir = "$tmp/etc/gconf/schemas";
- my $new_schemas_dir = "$tmp/usr/share/gconf/schemas";
-
- # Migrate schemas from /etc/gconf/schemas to /usr/share/gconf/schemas
- if (-d $old_schemas_dir) {
- doit("mkdir -p $new_schemas_dir") unless -d $new_schemas_dir;
- doit("mv $old_schemas_dir/*.schemas $new_schemas_dir/");
- doit("rmdir -p --ignore-fail-on-non-empty $old_schemas_dir");
- }
-
- if (-d "$new_schemas_dir") {
- # Get a list of the schemas
- my $schemas = `find $new_schemas_dir -type f -name \\*.schemas -printf '%P '`;
- if ($schemas ne '') {
- addsubstvar($package, "misc:Depends", "gconf2 (>= 2.28.1-2)") unless $gconf_dep;
- }
- }
-}
-
-=head1 SEE ALSO
-
-L<debhelper(7)>
-
-This program is a part of debhelper.
-
-=head1 AUTHOR
-
-Ross Burton <ross@burtonini.com>
-Josselin Mouette <joss@debian.org>
-
-=cut
diff --git a/dh_gencontrol b/dh_gencontrol
index 41e09cbe..18275b91 100755
--- a/dh_gencontrol
+++ b/dh_gencontrol
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,12 @@ dh_gencontrol - generate and install control file
=cut
use strict;
+use warnings;
+use Errno qw(ENOENT);
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_gencontrol> [S<I<debhelper options>>] [S<B<--> I<params>>]
@@ -19,9 +23,17 @@ B<dh_gencontrol> is a debhelper program that is responsible for generating
control files, and installing them into the I<DEBIAN> directory with the
proper permissions.
-This program is merely a wrapper around L<dpkg-gencontrol(1)>, which calls
-it once for each package being acted on, and passes in some additional
-useful flags.
+This program is merely a wrapper around L<dpkg-gencontrol(1)>, which
+calls it once for each package being acted on (plus related dbgsym
+packages), and passes in some additional useful flags.
+
+B<Note> that if you use B<dh_gencontrol>, you must also use
+L<dh_builddeb(1)> to build the packages. Otherwise, your build may
+fail to build as B<dh_gencontrol> (via L<dpkg-gencontrol(1)>) declares
+which packages are built. As debhelper automatically generates dbgsym
+packages, it some times adds additional packages, which will be built
+by L<dh_builddeb(1)>.
+
=head1 OPTIONS
@@ -44,35 +56,153 @@ init(options => {
"dpkg-gencontrol-params=s", => \$dh{U_PARAMS},
});
-foreach my $package (@{$dh{DOPACKAGES}}) {
- my $tmp=tmpdir($package);
- my $ext=pkgext($package);
+sub ensure_substvars_are_present {
+ my ($file, @substvars) = @_;
+ my (%vars, $fd);
+ return 1 if $dh{NO_ACT};
+ if (open($fd, '+<', $file)) {
+ while (my $line = <$fd>) {
+ my $k;
+ ($k, undef) = split(m/=/, $line, 2);
+ $vars{$k} = 1 if $k;
+ }
+ # Fall-through and append the missing vars if any.
+ } else {
+ error("open(${file}) failed: $!") if $! != ENOENT;
+ open($fd, '>', $file) or error("open(${file}) failed: $!");
+ }
- my $substvars="debian/${ext}substvars";
-
- my $changelog=pkgfile($package,'changelog');
- if (! $changelog) {
- $changelog='debian/changelog';
+ for my $var (@substvars) {
+ if (not exists($vars{$var})) {
+ verbose_print("echo ${var}= >> ${file}");
+ print ${fd} "${var}=\n";
+ $vars{$var} = 1;
+ }
}
+ close($fd) or error("close(${file}) failed: $!");
+ return 1;
+}
- if ( ! -d "$tmp/DEBIAN" ) {
- doit("install","-o",0,"-g",0,"-d","$tmp/DEBIAN");
+on_pkgs_in_parallel {
+ foreach my $package (@_) {
+ my $tmp=tmpdir($package);
+ my $ext=pkgext($package);
+ my $dbgsym_info_dir = "debian/.debhelper/${package}";
+ my $dbgsym_tmp = dbgsym_tmpdir($package);
+
+ my $substvars="debian/${ext}substvars";
+
+ my $changelog=pkgfile($package,'changelog');
+ if (! $changelog) {
+ $changelog='debian/changelog';
+ }
+
+ install_dir("$tmp/DEBIAN");
+
+ # avoid gratuitous warnings
+ ensure_substvars_are_present($substvars, 'misc:Depends', 'misc:Pre-Depends');
+
+ my (@debug_info_params, $build_ids, @multiarch_params);
+ if ( -d $dbgsym_info_dir ) {
+ $build_ids = read_dbgsym_build_ids($dbgsym_info_dir);
+ }
+
+ if ( -d $dbgsym_tmp) {
+ my $multiarch = package_multiarch($package);
+ my $section = package_section($package);
+ my $replaces = read_dbgsym_migration($dbgsym_info_dir);
+ my $component = '';
+ if ($section =~ m{^(.*)/[^/]+$}) {
+ $component = "${1}/";
+ # This should not happen, but lets not propagate the error
+ # if does.
+ $component = '' if $component eq 'main/';
+ }
+
+ # Remove and override more or less every standard field.
+ my @dbgsym_options = (qw(
+ -UPre-Depends -URecommends -USuggests -UEnhances -UProvides -UEssential
+ -UConflicts -DPriority=optional -UHomepage -UImportant
+ -UBuilt-Using -DAuto-Built-Package=debug-symbols
+ -UProtected
+ ),
+ "-DPackage=${package}-dbgsym",
+ "-DDepends=${package} (= \${binary:Version})",
+ "-DDescription=debug symbols for ${package}",
+ "-DBuild-Ids=${build_ids}",
+ "-DSection=${component}debug",
+ );
+ push(@dbgsym_options, "-DPackage-Type=${\DBGSYM_PACKAGE_TYPE}")
+ if DBGSYM_PACKAGE_TYPE ne DEFAULT_PACKAGE_TYPE;
+ # Disable multi-arch unless the original package is an
+ # multi-arch: same package. In all other cases, we do not
+ # need a multi-arch value.
+ if ($multiarch ne 'same') {
+ push(@dbgsym_options, '-UMulti-Arch');
+ }
+ # If the dbgsym package is replacing an existing -dbg package,
+ # then declare the necessary Breaks + Replaces. Otherwise,
+ # clear the fields.
+ if ($replaces) {
+ push(@dbgsym_options, "-DReplaces=${replaces}",
+ "-DBreaks=${replaces}");
+ } else {
+ push(@dbgsym_options, '-UReplaces', '-UBreaks');
+ }
+ install_dir("${dbgsym_tmp}/DEBIAN");
+ doit("dpkg-gencontrol", "-p${package}", "-l$changelog", "-T$substvars",
+ "-P${dbgsym_tmp}",@{$dh{U_PARAMS}}, @dbgsym_options);
+
+ reset_perm_and_owner(0644, "${dbgsym_tmp}/DEBIAN/control");
+ } elsif ($build_ids) {
+ # Only include the build-id if there is no dbgsym package (if
+ # there is a dbgsym package, the build-ids into the control
+ # file of the dbgsym package)
+ push(@debug_info_params, "-DBuild-Ids=${build_ids}");
+ }
+
+ # Remove explicit "Multi-Arch: no" headers to avoid autorejects by dak.
+ push (@multiarch_params, '-UMulti-Arch')
+ if (package_multiarch($package) eq 'no');
+
+ # Generate and install control file.
+ doit("dpkg-gencontrol", "-p$package", "-l$changelog", "-T$substvars",
+ "-P$tmp", @debug_info_params, @multiarch_params,
+ @{$dh{U_PARAMS}});
+
+ # This chmod is only necessary if the user sets the umask to
+ # something odd.
+ reset_perm_and_owner(0644, "${tmp}/DEBIAN/control");
}
+};
+
+sub read_dbgsym_file {
+ my ($dbgsym_info_file, $dbgsym_info_dir) = @_;
+ my $dbgsym_path = "${dbgsym_info_dir}/${dbgsym_info_file}";
+ my $result;
+ if (-f $dbgsym_path) {
+ open(my $fd, '<', $dbgsym_path)
+ or error("open $dbgsym_path failed: $!");
+ chomp($result = <$fd>);
+ $result =~ s/\s++$//;
+ close($fd);
+ }
+ return $result;
+}
+
+sub read_dbgsym_migration {
+ return read_dbgsym_file('dbgsym-migration', @_);
+}
- # avoid gratuitous warning
- if (! -e $substvars || system("grep -q '^misc:Depends=' $substvars") != 0) {
- complex_doit("echo misc:Depends= >> $substvars");
+sub read_dbgsym_build_ids {
+ my $res = read_dbgsym_file('dbgsym-build-ids', @_);
+ my (%seen, @unique);
+ return '' if not defined($res);
+ for my $id (split(' ', $res)) {
+ next if $seen{$id}++;
+ push(@unique, $id);
}
-
- # Generate and install control file.
- doit("dpkg-gencontrol", "-p$package", "-l$changelog", "-T$substvars",
- "-P$tmp",@{$dh{U_PARAMS}});
-
- # This chmod is only necessary if the user sets the umask to
- # something odd.
- doit("chmod","644","$tmp/DEBIAN/control");
-
- doit("chown","0:0","$tmp/DEBIAN/control");
+ return join(' ', @unique);
}
=head1 SEE ALSO
diff --git a/dh_icons b/dh_icons
index 916f1885..2af68569 100755
--- a/dh_icons
+++ b/dh_icons
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,12 @@ dh_icons - Update caches of Freedesktop icons
=cut
use strict;
+use warnings;
use File::Find;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_icons> [S<I<debhelper options>>] [B<-n>]
@@ -31,7 +34,7 @@ These commands are inserted into the maintainer scripts by L<dh_installdeb(1)>.
=over 4
-=item B<-n>, B<--noscripts>
+=item B<-n>, B<--no-scripts>
Do not modify maintainer scripts.
@@ -41,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}}) {
@@ -49,8 +52,8 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
my $icondir="$tmp$baseicondir";
if (-d $icondir) {
my @dirlist;
- opendir(DIRHANDLE, $icondir);
- while (my $subdir = readdir(DIRHANDLE)) {
+ opendir(my $dirfd, $icondir) or error("Cannot opendir($icondir): $!");
+ while (my $subdir = readdir($dirfd)) {
next if $subdir =~ /^\./;
next if $subdir eq "gnome";
next if $subdir eq "hicolor";
@@ -60,10 +63,11 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
}, "$icondir/$subdir" ;
push @dirlist, "$baseicondir/$subdir" if $needs_cache;
}
+ closedir($dirfd);
if (@dirlist and ! $dh{NOSCRIPTS}) {
- my $list=join(" ", @dirlist);
- autoscript($package,"postinst","postinst-icons","s%#DIRLIST#%$list%");
- autoscript($package,"postrm","postrm-icons","s%#DIRLIST#%$list%");
+ my $list=join(" ", sort @dirlist);
+ autoscript($package, 'postinst', 'postinst-icons', { 'DIRLIST' => $list });
+ autoscript($package, 'postrm', 'postrm-icons', { 'DIRLIST' => $list });
}
}
}
diff --git a/dh_install b/dh_install
index 28a76efd..da92715c 100755
--- a/dh_install
+++ b/dh_install
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,11 @@ dh_install - install files into package build directories
=cut
use strict;
-use File::Find;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_install> [B<-X>I<item>] [B<--autodest>] [B<--sourcedir=>I<dir>] [S<I<debhelper options>>] [S<I<file|dir> ... I<destdir>>]
@@ -32,7 +34,7 @@ F<Makefile> to install it all into F<debian/tmp>, and then use B<dh_install> to
directories and files from there into the proper package build directories.
From debhelper compatibility level 7 on, B<dh_install> will fall back to
-looking in F<debian/tmp> for files, if it doesn't find them in the current
+looking in F<debian/tmp> for files, if it does not find them in the current
directory (or wherever you've told it to look using B<--sourcedir>).
=head1 FILES
@@ -47,13 +49,21 @@ files to install, and at the end of the line tells the directory it should be
installed in. The name of the files (or directories) to install should be given
relative to the current directory, while the installation directory is given
relative to the package build directory. You may use wildcards in the names of
-the files to install (in v3 mode and above).
+the files to install.
Note that if you list exactly one filename or wildcard-pattern on a line by
itself, with no explicit destination, then B<dh_install>
will automatically guess the destination to use, the same as if the
--autodest option were used.
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
+
+=item debian/not-installed
+
+Used with the deprecated B<--list-missing> and B<--fail-missing> options.
+Please refer to L<dh_missing(1)> for the documentation of this file.
+
=back
=head1 OPTIONS
@@ -62,26 +72,21 @@ will automatically guess the destination to use, the same as if the
=item B<--list-missing>
-This option makes B<dh_install> keep track of the files it installs, and then at
-the end, compare that list with the files in the source directory. If any of
-the files (and symlinks) in the source directory were not installed to
-somewhere, it will warn on stderr about that.
-
-This may be useful if you have a large package and want to make sure that
-you don't miss installing newly added files in new upstream releases.
+B<Deprecated>: Please use B<dh_missing --list-missing> instead. If you use
+this option, B<dh_install> will call B<dh_missing> with that option after it has
+processed all the files. Please see L<dh_missing(1)> for the documentation of
+this option.
-Note that files that are excluded from being moved via the B<-X> option are not
-warned about.
+This option is removed in compat 12.
=item B<--fail-missing>
-This option is like B<--list-missing>, except if a file was missed, it will
-not only list the missing files, but also fail with a nonzero exit code.
+B<Deprecated>: Please use B<dh_missing --fail-missing> instead. If you use
+this option, B<dh_install> will call B<dh_missing> with that option after it has
+processed all the files. Please see L<dh_missing(1)> for the documentation of
+this option.
-=item B<-X>I<item>, B<--exclude=>I<item>
-
-Exclude files that contain I<item> anywhere in their filename from
-being installed.
+This option is removed in compat 12.
=item B<--sourcedir=>I<dir>
@@ -118,21 +123,40 @@ init(options => {
"autodest" => \$dh{AUTODEST},
"list-missing" => \$dh{LIST_MISSING},
"fail-missing" => \$dh{FAIL_MISSING},
- "sourcedir=s" => \$dh{SOURCEDIR},
+ "sourcedir=s" => \$dh{SOURCEDIR},
});
-my @installed;
-
my $srcdir = '.';
-$srcdir = $dh{SOURCEDIR} if defined $dh{SOURCEDIR};
+if (defined($dh{SOURCEDIR})) {
+ $srcdir = $dh{SOURCEDIR};
+ $srcdir =~ s{/+$}{};
+ error("Invalid --sourcedir - must not be empty nor /") if not $srcdir;
+}
-# PROMISE: DH NOOP WITHOUT install
+my $missing_files = 0;
+
+if ($dh{LIST_MISSING} || $dh{FAIL_MISSING}) {
+ deprecated_functionality('Please use dh_missing --list-missing/--fail-missing instead', 12);
+}
+
+# Support for -X flag.
+my $exclude = '';
+if ($dh{EXCLUDE_FIND}) {
+ $exclude = '! \( '.$dh{EXCLUDE_FIND}.' \)';
+}
+
+# PROMISE: DH NOOP WITHOUT pkgfile-logged(install) cli-options()
foreach my $package (getpackages()) {
+ my (@installed, %dest2sources);
+ my $default_source_dir = default_sourcedir($package);
+ my @search_dirs = ($srcdir);
+ push(@search_dirs, $default_source_dir) if not compat(6);
+
# Look at the install files for all packages to handle
# list-missing/fail-missing, but skip really installing for
# packages that are not being acted on.
- my $skip_install=! grep { $_ eq $package } @{$dh{DOPACKAGES}};
+ my $skip_install = process_pkg($package) ? 0 : 1;
my $tmp=tmpdir($package);
my $file=pkgfile($package,"install");
@@ -141,121 +165,214 @@ foreach my $package (getpackages()) {
if ($file) {
@install=filedoublearray($file); # no globbing here; done below
}
+
+
+ # With autodest, we can just pretend every pattern was on its own line
+ @install = map { [$_] } map { @$_ } @install if $dh{AUTODEST};
if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
- push @install, [@ARGV];
+ if ($dh{AUTODEST}) {
+ # Same as above, with autodest, we can just isolate each entry
+ # - the split is for bug-backwards compatibility (#867866).
+ push(@install, map { [$_] } map { split } @ARGV);
+ } else {
+ # Bug backwards compatibility (#867866). The new "glob_expand"
+ # interface is smart enough to not split on spaces, but dh_install
+ # used to do that... *except* for the "DEST" since it was never
+ # passed to the glob function.
+ my @a = @ARGV;
+ my $dest = pop(@a) if @a > 1;
+ my @srcs = map { split } @a;
+ push(@srcs, $dest) if defined($dest);
+ push(@install, \@srcs);
+ }
}
- # Support for -X flag.
- my $exclude = '';
- if ($dh{EXCLUDE_FIND}) {
- $exclude = '! \( '.$dh{EXCLUDE_FIND}.' \)';
- }
-
+
+ my $glob_error_handler = sub {
+ # Do not require a match for packages that not acted on
+ # (directly). After all, the files might not have been
+ # generated/compiled.
+ return if $skip_install;
+ ++$missing_files;
+ goto \&glob_expand_error_handler_warn_and_discard;
+ };
+
foreach my $set (@install) {
- my $dest;
- my $tmpdest=0;
-
- if (! defined $dh{AUTODEST} && @$set > 1) {
+ my ($dest, @filelist, @patterns);
+
+ if (@$set > 1) {
$dest=pop @$set;
}
+ # Skip excluded patterns. We will need two exclude checks per pattern;
+ # 1) exclude the entire pattern as people expect this to work (#814856)
+ # 2) exclude files matched by the pattern as people could have just
+ # excluded a single file of a "dir/*"-pattern.
+ # This line below filters entire patterns
+ @patterns = grep { not excludefile($_) } @{$set};
+ next if not @patterns;
+ foreach my $glob (@patterns) {
+ my @found = glob_expand(\@search_dirs, $glob_error_handler, $glob);
+ push(@filelist, map { tr{/}{/}s; $_ } @found);
+ }
- my @filelist;
- foreach my $glob (@$set) {
- my @found = glob "$srcdir/$glob";
- if (! compat(6)) {
- # Fall back to looking in debian/tmp.
- if (! @found || ! (-e $found[0] || -l $found[0])) {
- @found = glob "debian/tmp/$glob";
- }
- }
- push @filelist, @found;
+ if (! @filelist && ! $skip_install) {
+ warning("$package missing files: @$set");
+ ++$missing_files;
+ next;
}
- if (! compat(4)) { # check added in v5
- if (! @filelist && ! $skip_install) {
- error("$package missing files (@$set), aborting");
+ # Do a quick bulk handling of excluded files and update @installed.
+ # - this is for filtering files matched by the pattern
+ @filelist = grep { not excludefile($_) } @filelist if $exclude;
+ push(@installed, @filelist);
+
+ # ... because then we can short-curcit here.
+ next if $skip_install or $missing_files;
+
+ if (not $exclude) {
+ my @unoptimized;
+ for my $src (@filelist) {
+ my $d = $dest // compute_dest($default_source_dir, $src);
+ my $basename = basename($src);
+ if (exists($dest2sources{$d}{$basename})) {
+ # If there is a clash, silently undo the optimizations.
+ # See #866405 and #868169.
+ my $replaced = delete($dest2sources{$d}{$basename});
+ # Associate the $replaced the destination
+ # directory. We cannot be sure that compute_dest will
+ # get it right nor can we blindly set $dest.
+ #
+ # It is technically unnecessary for $src, but we
+ # might as well do it to possibly save a
+ # compute_dest call.
+ push(@unoptimized, [$replaced, $d], [$src, $d]);
+ next;
+ }
+ $dest2sources{$d}{$basename} = $src;
}
+ next if not @unoptimized;
+ @filelist = @unoptimized;
}
- foreach my $src (@filelist) {
- next if excludefile($src);
-
- push @installed, $src;
- next if $skip_install;
-
- if (! defined $dest) {
- # Guess at destination directory.
- $dest=$src;
- $dest=~s/^(.*\/)?\Q$srcdir\E\///;
- $dest=~s/^(.*\/)?debian\/tmp\///;
- $dest=dirname("/".$dest);
- $tmpdest=1;
+ foreach my $src (@filelist) {
+
+ my $target_dest;
+
+ if (ref($src)) {
+ # On a failed optimization, we will have the
+ # destination directory.
+ ($src, $target_dest) = @{$src};
+ } else {
+ $target_dest = $dest;
+ if (! defined $target_dest) {
+ # Guess at destination directory.
+ $target_dest = compute_dest($default_source_dir, $src);
+ }
}
-
+
# Make sure the destination directory exists.
- if (! -e "$tmp/$dest") {
- doit("install","-d","$tmp/$dest");
- }
-
+ install_dir("$tmp/$target_dest");
+
if (-d $src && $exclude) {
my $basename = basename($src);
my $dir = ($basename eq '.') ? $src : "$src/..";
my $pwd=`pwd`;
chomp $pwd;
- complex_doit("cd '$dir' && find '$basename' $exclude \\( -type f -or -type l \\) -print0 | xargs -0 -I {} cp --parents -dp {} $pwd/$tmp/$dest/");
+ complex_doit("cd '$dir' && " .
+ "find '$basename' $exclude \\( -type f -or -type l \\) -print0 | LC_ALL=C sort -z | " .
+ "xargs -0 -I {} cp --reflink=auto --parents -dp {} $pwd/$tmp/$target_dest/");
# cp is annoying so I need a separate pass
# just for empty directories
- complex_doit("cd '$dir' && find '$basename' $exclude \\( -type d -and -empty \\) -print0 | xargs -0 -I {} cp --parents -a {} $pwd/$tmp/$dest/");
+ complex_doit("cd '$dir' && " .
+ "find '$basename' $exclude \\( -type d -and -empty \\) -print0 | LC_ALL=C sort -z | " .
+ "xargs -0 -I {} cp --reflink=auto --parents -a {} $pwd/$tmp/$target_dest/");
}
else {
- doit("cp", "-a", $src, "$tmp/$dest/");
- }
-
- if ($tmpdest) {
- $dest=undef;
+ doit("cp", '--reflink=auto', "-a", $src, "$tmp/$target_dest/");
}
}
}
+
+ for my $dest (sort(keys(%dest2sources))) {
+ my @srcs = sort(values(%{$dest2sources{$dest}}));
+ # Make sure the destination directory exists.
+ install_dir("$tmp/$dest");
+ xargs(\@srcs, "cp", '--reflink=auto', "-a", XARGS_INSERT_PARAMS_HERE, "$tmp/$dest/");
+ }
+ log_installed_files($package, @installed);
+}
+
+if ($missing_files) {
+ # There were files we could not install (e.g. patterns that matched nothing)
+ error("missing files, aborting");
}
if ($dh{LIST_MISSING} || $dh{FAIL_MISSING}) {
- # . as srcdir makes no sense, so this is a special case.
- if ($srcdir eq '.') {
- $srcdir='debian/tmp';
- }
-
- my @missing;
- my $installed=join("|", map {
- # Kill any extra slashes, for robustness.
- y:/:/:s;
- s:/+$::;
- s:^(\./)*::;
- "\Q$_\E\/.*|\Q$_\E";
- } @installed);
- $installed=qr{^($installed)$};
- find(sub {
- -f || -l || return;
- $_="$File::Find::dir/$_";
- if (! /$installed/ && ! excludefile($_)) {
- my $file=$_;
- $file=~s/^\Q$srcdir\E\///;
- push @missing, $file;
- }
- }, $srcdir);
- if (@missing) {
- warning "$_ exists in $srcdir but is not installed to anywhere" foreach @missing;
- if ($dh{FAIL_MISSING}) {
- error("missing files, aborting");
- }
+ my @options;
+ foreach (@{$dh{EXCLUDE}}) {
+ push(@options, '--exclude', $_);
}
+ push(@options, '--sourcedir', $dh{SOURCEDIR}) if defined($dh{SOURCEDIR});
+ push @options, "--list-missing" if $dh{LIST_MISSING};
+ push @options, "--fail-missing" if $dh{FAIL_MISSING};
+ doit("dh_missing", @options);
+}
+
+sub compute_dest {
+ my ($source_dir, $dest) = @_;
+
+ $dest =~ s/^(.*\/)?\Q$srcdir\E\///;
+ $dest =~ s/^(.*\/)?\Q$source_dir\E\///;
+ $dest = dirname("/".$dest);
+
+ return $dest;
}
+=head1 EXAMPLES
+
+Here are some small examples of configuration files for dh_install.
+
+ # Install my-prog into usr/bin (as "usr/bin/my-prog")
+ my-prog usr/bin
+
+ # Install a plugins directory into usr/share/my-prog
+ # (as "usr/share/my-prog/plugins/")
+ plugins usr/share/my-prog
+
+ # Install a file with spaces in into usr/share/my-prog/data
+ # (as "usr/share/my-prog/data/my datafile with spaces.txt")
+ # ASSUMES COMPAT 13, where substitution patterns are available
+ my${Space}datafile${Space}with${Space}spaces.txt usr/share/my-prog/data
+
+ # Install a library into the multi-arch lib directory
+ # ASSUMES COMPAT 13, where substitution patterns are available
+ build/output/libfrop*.so.* usr/lib/${DEB_HOST_MULTIARCH}
+
=head1 LIMITATIONS
B<dh_install> cannot rename files or directories, it can only install them
with the names they already have into wherever you want in the package
build tree.
+
+However, renaming can be achieved by using B<dh-exec> with compatibility level 9 or
+later. An example debian/I<package>.install file using B<dh-exec>
+could look like:
+
+ #!/usr/bin/dh-exec
+ debian/default.conf => /etc/my-package/start.conf
+
+Please remember the following three things:
+
+=over 4
+
+=item * The package must be using compatibility level 9 or later (see L<debhelper(7)>)
+
+=item * The package will need a build-dependency on dh-exec.
+
+=item * The install file must be marked as executable.
+
+=back
=head1 SEE ALSO
diff --git a/dh_installalternatives b/dh_installalternatives
new file mode 100755
index 00000000..7bfbae52
--- /dev/null
+++ b/dh_installalternatives
@@ -0,0 +1,193 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+dh_installalternatives - install declarative alternative rules
+
+=cut
+
+use strict;
+use warnings;
+use constant LINE_PREFIX => ' ' . q{\\} . "\n ";
+use Debian::Debhelper::Dh_Lib;
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_installalternatives> [S<I<debhelper options>>]
+
+=head1 DESCRIPTION
+
+B<dh_installalternatives> is a debhelper program that is responsible for
+parsing the declarative alternatives format and insert the relevant
+maintscripts snippets to interface with L<update-alternatives(1)>
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.alternatives
+
+An example of the format:
+
+ Name: editor
+ Link: /usr/bin/editor
+ Alternative: /usr/bin/vim.basic
+ Dependents:
+ /usr/share/man/man1/editor.1.gz editor.1.gz /usr/share/man/man1/vim.1.gz
+ /usr/share/man/fr/man1/editor.1.gz editor.fr.1.gz /usr/share/man/fr/man1/vim.1.gz
+ /usr/share/man/it/man1/editor.1.gz editor.it.1.gz /usr/share/man/it/man1/vim.1.gz
+ /usr/share/man/pl/man1/editor.1.gz editor.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
+ /usr/share/man/ru/man1/editor.1.gz editor.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
+ Priority: 50
+
+The fields B<Link>, B<Name>, B<Alternative>, and B<Priority> are mandatory and correspond
+to the L<update-alternatives(1)> B<--install> parameters B<link>, B<name>, B<path>, and
+B<priority> respectively.
+
+The B<Dependents> field is optional and consists of one or more lines. Each non-empty
+line must contain exactly 3 space separated values that match (in order) the values passed
+to the B<--slave> parameter for L<update-alternatives(1)>.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-n>, B<--no-scripts>
+
+Do not modify F<postinst>/F<postrm>/F<prerm> scripts.
+
+=back
+
+=cut
+
+init();
+
+# Explicitly discard attempts to use --name; it does not make sense for
+# this helper.
+if ($dh{NAME}) {
+ warning('Ignoring unsupported --name option');
+}
+$dh{NAME} = undef;
+
+# PROMISE: DH NOOP WITHOUT alternatives cli-options()
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp = tmpdir($package);
+ my $alternatives = pkgfile($package, 'alternatives');
+
+ if (-f $alternatives) {
+ _parse_alternatives_file_and_generate_maintscripts($package, $tmp, $alternatives);
+ }
+}
+
+sub _parse_alternative_and_generate_maintscript {
+ my ($package, $tmpdir, $alternatives_file, $ctrl) = @_;
+
+ my $link_name = $ctrl->{'Name'} // error("Missing mandatory \"Name\" field in ${alternatives_file}");
+ my $link_path = $ctrl->{'Link'}
+ // error("Missing mandatory \"Link\" field for \"${link_name}\" in ${alternatives_file}");
+ my $impl_path = $ctrl->{'Alternative'}
+ // error("Missing mandatory \"Alternative\" field for \"${link_name}\" in ${alternatives_file}");
+ my $priority = $ctrl->{'Priority'}
+ // error("Missing mandatory \"Priority\" field for \"${link_name}\" in ${alternatives_file}");
+ my %maintscript_options;
+
+ if (index($link_name, '/') > -1) {
+ error(qq{Invalid link name "${link_name}" in "${alternatives_file}": Must not contain slash});
+ }
+ my $actual_impl_path = "${tmpdir}/${impl_path}";
+ if ( ! -l $actual_impl_path && ! -e _) {
+ error(qq{Alternative "${impl_path}" for "${link_name}" in ${alternatives_file} does not exist in ${tmpdir}});
+ }
+ if ( -d $actual_impl_path) {
+ error(qq{Alternative "${impl_path}" for "${link_name}" in ${alternatives_file} is a directory});
+ }
+ if ($link_name eq $impl_path) {
+ error(qq{The link name cannot be the same as the implementation path "${link_name}" (in "${alternatives_file}")});
+ }
+
+ $maintscript_options{'RM_OPTIONS'} = "--remove ${link_name} ${impl_path}";
+ $maintscript_options{'INSTALL_OPTIONS'} = "--install ${link_path} ${link_name} ${impl_path} ${priority}";
+
+ if (defined(my $slave_link_text = $ctrl->{'Dependents'})) {
+ my (%dlink_dup, @dependent_links);
+ for my $line (split(/\n/, $slave_link_text)) {
+ my ($dlink_name, $dlink_path, $dimpl_path, $trailing);
+ my $error_with_def = 0;
+ $line =~ s/^\s++//;
+ $line =~ s/\s++$//;
+ next if $line eq ''; # Ignore empty lines
+ ($dlink_path, $dlink_name, $dimpl_path, $trailing) = split(' ', $line, 4);
+ if (not $dlink_name) {
+ warning(qq{Missing link name value (2nd item) for dependent link "${dlink_name}" for "${link_name}"}
+ . qq{ in "${alternatives_file}"});
+ $error_with_def = 1;
+ } elsif (index($dlink_name, '/') > -1) {
+ warning(qq{Invalid dependent link name "${dlink_name}" for "${link_name}"}
+ . qq{ in "${alternatives_file}": Must not contain slash});
+ $error_with_def = 1;
+ } elsif ($dlink_dup{$dlink_name}) {
+ warning(qq{Dependent link "${dlink_name}" is seen more than once for "${link_name}"}
+ . qq{ in ${alternatives_file}});
+ $error_with_def = 1;
+ }
+ if (not $dimpl_path) {
+ warning(qq{Missing path (alternative) value (3rd item) for dependent link "${dlink_name}"}
+ . qq{ for "${link_name}" in "${alternatives_file}"});
+ $error_with_def = 1;
+ }
+ if ($dlink_name eq $dimpl_path) {
+ warning(qq{The link name cannot be the same as the implementation path for "${dlink_name}"}
+ . qq{ in "${alternatives_file}"});
+ $error_with_def = 1;
+ }
+ if ($trailing) {
+ warning(qq{Trailing information for dependent link "${dlink_name}" for "${link_name}"}
+ . qq{ in "${alternatives_file}"});
+ warning("Dependent links must consist of exactly 3 space-separated values");
+ $error_with_def = 1;
+ }
+ if ($error_with_def) {
+ my $link_id = $dlink_name // ('no ' . (scalar(@dependent_links) + 1));
+ error("Error parsing dependent link ${link_id} for \"${link_name}\" in ${alternatives_file}.");
+ }
+ push(@dependent_links, "--slave $dlink_path $dlink_name $dimpl_path");
+ }
+ error("Empty \"Dependents\" field for \"${link_name}\" in ${alternatives_file} (please remove it or add an entry)")
+ if not @dependent_links;
+ $maintscript_options{'INSTALL_OPTIONS'} .= LINE_PREFIX . join(LINE_PREFIX, @dependent_links);
+ }
+ for my $wrong_name (qw(Slave Slaves Slave-Links)) {
+ if ($ctrl->{$wrong_name}) {
+ error("Please use Dependents instead of ${wrong_name}");
+ }
+ }
+
+ autoscript($package, 'postinst', 'postinst-alternatives', \%maintscript_options);
+ autoscript($package, 'prerm', 'prerm-alternatives', \%maintscript_options);
+ return;
+}
+
+sub _parse_alternatives_file_and_generate_maintscripts {
+ my ($package, $tmpdir, $alternatives_file) = @_;
+ my ($ctrl, $fd);
+ require Dpkg::Control::HashCore;
+ open($fd, '<', $alternatives_file) or error("open $alternatives_file failed: $!");
+ while (defined($ctrl = Dpkg::Control::HashCore->new) and ($ctrl->parse($fd, $alternatives_file))) {
+ _parse_alternative_and_generate_maintscript($package, $tmpdir, $alternatives_file, $ctrl);
+ }
+ close($fd);
+ return;
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=cut
diff --git a/dh_installcatalogs b/dh_installcatalogs
index f65ab7cb..aa5f45d5 100755
--- a/dh_installcatalogs
+++ b/dh_installcatalogs
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,12 @@ dh_installcatalogs - install and register SGML Catalogs
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
-my $sgmlbasever = "1.26+nmu2";
+our $VERSION = DH_BUILTIN_VERSION;
+
+my $sgmlbasever = "1.28";
=head1 SYNOPSIS
@@ -25,9 +28,10 @@ F</etc/sgml/I<package>.cat>.
This command automatically adds maintainer script snippets for
registering and unregistering the catalogs and supercatalogs (unless
-B<-n> is used). These snippets are inserted into the maintainer scripts
-by B<dh_installdeb>; see L<dh_installdeb(1)> for an explanation of
-Debhelper maintainer script snippets.
+B<-n> is used). These snippets are inserted into the maintainer
+scripts and the B<triggers> file by B<dh_installdeb>; see
+L<dh_installdeb(1)> for an explanation of Debhelper maintainer script
+snippets.
A dependency on B<sgml-base> will be added to B<${misc:Depends}>, so be
sure your package uses that variable in F<debian/control>.
@@ -44,15 +48,19 @@ catalog resides in the source tree, and I<dest> indicates the destination
location for the catalog under the package build area. I<dest> should
start with F</usr/share/sgml/>.
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
+
=back
=head1 OPTIONS
=over 4
-=item B<-n>, B<--noscripts>
+=item B<-n>, B<--no-scripts>
-Do not modify F<postinst>/F<postrm>/F<prerm> scripts.
+Do not modify F<postinst>/F<postrm>/F<prerm> scripts nor add an
+activation trigger.
=back
@@ -66,7 +74,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);
@@ -79,38 +87,36 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
foreach my $line (filedoublearray($sgmlcatlistfile)) {
my $source = $line->[0];
my $dest = $line->[1];
- my $fulldest = "$tmpdir/$dest";
+ my $fulldest = "$tmpdir/$dest";
$fulldest =~ s|//|/|g; # beautification
if (! -d dirname($fulldest)) {
- doit("install","-d","-m755",$tmpdir."/".dirname($dest));
+ # Ensure the parent exist
+ install_dir($tmpdir."/".dirname($dest));
}
- doit("install","-p","-m644",$source,$fulldest);
-
+ install_file($source,$fulldest);
+
push(@sgmlinstalled,$dest);
}
}
if (@sgmlinstalled) {
addsubstvar($package, "misc:Depends", "sgml-base", ">= $sgmlbasever");
- if (! -d "$tmpdir/etc/sgml") {
- doit("install","-d","-m755","$tmpdir/etc/sgml");
- }
+ install_dir("$tmpdir/etc/sgml");
my $centralcat = "/etc/sgml/$package.cat";
- open(CENTRALCAT, ">", "$tmpdir$centralcat") || error("failed to write to $tmpdir$centralcat");
+ open(my $fd, ">", "$tmpdir$centralcat") || error("failed to write to $tmpdir$centralcat");
foreach my $sgmldest (@sgmlinstalled) {
- print CENTRALCAT "CATALOG " . $sgmldest . "\n";
+ print {$fd} "CATALOG " . $sgmldest . "\n";
}
- close CENTRALCAT;
+ close($fd) or error("close $tmpdir$centralcat: $!");
if (! $dh{NOSCRIPTS}) {
- autoscript($package, "preinst", "preinst-sgmlcatalog",
- "s%#CENTRALCAT#%$centralcat%g;");
+ autotrigger($package, "activate-await", "update-sgmlcatalog");
autoscript($package, "postrm", "postrm-sgmlcatalog",
- "s%#CENTRALCAT#%$centralcat%g;");
+ { 'CENTRALCAT' => $centralcat });
}
}
else {
diff --git a/dh_installchangelogs b/dh_installchangelogs
index edd7f9f3..49c3821c 100755
--- a/dh_installchangelogs
+++ b/dh_installchangelogs
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,30 +7,48 @@ dh_installchangelogs - install changelogs into package build directories
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+use Time::Piece;
+
+our $VERSION = DH_BUILTIN_VERSION;
=head1 SYNOPSIS
-B<dh_installchangelogs> [S<I<debhelper options>>] [B<-k>] [B<-X>I<item>] [I<upstream>]
+B<dh_installchangelogs> [S<I<debhelper options>>] [B<-k>] [B<-X>I<item>] [B<--no-trim>] [I<upstream>]
=head1 DESCRIPTION
B<dh_installchangelogs> is a debhelper program that is responsible for
installing changelogs into package build directories.
-An upstream F<changelog> file may be specified as an option. If none is
-specified, it looks for files with names that seem likely to be changelogs.
-(In compatibility level 7 and above.)
-
-If there is an upstream F<changelog> file, it will be be installed as
-F<usr/share/doc/package/changelog> in the package build directory.
-
-If the upstream changelog is is a F<html> file (determined by file
+An upstream F<changelog> file may be specified as an option. If none
+is specified, B<dh_installchangelogs> may look for files with names
+that seem likely to be changelogs as described in the next paragraphs.
+
+In non-native packages, B<dh_installchangelogs> will first look for
+changelog files installed by the upstream build system into F<<
+usr/share/doc/I<package> >> (of the package build directory) and
+rename the most likely candidate (if any) to F<<
+usr/share/doc/I<package>/changelog >>. Note that
+B<dh_installchangelogs> does I<not> look into any source directory
+(such as F<debian/tmp>). Otherwise, B<dh_installchangelogs> (at
+compatibility level 7 or any later) will look for changelog files in
+the source directory (e.g. the root or the F<docs> subdirectory). It
+will look for F<changelog>, F<changes> and F<history> optionally with
+common extensions (such as F<.txt>, F<.md> and F<.rst>).
+
+If a changelog file is specified and is an F<html> file (determined by file
extension), it will be installed as F<usr/share/doc/package/changelog.html>
instead. If the html changelog is converted to plain text, that variant
-can be specified as a second upstream changelog file. When no plain
-text variant is specified, a short F<usr/share/doc/package/changelog>
-is generated, pointing readers at the html changelog file.
+can be specified as a second parameter. When no plain text variant is
+specified, a short F<usr/share/doc/package/changelog> is generated,
+pointing readers at the html changelog file.
+
+The B<debchange>-style Debian changelogs are trimmed to include only
+entries more recent than the release date of I<oldstable>.
+No trimming will be performed if the B<--no-trim> option is passed or
+if the B<DEB_BUILD_OPTIONS> environment variable contains B<notrimdch>.
=head1 FILES
@@ -73,6 +91,13 @@ package refers to the F<changelog> file.
Exclude upstream F<changelog> files that contain I<item> anywhere in their
filename from being installed.
+Note that directory name of the changelog is also part of the match.
+
+=item B<--no-trim>
+
+Install the full changelog, not its trimmed version that includes only
+recent entries.
+
=item I<upstream>
Install this file as the upstream changelog.
@@ -81,76 +106,30 @@ Install this file as the upstream changelog.
=cut
-# For binNMUs the first changelog entry is written into an extra file to
-# keep the packages coinstallable.
-sub install_binNMU_changelog {
- my ($package, $input_fn, $changelog_name)=@_;
-
- open (my $input, "<", $input_fn);
- my $line=<$input>;
- if (defined $line && $line =~ /\A\S.*;.*\bbinary-only=yes/) {
- my $mask=umask 0022;
-
- my @stat=stat $input_fn or error("could not stat $input_fn: $!");
- my $tmp=tmpdir($package);
- my $output_fn="$tmp/usr/share/doc/$package/$changelog_name";
- open my $output, ">", $output_fn
- or error("could not open $output_fn for writing: $!");
- my $arch=package_arch($package);
- my $output_fn_binary="$output_fn.$arch";
- open my $output_binary, ">", $output_fn_binary
- or error("could not open $output_fn_binary for writing: $!");
-
- do {
- print {$output_binary} $line
- or error("Could not write to $output_fn_binary: $!");
- } while(defined($line=<$input>) && $line !~ /\A\S/);
- close $output_binary or error("Couldn't close $output_fn_binary: $!");
- utime $stat[8], $stat[9], $output_fn_binary;
-
- do {
- print {$output} $line
- or error("Could not write to $output_fn: $!");
- } while(defined($line=<$input>));
-
- close $input or error("Couldn't close $input_fn: $!");
- close $output or error("Couldn't close $output_fn: $!");
- utime $stat[8], $stat[9], $output_fn;
-
- chown 0, 0, $output_fn, $output_fn_binary
- or error "chown: $!";
-
- umask $mask;
-
- return 1;
- }
- else {
- close $input;
- return 0;
- }
-}
-
-init();
+init(options => {
+ 'keep|k' => \$dh{K_FLAG},
+ 'no-trim' => \$dh{NO_TRIM},
+});
my $news_name="NEWS.Debian";
my $changelog_name="changelog.Debian";
-my $upstream=shift;
-my $upstream_text=$upstream;
-my $upstream_html;
-if (! defined $upstream) {
+use constant CUTOFF_DATE_STR => "2019-07-06"; # oldstable = Debian 10 Buster
+use constant CUTOFF_DATE => Time::Piece->strptime(CUTOFF_DATE_STR, "%Y-%m-%d");
+use constant MIN_NUM_ENTRIES => 4;
+
+my $explicit_changelog = @ARGV ? 1 : 0;
+my $default_upstream = $ARGV[0];
+my $default_upstream_text=$default_upstream;
+my $default_upstream_html;
+if (! defined($default_upstream)) {
if (! isnative($dh{MAINPACKAGE}) && !compat(6)) {
foreach my $dir (qw{. doc docs}) {
- my @files=sort glob("$dir/*");
- foreach my $name (qw{changelog changes changelog.txt changes.txt history history.txt changelog.md}) {
- my @matches=grep {
- lc basename($_) eq $name && -s $_ && ! excludefile($_)
- } @files;
- if (@matches) {
- $upstream=shift @matches;
- $upstream_text=$upstream;
- last;
- }
+ my $changelog = find_changelog($dir);
+ if ($changelog) {
+ $default_upstream = $changelog;
+ $default_upstream_text = $default_upstream;
+ last;
}
}
}
@@ -158,85 +137,230 @@ if (! defined $upstream) {
$changelog_name='changelog';
}
}
-elsif ($upstream=~m/\.html?$/i) {
- $upstream_html=$upstream;
- $upstream_text=shift;
+elsif ($default_upstream=~m/\.html?$/i) {
+ $default_upstream_html=$default_upstream;
+ $default_upstream_text=$ARGV[1];
}
-foreach my $package (@{$dh{DOPACKAGES}}) {
- next if is_udeb($package);
-
- my $tmp=tmpdir($package);
- my $changelog=pkgfile($package,"changelog");
- my $news=pkgfile($package,"NEWS");
-
- if (!$changelog) {
- $changelog="debian/changelog";
- }
- if (!$news) {
- $news="debian/NEWS";
+sub find_changelog {
+ my ($dir) = @_;
+ my @files=sort glob("$dir/*");
+ foreach my $suffix ('', qw(.txt .md .rst)) {
+ foreach my $name (qw{changelog changes history}) {
+ my @matches=grep {
+ lc basename($_) eq "$name$suffix" && -f $_ && -s _ && ! excludefile($_)
+ } @files;
+ if (@matches) {
+ return shift(@matches);
+ }
+ }
}
+ return;
+}
- if (! -e $changelog) {
- error("could not find changelog $changelog");
+sub install_debian_changelog {
+ my ($changelog, $package, $arch, $tmp) = @_;
+
+ if ($dh{NO_TRIM} || get_buildoption("notrimdch")) {
+ # Install the whole changelog.
+ install_file($changelog, "$tmp/usr/share/doc/$package/$changelog_name");
+ return;
}
- # If it is a symlink to a documentation directory from the same
- # source package, then don't do anything. Think multi-binary
- # packages that depend on each other and want to link doc dirs.
- if (-l "$tmp/usr/share/doc/$package") {
- my $linkval=readlink("$tmp/usr/share/doc/$package");
- my %allpackages=map { $_ => 1 } getpackages();
- if ($allpackages{basename($linkval)}) {
+ local $ENV{LC_ALL} = "C.UTF-8";
+
+ my $changelog_trimmed = generated_file($package, "dh_installchangelogs.dch.trimmed");
+ my $changelog_binnmu = generated_file($package, "dh_installchangelogs.dch.binnmu");
+
+ open(my $log1, "<", $changelog) or error("Cannot open($changelog): $!");
+ open(my $log2, ">", $changelog_trimmed) or error("Cannot open($changelog_trimmed): $!");
+
+ my $error_in_changelog = 0;
+ my $is_binnmu = 0;
+ my $entry = "";
+ my $entry_num = 0;
+ while (my $line=<$log1>) {
+ $entry .= $line;
+
+ # Identify binNUM packages by binary-only=yes in the first line of the changelog.
+ if (($. == 1) && ($line =~ /\A\S.*;.*\bbinary-only=yes/)) {
+ $is_binnmu = 1;
+ }
+
+ # Get out of binNMU mode once we are in the second entry (and throw away one empty line).
+ if ($is_binnmu && ($entry_num eq 1)) {
+ $is_binnmu = 0;
+ $entry_num = 0;
+ $entry = "";
next;
}
- # Even if the target doesn't seem to be a doc dir from the
- # same source package, don't do anything if it's a dangling
- # symlink.
- next unless -d "$tmp/usr/share/doc/$package";
- }
- if (! -d "$tmp/usr/share/doc/$package") {
- doit("install","-d","$tmp/usr/share/doc/$package");
- }
+ if ($line =~ /^\s*--\s+.*?\s+<[^>]*>\s+(?<timestamp>.*)$/) {
+ if ($is_binnmu && ($entry_num eq 0)) {
+ # For binNMUs the first changelog entry is written into an extra file to
+ # keep the packages coinstallable.
+ open(my $log_binnum, ">", $changelog_binnmu) or error("Cannot open($changelog_binnmu): $!");
+ print($log_binnum $entry) or error("Cannot write($changelog_binnmu): $!");
+ close($log_binnum) or error("Cannot close($changelog_binnmu): $!");
+
+ # Continue processing the rest of the changelog.
+ $entry = "";
+ $entry_num++;
+ next;
+ }
+
+ my $timestamp = $+{timestamp};
+ $timestamp =~ s/^[A-Za-z]+, +//;
+
+ my $entry_time;
+ eval { $entry_time = Time::Piece->strptime($timestamp, '%d %b %Y %T %z') };
+ if (! defined $entry_time) {
+ $error_in_changelog = 1;
+ warning("Could not parse timestamp '$timestamp'. $changelog will not be trimmed.");
+ truncate($log2, 0) or error("Cannot truncate($changelog_trimmed): $!");
+ last;
+ }
- if (! $dh{NO_ACT}) {
- if (! install_binNMU_changelog($package, $changelog, $changelog_name)) {
- doit("install","-o",0,"-g",0,"-p","-m644",$changelog,
- "$tmp/usr/share/doc/$package/$changelog_name");
+ # Stop processing the changelog if we reached the cut-off date and
+ # at least MIN_NUM_ENTRIES entries have been added.
+ if (($entry_time < CUTOFF_DATE) && ($entry_num >= MIN_NUM_ENTRIES)) {
+ last;
+ }
+
+ # Append entry to trimmed changelog.
+ print($log2 $entry) or error("Cannot write($changelog_trimmed): $!");
+ $entry = "";
+ $entry_num++;
}
}
+ # If the whole changelog has not been read, then it has been trimmed.
+ my $has_been_trimmed = !eof($log1);
+
+ close($log1) or error("Cannot close($changelog): $!");
+ close($log2) or error("Cannot close($changelog_trimmed): $!");
+
+ if ($error_in_changelog) {
+ # If the changelog could not be trimmed, fall back to the full changelog.
+ warning("$changelog could not be trimmed. The full changelog will be installed.");
+ $changelog_trimmed = $changelog;
+ } elsif ($has_been_trimmed) {
+ # Otherwise add a comment stating that this changelog has been trimmed.
+ my $note = "\n";
+ $note .= "# Older entries have been removed from this changelog.\n";
+ $note .= "# To read the complete changelog use `apt changelog $package`.\n";
+ open(my $log2, ">>", $changelog_trimmed) or error("Cannot open($changelog_trimmed): $!");
+ print($log2 $note) or error("Cannot write($changelog_trimmed): $!");
+ close($log2) or error("Cannot close($changelog_trimmed): $!");
+ }
- if (-e $news) {
- doit("install","-o",0,"-g",0,"-p","-m644",$news,
- "$tmp/usr/share/doc/$package/$news_name");
+ install_file($changelog_trimmed, "$tmp/usr/share/doc/$package/$changelog_name");
+ if (-s $changelog_binnmu) {
+ install_file($changelog_binnmu, "$tmp/usr/share/doc/$package/$changelog_name.$arch");
}
+}
+
+on_pkgs_in_parallel {
+ foreach my $package (@_) {
+ next if is_udeb($package);
+
+ my $tmp=tmpdir($package);
+ my $changelog=pkgfile($package,"changelog");
+ my $news=pkgfile($package,"NEWS");
+ my $upstream_changelog;
+ my ($upstream_changelog_text, $upstream_changelog_html);
+ my $changelog_from_tmp_dir = 0;
+
+ if ($explicit_changelog) {
+ $upstream_changelog = $default_upstream;
+ $upstream_changelog_text = $default_upstream_text;
+ $upstream_changelog_html = $default_upstream_html;
+ } else {
+ # Check if the upstream build system provided a
+ # changelog
+ $upstream_changelog = find_changelog("${tmp}/usr/share/doc/${package}");
+ if ($upstream_changelog) {
+ $upstream_changelog_text = $upstream_changelog;
+ $changelog_from_tmp_dir = 1;
+ } else {
+ $upstream_changelog = $default_upstream;
+ $upstream_changelog_text = $upstream_changelog;
+ }
+ }
+
+ if (!$changelog) {
+ $changelog="debian/changelog";
+ }
+ if (!$news) {
+ $news="debian/NEWS";
+ }
- if (defined $upstream) {
- my $link_to;
- my $base="$tmp/usr/share/doc/$package";
- if (defined $upstream_text) {
- doit("install","-o",0,"-g",0,"-p","-m644",
- $upstream_text,"$base/changelog");
- $link_to='changelog';
+ if (! -e $changelog) {
+ error("could not find changelog $changelog");
}
- if (defined $upstream_html) {
- doit("install","-o",0,"-g",0,"-p","-m644",
- $upstream_html,"$base/changelog.html");
- $link_to='changelog.html';
- if (! defined $upstream_text) {
- complex_doit("echo 'See changelog.html.gz' > $base/changelog");
- doit("chmod","644","$base/changelog");
- doit("chown","0:0","$base/changelog");
+
+ # If it is a symlink to a documentation directory from the same
+ # source package, then don't do anything. Think multi-binary
+ # packages that depend on each other and want to link doc dirs.
+ if (-l "$tmp/usr/share/doc/$package") {
+ my $linkval=readlink("$tmp/usr/share/doc/$package");
+ my %allpackages=map { $_ => 1 } getpackages();
+ if ($allpackages{basename($linkval)}) {
+ next;
}
+ # Even if the target doesn't seem to be a doc dir from the
+ # same source package, don't do anything if it's a dangling
+ # symlink.
+ next unless -d "$tmp/usr/share/doc/$package";
+ }
+
+ install_dir("$tmp/usr/share/doc/$package");
+
+ if (! $dh{NO_ACT}) {
+ my $arch = package_binary_arch($package);
+ install_debian_changelog($changelog, $package, $arch, $tmp);
}
- if ($dh{K_FLAG}) {
- # Install symlink to original name of the upstream changelog file.
- # Use basename in case original file was in a subdirectory or something.
- doit("ln","-sf",$link_to,"$tmp/usr/share/doc/$package/".basename($upstream));
+
+ if (-e $news) {
+ install_file($news, "$tmp/usr/share/doc/$package/$news_name");
+ }
+
+ if (defined($upstream_changelog)) {
+ my $link_to;
+ my $base="$tmp/usr/share/doc/$package";
+ if (defined($upstream_changelog_text)) {
+ if ($changelog_from_tmp_dir and not $dh{K_FLAG}) {
+ # mv (unless if it is the same file)
+ rename_path($upstream_changelog_text, "$base/changelog")
+ if basename($upstream_changelog_text) ne 'changelog';
+ reset_perm_and_owner(0644, "$base/changelog");
+ } else {
+ install_file($upstream_changelog_text, "$base/changelog");
+ }
+ $link_to='changelog';
+ }
+ if (defined($upstream_changelog_html)) {
+ if ($changelog_from_tmp_dir and not $dh{K_FLAG}) {
+ # mv (unless if it is the same file)
+ rename_path($upstream_changelog_html, "$base/changelog.html")
+ if basename($upstream_changelog_text) ne 'changelog.html';
+ reset_perm_and_owner(0644, "$base/changelog.html");
+ } else {
+ install_file($upstream_changelog_html,"$base/changelog.html");
+ }
+ $link_to='changelog.html';
+ if (! defined($upstream_changelog_text)) {
+ complex_doit("echo 'See changelog.html.gz' > $base/changelog");
+ reset_perm_and_owner(0644,"$base/changelog");
+ }
+ }
+ if ($dh{K_FLAG}) {
+ # Install symlink to original name of the upstream changelog file.
+ # Use basename in case original file was in a subdirectory or something.
+ doit('ln', '-sf', $link_to, "$tmp/usr/share/doc/$package/".basename($upstream_changelog));
+ }
}
}
-}
+};
=head1 SEE ALSO
diff --git a/dh_installcron b/dh_installcron
index 5e5851c1..9325b0ef 100755
--- a/dh_installcron
+++ b/dh_installcron
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installcron - install cron scripts into etc/cron.*
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installcron> [S<B<debhelper options>>] [B<--name=>I<name>]
@@ -28,6 +31,8 @@ cron scripts.
=item debian/I<package>.cron.monthly
+=item debian/I<package>.cron.yearly
+
=item debian/I<package>.cron.hourly
=item debian/I<package>.cron.d
@@ -53,26 +58,22 @@ 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.yearly cron.d cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
- foreach my $type (qw{hourly daily weekly monthly}) {
+ foreach my $type (qw{hourly daily weekly monthly yearly}) {
my $cron=pkgfile($package,"cron.$type");
if ($cron) {
- if (! -d "$tmp/etc/cron.$type") {
- doit("install","-o",0,"-g",0,"-d","$tmp/etc/cron.$type");
- }
- doit("install",$cron,"$tmp/etc/cron.$type/".pkgfilename($package));
+ install_dir("$tmp/etc/cron.$type");
+ install_prog($cron,"$tmp/etc/cron.$type/".pkgfilename($package));
}
}
- # Seperate because this needs to be mode 644.
+ # Separate because this needs to be mode 644.
my $cron=pkgfile($package,"cron.d");
if ($cron) {
- if (! -d "$tmp/etc/cron.d") {
- doit("install","-o",0,"-g",0,"-d","$tmp/etc/cron.d");
- }
- doit("install","-m",644,$cron,"$tmp/etc/cron.d/".pkgfilename($package));
+ install_dir("$tmp/etc/cron.d");
+ install_file($cron,"$tmp/etc/cron.d/".pkgfilename($package));
}
}
diff --git a/dh_installdeb b/dh_installdeb
index 3fc802c8..df13bc67 100755
--- a/dh_installdeb
+++ b/dh_installdeb
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installdeb - install files into the DEBIAN directory
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installdeb> [S<I<debhelper options>>]
@@ -33,8 +36,14 @@ correct permissions.
These maintainer scripts are installed into the F<DEBIAN> directory.
-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).
+
+The B<#DEBHELPER#> token should be placed on its own line as it is
+often replaced by a multi-line shell script.
=item I<package>.triggers
@@ -42,43 +51,195 @@ shell script snippets generated by other debhelper commands.
These control files are installed into the F<DEBIAN> directory.
+Note that I<package>.shlibs is only installed in compat level 9 and
+earlier. In compat 10, please use L<dh_makeshlibs(1)>.
+
=item I<package>.conffiles
-This control file will be installed into the F<DEBIAN> directory.
+This file will be installed into the F<DEBIAN> directory. The
+provided file will be enriched by debhelper to include all the
+B<conffiles> auto-detected by debhelper (the maintainer should
+not list anything there as debhelper assumes it should handle that part).
-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.
+This file is primarily useful for using "special" entries such as
+the B<< remove-on-upgrade >> feature from dpkg.
=item I<package>.maintscript
-Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands and
-parameters. Any shell metacharacters will be escaped, so arbitrary shell
-code cannot be inserted here. For example, a line such as C<mv_conffile
-/etc/oldconffile /etc/newconffile> will insert maintainer script snippets
-into all maintainer scripts sufficient to move that conffile.
+Lines in this file correspond to L<dpkg-maintscript-helper(1)>
+commands and parameters. However, the "maint-script-parameters"
+should I<not> be included as debhelper will add those automatically.
+
+Example:
+
+ # Correct
+ rm_conffile /etc/obsolete.conf 0.2~ foo
+ # INCORRECT
+ rm_conffile /etc/obsolete.conf 0.2~ foo -- "$@"
+
+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 C<mv_conffile /etc/oldconffile /etc/newconffile> will insert
+maintainer script snippets into all maintainer scripts sufficient to
+move that conffile.
+
+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 embed arbitrary shell code in earlier compat levels.
+
+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.
+
+Where possible, B<dh_installdeb> may choose to rewrite some or all
+of the entries into equivalent features supported in dpkg without
+relying on maintainer scripts at its sole discretion (examples
+include rewriting B<rm_conffile> into dpkg's B<remove-on-upgrade>).
+The minimum requirement for activating this feature is that debhelper
+runs in compat 10 or later.
+
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
=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 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 by 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.
my %maintscript_predeps = (
"rm_conffile" => "",
"mv_conffile" => "",
- "symlink_to_dir" => "1.17.5",
- "dir_to_symlink" => "1.17.5",
+ "symlink_to_dir" => "",
+ "dir_to_symlink" => "",
+);
+my %maintscript_validator = (
+ "rm_conffile" => \&_validate_conffile_args,
+ "mv_conffile" => \&_validate_conffile_args,
);
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
- if (! -d "$tmp/DEBIAN") {
- doit("install","-o",0,"-g",0,"-d","$tmp/DEBIAN");
- }
+ install_dir("$tmp/DEBIAN");
if (is_udeb($package)) {
# For udebs, only do the postinst, and no #DEBHELPER#.
@@ -86,8 +247,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
foreach my $script (qw{postinst menutest isinstallable}) {
my $f=pkgfile($package,$script);
if ($f) {
- doit("install", "-o", 0, "-g", 0, "-m", 755,
- $f, "$tmp/DEBIAN/$script");
+ install_prog($f, "$tmp/DEBIAN/$script");
}
}
@@ -96,47 +256,164 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
}
my $maintscriptfile=pkgfile($package, "maintscript");
+ my @special_conffiles_entries;
if ($maintscriptfile) {
- foreach my $line (filedoublearray($maintscriptfile)) {
- my $cmd=$line->[0];
- error("unknown dpkg-maintscript-helper command: $cmd")
- unless exists $maintscript_predeps{$cmd};
- addsubstvar($package, "misc:Pre-Depends", "dpkg",
- ">= $maintscript_predeps{$cmd}")
- if length $maintscript_predeps{$cmd};
- my $params=escape_shell(@$line);
- foreach my $script (qw{postinst preinst prerm postrm}) {
- autoscript($package, $script, "maintscript-helper",
- "s!#PARAMS#!$params!g");
+ if (compat(9)) {
+ foreach my $line (filedoublearray($maintscriptfile)) {
+ my $cmd=$line->[0];
+ error("unknown dpkg-maintscript-helper command: $cmd")
+ unless exists $maintscript_predeps{$cmd};
+ addsubstvar($package, "misc:Pre-Depends", "dpkg",
+ ">= $maintscript_predeps{$cmd}")
+ if length $maintscript_predeps{$cmd};
+ my $params=escape_shell(@$line);
+ foreach my $script (qw{postinst preinst prerm postrm}) {
+ autoscript($package, $script, "maintscript-helper",
+ "s!#PARAMS#!$params!g");
+ }
+ }
+ } else {
+ my @maintscripts = filedoublearray($maintscriptfile);
+ my @params;
+ foreach my $line (@maintscripts) {
+ my $cmd=$line->[0];
+ error("unknown dpkg-maintscript-helper command: $cmd")
+ unless exists $maintscript_predeps{$cmd};
+ addsubstvar($package, "misc:Pre-Depends", "dpkg",
+ ">= $maintscript_predeps{$cmd}")
+ if length $maintscript_predeps{$cmd};
+ if (my $validator = $maintscript_validator{$cmd}) {
+ $validator->($package, @{$line});
+ }
+ if (0) { # Disabled for now: #994919 + #994903
+ my $current_conffile = $line->[1];
+ push(@special_conffiles_entries, "remove-on-upgrade ${current_conffile}");
+ addsubstvar($package, "misc:Pre-Depends", "dpkg (>= 1.20.6~)");
+ next;
+ }
+ push(@params, escape_shell(@{$line}) );
+ }
+ if (@params) {
+ foreach my $script (qw{postinst preinst prerm postrm}) {
+ my $subst = sub {
+ my @res;
+ chomp;
+ for my $param (@params) {
+ my $line = $_;
+ $line =~ s{#PARAMS#}{$param}g;
+ push(@res, $line);
+ }
+ $_ = join("\n", @res) . "\n";
+ };
+ autoscript($package, $script, "maintscript-helper", $subst);
+ }
}
}
}
# Install debian scripts.
+ my $package_subst = debhelper_script_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
- foreach my $file (qw{shlibs conffiles triggers}) {
+ my @non_exec_files;
+ # Removed in compat 12.
+ push(@non_exec_files, 'conffiles');
+ # In compat 10, we let dh_makeshlibs handle "shlibs".
+ push(@non_exec_files, 'shlibs') if compat(9);
+ foreach my $file (@non_exec_files) {
my $f=pkgfile($package,$file);
if ($f) {
- doit("install","-o",0,"-g",0,"-m",644,"-p",$f,"$tmp/DEBIAN/$file");
+ install_file($f, "$tmp/DEBIAN/$file");
+ }
+ }
+
+ install_triggers($package, $tmp);
+ if (@special_conffiles_entries) {
+ open(my $fd, '>>', "$tmp/DEBIAN/conffiles");
+ for my $line (@special_conffiles_entries) {
+ print {$fd} "${line}\n";
}
+ close($fd);
}
# Automatic conffiles registration: If it is in /etc, it is a
# conffile.
- if (! compat(2) && -d "$tmp/etc") {
+ if ( -d "$tmp/etc") {
complex_doit("find $tmp/etc -type f -printf '/etc/%P\n' | LC_ALL=C sort >> $tmp/DEBIAN/conffiles");
# Anything found?
if (-z "$tmp/DEBIAN/conffiles") {
- doit("rm", "-f", "$tmp/DEBIAN/conffiles");
+ rm_files("$tmp/DEBIAN/conffiles");
}
- else {
- doit("chmod", 644, "$tmp/DEBIAN/conffiles");
+ }
+
+ if ( -f "$tmp/DEBIAN/conffiles") {
+ reset_perm_and_owner(0644, "$tmp/DEBIAN/conffiles");
+ }
+}
+
+sub install_triggers {
+ my ($package, $tmp) = @_;
+ my $generated = generated_file($package, 'triggers', 0);
+ my @sources = grep { -f $_ } (
+ pkgfile($package, 'triggers'),
+ $generated,
+ );
+ my $target = "$tmp/DEBIAN/triggers";
+ return if not @sources;
+ if (@sources > 1) {
+ my $merged = "${generated}.merged";
+ open(my $ofd, '>', $merged)
+ or error("open ${target} failed: $!");
+ for my $src (@sources) {
+ open(my $ifd, '<', $src)
+ or error("open ${src} failed: $!");
+ print {$ofd} $_ while <$ifd>;
+ close($ifd);
+ }
+ close($ofd) or error("close ${merged} failed: $!");
+ @sources = ($merged);
+ }
+ install_file($sources[0], $target);
+}
+
+sub _validate_conffile_args {
+ my ($package, $cmd, @args) = @_;
+ my ($current_conffile, $new_conffile, $prior_version, $owning_package, $other);
+ for my $arg (@args) {
+ if ($arg eq '--') {
+ _maybe_error("The maintscripts file for $package includes a \"--\" for one of the ${cmd} commands, but it should not");
}
}
+ if ($cmd eq 'rm_conffile') {
+ ($current_conffile, $prior_version, $owning_package, $other) = @args;
+ } else {
+ ($current_conffile, $new_conffile, $prior_version, $owning_package, $other) = @args;
+ }
+ $current_conffile //= '';
+ _maybe_error("The current conffile path for ${cmd} must be present and absolute, got ${current_conffile}")
+ if not $current_conffile or substr($current_conffile, 0, 1) ne '/';
+ _maybe_error("The new conffile path for ${cmd} must be present and absolute, got ${new_conffile}")
+ if $cmd eq 'mv_conffile' and (not $new_conffile or substr($new_conffile, 0, 1) ne '/');
+
+ _maybe_error("The version for ${cmd} ${current_conffile} is not valid, got ${prior_version}")
+ if $prior_version and $prior_version !~ m{^${Debian::Debhelper::Dh_Lib::PKGVERSION_REGEX}$}o;
+ _maybe_error("The owning package for ${cmd} ${current_conffile} is not valid, got ${owning_package}")
+ if $owning_package and $owning_package !~ m{^${Debian::Debhelper::Dh_Lib::PKGNAME_REGEX}$}o;
+ if (defined($other)) {
+ warning("Too many arguments for ${cmd} ${current_conffile}");
+ }
+}
+
+sub _maybe_error {
+ my ($msg) = @_;
+ if (compat(11)) {
+ warning($msg);
+ } else {
+ error($msg);
+ }
}
=head1 SEE ALSO
diff --git a/dh_installdebconf b/dh_installdebconf
index 3eac7c99..79d50d28 100755
--- a/dh_installdebconf
+++ b/dh_installdebconf
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installdebconf - install files used by debconf in package build directories
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installdebconf> [S<I<debhelper options>>] [B<-n>] [S<B<--> I<params>>]
@@ -62,7 +65,7 @@ For this to work, your package should build-depend on F<po-debconf>.
=over 4
-=item B<-n>, B<--noscripts>
+=item B<-n>, B<--no-scripts>
Do not modify F<postrm> script.
@@ -70,30 +73,133 @@ Do not modify F<postrm> script.
Pass the params to B<po2debconf>.
+=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/config <<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 set package-specific values for a given
+token. This is useful when B<dh_installdebconf> 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.config <<EOF
+ # Script for #PACKAGE#
+ #TOKEN#
+ EOF
+ cat >> debian/bar.config <<EOF
+ # Script for #PACKAGE#
+ #TOKEN#
+ EOF
+ cat >> debian/baz.config <<EOF
+ # Script for #PACKAGE#
+ #TOKEN#
+ EOF
+ dh_installdebconf -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.config>,
+to B<unique-bar-value> in F<debian/bar.config> and to B<unique-baz-value>
+in F<debian/baz.config>.
+
+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.config> and it will
+be replaced by B<unique-bar-value>.
+
+=back
+
+=head1 SUBSTITUTION IN MAINTAINER SCRIPTS
+
+The B<dh_installdebconf> will automatically replace the following tokens
+inside a provided maintainer script (if not replaced via B<-D>/B<--define>):
+
+=over 4
+
+=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 by 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_installdebconf> to reject the command with an error in most cases.
+
=cut
-init();
+my %PROVIDED_SUBST;
+
+init(options => {
+ 'define|D=s%' => \%PROVIDED_SUBST,
+});
my @extraparams;
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);
my $config=pkgfile($package,"config");
my $templates=pkgfile($package,"templates");
- if (! -d "$tmp/DEBIAN") {
- doit("install","-o",0,"-g",0,"-d","$tmp/DEBIAN");
- }
+ install_dir("$tmp/DEBIAN");
if (! is_udeb($package)) {
- debhelper_script_subst($package, "config");
+ # Install debian scripts.
+ my $package_subst = debhelper_script_per_package_subst($package, \%PROVIDED_SUBST);
+ debhelper_script_subst($package, "config", $package_subst);
}
if ($templates ne '') {
@@ -103,13 +209,12 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
}
umask(0022); # since I do a redirect below
-
+
if (-d "debian/po") {
complex_doit("po2debconf @extraparams $templates > $tmp/DEBIAN/templates");
}
else {
- doit("install", "-o", 0, "-g", 0, "-m", 644, "-p",
- $templates, "$tmp/DEBIAN/templates");
+ install_file($templates,"$tmp/DEBIAN/templates");
}
}
diff --git a/dh_installdirs b/dh_installdirs
index fe5683d6..8d33b10e 100755
--- a/dh_installdirs
+++ b/dh_installdirs
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,17 +7,24 @@ dh_installdirs - create subdirectories in package build directories
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
-B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [S<I<dir> ...>]
+B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [B<--sourcedir=>I<dir>] [B<--create-in-sourcedir>] [S<I<dir> ...>]
=head1 DESCRIPTION
B<dh_installdirs> is a debhelper program that is responsible for creating
subdirectories in package build directories.
+Many packages can get away with omitting the call to B<dh_installdirs>
+completely. Notably, other B<dh_*> commands are expected to create
+directories as needed.
+
=head1 FILES
=over 4
@@ -26,6 +33,13 @@ subdirectories in package build directories.
Lists directories to be created in I<package>.
+Generally, there is no need to list directories created by the
+upstream build system or directories needed by other B<debhelper>
+commands.
+
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
+
=back
=head1 OPTIONS
@@ -37,6 +51,23 @@ Lists directories to be created in I<package>.
Create any directories specified by command line parameters in ALL packages
acted on, not just the first.
+=item B<--create-in-sourcedir>, B<--no-create-in-sourcedir>
+
+Whether to create the specified directories in the source directory
+(usually F<debian/tmp>) I<in addition to> in the package build directory
+(usually F<< debian/I<package> >>).
+
+The default is B<--no-create-in-sourcedir>.
+
+=item B<--sourcedir=>I<dir>
+
+Consider I<dir> the source directory for the packages acted on instead
+of the default (which is usually F<debian/tmp>).
+
+Please note that this option is dependent on the
+B<--create-in-sourcedir> option (when B<--no-create-in-sourcedir> is
+in effect, this option does nothing in B<dh_installdirs>).
+
=item I<dir> ...
Create these directories in the package build directory of the first
@@ -46,17 +77,21 @@ package acted on. (Or in all packages if B<-A> is specified.)
=cut
-init();
+my $create_in_sourcedir = 0;
+
+init(options => {
+ 'sourcedir=s' => \$dh{SOURCEDIR},
+ '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);
my $file=pkgfile($package,"dirs");
+ my $srcdir = $dh{SOURCEDIR} // default_sourcedir($package);
- if (! -e $tmp) {
- doit("install","-d",$tmp);
- }
+ install_dir($tmp) if compat(10);
my @dirs;
@@ -74,14 +109,22 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
# be in the right directory, but more importantly, it
# protects against the danger of absolute dirs being
# specified.
- @dirs=map {
- $_="$tmp/$_";
- tr:/:/:s; # just beautification.
- $_
- } @dirs;
+ my @make_dirs;
+ push(@make_dirs, map {
+ my $dir = "$tmp/$_";
+ $dir =~ tr:/:/:s; # just beautification.
+ $dir;
+ } @dirs);
+ if ($create_in_sourcedir) {
+ push(@make_dirs, map {
+ my $dir = "${srcdir}/$_";
+ $dir =~ tr:/:/:s; # just beautification.
+ $dir;
+ } @dirs);
+ }
# Create dirs.
- doit("install","-d",@dirs);
+ install_dir(@make_dirs);
}
}
diff --git a/dh_installdocs b/dh_installdocs
index 3eefcdfa..2e4529d1 100755
--- a/dh_installdocs
+++ b/dh_installdocs
@@ -1,4 +1,6 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
+
+=encoding UTF-8
=head1 NAME
@@ -7,8 +9,11 @@ dh_installdocs - install documentation into package build directories
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installdocs> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<file> ...>]
@@ -18,6 +23,20 @@ B<dh_installdocs> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<file> ..
B<dh_installdocs> is a debhelper program that is responsible for installing
documentation into F<usr/share/doc/package> in package build directories.
+In compat 10 and earlier, L<dh_install(1)> may be a better tool for handling
+the upstream documentation, when upstream's own build system installs all the desired documentation
+correctly. In this case, B<dh_installdocs> is still useful for installing
+packaging related documentation (e.g. the F<debian/copyright> file).
+
+From debhelper compatibility level 11 on, B<dh_install> will fall back to
+looking in F<debian/tmp> for files, if it does not find them in the current
+directory (or wherever you've told it to look using B<--sourcedir>).
+
+In compat 11 and later, B<dh_installdocs> offers many of the features that
+L<dh_install(1)> also has. Furthermore, B<dh_installdocs> also supports
+the B<nodoc> build profile to exclude documentation (regardless of compat
+level).
+
=head1 FILES
=over 4
@@ -26,6 +45,9 @@ documentation into F<usr/share/doc/package> in package build directories.
List documentation files to be installed into I<package>.
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
+
=item F<debian/copyright>
The copyright file is installed into all packages, unless a more
@@ -66,6 +88,13 @@ that multiple doc-base files of this style in a single source package
share the same doc-id, they will be installed to
usr/share/doc-base/package-* instead of usr/share/doc-base/doc-id.
+Please be aware that this deduplication is currently done in memory
+only, so for now it requires B<dh_installdocs> to be called no more
+than once during the package build. Calling B<dh_installdocs
+-p>I<package> in combination with using
+F<debian/>I<package>F<.doc-base.*> files can lead to uninstallable
+packages. See L<https://bugs.debian.org/980903> for details.
+
=back
=head1 OPTIONS
@@ -82,6 +111,36 @@ acted on.
Exclude files that contain I<item> anywhere in their filename from
being installed. Note that this includes doc-base files.
+=item B<--sourcedir=>I<dir>
+
+Look in the specified directory for files to be installed. This option
+requires compat 11 or later (it is silently ignored in compat 10 or earlier).
+
+Note that this is not the same as the B<--sourcedirectory> option used
+by the B<dh_auto_>I<*> commands. You rarely need to use this option, since
+B<dh_installman> automatically looks for files in F<debian/tmp> in debhelper
+compatibility level 11 and above.
+
+=item B<--doc-main-package=>I<main-package>
+
+Set the main package for a documentation package. This is used to
+install the documentation of the documentation package in F<<
+/usr/share/doc/I<main-package> >> as recommended by the Debian policy
+manual 3.9.7 in §12.3.
+
+In compat 11 (or later), this option is only useful if debhelper's
+auto-detection of the main package is wrong. The option can also be
+used to silence a warning from debhelper when the auto-detection fails
+but the default happens to be correct.
+
+This option cannot be used when B<dh_installdocs> is instructed to act
+on multiple packages. If you need this option, you will generally
+need to combine it with B<-p> to ensure exactly one package is acted
+on.
+
+Please keep in mind that some documentation (the copyright file,
+README.Debian, etc.) will be unaffected by this option.
+
=item B<--link-doc=>I<package>
Make the documentation directory of all packages acted on be a symlink to
@@ -100,6 +159,28 @@ not be installed.
is to make the documentation directory of a package be a dangling symlink,
before calling B<dh_installdocs>.)
+Please note that this option only applies to the documentation
+directory for the package itself. When the package ships
+documentation for another package (e.g. see B<--doc-main-package>), it
+will not use a symlink for the documentation of the other package.
+
+
+B<CAVEAT 1>: If a previous version of the package was built without this
+option and is now built with it (or vice-versa), it requires a "dir to
+symlink" (or "symlink to dir") migration. Since debhelper has no
+knowledge of previous versions, you have to enable this migration
+itself.
+
+This can be done by providing a "debian/I<package>.maintscript" file
+and using L<dh_installdeb(1)> to provide the relevant maintainer
+script snippets.
+
+B<CAVEAT 2>: The use of B<--link-doc> should only be done when the
+packages have same "architecture" type. A link from an architecture
+independent package to an architecture dependent package (or vice
+versa) will not work. Since compat 10, debhelper will actively reject
+unsupported combinations.
+
=item I<file> ...
Install these files as documentation into the first package acted on. (Or
@@ -124,10 +205,6 @@ Note that B<dh_installdocs> will happily copy entire directory hierarchies if
you ask it to (similar to B<cp -a>). If it is asked to install a
directory, it will install the complete contents of the directory.
-Note that this command is not idempotent. L<dh_prep(1)> should be called
-between invocations of this command. Otherwise, it may cause multiple
-instances of the same text to be added to maintainer scripts.
-
=cut
my %docdir_created;
@@ -149,83 +226,124 @@ sub ensure_docdir {
# If this is a symlink, leave it alone.
if (! -d $target && ! -l $target) {
- doit("install","-g",0,"-o",0,"-d",$target);
+ install_dir($target);
}
$docdir_created{$package}=1;
}
init(options => {
"link-doc=s" => \$dh{LINK_DOC},
+ "sourcedir=s" => \$dh{SOURCEDIR},
+ 'doc-main-package=s' => \$dh{DOC_MAIN_PACKAGE},
});
-foreach my $package (@{$dh{DOPACKAGES}}) {
+my $called_getpackages = 0;
+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;
+# We cannot assume documentation is built under nodoc, but if it is we must flag it as handled
+# or dh_missing might make noise.
+$default_error_handler = \&glob_expand_error_handler_silently_ignore if $nodocs;
+
+if (@{$dh{DOPACKAGES}} > 1 and $dh{DOC_MAIN_PACKAGE}) {
+ error('--doc-main-package should be used with -p<doc-pkg>');
+}
+
+if ($dh{DOC_MAIN_PACKAGE}) {
+ assert_opt_is_known_package($dh{DOC_MAIN_PACKAGE}, '--doc-main-package');
+}
+
+foreach my $package (getpackages()) {
next if is_udeb($package);
my $tmp=tmpdir($package);
my $file=pkgfile($package,"docs");
my $link_doc=($dh{LINK_DOC} && $dh{LINK_DOC} ne $package);
-
- if ($link_doc) {
- # Make sure that the parent directory exists.
- if (! -d "$tmp/usr/share/doc" && ! -l "$tmp/usr/share/doc") {
- doit("install","-g",0,"-o",0,"-d","$tmp/usr/share/doc");
- }
- # Create symlink to another documentation directory if
- # necessary.
- if (! -d "$tmp/usr/share/doc/$package" &&
- ! -l "$tmp/usr/share/doc/$package") {
- doit("ln", "-sf", $dh{LINK_DOC}, "$tmp/usr/share/doc/$package");
- # Call isnative because it sets $dh{VERSION}
- # as a side effect.
- isnative($dh{LINK_DOC});
- # Policy says that if you make your documentation
- # directory a symlink, then you have to depend on
- # the target.
- addsubstvar($package, "misc:Depends", "$dh{LINK_DOC} (= $dh{VERSION})");
+ my $skip_install = process_pkg($package) ? 0 : 1;
+ my @search_dirs = ('.');
+ my $error_handler = $skip_install ? \&glob_expand_error_handler_silently_ignore : $default_error_handler;
+ @search_dirs = ($dh{SOURCEDIR} // '.', default_sourcedir($package)) if not compat(10);
+
+ if (not $skip_install) {
+ if ($link_doc) {
+ getpackages('both') unless $called_getpackages++;
+
+ if (package_binary_arch($package) ne package_binary_arch($dh{LINK_DOC})) {
+ if (compat(9)) {
+ warning("WARNING: --link-doc between architecture all and not all packages breaks binNMUs");
+ } else {
+ error("--link-doc not allowed between ${package} and $dh{LINK_DOC} (one is arch:all and the other not)");
+ }
+ }
+ # Make sure that the parent directory exists.
+ if (!-d "$tmp/usr/share/doc" && !-l "$tmp/usr/share/doc") {
+ install_dir("$tmp/usr/share/doc");
+ }
+ # Create symlink to another documentation directory if
+ # necessary.
+ if (!-d "$tmp/usr/share/doc/$package" &&
+ !-l "$tmp/usr/share/doc/$package") {
+ make_symlink_raw_target($dh{LINK_DOC}, "$tmp/usr/share/doc/$package");
+ # Policy says that if you make your documentation
+ # directory a symlink, then you have to depend on
+ # the target.
+ addsubstvar($package, 'misc:Depends', "$dh{LINK_DOC} (= \${binary:Version})");
+ }
+ } else {
+ ensure_docdir($package);
}
}
- else {
- ensure_docdir($package);
- }
my @docs;
if ($file) {
- @docs=filearray($file, ".");
+ @docs = filearray($file, \@search_dirs, $error_handler);
}
- if (($package eq $dh{FIRSTPACKAGE} || ($dh{PARAMS_ALL} && ! $link_doc)) && @ARGV) {
+ if (($package eq $dh{FIRSTPACKAGE} || ($dh{PARAMS_ALL} && !$link_doc)) && @ARGV) {
push @docs, @ARGV;
}
- if (@docs) {
- my $exclude = '';
+ log_installed_files($package, @docs);
+
+ next if $skip_install;
+
+ if (not $nodocs and @docs) {
+ my $exclude = ' -and ! -empty';
+ my $target_package = compute_doc_main_package($package);
+ if (not defined($target_package)) {
+ warning("Cannot auto-detect main package for ${package}. If the default is wrong, please use --doc-main-package");
+ $target_package = $package;
+ } elsif ($dh{PARAMS_ALL} and $package ne $target_package and not $dh{DOC_MAIN_PACKAGE}) {
+ warning("Not using auto-detected $target_package as main doc package for $package: With -A/--all, this would cause file-conflicts.");
+ $target_package = $package;
+ }
if ($dh{EXCLUDE_FIND}) {
$exclude .= ' -and ! \( '.$dh{EXCLUDE_FIND}.' \)';
}
- if (! compat(4)) {
- # ignore empty files in subdirs
- $exclude .= ' -and ! -empty';
- }
+ my $target_dir = "${tmp}/usr/share/doc/${target_package}";
+ install_dir($target_dir) unless -l $target_dir;
+
foreach my $doc (@docs) {
next if excludefile($doc);
- next if -e $doc && ! -s $doc && ! compat(4); # ignore empty files
+ next if -f $doc && ! -s _; # ignore empty files
ensure_docdir($package);
if (-d $doc && length $exclude) {
my $basename = basename($doc);
my $dir = ($basename eq '.') ? $doc : "$doc/..";
my $pwd=`pwd`;
chomp $pwd;
- my $docdir = "$pwd/$tmp/usr/share/doc/$package";
- complex_doit("cd '$dir' && find '$basename' \\( -type f -or -type l \\)$exclude -print0 | xargs -0 -I {} cp --parents -dp {} $docdir");
+ # Gracefully handling tmpdir being absolute (-P/...)
+ my $docdir = $target_dir =~ m{^/} ? $target_dir : "${pwd}/${target_dir}";
+ complex_doit("cd '$dir' && " .
+ "find '$basename' \\( -type f -or -type l \\)$exclude -print0 | LC_ALL=C sort -z | " .
+ "xargs -0 -I {} cp --reflink=auto --parents -dp {} $docdir");
}
else {
- doit("cp", "-a", $doc, "$tmp/usr/share/doc/$package");
+ doit("cp", '--reflink=auto', "-a", $doc, $target_dir);
}
}
- doit("chown","-R","0:0","$tmp/usr/share/doc");
- doit("chmod","-R","go=rX","$tmp/usr/share/doc");
- doit("chmod","-R","u+rw","$tmp/usr/share/doc");
+ doit("chown","-R","0:0","$tmp/usr/share/doc") if should_use_root();
+ doit("chmod","-R","u+rw,go=rX","$tmp/usr/share/doc");
}
# .Debian is correct, according to policy, but I'm easy.
@@ -235,19 +353,18 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
}
if (! $link_doc && $readme_debian && ! excludefile($readme_debian)) {
ensure_docdir($package);
- doit("install","-g",0,"-o",0,"-m","644","-p","$readme_debian",
- "$tmp/usr/share/doc/$package/README.Debian");
+ install_file($readme_debian,
+ "$tmp/usr/share/doc/$package/README.Debian");
}
my $todo=pkgfile($package,'TODO');
if (! $link_doc && $todo && ! excludefile($todo)) {
ensure_docdir($package);
if (isnative($package)) {
- doit("install","-g",0,"-o",0,"-m","644","-p",$todo,
- "$tmp/usr/share/doc/$package/TODO");
+ install_file($todo, "$tmp/usr/share/doc/$package/TODO");
}
else {
- doit("install","-g",0,"-o",0,"-m","644","-p",$todo,
+ install_file($todo,
"$tmp/usr/share/doc/$package/TODO.Debian");
}
}
@@ -265,11 +382,13 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
}
if ($copyright && ! excludefile($copyright)) {
ensure_docdir($package);
- doit("install","-g",0,"-o",0,"-m","644","-p",$copyright,
+ install_file($copyright,
"$tmp/usr/share/doc/$package/copyright");
}
}
+ next if $nodocs;
+
# Handle doc-base files. There are two filename formats, the usual
# plus an extended format (debian/package.*).
my %doc_ids;
@@ -287,8 +406,8 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
next if $fn=~/\.EX$/;
next if excludefile($fn);
# Parse the file to get the doc id.
- open (IN, "debian/$fn") || die "Cannot read debian/$fn.";
- while (<IN>) {
+ open(my $fd, '<', "debian/$fn") || die "Cannot read debian/$fn.";
+ while (<$fd>) {
s/\s*$//;
if (/^Document\s*:\s*(.*)/) {
$doc_ids{$fn}=$1;
@@ -298,39 +417,20 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
if (! exists $doc_ids{$fn}) {
warning("Could not parse $fn for doc-base Document id; skipping");
}
- close IN;
+ close($fd);
}
closedir(DEB);
if (%doc_ids) {
- if (! -d "$tmp/usr/share/doc-base/") {
- doit("install","-g",0,"-o",0,"-d","$tmp/usr/share/doc-base/");
- }
- }
- # check for duplicate document ids
- my %used_doc_ids;
- for my $fn (keys %doc_ids) {
- $used_doc_ids{$doc_ids{$fn}}++;
+ install_dir("$tmp/usr/share/doc-base/");
}
foreach my $fn (keys %doc_ids) {
- # if this document ID is duplicated, we will install
- # to usr/share/doc-base/packagename instead of
- # usr/share/doc-base/doc_id. To allow for multiple
- # conflicting doc-bases in a single package, we will
- # install to usr/share/doc-base/packagename-extrabits
- # if the doc-base file is
- # packagename.doc-base.extrabits
- if ($used_doc_ids{$doc_ids{$fn}} > 1) {
- my $fn_no_docbase = $fn;
- $fn_no_docbase =~ s/\.doc-base(?:\.(.*))?/
- if (defined $1 and length $1) {"-$1"} else {''}/xe;
- doit("install","-g",0,"-o",0,"-m644","-p","debian/$fn",
- "$tmp/usr/share/doc-base/$fn_no_docbase");
- }
- else {
- doit("install","-g",0,"-o",0,"-m644","-p","debian/$fn",
- "$tmp/usr/share/doc-base/$doc_ids{$fn}");
- }
+ # To avoid issues with duplicated document IDs, we will always
+ # install to usr/share/doc-base/<packagename>.<doc_id> instead
+ # of just usr/share/doc-base/<packagename> or just
+ # usr/share/doc-base/<doc_id>. See #525821 and #980903.
+ install_file("debian/$fn",
+ "$tmp/usr/share/doc-base/$package.$doc_ids{$fn}");
}
}
diff --git a/dh_installemacsen b/dh_installemacsen
index b2ee1426..bae900a4 100755
--- a/dh_installemacsen
+++ b/dh_installemacsen
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installemacsen - register an Emacs add on package
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installemacsen> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] [B<--flavor=>I<foo>]
@@ -54,7 +57,7 @@ build directory. Use B<--priority> to use a different priority than 50.
=over 4
-=item B<-n>, B<--noscripts>
+=item B<-n>, B<--no-scripts>
Do not modify F<postinst>/F<prerm> scripts.
@@ -79,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}) {
@@ -88,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);
@@ -99,41 +103,34 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
my $emacsen_startup=pkgfile($package,"emacsen-startup");
if ($emacsen_compat ne '') {
- if (! -d "$tmp/usr/lib/emacsen-common/packages/compat") {
- doit("install","-d","$tmp/usr/lib/emacsen-common/packages/compat");
- }
- doit("install","-m0644",$emacsen_compat,"$tmp/usr/lib/emacsen-common/packages/compat/$package");
+ install_dir("$tmp/usr/lib/emacsen-common/packages/compat");
+ install_file($emacsen_compat,
+ "$tmp/usr/lib/emacsen-common/packages/compat/$package");
}
if ($emacsen_install ne '') {
- if (! -d "$tmp/usr/lib/emacsen-common/packages/install") {
- doit("install","-d","$tmp/usr/lib/emacsen-common/packages/install");
- }
- doit("install","-m0755",$emacsen_install,"$tmp/usr/lib/emacsen-common/packages/install/$package");
+ install_dir("$tmp/usr/lib/emacsen-common/packages/install");
+ install_prog($emacsen_install,"$tmp/usr/lib/emacsen-common/packages/install/$package");
}
if ($emacsen_remove ne '') {
- if (! -d "$tmp/usr/lib/emacsen-common/packages/remove") {
- doit("install","-d","$tmp/usr/lib/emacsen-common/packages/remove");
- }
- doit("install","-m0755","$emacsen_remove","$tmp/usr/lib/emacsen-common/packages/remove/$package");
+ install_dir("$tmp/usr/lib/emacsen-common/packages/remove");
+ install_prog("$emacsen_remove","$tmp/usr/lib/emacsen-common/packages/remove/$package");
}
-
+
if ($emacsen_startup ne '') {
- if (! -d "$tmp/etc/$dh{FLAVOR}/site-start.d/") {
- doit("install","-d","$tmp/etc/$dh{FLAVOR}/site-start.d/");
- }
- doit("install","-m0644",$emacsen_startup,"$tmp/etc/$dh{FLAVOR}/site-start.d/$dh{PRIORITY}$package.el");
+ install_dir("$tmp/etc/$dh{FLAVOR}/site-start.d/");
+ install_file($emacsen_startup,"$tmp/etc/$dh{FLAVOR}/site-start.d/$dh{PRIORITY}$package.el");
}
if ($emacsen_install ne '' || $emacsen_remove ne '') {
if (! $dh{NOSCRIPTS}) {
autoscript($package,"preinst","preinst-emacsen",
- "s/#PACKAGE#/$package/");
+ { 'PACKAGE' => $package });
autoscript($package,"postinst","postinst-emacsen",
- "s/#PACKAGE#/$package/");
+ { 'PACKAGE' => $package });
autoscript($package,"prerm","prerm-emacsen",
- "s/#PACKAGE#/$package/");
+ { 'PACKAGE' => $package });
}
}
}
diff --git a/dh_installexamples b/dh_installexamples
index 448678ad..ce970ac8 100755
--- a/dh_installexamples
+++ b/dh_installexamples
@@ -1,4 +1,6 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
+
+=encoding UTF-8
=head1 NAME
@@ -7,8 +9,11 @@ dh_installexamples - install example files into package build directories
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installexamples> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<file> ...>]
@@ -19,6 +24,10 @@ B<dh_installexamples> is a debhelper program that is responsible for
installing examples into F<usr/share/doc/package/examples> in package
build directories.
+From debhelper compatibility level 11 on, B<dh_install> will fall back to
+looking in F<debian/tmp> for files, if it does not find them in the current
+directory (or wherever you've told it to look using B<--sourcedir>).
+
=head1 FILES
=over 4
@@ -27,6 +36,13 @@ build directories.
Lists example files or directories to be installed.
+If upstream provides an F<examples> directory, you will often want to use B<examples/*> rather
+than B<examples> in this file. The latter would create
+F<< /usr/share/doc/I<package>/examples/examples >>, which is rarely what you want.
+
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
+
=back
=head1 OPTIONS
@@ -38,6 +54,33 @@ Lists example files or directories to be installed.
Install any files specified by command line parameters in ALL packages
acted on.
+=item B<--sourcedir=>I<dir>
+
+Look in the specified directory for files to be installed. This option
+requires compat 11 or later (it is silently ignored in compat 10 or earlier).
+
+Note that this is not the same as the B<--sourcedirectory> option used
+by the B<dh_auto_>I<*> commands. You rarely need to use this option, since
+B<dh_installexamples> automatically looks for files in F<debian/tmp> in debhelper
+compatibility level 11 and above.
+
+=item B<--doc-main-package=>I<main-package>
+
+Set the main package for a documentation package. This is used to
+install the documentation of the documentation package in F<<
+/usr/share/doc/I<main-package> >> as recommended by the Debian policy
+manual 3.9.7 in §12.3.
+
+In compat 11 (or later), this option is only useful if debhelper's
+auto-detection of the main package is wrong. The option can also be
+used to silence a warning from debhelper when the auto-detection fails
+but the default happens to be correct.
+
+This option cannot be used when B<dh_installexamples> is instructed to act
+on multiple packages. If you need this option, you will generally
+need to combine it with B<-p> to ensure exactly one package is acted
+on.
+
=item B<-X>I<item>, B<--exclude=>I<item>
Exclude files that contain I<item> anywhere in their filename from
@@ -58,31 +101,60 @@ directory, it will install the complete contents of the directory.
=cut
-init();
+init(options => {
+ "sourcedir=s" => \$dh{SOURCEDIR},
+ 'doc-main-package=s' => \$dh{DOC_MAIN_PACKAGE},
+});
+
+# 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;
+my $nodocs = is_build_profile_active('nodoc') || get_buildoption('nodoc') ? 1 : 0;
+# We cannot assume documentation is built under nodoc, but if it is we must flag it as handled
+# or dh_missing might make noise.
+$default_error_handler = \&glob_expand_error_handler_silently_ignore if $nodocs;
-# PROMISE: DH NOOP WITHOUT examples
+if (@{$dh{DOPACKAGES}} > 1 and $dh{DOC_MAIN_PACKAGE}) {
+ error('--doc-main-package should be used with -p<doc-pkg>');
+}
+if ($dh{DOC_MAIN_PACKAGE}) {
+ assert_opt_is_known_package($dh{DOC_MAIN_PACKAGE}, '--doc-main-package');
+}
-foreach my $package (@{$dh{DOPACKAGES}}) {
+foreach my $package (getpackages()) {
next if is_udeb($package);
my $tmp=tmpdir($package);
my $file=pkgfile($package,"examples");
+ my @search_dirs = ('.');
+ my $skip_install = process_pkg($package) ? 0 : 1;
+ my $error_handler = $skip_install ? \&glob_expand_error_handler_silently_ignore : $default_error_handler;
+ @search_dirs = ($dh{SOURCEDIR} // '.', default_sourcedir($package)) if not compat(10);
my @examples;
if ($file) {
- @examples=filearray($file, ".");
+ @examples = filearray($file, \@search_dirs, $error_handler) if $file;
}
if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
push @examples, @ARGV;
}
-
+
+ log_installed_files($package, @examples);
+
+ next if $skip_install or $nodocs;
+
if (@examples) {
- if (! -d "$tmp/usr/share/doc/$package/examples") {
- doit("install","-d","$tmp/usr/share/doc/$package/examples");
+ my $target_package = compute_doc_main_package($package);
+ if (not defined($target_package)) {
+ warning("Cannot auto-detect main package for ${package}. If the default is wrong, please use --doc-main-package");
+ $target_package = $package;
}
-
+ my $target_dir = "${tmp}/usr/share/doc/${target_package}/examples";
+ install_dir($target_dir);
+
my $exclude = '';
if ($dh{EXCLUDE_FIND}) {
$exclude .= ' -and ! \( '.$dh{EXCLUDE_FIND}.' \)';
@@ -93,13 +165,15 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
if (-d $example && $exclude) {
my $basename = basename($example);
my $dir = ($basename eq '.') ? $example : "$example/..";
- my $pwd=`pwd`;
- chomp $pwd;
- my $exclude2 = '-type f'.$exclude;
- complex_doit("cd '$dir' && find '$basename' -type f$exclude -exec cp --parents -dp {} $pwd/$tmp/usr/share/doc/$package/examples \\;");
+ chomp($pwd=`pwd`) if not defined($pwd);
+ # Gracefully handling tmpdir being absolute (-P/...)
+ my $destdir = $target_dir =~ m{^/} ? $target_dir : "${pwd}/${target_dir}";
+ complex_doit("cd '$dir' && " .
+ "find '$basename' -type f$exclude -print0 | LC_ALL=C sort -z | " .
+ "xargs -0 -I {} cp --reflink=auto --parents -dp {} ${destdir}");
}
else {
- doit("cp", "-a", $example, "$tmp/usr/share/doc/$package/examples");
+ doit("cp", '--reflink=auto', "-a", $example, $target_dir);
}
}
}
diff --git a/dh_installgsettings b/dh_installgsettings
index dac471d5..45b228eb 100755
--- a/dh_installgsettings
+++ b/dh_installgsettings
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installgsettings - install GSettings overrides and set dependencies
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installgsettings> [S<I<debhelper options>>] [B<--priority=<number>>]
@@ -52,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);
@@ -68,13 +73,16 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
my $override = pkgfile($package,"gsettings-override");
if ($override ne '') {
- doit("mkdir","-p",$gsettings_schemas_dir);
- doit("install","-p","-m644",$override,"$gsettings_schemas_dir/${priority}_$package.gschema.override");
+ install_dir($gsettings_schemas_dir);
+ install_file($override,
+ "$gsettings_schemas_dir/${priority}_$package.gschema.override");
}
if (-d "$gsettings_schemas_dir") {
# Get a list of the schemas
- my $schemas = `find $gsettings_schemas_dir -type f \\( -name \\*.xml -o -name \\*.override \\) -printf '%P '`;
+ my $schemas = qx_cmd('find', $gsettings_schemas_dir, '-type', 'f',
+ '(', '-name', '*.xml', '-o', '-name', '*.override',
+ ')', '-printf', '%P');
if ($schemas ne '') {
addsubstvar($package, "misc:Depends", "dconf-gsettings-backend | gsettings-backend");
}
diff --git a/dh_installifupdown b/dh_installifupdown
index 7b7c2ecf..3d4cd93f 100755
--- a/dh_installifupdown
+++ b/dh_installifupdown
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installifupdown - install if-up and if-down hooks
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installifupdown> [S<I<debhelper options>>] [B<--name=>I<name>]
@@ -52,18 +55,16 @@ 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);
-
+
foreach my $script (qw(pre-up up down post-down)) {
my $file=pkgfile($package, "if-$script");
if ($file ne '') {
- if (! -d "$tmp/etc/network/if-$script.d") {
- doit("install","-d","$tmp/etc/network/if-$script.d");
- }
- doit("install","-p","-m755",$file,"$tmp/etc/network/if-$script.d/".pkgfilename($package));
+ install_dir("$tmp/etc/network/if-$script.d");
+ install_prog($file,"$tmp/etc/network/if-$script.d/".pkgfilename($package));
}
}
}
diff --git a/dh_installinfo b/dh_installinfo
index 2c3d9e9a..3a255429 100755
--- a/dh_installinfo
+++ b/dh_installinfo
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installinfo - install info files
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installinfo> [S<I<debhelper options>>] [B<-A>] [S<I<file> ...>]
@@ -18,6 +21,10 @@ B<dh_installinfo> [S<I<debhelper options>>] [B<-A>] [S<I<file> ...>]
B<dh_installinfo> is a debhelper program that is responsible for installing
info files into F<usr/share/info> in the package build directory.
+From debhelper compatibility level 11 on, B<dh_install> will fall back to
+looking in F<debian/tmp> for files, if it does not find them in the current
+directory (or wherever you've told it to look using B<--sourcedir>).
+
=head1 FILES
=over 4
@@ -26,6 +33,9 @@ info files into F<usr/share/info> in the package build directory.
List info files to be installed.
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
+
=back
=head1 OPTIONS
@@ -37,6 +47,16 @@ List info files to be installed.
Install all files specified by command line parameters in ALL packages
acted on.
+=item B<--sourcedir=>I<dir>
+
+Look in the specified directory for files to be installed. This option
+requires compat 11 or later (it is silently ignored in compat 10 or earlier).
+
+Note that this is not the same as the B<--sourcedirectory> option used
+by the B<dh_auto_>I<*> commands. You rarely need to use this option, since
+B<dh_installinfo> automatically looks for files in F<debian/tmp> in debhelper
+compatibility level 11 and above.
+
=item I<file> ...
Install these info files into the first package acted on. (Or in
@@ -46,31 +66,57 @@ all packages if B<-A> is specified).
=cut
-init();
+init(options => {
+ "sourcedir=s" => \$dh{SOURCEDIR},
+});
+
+# PROMISE: DH NOOP WITHOUT pkgfile-logged(info) cli-options() tmp(usr/share/info/dir)
-# PROMISE: DH NOOP WITHOUT info
+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;
+# We cannot assume documentation is built under nodoc, but if it is we must flag it as handled
+# or dh_missing might make noise.
+$default_error_handler = \&glob_expand_error_handler_silently_ignore if $nodocs;
-foreach my $package (@{$dh{DOPACKAGES}}) {
+foreach my $package (getpackages()) {
my $tmp=tmpdir($package);
my $file=pkgfile($package,"info");
+ my @search_dirs = ('.');
+ my @ignored_files;
+ my $skip_install = process_pkg($package) ? 0 : 1;
+ my $error_handler = $skip_install ? \&glob_expand_error_handler_silently_ignore : $default_error_handler;
+ @search_dirs = ($dh{SOURCEDIR} // '.', default_sourcedir($package)) if not compat(10);
my @info;
if ($file) {
- @info=filearray($file, ".");
+ @info = filearray($file, \@search_dirs, $error_handler) if $file;
}
if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
push @info, @ARGV;
}
- if (@info) {
- if ( ! -d "$tmp/usr/share/info") {
- doit("install","-d","$tmp/usr/share/info");
+ # Pretend that we handled usr/share/info/dir. We do not want to install it as it causes
+ # file conflicts between packages and we also do not want dh_missing to drop a bomb on
+ # the user for it.
+ #
+ # See #971036
+ for my $path (@search_dirs) {
+ if ( -e "${path}/usr/share/info/dir" ) {
+ push(@ignored_files, 'usr/share/info/dir');
+ last;
}
- doit("cp",@info,"$tmp/usr/share/info");
- doit("chmod","-R", "go=rX","$tmp/usr/share/info/");
- doit("chmod","-R", "u+rw","$tmp/usr/share/info/");
+ }
+
+ log_installed_files($package, @info, @ignored_files);
+
+ next if $skip_install or $nodocs;
+
+ if (@info) {
+ install_dir("$tmp/usr/share/info");
+ xargs(\@info, "cp", '--reflink=auto', XARGS_INSERT_PARAMS_HERE, "$tmp/usr/share/info");
+ doit("chmod","-R", "u+rw,go=rX","$tmp/usr/share/info/");
}
}
diff --git a/dh_installinit b/dh_installinit
index 0944d306..13df4324 100755
--- a/dh_installinit
+++ b/dh_installinit
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,23 +7,37 @@ dh_installinit - install service init files into package build directories
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
use File::Find;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installinit> [S<I<debhelper options>>] [B<--name=>I<name>] [B<-n>] [B<-R>] [B<-r>] [B<-d>] [S<B<--> I<params>>]
=head1 DESCRIPTION
-B<dh_installinit> is a debhelper program that is responsible for installing
-init scripts with associated defaults files, as well as upstart job files,
-and systemd service files into package build directories.
+B<dh_installinit> is a debhelper program that is responsible for
+installing init scripts with associated defaults files. In
+compatibility levels up to and including 10, B<dh_installinit> will
+also install some systemd related files provided by the debian
+packaging (see the L</FILES> section below). In compatibility levels
+up to and including 11, B<dh_installinit> will also handle upstart
+jobs provided in the debian packaging (see the L</FILES> for more
+information on this as well).
It also automatically generates the F<postinst> and F<postrm> and F<prerm>
commands needed to set up the symlinks in F</etc/rc*.d/> to start and stop
the init scripts.
+In compat 10 or earlier: If a package only ships a systemd service
+file and no sysvinit script is provided, you may want to exclude the
+call to dh_installinit for that package (e.g. via B<-N>). Otherwise,
+you may get warnings from lintian about init.d scripts not being
+included in the package.
+
=head1 FILES
=over 4
@@ -40,19 +54,23 @@ build directory.
=item debian/I<package>.upstart
-If this exists, it is installed into etc/init/I<package>.conf in the package
-build directory.
+In compatibility level 11, this file will trigger an error with a reminder
+about ensuring the proper removal of the upstart file in the previous package
+version. Please consider using the "rm_conffile" feature from
+L<dh_installdeb(1)> to ensure the proper removal of previous upstart files.
+
+In compatibility level 10, if this file exists, it is installed into
+etc/init/I<package>.conf in the package build directory.
=item debian/I<package>.service
-If this exists, it is installed into lib/systemd/system/I<package>.service in
-the package build directory.
+If this exists, it is installed into F<< lib/systemd/system/I<package>.service >> in
+the package build directory. Only used in compat levels 10 and below.
=item debian/I<package>.tmpfile
If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in the
-package build directory. (The tmpfiles.d mechanism is currently only used
-by systemd.)
+package build directory. Only used in compat levels 10 and below.
=back
@@ -60,43 +78,86 @@ by systemd.)
=over 4
-=item B<-n>, B<--noscripts>
+=item B<-n>, B<--no-scripts>
Do not modify F<postinst>/F<postrm>/F<prerm> scripts.
-=item B<-o>, B<--onlyscripts>
+=item B<-o>, B<--only-scripts>
Only modify F<postinst>/F<postrm>/F<prerm> scripts, do not actually install
any init script, default files, upstart job or systemd service file. May be
useful if the file is shipped and/or installed by upstream in a way that
doesn't make it easy to let B<dh_installinit> find it.
+B<Caveat>: This will bypass all the regular checks and
+I<unconditionally> modify the scripts. You will almost certainly want
+to use this with B<-p> to limit, which packages are affected by the
+call. Example:
+
+ override_dh_installinit:
+ dh_installinit -pfoo --only-scripts
+ dh_installinit --remaining
+
=item B<-R>, B<--restart-after-upgrade>
Do not stop the init script until after the package upgrade has been
-completed. This is different than the default behavior, which stops the
-script in the F<prerm>, and starts it again in the F<postinst>.
+completed. This is the default behaviour in compat 10.
+
+In early compat levels, the default was to stop the script in the
+F<prerm>, and starts it again in the F<postinst>.
This can be useful for daemons that should not have a possibly long
downtime during upgrade. But you should make sure that the daemon will not
get confused by the package being upgraded while it's running before using
this option.
-=item B<-r>, B<--no-restart-on-upgrade>
+=item B<--no-restart-after-upgrade>
+
+Undo a previous B<--restart-after-upgrade> (or the default of compat
+10). If no other options are given, this will cause the service to be
+stopped in the F<prerm> script and started again in the F<postinst>
+script.
+
+=item B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>
+
+Do not stop init script on upgrade. This has the side-effect of not
+restarting the service as a part of the upgrade.
+
+If you want to restart the service with minimal downtime, please use
+B<--restart-after-upgrade> (default in compat 10 or later). If you want
+the service to be restarted but be stopped during the upgrade, then please
+use B<--no-restart-after-upgrade> (note the "after-upgrade").
-Do not stop init script on upgrade.
+Note that the B<--no-restart-on-upgrade> alias is deprecated and will
+be removed in compat 12. This is to avoid confusion with the
+B<--no-restart-after-upgrade> option. The B<--no-stop-on-upgrade>
+variant was introduced in debhelper 10.2 (included in Debian stretch).
=item B<--no-start>
Do not start the init script on install or upgrade, or stop it on removal.
Only call B<update-rc.d>. Useful for rcS scripts.
+=item B<--no-enable>
+
+Disable the init script on purge, but do not enable them on install.
+This implies a versioned dependency on B<< init-system-helpers (E<gt>=
+1.51) >> as it is the first (functional) version that supports
+B<< update-rc.d E<lt>scriptE<gt> defaults-disabled >>.
+
+B<Note> that this option does not affect whether the services are
+started. Please remember to also use B<--no-start> if the service
+should not be started.
+
+Cannot be combined with B<-u>I<params>,
+B<--update-rcd-params=>I<params>, or B<--> I<params>.
+
=item B<-d>, B<--remove-d>
Remove trailing B<d> from the name of the package, and use the result for the
filename the upstart job file is installed as in F<etc/init/> , and for the
filename the init script is installed as in etc/init.d and the default file
-is installed as in F<etc/default/> . This may be useful for daemons with names
+is installed as in F<etc/default/>. This may be useful for daemons with names
ending in B<d>. (Note: this takes precedence over the B<--init-script> parameter
described below.)
@@ -104,8 +165,11 @@ described below.)
=item B<--> I<params>
-Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> will be
-passed to L<update-rc.d(8)>.
+Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> (or
+B<defaults-disabled> with B<--no-enable>) will be passed to
+L<update-rc.d(8)>.
+
+Cannot be combined with B<--no-enable>.
=item B<--name=>I<name>
@@ -145,17 +209,32 @@ instances of the same text to be added to maintainer scripts.
=cut
+$dh{RESTART_AFTER_UPGRADE} = '';
+$dh{NO_START} = '';
+
init(options => {
"r" => \$dh{R_FLAG},
- "no-restart-on-upgrade" => \$dh{R_FLAG},
+ 'no-stop-on-upgrade' => \$dh{R_FLAG},
+ "no-restart-on-upgrade" => sub {
+ $dh{R_FLAG} = 1;
+ deprecated_functionality("--no-restart-on-upgrade has been renamed to --no-stop-on-upgrade",
+ 12);
+ },
"no-start" => \$dh{NO_START},
- "R|restart-after-upgrade" => \$dh{RESTART_AFTER_UPGRADE},
+ "R|restart-after-upgrade!" => \$dh{RESTART_AFTER_UPGRADE},
"init-script=s" => \$dh{INIT_SCRIPT},
"update-rcd-params=s", => \$dh{U_PARAMS},
"remove-d" => \$dh{D_FLAG},
+ "no-enable" => \$dh{NO_ENABLE},
});
-# PROMISE: DH NOOP WITHOUT service tmpfile default upstart init init.d
+if ($dh{RESTART_AFTER_UPGRADE} eq '') {
+ $dh{RESTART_AFTER_UPGRADE} = 1 if not defined($dh{R_FLAG}) and $dh{NO_START} eq '';
+}
+
+# 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');
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
@@ -194,136 +273,146 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
}
}
- my $service=pkgfile($package,"service");
+ my $service='';
+ $service=pkgfile($package,"service") if compat(10);
if ($service ne '' && ! $dh{ONLYSCRIPTS}) {
my $path="$tmp/lib/systemd/system";
- if (! -d "$path") {
- doit("install","-d","$path");
- }
-
- doit("install","-p","-m644",$service,"$path/$script.service");
+ install_dir($path);
+ install_file($service, "$path/$script.service");
}
- my $tmpfile=pkgfile($package,"tmpfile");
+ my $tmpfile='';
+ $tmpfile=pkgfile($package,"tmpfile") if compat(10);
if ($tmpfile ne '' && ! $dh{ONLYSCRIPTS}) {
my $path="$tmp/usr/lib/tmpfiles.d";
- if (! -d "$path") {
- doit("install","-d","$path");
- }
-
- doit("install","-p","-m644",$tmpfile,"$path/$script.conf");
+ install_dir($path);
+ install_file($tmpfile, "$path/$script.conf");
}
my $job=pkgfile($package,"upstart");
+ if ($job ne '' and not compat(11)) {
+ isnative($package); # For the side-effect of setting $dh{VERSION}
+ warning("Detected an upstart file; these are no longer supported by dh_installinit in compat 11");
+ warning("Please ensure a proper removal by adding a \"rm_conffile\" line in debian/<pkg>.maintscript");
+ warning("Example maintscript line:");
+ warning(" rm_conffile /etc/init/${jobfile}.conf $dh{VERSION}");
+ warning("(Note: the example is a best-effort guess and it is not always correct! Please verify before use)");
+ warning("see \"man dh_installdeb\" for more information about the maintscript file");
+ warning("");
+ error("upstart jobs are no longer supported! Please remove $job and check if you need to add a conffile removal");
+ }
if ($job ne '' && ! $dh{ONLYSCRIPTS}) {
- if (! -d "$tmp/etc/init") {
- doit("install","-d","$tmp/etc/init");
- }
-
- doit("install","-p","-m644",$job,"$tmp/etc/init/$jobfile.conf");
+ install_dir("$tmp/etc/init");
+ install_file($job, "$tmp/etc/init/$jobfile.conf");
}
my $default=pkgfile($package,'default');
if ($default ne '' && ! $dh{ONLYSCRIPTS}) {
- if (! -d "$tmp/etc/default") {
- doit("install","-d","$tmp/etc/default");
- }
- doit("install","-p","-m644",$default,"$tmp/etc/default/$script");
+ install_dir("$tmp/etc/default");
+ install_file($default, "$tmp/etc/default/$script");
}
my $init=pkgfile($package,$scriptsrc) || pkgfile($package,"init") ||
pkgfile($package,"init.d");
if ($init ne '' && ! $dh{ONLYSCRIPTS}) {
- if (! -d "$tmp/etc/init.d") {
- doit("install","-d","$tmp/etc/init.d");
- }
-
- doit("install","-p","-m755",$init,"$tmp/etc/init.d/$script");
+ install_dir("$tmp/etc/init.d");
+ install_prog($init,"$tmp/etc/init.d/$script");
}
if ($dh{INIT_SCRIPT} && $job ne '' && $init ne '') {
error("Can't use --init-script with an upstart job");
}
- # NB: The case that only $tmpfile is set makes no sense. The
- # tmpfiles.d(5) mechanism is only available when using systemd (at
- # least currently), so there has to be an init script which does the
- # same thing for sysvinit.
+ if (compat(10) && !$dh{NOSCRIPTS}) {
+ # Include postinst-init-tmpfiles if the package ships any files
+ # in /usr/lib/tmpfiles.d or /etc/tmpfiles.d
+ my @tmpfiles;
+ find({
+ wanted => sub {
+ my $name = $File::Find::name;
+ return unless -f $name;
+ $name =~ s/^\Q$tmp\E//g;
+ if ($name =~ m,^/usr/lib/tmpfiles\.d/, ||
+ $name =~ m,^/etc/tmpfiles\.d/,) {
+ push(@tmpfiles, basename($name));
+ }
+ },
+ no_chdir => 1,
+ }, $tmp);
+ if (@tmpfiles > 0) {
+ # Not migrated to hashref based autoscripts. This will
+ # happen as people migrate to dh_installsystemd.
+ autoscript($package,"postinst", "postinst-init-tmpfiles",
+ "s,#TMPFILES#," . join(" ", sort @tmpfiles).",g");
+ }
+ }
+
if ($service ne '' || $job ne '' || $init ne '' || $dh{ONLYSCRIPTS}) {
# This is set by the -u "foo" command line switch, it's
# the parameters to pass to update-rc.d. If not set,
# we have to say "defaults".
- my $params='';
- if (defined($dh{U_PARAMS})) {
+ 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)");
+ }
+
+ if (defined($dh{U_PARAMS}) and @{$dh{U_PARAMS}}) {
+ error("--no-enable and -- params/-u/--update-rcd-params/ are mutually exclusive") if $dh{NO_ENABLE};
$params=join(' ',@{$dh{U_PARAMS}});
}
- if ($params eq '') {
- $params="defaults";
- }
if (! $dh{NOSCRIPTS}) {
- # Include postinst-init-tmpfiles if the package ships any files
- # in /usr/lib/tmpfiles.d or /etc/tmpfiles.d
- my $tmpdir = tmpdir($package);
- my @tmpfiles;
- find({
- wanted => sub {
- my $name = $File::Find::name;
- return unless -f $name;
- $name =~ s/^$tmpdir//g;
- if ($name =~ m,^/usr/lib/tmpfiles\.d/, ||
- $name =~ m,^/etc/tmpfiles\.d/,) {
- push @tmpfiles, $name;
- }
- },
- no_chdir => 1,
- }, $tmpdir);
- if (@tmpfiles > 0) {
- autoscript($package,"postinst", "postinst-init-tmpfiles",
- "s,#TMPFILES#," . join(" ", @tmpfiles).",");
- }
+ my $replace = {
+ 'SCRIPT' => $script,
+ 'INITPARMS' => $params,
+ 'ERROR_HANDLER' => $dh{ERROR_HANDLER},
+ 'INVOKE_RCD_PARAMS' => $update_rcd_params,
+ };
+ autoscript($package, 'preinst', 'preinst-init-chmod', $replace, \%snippet_options);
if (! $dh{NO_START}) {
if ($dh{RESTART_AFTER_UPGRADE}) {
# update-rc.d, and restart (or
# start if new install) script
- autoscript($package,"postinst", "postinst-init-restart",
- "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");
+ autoscript($package, 'postinst', 'postinst-init-restart', $replace, \%snippet_options);
}
else {
# update-rc.d, and start script
- autoscript($package,"postinst", "postinst-init",
- "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");
- }
-
- if ($dh{R_FLAG} || $dh{RESTART_AFTER_UPGRADE}) {
- # stops script only on remove
- autoscript($package,"prerm","prerm-init-norestart",
- "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");
- }
- else {
- # always stops script
- autoscript($package,"prerm","prerm-init",
- "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");
+ autoscript($package, 'postinst', 'postinst-init', $replace, \%snippet_options);
}
+
+ autoscript($package, 'preinst', 'preinst-init-stop', $replace, \%snippet_options)
+ unless ($dh{R_FLAG} || $dh{RESTART_AFTER_UPGRADE});
+
+ # stops script only on remove
+ autoscript($package, 'prerm', 'prerm-init-norestart', $replace, \%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
- autoscript($package,"postinst", "postinst-init-nostart",
- "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");
+ autoscript($package,"postinst", "postinst-init-nostart", $replace, \%snippet_options);
}
# removes rc.d links
autoscript($package,"postrm","postrm-init",
- "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");
+ { 'SCRIPT' => $script, 'ERROR_HANDLER' => $dh{ERROR_HANDLER} },
+ \%snippet_options);
}
}
}
=head1 SEE ALSO
-L<debhelper(7)>
+L<debhelper(7)>, L<dh_installsystemd(1)>
This program is a part of debhelper.
diff --git a/dh_installinitramfs b/dh_installinitramfs
new file mode 100755
index 00000000..37fb27f9
--- /dev/null
+++ b/dh_installinitramfs
@@ -0,0 +1,103 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+dh_installinitramfs - install initramfs hooks and setup maintscripts
+
+=cut
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_installinitramfs> [S<B<debhelper options>>] [B<-n>]
+
+=head1 DESCRIPTION
+
+B<dh_installinitramfs> is a debhelper program that is responsible for
+installing Debian package provided initramfs hooks.
+
+If B<dh_installinitramfs> installs or detects one or more initramfs
+hooks in the package, then it also automatically generates the noawait
+trigger B<update-initframfs> command needed to interface with the
+Debian initramfs system. This trigger is inserted into the
+packaging by L<dh_installdeb(1)>.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.initramfs-hook
+
+Assumed to be an initramfs hook that will be installed into F<<
+usr/share/initramfs-tools/hooks/I<package> >> in the package build
+directory. See B<HOOK SCRIPTS> in L<initramfs-tools(8)> for more
+information about initramfs hooks.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-n>, B<--no-scripts>
+
+Do not add the B<update-initramfs> trigger even if it seems like the package
+might need it. The option is called B<--no-scripts> for historical
+reasons as B<dh_installinitramfs> would previously generate maintainer
+scripts that called B<update-initramfs -u>.
+
+Use this option, if you need to interface with the B<update-initramfs>
+system that is not satisfied by the noawait trigger (e.g. because you need
+the extra guarantees and head-aches of a await trigger).
+
+=back
+
+=head1 NOTES
+
+Note that this command is not idempotent. L<dh_prep(1)> should be called
+between invocations of this command. Otherwise, it may cause multiple
+instances of the same text to be added to triggers file.
+
+=cut
+
+init();
+
+# PROMISE: DH NOOP WITHOUT initramfs-hook tmp(usr/share/initramfs-tools/hooks) cli-options()
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp = tmpdir($package);
+ my $hook_script = pkgfile($package, 'initramfs-hook');
+ my $has_hooks;
+ my $hook_dir = "${tmp}/usr/share/initramfs-tools/hooks";
+
+ if ($hook_script ne '') {
+ install_dir($hook_dir);
+ 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}) {
+ autotrigger($package, 'activate-noawait', 'update-initramfs');
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+L<update-initramfs(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 0821f1d5..bf1f779d 100755
--- a/dh_installlogcheck
+++ b/dh_installlogcheck
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installlogcheck - install logcheck rulefiles into etc/logcheck/
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installlogcheck> [S<I<debhelper options>>]
@@ -55,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);
@@ -67,12 +70,10 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
$typenod=~s/\.d//;
my $logcheck=pkgfile($package,"logcheck.$typenod");
if ($logcheck) {
- if (! -d "$tmp/etc/logcheck/$type") {
- doit("install","-o",0,"-g",0,"-d","$tmp/etc/logcheck/$type");
- }
my $packagenodot=pkgfilename($package); # run-parts..
$packagenodot=~s/\./_/g;
- doit("install","-m","0644",$logcheck,"$tmp/etc/logcheck/$type/$packagenodot");
+ install_dir("$tmp/etc/logcheck/$type");
+ install_file($logcheck, "$tmp/etc/logcheck/$type/$packagenodot");
}
}
}
diff --git a/dh_installlogrotate b/dh_installlogrotate
index da14688c..fc3d60a5 100755
--- a/dh_installlogrotate
+++ b/dh_installlogrotate
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installlogrotate - install logrotate config files
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installlogrotate> [S<I<debhelper options>>] [B<--name=>I<name>]
@@ -35,17 +38,15 @@ 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);
my $file=pkgfile($package,"logrotate");
if ($file) {
- if (! -d "$tmp/etc/logrotate.d") {
- doit("install","-o",0,"-g",0,"-d","$tmp/etc/logrotate.d");
- }
- doit("install","-m",644,$file,"$tmp/etc/logrotate.d/".pkgfilename($package));
+ install_dir("$tmp/etc/logrotate.d");
+ install_file($file,"$tmp/etc/logrotate.d/".pkgfilename($package));
}
}
diff --git a/dh_installman b/dh_installman
index 858605b2..015d439d 100755
--- a/dh_installman
+++ b/dh_installman
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,24 +7,42 @@ dh_installman - install man pages into package build directories
=cut
use strict;
+use warnings;
use File::Find;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installman> [S<I<debhelper options>>] [S<I<manpage> ...>]
=head1 DESCRIPTION
-B<dh_installman> is a debhelper program that handles installing
-man pages into the correct locations in package build directories. You tell
-it what man pages go in your packages, and it figures out where to install
-them based on the section field in their B<.TH> or B<.Dt> line. If you have
-a properly formatted B<.TH> or B<.Dt> line, your man page will be installed
-into the right directory, with the right name (this includes proper handling
-of pages with a subsection, like B<3perl>, which are placed in F<man3>, and
-given an extension of F<.3perl>). If your B<.TH> or B<.Dt> line is incorrect
-or missing, the program may guess wrong based on the file extension.
+B<dh_installman> is a debhelper program that handles installing man
+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 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
+to UTF-8 and for converting F<.so> links (as described below). However,
+that part happens automatically without any explicit configuration.
+
+
+You tell B<dh_installman> what man pages go in your packages, and it figures out
+where to install them based on the section field in their B<.TH> or
+B<.Dt> line. If you have a properly formatted B<.TH> or B<.Dt> line,
+your man page will be installed into the right directory, with the
+right name (this includes proper handling of pages with a subsection,
+like B<3perl>, which are placed in F<man3>, and given an extension of
+F<.3perl>). If your B<.TH> or B<.Dt> line is incorrect or missing, the
+program may guess wrong based on the file extension.
It also supports translated man pages, by looking for extensions
like F<.ll.8> and F<.ll_LL.8>, or by use of the B<--language> switch.
@@ -48,6 +66,10 @@ manual page and convert it to UTF-8. If the guesswork fails for some
reason, you can override it using an encoding declaration. See
L<manconv(1)> for details.
+From debhelper compatibility level 11 on, B<dh_install> will fall back to
+looking in F<debian/tmp> for files, if it does not find them in the current
+directory (or wherever you've told it to look using B<--sourcedir>).
+
=head1 FILES
=over 4
@@ -56,6 +78,9 @@ L<manconv(1)> for details.
Lists man pages to be installed.
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
+
=back
=head1 OPTIONS
@@ -72,6 +97,16 @@ acted on.
Use this to specify that the man pages being acted on are written in the
specified language.
+=item B<--sourcedir=>I<dir>
+
+Look in the specified directory for files to be installed. This option
+requires compat 11 or later (it is silently ignored in compat 10 or earlier).
+
+Note that this is not the same as the B<--sourcedirectory> option used
+by the B<dh_auto_>I<*> commands. You rarely need to use this option, since
+B<dh_installman> automatically looks for files in F<debian/tmp> in debhelper
+compatibility level 11 and above.
+
=item I<manpage> ...
Install these man pages into the first package acted on. (Or in all
@@ -79,6 +114,20 @@ packages if B<-A> is specified).
=back
+=head1 EXAMPLES
+
+An example F<debian/manpages> file could look like this:
+
+ doc/man/foo.1
+ # Translations
+ doc/man/foo.da.1
+ doc/man/foo.de.1
+ doc/man/foo.fr.1
+ # NB: The following line is considered a polish translation
+ # of "foo.1" (and not a manpage written in perl called "foo.pl")
+ doc/man/foo.pl.1
+ # ...
+
=head1 NOTES
An older version of this program, L<dh_installmanpages(1)>, is still used
@@ -90,155 +139,229 @@ interface. Use this program instead.
init(options => {
"language=s" => \$dh{LANGUAGE},
+ "sourcedir=s" => \$dh{SOURCEDIR},
});
-my @sofiles;
-my @sodests;
-# PROMISE: DH NOOP WITHOUT manpages tmp(usr/share/man)
+# PROMISE: DH NOOP WITHOUT pkgfile-logged(manpages) tmp(usr/share/man) cli-options()
-foreach my $package (@{$dh{DOPACKAGES}}) {
- next if is_udeb($package);
+my (@sofiles, @sodests);
+my @all_packages = getpackages();
- my $tmp=tmpdir($package);
- my $file=pkgfile($package,"manpages");
- my @manpages;
+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;
+# We cannot assume documentation is built under nodoc, but if it is we must flag it as handled
+# or dh_missing might make noise.
+$default_error_handler = \&glob_expand_error_handler_silently_ignore if $nodocs;
- @manpages=filearray($file, ".") if $file;
+on_items_in_parallel(\@all_packages, sub {
- if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
- push @manpages, @ARGV;
- }
+ foreach my $package (@_) {
+ next if is_udeb($package);
- foreach my $page (@manpages) {
- my $basename=basename($page);
+ my $tmp = tmpdir($package);
+ my $file = pkgfile($package, "manpages");
+ my @manpages;
+ my @search_dirs = ('.');
+ my $skip_install = process_pkg($package) ? 0 : 1;
+ my $error_handler = $skip_install ? \&glob_expand_error_handler_silently_ignore : $default_error_handler;
+ @search_dirs = ($dh{SOURCEDIR} // '.', default_sourcedir($package)) if not compat(10);
- # Support compressed pages.
- my $gz='';
- if ($basename=~m/(.*)(\.gz)/) {
- $basename=$1;
- $gz=$2;
- }
+ @manpages = filearray($file, \@search_dirs, $error_handler) if $file;
- my $section;
- # See if there is a .TH or .Dt entry in the man page. If so,
- # we'll pull the section field from that.
- if ($gz) {
- open (IN, "zcat $page|") or die "$page: $!";
- }
- else {
- open (IN, $page) or die "$page: $!";
+ if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
+ push @manpages, @ARGV;
}
- while (<IN>) {
- if (/^\.TH\s+\S+\s+"?(\d+[^"\s]*)"?/ ||
- /^\.Dt\s+\S+\s+(\d+[^\s]*)/) {
- $section=$1;
- last;
+
+ log_installed_files($package, @manpages);
+
+ next if $skip_install or $nodocs;
+
+ foreach my $page (@manpages) {
+ my $basename = basename($page);
+
+ # Support compressed pages.
+ my $gz = '';
+ if ($basename =~ m/(.*)(\.gz)/) {
+ $basename = $1;
+ $gz = $2;
}
- }
- # Failing that, we can try to get it from the filename.
- if (! $section) {
- ($section)=$basename=~m/.*\.([1-9]\S*)/;
- }
- # Now get the numeric component of the section.
- my ($realsection)=$section=~m/^(\d)/ if defined $section;
- if (! $realsection) {
- error("Could not determine section for $page");
- }
-
- # Get the man page's name -- everything up to the last dot.
- my ($instname)=$basename=~m/^(.*)\./;
-
- my $destdir="$tmp/usr/share/man/man$realsection/";
- my $langcode;
- if (! defined $dh{LANGUAGE} || ! exists $dh{LANGUAGE}) {
- # Translated man pages are typically specified by adding the
- # language code to the filename, so detect that and
- # redirect to appropriate directory, stripping the code.
- ($langcode)=$basename=~m/.*\.([a-z][a-z](?:_[A-Z][A-Z])?)\.(?:[1-9]|man)/;
- }
- elsif ($dh{LANGUAGE} ne 'C') {
- $langcode=$dh{LANGUAGE};
- }
-
- if (defined $langcode && $langcode ne '') {
- # Strip the language code from the instname.
- $instname=~s/\.$langcode$//;
- }
-
- if (defined $langcode && $langcode ne '') {
- $destdir="$tmp/usr/share/man/$langcode/man$realsection/";
- }
- $destdir=~tr:/:/:s; # just for looks
- my $instpage="$destdir$instname.$section";
+ my ($fd, $section);
+ # See if there is a .TH or .Dt entry in the man page. If so,
+ # we'll pull the section field from that.
+ if ($gz) {
+ $fd = open_gz($page) or error("open $page failed: $!");
+ }
+ else {
+ open($fd, '<', $page) or error("open $page failed: $!");
+ }
+ while (<$fd>) {
+ if (/^\.TH\s+\S+\s+"?(\d+[^"\s]*)"?/ ||
+ /^\.Dt\s+\S+\s+(\d+[^\s]*)/) {
+ $section = $1;
+ if ($section =~ m/^\d+[.]\d+/) {
+ warning("Ignoring section defined in TH/Dt for ${page} as it looks like a version number: ${section}");
+ $section = undef;
+ }
+ last;
+ }
+ }
+ close($fd);
+ # Failing that, we can try to get it from the filename.
+ if (!$section) {
+ ($section) = $basename =~ m/\.([1-9]\w*)$/;
+ }
- next if -l $instpage;
- next if compat(5) && -e $instpage;
+ # Now get the numeric component of the section.
+ my ($realsection) = $section =~ m/^(\d+)/ if defined $section;
+ if (!$realsection or ($realsection < 0 or $realsection > 9)) {
+ warning("Section for ${page} is computed as \"${section}\", which is not a valid section")
+ if defined($section);
+ error("Could not determine section for $page");
+ }
+
+ # Get the man page's name -- everything up to the last dot.
+ my ($instname) = $basename =~ m/^(.*)\./;
+
+ my $destdir = "$tmp/usr/share/man/man$realsection/";
+ my $langcode;
+ if (!defined $dh{LANGUAGE} || !exists $dh{LANGUAGE}) {
+ if (not compat(10) and $page =~ m{/man/(?:([a-z][a-z](?:_[A-Z][A-Z])?)(?:\.[^/]+)?)?/man[1-9]/}) {
+ # If it looks like it was installed in a proper man dir, assume the language
+ # from that is correct.
+ $langcode = $1;
+ } else {
+ # Translated man pages are typically specified by adding the
+ # language code to the filename, so detect that and
+ # redirect to appropriate directory, stripping the code.
+ ($langcode) = $basename =~ m/\.([a-z][a-z](?:_[A-Z][A-Z])?)\.(?:[1-9]|man)/;
+ # Avoid false positives such as /usr/share/man/man8/libnss_myhostname.so.2.8
+ if (defined $langcode && $langcode eq 'so' && $basename =~ /^lib.*\.so(\.[0-9]+)*$/) {
+ $langcode = '';
+ }
+ }
+ } elsif ($dh{LANGUAGE} ne 'C') {
+ $langcode = $dh{LANGUAGE};
+ }
+
+ if (defined $langcode && $langcode ne '') {
+ # Strip the language code from the instname.
+ $instname =~ s/\.$langcode$//;
+ }
+
+ if (defined $langcode && $langcode ne '') {
+ $destdir = "$tmp/usr/share/man/$langcode/man$realsection/";
+ }
+ $destdir =~ tr:/:/:s; # just for looks
+ my $instpage = "$destdir$instname.$section";
+
+ next if -l $instpage;
- if (! -d $destdir) {
- doit "install","-d",$destdir;
+ install_dir($destdir);
+ if ($gz) {
+ doit({ stdout => $instpage }, 'zcat', $page);
+ }
+ else {
+ install_file($page, $instpage);
+ }
}
- if ($gz) {
- complex_doit "zcat \Q$page\E > \Q$instpage\E";
+
+ # Now the .so conversion.
+ @sofiles = @sodests = ();
+ foreach my $dir (qw{usr/share/man}) {
+ if (-e "$tmp/$dir") {
+ find(\&find_so_man, "$tmp/$dir");
+ }
}
- else {
- doit "install","-p","-m644",$page,$instpage;
+ foreach my $sofile (@sofiles) {
+ my $sodest = shift(@sodests);
+ rm_files($sofile);
+ make_symlink_raw_target($sodest, $sofile);
}
}
- # Now the .so conversion.
- @sofiles=@sodests=();
- foreach my $dir (qw{usr/share/man}) {
- if (-e "$tmp/$dir") {
- find(\&find_so_man, "$tmp/$dir");
- }
- }
- foreach my $sofile (@sofiles) {
- my $sodest=shift(@sodests);
- doit "rm","-f",$sofile;
- doit "ln","-sf",$sodest,$sofile;
- }
+});
- # Now utf-8 conversion.
- if (defined `man --version`) {
+# Now utf-8 conversion.
+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);
+ my $tmp = tmpdir($package);
foreach my $dir (qw{usr/share/man}) {
next unless -e "$tmp/$dir";
- find(sub {
- return if ! -f $_ || -l $_;
- my ($tmp, $orig)=($_.".new", $_);
- complex_doit "man --recode UTF-8 ./\Q$orig\E > \Q$tmp\E";
- # recode uncompresses compressed pages
- doit "rm", "-f", $orig if s/\.(gz|Z)$//;
- doit "chmod", 644, $tmp;
- doit "mv", "-f", $tmp, $_;
- }, "$tmp/$dir");
+ my %seen;
+ my $wanted = sub {
+ my $path = $File::Find::name;
+ return if -l $path || !-f _;
+ if ($path =~ m/\.dh-new$/) {
+ push(@issues, $path);
+ return;
+ }
+ my $uncompressed_name = $path;
+ $uncompressed_name =~ s/\.(?:gz|Z)$//;
+ if (exists($seen{$uncompressed_name})) {
+ my $msg = "Multiple definitions for manpage ${uncompressed_name} via different compressions.";
+ my @values = sort ($path, $seen{$uncompressed_name});
+ my $warn_msg = $msg . ' Picking ' . $values[0] . ' as the canonical definition.';
+ my $error_msg = $msg . ' Please ensure there is at most one definition.';
+ deprecated_functionality($warn_msg, 13, $error_msg);
+ $path = $values[0];
+ warn("Removing conflicting definition of ${uncompressed_name} (" . $values[1]
+ . ') to ensure deterministic behaviour.');
+ rm_files($values[1]);
+ }
+ $seen{$uncompressed_name} = $path;
+ };
+ find({
+ no_chdir => 1,
+ wanted => $wanted,
+ }, "$tmp/$dir");
+ push(@manpages_to_reencode, sort(values(%seen)));
+ }
+
+ if (@issues) {
+ warning("Removing temporary manpages from another dh_installman instance");
+ rm_files(@issues);
+ warning("Possibly race-condition detected or left-overs from an interrupted dh_installman (e.g. with ^C)");
+ error("Please ensure there are no parallel dh_installman's running (for this pkg) and then re-run dh_installman");
}
}
+ if (@manpages_to_reencode) {
+ 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).
+ warning("man is not available. Skipping re-encode of UTF-8 manpages")
}
# Check if a file is a .so man page, for use by File::Find.
sub find_so_man {
- # The -s test is becuase a .so file tends to be small. We don't want
+ # The -s test is because a .so file tends to be small. We don't want
# to open every man page. 1024 is arbitrary.
- if (! -f $_ || -s $_ > 1024 || -s == 0) {
+ if (! -f $_ || -s _ > 1024 || -s _ == 0) {
return;
}
# Test first line of file for the .so thing.
+ my $fd;
if (/\.gz$/) {
- open (SOTEST, "zcat $_|") or die "$_: $!";
+ $fd = open_gz($_) or error("open $_ failed: $!");
}
else {
- open (SOTEST,$_) || die "$_: $!";
+ open($fd, '<', $_) || error("open $_ failed: $!");
}
- my $l=<SOTEST>;
- close SOTEST;
+ my $l = <$fd>;
+ close($fd);
if (! defined $l) {
error("failed to read $_");
}
-
+
if ($l=~m/\.so\s+(.*)\s*/) {
my $solink=$1;
# This test is here to prevent links like ... man8/../man8/foo.8
@@ -252,7 +375,7 @@ sub find_so_man {
elsif ($solink =~ m!/!) {
$solink="../$solink";
}
-
+
if (-e $solink || -e "$solink.gz") {
push @sofiles,"$File::Find::dir/$_";
push @sodests,$solink;
@@ -260,6 +383,40 @@ sub find_so_man {
}
}
+sub has_man_db_tool {
+ my ($tool) = @_;
+ open(my $old_stderr, '>&', *STDERR) or error("dup(STDERR, tmp_fd): $!");
+ # Ignore the error; it is intended as noise-reduction. As long as we can restore
+ # the stderr later, the log will just be slightly more noisy than planned.
+ open(*STDERR, '>', '/dev/null') or warn("redirect stderr to /dev/null failed: $!");
+
+ 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_installmanpages b/dh_installmanpages
index cc6a6f6f..22c669ef 100755
--- a/dh_installmanpages
+++ b/dh_installmanpages
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,12 @@ dh_installmanpages - old-style man page installer (deprecated)
=cut
use strict;
+use warnings;
use File::Find;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installmanpages> [S<I<debhelper options>>] [S<I<file> ...>]
@@ -102,16 +105,16 @@ sub find_man {
my @sofiles;
my @sodests;
sub find_so_man {
- # The -s test is becuase a .so file tends to be small. We don't want
+ # The -s test is because a .so file tends to be small. We don't want
# to open every man page. 1024 is arbitrary.
if (! -f $_ || -s $_ > 1024) {
return;
}
# Test first line of file for the .so thing.
- open (SOTEST,$_);
- my $l=<SOTEST>;
- close SOTEST;
+ open(my $fd, '<', $_);
+ my $l = <$fd>;
+ close($fd);
if ($l=~m/\.so\s+(.*)/) {
my $solink=$1;
# This test is here to prevent links like ... man8/../man8/foo.8
@@ -135,7 +138,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
# Find all filenames that look like man pages.
@manpages=();
- @allpackages=getpackages('');
+ @allpackages=getpackages() if not @allpackages;
find(\&find_man,'.'); # populates @manpages
foreach my $page (@manpages) {
@@ -157,29 +160,27 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
if ($install) {
my $extdir="share";
- my ($section)=$basename=~m/.*\.([1-9])/;
+ my ($section)=$basename=~m/\.([1-9])/;
my $destdir="$tmp/usr/$extdir/man/man$section/";
# Handle translated man pages.
my $instname=$basename;
- my ($langcode)=$basename=~m/.*\.([a-z][a-z])\.([1-9])/;
+ my ($langcode)=$basename=~m/\.([a-z][a-z])\.([1-9])/;
if (defined $langcode && $langcode ne '') {
$destdir="$tmp/usr/$extdir/man/$langcode/man$section/";
$instname=~s/\.$langcode\./\./;
}
-
+
$destdir=~tr:/:/:s; # just for looks
-
+
if (! -e "$destdir/$basename" && !-l "$destdir/$basename") {
- if (! -d $destdir) {
- doit "install","-d",$destdir;
- }
- doit "install","-p","-m644",$page,$destdir.$instname;
+ install_dir($destdir);
+ install_file($page,$destdir.$instname);
}
}
}
-
+
# Now the .so conversion.
@sofiles=@sodests=();
foreach my $dir (qw{usr/share/man}) {
diff --git a/dh_installmenu b/dh_installmenu
index f5eae5db..c30e90f8 100755
--- a/dh_installmenu
+++ b/dh_installmenu
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installmenu - install Debian menu files into package build directories
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installmenu> [S<B<debhelper options>>] [B<-n>]
@@ -42,7 +45,7 @@ in the package build directory.
=over 4
-=item B<-n>, B<--noscripts>
+=item B<-n>, B<--no-scripts>
Do not modify F<postinst>/F<postrm> scripts.
@@ -52,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);
@@ -60,11 +63,9 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
my $menu_method=pkgfile($package,"menu-method");
if ($menu ne '') {
- if (! -d "$tmp/usr/share/menu") {
- doit("install","-d","$tmp/usr/share/menu");
- }
- doit("install","-p","-m644",$menu,"$tmp/usr/share/menu/$package");
-
+ install_dir("$tmp/usr/share/menu");
+ install_file($menu,"$tmp/usr/share/menu/$package");
+
# Add the scripts if a menu-method file doesn't exist.
# The scripts for menu-method handle everything these do, too.
if ($menu_method eq "" && ! $dh{NOSCRIPTS}) {
@@ -74,14 +75,12 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
}
if ($menu_method ne '') {
- if (!-d "$tmp/etc/menu-methods") {
- doit("install","-d","$tmp/etc/menu-methods");
- }
- doit("install","-p","-m644",$menu_method,"$tmp/etc/menu-methods/$package");
+ install_dir("$tmp/etc/menu-methods");
+ install_file($menu_method,"$tmp/etc/menu-methods/$package");
if (! $dh{NOSCRIPTS}) {
- autoscript($package,"postinst","postinst-menu-method","s/#PACKAGE#/$package/");
- autoscript($package,"postrm","postrm-menu-method","s/#PACKAGE#/$package/");
+ autoscript($package, 'postinst', 'postinst-menu-method', { 'PACKAGE' => $package });
+ autoscript($package, 'postrm', 'postrm-menu-method', { 'PACKAGE' => $package });
}
}
}
diff --git a/dh_installmime b/dh_installmime
index 3360250f..5ad61903 100755
--- a/dh_installmime
+++ b/dh_installmime
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installmime - install mime files into package build directories
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installmime> [S<I<debhelper options>>]
@@ -38,25 +41,22 @@ 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);
my $mime=pkgfile($package,"mime");
if ($mime ne '') {
- if (! -d "$tmp/usr/lib/mime/packages") {
- doit("install","-d","$tmp/usr/lib/mime/packages");
- }
- doit("install","-p","-m644",$mime,"$tmp/usr/lib/mime/packages/$package");
+ install_dir("$tmp/usr/lib/mime/packages");
+ install_file($mime, "$tmp/usr/lib/mime/packages/$package");
}
my $sharedmimeinfo=pkgfile($package,"sharedmimeinfo");
if ($sharedmimeinfo ne '') {
- if (! -d "$tmp/usr/share/mime/packages") {
- doit("install", "-d", "$tmp/usr/share/mime/packages");
- }
- doit("install", "-p", "-m644", $sharedmimeinfo, "$tmp/usr/share/mime/packages/$package.xml");
+ install_dir("$tmp/usr/share/mime/packages");
+ install_file($sharedmimeinfo,
+ "$tmp/usr/share/mime/packages/$package.xml");
}
}
diff --git a/dh_installmodules b/dh_installmodules
index be31676f..924a3381 100755
--- a/dh_installmodules
+++ b/dh_installmodules
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,12 @@ dh_installmodules - register kernel modules
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
use File::Find;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installmodules> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>]
@@ -39,7 +42,7 @@ Installed to etc/modprobe.d/I<package>.conf in the package build directory.
=over 4
-=item B<-n>, B<--noscripts>
+=item B<-n>, B<--no-scripts>
Do not modify F<preinst>/F<postinst>/F<postrm> scripts.
@@ -69,7 +72,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");
@@ -80,34 +83,25 @@ sub find_kernel_modules {
}
}, $searchdir);
- return keys %versions;
+ 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);
my $modprobe_file=pkgfile($package,"modprobe");
- if (! -e $tmp) {
- doit("install","-d",$tmp);
- }
-
if ($modprobe_file) {
- if (! -e "$tmp/etc/modprobe.d") {
- doit("install","-d","$tmp/etc/modprobe.d");
- }
- my $old="/etc/modprobe.d/".pkgfilename($package);
- my $new=$old.".conf";
- doit("install","-m","0644",$modprobe_file,"$tmp/$new");
- autoscript($package,"preinst","preinst-moveconffile","s!#OLD#!$old!g;s!#PACKAGE#!$package!g");
- autoscript($package,"postinst","postinst-moveconffile","s!#OLD#!$old!g;s!#NEW#!$new!g");
+ my $path = '/etc/modprobe.d/' . pkgfilename($package) . '.conf';
+ install_dir("$tmp/etc/modprobe.d");
+ install_file($modprobe_file, "$tmp/$path");
}
if (! $dh{NOSCRIPTS}) {
foreach my $kvers (find_kernel_modules("$tmp/lib/modules")) {
- autoscript($package,"postinst","postinst-modules","s/#KVERS#/$kvers/g");
- autoscript($package,"postrm","postrm-modules","s/#KVERS#/$kvers/g");
+ autoscript($package, 'postinst', 'postinst-modules', { 'KVERS' => $kvers });
+ autoscript($package, 'postrm', 'postrm-modules', { 'KVERS' => $kvers });
}
}
}
diff --git a/dh_installpam b/dh_installpam
index 80748818..193e3344 100755
--- a/dh_installpam
+++ b/dh_installpam
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installpam - install pam support files
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installpam> [S<I<debhelper options>>] [B<--name=>I<name>]
@@ -24,7 +27,11 @@ files used by PAM into package build directories.
=item debian/I<package>.pam
-Installed into etc/pam.d/I<package> in the package build directory.
+Installed into usr/lib/pam.d/I<package> in the package build directory.
+
+Until compatibility level 14 this file was installed under
+etc/pam.d/I<package>. Please consider using the "rm_conffile" feature from
+L<dh_installdeb(1)> to ensure the proper removal of previous PAM files.
=back
@@ -35,7 +42,7 @@ Installed into etc/pam.d/I<package> in the package build directory.
=item B<--name=>I<name>
Look for files named debian/I<package>.I<name>.pam and install them as
-etc/pam.d/I<name>, instead of using the usual files and installing them
+usr/lib/pam.d/I<name>, instead of using the usual files and installing them
using the package name.
=back
@@ -44,17 +51,20 @@ 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);
my $pam=pkgfile($package,"pam");
-
+
+ my $pamd_dir="/usr/lib/pam.d";
+ if (compat(13)) {
+ $pamd_dir="/etc/pam.d";
+ }
+
if ($pam ne '') {
- if (! -d "$tmp/etc/pam.d") {
- doit("install","-d","$tmp/etc/pam.d");
- }
- doit("install","-p","-m644",$pam,"$tmp/etc/pam.d/".pkgfilename($package));
+ install_dir("$tmp/$pamd_dir");
+ install_file($pam,"$tmp/$pamd_dir/".pkgfilename($package));
}
}
diff --git a/dh_installppp b/dh_installppp
index dad24cd7..68784a6b 100755
--- a/dh_installppp
+++ b/dh_installppp
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installppp - install ppp ip-up and ip-down files
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installppp> [S<I<debhelper options>>] [B<--name=>I<name>]
@@ -48,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);
@@ -56,10 +59,8 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
foreach my $script (qw(up down)) {
my $file=pkgfile($package, "ppp.ip-$script");
if ($file ne '') {
- if (! -d "$tmp/etc/ppp/ip-$script.d") {
- doit("install","-d","$tmp/etc/ppp/ip-$script.d");
- }
- doit("install","-p","-m755",$file,"$tmp/etc/ppp/ip-$script.d/".pkgfilename($package));
+ install_dir("$tmp/etc/ppp/ip-$script.d");
+ install_prog($file,"$tmp/etc/ppp/ip-$script.d/".pkgfilename($package));
}
}
}
diff --git a/dh_installsystemd b/dh_installsystemd
new file mode 100755
index 00000000..aba9d783
--- /dev/null
+++ b/dh_installsystemd
@@ -0,0 +1,453 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installsystemd - install systemd unit files
+
+=cut
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+use File::Find;
+use Cwd qw(getcwd abs_path);
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_installsystemd> [S<I<debhelper options>>] [B<--restart-after-upgrade>] [B<--no-stop-on-upgrade>] [B<--no-enable>] [B<--no-start>] [B<--name=>I<name>] [S<I<unit file> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_installsystemd> is a debhelper program that is responsible for
+installing package maintainer supplied systemd unit files.
+
+It also finds the service files installed by a package and generates
+F<preinst>, F<postinst>, and F<prerm> code blocks for enabling,
+disabling, starting, stopping, and restarting the corresponding
+systemd 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 systemd units,
+thus it is not necessary that the machine actually runs systemd during
+package installation time, enabling happens on all machines in order
+to be able to switch from sysvinit to systemd and back.
+
+B<dh_installsystemd> operates on all unit files installed by a
+package. For only generating blocks for specific unit files, pass them
+as arguments, C<dh_installsystemd quota.service>. 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>.mount,
+ debian/I<package>.path,
+ debian/I<package>@.path,
+ debian/I<package>.service,
+ debian/I<package>@.service,
+ debian/I<package>.socket,
+ debian/I<package>@.socket,
+ debian/I<package>.target,
+ debian/I<package>@.target,
+ debian/I<package>.timer,
+ debian/I<package>@.timer
+
+If any of those files exists, they are installed into
+F<lib/systemd/system/> in the package build directory.
+
+=item debian/I<package>.tmpfile
+
+Only used in compat 12 or earlier. In compat 13+, this file is
+handled by L<dh_installtmpfiles(1)> instead.
+
+If this exists, it is installed into F<usr/lib/tmpfiles.d/> in the
+package build directory. Note that the C<tmpfiles.d> mechanism is
+currently only used by systemd.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--no-enable>
+
+Disable the service(s) on purge, but do not enable them on install.
+
+B<Note> that this option does not affect whether the services are
+started. Please remember to also use B<--no-start> if the service
+should not be started.
+
+=item B<--name=>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>
+
+Do not stop the unit file until after the package upgrade has been completed.
+This is the default behaviour in compat 10.
+
+In earlier compat levels the default was to stop the unit file in the
+F<prerm>, and start it again in the F<postinst>.
+
+This can be useful for daemons that should not have a possibly long
+downtime during upgrade. But you should make sure that the daemon will not
+get confused by the package being upgraded while it's running before using
+this option.
+
+=item B<--no-restart-after-upgrade>
+
+Undo a previous B<--restart-after-upgrade> (or the default of compat
+10). If no other options are given, this will cause the service to be
+stopped in the F<prerm> script and started again in the F<postinst>
+script.
+
+=item B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>
+
+Do not stop service on upgrade. This has the side-effect of not
+restarting the service as a part of the upgrade.
+
+If you want to restart the service with minimal downtime, please use
+B<--restart-after-upgrade> (default in compat 10 or later). If you want
+the service to be restarted but be stopped during the upgrade, then please
+use B<--no-restart-after-upgrade> (note the "after-upgrade").
+
+Note that the B<--no-restart-on-upgrade> alias is deprecated and will
+be removed in compat 14. This is to avoid confusion with the
+B<--no-restart-after-upgrade> option.
+
+=item B<--no-start>
+
+Do not start the unit file after upgrades and after initial installation (the
+latter is only relevant for services without a corresponding init script).
+
+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
+
+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
+
+$dh{RESTART_AFTER_UPGRADE} = '';
+$dh{NO_START} = '';
+
+init(options => {
+ "no-enable" => \$dh{NO_ENABLE},
+ "r" => \$dh{R_FLAG},
+ 'no-stop-on-upgrade' => \$dh{R_FLAG},
+ "no-restart-on-upgrade" => \$dh{R_FLAG},
+ "no-start" => \$dh{NO_START},
+ "R|restart-after-upgrade!" => \$dh{RESTART_AFTER_UPGRADE},
+ "no-also" => \$dh{NO_ALSO}, # undocumented option
+});
+
+if ($dh{RESTART_AFTER_UPGRADE} eq '') {
+ $dh{RESTART_AFTER_UPGRADE} = 1 if not defined($dh{R_FLAG}) and $dh{NO_START} eq '';
+}
+
+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): $!");
+
+ while (my $line = <$fh>) {
+ chomp($line);
+ return 1 if $line =~ /^\s*\[Install\]$/i;
+ }
+ close($fh);
+ return 0;
+}
+
+sub has_sysv_equivalent {
+ my ($tmpdir, $unit) = @_;
+
+ $unit =~ s/\.(?:mount|service|socket|target|path)$//g;
+ return -f "$tmpdir/etc/init.d/$unit";
+}
+
+sub install_unit {
+ my ($package, $script, $pkgsuffix, $path, $installsuffix) = @_;
+ $installsuffix = $installsuffix || $pkgsuffix;
+ my $unit = pkgfile($package, $pkgsuffix);
+ return if $unit eq '';
+ install_dir($path);
+ install_file($unit, "${path}/${script}.${installsuffix}");
+}
+
+# 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_units {
+ my ($tmpdir, $aliases) = @_;
+
+ my $lib_systemd_system = "$tmpdir/lib/systemd/system";
+ my @installed;
+
+ return unless -d $lib_systemd_system;
+ opendir(my $dh, "$lib_systemd_system") or error("Cannot opendir($lib_systemd_system): $!");
+
+ foreach my $name (readdir($dh)) {
+ my $path = "$lib_systemd_system/$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;
+}
+
+
+# PROMISE: DH NOOP WITHOUT internal(bug#950723) 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
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmpdir = tmpdir($package);
+
+ # Intall all unit files in the debian/ directory with names in the
+ # form $package.(service|target|socket|path|timer|mount|tmpfile)
+ # and their templated version when relevant.
+
+ # This can be modified with the --name option to look for unit
+ # files with names in the form $package.$name.(service|...) and
+ # $name.(service|target|socket|path|timer|mount|tmpfile) and their
+ # templated version when relevant.
+ my $name = $dh{NAME} // $package;
+
+ for my $type (qw(service target socket path timer)) {
+ install_unit($package, $name, $type, "$tmpdir/lib/systemd/system");
+ install_unit("${package}@", "${name}@", $type, "$tmpdir/lib/systemd/system");
+ }
+
+ install_unit($package, $name, 'mount', "$tmpdir/lib/systemd/system");
+ # In compat 13+, this is handled by dh_installtmpfiles
+ install_unit($package, $name, 'tmpfile', "$tmpdir/usr/lib/tmpfiles.d", 'conf') if compat(12);
+}
+
+
+if (compat(12)) {
+ # In compat 13+, this is handled by dh_installtmpfiles
+ # Add postinst code blocks to handle tmpfiles
+ foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmpdir = tmpdir($package);
+ my @tmpfiles;
+
+ my @dirs = grep { -d } map { "${tmpdir}/$_" } qw(usr/lib/tmpfiles.d etc/tmpfiles.d);
+
+ find({
+ wanted => sub {
+ my $name = $File::Find::name;
+ return if not -f $name or not $name =~ m{[.]conf$};
+ push(@tmpfiles, basename($name)); },
+ no_chdir => 1,
+ }, @dirs) if @dirs;
+
+ if (@tmpfiles) {
+ autoscript($package, 'postinst', 'postinst-init-tmpfiles', { 'TMPFILES' => join(' ', sort @tmpfiles) });
+ }
+ }
+}
+
+
+# Add postinst, prerm, and postrm code blocks to handle activation,
+# deactivation, start and stopping of services when the package is
+# installed, upgraded or removed.
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmpdir = tmpdir($package);
+ my (@args, @start_units, @enable_units, %aliases);
+
+ my @installed_units = list_installed_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 option as if the corresponding unit names were
+ # passed in the command line.
+ @args = grep /(^|\/)$dh{NAME}\.(mount|path|service|socket|target|timer)$/, @installed_units;
+ }
+ else {
+ @args = @installed_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 $unit = shift @args;
+ my $path = "${tmpdir}/lib/systemd/system/${unit}";
+
+ error("Package '$package' does not install unit '$unit'.") unless (-f $path);
+
+ # Skip template service files. Enabling, disabling, starting
+ # or stopping those services without specifying the instance
+ # is not useful.
+ next if ($unit =~ /\@/);
+
+ # 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. The undocumented --no-also option disables
+ # handling of units linked via Also=. This option is provided
+ # only to suport a very specific use case in network-manager.
+ unless ($dh{NO_ALSO}) {
+ push @args, $_ for grep { !$seen{$_}++ } extract_key($path, 'Also');
+ }
+
+ # Extract unit aliases.
+ push @{$aliases{$unit}}, $_ for extract_key($path, 'Alias');
+
+ # 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;
+ }
+
+ if (contains_install_section($path)) {
+ push @enable_units, $unit;
+ }
+ }
+
+ @enable_units = map { quote($_) } uniq sort @enable_units;
+ @start_units = map { quote($_) } uniq sort @start_units;
+
+ my %options = ('snippet-order' => 'service');
+
+ if (@enable_units) {
+ for my $unit (@enable_units) {
+ my $snippet = $dh{NO_ENABLE} ? 'postinst-systemd-dont-enable' : 'postinst-systemd-enable';
+ autoscript($package, 'postinst', $snippet, { 'UNITFILE' => $unit }, \%options);
+ }
+ autoscript($package, 'postrm', 'postrm-systemd', {'UNITFILES' => join(' ', @enable_units) });
+ }
+
+ if (@start_units) {
+ my $replace = { 'UNITFILES' => join(' ', @start_units) };
+
+ if ($dh{RESTART_AFTER_UPGRADE}) {
+ 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', $replace, \%options);
+ }
+
+ # stop service before upgrade, if requested
+ autoscript($package, 'preinst', 'preinst-systemd-stop', $replace, \%options)
+ unless ($dh{R_FLAG} || $dh{RESTART_AFTER_UPGRADE});
+
+ # stop service only on remove
+ autoscript($package, 'prerm', 'prerm-systemd-restart', $replace, \%options)
+ unless ($dh{NO_START});
+
+ # Run this with "default" order so it is always after other
+ # service related autosnippets.
+ autoscript($package, 'postrm', 'postrm-systemd-reload-only', $replace);
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>, L<dh_installinit(1)>, L<deb-systemd-helper(1)>
+
+=head1 AUTHORS
+
+pkg-systemd-maintainers@lists.alioth.debian.org
+
+=cut
diff --git a/dh_installsystemduser b/dh_installsystemduser
new file mode 100755
index 00000000..7ab7933c
--- /dev/null
+++ b/dh_installsystemduser
@@ -0,0 +1,288 @@
+#!/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<preinst>, F<postinst>, and F<prerm>
+code blocks for enabling, disabling, starting, stopping, and restarting 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 internal(bug#950723) 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, $path) = @_;
+ 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;
+
+ my $path = "$tmpdir/usr/lib/systemd/user";
+ for my $type (qw(service target socket path timer)) {
+ install_user_unit($package, $name, $type, $path);
+ install_user_unit("${package}@", "${name}@", $type, $path);
+ }
+}
+
+# Generate postinst and prerm code blocks to enable and disable units
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my (@args, @start_units, @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);
+ push @start_units, $name;
+ }
+
+ @enable_units = map { quote($_) } sort(uniq(@enable_units));
+ @start_units = map { quote($_) } sort(uniq(@start_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) });
+ }
+
+ if (@start_units and not compat(13)) {
+ # The generated maintainer script code blocks use the --user
+ # option that was added to deb-systemd-invoke in version 1.61.
+ addsubstvar($package, 'misc:Depends', 'init-system-helpers', ">= 1.61~");
+
+ my %options = ('snippet-order' => 'service');
+
+ # restart service after install/upgrade
+ autoscript($package, 'postinst', 'postinst-systemd-user-restart', { 'UNITFILES' => join(' ', @start_units) }, \%options);
+
+ # stop service after removal
+ autoscript($package, 'prerm', 'prerm-systemd-user-stop', { 'UNITFILES' => join(' ', @start_units) }, \%options);
+
+ # Run this with "default" order so it is always after other
+ # service related autosnippets.
+ autoscript($package, 'postrm', 'postrm-systemd-user-reload-only', { 'UNITFILES' => join(' ', @start_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_installsysusers b/dh_installsysusers
new file mode 100755
index 00000000..faa4b8e5
--- /dev/null
+++ b/dh_installsysusers
@@ -0,0 +1,115 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installsysusers - install and integrates systemd sysusers files
+
+=cut
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_installsysusers> [S<I<debhelper options>>]
+
+=head1 DESCRIPTION
+
+B<dh_installsysusers> is a debhelper program that is responsible for
+installing package maintainer supplied systemd sysusers files.
+
+It also finds the systemd sysusers files installed in a package and
+generates relevant integration snippets for enabling the users on
+installation. These snippets are added to the package by
+L<dh_installdeb(1)>.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.sysusers
+
+If the file exist, it will be installed as
+F<< /usr/lib/sysusers.d/I<package>.conf >>.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--name=>I<name>
+
+When this parameter is used, B<dh_installsysusers> looks for and
+installs files named debian/I<package>.I<name>.sysusers instead
+of the usual debian/I<package>.sysusers.
+
+Furthermore, the file is installed as F<< /usr/lib/sysusers.d/I<name>.conf >>
+rather than F<< /usr/lib/sysusers.d/I<package>.conf >>.
+
+=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
+
+init();
+
+
+# PROMISE: DH NOOP WITHOUT pkgfile(sysusers) tmp(usr/lib/sysusers.d) cli-options()
+
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmpdir = tmpdir($package);
+ my $sysusers = pkgfile($package,"sysusers");
+ my $sysusers_targetdir = "${tmpdir}/usr/lib/sysusers.d";
+ my $target = $dh{NAME} // $package;
+ my $typoed_name = pkgfile($package, "sysuser");
+
+ if ($sysusers eq '' and $typoed_name ne '') {
+ # Warn people in case they typo this as much as I did.
+ my $correct_name = $typoed_name;
+ $correct_name =~ s{^(?:.*[./])\Ksysuser}{sysusers};
+ warning("Possible typo in ${typoed_name} (expected ${correct_name}): File has been ignored");
+ }
+
+ if ($sysusers ne '') {
+ install_dir($sysusers_targetdir);
+ install_file($sysusers, "${sysusers_targetdir}/${target}.conf");
+ }
+
+ if (! $dh{NOSCRIPTS} && ($sysusers ne '' || -d $sysusers_targetdir)) {
+ my @sysusers_files;
+ opendir(my $dir_fd, $sysusers_targetdir) or error("opendir(${sysusers_targetdir}) failed: $!");
+ while (defined(my $entry = readdir($dir_fd))) {
+ next if $entry eq '.' or $entry eq '..' or $entry !~ m{[.]conf$};
+ push @sysusers_files, $entry;
+ }
+ closedir($dir_fd);
+
+ next if @sysusers_files == 0;
+
+ # Sort list of files so postinst content doesn't change if readdir's output is not stable
+ @sysusers_files = sort @sysusers_files;
+ # Generate a single systemd-sysusers invocation and just pass all detected files together
+ autoscript($package, 'postinst', 'postinst-sysusers', { 'CONFILE_BASENAME' => "@sysusers_files" });
+ addsubstvar($package, "misc:Depends", "systemd | systemd-standalone-sysusers | systemd-sysusers");
+ }
+
+}
+
+
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+=cut
diff --git a/dh_installtmpfiles b/dh_installtmpfiles
new file mode 100755
index 00000000..aa5ab722
--- /dev/null
+++ b/dh_installtmpfiles
@@ -0,0 +1,128 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installtmpfiles - install tmpfiles.d configuration files
+
+=cut
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+use File::Find;
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_installtmpfiles> [S<I<debhelper options>>][B<--name=>I<name>]
+
+=head1 DESCRIPTION
+
+B<dh_installtmpfiles> is a debhelper program that is responsible for
+installing package maintainer supplied tmpfiles.d configuration files
+(e.g. for systemd-tmpfiles).
+
+It also finds the tmpfiles.d configuration files installed by a package
+and generates F<postinst> code blocks for activating the tmpfiles.d
+configuration when the package is installed. These snippets are added
+to the maintainer scripts by L<dh_installdeb(1)>.
+
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--name=>I<name>
+
+This option controls both a prefix used for lookng up maintainer provided
+tmpfiles.d configuration files (those mentioned in the L</FILES> section)
+and also the base name used for the installed version of the file.
+
+=back
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.tmpfiles
+
+If this exists, it is installed into F<usr/lib/tmpfiles.d/> in the
+package build directory. Note that the C<tmpfiles.d> mechanism is
+currently only used by systemd.
+
+=item debian/I<package>.tmpfile
+
+Deprecated name for debian/I<package>.tmpfiles.
+
+=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
+
+init();
+
+sub uniq {
+ my %seen;
+ return grep { !$seen{$_}++ } @_;
+}
+
+# PROMISE: DH NOOP WITHOUT tmp(usr/lib/tmpfiles.d) tmp(etc/tmpfiles.d) pkgfile(tmpfiles) pkgfile(tmpfile) cli-options()
+
+# Install package maintainer supplied tmpfiles files
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmpdir = tmpdir($package);
+ my $tmpfile = pkgfile($package, 'tmpfiles');
+ my $name = $dh{NAME} // $package;
+ my $old_tmpfile = pkgfile($package, 'tmpfile');
+ my $dir;
+ if (not $tmpfile) {
+ my $new_name;
+ next if not $old_tmpfile;
+ $tmpfile = $old_tmpfile;
+ $new_name = $old_tmpfile;
+ $new_name =~ s{^(.+[./])tmpfile(\..+|)$}{$1tmpfiles$2};
+ warning("The name $tmpfile is deprecated; please use $new_name instead");
+ warning(qq{Possible fix: mv -f "${tmpfile}" "${new_name}"});
+ } elsif ($old_tmpfile) {
+ warning("There is both a $tmpfile and a $old_tmpfile that is relevant for this package!?");
+ warning(qq{Possible fix: rm -f "${old_tmpfile}"});
+ error("Aborting; Please resolve the ambiguity between ${tmpfile} and ${old_tmpfile}.");
+ }
+
+ $dir = "$tmpdir/usr/lib/tmpfiles.d";
+ install_dir($dir);
+ install_file($tmpfile, "${dir}/${name}.conf");
+}
+
+# Add postinst code blocks to handle tmpfiles
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmpdir = tmpdir($package);
+ my @tmpfiles;
+
+ my @dirs = grep { -d } map { "${tmpdir}/$_" } qw(usr/lib/tmpfiles.d etc/tmpfiles.d);
+
+ find({
+ wanted => sub {
+ my $name = $File::Find::name;
+ return if not -f $name or not $name =~ m{[.]conf$};
+ push(@tmpfiles, basename($name)); },
+ no_chdir => 1,
+ }, @dirs) if @dirs;
+
+ if (@tmpfiles) {
+ autoscript($package, 'postinst', 'postinst-init-tmpfiles', { 'TMPFILES' => join(' ', uniq(sort(@tmpfiles))) });
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+=cut
diff --git a/dh_installudev b/dh_installudev
index aaa0371d..8e491d1f 100755
--- a/dh_installudev
+++ b/dh_installudev
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,10 @@ dh_installudev - install udev rules files
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
-use File::Find;
+
+our $VERSION = DH_BUILTIN_VERSION;
=head1 SYNOPSIS
@@ -19,9 +21,6 @@ B<dh_installudev> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>] [B<--pri
B<dh_installudev> is a debhelper program that is responsible for
installing B<udev> rules files.
-Code is added to the F<preinst> and F<postinst> to handle the upgrade from the
-old B<udev> rules file location.
-
=head1 FILES
=over 4
@@ -46,10 +45,6 @@ debian/I<package>.udev.
Sets the priority the file. Default is 60.
-=item B<-n>, B<--noscripts>
-
-Do not modify F<preinst>/F<postinst> scripts.
-
=back
=head1 NOTES
@@ -60,7 +55,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 +78,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);
@@ -91,26 +88,14 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
$filename = "$package.udev";
}
$filename=~s/\.udev$/.rules/;
- my $oldfilename=$filename;
if (defined $dh{NAME}) {
$filename="$dh{NAME}.rules";
}
if ($rules_file) {
- if (! -e "$tmp/lib/udev/rules.d") {
- doit("install","-d","$tmp/lib/udev/rules.d");
- }
my $rule="/lib/udev/rules.d/$dh{PRIORITY}$filename";
- doit("install","-m","0644",$rules_file,$tmp.$rule);
- if (! $dh{NOSCRIPTS}) {
- # Remove old rule from /etc, unless it's modified,
- # in which case we rename it to match the new
- # file in /lib, so it will override.
- my $old="/etc/udev/rules.d/$old_priority$oldfilename";
- $rule=~s/^\/lib/\/etc/;
- autoscript($package,"preinst","preinst-moveconffile","s!#OLD#!$old!g;s!#NEW#!$rule!g;s!#PACKAGE#!$package!g");
- autoscript($package,"postinst","postinst-moveconffile","s!#OLD#!$old!g;s!#NEW#!$rule!g");
- }
+ install_dir("$tmp/lib/udev/rules.d");
+ install_file($rules_file, "${tmp}${rule}");
}
}
diff --git a/dh_installwm b/dh_installwm
index c3190e0b..d5e0599d 100755
--- a/dh_installwm
+++ b/dh_installwm
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installwm - register a window manager
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installwm> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] [S<I<wm> ...>]
@@ -18,8 +21,9 @@ B<dh_installwm> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] [S<I<wm>
B<dh_installwm> is a debhelper program that is responsible for
generating the F<postinst> and F<prerm> commands that register a window manager
with L<update-alternatives(8)>. The window manager's man page is also
-registered as a slave symlink (in v6 mode and up), if it is found in
-F<usr/share/man/man1/> in the package build directory.
+registered as a slave symlink (in v6 mode and up). It must be installed in
+F<usr/share/man/man1/> in the package build directory prior to calling
+B<dh_installwm>. In compat 9 and earlier, the manpage was optional.
=head1 FILES
@@ -29,6 +33,9 @@ F<usr/share/man/man1/> in the package build directory.
List window manager programs to register.
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
+
=back
=head1 OPTIONS
@@ -41,10 +48,15 @@ Set the priority of the window manager. Default is 20, which is too low for
most window managers; see the Debian Policy document for instructions on
calculating the correct value.
-=item B<-n>, B<--noscripts>
+=item B<-n>, B<--no-scripts>
Do not modify F<postinst>/F<prerm> scripts. Turns this command into a no-op.
+=item B<-A>, B<--all>
+
+Modify scripts for window managers specified by command line
+parameters in ALL packages acted on, not just the first.
+
=item I<wm> ...
Window manager programs to register.
@@ -59,7 +71,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;
@@ -73,7 +87,9 @@ if (@ARGV) {
}
}
-# PROMISE: DH NOOP WITHOUT wm
+my $nodocs = is_build_profile_active('nodoc') || get_buildoption('nodoc') ? 1 : 0;
+
+# PROMISE: DH NOOP WITHOUT wm cli-options()
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
@@ -90,19 +106,23 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
if (! $dh{NOSCRIPTS}) {
WM: foreach my $wm (@wm) {
- autoscript($package,"prerm","prerm-wm","s:#WM#:$wm:");
+ autoscript($package,"prerm","prerm-wm", { 'WM' => $wm });
my $wmman;
- if (! compat(5)) {
- foreach my $ext (".1", ".1x") {
- $wmman="/usr/share/man/man1/".basename($wm).$ext;
- if (-e "$tmp$wmman" || -e "$tmp$wmman.gz") {
- autoscript($package,"postinst","postinst-wm","s:#WM#:$wm:;s:#WMMAN#:$wmman.gz:;s/#PRIORITY#/$dh{PRIORITY}/",);
- next WM;
- }
+ foreach my $ext (".1", ".1x") {
+ $wmman="/usr/share/man/man1/".basename($wm).$ext;
+ if (-e "$tmp$wmman" || -e "$tmp$wmman.gz") {
+ autoscript($package,"postinst","postinst-wm", { 'WM' => $wm, 'WMMAN' => "${wmman}.gz" , 'PRIORITY' => $dh{PRIORITY} });
+ next WM;
}
}
- autoscript($package,"postinst","postinst-wm-noman","s:#WM#:$wm:;s/#PRIORITY#/$dh{PRIORITY}/",);
+ if (not compat(9) and not $nodocs) {
+ error("no manpage found (creating an x-window-manager alternative requires a slave symlink for the manpage)");
+ } else {
+ warning("no manpage found (creating an x-window-manager alternative requires a slave symlink for the manpage)");
+ }
+ # Reaching this code means a broken package will be produced.
+ autoscript($package,"postinst","postinst-wm-noman", { 'WM' => $wm, 'PRIORITY' => $dh{PRIORITY} });
}
}
}
diff --git a/dh_installxfonts b/dh_installxfonts
index c8ee5b34..c16659f7 100755
--- a/dh_installxfonts
+++ b/dh_installxfonts
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_installxfonts - register X fonts
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_installxfonts> [S<I<debhelper options>>]
@@ -46,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);
@@ -62,10 +65,9 @@ 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;
- foreach my $f (@fontdirs) {
+ 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.
push @cmds, "update-fonts-scale $f"
if -f "$tmp/etc/X11/fonts/$f/$package.scale";
@@ -73,14 +75,13 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
if (-f "$tmp/etc/X11/fonts/$f/$package.alias") {
push @cmds_postinst, "update-fonts-alias --include /etc/X11/fonts/$f/$package.alias $f";
push @cmds_postrm, "update-fonts-alias --exclude /etc/X11/fonts/$f/$package.alias $f";
- addsubstvar($package, "misc:Depends", "xfonts-utils (>= 1:7.5+2)");
}
}
autoscript($package, "postinst", "postinst-xfonts",
- "s:#CMDS#:".join(";", @cmds, @cmds_postinst).":");
+ { 'CMDS' => join(";", @cmds, @cmds_postinst) });
autoscript($package, "postrm", "postrm-xfonts",
- "s:#CMDS#:".join(";", @cmds, @cmds_postrm).":");
+ { 'CMDS' => join(";", @cmds, @cmds_postrm) });
addsubstvar($package, "misc:Depends", "xfonts-utils");
}
diff --git a/dh_link b/dh_link
index db4aea81..28eaed2c 100755
--- a/dh_link
+++ b/dh_link
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,12 @@ dh_link - create symlinks in package build directories
=cut
use strict;
+use warnings;
use File::Find;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_link> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<source destination> ...>]
@@ -19,18 +22,20 @@ B<dh_link> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<source destinat
B<dh_link> is a debhelper program that creates symlinks in package build
directories.
-B<dh_link> accepts a list of pairs of source and destination files. The source
-files are the already existing files that will be symlinked from. The
-destination files are the symlinks that will be created. There B<must> be
-an equal number of source and destination files specified.
+B<dh_link> accepts a list of pairs of source and destination
+files. The source files are the already existing files that will be
+symlinked from (called B<target> by L<ln(1)>). The destination files
+are the symlinks that will be created (called B<link name> by
+L<ln(1)>). There B<must> be an equal number of source and destination
+files specified.
-Be sure you B<do> specify the full filename to both the source and
-destination files (unlike you would do if you were using something like
-L<ln(1)>).
+Be sure you B<do> specify the absolute path to both the source and
+destination files (unlike you would do if you were using something
+like L<ln(1)>). Please note that the leading slash is optional.
B<dh_link> will generate symlinks that comply with Debian policy - absolute
when policy says they should be absolute, and relative links with as short
-a path as possible. It will also create any subdirectories it needs to to put
+a path as possible. It will also create any subdirectories it needs to put
the symlinks in.
Any pre-existing destination files will be replaced with symlinks.
@@ -48,6 +53,17 @@ Lists pairs of source and destination files to be symlinked. Each pair
should be put on its own line, with the source and destination separated by
whitespace.
+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 given in the same order as they would be given to L<ln(1)>.
+
+In contrast to L<ln(1)>, source and destination paths must be absolute
+(the leading slash is optional).
+
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
+
=back
=head1 OPTIONS
@@ -84,43 +100,12 @@ Make F<bar.1> be a symlink to F<foo.1>
Make F</usr/lib/foo/> be a link to F</var/lib/foo/>, and F<bar.1> be a symlink to
the F<foo.1>
-=cut
+ var/lib/foo usr/lib/foo
+ usr/share/man/man1/foo.1 usr/share/man/man1/bar.1
-# This expand_path expands all path "." and ".." components, but doesn't
-# resolve symbolic links.
-sub expand_path {
- my $start = @_ ? shift : '.';
- my @pathname = split(m:/+:,$start);
-
- my $entry;
- my @respath;
- foreach $entry (@pathname) {
- if ($entry eq '.' || $entry eq '') {
- # Do nothing
- }
- elsif ($entry eq '..') {
- if ($#respath == -1) {
- # Do nothing
- }
- else {
- pop @respath;
- }
- }
- else {
- push @respath, $entry;
- }
- }
-
- my $result;
- foreach $entry (@respath) {
- $result .= '/' . $entry;
- }
- if (! defined $result) {
- $result="/"; # special case
- }
- return $result;
-}
+Same as above but as content for a debian/I<package>.links file.
+=cut
init();
@@ -148,8 +133,8 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
error("parameters list a link without a destination.");
}
- # v4 or later and only if there is a temp dir already
- if (! compat(3) && -e $tmp) {
+ # If there is a temp dir already
+ if (-e $tmp) {
# Scan for existing links and add them to @links, so they
# are recreated policy conformant.
find(
@@ -173,55 +158,8 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
while (@links) {
my $dest=pop @links;
- my $src=expand_path(pop @links);
-
- $src=~s:^/::;
- $dest=~s:^/::;
-
- if ($src eq $dest) {
- warning("skipping link from $src to self");
- next;
- }
-
- # Make sure the directory the link will be in exists.
- my $basedir=dirname("$tmp/$dest");
- if (! -e $basedir) {
- doit("install","-d",$basedir);
- }
-
- # Policy says that if the link is all within one toplevel
- # directory, it should be relative. If it's between
- # top level directories, leave it absolute.
- my @src_dirs=split(m:/+:,$src);
- my @dest_dirs=split(m:/+:,$dest);
- if (@src_dirs > 0 && $src_dirs[0] eq $dest_dirs[0]) {
- # Figure out how much of a path $src and $dest
- # share in common.
- my $x;
- for ($x=0; $x < @src_dirs && $src_dirs[$x] eq $dest_dirs[$x]; $x++) {}
- # Build up the new src.
- $src="";
- for (1..$#dest_dirs - $x) {
- $src.="../";
- }
- for ($x .. $#src_dirs) {
- $src.=$src_dirs[$_]."/";
- }
- if ($x > $#src_dirs && ! length $src) {
- $src.="."; # special case
- }
- $src=~s:/$::;
- }
- else {
- # Make sure it's properly absolute.
- $src="/$src";
- }
-
- if (-d "$tmp/$dest" && ! -l "$tmp/$dest") {
- error("link destination $tmp/$dest is a directory");
- }
- doit("rm", "-f", "$tmp/$dest");
- doit("ln","-sf", $src, "$tmp/$dest");
+ my $src=pop @links;
+ make_symlink($dest, $src, $tmp);
}
}
diff --git a/dh_lintian b/dh_lintian
index 6e6ace0e..9fb2ed4c 100755
--- a/dh_lintian
+++ b/dh_lintian
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_lintian - install lintian override files into package build directories
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_lintian> [S<I<debhelper options>>]
@@ -39,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);
@@ -49,10 +52,8 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
my $overrides=pkgfile($package,"lintian-overrides");
if ($overrides ne '') {
- if (! -d "$or_dir") {
- doit("install","-d","$or_dir");
- }
- doit("install","-p","-m644",$overrides,"$or_dir/$package");
+ install_dir($or_dir);
+ install_dh_config_file($overrides, "$or_dir/$package");
}
}
diff --git a/dh_listpackages b/dh_listpackages
index 109301b9..e43e2cdb 100755
--- a/dh_listpackages
+++ b/dh_listpackages
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_listpackages - list binary packages debhelper will act on
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_listpackages> [S<I<debhelper options>>]
@@ -20,11 +23,12 @@ packages debhelper commands will act on. If you pass it some options, it
will change the list to match the packages other debhelper commands would
act on if passed the same options.
+Packages are listed in the order they appear in F<debian/control>.
+
=cut
$dh{BLOCK_NOOP_WARNINGS}=1;
-init();
-inhibit_log();
+init(inhibit_log => 1);
print join("\n",@{$dh{DOPACKAGES}})."\n";
=head1 SEE ALSO
diff --git a/dh_makeshlibs b/dh_makeshlibs
index 7aa52e49..c928cad4 100755
--- a/dh_makeshlibs
+++ b/dh_makeshlibs
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_makeshlibs - automatically create shlibs file and call dpkg-gensymbols
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_makeshlibs> [S<I<debhelper options>>] [B<-m>I<major>] [B<-V>I<[dependencies]>] [B<-n>] [B<-X>I<item>] [S<B<--> I<params>>]
@@ -18,18 +21,39 @@ B<dh_makeshlibs> [S<I<debhelper options>>] [B<-m>I<major>] [B<-V>I<[dependencies
B<dh_makeshlibs> is a debhelper program that automatically scans for shared
libraries, and generates a shlibs file for the libraries it finds.
-It also adds a call to ldconfig in the F<postinst> and F<postrm> scripts (in
-v3 mode and above only) to any packages in which it finds shared libraries.
-
-Packages that support multiarch are detected, and
-a Pre-Dependency on multiarch-support is set in ${misc:Pre-Depends} ;
-you should make sure to put that token into an appropriate place in your
-debian/control file for packages supporting multiarch.
+It will also ensure that ldconfig is invoked during install and removal when
+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 are considering to migrate to
+using the 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
+=item debian/I<package>.shlibs
+
+Installs this file, if present, into the package as DEBIAN/shlibs. If
+omitted, debhelper will generate a shlibs file automatically if it
+detects any libraries.
+
+Note in compat levels 9 and earlier, this file was installed by
+L<dh_installdeb(1)> rather than B<dh_makeshlibs>.
+
=item debian/I<package>.symbols
=item debian/I<package>.symbols.I<arch>
@@ -55,28 +79,77 @@ looked at library filenames rather than using objdump.
=item B<--version-info>, B<--version-info=>I<dependencies>
-By default, the shlibs file generated by this program does not make packages
-depend on any particular version of the package containing the shared
-library. It may be necessary for you to add some version dependency
-information to the shlibs file. If B<-V> is specified with no dependency
-information, the current upstream version of the package is plugged into a
-dependency that looks like "I<packagename> B<(E<gt>>= I<packageversion>B<)>". Note that in
-debhelper compatibility levels before v4, the Debian part of the package
-version number is also included. If B<-V> is specified with parameters, the
-parameters can be used to specify the exact dependency information needed
-(be sure to include the package name).
-
-Beware of using B<-V> without any parameters; 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 your library is prone to changing
-ABI without updating the upstream version number), so that if the
-maintainer screws up then they won't break. The flip side is that packages
-might end up with dependencies that are too tight and so find it harder to
-be upgraded.
-
-=item B<-n>, B<--noscripts>
-
-Do not modify F<postinst>/F<postrm> scripts.
+If a shlibs file is generated by this program, this option controls
+what version will be used in the dependency relation.
+
+In compat 12 and later, B<dh_makeshlibs> defaults to B<-VUpstream-Version>.
+In compat 11 and earlier the default behaved like B<-VNone>.
+
+The B<dh_makeshlibs> tool can generate dependencies in three variants:
+
+=over 4
+
+=item B<-VUpstream-Version>
+
+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 as shown here.
+
+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 the library is prone to changing ABI without updating the
+upstream version number).
+
+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 often of minor temporary inconvenience and usually a lot
+better than the fall out caused by forgetting to bump the dependency
+information.
+
+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 works)
+
+=item B<-VNone>
+
+The dependency will be "I<packagename>". Note that I<None> is
+case-sensitive and must be written exactly as shown here.
+
+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
+interfaces over time and packagers are recommended to use
+B<-VUpstream-Version> (or one of the other forms of B<-V>I<dependencies>).
+
+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 packages. Note that symbols are not supported for udeb packages,
+which solely relies on shlibs for dependency handling.
+
+=item B<-V>I<package-relation>
+
+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-package-name> B<(E<gt>>= I<some-package-version>B<)>". Remember
+to include the package name.
+
+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 dependency on a different package than the one containing
+the library.
+
+=back
+
+When choosing a value for this option, please keep mind that if the
+package provides a symbols file, then that this is generally preferred over
+the shlibs file for regular .deb packages. See L<dpkg-shlibdeps(1)>
+for more information on this topic.
+
+=item B<-n>, B<--no-scripts>
+
+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 B<dh_makeshlibs> would previously generate maintainer
+scripts that called B<ldconfig>.
=item B<-X>I<item>, B<--exclude=>I<item>
@@ -88,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 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)>.
@@ -98,13 +186,13 @@ Pass I<params> to L<dpkg-gensymbols(1)>.
=over 4
-=item B<dh_makeshlibs>
+=item B<dh_makeshlibs -VNone>
Assuming this is a package named F<libfoobar1>, generates a shlibs file that
looks something like:
libfoobar 1 libfoobar1
-=item B<dh_makeshlibs -V>
+=item B<dh_makeshlibs -VUpstream-Version>
Assuming the current version of the package is 1.1-3, generates a shlibs
file that looks something like:
@@ -119,28 +207,78 @@ 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 $objdump=cross_command("objdump");
-my $multiarch=dpkg_architecture_value("DEB_HOST_MULTIARCH");
-
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 %seen;
+ my (%seen, $unversioned_so);
my $need_ldconfig = 0;
- my $is_multiarch = 0;
+ # Note that since each package can have a shlibs file independently of
+ # each other, we need to make these local.
+ my $v_flag_set = $dh{V_FLAG_SET};
+ my $v_flag = $dh{V_FLAG} // '';
+ my $shlibs_file = pkgfile($package, 'shlibs');
- doit("rm", "-f", "$tmp/DEBIAN/shlibs");
+ rm_files("$tmp/DEBIAN/shlibs");
# So, we look for files or links to existing files with names that
# match "*.so.*". And we only look at real files not
@@ -148,89 +286,129 @@ 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, @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, "find $tmp -type f \\( -name '*.so' -or -name '*.so.*' \\) $exclude |");
- while (<FIND>) {
- my ($library, $major);
- push @lib_files, $_;
- if (defined $multiarch && $multiarch ne '' && m,/$multiarch/,) {
- $is_multiarch=1;
- }
- my $ret=`$objdump -p $_`;
- 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+(.+)-(.+)\.so/) {
- # idiotic crap soname format
- $library=$1;
- $major=$2;
+ # 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);
}
if (defined($dh{M_PARAMS}) && $dh{M_PARAMS} ne '') {
$major=$dh{M_PARAMS};
}
-
- if (! -d "$tmp/DEBIAN") {
- doit("install","-d","$tmp/DEBIAN");
- }
+
my $deps=$package;
- if ($dh{V_FLAG_SET}) {
- if ($dh{V_FLAG} ne '') {
- $deps=$dh{V_FLAG};
- }
- else {
+ if ($v_flag_set) {
+ if ($shlibs_file) {
+ warning("The provided ${shlibs_file} file overwrites -V");
+ # Clear the flag to avoid duplicate warnings.
+ $v_flag_set = 0;
+ $v_flag = '';
+ } else {
+ # Set the default "-V" (with no value) is passed.
+ $v_flag = 'Upstream-Version' if $v_flag eq '';
+ }
+ } elsif ($v_flag eq '') {
+ # Set the default if "-V" is omitted.
+ $v_flag = compat(11) ? 'None' : 'Upstream-Version';
+ }
+ if ($v_flag ne '') {
+ if ($v_flag eq 'Upstream-Version') {
# Call isnative because it sets $dh{VERSION}
# as a side effect.
isnative($package);
my $version = $dh{VERSION};
# Old compatibility levels include the
# debian revision, while new do not.
- if (! compat(3)) {
- # Remove debian version, if any.
- $version =~ s/-[^-]+$//;
- }
- $deps="$package (>= $version)";
+ # Remove debian version, if any.
+ $version =~ s/-[^-]+$//;
+ $deps = "$package (>= $version)";
+ } elsif ($v_flag ne 'None') {
+ $deps = $v_flag;
}
}
if (defined($library) && defined($major) && defined($deps) &&
- $library ne '' && $major ne '' && $deps ne '') {
- $need_ldconfig=1;
- # Prevent duplicate lines from entering the file.
- my $line="$library $major $deps";
+ $library ne '' && $major ne '' && $deps ne '') {
+ $need_ldconfig=1;
+ push(@lib_files, $lib_file) if not compat(11);
+ # Prevent duplicate lines from entering the file.
+ my $line="$library $major $deps";
if (! $seen{$line}) {
$seen{$line}=1;
- complex_doit("echo '$line' >>$tmp/DEBIAN/shlibs");
- if (defined($dh{SHLIBS_UDEB}) && $dh{SHLIBS_UDEB} ne '') {
+ push(@deb_lines, $line);
+ if (defined($udeb_name)) {
my $udeb_deps = $deps;
- $udeb_deps =~ s/\Q$package\E/$dh{SHLIBS_UDEB}/e;
- $line="udeb: "."$library $major $udeb_deps";
+ $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;
- # Write udeb: lines last.
- foreach (@udeb_lines) {
- complex_doit("echo '$_' >>$tmp/DEBIAN/shlibs");
+ 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\"");
+ }
}
- # New as of dh_v3.
- if (! compat(2) && ! $dh{NOSCRIPTS} && $need_ldconfig) {
- autoscript($package,"postinst","postinst-makeshlibs");
- autoscript($package,"postrm","postrm-makeshlibs");
+ if ($shlibs_file) {
+ install_dir("$tmp/DEBIAN");
+ install_file($shlibs_file, "$tmp/DEBIAN/shlibs");
+ } elsif (@deb_lines or @udeb_lines) {
+ install_dir("$tmp/DEBIAN");
+ if ($dh{VERBOSE}) {
+ verbose_print('echo ' . escape_shell($_) . ' >> ' . escape_shell("$tmp/DEBIAN/shlibs"))
+ for @deb_lines, @udeb_lines;
+ }
+ if (not $dh{NO_ACT}) {
+ open(my $shlibs_fd, '>', "$tmp/DEBIAN/shlibs") or error("open($tmp/DEBIAN/shlibs): $!");
+ # Write the shlibs file with the udeb: lines last.
+ print {$shlibs_fd} "$_\n" for @deb_lines, @udeb_lines;
+ close($shlibs_fd) or error("close($tmp/DEBIAN/shlibs");
+ }
}
if (-e "$tmp/DEBIAN/shlibs") {
- doit("chmod",644,"$tmp/DEBIAN/shlibs");
- doit("chown","0:0","$tmp/DEBIAN/shlibs");
+ reset_perm_and_owner(0644, "$tmp/DEBIAN/shlibs");
}
# dpkg-gensymbols files
@@ -244,16 +422,30 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
# own search for symbols files, since that search
# is not 100% compatible with debhelper. (For example,
# this supports --ignore being used.)
- $ok = $ok && doit_noerror("dpkg-gensymbols",
- "-p$package", "-I$symbols", "-P$tmp",
- @liblist,
- @{$dh{U_PARAMS}});
- if (-s "$tmp/DEBIAN/symbols" == 0) {
- doit("rm", "-f", "$tmp/DEBIAN/symbols");
+ $ok = doit_noerror(
+ "dpkg-gensymbols",
+ "-p$package",
+ "-I$symbols",
+ "-P$tmp",
+ @liblist,
+ @{$dh{U_PARAMS}}
+ ) && $ok;
+
+ if (-f "$tmp/DEBIAN/symbols" and -s _ == 0) {
+ rm_files("$tmp/DEBIAN/symbols");
+ } elsif ($unversioned_so) {
+ # There are a few "special" libraries (e.g. nss/nspr)
+ # which do not have versioned SONAMES. However the
+ # maintainer provides a symbols file for them and we can
+ # then use that to add an ldconfig trigger.
+ $need_ldconfig = 1;
}
}
- if ($is_multiarch) {
- addsubstvar($package, "misc:Pre-Depends", "multiarch-support");
+
+ # Historically, --no-scripts would disable the creation of
+ # maintscripts for calling ldconfig.
+ if (! $dh{NOSCRIPTS} && $need_ldconfig) {
+ autotrigger($package, 'activate-noawait', 'ldconfig');
}
}
diff --git a/dh_md5sums b/dh_md5sums
index 4a1264be..8f928438 100755
--- a/dh_md5sums
+++ b/dh_md5sums
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,12 @@ dh_md5sums - generate DEBIAN/md5sums file
=cut
use strict;
+use warnings;
use Cwd;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_md5sums> [S<I<debhelper options>>] [B<-x>] [B<-X>I<item>] [B<--include-conffiles>]
@@ -18,7 +21,7 @@ B<dh_md5sums> [S<I<debhelper options>>] [B<-x>] [B<-X>I<item>] [B<--include-conf
B<dh_md5sums> is a debhelper program that is responsible for generating
a F<DEBIAN/md5sums> file, which lists the md5sums of each file in the package.
-These files are used by the B<debsums> package.
+These files are used by B<dpkg --verify> or the L<debsums(1)> program.
All files in F<DEBIAN/> are omitted from the F<md5sums> file, as are all
conffiles (unless you use the B<--include-conffiles> switch).
@@ -32,7 +35,7 @@ The md5sums file is installed with proper permissions and ownerships.
=item B<-x>, B<--include-conffiles>
Include conffiles in the md5sums list. Note that this information is
-redundant since it is included elsewhere in Debian packages.
+redundant since it is included in F</var/lib/dpkg/status> in Debian packages.
=item B<-X>I<item>, B<--exclude=>I<item>
@@ -48,43 +51,68 @@ init(options => {
"include-conffiles" => \$dh{INCLUDE_CONFFILES},
});
-foreach my $package (@{$dh{DOPACKAGES}}) {
- next if is_udeb($package);
-
- my $tmp=tmpdir($package);
-
- if (! -d "$tmp/DEBIAN") {
- doit("install","-d","$tmp/DEBIAN");
- }
+on_pkgs_in_parallel {
+ foreach my $package (@_) {
+ next if is_udeb($package);
+
+ my $dbgsym_tmp = dbgsym_tmpdir($package);
+ my $tmp=tmpdir($package);
+
+ install_dir("$tmp/DEBIAN");
+
+ # Check if we should exclude conffiles.
+ my %conffiles;
+ if (! $dh{INCLUDE_CONFFILES} && -r "$tmp/DEBIAN/conffiles") {
+ # Generate exclude regexp.
+ open(my $fd, '<', "$tmp/DEBIAN/conffiles")
+ or error("open $tmp/DEBIAN/conffiles failed: $!");
+ while (my $line = <$fd>) {
+ chomp($line);
+ next if $line !~ s{^/+}{};
+ next if $line eq '';
+ $conffiles{$line} = 1;
+ }
+ close($fd);
+ }
- # Check if we should exclude conffiles.
- my $exclude="";
- if (! $dh{INCLUDE_CONFFILES} && -r "$tmp/DEBIAN/conffiles") {
- # Generate exclude regexp.
- open (CONFF,"$tmp/DEBIAN/conffiles");
- while (<CONFF>) {
- chomp;
- s/^\///;
- $exclude.="! -path \"./$_\" ";
+ generate_md5sums_file($tmp, \%conffiles);
+ if ( -d $dbgsym_tmp) {
+ install_dir("${dbgsym_tmp}/DEBIAN");
+ generate_md5sums_file($dbgsym_tmp);
}
- close CONFF;
}
-
- # See if we should exclude other files.
- if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') {
- $exclude.="! \\( $dh{EXCLUDE_FIND} \\) ";
+};
+
+sub generate_md5sums_file {
+ my ($tmpdir, $conffiles) = @_;
+ my $find_pid = open(my $find_fd, '-|') // error("fork failed: $!");
+ my (@files, $pipeline_pid);
+ if (not $find_pid) {
+ # Child
+ chdir($tmpdir) or error("chdir($tmpdir) failed: $!");
+ exec { 'find' } 'find', '-type', 'f', '!', '-regex', './DEBIAN/.*', '-printf', "%P\\0";
}
-
- my $find="find . -type f $exclude ! -regex './DEBIAN/.*' -printf '%P\\0'";
- complex_doit("(cd $tmp >/dev/null ; $find | LC_ALL=C sort -z | xargs -r0 md5sum > DEBIAN/md5sums) >/dev/null");
- # If the file's empty, no reason to waste inodes on it.
- if (-z "$tmp/DEBIAN/md5sums") {
- doit("rm","-f","$tmp/DEBIAN/md5sums");
+ local $/ = "\0"; # NUL-terminated input/"lines"
+ while (my $line = <$find_fd>) {
+ chomp($line);
+ next if excludefile($line);
+ next if $conffiles and %{$conffiles} and exists($conffiles->{$line});
+ push(@files, $line);
}
- else {
- doit("chmod",644,"$tmp/DEBIAN/md5sums");
- doit("chown","0:0","$tmp/DEBIAN/md5sums");
+ close($find_fd) or error_exitcode("find -type f ! -regex './DEBIAN/.*' -printf '%P\\0'");
+ @files = sort(@files);
+ verbose_print("cd $tmpdir >/dev/null && " . q{xargs -r0 md5sum | perl -pe 'if (s@^\\\\@@) { s/\\\\\\\\/\\\\/g; }' > DEBIAN/md5sums});
+ $pipeline_pid = open(my $pipeline_fd, '|-') // error("fork failed: $!");
+ if (not $pipeline_pid) {
+ # Child
+ chdir($tmpdir) or error("chdir($tmpdir) failed: $!");
+ exec { 'sh' } '/bin/sh', '-c', q{xargs -r0 md5sum | perl -pe 'if (s@^\\\\@@) { s/\\\\\\\\/\\\\/g; }' > DEBIAN/md5sums};
}
+
+ printf {$pipeline_fd} "%s\0", $_ for @files; # @files include NUL-terminator
+ close($pipeline_fd) or error_exitcode("cd $tmpdir >/dev/null && xargs -r0 md5sum | perl -pe 'if (s@^\\\\@@) { s/\\\\\\\\/\\\\/g; }' > DEBIAN/md5sums");
+ reset_perm_and_owner(0644, "${tmpdir}/DEBIAN/md5sums");
+ return;
}
=head1 SEE ALSO
diff --git a/dh_missing b/dh_missing
new file mode 100755
index 00000000..f4ad8fa6
--- /dev/null
+++ b/dh_missing
@@ -0,0 +1,271 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+dh_missing - check for missing files
+
+=cut
+
+use v5.28;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_missing> [B<-X>I<item>] [B<--sourcedir=>I<dir>] [S<I<debhelper options>>]
+
+=head1 DESCRIPTION
+
+B<dh_missing> compares the list of installed files with the files in
+the source directory. If any of the files (and symlinks) in the source
+directory were not installed to somewhere, it will warn on stderr
+about that (B<--list-missing>) or fail (B<--fail-missing>).
+
+Please note that in compat 11 and earlier without either of these
+options, B<dh_missing> will silently do nothing. In compat 12,
+B<--list-missing> is the default In compat 13 and later,
+B<--fail-missing> is the default.
+
+This may be useful if you have a large package and want to make sure that
+you don't miss installing newly added files in new upstream releases.
+
+Remember to test different kinds of builds (dpkg-buildpackage -A/-B/...) as
+you may experience varying results when only a subset of the packages are
+built.
+
+=head1 FILES
+
+=over 4
+
+=item debian/not-installed
+
+List the files that are deliberately not installed in I<any> binary
+package. Paths listed in this file are ignored by B<dh_missing>.
+However, it is B<not> a method to exclude files from being installed
+by any of the debhelper tool. If you want a tool to not install a
+given file, please use its B<--exclude> option (where available).
+
+B<dh_missing> will expand wildcards in this file (since debhelper 11.1).
+Wildcards without matches will be ignored.
+
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--list-missing>
+
+Warn on stderr about source files not installed to somewhere.
+
+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.
+
+=item B<--fail-missing>
+
+This option is like B<--list-missing>, except if a file was missed, it will
+not only list the missing files, but also fail with a nonzero exit code.
+
+This is the default in compat 13 and later.
+
+=back
+
+=cut
+
+init(options => {
+ "list-missing" => \$dh{LIST_MISSING},
+ "fail-missing" => \$dh{FAIL_MISSING},
+ "sourcedir=s" => \$dh{SOURCEDIR},
+});
+
+my (@installed, %helpers, %helpers_basename);
+
+my $srcdir = '.';
+if (defined($dh{SOURCEDIR})) {
+ $srcdir = $dh{SOURCEDIR};
+ $srcdir =~ s{/+$}{};
+ error("Invalid --sourcedir - must not be empty nor /") if not $srcdir;
+}
+
+if (!$dh{LIST_MISSING} && !$dh{FAIL_MISSING}) {
+ exit 0 if compat(11);
+ # --list-missing is the default in compat 12 and --fail-missing in compat 13+
+ my $option = compat(12) ? 'LIST_MISSING' : 'FAIL_MISSING';
+ $dh{$option} = 1;
+}
+
+# . as srcdir makes no sense, so this is a special case.
+if ($srcdir eq '.') {
+ $srcdir='debian/tmp';
+}
+
+if (! -d $srcdir) {
+ # If there was no explicit source directory, then we do not care
+ # if it is missing.
+ exit(0) if not defined $dh{SOURCEDIR};
+
+ if (scalar(getpackages()) == 1 && defined($dh{SOURCEDIR})) {
+ warning("$srcdir does not exist and there is only binary package.");
+ warning("Assuming everything is installed directly into the package directory.");
+ exit(0);
+ }
+ if (compat(10)) {
+ # Prevent "dh $@ --list-missing --destdir=... ..." from failing in compat 10.
+ warning("Cannot check if installation is missing files: $srcdir does not exist");
+ exit(0);
+ } else {
+ error("Cannot check if installation is missing files: $srcdir does not exist");
+ }
+}
+
+for my $file (glob('debian/.debhelper/generated/*/installed-by-*')) {
+ my ($target_pkg, $helper) = ('unknown', 'unknown');
+ my $had_files = 0;
+ my %seen;
+ if ($file =~ m@.*/([^/]+)/installed-by-(.*)@) {
+ ($target_pkg, $helper) = ($1, $2);
+ }
+
+ open(my $fh, '<', $file) or error("could not open $file: $!");
+ while (my $line = <$fh>) {
+ chomp($line);
+ next if $line =~ m/^\s*$/;
+ next if $seen{$line}++; # Ignore duplicates
+ $had_files++;
+ push(@installed, $line);
+ }
+ $helpers{$helper}{$target_pkg} = $had_files;
+ close($fh);
+}
+
+my @missing;
+if ( -f 'debian/not-installed') {
+ my @not_installed = filearray('debian/not-installed');
+ for my $pattern (@not_installed) {
+ my @matches;
+ # Add an explicit d/tmp if absent as there is no point in
+ # looking outside the debian staging directory
+ $pattern =~ s:^\s*:debian/tmp/: unless $pattern =~ m:^\s*debian/tmp/:;
+ @matches = glob_expand(['.'], \&glob_expand_error_handler_silently_ignore, $pattern);
+ if (@matches) {
+ # Assume classify them as installed
+ push(@installed, @matches);
+ } else {
+ # Assume it is not a pattern and classify it as installed
+ push(@installed, $pattern);
+ }
+ }
+
+ push(@installed, @not_installed);
+}
+my $installed=join("|", map {
+ # Kill any extra slashes, for robustness.
+ y:/:/:s;
+ s:/+$::;
+ s:^(\./)*::;
+ "\Q$_\E\/.*|\Q$_\E";
+} @installed);
+$installed=qr{^($installed)$};
+
+# Lazy load File::Find
+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);
+ -f || -l || return;
+ $_="$File::Find::dir/$_";
+ if (! /$installed/ && ! excludefile($_)) {
+ my $file=$_;
+ $file=~s/^\Q$srcdir\E\///;
+ push @missing, $file;
+ }
+}, $srcdir);
+if (@missing) {
+ my $had_related_files;
+ my %seen_basename = map { basename($_) => $_ } @installed;
+ my $multiarch = dpkg_architecture_value("DEB_HOST_MULTIARCH");
+ my $seen_ma_value = 0;
+ for my $file (sort(@missing)) {
+ my $basename = basename($file);
+ if (exists($seen_basename{$basename})) {
+ my $alt_source = $seen_basename{$basename};
+ $had_related_files //= [$file, $alt_source];
+ warning("$file exists in $srcdir but is not installed to anywhere (related file: \"$alt_source\")");
+ } else {
+ warning("$file exists in $srcdir but is not installed to anywhere ");
+ }
+ $seen_ma_value = 1 if index($file, $multiarch) > -1;
+ }
+ if ($had_related_files) {
+ my ($missing, $alt_source) = $had_related_files->@*;
+ my $error = $dh{FAIL_MISSING} ? 'error' : 'warning';
+ nonquiet_print();
+ nonquiet_print('While detecting missing files, dh_missing noted some files with a similar name to those');
+ nonquiet_print("that were missing. This ${error} /might/ be resolved by replacing references to the");
+ nonquiet_print('missing files with the similarly named ones that dh_missing found - assuming the content');
+ nonquiet_print('is identical.');
+ nonquiet_print();
+ nonquiet_print('As an example, you might want to replace:');
+ nonquiet_print(" * ${alt_source}");
+ nonquiet_print('with:');
+ nonquiet_print(" * ${missing}");
+ nonquiet_print('in a file in debian/ or as argument to one of the dh_* tools called from debian/rules.');
+ nonquiet_print('(Note it is possible the paths are not used verbatim but instead directories ');
+ nonquiet_print('containing or globs matching them are used instead)');
+ nonquiet_print();
+ nonquiet_print('Alternatively, add the missing file to debian/not-installed if it cannot and should not');
+ nonquiet_print('be used.');
+ nonquiet_print();
+ }
+ nonquiet_print("The following debhelper tools have reported what they installed (with files per package)");
+ for my $helper (sort(keys(%helpers))) {
+ my $pkg_info = $helpers{$helper};
+ my @results;
+ for my $pkg (sort(keys(%{$pkg_info}))) {
+ my $no = $pkg_info->{$pkg};
+ push(@results, "${pkg} (${no})")
+ }
+ nonquiet_print(" * ${helper}: " . join(', ', @results));
+ }
+ nonquiet_print('If the missing files are installed by another tool, please file a bug against it.');
+ nonquiet_print('When filing the report, if the tool is not part of debhelper itself, please reference the');
+ nonquiet_print('"Logging helpers and dh_missing" section from the "PROGRAMMING" guide for debhelper (10.6.3+).');
+ nonquiet_print(' (in the debhelper package: /usr/share/doc/debhelper/PROGRAMMING.md.gz)');
+ nonquiet_print("Be sure to test with dpkg-buildpackage -A/-B as the results may vary when only a subset is built");
+ nonquiet_print("If the omission is intentional or no other helper can take care of this consider adding the");
+ nonquiet_print("paths to debian/not-installed.");
+ if ($seen_ma_value) {
+ nonquiet_print();
+ nonquiet_print("Remember to be careful with paths containing \"${multiarch}\", where you might need to");
+ nonquiet_print("use a wildcard or (assuming compat 13+) e.g. \${DEB_HOST_MULTIARCH} in debian/not-installed");
+ nonquiet_print("to ensure it works on all architectures (see #961104).");
+ }
+ if ($dh{FAIL_MISSING}) {
+ error("missing files, aborting");
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Michael Stapelberg <stapelberg@debian.org>
+
+=cut
diff --git a/dh_movefiles b/dh_movefiles
index 6e481930..7c5c8ffd 100755
--- a/dh_movefiles
+++ b/dh_movefiles
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_movefiles - move files out of debian/tmp into subpackages
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_movefiles> [S<I<debhelper options>>] [B<--sourcedir=>I<dir>] [B<-X>I<item>] [S<I<file> ...>]
@@ -95,41 +98,29 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
error("$sourcedir does not exist.");
}
- my @tomove;
+ my (@tomove, @tomove_expanded);
- # debian/files has a different purpose, so ignore it.
+ # debian/files has a different purpose, so ignore it.
if ($files && $files ne "debian/files" ) {
@tomove=filearray($files, $sourcedir);
}
if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
- push @tomove, @ARGV;
+ # Expand these manually similar to filearray
+ push(@tomove_expanded, map { glob("$sourcedir/$_") } @ARGV);
}
- if (@tomove && $tmp eq $sourcedir) {
- error("I was asked to move files from $sourcedir to $sourcedir. Perhaps you should set DH_COMPAT=2?");
+ if ((@tomove || @tomove_expanded) && $tmp eq $sourcedir) {
+ error("I was asked to move files from $sourcedir to $sourcedir.");
}
- # Now we need to expand wildcards in @tomove.
- # This is only necessary in pre-v3 land -- as of v3, the
- # expansion is automatically done by filearray().
- if (@tomove && compat(2)) {
- my @filelist=();
- foreach (@tomove) {
- push @filelist, glob("$sourcedir/$_");
- }
- @tomove=@filelist;
- }
- else {
- # However, filearray() does not add the sourcedir,
- # which we need.
- @tomove = map { "$sourcedir/$_" } @tomove;
- }
+ # filearray() does not add the sourcedir, which we need.
+ @tomove = map { "$sourcedir/$_" } @tomove;
+
+ push(@tomove, @tomove_expanded);
if (@tomove) {
- if (! -d $tmp) {
- doit("install","-d",$tmp);
- }
+ install_dir($tmp);
doit("rm","-f","debian/movelist");
foreach (@tomove) {
diff --git a/dh_perl b/dh_perl
index dcdf589b..62ffcaa5 100755
--- a/dh_perl
+++ b/dh_perl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,13 @@ dh_perl - calculates Perl dependencies and cleans up after MakeMaker
=cut
use strict;
+use warnings;
use Config;
use File::Find;
use Debian::Debhelper::Dh_Lib;
+use constant DISTRO_PERL => $^X;
+
+our $VERSION = DH_BUILTIN_VERSION;
=head1 SYNOPSIS
@@ -70,6 +74,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) {
@@ -80,7 +89,6 @@ foreach (@ARGV) {
my $perl = 'perl';
# If -d is given, then the dependency is on perl-base rather than perl.
$perl .= '-base' if $dh{D_FLAG};
-my $version;
# dependency types
use constant PROGRAM => 1;
@@ -88,6 +96,9 @@ use constant PM_MODULE => 2;
use constant XS_MODULE => 4;
use constant ARCHDEP_MODULE => 8;
+use constant MA_ANY_INCOMPATIBLE_TYPES => ~(PROGRAM | PM_MODULE);
+
+
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
@@ -107,30 +118,47 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
}, @dirs if @dirs;
# find scripts
- find sub {
- return unless -f and (-x or /\.pl$/);
- return if $File::Find::dir=~/\/usr\/share\/doc\//;
-
- local *F;
- return unless open F, $_;
- if (read F, local $_, 32 and m%^#!\s*(/usr/bin/perl|/usr/bin/env\s+perl)\s%) {
+ $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, '<', $_);
+ my $path = $_;
+ my $rewrite_shebang = 0;
+ if (read($fd, local $_, 32) and m%^#!\s*(/usr/bin/perl|${\DISTRO_PERL}|/usr/bin/env\s+perl)\s%) {
+ my $actual_perl = $1;
$deps |= PROGRAM;
+ $rewrite_shebang = 1 if ($actual_perl ne DISTRO_PERL);
}
- close F;
- }, $tmp;
+ close($fd);
+ rewrite_shebang($path) if $rewrite_shebang;
+ };
+ find({
+ wanted => $check_script,
+ no_chdir => 1,
+ }, $tmp);
if ($deps) {
my $version="";
if ($deps & XS_MODULE or $dh{V_FLAG_SET}) {
- ($version) = `dpkg -s $perl` =~ /^Version:\s*(\S+)/m
+ ($version) = qx_cmd('dpkg', '-s', $perl) =~ /^Version:\s*(\S+)/m
unless $version;
$version = ">= $version";
}
-
+
+ my $perlarch = $perl;
+ $perlarch .= ':any' if (($deps & MA_ANY_INCOMPATIBLE_TYPES) == 0) and not $dh{V_FLAG_SET};
+
# no need to depend on an un-versioned perl-base -- it's
# essential
- addsubstvar($package, "perl:Depends", $perl, $version)
- unless $perl eq 'perl-base' && ! length($version);
+ addsubstvar($package, "perl:Depends", $perlarch, $version)
+ if $perl ne 'perl-base' || length($version);
# add perlapi-<ver> for XS modules and other modules
# installed into vendorarch
@@ -149,6 +177,14 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
}
}
+sub rewrite_shebang {
+ my ($file) = @_;
+ doit($^X, '-p', '-i', '-e',
+ 's{#!\s*(/usr/bin/perl|' . quotemeta(DISTRO_PERL) . '|/usr/bin/env\s+perl)}{#! ' . DISTRO_PERL . '} if ($. == 1);',
+ $file);
+ return;
+}
+
=head1 SEE ALSO
L<debhelper(7)>
diff --git a/dh_prep b/dh_prep
index 33a6fa6a..718d8d92 100755
--- a/dh_prep
+++ b/dh_prep
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_prep - perform cleanups in preparation for building a binary package
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_prep> [S<I<debhelper options>>] [B<-X>I<item>]
@@ -39,23 +42,30 @@ multiple times to build up a list of things to exclude.
init();
+my (@clean_files, @clean_dirs, %seen);
+
foreach my $package (@{$dh{DOPACKAGES}}) {
my $tmp=tmpdir($package);
my $ext=pkgext($package);
+ my $source_dir = default_sourcedir($package);
- doit("rm","-f","debian/${ext}substvars")
+ push(@clean_files, "debian/${ext}substvars")
unless excludefile("debian/${ext}substvars");
# These are all debhelper temp files, and so it is safe to
# wildcard them.
- complex_doit("rm -f debian/$ext*.debhelper");
-
- doit ("rm","-rf",$tmp."/")
+ my @temp = glob("debian/$ext*.debhelper");
+ push(@clean_files, @temp);
+ push(@clean_dirs, "debian/.debhelper/generated/${package}/");
+ push(@clean_dirs , "${tmp}/")
unless excludefile($tmp);
+
+ push(@clean_dirs, "${source_dir}/")
+ if (not $seen{$source_dir}++ and not excludefile($source_dir));
}
-doit('rm', '-rf', 'debian/tmp') if -x 'debian/tmp' && ! compat(1) &&
- ! excludefile("debian/tmp");
+xargs(\@clean_files, 'rm', '-f', '--') if @clean_files;
+xargs(\@clean_dirs, 'rm', '-fr', '--') if @clean_dirs;
=head1 SEE ALSO
diff --git a/dh_scrollkeeper b/dh_scrollkeeper
deleted file mode 100755
index fb04e6ef..00000000
--- a/dh_scrollkeeper
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/perl -w
-
-=head1 NAME
-
-dh_scrollkeeper - deprecated no-op
-
-=cut
-
-use strict;
-use Debian::Debhelper::Dh_Lib;
-
-=head1 SYNOPSIS
-
-B<dh_scrollkeeper> [S<I<debhelper options>>] [B<-n>] [S<I<directory>>]
-
-=head1 DESCRIPTION
-
-B<dh_scrollkeeper> was a debhelper program that handled
-registering OMF files for ScrollKeeper. However, it no longer does
-anything, and is now deprecated.
-
-=cut
-
-init();
-
-warning("This program is deprecated, and does nothing anymore.");
-
-=head1 SEE ALSO
-
-L<debhelper>
-
-This program is a part of debhelper.
-
-=head1 AUTHOR
-
-Ross Burton <ross@burtonini.com>
-
-=cut
diff --git a/dh_shlibdeps b/dh_shlibdeps
index b42c84a3..e455c4c0 100755
--- a/dh_shlibdeps
+++ b/dh_shlibdeps
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,13 @@ dh_shlibdeps - calculate shared library dependencies
=cut
use strict;
+use warnings;
use Cwd;
+use File::Find;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_shlibdeps> [S<I<debhelper options>>] [B<-L>I<package>] [B<-l>I<directory>] [B<-X>I<item>] [S<B<--> I<params>>]
@@ -59,12 +63,16 @@ path.
=item B<-L>I<package>, B<--libpackage=>I<package>
With recent versions of B<dpkg-shlibdeps>, this option is generally not
-needed, unless your package builds multiple flavors of the same library.
+needed, unless your package builds multiple flavors of the same library
+or is relying on F<debian/shlibs.local> for an internal library.
It tells B<dpkg-shlibdeps> (via its B<-S> parameter) to look first in the package
build directory for the specified package, when searching for libraries,
symbol files, and shlibs files.
+If needed, this can be passed multiple times with different package
+names.
+
=back
=head1 EXAMPLES
@@ -90,64 +98,108 @@ on libbar1 as follows:
=cut
init(options => {
- "L|libpackage=s" => \$dh{LIBPACKAGE},
- "dpkg-shlibdeps-params=s", => \$dh{U_PARAMS},
- "l=s", => \$dh{L_PARAMS},
+ "L|libpackage=s@" => \$dh{LIBPACKAGE},
+ "dpkg-shlibdeps-params=s" => \$dh{U_PARAMS},
+ "l=s" => \$dh{L_PARAMS},
});
if (defined $dh{V_FLAG}) {
warning("You probably wanted to pass -V to dh_makeshlibs, it has no effect on dh_shlibdeps");
}
-foreach my $package (@{$dh{DOPACKAGES}}) {
- my $tmp=tmpdir($package);
- my $ext=pkgext($package);
+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);
+ my (@filelist);
+
+ # Generate a list of ELF binaries in the package, ignoring any
+ # we were told to exclude.
+ my $find_options='';
+ if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') {
+ $find_options="! \\( $dh{EXCLUDE_FIND} \\)";
+ }
+ next if not -d $tmp;
+ if (compat(10)) {
+ foreach my $file (split(/\n/, `find $tmp -type f \\( -perm /111 -or -name "*.so*" -or -name "*.cmxs" -or -name "*.node" \\) $find_options -print`)) {
+ # Prune directories that contain separated debug symbols.
+ # CAVEAT: There are files in /usr/lib/debug that are not detached debug symbols,
+ # which should be processed. (see #865982)
+ 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..
+ if ($is_non_statically_linked_elf_file->($file)) {
+ push @filelist, $file;
+ }
+ }
+ } else {
+ my $find_elf_files = sub {
+ my $fn = $_;
+ return if -l $fn; # Ignore symlinks
+ # See if we were asked to exclude this file.
+ # Note that we have to test on the full filename, including directory.
+ if (excludefile($fn)) {
+ $File::Find::prune = 1 if -d _;
+ return;
+ }
+ if (-d _) {
+ # Prune directories that contain separated debug symbols.
+ # CAVEAT: There are files in /usr/lib/debug that are not detached debug symbols,
+ # which should be processed. (see #865982)
+ if ($fn =~ m!^\Q$tmp\E/usr/lib/debug/(lib|lib64|usr|bin|sbin|opt|dev|emul|\.build-id)/!) {
+ $File::Find::prune = 1;
+ }
+ return;
+ }
+
+ return if not -f _;
+ return if not is_so_or_exec_elf_file($fn);
+ # TODO this is slow, optimize. Ie, file can run once on
+ # multiple files..
+ if ($is_non_statically_linked_elf_file->($fn)) {
+ push(@filelist, $fn);
+ }
+ };
+ find({
+ wanted => $find_elf_files,
+ no_chdir => 1,
+ }, $tmp);
+ }
- # dpkg-shlibdeps expects this directory to exist
- if (! -d "$tmp/DEBIAN") {
- doit("install","-o",0,"-g",0,"-d","$tmp/DEBIAN");
- }
+ if (@filelist) {
+ my @opts;
- my @filelist;
- my $ff;
+ # dpkg-shlibdeps expects this directory to exist
+ install_dir("$tmp/DEBIAN");
- # Generate a list of ELF binaries in the package, ignoring any
- # we were told to exclude.
- my $find_options='';
- if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') {
- $find_options="! \\( $dh{EXCLUDE_FIND} \\)";
- }
- foreach my $file (split(/\n/,`find $tmp -type f \\( -perm /111 -or -name "*.so*" -or -name "*.cmxs" \\) $find_options -print`)) {
- # Prune directories that contain separated debug symbols.
- next if $file=~m!^\Q$tmp\E/usr/lib/debug/(lib|lib64|usr|bin|sbin|opt|dev|emul)/!;
- # TODO this is slow, optimize. Ie, file can run once on
- # multiple files..
- $ff=`file "$file"`;
- if ($ff=~m/ELF/ && $ff!~/statically linked/) {
- push @filelist,$file;
- }
- }
+ if (defined($dh{LIBPACKAGE})) {
+ @opts = map { '-S' . tmpdir($_) } @{$dh{LIBPACKAGE}};
+ }
- if (@filelist) {
- my @opts;
- if (defined $dh{LIBPACKAGE} && length $dh{LIBPACKAGE}) {
- @opts=("-S".tmpdir($dh{LIBPACKAGE}));
- }
-
- push @opts, "-tudeb" if is_udeb($package);
-
- if ($dh{L_PARAMS}) {
- foreach (split(/:/, $dh{L_PARAMS})) {
- # Force the path absolute.
- my $libdir = m:^/: ? $_ : "/$_";
- push @opts, "-l$libdir";
+ push @opts, "-tudeb" if is_udeb($package);
+
+ if ($dh{L_PARAMS}) {
+ foreach (split(/:/, $dh{L_PARAMS})) {
+ # Force the path absolute.
+ my $libdir = m:^/: ? $_ : "/$_";
+ push @opts, "-l$libdir";
+ }
}
+
+ doit("dpkg-shlibdeps","-Tdebian/${ext}substvars",
+ @opts,@{$dh{U_PARAMS}},@filelist);
}
-
- doit("dpkg-shlibdeps","-Tdebian/${ext}substvars",
- @opts,@{$dh{U_PARAMS}},@filelist);
}
-}
+};
=head1 SEE ALSO
diff --git a/dh_strip b/dh_strip
index 516b6f28..5cd32c10 100755
--- a/dh_strip
+++ b/dh_strip
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,9 +7,12 @@ dh_strip - strip executables, shared libraries, and some static libraries
=cut
use strict;
+use warnings;
use File::Find;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_strip> [S<I<debhelper options>>] [B<-X>I<item>] [B<--dbg-package=>I<package>] [B<--keep-debug>]
@@ -17,8 +20,8 @@ B<dh_strip> [S<I<debhelper options>>] [B<-X>I<item>] [B<--dbg-package=>I<package
=head1 DESCRIPTION
B<dh_strip> is a debhelper program that is responsible for stripping
-executables, shared libraries, and static libraries that are not used for
-debugging.
+out debug symbols in executables, shared libraries, and static
+libraries that are not needed during execution.
This program examines your package build directories and works out what
to strip on its own. It uses L<file(1)> and file permissions and filenames
@@ -44,6 +47,14 @@ things to exclude.
=item B<--dbg-package=>I<package>
+B<This option is a now special purpose option that you normally do not
+need>. In most cases, there should be little reason to use this
+option for new source packages as debhelper automatically generates
+debug packages ("dbgsym packages"). B<If you have a manual
+--dbg-package> that you want to replace with an automatically
+generated debug symbol package, please see the B<--dbgsym-migration>
+option.
+
Causes B<dh_strip> to save debug symbols stripped from the packages it acts on
as independent files in the package build directory of the specified debugging
package.
@@ -51,25 +62,73 @@ package.
For example, if your packages are libfoo and foo and you want to include a
I<foo-dbg> package with debugging symbols, use B<dh_strip --dbg-package=>I<foo-dbg>.
-Note that this option behaves significantly different in debhelper
-compatibility levels 4 and below. Instead of specifying the name of a debug
-package to put symbols in, it specifies a package (or packages) which
-should have separated debug symbols, and the separated symbols are placed
-in packages with B<-dbg> added to their name.
+This option implies B<--no-automatic-dbgsym> and I<cannot> be used
+with B<--automatic-dbgsym> or B<--dbgsym-migration>.
=item B<-k>, B<--keep-debug>
+B<This option is a now special purpose option that you normally do not
+need>. In most cases, there should be little reason to use this
+option for new source packages as debhelper automatically generates
+debug packages ("dbgsym packages"). B<If you have a manual
+--dbg-package> that you want to replace with an automatically
+generated debug symbol package, please see the B<--dbgsym-migration>
+option.
+
Debug symbols will be retained, but split into an independent
file in F<usr/lib/debug/> in the package build directory. B<--dbg-package>
is easier to use than this option, but this option is more flexible.
+This option implies B<--no-automatic-dbgsym> and I<cannot> be used
+with B<--automatic-dbgsym>.
+
+=item B<--dbgsym-migration=>I<package-relation>
+
+This option is used to migrate from a manual "-dbg" package (created
+with B<--dbg-package>) to an automatic generated debug symbol
+package. This option should describe a valid B<Replaces>- and
+B<Breaks>-relation, which will be added to the debug symbol package to
+avoid file conflicts with the (now obsolete) -dbg package.
+
+This option implies B<--automatic-dbgsym> and I<cannot> be used with
+B<--keep-debug>, B<--dbg-package> or B<--no-automatic-dbgsym>.
+
+Examples:
+
+ dh_strip --dbgsym-migration='libfoo-dbg (<< 2.1-3~)'
+
+ dh_strip --dbgsym-migration='libfoo-tools-dbg (<< 2.1-3~), libfoo2-dbg (<< 2.1-3~)'
+
+=item B<--automatic-dbgsym>, B<--no-automatic-dbgsym>
+
+Control whether B<dh_strip> should be creating debug symbol packages
+when possible.
+
+The default is to create debug symbol packages.
+
+=item B<--ddebs>, B<--no-ddebs>
+
+Historical name for B<--automatic-dbgsym> and B<--no-automatic-dbgsym>.
+
+=item B<--ddeb-migration=>I<package-relation>
+
+Historical name for B<--dbgsym-migration>.
+
=back
=head1 NOTES
-If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, nothing
-will be stripped, in accordance with Debian policy (section 10.1
-"Binaries").
+If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>,
+nothing will be stripped, in accordance with Debian policy (section
+10.1 "Binaries"). This will also inhibit the automatic creation of
+debug symbol packages.
+
+The automatic creation of debug symbol packages can also be prevented
+by adding B<noautodbgsym> to the B<DEB_BUILD_OPTIONS> environment
+variable. However, B<dh_strip> will still add debuglinks to ELF
+binaries when this flag is set. This is to ensure that the regular
+deb package will be identical with and without this flag (assuming it
+is otherwise "bit-for-bit" reproducible).
=head1 CONFORMS TO
@@ -78,165 +137,299 @@ 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
+ 'ddeb-migration=s' => \$dh{MIGRATE_DBGSYM},
+ 'ddebs!' => \$dh{ENABLE_DBGSYM},
+
});
-# This variable can be used to turn off stripping (see Policy).
-if (get_buildoption('nostrip')) {
- exit;
+if ($dh{MIGRATE_DBGSYM}) {
+ error("--keep-debug and --dbgsym-migration are mutually exclusive") if ($dh{K_FLAG});
+ error("--dbg-package and --dbgsym-migration are mutually exclusive") if ($dh{DEBUGPACKAGE});
}
-my $objcopy = cross_command("objcopy");
-my $strip = cross_command("strip");
+if ($dh{ENABLE_DBGSYM}) {
+ error("--keep-debug and explicit --automatic-dbgsym are mutually exclusive") if ($dh{K_FLAG});
+ error("--dbg-package and explicit --automatic-dbgsym are mutually exclusive") if ($dh{DEBUGPACKAGE});
+}
-# I could just use `file $_[0]`, but this is safer
-sub get_file_type {
- my $file=shift;
- open (FILE, '-|') # handle all filenames safely
- || exec('file', $file)
- || die "can't exec file: $!";
- my $type=<FILE>;
- close FILE;
- return $type;
+$dh{ENABLE_DBGSYM} = 1 if not defined($dh{ENABLE_DBGSYM});
+
+if ($dh{MIGRATE_DBGSYM} and not $dh{ENABLE_DBGSYM}) {
+ error("--dbgsym-migration and --no-automatic-dbgsym are mutually exclusive");
}
+# This variable can be used to turn off stripping (see Policy).
+exit 0 if (get_buildoption('nostrip'));
+
+my $no_auto_dbgsym = 0;
+$no_auto_dbgsym = 1 if get_buildoption('noautodbgsym') or get_buildoption('noddebs');
+
# Check if a file is an elf binary, shared library, or static library,
-# for use by File::Find. It'll fill the following 3 arrays with anything
-# it finds:
-my (@shared_libs, @executables, @static_libs);
+# for use by File::Find. It'll fill the 3 first arrays with anything
+# it finds. The @build_ids will be the collected build-ids (if any)
+my (@shared_libs, @executables, @static_libs, @build_ids, %file_output);
sub testfile {
- return if -l $_ or -d $_; # Skip directories and symlinks always.
+ my $fn = $_;
+ return if -l $fn; # Always skip symlinks.
# See if we were asked to exclude this file.
# Note that we have to test on the full filename, including directory.
- my $fn="$File::Find::dir/$_";
- foreach my $f (@{$dh{EXCLUDE}}) {
- return if ($fn=~m/\Q$f\E/);
+ if (excludefile($fn)) {
+ $File::Find::prune = 1 if -d _;
+ return;
}
+ # Ignore the .../debug/.build-id/ directory. It is not really helpful
+ # to strip debug symbols.
+ $File::Find::prune = 1 if -d _ && index($fn, '/debug/.build-id/') > -1;
+ return if -d _;
# Is it a debug library in a debug subdir?
- return if $fn=~m/debug\/.*\.so/;
-
- # Does its filename look like a shared library?
- # (*.cmxs are OCaml native code shared libraries)
- if (m/.*\.(so.*?|cmxs$)/) {
- # Ok, do the expensive test.
- my $type=get_file_type($_);
- if ($type=~m/.*ELF.*shared.*/) {
- push @shared_libs, $fn;
- return;
+ 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.
+ #
+ # NB: compat() can issue a stat, so we /should/ do this now
+ my (undef, undef, $mode, undef) = stat(_);
+
+ if (compat(10)) {
+ # In compat 10 and earlier, we used filenames and file(1)
+
+ # Does its filename look like a shared library?
+ # - *.cmxs are OCaml native code shared libraries
+ # - *.node are also native ELF binaries (for node-js)
+ if ($fn =~ m/\.(?:so.*?|cmxs|node)$/) {
+ # Ok, do the expensive test.
+ my $type = get_file_type($fn, 1);
+ if ($type =~ m/ELF.*shared/) {
+ push @shared_libs, $fn;
+ return;
+ }
}
- }
-
- # Is it executable? -x isn't good enough, so we need to use stat.
- my (undef,undef,$mode,undef)=stat(_);
- if ($mode & 0111) {
- # Ok, expensive test.
- my $type=get_file_type($_);
- if ($type=~m/.*ELF.*(executable|shared).*/) {
- push @executables, $fn;
+
+ # -x is not good enough for this test
+ if ($mode & 0111) {
+ # Ok, expensive test.
+ my $type = get_file_type($fn, 1);
+ if ($type =~ m/ELF.*(executable|shared)/) {
+ push(@executables, $fn);
+ return;
+ }
+ }
+ } else {
+ # In compat 11, we check the ELF header manually (because bulking file(1) is a pain and
+ # it is too slow otherwise)
+
+ if (is_so_or_exec_elf_file($fn)) {
+ # -x is not good enough for this test
+ if ($mode & 0111) {
+ push(@executables, $fn);
+ } else {
+ push(@shared_libs, $fn);
+ }
return;
}
}
-
# Is it a static library, and not a debug library?
- if (m/lib.*\.a$/ && ! m/.*_g\.a$/) {
- # Is it a binary file, or something else (maybe a liner
+ if ($fn =~ m/\/lib[^\/]*\.a$/ && $fn !~ m/.*_g\.a$/) {
+ # Is it a binary file, or something else (maybe a linker
# script on Hurd, for example? I don't use file, because
# file returns a variety of things on static libraries.
- if (-B $_) {
+ if (-B $fn) {
push @static_libs, $fn;
return;
}
}
}
+sub write_buildid_file {
+ my ($package, $build_ids) = @_;
+ my $dir = "debian/.debhelper/${package}";
+ my $path = "${dir}/dbgsym-build-ids";
+ install_dir($dir);
+ open(my $fd, '>>', $path) or error("open $path failed: $!");
+ print {$fd} join(q{ }, sort(@{$build_ids})) . ' ';
+ close($fd) or error("close $path failed: $!");
+}
+
+# I could just use `file $_[0]`, but this is safer
+sub get_file_type {
+ my ($file, $cache_ok) = @_;
+ return $file_output{$file} if $cache_ok && $file_output{$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;
+}
+
sub make_debug {
- my $file=shift;
- my $tmp=shift;
- my $desttmp=shift;
-
+ my ($objcopy, $file, $tmp, $desttmp, $use_build_id) = @_;
+ my ($debug_path, $debug_build_id);
+
# Don't try to copy debug symbols out if the file is already
# stripped.
- return unless get_file_type($file) =~ /not stripped/;
-
- my ($base_file)=$file=~/^\Q$tmp\E(.*)/;
- my $debug_path;
- if (! compat(8) &&
- `LC_ALL=C readelf -n $file`=~ /^\s+Build ID: ([0-9a-f]{2})([0-9a-f]+)$/m) {
- $debug_path=$desttmp."/usr/lib/debug/.build-id/$1/$2.debug"
+ #
+ # Disable caching for non-build-id based extractions.
+ # Unfortunately, it breaks when there are hardlinks to the same
+ # ELF files.
+ my $file_info = get_file_type($file, $use_build_id ? 1 : 0);
+ return unless $file_info =~ /not stripped/;
+
+ if ($use_build_id) {
+ if ($file_info =~ m/BuildID\[sha1]\s*=\s*([0-9a-f]{2})([0-9a-f]+)/ or
+ `LC_ALL=C readelf -n $file`=~ /^\s+Build ID: ([0-9a-f]{2})([0-9a-f]+)$/m) {
+ $debug_path=$desttmp."/usr/lib/debug/.build-id/$1/$2.debug";
+ $debug_build_id="${1}${2}";
+ push(@build_ids, $debug_build_id);
+ } 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;
+ }
}
- else {
+ if (not $debug_path) {
+ # Either not using build_id OR no build-id available
+ my ($base_file)=$file=~/^\Q$tmp\E(.*)/;
$debug_path=$desttmp."/usr/lib/debug/".$base_file;
}
- my $debug_dir=dirname($debug_path);
- if (! -d $debug_dir) {
- doit("install", "-d", $debug_dir);
- }
- if (compat(8)) {
+ install_dir(dirname($debug_path));
+ if (compat(8) && $use_build_id < 2) {
doit($objcopy, "--only-keep-debug", $file, $debug_path);
}
else {
- doit($objcopy, "--only-keep-debug", "--compress-debug-sections", $file, $debug_path);
+ # Compat 9 OR a dbgsym package.
+ doit($objcopy, "--only-keep-debug", "--compress-debug-sections", $file, $debug_path) unless -e $debug_path;
}
+
# No reason for this to be executable.
- doit("chmod", 644, $debug_path);
+ reset_perm_and_owner(0644, $debug_path);
return $debug_path;
}
sub attach_debug {
- my $file=shift;
- my $debug_path=shift;
+ my ($objcopy, $file, $debug_path) = @_;
doit($objcopy, "--add-gnu-debuglink", $debug_path, $file);
}
-foreach my $package (@{$dh{DOPACKAGES}}) {
- my $tmp=tmpdir($package);
+my %all_packages = map { $_ => 1 } getpackages();
+
+sub process_packages {
+ foreach my $package (@_) {
+ my $tmp=tmpdir($package);
+ my $objcopy = cross_command($package, "objcopy");
+ my $strip = cross_command($package, "strip");
- # Support for keeping the debugging symbols in a detached file.
- my $keep_debug=$dh{K_FLAG};
- my $debugtmp=$tmp;
- if (! compat(4)) {
- if (ref $dh{DEBUGPACKAGES}) {
+ # Support for keeping the debugging symbols in a detached file.
+ my $keep_debug=$dh{K_FLAG};
+ my $debugtmp=$tmp;
+ my $use_build_id = compat(8) ? 0 : 1;
+ if ($dh{DEBUGPACKAGE}) {
$keep_debug=1;
- # Note that it's only an array for the v4 stuff;
- # for v5 only one value is used.
- my $debugpackage=@{$dh{DEBUGPACKAGES}}[0];
- if (! grep { $_ eq $debugpackage } getpackages()) {
- error("debug package $debugpackage is not listed in the control file");
- }
+ my $debugpackage=$dh{DEBUGPACKAGE};
+ error("debug package $debugpackage is not listed in the control file") if (!$all_packages{$debugpackage});
$debugtmp=tmpdir($debugpackage);
}
- }
- else {
- if (ref $dh{DEBUGPACKAGES} && grep { $_ eq $package } @{$dh{DEBUGPACKAGES}}) {
- $keep_debug=1;
- $debugtmp=tmpdir($package."-dbg");
+ # Temporary workaround: Do not build dbgsym packages for udebs as
+ # dpkg-gencontrol and dpkg-deb does not agree on the file
+ # extension.
+ if ($dh{ENABLE_DBGSYM} and not $keep_debug and not package_is_arch_all($package) and not is_udeb($package)) {
+ # Avoid creating a dbgsym that would clash with a registered
+ # package or looks like a manual -dbg package.
+ if (not $all_packages{"${package}-dbgsym"} and $package !~ m/-dbg(?:sym)?$/) {
+ $debugtmp = dbgsym_tmpdir($package);
+ $keep_debug = 1;
+ $use_build_id = 2;
+ }
+ }
+ %file_output=@shared_libs=@executables=@static_libs=();
+ find({
+ wanted => \&testfile,
+ no_chdir => 1,
+ }, $tmp);
+
+ foreach (@shared_libs) {
+ my $debug_path = make_debug($objcopy, $_, $tmp, $debugtmp, $use_build_id) if $keep_debug;
+ # Note that all calls to strip on shared libs
+ # *must* include the --strip-unneeded.
+ doit($strip, "--remove-section=.comment", "--remove-section=.note", "--strip-unneeded", $_);
+ attach_debug($objcopy, $_, $debug_path) if defined $debug_path;
+ }
+
+ foreach (@executables) {
+ my $debug_path = make_debug($objcopy, $_, $tmp, $debugtmp, $use_build_id) if $keep_debug;
+ doit($strip, "--remove-section=.comment", "--remove-section=.note", $_);
+ attach_debug($objcopy, $_, $debug_path) if defined $debug_path;
+ }
+
+ foreach (@static_libs) {
+ # NB: The short variant (-D) is broken in Jessie
+ # (binutils/2.25-3)
+ doit($strip, '--strip-debug', '--remove-section=.comment',
+ '--remove-section=.note', '--enable-deterministic-archives',
+ '-R', '.gnu.lto_*', '-R', '.gnu.debuglto_*',
+ '-N', '__gnu_lto_slim', '-N', '__gnu_lto_v1',
+ $_);
+ }
+ 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) {
+ # When DEB_BUILD_OPTIONS contains noautodbgsym, remove the
+ # dbgsym dir and clear the build-ids.
+ #
+ # Note we have to extract the dbg symbols as usual, since
+ # attach_debug (objcopy --add-gnu-debuglink) requires the dbg
+ # file to exist.
+ doit('rm', '-fr', $debugtmp);
+ @build_ids = ();
+ }
+ if ($use_build_id > 1 and -d $debugtmp) {
+ my $dbgsym_docdir = "${debugtmp}/usr/share/doc";
+ my $doc_symlink = "${dbgsym_docdir}/${package}-dbgsym";
+ if ( not -l $doc_symlink and not -e _ ) {
+ install_dir($dbgsym_docdir);
+ make_symlink_raw_target($package, $doc_symlink);
+ }
+ if ($dh{MIGRATE_DBGSYM}) {
+ my $path = "debian/.debhelper/${package}/dbgsym-migration";
+ open(my $fd, '>', $path) or error("open $path failed: $!");
+ print {$fd} "$dh{MIGRATE_DBGSYM}\n";
+ close($fd) or error("close $path failed: $!");
+ }
+ }
+ if ($use_build_id > 1 and @build_ids) {
+ write_buildid_file($package, \@build_ids);
+ @build_ids = ();
}
}
-
- @shared_libs=@executables=@static_libs=();
- find(\&testfile,$tmp);
-
- foreach (@shared_libs) {
- my $debug_path = make_debug($_, $tmp, $debugtmp) if $keep_debug;
- # Note that all calls to strip on shared libs
- # *must* include the --strip-unneeded.
- doit($strip,"--remove-section=.comment",
- "--remove-section=.note","--strip-unneeded",$_);
- attach_debug($_, $debug_path) if defined $debug_path;
- }
-
- foreach (@executables) {
- my $debug_path = make_debug($_, $tmp, $debugtmp) if $keep_debug;
- doit($strip,"--remove-section=.comment",
- "--remove-section=.note",$_);
- attach_debug($_, $debug_path) if defined $debug_path;
+ if (@build_ids and $dh{DEBUGPACKAGE}) {
+ write_buildid_file($dh{DEBUGPACKAGE}, \@build_ids);
}
+}
- foreach (@static_libs) {
- doit($strip,"--strip-debug",$_);
- }
+if ($dh{DEBUGPACKAGE}) {
+ # Non-deterministic issues with --dbg-package and parallelism (see
+ # #872007). Analysis and patches welcome for this case.
+ process_packages(@{$dh{DOPACKAGES}});
+} else {
+ on_pkgs_in_parallel(\&process_packages);
}
=head1 SEE ALSO
diff --git a/dh_suidregister b/dh_suidregister
deleted file mode 100755
index 893eb3dd..00000000
--- a/dh_suidregister
+++ /dev/null
@@ -1,127 +0,0 @@
-#!/usr/bin/perl -w
-
-=head1 NAME
-
-dh_suidregister - suid registration program (deprecated)
-
-=head1 SYNOPSIS
-
-Do not run!
-
-=head1 DESCRIPTION
-
-This program used to register suid and sgid files with L<suidregister(1)>,
-but with the introduction of L<dpkg-statoverride(8)>, registration of files
-in this way is unnecessary, and even harmful, so this program is deprecated
-and should not be used.
-
-=head1 CONVERTING TO STATOVERRIDE
-
-Converting a package that uses this program to use the new statoverride
-mechanism is easy. Just remove the call to B<dh_suidregister> from
-F<debian/rules>, and add a versioned conflicts into your F<control> file, as
-follows:
-
- Conflicts: suidmanager (<< 0.50)
-
-The conflicts is only necessary if your package used to register things
-with suidmanager; if it did not, you can just remove the call to this
-program from your rules file.
-
-=cut
-
-use strict;
-use Debian::Debhelper::Dh_Lib;
-init();
-
-my $notused=1;
-
-foreach my $package (@{$dh{DOPACKAGES}}) {
- my $tmp=tmpdir($package);
- my $suid=pkgfile($package,"suid");
- my $tostrip='';
-
- my @files;
- if ($suid) {
- @files=filearray($suid, $tmp);
- }
-
- if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
- push @files, @ARGV;
- }
-
- if (! @files && ! $suid) {
- # No files specified (and no empty debian/suid file), so
- # guess what files to process.
- @files=split(/\n/,`find $tmp -type f -perm /6000`);
-
- # Strip the debian working directory off of the filenames.
- $tostrip="$tmp/";
- }
- else {
- # We will strip leading /'s, so the user can feed this
- # program either absolute filenames, or relative filenames,
- # and it will do the right thing either way.
- $tostrip="/";
- }
-
- # Register files with suidregister.
- foreach my $file (@files) {
- # Strip leading $tostrip from $file.
- $file=~s/^$tostrip//;
-
- # Create the sed string that will be used to
- # fill in the blanks in the autoscript files.
- # Fill with the owner, group, and perms of the file.
- my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat("$tmp/$file");
- # Now come up with the user and group names for the uid and
- # gid.
- my $user=getpwuid($uid);
- if (! defined $user) {
- warning("$file has odd uid $uid, not in /etc/passwd");
- $user=$uid;
- }
- my $group=getgrgid($gid);
- if (! defined $group) {
- warning("$file has odd gid $gid not in /etc/group");
- $group=$gid;
- }
- # Note that I have to print mode in ocal, stripping file
- # type.
- my $sedstr=sprintf("s:#FILE#:$file:;s/#PACKAGE#/$package/;s/#OWNER#/$user/;s/#GROUP#/$group/;s/#PERMS#/%#o/",
- $mode & 07777);
- autoscript($package,"postinst","postinst-suid",$sedstr);
- autoscript($package,"postrm","postrm-suid","$sedstr");
- }
-
- # Remove suid bits from files. This is delayed to this point, because
- # of a situation with hard linked files if it is done earlier.
- # See changelog for 2.0.77.
- foreach my $file (@files) {
- if ( -e "$tmp/$file") {
- doit("chmod","a-s","$tmp/$file");
- }
- }
-
- if (@files) {
- warning("This program should no longer be used. Please read the dh_suidregister(1) man page.");
- $notused=0;
- }
-}
-
-# Although they called it, it's not going to do anything.
-if ($notused) {
- warning("This program is obsolete, does nothing, and may be safely removed from your rules file.");
-}
-
-=head1 SEE ALSO
-
-L<debhelper(7)>
-
-This program is a part of debhelper.
-
-=head1 AUTHOR
-
-Joey Hess <joeyh@debian.org>
-
-=cut
diff --git a/dh_systemd_enable b/dh_systemd_enable
new file mode 100755
index 00000000..b5eaf4b5
--- /dev/null
+++ b/dh_systemd_enable
@@ -0,0 +1,288 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_systemd_enable - enable/disable systemd unit files
+
+=cut
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+use File::Find;
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_systemd_enable> [S<I<debhelper options>>] [B<--no-enable>] [B<--name=>I<name>] [S<I<unit file> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_systemd_enable> is a debhelper program that is responsible for enabling
+and disabling systemd unit files.
+
+In the simple case, it finds all unit files installed by a package (e.g.
+bacula-fd.service) and enables them. It is not necessary that the machine
+actually runs systemd during package installation time, enabling happens on all
+machines in order to be able to switch from sysvinit to systemd and back.
+
+In the complex case, you can call B<dh_systemd_enable> and B<dh_systemd_start>
+manually (by overwriting the debian/rules targets) and specify flags per unit
+file. An example is colord, which ships colord.service, a dbus-activated
+service without an [Install] section. This service file cannot be enabled or
+disabled (a state called "static" by systemd) because it has no
+[Install] section. Therefore, running dh_systemd_enable does not make sense.
+
+For only generating blocks for specific service files, you need to pass them as
+arguments, e.g. B<dh_systemd_enable quota.service> and B<dh_systemd_enable
+--name=quotarpc quotarpc.service>.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.service, debian/I<package>@.service
+
+If this exists, it is installed into F<< lib/systemd/system/I<package>.service >> (or
+F<< lib/systemd/system/I<package>@.service >>) in the package build directory.
+
+=item debian/I<package>.tmpfile
+
+If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in the
+package build directory.
+
+=item debian/I<package>.target, debian/I<package>@.target
+
+If this exists, it is installed into F<< lib/systemd/system/I<package>.target >> (or
+F<< lib/systemd/system/I<package>@.target >>) in the package build directory.
+
+=item debian/I<package>.socket, debian/I<package>@.socket
+
+If this exists, it is installed into F<< lib/systemd/system/I<package>.socket >> (or
+F<< lib/systemd/system/I<package>@.socket >>) in the package build directory.
+
+=item debian/I<package>.mount
+
+If this exists, it is installed into F<< lib/systemd/system/I<package>.mount >>
+in the package build directory.
+
+=item debian/I<package>.path, debian/I<package>@.path
+
+If this exists, it is installed into F<< lib/systemd/system/I<package>.path >> (or
+F<< lib/systemd/system/I<package>@.path >>) in the package build directory.
+
+=item debian/I<package>.timer, debian/I<package>@.timer
+
+If this exists, it is installed into F<< lib/systemd/system/I<package>.timer >> (or
+F<< lib/systemd/system/I<package>@.timer >>) in the package build directory.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--no-enable>
+
+Disable the service(s) on purge, but do not enable them on install.
+
+B<Note> that this option does not affect whether the services are
+started. That is controlled by L<dh_systemd_start(1)> (using e.g. its
+B<--no-start> option).
+
+=item B<--name=>I<name>
+
+Install the service file as I<name.service> instead of the default filename,
+which is the I<package.service>. When this parameter is used,
+B<dh_systemd_enable> looks for and installs files named
+F<debian/package.name.service> instead of the usual F<debian/package.service>.
+
+=back
+
+=head1 NOTES
+
+Note that 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.
+
+Note that B<dh_systemd_enable> should be run before B<dh_installinit>.
+The default sequence in B<dh> does the right thing, this note is only relevant
+when you are calling B<dh_systemd_enable> manually.
+
+=cut
+
+if (not compat(10)) {
+ error("dh_systemd_enable is no longer used in compat >= 11, please use dh_installsystemd instead");
+}
+
+init(options => {
+ "no-enable" => \$dh{NO_ENABLE},
+});
+
+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_unit {
+ my ($package, $script, $pkgsuffix, $path, $installsuffix) = @_;
+ $installsuffix = $installsuffix || $pkgsuffix;
+ my $unit = pkgfile($package, $pkgsuffix);
+ return if $unit eq '';
+ install_dir($path);
+ install_file($unit, "${path}/${script}.${installsuffix}");
+}
+
+# PROMISE: DH NOOP WITHOUT tmp(lib/systemd/system) mount path service socket target tmpfile timer
+
+my %requested_files = map { basename($_) => 1 } @ARGV;
+my %installed_files;
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmpdir = tmpdir($package);
+ my @installed_units;
+ my @units;
+
+ # XXX: This is duplicated in dh_installinit, which is unfortunate.
+ # We do need the service files before running dh_installinit though,
+ # every other solution makes things much worse for all the maintainers.
+
+ # Figure out what filename to install it as.
+ my $script;
+ my $jobfile=$package;
+ if (defined $dh{NAME}) {
+ $jobfile=$script=$dh{NAME};
+ }
+ elsif ($dh{D_FLAG}) {
+ # -d on the command line sets D_FLAG. We will
+ # remove a trailing 'd' from the package name and
+ # use that as the name.
+ $script=$package;
+ if ($script=~m/(.*)d$/) {
+ $jobfile=$script=$1;
+ }
+ else {
+ warning("\"$package\" has no final d' in its name, but -d was specified.");
+ }
+ }
+ elsif ($dh{INIT_SCRIPT}) {
+ $script=$dh{INIT_SCRIPT};
+ }
+ else {
+ $script=$package;
+ }
+
+ for my $service_type (qw(service target socket path timer)) {
+ install_unit($package, $script, $service_type, "$tmpdir/lib/systemd/system");
+ install_unit("${package}@", "${script}@", $service_type, "$tmpdir/lib/systemd/system");
+ }
+
+ install_unit($package, $script, 'mount', "$tmpdir/lib/systemd/system");
+ install_unit($package, $script, 'tmpfile', "$tmpdir/usr/lib/tmpfiles.d", 'conf');
+
+ find({
+ wanted => sub {
+ my $name = $File::Find::name;
+ return unless -f $name;
+ # Skip symbolic links, their only legitimate use is for
+ # adding an alias, e.g. linking smartmontools.service
+ # -> smartd.service.
+ return if -l $name;
+ return unless $name =~ m,^$tmpdir/lib/systemd/system/[^/]+$,;
+ push @installed_units, $name;
+ },
+ no_chdir => 1,
+ }, "${tmpdir}/lib/systemd/system") if -d "${tmpdir}/lib/systemd/system";
+
+ # Handle either only the unit files which were passed as arguments or
+ # all unit files that are installed in this package.
+ my @args = @ARGV > 0 ? @ARGV : @installed_units;
+
+ # support excluding units via -X
+ foreach my $x (@{$dh{EXCLUDE}}) {
+ @args = grep !/(^|\/)$x$/, @args;
+ }
+
+ for my $name (@args) {
+ my $base = basename($name);
+ # Try to make the path absolute, so that the user can call
+ # dh_installsystemd bacula-fd.service
+ if ($base eq $name) {
+ # NB: This works because @installed_units contains
+ # files from precisely one directory.
+ my ($full) = grep { basename($_) eq $base } @installed_units;
+ if (defined($full)) {
+ $name = $full;
+ } elsif (not exists($requested_files{$base})) {
+ warning(qq|Could not find "$name" in the /lib/systemd/system directory of $package. | .
+ qq|This could be a typo, or using Also= with a service file from another package. | .
+ qq|Please check carefully that this message is harmless.|);
+ } else {
+ # Ignore an explicitly requested file that is missing; happens when we are acting on
+ # multiple packages and only a subset of them have the unit file.
+ next;
+ }
+ }
+
+ $installed_files{$base} = 1 if exists($requested_files{$base});
+
+ # Skip template service files like e.g. getty@.service.
+ # Enabling, disabling, starting or stopping those services
+ # without specifying the instance (e.g. getty@ttyS0.service) is
+ # not useful.
+ if ($name =~ /\@/) {
+ next;
+ }
+
+ # Skip unit files that don’t have an [Install] section.
+ next unless contains_install_section($name);
+
+ push @units, $name;
+ }
+
+ next if @units == 0;
+
+ # Wrap the basenames in '' to preserve \x2d when the shell parses the
+ # name. (#764730)
+ my $unitargs = join(' ', sort map { q{'} . basename($_) . q{'} } @units);
+ for my $unit (sort @units) {
+ # Wrap the basenames in '' to preserve \x2d when the shell parses the
+ # name. (#764730)
+ my $base = q{'} . basename($unit) . q{'};
+ if ($dh{NO_ENABLE}) {
+ autoscript($package, 'postinst', 'postinst-systemd-dont-enable', { 'UNITFILE' => $base });
+ } else {
+ autoscript($package, 'postinst', 'postinst-systemd-enable', { 'UNITFILE' => $base });
+ }
+ }
+ autoscript($package, 'postrm', 'postrm-systemd', {'UNITFILES' => $unitargs });
+}
+
+if (%requested_files) {
+ my $any_missing = 0;
+ for my $name (sort(keys(%requested_files))) {
+ if (not exists($installed_files{$name})) {
+ warning(qq{Requested unit "$name" but it was not found in any package acted on.});
+ $any_missing = 1;
+ }
+ }
+ error("Could not handle all of the requested services") if $any_missing;
+}
+
+=head1 SEE ALSO
+
+L<dh_systemd_start(1)>, L<debhelper(7)>
+
+=head1 AUTHORS
+
+pkg-systemd-maintainers@lists.alioth.debian.org
+
+=cut
diff --git a/dh_systemd_start b/dh_systemd_start
new file mode 100755
index 00000000..af988097
--- /dev/null
+++ b/dh_systemd_start
@@ -0,0 +1,288 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_systemd_start - start/stop/restart systemd unit files
+
+=cut
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+use File::Find;
+use Cwd qw(getcwd abs_path);
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_systemd_start> [S<I<debhelper options>>] [B<--restart-after-upgrade>] [B<--no-stop-on-upgrade>] [S<I<unit file> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_systemd_start> is a debhelper program that is responsible for
+starting/stopping or restarting systemd unit files in case no corresponding
+sysv init script is available.
+
+As with B<dh_installinit>, the unit file is stopped before
+upgrades and started afterwards (unless B<--restart-after-upgrade> is
+specified, in which case it will only be restarted after the upgrade).
+This logic is not used when there is a corresponding SysV init script
+because invoke-rc.d performs the stop/start/restart in that case.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--restart-after-upgrade>
+
+Do not stop the unit file until after the package upgrade has been completed.
+This is the default behaviour in compat 10.
+
+In earlier compat levels the default was to stop the unit file in the
+F<prerm>, and start it again in the F<postinst>.
+
+This can be useful for daemons that should not have a possibly long
+downtime during upgrade. But you should make sure that the daemon will not
+get confused by the package being upgraded while it's running before using
+this option.
+
+=item B<--no-restart-after-upgrade>
+
+Undo a previous B<--restart-after-upgrade> (or the default of compat
+10). If no other options are given, this will cause the service to be
+stopped in the F<prerm> script and started again in the F<postinst>
+script.
+
+=item B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>
+
+Do not stop service on upgrade.
+
+=item B<--no-start>
+
+Do not start the unit file after upgrades and after initial installation (the
+latter is only relevant for services without a corresponding init script).
+
+=back
+
+=head1 NOTES
+
+Note that 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.
+
+Note that B<dh_systemd_start> should be run after B<dh_installinit> so that it
+can detect corresponding SysV init scripts. The default sequence in B<dh> does
+the right thing, this note is only relevant when you are calling
+B<dh_systemd_start> manually.
+
+=cut
+
+if (not compat(10)) {
+ error("dh_systemd_start is no longer used in compat >= 11, please use dh_installsystemd instead");
+}
+
+$dh{RESTART_AFTER_UPGRADE} = 1 if not compat(9);
+
+init(options => {
+ "r" => \$dh{R_FLAG},
+ 'no-stop-on-upgrade' => \$dh{R_FLAG},
+ "no-restart-on-upgrade" => \$dh{R_FLAG},
+ "no-start" => \$dh{NO_START},
+ "R|restart-after-upgrade!" => \$dh{RESTART_AFTER_UPGRADE},
+ "no-also" => \$dh{NO_ALSO},
+});
+
+# Extracts the Also= or Alias= line(s) from a unit file.
+# In case this produces horribly wrong results, you can pass --no-also, but
+# that should really not be necessary. Please report bugs to
+# pkg-systemd-maintainers.
+sub extract_key {
+ my ($unit_path, $key) = @_;
+ my @values;
+
+ return if $dh{NO_ALSO};
+
+ open(my $fh, '<', $unit_path) or error("Cannot open($unit_path) for extracting the Also= line(s): $!");
+
+ while (my $line = <$fh>) {
+ chomp($line);
+
+ # The keys parsed from the unit file below can only have
+ # unit names as values. 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;
+}
+
+
+# PROMISE: DH NOOP WITHOUT tmp(lib/systemd/system)
+
+my %requested_files = map { basename($_) => 1 } @ARGV;
+my %installed_files;
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmpdir = tmpdir($package);
+ my @installed_units;
+ my @units;
+ my %aliases;
+
+ my $oldcwd = getcwd();
+ find({
+ wanted => sub {
+ my $name = $File::Find::name;
+ return unless -f;
+ return unless $name =~ m,^\Q${tmpdir}\E/lib/systemd/system/[^/]+$,;
+ if (-l) {
+ my $target = abs_path(readlink());
+ $target =~ s,^\Q${oldcwd}\E/,,g;
+ $aliases{$target} = [ $_ ];
+ } else {
+ push @installed_units, $name;
+ }
+ },
+ }, "${tmpdir}/lib/systemd/system") if -d "${tmpdir}/lib/systemd/system";
+ chdir($oldcwd);
+
+ # Handle either only the unit files which were passed as arguments or
+ # all unit files that are installed in this package.
+ my @args = @ARGV > 0 ? @ARGV : @installed_units;
+
+ # support excluding units via -X
+ 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;
+
+ # We use while/shift because we push to the list in the body.
+ while (@args) {
+ my $name = shift @args;
+ my $base = basename($name);
+
+ # Try to make the path absolute, so that the user can call
+ # dh_installsystemd bacula-fd.service
+ if ($base eq $name) {
+ # NB: This works because @installed_units contains
+ # files from precisely one directory.
+ my ($full) = grep { basename($_) eq $base } @installed_units;
+ if (defined($full)) {
+ $name = $full;
+ } elsif (not exists($requested_files{$base})) {
+ warning(qq|Could not find "$name" in the /lib/systemd/system directory of $package. | .
+ qq|This could be a typo, or using Also= with a service file from another package. | .
+ qq|Please check carefully that this message is harmless.|);
+ } else {
+ # Ignore an explicitly requested file that is missing; happens when we are acting on
+ # multiple packages and only a subset of them have the unit file.
+ next;
+ }
+ }
+
+ $installed_files{$base} = 1 if exists($requested_files{$base});
+
+ # Skip template service files like e.g. getty@.service.
+ # Enabling, disabling, starting or stopping those services
+ # without specifying the instance (e.g. getty@ttyS0.service) is
+ # not useful.
+ if ($name =~ /\@/) {
+ next;
+ }
+
+ # 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 (it was already
+ # deleted).
+ my @also = grep { !exists($seen{$_}) } extract_key($name, 'Also');
+ $seen{$_} = 1 for @also;
+ @args = (@args, @also);
+
+ push @{$aliases{$name}}, $_ for extract_key($name, 'Alias');
+ my @sysv = grep {
+ my $base = $_;
+ $base =~ s/\.(?:mount|service|socket|target|path)$//g;
+ -f "$tmpdir/etc/init.d/$base"
+ } ($base, @{$aliases{$name}});
+ if (@sysv == 0 && !grep { $_ eq $name } @units) {
+ push @units, $name;
+ }
+ }
+
+ next if @units == 0;
+
+ # Wrap the basenames in '' to preserve \x2d when the shell parses the
+ # name. (#764730)
+ my $unitargs = join(' ', sort map { q{'} . basename($_) . q{'} } @units);
+ # 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, $restart_action) = @_;
+ my $replace = {
+ 'UNITFILES' => $unitargs,
+ 'RESTART_ACTION' => $restart_action // '',
+ };
+ autoscript($package, $script, $filename, $replace);
+ };
+
+ if ($dh{RESTART_AFTER_UPGRADE}) {
+ 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");
+ }
+
+ $sd_autoscript->("postrm", "postrm-systemd-reload-only");
+
+ if ($dh{R_FLAG} || $dh{RESTART_AFTER_UPGRADE}) {
+ # stop service only on remove
+ $sd_autoscript->("prerm", "prerm-systemd-restart");
+ } elsif (!$dh{NO_START}) {
+ # always stop service
+ $sd_autoscript->("prerm", "prerm-systemd");
+ }
+}
+
+if (%requested_files) {
+ my $any_missing = 0;
+ for my $name (sort(keys(%requested_files))) {
+ if (not exists($installed_files{$name})) {
+ warning(qq{Requested unit "$name" but it was not found in any package acted on.});
+ $any_missing = 1;
+ }
+ }
+ error("Could not handle all of the requested services") if $any_missing;
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+=head1 AUTHORS
+
+pkg-systemd-maintainers@lists.alioth.debian.org
+
+=cut
diff --git a/dh_testdir b/dh_testdir
index d7e945b9..db7f7cef 100755
--- a/dh_testdir
+++ b/dh_testdir
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,8 +7,11 @@ dh_testdir - test directory before building Debian package
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_testdir> [S<I<debhelper options>>] [S<I<file> ...>]
@@ -32,12 +35,18 @@ Test for the existence of these files too.
=cut
+# This command is completely useless when called from dh(1) as dh will
+# have attempted to read d/control before it even constructs the
+# command sequences. Accordingly, there is no doubt that the
+# following is unconditionally true:
+#
+# PROMISE: DH NOOP
+
# Run before init because init will try to read debian/control and
# we want a nicer error message.
checkfile('debian/control');
-init();
-inhibit_log();
+init(inhibit_log => 1);
foreach my $file (@ARGV) {
checkfile($file);
diff --git a/dh_testroot b/dh_testroot
index c010dd50..5dcadc51 100755
--- a/dh_testroot
+++ b/dh_testroot
@@ -1,8 +1,10 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
+
+=encoding UTF-8
=head1 NAME
-dh_testroot - ensure that a package is built as root
+dh_testroot - ensure that a package is built with necessary level of root permissions
=head1 SYNOPSIS
@@ -10,18 +12,82 @@ B<dh_testroot> [S<I<debhelper options>>]
=head1 DESCRIPTION
-B<dh_testroot> simply checks to see if you are root. If not, it exits with an
-error. Debian packages must be built as root, though you can use
-L<fakeroot(1)>
+B<dh_testroot> is used to determine if the target is being run with
+suffient access to root(-like) features.
+
+The definition of sufficient access depends on whether the builder
+(the tool invoking the F<debian/rules> target) supports the
+I<Rules-Requires-Root> (R³) field. If the builder supports R³, then
+it will set the environment variable I<DEB_RULES_REQUIRES_ROOT> and
+B<dh_testroot> will validate that the builder followed the minimum
+requirements for the given value of I<DEB_RULES_REQUIRES_ROOT>.
+
+If the builder does not support I<Rules-Requires-Root>, then it will
+not set the I<DEB_RULES_REQUIRES_ROOT> environment variable. This
+will in turn make B<dh_testroot> (and the rest of debhelper) fall back
+to assuming that (fake)root is implied.
+
+The following is a summary of how B<dh_testroot> behaves based on the
+I<DEB_RULES_REQUIRES_ROOT> environment variable (leading and trailing
+whitespace in the variable is ignored).
+
+=over 4
+
+=item -
+
+If unset, or set to C<binary-targets>, then B<dh_testroot> asserts
+that it is run as root or under L<fakeroot(1)>.
+
+=item -
+
+If set to C<no>, then B<dh_testroot> returns successfully (without
+performing any additional checks).
+
+=item -
+
+If set to any other value than the above, then B<dh_testroot> asserts
+that it is either run as root (or under L<fakeroot(1)>) or the builder
+has provided the B<DEB_GAIN_ROOT_CMD> environment variable (e.g. via
+dpkg-buildpackage -r).
+
+=back
+
+Please note that B<dh_testroot> does I<not> read the
+I<Rules-Requires-Root> field. Which implies that B<dh_testroot> may
+produce incorrect result if the builder lies in
+I<DEB_RULES_REQUIRES_ROOT>. On the flip side, it also enables things
+like testing for what will happen when I<DEB_RULES_REQUIRES_ROOT> is
+set to a given value.
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+
+our $VERSION = DH_BUILTIN_VERSION;
+
inhibit_log();
-if ($< != 0) {
+my $requirements = Debian::Debhelper::Dh_Lib::root_requirements();
+
+if (! -f 'debian/control') {
+ warning('dh_testroot must be called from the source root');
+}
+
+# PROMISE: DH NOOP WITHOUT internal(rrr)
+
+# By declaration; nothing requires root and this command must be a no-op in that case.
+exit 0 if $requirements eq 'none';
+# The builder /can/ choose to ignore the requirements and just call us as root.
+# If so, we do not bother checking the requirements any further.
+exit 0 if $< == 0;
+if ($requirements eq 'legacy-root') {
error("You must run this as root (or use fakeroot).");
+} else {
+ my $env = $ENV{DEB_GAIN_ROOT_CMD};
+ error("Package needs targeted root but builder has not provided a gain-root command via \${DEB_GAIN_ROOT_CMD}")
+ if not $env;
}
=head1 SEE ALSO
diff --git a/dh_ucf b/dh_ucf
index 98fc4ae9..99d5b877 100755
--- a/dh_ucf
+++ b/dh_ucf
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
=head1 NAME
@@ -7,11 +7,14 @@ dh_ucf - register configuration files with ucf
=cut
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
-B<dh_ucf> [S<I<debhelper options>>] [B<-n>]
+B<dh_ucf> [S<I<debhelper options>>] [B<-A>] [B<-n>] [S<I<file> ...>]
=head1 DESCRIPTION
@@ -32,16 +35,29 @@ while the destination is typically a file in /etc/.
A dependency on ucf will be generated in B<${misc:Depends}>.
+Supports substitution variables in compat 13 and later as
+documented in L<debhelper(7)>.
+
=back
=head1 OPTIONS
=over 4
-=item B<-n>, B<--noscripts>
+=item B<-A>, B<--all>
+
+Install all files specified by command line parameters in ALL packages
+acted on.
+
+=item B<-n>, B<--no-scripts>
Do not modify F<postinst>/F<postrm> scripts. Turns this command into a no-op.
+=item I<file> ...
+
+Install these info files into the first package acted on. (Or in
+all packages if B<-A> is specified).
+
=back
=head1 NOTES
@@ -54,10 +70,9 @@ 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 $tmp=tmpdir($package);
my $file=pkgfile($package,"ucf");
my @ucf;
@@ -76,8 +91,8 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
foreach my $set (@ucf) {
my $src = $set->[0];
my $dest = $set->[1];
- autoscript($package,"postinst","postinst-ucf","s:#UCFSRC#:$src:;s:#UCFDEST#:$dest:;s/#PACKAGE#/$package/",);
- autoscript($package,"postrm","postrm-ucf","s:#UCFDEST#:$dest:;s/#PACKAGE#/$package/");
+ autoscript($package,"postinst","postinst-ucf","s:#UCFSRC#:$src:g;s:#UCFDEST#:$dest:g;s/#PACKAGE#/$package/g",);
+ autoscript($package,"postrm","postrm-ucf","s:#UCFDEST#:$dest:g;s/#PACKAGE#/$package/g");
}
}
}
diff --git a/dh_undocumented b/dh_undocumented
deleted file mode 100755
index 03a4ea7e..00000000
--- a/dh_undocumented
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/perl -w
-
-=head1 NAME
-
-dh_undocumented - undocumented.7 symlink program (deprecated no-op)
-
-=cut
-
-use strict;
-use Debian::Debhelper::Dh_Lib;
-
-=head1 SYNOPSIS
-
-Do not run!
-
-=head1 DESCRIPTION
-
-This program used to make symlinks to the F<undocumented.7> man page for man
-pages not present in a package. Debian policy now frowns on use of the
-F<undocumented.7> man page, and so this program does nothing, and should not
-be used.
-
-=cut
-
-init();
-warning("This program does nothing and should no longer be used.");
-
-=head1 SEE ALSO
-
-L<debhelper(7)>
-
-This program is a part of debhelper.
-
-=head1 AUTHOR
-
-Joey Hess <joeyh@debian.org>
-
-=cut
diff --git a/dh_update_autotools_config b/dh_update_autotools_config
new file mode 100755
index 00000000..7c28bcef
--- /dev/null
+++ b/dh_update_autotools_config
@@ -0,0 +1,82 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+dh_update_autotools_config - Update autotools config files
+
+=cut
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+
+our $VERSION = DH_BUILTIN_VERSION;
+
+=head1 SYNOPSIS
+
+B<dh_update_autotools_config> [S<I<debhelper options>>]
+
+=head1 DESCRIPTION
+
+B<dh_update_autotools_config> replaces all occurrences of B<config.sub>
+and B<config.guess> in the source tree by the up-to-date versions
+found in the autotools-dev package. The original files are backed up
+and restored by B<dh_clean>.
+
+=cut
+
+init();
+
+for my $basename (qw(config.guess config.sub)) {
+ my $new_version = "/usr/share/misc/$basename";
+ open(my $fd, '-|', 'find', '-mindepth', '1',
+ '(', '-type', 'd', '-name', '.*', '-prune', ')',
+ '-o', '-type', 'f', '-name', $basename, '-print')
+ or error("Cannot run find -type f -name $basename: $!");
+ while (my $filename = <$fd>) {
+ chomp($filename);
+ next if not is_autotools_config_file($filename);
+ restore_file_on_clean($filename);
+ doit('cp', '-f', $new_version, $filename);
+ }
+ close($fd);
+}
+
+sub is_autotools_config_file {
+ my ($file) = @_;
+ my ($is_autoconf_file);
+ open(my $fd, '<', $file) or error("open $file for reading failed: $!");
+ while (my $line = <$fd>) {
+ chomp($line);
+ # This is the test lintian uses.
+ if ($line =~ m{^timestamp=['"]\d{4}-\d{2}-\d{2}['"]\s*$}) {
+ $is_autoconf_file = 1;
+ last;
+ }
+ $line =~ s/\s++$//;
+ if ($line eq q{# Attempt to guess a canonical system name.}
+ or $line =~ q{^# Configuration validation subroutine script}) {
+ # Very old scripts do not have that timestamp line, but
+ # they do have these headers (which even new files also
+ # have).
+ $is_autoconf_file = 1;
+ last;
+ }
+ last if $. >= 10;
+ }
+ close($fd);
+ return $is_autoconf_file;
+}
+
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Niels Thykier <niels@thykier.net>
+
+=cut
diff --git a/dh_usrlocal b/dh_usrlocal
index 4ccc601b..34be4941 100755
--- a/dh_usrlocal
+++ b/dh_usrlocal
@@ -1,5 +1,7 @@
#!/usr/bin/perl
+=encoding UTF-8
+
=head1 NAME
dh_usrlocal - migrate usr/local directories to maintainer scripts
@@ -12,6 +14,8 @@ use Debian::Debhelper::Dh_Lib;
use File::Find;
use File::stat;
+our $VERSION = DH_BUILTIN_VERSION;
+
=head1 SYNOPSIS
B<dh_usrlocal> [S<I<debhelper options>>] [B<-n>]
@@ -29,18 +33,25 @@ snippets are inserted into the maintainer scripts by B<dh_installdeb>. See
L<dh_installdeb(1)> for an explanation of debhelper maintainer script
snippets.
-If the directories found in the build tree have unusual owners, groups, or
-permissions, then those values will be preserved in the directories made by
-the F<postinst> script. However, as a special exception, if a directory is owned
-by root.root, it will be treated as if it is owned by root.staff and is mode
-2775. This is useful, since that is the group and mode policy recommends for
-directories in F</usr/local>.
+When the I<DEB_RULES_REQUIRES_ROOT> environment variable is not (effectively)
+I<binary-targets>, the directories in F</usr/local> will be handled as if
+they were owned by root:root (see below).
+
+When the I<DEB_RULES_REQUIRES_ROOT> environment variable has an effective value of
+I<binary-targets>, the owners, groups and permissions will be
+preserved with the sole exception where the directory is owned by root:root.
+
+If a directory is owned by root:root, then ownership will be determined
+at install time. The ownership and permission bits will either be root:root
+mode 0755 or root:staff mode 02775. The actual choice depends on whether
+the system has F</etc/staff-group-for-usr-local> (as documented in the Debian
+Policy Manual §9.1.2 since version 4.1.4)
=head1 OPTIONS
=over 4
-=item B<-n>, B<--noscripts>
+=item B<-n>, B<--no-scripts>
Do not modify F<postinst>/F<prerm> scripts.
@@ -60,55 +71,64 @@ 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);
if (-d "$tmp/usr/local") {
my (@dirs, @justdirs);
- find({bydepth => 1,
- no_chdir => 1,
- wanted => sub {
- my $fn = $File::Find::name;
- if (-d $fn) {
- my $stat = stat $fn;
- my $user = getpwuid $stat->uid;
- my $group = getgrgid $stat->gid;
- my $mode = sprintf "%04lo", ($stat->mode & 07777);
-
- if ($stat->uid == 0 && $stat->gid == 0) {
- $group = 'staff';
- $mode = '2775';
- }
-
- $fn =~ s!^\Q$tmp\E!!;
- return if $fn eq '/usr/local';
-
- # @dirs is in parents-first order for dir creation...
- unshift @dirs, "$fn $mode $user $group";
- # ...whereas @justdirs is depth-first for removal.
- push @justdirs, $fn;
- doit("rmdir $_");
- }
- else {
- warning("$fn is not a directory");
- }
+ find({no_chdir => 1,
+ preprocess => sub {
+ # Ensure a reproducible traversal.
+ return sort @_;
+ },
+ postprocess => sub {
+ # Uninstall, unless a direct child of /usr/local.
+ $_ = $File::Find::dir;
+ s!^\Q$tmp\E!!;
+ push @justdirs, $_ if m!/usr/local/.*/!;
+ # Remove a directory after its childs.
+ doit('rmdir', $File::Find::dir);
+ },
+ wanted => sub {
+ # rmdir would fail later anyways.
+ error("${File::Find::name} is not a directory")
+ if not -d $File::Find::name;
+ # Install directory before its childs.
+ my $fn = $File::Find::name;
+ $fn =~ s!^\Q$tmp\E!!;
+ return if $fn eq '/usr/local';
+ # Detect some obvious cases of "this will not end
+ # well". We rely on what "while read dir ... ; do"
+ # can handle for correctness.
+ if ($fn =~ m{[\s!'"\$()*#;<>?@\[\]\\`|]}) {
+ error("Cannot generate a correct shell script for $fn due to shell metacharacters");
+ }
+ if (should_use_root()) {
+ my $stat = stat $File::Find::dir;
+ if ($stat->uid == 0 && $stat->gid == 0) {
+ # Figure out the ownership and permission at runtime
+ # (required by Policy 9.1.2)
+ push(@dirs, "$fn default");
+ } else {
+ my $user = getpwuid $stat->uid;
+ my $group = getgrgid $stat->gid;
+ my $mode = sprintf "%04lo", ($stat->mode & 07777);
+ push @dirs, "$fn $mode $user $group";
+ }
+ } else {
+ # Figure out the ownership and permission at runtime
+ # (required by Policy 9.1.2)
+ push(@dirs, "$fn default");
+ }
}}, "$tmp/usr/local");
- doit("rmdir $tmp/usr/local");
-
- my $bs = "\\"; # A single plain backslash
- my $ebs = $bs x 2; # Escape the backslash from the shell
- # This constructs the body of a 'sed' c\ expression which
- # is parsed by the shell in double-quotes
- my $dirs = join("$ebs\n", @dirs);
- pop @justdirs; # don't remove directories directly in /usr/local
- my $justdirs = join("$ebs\n", @justdirs);
+
if (! $dh{NOSCRIPTS}) {
autoscript($package,"postinst", "postinst-usrlocal",
- "/#DIRS#/ c${ebs}\n${dirs}");
+ { 'DIRS' => join ("\n", @dirs)}) if @dirs;
autoscript($package,"prerm", "prerm-usrlocal",
- "/#JUSTDIRS#/ c${ebs}\n${justdirs}") if length $justdirs;
+ { 'JUSTDIRS' => join ("\n", @justdirs)}) if @justdirs;
}
}
}
diff --git a/doc/PROGRAMMING b/doc/PROGRAMMING
deleted file mode 100644
index e7b6e355..00000000
--- a/doc/PROGRAMMING
+++ /dev/null
@@ -1,318 +0,0 @@
-This file documents things you should know to write a new debhelper program.
-Any program with a name that begins with dh_ should conform to these
-guidelines (with the historical exception of dh_make).
-
-Standardization:
----------------
-
-There are lots of debhelper commands. To make the learning curve shallower,
-I want them all to behave in a standard manner:
-
-All debhelper programs have names beginning with "dh_". This is so we don't
-pollute the name space too much.
-
-Debhelper programs should never output anything to standard output except
-error messages, important warnings, and the actual commands they run that
-modify files under debian/ (this last only if they are passed -v, and if you
-output the commands, you should indent them with 1 tab). This is so we don't
-have a lot of noise output when all the debhelper commands in a debian/rules
-are run, so the important stuff is clearly visible.
-
-Debhelper programs should accept all options listed in the "SHARED
-DEBHELPER OPTIONS" section of debhelper(7), including any long forms of
-these options, like --verbose . If necessary, the options may be ignored.
-
-If debhelper commands need config files, they should use
-debian/package.filename as the name of the config file (replace filename
-with whatever your command wants), and debian/filename should also be
-checked for config information for the first binary package in
-debian/control. Also, debhelper commands should accept the same sort of
-information that appears in the config files, on their command lines, if
-possible, and apply that information to the first package they act on.
-The config file format should be as simple as possible, generally just a
-list of files to act on.
-
-Debhelper programs should never modify the debian/postinst, debian/prerm,
-etc scripts. Instead, they can add lines to debian/postinst.debhelper, etc.
-The autoscript() function (see below) is one easy way to do this.
-dh_installdeb is an exception, it will run after the other commands and
-merge these modifications into the actual postinst scripts.
-
-In general, files named debian/*.debhelper are internal to debhelper, and
-their existence or use should not be relied on by external programs such as
-the build process of a package. These files will be deleted by dh_clean.
-
-Debhelper programs should default to doing exactly what policy says to do.
-
-There are always exceptions. Just ask me.
-
-Introducing Dh_Lib:
-------------------
-
-Dh_Lib is the library used by all debhelper programs to parse their
-arguments and set some useful variables. It's not mandatory that your
-program use Dh_Lib.pm, but it will make it a lot easier to keep it in sync
-with the rest of debhelper if it does, so this is highly encouraged.
-
-Use Dh_Lib like this:
-
-use Debian::Debhelper::Dh_Lib
-init();
-
-The init() function causes Dh_lib to parse the command line and do some other
-initialization tasks.
-
-Argument processing:
--------------------
-
-All debhelper programs should respond to certain arguments, such as -v, -i,
--a, and -p. To help you make this work right, Dh_Lib.pm handles argument
-processing. Just call init().
-
-You can add support for additional options to your command by passing an
-options hash to init(). The hash is then passed on the Getopt::Long to
-parse the command line options. For example, to add a --foo option, which
-sets $dh{FOO}:
-
-init(options => { foo => \$dh{FOO} });
-
-After argument processing, some global variables are used to hold the
-results; programs can use them later. These variables are elements of the
-%dh hash.
-
-switch variable description
--v VERBOSE should the program verbosely output what it is
- doing?
---no-act NO_ACT should the program not actually do anything?
--i,-a,-p,-N DOPACKAGES a space delimited list of the binary packages
- to act on (in Dh_Lib.pm, this is an array)
--i DOINDEP set if we're acting on binary independent
- packages
--a DOARCH set if we're acting on binary dependent
- packages
--n NOSCRIPTS if set, do not make any modifications to the
- package's postinst, postrm, etc scripts.
--o ONLYSCRIPTS if set, only make modifications to the
- package's scripts, but don't look for or
- install associated files.
--X EXCLUDE exclude a something from processing (you
- decide what this means for your program)
- (This is an array)
--X EXCLUDE_FIND same as EXCLUDE, except all items are put
- into a string in a way that they will make
- find find them. (Use ! in front to negate
- that, of course) Note that this should
- 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
- parameters your program passes on to some
- other program. (This is an array)
--V V_FLAG will be set to a string, you decide what it
- means to your program
--V V_FLAG_SET will be 1 if -V was specified, even if no
- parameters were passed along with the -V
--A PARAMS_ALL generally means that additional command line
- parameters passed to the program (other than
- 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
- the package name
---error-handler ERROR_HANDLER a function to call on error
-
-Any additional command line parameters that do not start with "-" will be
-ignored, and you can access them later just as you normally would.
-
-Global variables:
-----------------
-
-The following keys are also set in the %dh hash when you call init():
-
-MAINPACKAGE the name of the first binary package listed in
- debian/control
-FIRSTPACKAGE the first package we were instructed to act on. This package
- typically gets special treatment; additional arguments
- specified on the command line may effect it.
-
-Functions:
----------
-
-Dh_Lib.pm also contains a number of functions you may find useful.
-
-doit(@command)
- Pass this function an array that is a
- shell command. It will run the command (unless $dh{NO_ACT} is set), and
- if $dh{VERBOSE} is set, it will also output the command to stdout. You
- should use this function for almost all commands your program performs
- that manipulate files in the package build directories.
-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
- 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.
-error($errormsg)
- Pass this command a string, it will output it to standard error and
- exit.
-warning($message)
- Pass this command a string, and it will output it to standard error
- as a warning message.
-tmpdir($dir)
- Pass this command the name of a binary package, it will return the
- name of the tmp directory that will be used as this package's
- package build directory. Typically, this will be "debian/package".
-compat($num)
- Pass this command a number, and if the current compatibility level
- is less than or equal to that number, it will return true.
- Looks at DH_COMPAT to get the compatibility level.
-pkgfile($package, $basename)
- Pass this command the name of a binary package, and the base name of a
- file, and it will return the actual filename to use. This is used
- for allowing debhelper programs to have configuration files in the
- debian/ directory, so there can be one config file per binary
- package. The convention is that the files are named
- debian/package.filename, and debian/filename is also allowable for
- the $dh{MAINPACKAGE}. If the file does not exist, nothing is returned.
-
- If the *entire* behavior of a command, when run without any special
- options, is determined by the existence of 1 or more pkgfiles,
- or by the existence of a file or directory in a location in the
- tmpdir, it can be marked as such, which allows dh to automatically
- skip running it. This is done by inserting a special comment,
- of the form:
-
- # PROMISE: DH NOOP WITHOUT pkgfilea pkgfileb tmp(need/this)
-
-pkgext($package)
- Pass this command the name of a binary package, and it will return
- the name to prefix to files in debian/ for this package. For the
- $dh{MAINPACKAGE}, it returns nothing (there is no prefix), for the other
- packages, it returns "package.".
-isnative($package)
- Pass this command the name of a package, it returns 1 if the package
- is a native debian package.
- As a side effect, $dh{VERSION} is set to the version number of the
- package.
-autoscript($package, $scriptname, $snippetname, $sedcommands || $sub)
- Pass parameters:
- - binary package to be affected
- - script to add to
- - filename of snippet
- - (optional) EITHER sed commands to run on the snippet. Ie,
- s/#PACKAGE#/$PACKAGE/ Note: Passed to the shell inside double
- quotes.
- OR a perl sub to invoke with $_ set to each line of the snippet in
- turn.
- This command automatically adds shell script snippets to a debian
- maintainer script (like the postinst or prerm).
- Note that in v6 mode and up, the snippets are added in reverse
- order for the removal scripts.
-dirname($pathname)
- Return directory part of pathname.
-basename($pathname)
- Return base of pathname,
-addsubstvar($package, $substvar, $deppackage, $verinfo, $remove)
- This function adds a dependency on some package to the specified
- substvar in a package's substvar's file. It needs all these
- parameters:
- - 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")
- - 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,
- and rely on the user calling dh_prep.) Note that without this
- parameter, if you call the function twice with the same values it
- will only add one item to the substvars file.
-delsubstvar($package, $substvar)
- This function removes the entire line for the substvar from the
- package's shlibs file.
-excludefile($filename)
- This function returns true if -X has been used to ask for the file
- to be excluded.
-is_udeb($package)
- Returns true if the package is marked as a udeb in the control
- file.
-udeb_filename($package)
- Returns the filename of the udeb package.
-getpackages($type)
- Returns a list of packages in the control file.
- Pass "arch" or "indep" to specify arch-dependent or
- -independent. If nothing is specified, returns all
- packages (including packages that are not built
- for this architecture). Pass "both" to get the union
- of "arch" and "indep" packages.
- As a side effect, populates %package_arches and %package_types with
- the types of all packages (not only those returned).
-inhibit_log()
- Prevent logging the program's successful finish to
- debian/*debhelper.log
-load_log($package, $hashref)
- Loads the log file for the given package and returns a list of
- logged commands.
- (Passing a hashref also causes it to populate the hash.)
-write_log($cmd, $package ...)
- Writes the log files for the specified package(s), adding
- the cmd to the end.
-
-Sequence Addons:
----------------
-
-The dh(1) command has a --with <addon> parameter that ca be used to load
-a sequence addon module named Debian::Debhelper::Sequence::<addon>.
-These modules can add/remove commands to the dh command sequences, by
-calling some functions from Dh_Lib:
-
-insert_before($existing_command, $new_command)
- Insert $new_command in sequences before $existing_command
-
-insert_after($existing_command, $new_command)
- Insert $new_command in sequences after $existing_command
-
-remove_command($existing_command)
- Remove $existing_command from the list of commands to run
- in all sequences.
-
-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.
-
-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.
-
-remove_command_options($command)
- Clear all additional $command options previously added with
- add_command_options().
-
-remove_command_options($command, $opt1, $opt2, ...)
- Remove $opt1, $opt2 etc. from the list of additional options which
- dh passes when running the specified $command.
-
-Buildsystem Classes:
--------------------
-
-The dh_auto_* commands are frontends that use debhelper buildsystem
-classes. These classes have names like Debian::Debhelper::Buildsystem::foo,
-and are derived from Debian::Debhelper::Buildsystem, or other, related
-classes.
-
-A buildsystem class needs to inherit or define these methods: DESCRIPTION,
-check_auto_buildable, configure, build, test, install, clean. See the comments
-inside Debian::Debhelper::Buildsystem for details. Note that this interface
-is still subject to change.
-
-Note that third-party buildsystems will not automatically be used by default,
-but can be forced to be used via the --buildsystem parameter.
-
--- Joey Hess <joeyh@debian.org>
diff --git a/doc/PROGRAMMING.md b/doc/PROGRAMMING.md
new file mode 100644
index 00000000..fd28b6a8
--- /dev/null
+++ b/doc/PROGRAMMING.md
@@ -0,0 +1,694 @@
+# PROGRAMMING
+
+This file documents things you should know to write a new debhelper program.
+Any program with a name that begins with `dh_` should conform to these
+guidelines (with the historical exception of `dh_make`).
+
+## Standardization
+
+There are lots of debhelper commands. To make the learning curve shallower,
+I want them all to behave in a standard manner:
+
+All debhelper programs have names beginning with `dh_`. This is so we don't
+pollute the name space too much.
+
+Debhelper programs should never output anything to standard output except
+error messages, important warnings, and the actual commands they run that
+modify files under `debian/` (this last only if they are passed `-v`, and if you
+output the commands, you should indent them with 1 tab). This is so we don't
+have a lot of noise output when all the debhelper commands in a `debian/rules`
+are run, so the important stuff is clearly visible.
+
+An exception to above rule are `dh_auto_*` commands and `dh` itself. They will
+also print the commands interacting with the upstream build system and which
+of the simple debhelper programs are called. (i.e. print what a traditional
+non-[dh(1)] using `debian/rules` would print but nothing else).
+
+Debhelper programs should accept all options listed in the "SHARED
+DEBHELPER OPTIONS" section of [debhelper(7)], including any long forms of
+these options, like `--verbose`. If necessary, the options may be ignored.
+
+If debhelper commands need config files, they should use
+`debian/package.filename` as the name of the config file (replace filename
+with whatever your command wants), and `debian/filename` should also be
+checked for config information for the first binary package in
+`debian/control`. Also, debhelper commands should accept the same sort of
+information that appears in the config files, on their command lines, if
+possible, and apply that information to the first package they act on.
+The config file format should be as simple as possible, generally just a
+list of files to act on.
+
+Debhelper programs should never modify the `debian/postinst`, `debian/prerm`,
+etc scripts. Instead, they can add lines to `debian/postinst.debhelper`, etc.
+The `autoscript()` function (see below) is one easy way to do this.
+`dh_installdeb` is an exception, it will run after the other commands and
+merge these modifications into the actual postinst scripts.
+
+In general, files named `debian/*.debhelper` and all content in
+`debian/.debhelper` are internal to debhelper, and their existence or
+use should not be relied on by external programs such as the build
+process of a package. These files will be deleted by `dh_clean`.
+
+Debhelper programs should default to doing exactly what policy says to do.
+
+There are always exceptions. Just ask me.
+
+## Introducing Dh_Lib
+
+`Dh_Lib` is the library used by all debhelper programs to parse their
+arguments and set some useful variables. It's not mandatory that your
+program use `Dh_Lib.pm`, but it will make it a lot easier to keep it in sync
+with the rest of debhelper if it does, so this is highly encouraged.
+
+Use `Dh_Lib` like this:
+
+ use Debian::Debhelper::Dh_Lib;
+ our $VERSION = '1.0';
+ init();
+
+The `init()` function causes `Dh_lib` to parse the command line and do
+some other initialization tasks. If present, `$main::VERSION` will be
+used to determine the version of the tool (e.g. embedded into
+autoscript snippets).
+
+## Argument processing
+
+All debhelper programs should respond to certain arguments, such as `-v`, `-i`,
+`-a`, and `-p`. To help you make this work right, `Dh_Lib.pm` handles argument
+processing. Just call `init()`.
+
+You can add support for additional options to your command by passing an
+options hash to `init()`. The hash is then passed on the `Getopt::Long` to
+parse the command line options. For example, to add a `--foo` option, which
+sets `$dh{FOO}`:
+
+ init(options => { foo => \$dh{FOO} });
+
+After argument processing, some global variables are used to hold the
+results; programs can use them later. These variables are elements of the
+`%dh` hash.
+
+| switch | variable | description |
+|---------------------|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `-v` | `VERBOSE` | should the program verbosely output what it is doing? |
+| `--no-act` | `NO_ACT` | should the program not actually do anything? |
+| `-i`,`-a`,`-p`,`-N` | `DOPACKAGES` | a space delimited list of the binary packages to act on (in `Dh_Lib.pm`, this is an array) |
+| `-i` | `DOINDEP` | set if we're acting on binary independent packages |
+| `-a` | `DOARCH` | set if we're acting on binary dependent packages |
+| `-n` | `NOSCRIPTS` | if set, do not make any modifications to the package's postinst, postrm, etc scripts. |
+| `-o` | `ONLYSCRIPTS` | if set, only make modifications to the package's scripts, but don't look for or install associated files. |
+| `-X` | `EXCLUDE` | exclude something from processing (you decide what this means for your program) (This is an array) |
+| `-X` | `EXCLUDE_FIND` | same as `EXCLUDE`, except all items are put into a string in a way that they will make find find them. (Use `!` in front to negate that, of course) Note that this should only be used inside `complex_doit()`, not in `doit()`. |
+| `-d` | `D_FLAG` | you decide what this means to your program |
+| `-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 parameters your program passes on to some other program. (This is an array) |
+| `-V` | `V_FLAG` | will be set to a string, you decide what it means to your program |
+| `-V` | `V_FLAG_SET` | will be 1 if `-V` was specified, even if no parameters were passed along with the `-V` |
+| `-A` | `PARAMS_ALL` | generally means that additional command line parameters passed to the program (other than those processed here), will apply to all binary packages the program acts on, not just the first |
+| `--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 the package name |
+| `--error-handler` | `ERROR_HANDLER` | a function to call on error |
+
+Any additional command line parameters that do not start with "`-`" will be
+ignored, and you can access them later just as you normally would.
+
+## Global variables
+
+The following keys are also set in the `%dh` hash when you call `init()`:
+
+- `MAINPACKAGE`
+
+ the name of the first binary package listed in `debian/control`
+
+- `FIRSTPACKAGE`
+
+ the first package we were instructed to act on. This package
+ typically gets special treatment; additional arguments
+ specified on the command line may effect it.
+
+## Functions
+
+`Dh_Lib.pm` also contains a number of functions you may find useful.
+
+- `doit([$options, ]@command)`
+
+ Pass this function an array that is a command with arguments.
+ It will run the command (unless `$dh{NO_ACT}` is set), and
+ if `$dh{VERBOSE}` is set, it will also output the command to stdout. You
+ should use this function for almost all commands your program performs
+ that manipulate files in the package build directories.
+
+ The `$options` argument (if passed) must be a hashref (added in debhelper 10.7).
+ The following key-value pairs can be used:
+
+ - `stdout` => A file name. The child process will have its STDOUT redirected
+ to that file. [debhelper (>= 10.7)]
+ - `chdir` => A directory. The child process will do a chdir into that
+ directory before executing the command. [debhelper (>= 10.9)]
+ - `update_env` => A hashref. Each key in it represents an environment variable
+ that should be set in the child (possibly replacing the existing value)
+ prior to the exec. If the value is undef, the environment variable will
+ be unset. Environment variables in `%ENV` but not listed in the `update_env`
+ hashref will be preserved as-is. [debhelper (>= 11.1)]
+
+ This will *not* invoke a shell, so meta characters will not have any special
+ meaning. Use `complex_doit` for that (or emulate via `bash -c`).
+ NB: In compat 11 and below, there was a bug that would make `doit` fork a shell
+ in one special case. This is deprecated and will be removed in compat 12.
+ The detection code for this can be disabled by passing an empty hashref for
+ as `$options`. This will make doit unconditionally avoid forking a shell.
+
+- `print_and_doit([$options, ]@command)`
+
+ Like `doit` but will print unless `$dh{QUIET}` is set. See "Standardization"
+ above for when this is allowed to be called.
+
+- `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 (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.
+
+- `nonquiet_print($message)`
+
+ Pass this command a string, and it will echo it unless `$dh{QUIET}` is set.
+ See "Standardization" above for when this is allowed to be called.
+
+- `error($errormsg)`
+
+ Pass this command a string, it will output it to standard error and
+ exit.
+
+- `error_exitcode($cmd)`
+
+ Pass this subroutine a string (representing a command line), it will
+ output a message describing that the command failed to standard error
+ and exit. Note that this relies on the value of `$?` to produce a
+ meaningful error message. Even if `$?` is `0`, this *will* still terminate
+ the program (although with a rather unhelpful message).
+
+- `warning($message)`
+
+ Pass this command a string, and it will output it to standard error
+ as a warning message.
+
+- `tmpdir($dir)`
+
+ Pass this command the name of a binary package, it will return the
+ name of the tmp directory that will be used as this package's
+ package build directory. Typically, this will be `debian/package`.
+
+- `compat($num)`
+
+ Pass this command a number, and if the current compatibility level
+ is less than or equal to that number, it will return true.
+ Looks at `DH_COMPAT` to get the compatibility level.
+
+- `pkgfile($package, $basename)`
+
+ Pass this command the name of a binary package, and the base name of a
+ file, and it will return the actual filename to use. This is used
+ for allowing debhelper programs to have configuration files in the
+ `debian/` directory, so there can be one config file per binary
+ package. The convention is that the files are named
+ `debian/package.filename`, and `debian/filename` is also allowable for
+ the `$dh{MAINPACKAGE}`. If the file does not exist, nothing is returned.
+
+ If the *entire* behavior of a command, when run without any special
+ options, is determined by the existence of 1 or more pkgfiles,
+ or by the existence of a file or directory in a location in the
+ tmpdir, it can be marked as such, which allows dh to automatically
+ skip running it. Please see "Optimization techniques" below.
+
+- `pkgext($package)`
+
+ Pass this command the name of a binary package, and it will return
+ the name to prefix to files in `debian/` for this package. For the
+ `$dh{MAINPACKAGE}`, it returns nothing (there is no prefix), for the other
+ packages, it returns `package.`.
+
+- `isnative($package)`
+
+ Pass this command the name of a package, it returns 1 if the package
+ is a native debian package.
+ As a side effect, `$dh{VERSION}` is set to the version number of the
+ package.
+
+- `autoscript($package, $scriptname, $snippetname, $substparam)`
+
+ Pass parameters:
+ - binary package to be affected
+ - script to add to
+ - filename of snippet. For testing purposes, you can set the
+ environment variable `DH_DATAFILES` containing a autoscripts
+ directory, which can be used to shadow the snippets provided
+ in `/usr/share/debhelper/autoscripts` (or to test newly added
+ snippets).
+ Older versions of debhelper (<< 13.1~) do not support
+ `DH_DATAFILES`. If you need to support debhelper (<< 13.1~)
+ then you can set `DH_AUTOSCRIPTDIR` to a directory containing
+ the snippets instead (note it should point to the autoscripts
+ directory unlike `DH_DATAFILES`).
+
+ - (optional) A substitution parameter, which is one of 3 types:
+ - sed commands to run on the snippet, e.g. `s/#PACKAGE#/$PACKAGE/`.
+ Note: Passed to the shell inside double quotes.
+ - a perl sub to invoke with `$_` set to each line of the snippet
+ in turn.
+ - a hashref, where each key will substitute `#${key}#` with the
+ value that `$key` points to. [debhelper (>= 10.7)]
+
+ This command automatically adds shell script snippets to a debian
+ maintainer script (like the postinst or prerm).
+ Note that in v6 mode and up, the snippets are added in reverse
+ order for the removal scripts.
+
+- `autotrigger($package, $trigger_type, $trigger_target)`
+
+ This command automatically adds a trigger to the package. The
+ parameters:
+ - binary package to be affected
+ - the type of trigger (e.g. "activate-noawait")
+ - the target (e.g. `ldconfig` or `/usr/share/foo`)
+
+- `dirname($pathname)`
+
+ Return directory part of pathname.
+
+- `basename($pathname)`
+
+ Return base of pathname,
+
+- `addsubstvar($package, $substvar, $deppackage, $verinfo, $remove)`
+
+ This function adds a dependency on some package to the specified
+ substvar in a package's substvar's file. It needs all these
+ parameters:
+ - 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) (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,
+ and rely on the user calling `dh_prep`.) Note that without this
+ parameter, if you call the function twice with the same values it
+ will only add one item to the substvars file.
+
+- `delsubstvar($package, $substvar)`
+
+ This function removes the entire line for the substvar from the
+ package's shlibs file.
+
+- `excludefile($filename)`
+
+ This function returns true if `-X` has been used to ask for the file
+ to be excluded.
+
+- `is_udeb($package)`
+
+ Returns true if the package is marked as a udeb in the control
+ file.
+
+- `getpackages($type)`
+
+ Returns a list of packages in the control file.
+ Pass "arch" or "indep" to specify arch-dependent or
+ -independent. If `$type` is omitted, returns all
+ packages (including packages that are not built
+ for this architecture). Pass "both" to get the union
+ of "arch" and "indep" packages.
+ Note that "both" is *not* the same omitting the `$type` parameter.
+ As a side effect, populates `%package_arches` and `%package_types` with
+ the types of all packages (not only those returned).
+
+- `get_source_date_epoch()`
+
+ Return the value of `$ENV{SOURCE_DATE_EPOCH}` if exists.
+ Otherwise compute the value from the first changelog entry,
+ use it to set the ENV variable and return it.
+
+- `inhibit_log()`
+
+ Prevent logging the program's successful finish to
+ `debian/*debhelper.log`
+
+ Since debhelper 12.9, this can be done by passing the `inhibit_log`
+ option with a value of 1 to `init()` instead. E.g.
+
+ init('inhibit_log' => 1);
+
+- `load_log($package, $hashref)`
+
+ Loads the log file for the given package and returns a list of
+ logged commands.
+ (Passing a hashref also causes it to populate the hash.)
+
+- `write_log($cmd, $package ...)`
+
+ Writes the log files for the specified package(s), adding
+ the cmd to the end.
+
+- `restore_file_on_clean($file)`
+
+ Store a copy of `$file`, which will be restored by `dh_clean`.
+ The `$file` *must* be a relative path to the package root and
+ *must* be a real regular file. Dirs, devices and symlinks
+ (and everything else) *cannot* be restored by this.
+ If `$file` is passed multiple times (e.g. from different programs)
+ only the first version is stored.
+ CAVEAT: This *cannot* undo arbitrary "rm -fr"'ing. The dir,
+ which the `$file` is/was in, must be present when `dh_clean` is
+ called.
+
+- `make_symlink($src, $dest, $tmp)`
+
+ Creates a Policy compliant system link called `$dest` pointing to
+ `$src`. If `$tmp` is given, then `$tmp` will be prefixed to `$dest`
+ when creating the actual symlink.
+
+- `install_dh_config_file($src, $dest)`
+
+ Installs `$src` into `$dest` using mode 0644.
+ If compat is 9 (or later) and `$src` is executable, `$src` will
+ be executed instead and its output will be used to generate the
+ `$dest` file.
+
+- `install_dir(@dirs)` / `mkdirs(@dirs)`
+
+ Create the directories denoted by the paths in `@dirs` and all
+ parent entries as well (as needed). It uses mode 0755.
+ If a directory listed in `@dirs` already exists, the function
+ silently skips that directory (similar to `mkdir -p`).
+
+ The `install_dir` function should be used for directories
+ installed in a final package while `mkdirs` should be used
+ for other directories. The difference is related to whether
+ the change will be shown via -v/--verbose or not. The
+ `mkdirs` function requires `debhelper (>= 13.11~)`.
+
+- `install_file($src, $dest)`
+
+ Installs `$src` into `$dest` with mode 0644. The parent dir of
+ `$dest` must exist (can be created with `install_dir`).
+ This is intended for installing regular non-executable files.
+
+- `install_prog($src, $dest)`
+
+ Installs `$src` into `$dest` with mode 0755. The parent dir of
+ `$dest` must exist (can be created with `install_dir`).
+ This is intended for installing scripts or binaries.
+
+- `install_lib($src, $dest)`
+
+ Installs a library at the path `$src` into `$dest`. The parent
+ dir of `$dest` must exist (can be created with `install_dir`).
+ This is intended for installing libraries.
+
+- `reset_perm_and_owner($mode, $path...)`
+
+ Resets the ownership and mode (POSIX permissions) of `$path`
+ This is useful for files created directly by the script, but
+ it not necessary for files installed via the `install_*`
+ functions.
+ 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).
+ 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.
+ Depending on runtime features, it might be a pipe from an
+ external process (which will die with a "SIGPIPE" if you
+ do not consume all the input)
+
+- `deprecated_functionality($warn_msg[, $rm_compat[, $rm_msg]])`
+
+ Emit `$warn_msg` as a deprecation warning, or error out if `$rm_compat`
+ is provided and equal to (or greater than) the active compat level.
+ The `$rm_msg` parameter can be used to provide a custom error message
+ in the latter case (if omitted, `$warn_msg` will be used in both cases).
+ The function will provide a separate diagnostic about which compat
+ level that will remove/removed the functionality if `$rm_compat` is
+ given.
+
+- `log_installed_files($package, @paths)`
+
+ Creates a logfile (in `debian/.debhelper/generated`) for the helper's
+ 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 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.
+
+- `on_pkgs_in_parallel($code)` - prototype: (&)
+
+ Short hand for `on_items_in_parallel` with `$dh{DOPACKAGES}` as
+ as list of packages.
+
+- `on_items_in_parallel($item_list_ref, $code)`
+
+ Splits all the items in `$item_list_ref` into a number of groups
+ based on the max parallel (as decided by `DEB_BUILD_OPTIONS`)
+ A subprocess is forked for each group (minimum 1 process will be
+ forked) and each subprocess will be given a group of items
+ to process. Each group is passed to the `$code` sub, which will
+ then process it and return normally on success.
+ Example:
+
+ my @all_packages = getpackages();
+ on_items_in_parallel(\@all_packages, sub {
+ for my $package (@_) {
+ my $tmp=tmpdir($package);
+ my $pkgfile = pkgfile($package, 'foo');
+ ...;
+ }
+ });
+ my @work_list = compute_work_list();
+ on_items_in_parallel(\@work_list, sub {
+ for my $item (@_) {
+ ...;
+ }
+ });
+
+ If there is an error, which should stop the build, please invoke
+ either `error()` or `error_exitcode`. Alternatively, a trappable
+ error (e.g. `die($msg)`) can also be used.
+
+ Keep in mind that the sub will always be run in a subprocess,
+ so it cannot update global state.
+
+## Sequence Addons
+
+The [dh(1)] command has a `--with <addon>` parameter that can be used to load
+a sequence addon module named `Debian::Debhelper::Sequence::<addon>`.
+These modules can add/remove commands to the dh command sequences, by
+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.
+
+- `declare_command_obsolete([$error_compat, ]$command)`
+
+ Declare `$command` as obsolete, which make dh warn about leftover
+ override / hook targets. Note that `$command` *MUST NOT* be present
+ in the sequence!
+
+ The `$error_compat` parameter defines the compat level where
+ referencing this command via a hook target will become an error.
+ This must be at least 13 (which is the default if omitted).
+ Be careful with using already closed compat levels as error compat
+ for new commands as it will cause FTBFS.
+
+ Cannot be used in "arch-only"/"indep-only" mode.
+
+## Optimization techniques
+
+Most debhelper tools will have situations where they are not useful and can
+be skipped. To support this, dh will look for a "NOOP PROMISE" as a part of
+a comment in the command before running it. These promises have the form:
+
+ # PROMISE: DH NOOP WITHOUT pkgfile-logged(pkgfileA) pkgfile-logged(pkgfileB) tmp(need/this) cli-options()
+
+The following keywords are defined:
+
+- `pkgfile(X)`: The command might do something if `debian/X` (or `debian/<package>.X`)
+ exist for any of the packages it will be run for. If the debhelper tool
+ interacts with `dh_missing`, you always want to use `pkgfile-logged(X)` instead.
+
+- `pkgfile-logged(X)`: Same as `pkgfile(X)` but it will also register which files
+ it handles so `dh_missing` can see it.
+
+- `tmp(X)`: The command might do something if `debian/<package>/X` exists.
+
+- `cli-options(--foo|--bar)`: The command might do something if *either* `--foo`
+ OR `--bar` are passed to the command.
+
+- `cli-options(BUILDSYSTEM)`: The command is a build system command (`dh_auto_*`)
+ and will react to standard build system command line options.
+
+- `cli-options()`: Special variant of `cli-options()` to declare that command
+ line options will not affect whether the tool will do something. This enables
+ dh to skip commands even when passed custom options. Without an explicit
+ `cli-option(...)` hint, dh will assume the command might react to it.
+
+If the hint is present and ALL of the keywords imply that the command can be
+skipped, dh will skip the command.
+
+## Logging helpers and dh_missing
+
+Since debhelper 10.3, debhelper has had a helper called `dh_missing`. It
+takes over the `--list-missing` and `--fail-missing` options from `dh_install`
+and as the advantage that it can "see" what other helpers have installed.
+
+Under the hood, this works by the helpers logging the source files
+they (would) install to a hidden log file. When `dh_missing` is called,
+it reads all these log files to determine which files have would been
+installed and compare them to what is present.
+
+If you are writing a helper that need to integrate with `dh_missing`,
+here is what you do:
+
+### 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` at least 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
+ packages. This enables `dh_missing` to see that the helper has been run
+ and nothing should be installed for that package.
+ - Prefer calling `log_installed_files` *exactly once* per package as
+ this is what it is optimized for.
+- If your helper has a `PROMISE`, it must use `pkgfile-logged(<file>)`
+ for its config files. (See [#867246])
+ - CAVEAT: This requires a dependency on "debhelper (>= 10.2.5)". Prior
+ to that version, debhelper will wrongly optimize your helper out.
+- Consider using `dh_installman` or `dh_installexamples` as examples.
+
+### Other helpers - via dh_assistant log-installed-files
+
+This process requires debhelper/13.10 or later.
+
+- The helper must compile a list of files it would have installed for
+ each package (even packages that are not acted on). The file list
+ should be relative to the source package root (e.g.
+ `debian/tmp/usr/bin/bar`).
+ - This list can also contain directories. They will be flagged as
+ installed along with their content (recursively).
+- Invoke `dh_assistant log-installed-files --on-behalf-of-cmd=${HELPER_NAME} -p${package} ${PATHS}`
+ - Invoking `dh_assistant` when your tool has no paths to log is
+ still recommended to let dh_missing that your tool had nothing
+ to record.
+ - Prefer calling `dh_assistant log-installed-files` *exactly once*
+ per package per invocation of your tool as this is what it is
+ optimized for.
+- If your helper has a PROMISE, it must use `pkgfile-logged(<file>)`
+ for its config files (see [#867246]).
+
+### Other helpers - manually
+
+- The helper must compile a list of files it would have installed for
+ each package (even packages that are not acted on). The file list
+ should be relative to the source package root (e.g.
+ `debian/tmp/usr/bin/bar`).
+ - This list can also contain directories. They will be flagged as
+ installed along with their content (recursively).
+- The helper must append to the file (create it if missing):
+ `debian/.debhelper/generated/${package}/installed-by-${HELPER_NAME}`
+ - Example: `debian/.debhelper/generated/lintian/installed-by-dh_install`
+ - The file should be created even if it is empty. This enables `dh_missing`
+ to see that the helper has been run and nothing would be installed for
+ that package.
+- Please append to the file if it exists as the helper may be called multiple
+ times (once with `-a` and once with `-i`). It is completely fine if this
+ leaves duplicate entries as dh_missing will deduplicate these.
+- If your helper has a PROMISE, it must use `pkgfile-logged(<file>)`
+ for its config files (see [#867246]).
+ CAVEAT: This requires a dependency on "debhelper (>= 10.2.5)". Prior
+ to that version, debhelper will wrongly optimize your helper out.
+
+## Buildsystem Classes
+
+The `dh_auto_*` commands are frontends that use debhelper buildsystem
+classes. These classes have names like `Debian::Debhelper::Buildsystem::foo`,
+and are derived from `Debian::Debhelper::Buildsystem`, or other, related
+classes.
+
+A buildsystem class needs to inherit or define these methods: `DESCRIPTION`,
+`check_auto_buildable`, `configure`, `build`, `test`, `install`, `clean`. See
+the comments inside `Debian::Debhelper::Buildsystem` for details. Note that
+this interface is still subject to change.
+
+Note that third-party buildsystems will not automatically be used by
+default. The package maintainer will either have to explicitly enable
+it via the `--buildsystem` parameter OR the build system should be
+registered in debhelper. The latter is currently needed to ensure a
+stable and well-defined ordering of the build systems.
+
+[dh(1)]: https://manpages.debian.org/dh.1 "dh - debhelper command sequencer"
+[debhelper(7)]: https://manpages.debian.org/debhelper.7 "debhelper - the debhelper tool suite"
+[#867246]: https://bugs.debian.org/867246 "dh_installman incorrectly optimized away when using --fail-missing and building arch-any packages only"
+
+-- Joey Hess <joeyh@debian.org>
diff --git a/doc/SUPPORT-POLICY b/doc/SUPPORT-POLICY
new file mode 100644
index 00000000..9463e49f
--- /dev/null
+++ b/doc/SUPPORT-POLICY
@@ -0,0 +1,20 @@
+SUPPORT POLICY FOR DEBHELPER COMPAT LEVELS
+==========================================
+
+The current policy for supporting compat levels is:
+
+ * A compat level may be deprecated once the latest oldoldstable release
+ supports a /newer/ compat level. (E.g. compat 9 can be deprecated once
+ jessie becomes oldoldstable).
+
+ * Alternatively, a compat level may be deprecated if a debhelper version
+ supporting a newer compat level is backported to oldoldstable-backports/
+ oldoldstable-backports-sloppy and the oldest supported Ubuntu LTS release.
+
+ * These rules are independent of whether Debian oldoldstable is still
+ supported.
+
+ * Deprecated compat levels may be removed in unstable once it as been released
+ in Debian stable as deprecated (provided that the deprecation has been
+ announced at least one year prior to the freeze of said stable release).
+
diff --git a/doc/TODO b/doc/TODO
index 822295fc..6da26db0 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -1,32 +1,20 @@
v10:
* escaping in config files (for whitespace)?
-* dh_installinit --restart-after-upgrade as default?
Deprecated:
-* make a missing debian/compat an error. (started printing warning messages
- in 20120115)
-* DH_COMPAT 1, 2, 3, 4. Can be removed once all packages are seen to be using
- a newer version. I won't hold my breath. (2 and 3 are getting close though.)
-* dh_suidregister. Once nothing in the archive uses it.
* dh_installmanpages.
* dh_movefiles. I won't hold my breath. Have not added deprecation
docs or message yet.
-* dh_undocumented
* dh_installinit --init-script (make it warn)
* dh_clean -k
-* dh_desktop, dh_scrollkeeper. Remove eventually..
* -s flag, not formally deprecated yet; remove eventually
* -u flag; add a warning on use and remove eventually
* delsubstvar() and the last parameter to addsubstvar that makes it remove
a string are not used in debhelper itself, but have been left in the
library in case other things use them. Deprecate and remove.
-* dh --before , --after , --until , --remaining
* debian/compress files
-* deprecate dh_gconf for dh_installgsettings (stuff should be migrating
- away from gconf, and then I can just remove it -- have not added warning
- or depreaction docs yet)
Also, grep the entire archive for all dh_* command lines,
and check to see what other switches are not being used, and maybe remove
diff --git a/Debian/Debhelper/Buildsystem.pm b/lib/Debian/Debhelper/Buildsystem.pm
index 8fde2159..795f3d3d 100644
--- a/Debian/Debhelper/Buildsystem.pm
+++ b/lib/Debian/Debhelper/Buildsystem.pm
@@ -16,13 +16,25 @@ use Debian::Debhelper::Dh_Lib;
# name. Do not override this method unless you know what you are
# doing.
sub NAME {
- my $this=shift;
- my $class = ref($this) || $this;
+ my ($this) = @_;
+ my $class = ref($this);
+ my $target_name;
+ if ($class) {
+ # Do not assume that the target buildsystem has been provided.
+ # NAME could be called during an error in the constructor.
+ if ($this->IS_GENERATOR_BUILD_SYSTEM and $this->get_targetbuildsystem) {
+ $target_name = $this->get_targetbuildsystem->NAME;
+ }
+ } else {
+ $class = $this;
+ }
if ($class =~ m/^.+::([^:]+)$/) {
- return $1;
+ my $name = $1;
+ return "${name}+${target_name}" if defined($target_name);
+ return $name;
}
else {
- error("ınvalid build system class name: $class");
+ error("Invalid build system class name: $class");
}
}
@@ -31,12 +43,49 @@ sub DESCRIPTION {
error("class lacking a DESCRIPTION");
}
-# Default build directory. Can be overriden in the derived
+# Default build directory. Can be overridden in the derived
# class if really needed.
sub DEFAULT_BUILD_DIRECTORY {
"obj-" . dpkg_architecture_value("DEB_HOST_GNU_TYPE");
}
+# Return 1 if the build system generator
+sub IS_GENERATOR_BUILD_SYSTEM {
+ return 0;
+}
+
+# Generator build-systems only
+# The name of the supported target systems. The first one is
+# assumed to be the default if DEFAULT_TARGET_BUILD_SYSTEM is
+# not overridden.
+sub SUPPORTED_TARGET_BUILD_SYSTEMS {
+ error("class lacking SUPPORTED_TARGET_BUILD_SYSTEMS");
+}
+
+# Generator build-systems only
+# Name of default target build system if target is unspecified
+# (e.g. --buildsystem=cmake instead of cmake+makefile).
+sub DEFAULT_TARGET_BUILD_SYSTEM {
+ my ($this) = @_;
+ my @targets = $this->SUPPORTED_TARGET_BUILD_SYSTEMS;
+ # Assume they are listed in order.
+ return $targets[0];
+}
+
+# For regular build systems, the same as DESCRIPTION
+# For generator based build systems, the DESCRIPTION of the generator build
+# system + the target build system. Do not override this method unless you
+# know what you are doing.
+sub FULL_DESCRIPTION {
+ my ($this) = @_;
+ my $description = $this->DESCRIPTION;
+ return $description if not exists($this->{'targetbuildsystem'});
+ my $target_build_system = $this->{'targetbuildsystem'};
+ return $description if not defined($target_build_system);
+ my $target_desc = $target_build_system->FULL_DESCRIPTION;
+ return "${description} combined with ${target_desc}";
+}
+
# Constructs a new build system object. Named parameters:
# - sourcedir- specifies source directory (relative to the current (top)
# directory) where the sources to be built live. If not
@@ -46,6 +95,8 @@ sub DEFAULT_BUILD_DIRECTORY {
# DEFAULT_BUILD_DIRECTORY directory will be used.
# - parallel - max number of parallel processes to be spawned for building
# sources (-1 = unlimited; 1 = no parallel)
+# - targetbuildsystem - The target build system for generator based build
+# systems. Only set for generator build systems.
# Derived class can override the constructor to initialize common object
# parameters. Do NOT use constructor to execute commands or otherwise
# configure/setup build environment. There is absolutely no guarantee the
@@ -59,6 +110,30 @@ sub new {
parallel => undef,
cwd => Cwd::getcwd() }, $class);
+ # Setup the target buildsystem early, so e.g. _set_builddir also
+ # applies to the target build system. Useful if the generator
+ # and target does not agree on (e.g.) the default build dir.
+ my $target_bs_name;
+ if (exists $opts{targetbuildsystem}) {
+ $target_bs_name = $opts{targetbuildsystem};
+ }
+
+ $target_bs_name //= $this->DEFAULT_TARGET_BUILD_SYSTEM if $this->IS_GENERATOR_BUILD_SYSTEM;
+
+ 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});
@@ -73,6 +148,7 @@ sub new {
if (defined $opts{parallel}) {
$this->{parallel} = $opts{parallel};
}
+
return $this;
}
@@ -101,9 +177,48 @@ sub _set_builddir {
}
}
$this->{builddir} = $builddir;
+ # Use get as guard because this method is (also) called from the
+ # constructor before the target build system is setup.
+ if ($this->get_targetbuildsystem) {
+ $this->get_targetbuildsystem->{builddir} = $builddir;
+ };
return $builddir;
}
+sub set_targetbuildsystem {
+ my ($this, $target_system) = @_;
+ my $ok = 0;
+ my $target_bs_name = $target_system->NAME;
+ if (not $this->IS_GENERATOR_BUILD_SYSTEM) {
+ my $name = $this->NAME;
+ error("Cannot set a target build system: Buildsystem ${name} is not a generator build system");
+ }
+ for my $supported_bs_name ($this->SUPPORTED_TARGET_BUILD_SYSTEMS) {
+ if ($supported_bs_name eq $target_bs_name) {
+ $ok = 1;
+ last;
+ }
+ }
+ if (not $ok) {
+ my $name = $this->NAME;
+ error("Buildsystem ${name} does not support ${target_bs_name} as target build system.");
+ }
+ $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;
+ return if not exists($this->{'targetbuildsystem'});
+ return $this->{'targetbuildsystem'};
+}
+
# This instance method is called to check if the build system is able
# to build a source package. It will be called during the build
# system auto-selection process, inside the root directory of the debian
@@ -116,12 +231,12 @@ sub _set_builddir {
# be buildable or not. However, if the build system is derived from
# another other auto-buildable build system, this method
# may also check if the source has already been built with this build
-# system partitially by looking for temporary files or other common
+# system partially by looking for temporary files or other common
# results the build system produces during the build process. The
# latter checks must be unique to the current build system and must
# be very unlikely to be true for either its parent or other build
# systems. If it is determined that the source has already built
-# partitially with this build system, the value returned must be
+# partially with this build system, the value returned must be
# greater than the one of the SUPER call.
sub check_auto_buildable {
my $this=shift;
@@ -137,6 +252,11 @@ sub enforce_in_source_building {
$this->{warn_insource} = 1;
$this->{builddir} = undef;
}
+ if ($this->IS_GENERATOR_BUILD_SYSTEM) {
+ $this->get_targetbuildsystem->enforce_in_source_building(@_);
+ # Only warn in one build system.
+ delete($this->{warn_insource});
+ }
}
# Derived class can call this method in its constructor to *prefer*
@@ -155,6 +275,9 @@ sub prefer_out_of_source_building {
error("default build directory is the same as the source directory." .
" Please specify a custom build directory");
}
+ if ($this->IS_GENERATOR_BUILD_SYSTEM) {
+ $this->get_targetbuildsystem->prefer_out_of_source_building(@_);
+ }
}
}
@@ -259,6 +382,15 @@ sub get_parallel {
return $this->{parallel};
}
+# This parallel support for the given step
+sub disable_parallel {
+ my ($this) = @_;
+ $this->{parallel} = 1;
+ if ($this->IS_GENERATOR_BUILD_SYSTEM) {
+ $this->get_targetbuildsystem->disable_parallel;
+ }
+}
+
# When given a relative path to the build directory, converts it
# to the path that is relative to the source directory. If $path is
# not given, returns a path to the build directory that is relative
@@ -281,52 +413,65 @@ sub get_build_rel2sourcedir {
sub mkdir_builddir {
my $this=shift;
if ($this->get_builddir()) {
- doit("mkdir", "-p", $this->get_builddir());
+ mkdirs($this->get_builddir());
}
}
-sub _cd {
- my ($this, $dir)=@_;
- verbose_print("cd $dir");
- if (! $dh{NO_ACT}) {
- chdir $dir or error("error: unable to chdir to $dir");
+sub check_auto_buildable_clean_oos_buildir {
+ my $this = shift;
+ my ($step) = @_;
+ # This only applies to clean
+ return 0 if $step ne 'clean';
+ my $builddir = $this->get_builddir;
+ # If there is no builddir, then this rule does not apply.
+ return 0 if not defined($builddir) or not -d $builddir;
+ return 1;
+}
+
+sub _generic_doit_in_dir {
+ my ($this, $dir, $sub, @args) = @_;
+ my %args;
+ if (ref($args[0])) {
+ %args = %{shift(@args)};
}
+ $args{chdir} = $dir;
+ return $sub->(\%args, @args);
}
# Changes working directory to the source directory (if needed),
-# calls doit(@_) and changes working directory back to the top
-# directory.
+# calls print_and_doit(@_) and changes working directory back to the
+# top directory.
sub doit_in_sourcedir {
- my $this=shift;
- if ($this->get_sourcedir() ne '.') {
- my $sourcedir = $this->get_sourcedir();
- $this->_cd($sourcedir);
- doit(@_);
- $this->_cd($this->_rel2rel($this->{cwd}, $sourcedir));
- }
- else {
- doit(@_);
- }
+ my ($this, @args) = @_;
+ $this->_generic_doit_in_dir($this->get_sourcedir, \&print_and_doit, @args);
return 1;
}
+# Changes working directory to the source directory (if needed),
+# calls print_and_doit(@_) and changes working directory back to the
+# top directory. Errors are ignored.
+sub doit_in_sourcedir_noerror {
+ my ($this, @args) = @_;
+ return $this->_generic_doit_in_dir($this->get_sourcedir, \&print_and_doit_noerror, @args);
+}
+
# Changes working directory to the build directory (if needed),
-# calls doit(@_) and changes working directory back to the top
-# directory.
+# calls print_and_doit(@_) and changes working directory back to the
+# top directory.
sub doit_in_builddir {
- my $this=shift;
- if ($this->get_buildpath() ne '.') {
- my $buildpath = $this->get_buildpath();
- $this->_cd($buildpath);
- doit(@_);
- $this->_cd($this->_rel2rel($this->{cwd}, $buildpath));
- }
- else {
- doit(@_);
- }
+ my ($this, @args) = @_;
+ $this->_generic_doit_in_dir($this->get_buildpath, \&print_and_doit, @args);
return 1;
}
+# Changes working directory to the build directory (if needed),
+# calls print_and_doit(@_) and changes working directory back to the
+# top directory. Errors are ignored.
+sub doit_in_builddir_noerror {
+ my ($this, @args) = @_;
+ return $this->_generic_doit_in_dir($this->get_buildpath, \&print_and_doit_noerror, @args);
+}
+
# In case of out of source tree building, whole build directory
# gets wiped (if it exists) and 1 is returned. If build directory
# had 2 or more levels, empty parent directories are also deleted.
@@ -372,6 +517,9 @@ sub pre_building_step {
" does not support building out of source tree. In source building enforced.");
delete $this->{warn_insource};
}
+ if ($this->IS_GENERATOR_BUILD_SYSTEM) {
+ $this->get_targetbuildsystem->pre_building_step(@_);
+ }
}
# Instance method that is called after performing any step (see below).
@@ -380,36 +528,78 @@ sub pre_building_step {
sub post_building_step {
my $this=shift;
my ($step)=@_;
+ if ($this->IS_GENERATOR_BUILD_SYSTEM) {
+ $this->get_targetbuildsystem->post_building_step(@_);
+ }
}
# The instance methods below provide support for configuring,
# building, testing, install and cleaning source packages.
# In case of failure, the method may just error() out.
#
-# These methods should be overriden by derived classes to
+# These methods should be overridden by derived classes to
# implement build system specific steps needed to build the
-# source. Arbitary number of custom step arguments might be
+# source. Arbitrary number of custom step arguments might be
# passed. Default implementations do nothing.
+#
+# Note: For generator build systems, the default is to
+# delegate the step to the target build system for all
+# steps except configure.
sub configure {
my $this=shift;
}
sub build {
my $this=shift;
+ if ($this->IS_GENERATOR_BUILD_SYSTEM) {
+ $this->get_targetbuildsystem->build(@_);
+ }
}
sub test {
my $this=shift;
+ if ($this->IS_GENERATOR_BUILD_SYSTEM) {
+ $this->get_targetbuildsystem->test(@_);
+ }
}
# destdir parameter specifies where to install files.
sub install {
my $this=shift;
- my $destdir=shift;
+ my ($destdir) = @_;
+
+ if ($this->IS_GENERATOR_BUILD_SYSTEM) {
+ $this->get_targetbuildsystem->install(@_);
+ }
}
sub clean {
my $this=shift;
+
+ if ($this->IS_GENERATOR_BUILD_SYSTEM) {
+ $this->get_targetbuildsystem->clean(@_);
+ }
+}
+
+
+sub _create_buildsystem_instance {
+ my ($full_name, $required, %bsopts) = @_;
+ my @parts = split(m{[+]}, $full_name, 2);
+ my $name = $parts[0];
+ my $module = "Debian::Debhelper::Buildsystem::$name";
+ if (@parts > 1) {
+ if (exists($bsopts{'targetbuildsystem'})) {
+ error("Conflicting target buildsystem for ${name} (load as ${full_name}, but target configured in bsopts)");
+ }
+ $bsopts{'targetbuildsystem'} = $parts[1];
+ }
+
+ eval "use $module";
+ if ($@) {
+ return if not $required;
+ error("unable to load build system class '$name': $@");
+ }
+ return $module->new(%bsopts);
}
1
diff --git a/lib/Debian/Debhelper/Buildsystem/ant.pm b/lib/Debian/Debhelper/Buildsystem/ant.pm
new file mode 100644
index 00000000..49aaf1e2
--- /dev/null
+++ b/lib/Debian/Debhelper/Buildsystem/ant.pm
@@ -0,0 +1,52 @@
+# A debhelper build system class for handling Ant based projects.
+#
+# Copyright: © 2009 Joey Hess
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem::ant;
+
+use strict;
+use warnings;
+use parent qw(Debian::Debhelper::Buildsystem);
+
+sub DESCRIPTION {
+ "Ant (build.xml)"
+}
+
+sub check_auto_buildable {
+ my $this=shift;
+ return (-e $this->get_sourcepath("build.xml")) ? 1 : 0;
+}
+
+sub new {
+ my $class=shift;
+ my $this=$class->SUPER::new(@_);
+ $this->enforce_in_source_building();
+ return $this;
+}
+
+sub build {
+ my $this=shift;
+ my $d_ant_prop = $this->get_sourcepath('debian/ant.properties');
+ my @args;
+ if ( -f $d_ant_prop ) {
+ push(@args, '-propertyfile', $d_ant_prop);
+ }
+
+ # Set the username to improve the reproducibility
+ push(@args, "-Duser.name", "debian");
+
+ $this->doit_in_sourcedir("ant", @args, @_);
+}
+
+sub clean {
+ my $this=shift;
+ my $d_ant_prop = $this->get_sourcepath('debian/ant.properties');
+ my @args;
+ if ( -f $d_ant_prop ) {
+ push(@args, '-propertyfile', $d_ant_prop);
+ }
+ $this->doit_in_sourcedir("ant", @args, "clean", @_);
+}
+
+1
diff --git a/Debian/Debhelper/Buildsystem/autoconf.pm b/lib/Debian/Debhelper/Buildsystem/autoconf.pm
index 56a42887..8752ea17 100644
--- a/Debian/Debhelper/Buildsystem/autoconf.pm
+++ b/lib/Debian/Debhelper/Buildsystem/autoconf.pm
@@ -7,8 +7,9 @@
package Debian::Debhelper::Buildsystem::autoconf;
use strict;
-use Debian::Debhelper::Dh_Lib qw(dpkg_architecture_value sourcepackage compat);
-use base 'Debian::Debhelper::Buildsystem::makefile';
+use warnings;
+use Debian::Debhelper::Dh_Lib qw(%dh dpkg_architecture_value get_buildoption sourcepackage compat);
+use parent qw(Debian::Debhelper::Buildsystem::makefile);
sub DESCRIPTION {
"GNU Autoconf (configure)"
@@ -18,11 +19,12 @@ sub check_auto_buildable {
my $this=shift;
my ($step)=@_;
- # Handle configure; the rest - next class (compat with 7.0.x code path)
- if ($step eq "configure") {
- return 1 if -x $this->get_sourcepath("configure");
- }
- return 0;
+ return 0 unless -f $this->get_sourcepath("configure") &&
+ -x _;
+
+ # Handle configure explicitly; inherit the rest
+ return 1 if $step eq "configure";
+ return $this->SUPER::check_auto_buildable(@_);
}
sub configure {
@@ -37,22 +39,28 @@ sub configure {
push @opts, "--infodir=\${prefix}/share/info";
push @opts, "--sysconfdir=/etc";
push @opts, "--localstatedir=/var";
- if (defined $ENV{DH_VERBOSE} && $ENV{DH_VERBOSE} ne "") {
+ # We pass --disable/enable-* options that might be unknown, so we
+ # should not emit warnings.
+ push @opts, "--disable-option-checking";
+ if ($dh{QUIET}) {
+ push @opts, "--enable-silent-rules";
+ } else {
push @opts, "--disable-silent-rules";
}
my $multiarch=dpkg_architecture_value("DEB_HOST_MULTIARCH");
if (! compat(8)) {
- if (defined $multiarch) {
+ if (defined $multiarch) {
push @opts, "--libdir=\${prefix}/lib/$multiarch";
- push @opts, "--libexecdir=\${prefix}/lib/$multiarch";
+ push(@opts, "--libexecdir=\${prefix}/lib/$multiarch") if compat(11);
}
else {
- push @opts, "--libexecdir=\${prefix}/lib";
+ push(@opts, "--libexecdir=\${prefix}/lib") if compat(11);
}
}
else {
push @opts, "--libexecdir=\${prefix}/lib/" . sourcepackage();
}
+ push @opts, "--runstatedir=/run" if not compat(10);
push @opts, "--disable-maintainer-mode";
push @opts, "--disable-dependency-tracking";
# Provide --host only if different from --build, as recommended in
@@ -69,10 +77,22 @@ sub configure {
};
if ($@) {
if (-e $this->get_buildpath("config.log")) {
- $this->doit_in_builddir("tail -v -n +0 config.log");
+ $this->doit_in_builddir('tail', '-v', '-n', '+0', 'config.log');
}
die $@;
}
}
+sub test {
+ my $this=shift;
+
+ my $parallel = $this->get_parallel();
+ my @autotest;
+ push @autotest, "-j$parallel";
+ push @autotest, "--verbose" if not get_buildoption("terse");
+ $this->make_first_existing_target(['test', 'check'],
+ "TESTSUITEFLAGS=@autotest",
+ "VERBOSE=1", @_);
+}
+
1
diff --git a/lib/Debian/Debhelper/Buildsystem/cmake.pm b/lib/Debian/Debhelper/Buildsystem/cmake.pm
new file mode 100644
index 00000000..c64c418e
--- /dev/null
+++ b/lib/Debian/Debhelper/Buildsystem/cmake.pm
@@ -0,0 +1,216 @@
+# A debhelper build system class for handling CMake based projects.
+# It prefers out of source tree building.
+#
+# Copyright: © 2008-2009 Modestas Vainius
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem::cmake;
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib qw(%dh compat dpkg_architecture_value error is_cross_compiling get_buildoption print_and_doit);
+use parent qw(Debian::Debhelper::Buildsystem);
+
+my @STANDARD_CMAKE_FLAGS = qw(
+ -DCMAKE_INSTALL_PREFIX=/usr
+ -DCMAKE_BUILD_TYPE=None
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc
+ -DCMAKE_INSTALL_LOCALSTATEDIR=/var
+ -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON
+ -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF
+ -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON
+ -DFETCHCONTENT_FULLY_DISCONNECTED=ON
+);
+
+my %DEB_HOST2CMAKE_SYSTEM = (
+ 'linux' => 'Linux',
+ 'kfreebsd' => 'kFreeBSD',
+ 'hurd' => 'GNU',
+);
+
+my %GNU_CPU2SYSTEM_PROCESSOR = (
+ 'arm' => 'armv7l',
+ 'mips64el' => 'mips64',
+ 'powerpc64le' => 'ppc64le',
+);
+
+my %TARGET_BUILD_SYSTEM2CMAKE_GENERATOR = (
+ 'makefile' => 'Unix Makefiles',
+ 'ninja' => 'Ninja',
+);
+
+sub DESCRIPTION {
+ "CMake (CMakeLists.txt)"
+}
+
+sub IS_GENERATOR_BUILD_SYSTEM {
+ return 1;
+}
+
+sub SUPPORTED_TARGET_BUILD_SYSTEMS {
+ return qw(makefile ninja);
+}
+
+sub check_auto_buildable {
+ my $this=shift;
+ my ($step)=@_;
+ if (-e $this->get_sourcepath("CMakeLists.txt")) {
+ my $ret = ($step eq "configure" && 1) ||
+ $this->get_targetbuildsystem->check_auto_buildable(@_);
+ if ($this->check_auto_buildable_clean_oos_buildir(@_)) {
+ # Assume that the package can be cleaned (i.e. the build directory can
+ # be removed) as long as it is built out-of-source tree and can be
+ # configured.
+ $ret++ if not $ret;
+ }
+ # Existence of CMakeCache.txt indicates cmake has already
+ # been used by a prior build step, so should be used
+ # instead of the parent makefile class.
+ $ret++ if ($ret && -e $this->get_buildpath("CMakeCache.txt"));
+ return $ret;
+ }
+ return 0;
+}
+
+sub new {
+ my $class=shift;
+ my $this=$class->SUPER::new(@_);
+ $this->prefer_out_of_source_building(@_);
+ return $this;
+}
+
+sub _get_cmake_env {
+ my $update_env = {};
+ $update_env->{DEB_PYTHON_INSTALL_LAYOUT} = 'deb' unless $ENV{DEB_PYTHON_INSTALL_LAYOUT};
+ return $update_env;
+}
+
+sub configure {
+ my $this=shift;
+ # Standard set of cmake flags
+ my @flags = @STANDARD_CMAKE_FLAGS;
+ my $backend = $this->get_targetbuildsystem->NAME;
+
+ push(@flags, '-DCMAKE_INSTALL_RUNSTATEDIR=/run') if not compat(10);
+ # Speed up installation phase a bit.
+ push(@flags, "-DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON") if not compat(12);
+ # Reproducibility #962474 / #1004939
+ push(@flags, '-DCMAKE_BUILD_RPATH_USE_ORIGIN=ON') if not compat(13);
+ if (exists($TARGET_BUILD_SYSTEM2CMAKE_GENERATOR{$backend})) {
+ my $generator = $TARGET_BUILD_SYSTEM2CMAKE_GENERATOR{$backend};
+ push(@flags, "-G${generator}");
+ }
+ if (not $dh{QUIET}) {
+ push(@flags, "-DCMAKE_VERBOSE_MAKEFILE=ON");
+ }
+
+ if ($ENV{CC}) {
+ push @flags, "-DCMAKE_C_COMPILER=" . $ENV{CC};
+ }
+ if ($ENV{CXX}) {
+ push @flags, "-DCMAKE_CXX_COMPILER=" . $ENV{CXX};
+ }
+ if (is_cross_compiling()) {
+ my $deb_host = dpkg_architecture_value("DEB_HOST_ARCH_OS");
+ if (my $cmake_system = $DEB_HOST2CMAKE_SYSTEM{$deb_host}) {
+ push(@flags, "-DCMAKE_SYSTEM_NAME=${cmake_system}");
+ } else {
+ error("Cannot cross-compile - CMAKE_SYSTEM_NAME not known for ${deb_host}");
+ }
+ 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";
+ }
+ if (not $ENV{CXX}) {
+ push @flags, "-DCMAKE_CXX_COMPILER=" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-g++";
+ }
+ 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"));
+
+ # CMake doesn't respect CPPFLAGS, see #653916.
+ if ($ENV{CPPFLAGS} && ! compat(8)) {
+ $ENV{CFLAGS} .= ' ' . $ENV{CPPFLAGS};
+ $ENV{CXXFLAGS} .= ' ' . $ENV{CPPFLAGS};
+ }
+
+ if (get_buildoption("nocheck") && ! compat(13)) {
+ push(@flags, "-DBUILD_TESTING:BOOL=OFF");
+ }
+
+ $this->mkdir_builddir();
+ eval {
+ my %options = (
+ update_env => _get_cmake_env(),
+ );
+ $this->doit_in_builddir(\%options, "cmake", @flags, @_, $this->get_source_rel2builddir());
+ };
+ if (my $err = $@) {
+ if (-e $this->get_buildpath("CMakeCache.txt")) {
+ $this->doit_in_builddir('tail', '-v', '-n', '+0', 'CMakeCache.txt');
+ }
+ if (-e $this->get_buildpath('CMakeFiles/CMakeOutput.log')) {
+ $this->doit_in_builddir('tail', '-v', '-n', '+0', 'CMakeFiles/CMakeOutput.log');
+ }
+ if (-e $this->get_buildpath('CMakeFiles/CMakeError.log')) {
+ $this->doit_in_builddir('tail', '-v', '-n', '+0', 'CMakeFiles/CMakeError.log');
+ }
+ die $err;
+ }
+}
+
+sub build {
+ my $this=shift;
+ my $target = $this->get_targetbuildsystem;
+ if ($target->NAME eq 'makefile') {
+ # Add VERBOSE=1 for #973029 when not asked to be quiet/terse.
+ push(@_, "VERBOSE=1") if not $dh{QUIET};
+ }
+ return $this->SUPER::build(@_);
+}
+
+sub test {
+ my $this=shift;
+ my $target = $this->get_targetbuildsystem;
+ $ENV{CTEST_OUTPUT_ON_FAILURE} = 1;
+ if ($target->NAME eq 'makefile') {
+ # Unlike make, CTest does not have "unlimited parallel" setting (-j implies
+ # -j1). So in order to simulate unlimited parallel, allow to fork a huge
+ # number of threads instead.
+ my $parallel = ($this->get_parallel() > 0) ? $this->get_parallel() : 999;
+ unshift(@_, "ARGS+=-j$parallel");
+ unshift(@_, "ARGS+=--verbose") if not get_buildoption("terse");
+ }
+ return $this->SUPER::test(@_);
+}
+
+sub install {
+ my $this = shift;
+ my $target = $this->get_targetbuildsystem;
+
+ if (compat(13)) {
+ $target->install(@_);
+ } else {
+ # In compat 14 `cmake --install` is preferred to `make install`,
+ # see https://bugs.debian.org/1020732
+ my $destdir = shift;
+ my %options = (
+ update_env => {
+ 'LC_ALL' => 'C.UTF-8',
+ 'DESTDIR' => $destdir,
+ %{ _get_cmake_env() },
+ }
+ );
+ print_and_doit(\%options, 'cmake', '--install', $this->get_buildpath, @_);
+ }
+ return 1;
+}
+
+1
diff --git a/Debian/Debhelper/Buildsystem/makefile.pm b/lib/Debian/Debhelper/Buildsystem/makefile.pm
index 2c68a836..856a6dd4 100644
--- a/Debian/Debhelper/Buildsystem/makefile.pm
+++ b/lib/Debian/Debhelper/Buildsystem/makefile.pm
@@ -7,8 +7,16 @@
package Debian::Debhelper::Buildsystem::makefile;
use strict;
-use Debian::Debhelper::Dh_Lib qw(escape_shell clean_jobserver_makeflags);
-use base 'Debian::Debhelper::Buildsystem';
+use warnings;
+use Debian::Debhelper::Dh_Lib qw(dpkg_architecture_value escape_shell clean_jobserver_makeflags is_cross_compiling compat
+ should_use_root gain_root_cmd error);
+use parent qw(Debian::Debhelper::Buildsystem);
+
+my %DEB_DEFAULT_TOOLS = (
+ 'CC' => 'gcc',
+ 'CXX' => 'g++',
+ 'PKG_CONFIG' => 'pkg-config',
+);
# make makes things difficult by not providing a simple way to test
# whether a Makefile target exists. Using -n and checking for a nonzero
@@ -46,7 +54,7 @@ sub exists_make_target {
unshift @opts, "-C", $buildpath if $buildpath ne ".";
my $pid = open(MAKE, "-|");
- defined($pid) || die "can't fork: $!";
+ defined($pid) || error("fork failed: $!");
if (! $pid) {
open(STDERR, ">&STDOUT");
$ENV{LC_ALL}='C';
@@ -72,9 +80,20 @@ sub do_make {
clean_jobserver_makeflags();
# Note that this will override any -j settings in MAKEFLAGS.
- unshift @_, "-j" . ($this->get_parallel() > 0 ? $this->get_parallel() : "");
+ my $parallel = $this->get_parallel();
+ if ($parallel == 0 or $parallel > 1) {
+ # We have to use the empty string for "unlimited"
+ $parallel = '' if $parallel == 0;
+ unshift(@_, "-j${parallel}");
+ } else {
+ unshift(@_, '-j1');
+ }
- $this->doit_in_builddir($this->{makecmd}, @_);
+ my @root_cmd;
+ if (exists($this->{_run_make_as_root}) and $this->{_run_make_as_root}) {
+ @root_cmd = gain_root_cmd();
+ }
+ $this->doit_in_builddir(@root_cmd, $this->{makecmd}, @_);
}
sub make_first_existing_target {
@@ -112,9 +131,8 @@ sub check_auto_buildable {
# This is always called in the source directory, but generally
# Makefiles are created (or live) in the build directory.
return 1;
- } elsif ($step eq "clean" && defined $this->get_builddir() &&
- $this->check_auto_buildable("configure"))
- {
+ } elsif ($this->check_auto_buildable_clean_oos_buildir(@_)
+ and $this->check_auto_buildable('configure')) {
# Assume that the package can be cleaned (i.e. the build directory can
# be removed) as long as it is built out-of-source tree and can be
# configured. This is useful for derivative buildsystems which
@@ -124,8 +142,31 @@ sub check_auto_buildable {
return 0;
}
+sub _should_inject_cross_build_tools {
+ my ($this) = @_;
+ return ref($this) eq 'Debian::Debhelper::Buildsystem::makefile';
+}
+
+
sub build {
my $this=shift;
+ if (not $this->_is_targetbuildsystem
+ and is_cross_compiling()
+ and $this->_should_inject_cross_build_tools) {
+ # 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}) {
+ unshift @_, $var . "=" . $ENV{$var};
+ } else {
+ unshift @_, $var . "=" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-" . $tool;
+ }
+ }
+ }
+ if (ref($this) eq 'Debian::Debhelper::Buildsystem::makefile' and not compat(10)) {
+ unshift @_, "INSTALL=install --strip-program=true";
+ }
$this->do_make(@_);
}
@@ -137,6 +178,17 @@ sub test {
sub install {
my $this=shift;
my $destdir=shift;
+ if (ref($this) eq 'Debian::Debhelper::Buildsystem::makefile' and not compat(10)) {
+ unshift @_, "INSTALL=install --strip-program=true";
+ }
+ if ( -f $this->get_buildpath('libtool')) {
+ $this->disable_parallel();
+ }
+
+ if (should_use_root('debhelper/upstream-make-install') and $< != 0) {
+ $this->{_run_make_as_root} = 1;
+ }
+
$this->make_first_existing_target(['install'],
"DESTDIR=$destdir",
"AM_UPDATE_INFO_DIR=no", @_);
diff --git a/lib/Debian/Debhelper/Buildsystem/meson.pm b/lib/Debian/Debhelper/Buildsystem/meson.pm
new file mode 100644
index 00000000..b14fb243
--- /dev/null
+++ b/lib/Debian/Debhelper/Buildsystem/meson.pm
@@ -0,0 +1,174 @@
+# A debhelper build system class for handling Meson based projects.
+#
+# Copyright: © 2017 Michael Biebl
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem::meson;
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib qw(compat dpkg_architecture_value is_cross_compiling doit warning error generated_file qx_cmd);
+use parent qw(Debian::Debhelper::Buildsystem);
+
+sub DESCRIPTION {
+ "Meson (meson.build)"
+}
+
+sub IS_GENERATOR_BUILD_SYSTEM {
+ return 1;
+}
+
+sub SUPPORTED_TARGET_BUILD_SYSTEMS {
+ return qw(ninja);
+}
+
+
+sub check_auto_buildable {
+ my $this=shift;
+ my ($step)=@_;
+
+ return 0 unless -e $this->get_sourcepath("meson.build");
+
+ # Handle configure explicitly; inherit the rest
+ return 1 if $step eq "configure";
+ my $ret = $this->get_targetbuildsystem->check_auto_buildable(@_);
+ if ($ret == 0 and $this->check_auto_buildable_clean_oos_buildir(@_)) {
+ # Assume that the package can be cleaned (i.e. the build directory can
+ # be removed) as long as it is built out-of-source tree and can be
+ # configured.
+ $ret++;
+ }
+ return $ret;
+}
+
+sub new {
+ my $class=shift;
+ my $this=$class->SUPER::new(@_);
+ $this->prefer_out_of_source_building(@_);
+ return $this;
+}
+
+sub _get_meson_env {
+ my $update_env = {
+ LC_ALL => 'C.UTF-8',
+ };
+ $update_env->{DEB_PYTHON_INSTALL_LAYOUT} = 'deb' unless $ENV{DEB_PYTHON_INSTALL_LAYOUT};
+ return $update_env;
+}
+
+sub configure {
+ my $this=shift;
+
+ eval { require Dpkg::Version; };
+ error($@) if $@;
+
+ my $output = qx_cmd('meson', '--version');
+ chomp $output;
+ my $version = Dpkg::Version->new($output);
+
+ # Standard set of options for meson.
+ my @opts = (
+ '--wrap-mode=nodownload',
+ );
+ push @opts, "--buildtype=plain";
+ push @opts, "--prefix=/usr";
+ push @opts, "--sysconfdir=/etc";
+ push @opts, "--localstatedir=/var";
+ my $multiarch=dpkg_architecture_value("DEB_HOST_MULTIARCH");
+ push @opts, "--libdir=lib/$multiarch";
+ push(@opts, "--libexecdir=lib/$multiarch") if compat(11);
+ # There was a behaviour change in Meson 1.2.0: previously
+ # byte-compilation wasn't supported, but since 1.2.0 it is on by
+ # default. We can only use this option to turn it off in versions
+ # where the option exists.
+ push(@opts, "-Dpython.bytecompile=-1") if $version >= '1.2.0';
+
+ if (is_cross_compiling()) {
+ # http://mesonbuild.com/Cross-compilation.html
+ my $cross_file = $ENV{'DH_MESON_CROSS_FILE'};
+ if (not $cross_file) {
+ my $debcrossgen = '/usr/share/meson/debcrossgen';
+ if (not -x $debcrossgen) {
+ warning("Missing debcrossgen (${debcrossgen}) cannot generate a meson cross file and non was provided");
+ error("Cannot cross-compile: Please use meson (>= 0.42.1) or provide a cross file via DH_MESON_CROSS_FILE");
+ }
+ my $filename = generated_file('_source', 'meson-cross-file.conf');
+ my %options = (
+ stdout => '/dev/null',
+ update_env => { LC_ALL => 'C.UTF-8'},
+ );
+ doit(\%options, $debcrossgen, "-o${filename}");
+ $cross_file = $filename;
+ }
+ if ($cross_file !~ m{^/}) {
+ # Make the file name absolute as meson will be called from the build dir.
+ require Cwd;
+ $cross_file =~ s{^\./}{};
+ $cross_file = Cwd::getcwd() . "/${cross_file}";
+ }
+ push(@opts, '--cross-file', $cross_file);
+ }
+
+ $this->mkdir_builddir();
+ eval {
+ my %options = (
+ update_env => _get_meson_env(),
+ );
+ $this->doit_in_builddir(\%options, "meson", "setup", $this->get_source_rel2builddir(), @opts, @_);
+ };
+ if ($@) {
+ if (-e $this->get_buildpath("meson-logs/meson-log.txt")) {
+ $this->doit_in_builddir('tail', '-v', '-n', '+0', 'meson-logs/meson-log.txt');
+ }
+ die $@;
+ }
+}
+
+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 => _get_meson_env(),
+ );
+ if ($this->get_parallel() > 0) {
+ $options{update_env}{MESON_TESTTHREADS} = $this->get_parallel();
+ }
+ $this->doit_in_builddir(\%options, 'meson', '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;
+}
+
+sub install {
+ my ($this, $destdir, @args) = @_;
+ my $target = $this->get_targetbuildsystem;
+
+ if (compat(13) or $target->NAME ne 'ninja') {
+ $target->install($destdir, @args);
+ } else {
+ # In compat 14 with meson+ninja, we prefer using "meson install"
+ # over "ninja install"
+ my %options = (
+ update_env => _get_meson_env(),
+ );
+ $this->doit_in_builddir(\%options, 'meson', 'install', '--destdir', $destdir, @args);
+ }
+ return 1;
+}
+
+
+
+1
diff --git a/lib/Debian/Debhelper/Buildsystem/ninja.pm b/lib/Debian/Debhelper/Buildsystem/ninja.pm
new file mode 100644
index 00000000..c08ff166
--- /dev/null
+++ b/lib/Debian/Debhelper/Buildsystem/ninja.pm
@@ -0,0 +1,90 @@
+# A debhelper build system class for handling ninja based projects.
+#
+# Copyright: © 2017 Michael Biebl
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem::ninja;
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib qw(%dh dpkg_architecture_value);
+use parent qw(Debian::Debhelper::Buildsystem);
+
+sub DESCRIPTION {
+ "Ninja (build.ninja)"
+}
+
+sub new {
+ my $class=shift;
+ my $this=$class->SUPER::new(@_);
+ $this->{buildcmd} = "ninja";
+ return $this;
+}
+
+sub check_auto_buildable {
+ my $this=shift;
+ my ($step) = @_;
+
+ if (-e $this->get_buildpath("build.ninja"))
+ {
+ # This is always called in the source directory, but generally
+ # Ninja files are created (or live) in the build directory.
+ return 1;
+ }
+ return 0;
+}
+
+sub build {
+ my $this=shift;
+ my %options = (
+ update_env => {
+ 'LC_ALL' => 'C.UTF-8',
+ }
+ );
+ if (!$dh{QUIET}) {
+ unshift @_, "-v";
+ }
+ if ($this->get_parallel() > 0) {
+ unshift @_, "-j" . $this->get_parallel();
+ }
+ $this->doit_in_builddir(\%options, $this->{buildcmd}, @_);
+}
+
+sub test {
+ my $this=shift;
+ 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", @_);
+}
+
+sub install {
+ my $this=shift;
+ my $destdir=shift;
+ my %options = (
+ update_env => {
+ 'LC_ALL' => 'C.UTF-8',
+ 'DESTDIR' => $destdir,
+ }
+ );
+ $this->doit_in_builddir(\%options, $this->{buildcmd}, "install", @_);
+}
+
+sub clean {
+ my $this=shift;
+ if (!$this->rmdir_builddir()) {
+ my %options = (
+ update_env => {
+ 'LC_ALL' => 'C.UTF-8',
+ }
+ );
+ $this->doit_in_builddir(\%options, $this->{buildcmd}, "clean", @_);
+ }
+}
+
+1
diff --git a/Debian/Debhelper/Buildsystem/perl_build.pm b/lib/Debian/Debhelper/Buildsystem/perl_build.pm
index 4cfbcb4c..87529054 100644
--- a/Debian/Debhelper/Buildsystem/perl_build.pm
+++ b/lib/Debian/Debhelper/Buildsystem/perl_build.pm
@@ -7,8 +7,9 @@
package Debian::Debhelper::Buildsystem::perl_build;
use strict;
-use Debian::Debhelper::Dh_Lib qw(compat);
-use base 'Debian::Debhelper::Buildsystem';
+use warnings;
+use Debian::Debhelper::Dh_Lib qw(compat is_cross_compiling perl_cross_incdir warning);
+use parent qw(Debian::Debhelper::Buildsystem);
use Config;
sub DESCRIPTION {
@@ -28,7 +29,19 @@ 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 };
+ } else {
+ warning("cross Config.pm does not exist (missing build dependency on perl-xs-dev?)");
+ }
+ }
+ $this->doit_in_sourcedir(\%options, $^X, @_);
}
sub new {
@@ -40,15 +53,22 @@ sub new {
sub configure {
my $this=shift;
- my @flags;
+ my (@flags, @perl_flags);
$ENV{PERL_MM_USE_DEFAULT}=1;
if ($ENV{CFLAGS} && ! compat(8)) {
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}";
}
- $this->do_perl("Build.PL", "--installdirs", "vendor", @flags, @_);
+ push(@perl_flags, '-I.') if compat(10);
+ $this->do_perl(@perl_flags, "Build.PL", "--installdirs", "vendor", @flags, @_);
}
sub build {
@@ -58,7 +78,7 @@ sub build {
sub test {
my $this=shift;
- $this->do_perl("Build", "test", @_);
+ $this->do_perl("Build", "test", "--verbose", 1, @_);
}
sub install {
diff --git a/Debian/Debhelper/Buildsystem/perl_makemaker.pm b/lib/Debian/Debhelper/Buildsystem/perl_makemaker.pm
index 60cda3d0..881f1ecc 100644
--- a/Debian/Debhelper/Buildsystem/perl_makemaker.pm
+++ b/lib/Debian/Debhelper/Buildsystem/perl_makemaker.pm
@@ -7,8 +7,9 @@
package Debian::Debhelper::Buildsystem::perl_makemaker;
use strict;
-use Debian::Debhelper::Dh_Lib qw(compat);
-use base 'Debian::Debhelper::Buildsystem::makefile';
+use warnings;
+use Debian::Debhelper::Dh_Lib qw(compat is_cross_compiling perl_cross_incdir warning);
+use parent qw(Debian::Debhelper::Buildsystem::makefile);
use Config;
sub DESCRIPTION {
@@ -40,7 +41,7 @@ sub new {
sub configure {
my $this=shift;
- my @flags;
+ my (@flags, @perl_flags);
# If set to a true value then MakeMaker's prompt function will
# # always return the default without waiting for user input.
$ENV{PERL_MM_USE_DEFAULT}=1;
@@ -50,17 +51,40 @@ 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();
+ if (defined $incdir) {
+ $cross_flag = "-I$incdir";
+ } else {
+ warning("cross Config.pm does not exist (missing build dependency on perl-xs-dev?)");
+ }
+ }
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}";
}
- $this->doit_in_sourcedir("perl", "Makefile.PL", "INSTALLDIRS=vendor",
+ push(@perl_flags, '-I.') if compat(10);
+
+ push @perl_flags, $cross_flag
+ if is_cross_compiling() and defined $cross_flag;
+
+ $this->doit_in_sourcedir($^X, @perl_flags, "Makefile.PL", "INSTALLDIRS=vendor",
# if perl_build is not tested first, need to pass packlist
# option to handle fallthrough case
(compat(7) ? "create_packlist=0" : ()),
@flags, @_);
}
+sub test {
+ my $this=shift;
+ # Make tests verbose
+ $this->SUPER::test("TEST_VERBOSE=1", @_);
+}
+
sub install {
my $this=shift;
my $destdir=shift;
diff --git a/Debian/Debhelper/Buildsystem/python_distutils.pm b/lib/Debian/Debhelper/Buildsystem/python_distutils.pm
index c3d58cc0..e5fe7edc 100644
--- a/Debian/Debhelper/Buildsystem/python_distutils.pm
+++ b/lib/Debian/Debhelper/Buildsystem/python_distutils.pm
@@ -8,12 +8,13 @@
package Debian::Debhelper::Buildsystem::python_distutils;
use strict;
+use warnings;
use Cwd ();
-use Debian::Debhelper::Dh_Lib qw(error);
-use base 'Debian::Debhelper::Buildsystem';
+use Debian::Debhelper::Dh_Lib qw(error deprecated_functionality);
+use parent qw(Debian::Debhelper::Buildsystem);
sub DESCRIPTION {
- "Python Distutils (setup.py)"
+ "Python Distutils (setup.py) [DEPRECATED]"
}
sub DEFAULT_BUILD_DIRECTORY {
@@ -37,7 +38,7 @@ sub check_auto_buildable {
sub not_our_cfg {
my $this=shift;
my $ret;
- if (open(my $cfg, $this->get_buildpath(".pydistutils.cfg"))) {
+ if (open(my $cfg, '<', $this->get_buildpath(".pydistutils.cfg"))) {
$ret = not "# Created by dh_auto\n" eq <$cfg>;
close $cfg;
}
@@ -59,6 +60,9 @@ sub pre_building_step {
my $this=shift;
my $step=shift;
+ deprecated_functionality('Please use the third-party "pybuild" build system instead of python-distutils',
+ 12);
+
return unless grep /$step/, qw(build install clean);
if ($this->get_buildpath() ne $this->DEFAULT_BUILD_DIRECTORY()) {
@@ -90,16 +94,16 @@ sub dbg_build_needed {
# built in a clean chroot.
my @dbg;
- open (CONTROL, 'debian/control') ||
+ open (my $fd, '<', 'debian/control') ||
error("cannot read debian/control: $!\n");
- foreach my $builddeps (join('', <CONTROL>) =~
+ foreach my $builddeps (join('', <$fd>) =~
/^Build-Depends[^:]*:.*\n(?:^[^\w\n].*\n)*/gmi) {
while ($builddeps =~ /(python[^, ]*-dbg)/g) {
push @dbg, $1;
}
}
- close CONTROL;
+ close($fd);
return @dbg;
}
@@ -108,7 +112,7 @@ sub setup_py {
my $this=shift;
my $act=shift;
- # We need to to run setup.py with the default python last
+ # We need to run setup.py with the default python last
# as distutils/setuptools modifies the shebang lines of scripts.
# This ensures that #!/usr/bin/python is installed last and
# not pythonX.Y
diff --git a/Debian/Debhelper/Buildsystem/qmake.pm b/lib/Debian/Debhelper/Buildsystem/qmake.pm
index 91e817f8..18b896d8 100644
--- a/Debian/Debhelper/Buildsystem/qmake.pm
+++ b/lib/Debian/Debhelper/Buildsystem/qmake.pm
@@ -8,10 +8,14 @@ package Debian::Debhelper::Buildsystem::qmake;
use strict;
use warnings;
-use Debian::Debhelper::Dh_Lib qw(error);
-use base 'Debian::Debhelper::Buildsystem::makefile';
+use Debian::Debhelper::Dh_Lib qw(dpkg_architecture_value error is_cross_compiling);
+use parent qw(Debian::Debhelper::Buildsystem::makefile);
-our $qmake="qmake";
+my %OS_MKSPEC_MAPPING = (
+ 'linux' => 'linux-g++',
+ 'kfreebsd' => 'gnukfreebsd-g++',
+ 'hurd' => 'hurd-g++',
+);
sub DESCRIPTION {
"qmake (*.pro)";
@@ -51,7 +55,15 @@ sub configure {
my @flags;
push @options, '-makefile';
- push @options, '-nocache';
+ if (is_cross_compiling()) {
+ my $host_os = dpkg_architecture_value("DEB_HOST_ARCH_OS");
+
+ if (defined(my $spec = $OS_MKSPEC_MAPPING{$host_os})) {
+ push(@options, "-spec", $spec);
+ } else {
+ error("Cannot cross-compile: Missing entry for HOST OS ${host_os} for qmake's -spec option");
+ }
+ }
if ($ENV{CFLAGS}) {
push @flags, "QMAKE_CFLAGS_RELEASE=$ENV{CFLAGS} $ENV{CPPFLAGS}";
@@ -68,7 +80,8 @@ sub configure {
push @flags, "QMAKE_STRIP=:";
push @flags, "PREFIX=/usr";
- $this->doit_in_builddir($qmake, @options, @flags, @_);
+ $this->mkdir_builddir();
+ $this->doit_in_builddir($this->_qmake(), @options, @flags, @_);
}
sub install {
@@ -80,4 +93,11 @@ sub install {
$this->SUPER::install($destdir, "INSTALL_ROOT=$destdir", @_);
}
+sub _qmake {
+ if (is_cross_compiling()) {
+ return dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-qmake";
+ }
+ return 'qmake';
+}
+
1
diff --git a/lib/Debian/Debhelper/Buildsystem/qmake_qt4.pm b/lib/Debian/Debhelper/Buildsystem/qmake_qt4.pm
new file mode 100644
index 00000000..60d9084c
--- /dev/null
+++ b/lib/Debian/Debhelper/Buildsystem/qmake_qt4.pm
@@ -0,0 +1,15 @@
+package Debian::Debhelper::Buildsystem::qmake_qt4;
+
+use strict;
+use warnings;
+use parent qw(Debian::Debhelper::Buildsystem::qmake);
+
+sub DESCRIPTION {
+ "qmake for QT 4 (*.pro)";
+}
+
+sub _qmake {
+ return 'qmake-qt4';
+}
+
+1
diff --git a/lib/Debian/Debhelper/DH/AddonAPI.pm b/lib/Debian/Debhelper/DH/AddonAPI.pm
new file mode 100644
index 00000000..f8328e39
--- /dev/null
+++ b/lib/Debian/Debhelper/DH/AddonAPI.pm
@@ -0,0 +1,228 @@
+# Defines dh sequence state variables
+#
+# License: GPL-2+
+
+package Debian::Debhelper::DH::AddonAPI;
+use strict;
+use warnings;
+
+use Debian::Debhelper::Dh_Lib qw(warning error);
+use Debian::Debhelper::Sequence;
+use Debian::Debhelper::SequencerUtil;
+use Debian::Debhelper::DH::SequenceState;
+
+
+our ($DH_INTERNAL_ADDON_TYPE, $DH_INTERNAL_ADDON_NAME);
+
+sub _add_sequence {
+ my @args = @_;
+ my $seq = Debian::Debhelper::Sequence->new(@args);
+ my $name = $seq->name;
+ $Debian::Debhelper::DH::SequenceState::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}";
+ $Debian::Debhelper::DH::SequenceState::sequences{$subname} = $seq;
+ }
+ }
+ return;
+}
+
+sub _skip_cmd_if_deb_build_options_contains {
+ my ($command, $flag) = @_;
+ push(@{$Debian::Debhelper::DH::SequenceState::commands_skippable_via_deb_build_options{$command}}, $flag);
+ return;
+}
+
+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.');
+ error("${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.');
+ error("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 = $Debian::Debhelper::DH::SequenceState::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.');
+ error("Multiple sequences have conflicting requests for $cmd.\n");
+ }
+ return;
+ }
+
+ $Debian::Debhelper::DH::SequenceState::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(%Debian::Debhelper::DH::SequenceState::sequences)) {
+ my $seq = $Debian::Debhelper::DH::SequenceState::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) = @_;
+ 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 {
+ return _insert(-1, @_);
+}
+sub insert_after {
+ return _insert(1, @_);
+}
+sub remove_command {
+ my ($command) = @_;
+ # 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) = @_;
+ _assert_not_conditional_sequence_addon('add_command');
+ _register_cmd_added_by_addon($command);
+ if (not exists($Debian::Debhelper::DH::SequenceState::sequences{$sequence})) {
+ _add_sequence($sequence, SEQUENCE_NO_SUBSEQUENCES, _seq_cmd($command));
+ } else {
+ my $seq = $Debian::Debhelper::DH::SequenceState::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) = @_;
+ _assert_not_conditional_sequence_addon('add_command_at_end');
+ _register_cmd_added_by_addon($command);
+ if (not exists($Debian::Debhelper::DH::SequenceState::sequences{$sequence})) {
+ _add_sequence($sequence, SEQUENCE_NO_SUBSEQUENCES, _seq_cmd($command));
+ } else {
+ my $seq = $Debian::Debhelper::DH::SequenceState::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(@{$Debian::Debhelper::DH::SequenceState::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 = $Debian::Debhelper::DH::SequenceState::command_opts{$command}) {
+ foreach my $opt (@cmd_options) {
+ $opts = [ grep { $_ ne $opt } @$opts ];
+ }
+ $Debian::Debhelper::DH::SequenceState::command_opts{$command} = $opts;
+ }
+ }
+ else {
+ # Clear all additional options
+ delete($Debian::Debhelper::DH::SequenceState::command_opts{$command});
+ }
+ return 1;
+}
+
+sub declare_command_obsolete {
+ my ($error_compat, $command) = @_;
+ if (not defined($command) and defined($error_compat)) {
+ # Backwards compat - originally this only accepted one command.
+ $command = $error_compat;
+ $error_compat = 13;
+ }
+ if ($error_compat < 13) {
+ error("Minimum error compat is 13 (got ${error_compat} for command: ${command})");
+ }
+ _assert_not_conditional_sequence_addon('declare_command_obsolete');
+ $Debian::Debhelper::DH::SequenceState::obsolete_command{$command} = [$DH_INTERNAL_ADDON_NAME, $error_compat];
+ return 1;
+}
+
+
+1;
diff --git a/lib/Debian/Debhelper/DH/SequenceState.pm b/lib/Debian/Debhelper/DH/SequenceState.pm
new file mode 100644
index 00000000..b029e01d
--- /dev/null
+++ b/lib/Debian/Debhelper/DH/SequenceState.pm
@@ -0,0 +1,31 @@
+# Defines dh sequence state variables
+#
+# License: GPL-2+
+
+package Debian::Debhelper::DH::SequenceState;
+use strict;
+use warnings;
+
+our (
+ # Definitions of sequences.
+ %sequences,
+ # Additional command options
+ %command_opts,
+ # Track commands added by (which) addons
+ %commands_added_by_addon,
+ # Removed commands
+ %obsolete_command,
+ # Commands that can be skipped due to DEB_BUILD_OPTIONS=X flags
+ %commands_skippable_via_deb_build_options,
+ # Options passed that should be passed on to underlying helpers (in order)
+ @options,
+ # Options passed by name (to assist can_skip with which options are used)
+ %seen_options,
+ # Whether there were sequences of options that inhibit certain optimizations
+ # * $unoptimizable_option_bundle => can skip iff cli-options hint is present and empty
+ # * $unoptimizable_user_option => We can never skip anything (non-option seen)
+ $unoptimizable_option_bundle,
+ $unoptimizable_user_option,
+);
+
+1;
diff --git a/lib/Debian/Debhelper/Dh_Buildsystems.pm b/lib/Debian/Debhelper/Dh_Buildsystems.pm
new file mode 100644
index 00000000..0e3f584d
--- /dev/null
+++ b/lib/Debian/Debhelper/Dh_Buildsystems.pm
@@ -0,0 +1,320 @@
+# A module for loading and managing debhelper build system classes.
+# This module is intended to be used by all dh_auto_* programs.
+#
+# Copyright: © 2009 Modestas Vainius
+# License: GPL-2+
+
+package Debian::Debhelper::Dh_Buildsystems;
+
+use strict;
+use warnings;
+use Debian::Debhelper::Buildsystem;
+use Debian::Debhelper::Dh_Lib;
+use File::Spec;
+
+use Exporter qw(import);
+our @EXPORT=qw(&buildsystems_init &buildsystems_do &load_buildsystem &load_all_buildsystems);
+
+use constant BUILD_STEPS => qw(configure build test install clean);
+
+# Historical order must be kept for backwards compatibility. New
+# build systems MUST be added to the END of the list.
+our @BUILDSYSTEMS = (
+ "autoconf",
+ (! compat(7) ? "perl_build" : ()),
+ "perl_makemaker",
+ "makefile",
+ "python_distutils",
+ (compat(7) ? "perl_build" : ()),
+ "cmake+makefile",
+ "cmake+ninja",
+ "ant",
+ "qmake",
+ "qmake_qt4",
+ "meson+ninja",
+ "ninja",
+);
+
+our @THIRD_PARTY_BUILDSYSTEMS = (
+ 'maven',
+ 'gradle',
+ 'mkcmake',
+ 'bmake',
+ 'golang',
+);
+
+# Visible for dh_assistant's sake; not API for external tools!
+our $opt_buildsys;
+my $opt_sourcedir;
+my $opt_builddir;
+my $opt_list;
+my $opt_parallel;
+
+*create_buildsystem_instance = \&Debian::Debhelper::Buildsystem::_create_buildsystem_instance;
+
+sub _insert_cmd_opts {
+ my (%bsopts) = @_;
+ if (!exists $bsopts{builddir} && defined $opt_builddir) {
+ $bsopts{builddir} = ($opt_builddir eq "") ? undef : $opt_builddir;
+ }
+ if (!exists $bsopts{sourcedir} && defined $opt_sourcedir) {
+ $bsopts{sourcedir} = ($opt_sourcedir eq "") ? undef : $opt_sourcedir;
+ }
+ if (!exists $bsopts{parallel}) {
+ $bsopts{parallel} = $opt_parallel;
+ }
+ return %bsopts;
+}
+
+# Autoselect a build system from the list of instances
+sub autoselect_buildsystem {
+ my $step=shift;
+ my $selected;
+ my $selected_level = 0;
+
+ foreach my $inst (@_) {
+ # Only more specific build system can be considered beyond
+ # the currently selected one.
+ if (defined($selected)) {
+ my $ok = $inst->isa(ref($selected)) ? 1 : 0;
+ if (not $ok and $inst->IS_GENERATOR_BUILD_SYSTEM) {
+ $ok = 1 if $inst->get_targetbuildsystem->NAME eq $selected->NAME;
+ }
+ next if not $ok;
+ }
+
+ # If the build system says it is auto-buildable at the current
+ # step and it can provide more specific information about its
+ # status than its parent (if any), auto-select it.
+ my $level = $inst->check_auto_buildable($step);
+ if ($level > $selected_level) {
+ $selected = $inst;
+ $selected_level = $level;
+ }
+ }
+ return $selected;
+}
+
+# Similar to create_buildsystem_instance(), but it attempts to autoselect
+# a build system if none was specified. In case autoselection fails or an
+# explicit “none” is requested, undef is returned.
+sub load_buildsystem {
+ my $system=shift;
+ my $step=shift;
+ my %opts = _insert_cmd_opts(@_);
+ my $system_options;
+ if (defined($system) && ref($system) eq 'HASH') {
+ $system_options = $system;
+ $system = $system_options->{'system'};
+ }
+ if (defined $system) {
+ return undef if $system eq 'none';
+ my $inst = create_buildsystem_instance($system, 1, %opts);
+ return $inst;
+ }
+ else {
+ # Try to determine build system automatically
+ my @buildsystems;
+ foreach $system (@BUILDSYSTEMS) {
+ push @buildsystems, create_buildsystem_instance($system, 1, %opts);
+ }
+ if (!$system_options || $system_options->{'enable-thirdparty'}) {
+ foreach $system (@THIRD_PARTY_BUILDSYSTEMS) {
+ push @buildsystems, create_buildsystem_instance($system, 0, %opts);
+ }
+ }
+ return autoselect_buildsystem($step, @buildsystems);
+ }
+}
+
+sub load_all_buildsystems {
+ my $incs=shift || \@INC;
+ my %opts = _insert_cmd_opts(@_);
+ my (%buildsystems, %genbuildsystems, @buildsystems);
+
+ foreach my $inc (@$incs) {
+ my $path = File::Spec->catdir($inc, "Debian/Debhelper/Buildsystem");
+ if (-d $path) {
+ foreach my $module_path (glob "$path/*.pm") {
+ my $name = basename($module_path);
+ $name =~ s/\.pm$//;
+ next if exists $buildsystems{$name} or exists $genbuildsystems{$name};
+ my $system = create_buildsystem_instance($name, 1, %opts);
+ if ($system->IS_GENERATOR_BUILD_SYSTEM) {
+ $genbuildsystems{$name} = 1;
+ for my $target_name ($system->SUPPORTED_TARGET_BUILD_SYSTEMS) {
+ my $full_name = "${name}+${target_name}";
+ my $full_system = create_buildsystem_instance($name, 1, %opts,
+ 'targetbuildsystem' => $target_name);
+ $buildsystems{$full_name} = $full_system;
+ }
+ } else {
+ $buildsystems{$name} = $system;
+ }
+ }
+ }
+ }
+
+ # Standard debhelper build systems first
+ foreach my $name (@BUILDSYSTEMS) {
+ error("standard debhelper build system '$name' could not be found/loaded")
+ if not exists $buildsystems{$name};
+ push @buildsystems, $buildsystems{$name};
+ delete $buildsystems{$name};
+ }
+
+ foreach my $name (@THIRD_PARTY_BUILDSYSTEMS) {
+ next if not exists $buildsystems{$name};
+ my $inst = $buildsystems{$name};
+ $inst->{thirdparty} = 1;
+ push(@buildsystems, $inst);
+ delete($buildsystems{$name});
+ }
+
+ # The rest are 3rd party build systems
+ foreach my $name (sort(keys(%buildsystems))) {
+ my $inst = $buildsystems{$name};
+ $inst->{thirdparty} = 1;
+ push @buildsystems, $inst;
+ }
+
+ return @buildsystems;
+}
+
+sub buildsystems_init {
+ my %args=@_;
+
+ # Compat 10 defaults to --parallel by default
+ my $max_parallel = compat(9) ? 1 : -1;
+
+ # 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,
+ "buildsystem=s" => \$opt_buildsys,
+
+ "l" => \$opt_list,
+ "list" => \$opt_list,
+
+ "parallel" => sub { $max_parallel = -1 },
+ 'no-parallel' => sub { $max_parallel = 1 },
+ "max-parallel=i" => \$max_parallel,
+
+ 'reload-all-buildenv-variables' => sub {
+ Debian::Debhelper::Dh_Lib::reset_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+.\n");
+ };
+ }
+ $args{options}{$_} = $options{$_} foreach keys(%options);
+ Debian::Debhelper::Dh_Lib::init(%args);
+ Debian::Debhelper::Dh_Lib::setup_buildenv();
+ set_parallel($max_parallel);
+}
+
+sub set_parallel {
+ my $max=shift;
+
+ # Get number of processes from parallel=n option, limiting it
+ # with $max if needed
+ $opt_parallel=get_buildoption("parallel") || 1;
+
+ if ($max > 0 && $opt_parallel > $max) {
+ $opt_parallel = $max;
+ }
+}
+
+sub buildsystems_list {
+ my $step=shift;
+
+ my @buildsystems = load_all_buildsystems();
+ my %auto_selectable = map { $_ => 1 } @THIRD_PARTY_BUILDSYSTEMS;
+ my $auto = autoselect_buildsystem($step, grep { ! $_->{thirdparty} || $auto_selectable{$_->NAME} } @buildsystems);
+ my $specified_text;
+
+ if ($opt_buildsys) {
+ for my $inst (@buildsystems) {
+ my $full_name = $inst->NAME;
+ if ($full_name eq $opt_buildsys) {
+ $specified_text = $full_name;
+ } elsif ($inst->IS_GENERATOR_BUILD_SYSTEM and ref($inst)->NAME eq $opt_buildsys) {
+ my $default = $inst->DEFAULT_TARGET_BUILD_SYSTEM;
+ $specified_text = "${opt_buildsys}+${default} (default for ${opt_buildsys})";
+ }
+ }
+ }
+
+ # List build systems (including auto and specified status)
+ foreach my $inst (@buildsystems) {
+ printf("%-20s %s", $inst->NAME(), $inst->FULL_DESCRIPTION());
+ print " [3rd party]" if $inst->{thirdparty};
+ print "\n";
+ }
+ print "\n";
+ print "Auto-selected: ", $auto->NAME(), "\n" if defined $auto;
+ print "Specified: ", $specified_text, "\n" if defined $specified_text;
+ print "No system auto-selected or specified\n"
+ if ! defined $auto && ! defined $specified_text;
+}
+
+sub buildsystems_do {
+ my $step=shift;
+
+ if (!defined $step) {
+ $step = basename($0);
+ $step =~ s/^dh_auto_//;
+ }
+
+ if (grep(/^\Q$step\E$/, BUILD_STEPS) == 0) {
+ error("unrecognized build step: " . $step);
+ }
+
+ if ($opt_list) {
+ buildsystems_list($step);
+ exit 0;
+ }
+
+ my $buildsystem = load_buildsystem($opt_buildsys, $step);
+ if (defined $buildsystem) {
+ my ($xdg_runtime_dir, $err, $ref);
+ local $SIG{'INT'} = sub { $ref = 'INT'; die(\$ref); };
+ local $SIG{'TERM'} = sub { $ref = 'TERM'; die(\$ref); };
+ if ($step eq 'test' and not compat(12)) {
+ require File::Temp;
+ $xdg_runtime_dir = File::Temp->newdir('dh-xdg-rundir-XXXXXXXX',
+ TMPDIR => 1,
+ CLEANUP => 1,
+ );
+ chmod(0700, $xdg_runtime_dir->dirname) or error("chmod(0700, $xdg_runtime_dir) failed: $!");
+ $ENV{'XDG_RUNTIME_DIR'} = $xdg_runtime_dir->dirname;
+ }
+ eval {
+ $buildsystem->pre_building_step($step);
+ $buildsystem->$step(@_, @{$dh{U_PARAMS}});
+ $buildsystem->post_building_step($step);
+ };
+ $err = $@;
+ doit('rm', '-fr', '--', $xdg_runtime_dir) if $xdg_runtime_dir;
+ if ($err) {
+ my $sig;
+ die($err) if $err ne \$ref;
+ $sig = $ref;
+ delete($SIG{$sig});
+ kill($sig => $$);
+ }
+ }
+ return 0;
+}
+
+1
diff --git a/Debian/Debhelper/Dh_Getopt.pm b/lib/Debian/Debhelper/Dh_Getopt.pm
index e4f3e471..5486c416 100644
--- a/Debian/Debhelper/Dh_Getopt.pm
+++ b/lib/Debian/Debhelper/Dh_Getopt.pm
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
#
# Debhelper option processing library.
#
@@ -6,11 +6,13 @@
package Debian::Debhelper::Dh_Getopt;
use strict;
+use warnings;
use Debian::Debhelper::Dh_Lib;
use Getopt::Long;
-my %exclude_package;
+my (%exclude_package, %internal_excluded_package, %explicitly_requested_packages, %profile_enabled_packages,
+ $profile_excluded_pkg);
sub showhelp {
my $prog=basename($0);
@@ -32,35 +34,50 @@ sub AddPackage { my($option,$value)=@_;
$option eq 's' or $option eq 'same-arch') {
push @{$dh{DOPACKAGES}}, getpackages('arch');
$dh{DOARCH}=1;
+ if ($option eq 's' or $option eq 'same-arch') {
+ deprecated_functionality('-s/--same-arch is deprecated; please use -a/--arch instead',
+ 12,
+ '-s/--same-arch has been removed; please use -a/--arch instead'
+ );
+ }
}
elsif ($option eq 'p' or $option eq 'package') {
- push @{$dh{DOPACKAGES}}, $value;
+ assert_opt_is_known_package($value, '-p/--package');
+ %profile_enabled_packages = map { $_ => 1 } getpackages('both') if not %profile_enabled_packages;
+ $explicitly_requested_packages{$value} = 1;
+ # Silently ignore packages that are not enabled by the
+ # profile.
+ if (exists($profile_enabled_packages{$value})) {
+ push @{$dh{DOPACKAGES}}, $value;
+ } else {
+ $profile_excluded_pkg = 1;
+ }
}
else {
error("bad option $option - should never happen!\n");
}
}
-# Adds packages to the list of debug packages.
-sub AddDebugPackage { my($option,$value)=@_;
- push @{$dh{DEBUGPACKAGES}}, $value;
+# Sets a package as the debug package.
+sub SetDebugPackage { my($option,$value)=@_;
+ $dh{DEBUGPACKAGE} = $value;
+ # For backwards compatibility
+ $dh{DEBUGPACKAGES} = [$value];
}
# Add a package to a list of packages that should not be acted on.
-sub ExcludePackage { my($option,$value)=@_;
+sub ExcludePackage {
+ my($option, $value)=@_;
+ assert_opt_is_known_package($value, '-N/--no-package');
$exclude_package{$value}=1;
}
# Add another item to the exclude list.
-sub AddExclude { my($option,$value)=@_;
+sub AddExclude {
+ my($option,$value)=@_;
push @{$dh{EXCLUDE}},$value;
}
-# Add a file to the ignore list.
-sub AddIgnore { my($option,$file)=@_;
- $dh{IGNORE}->{$file}=1;
-}
-
# This collects non-options values.
sub NonOption {
push @{$dh{ARGV}}, @_;
@@ -73,6 +90,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=(
@@ -88,31 +109,30 @@ sub getoptions {
"arch" => \&AddPackage,
"p=s" => \&AddPackage,
- "package=s" => \&AddPackage,
+ "package=s" => \&AddPackage,
"N=s" => \&ExcludePackage,
"no-package=s" => \&ExcludePackage,
"remaining-packages" => \$dh{EXCLUDE_LOGGED},
- "dbg-package=s" => \&AddDebugPackage,
+ "dbg-package=s" => \&SetDebugPackage,
"s" => \&AddPackage,
"same-arch" => \&AddPackage,
"n" => \$dh{NOSCRIPTS},
"noscripts" => \$dh{NOSCRIPTS},
+ "no-scripts" => \$dh{NOSCRIPTS},
"o" => \$dh{ONLYSCRIPTS},
"onlyscripts" => \$dh{ONLYSCRIPTS},
+ "only-scripts" => \$dh{ONLYSCRIPTS},
"X=s" => \&AddExclude,
"exclude=s" => \&AddExclude,
"d" => \$dh{D_FLAG},
- "k" => \$dh{K_FLAG},
- "keep" => \$dh{K_FLAG},
-
"P=s" => \$dh{TMPDIR},
"tmpdir=s" => \$dh{TMPDIR},
@@ -123,8 +143,6 @@ sub getoptions {
"A" => \$dh{PARAMS_ALL},
"all" => \$dh{PARAMS_ALL},
- "priority=s" => \$dh{PRIORITY},
-
"h|help" => \&showhelp,
"mainpackage=s" => \$dh{MAINPACKAGE},
@@ -132,8 +150,6 @@ sub getoptions {
"name=s" => \$dh{NAME},
"error-handler=s" => \$dh{ERROR_HANDLER},
-
- "ignore=s" => \&AddIgnore,
"O=s" => sub { push @test, $_[1] },
@@ -154,7 +170,7 @@ sub getoptions {
$SIG{__WARN__}=sub {};
}
my $ret=Getopt::Long::GetOptionsFromArray($array, %options);
- if ($oldwarn) {
+ if ($params{test} || $params{ignore_unknown_options}) {
$SIG{__WARN__}=$oldwarn;
}
@@ -198,7 +214,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;
}
}
}
@@ -212,14 +229,14 @@ sub parseopts {
@ARGV_extra=split_options_string($ENV{DH_OPTIONS});
my $ret=getoptions(\@ARGV_extra, %params);
if (!$ret) {
- warning("warning: ignored unknown options in DH_OPTIONS");
+ warning("ignored unknown options in DH_OPTIONS");
}
}
my $ret=getoptions(\@ARGV, %params);
if (!$ret) {
if (! compat(7)) {
- error("unknown option; aborting");
+ error("unknown option or error during option parsing; aborting");
}
}
@@ -233,26 +250,33 @@ sub parseopts {
# want us to act on them all. Note we have to do this before excluding
# packages out, below.
if (! defined $dh{DOPACKAGES} || ! @{$dh{DOPACKAGES}}) {
+ my $do_exit = 0;
+ if ($profile_excluded_pkg) {
+ if (! $dh{BLOCK_NOOP_WARNINGS}) {
+ warning('All requested packages have been excluded'
+ . ' (e.g. via a Build-Profile or due to architecture restrictions).');
+ }
+ $do_exit = 1;
+ }
if ($dh{DOINDEP} || $dh{DOARCH}) {
# User specified that all arch (in)dep package be
# built, and there are none of that type.
if (! $dh{BLOCK_NOOP_WARNINGS}) {
warning("You asked that all arch in(dep) packages be built, but there are none of that type.");
}
- exit(0);
+ $do_exit = 1;
}
+ exit(0) if $do_exit;
push @{$dh{DOPACKAGES}},getpackages("both");
}
# Remove excluded packages from the list of packages to act on.
# Also unique the list, in case some options were specified that
# added a package to it twice.
- my @package_list;
- my $package;
- my %packages_seen;
+ my (@package_list, $package, %packages_seen);
foreach $package (@{$dh{DOPACKAGES}}) {
if (defined($dh{EXCLUDE_LOGGED}) &&
- grep { $_ eq basename($0) } load_log($package)) {
+ grep { $_ eq $Debian::Debhelper::Dh_Lib::TOOL_NAME } load_log($package)) {
$exclude_package{$package}=1;
}
if (! $exclude_package{$package}) {
@@ -266,17 +290,37 @@ sub parseopts {
if (! defined $dh{DOPACKAGES} || ! @{$dh{DOPACKAGES}}) {
if (! $dh{BLOCK_NOOP_WARNINGS}) {
- warning("No packages to build.");
+ my %archs;
+ if (%explicitly_requested_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_requested_packages))) {
+ if (exists($internal_excluded_package{$pkg}) or not exists($profile_enabled_packages{$pkg})) {
+ delete($explicitly_requested_packages{$pkg});
+ }
+ }
+ if (not %explicitly_requested_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. Possible architecture mismatch: " . hostarch() .
+ ", want: " . join(" ", sort keys %archs));
}
exit(0);
}
if (defined $dh{U_PARAMS}) {
- # Split the U_PARAMS up into an array.
- my $u=$dh{U_PARAMS};
- undef $dh{U_PARAMS};
- push @{$dh{U_PARAMS}}, split(/\s+/,$u);
- }
+ # Split the U_PARAMS up into an array.
+ my $u=$dh{U_PARAMS};
+ undef $dh{U_PARAMS};
+ push @{$dh{U_PARAMS}}, split(/\s+/,$u);
+ }
# Anything left in @ARGV is options that appeared after a --
# These options are added to the U_PARAMS array, while the
diff --git a/lib/Debian/Debhelper/Dh_Lib.pm b/lib/Debian/Debhelper/Dh_Lib.pm
new file mode 100644
index 00000000..7cf59e03
--- /dev/null
+++ b/lib/Debian/Debhelper/Dh_Lib.pm
@@ -0,0 +1,3111 @@
+#!/usr/bin/perl
+#
+# Library functions for debhelper programs, perl version.
+#
+# Joey Hess, GPL copyright 1997-2008.
+
+package Debian::Debhelper::Dh_Lib;
+
+use v5.24;
+use warnings;
+use utf8;
+
+# Disable unicode_strings for now until a better solution for
+# Debian#971362 comes around.
+no feature 'unicode_strings';
+
+
+use constant {
+ # Lowest compat level supported
+ 'MIN_COMPAT_LEVEL' => 7,
+ # Lowest compat level that does *not* cause deprecation
+ # warnings
+ 'LOWEST_NON_DEPRECATED_COMPAT_LEVEL' => 10,
+ # Lowest compat level to generate "debhelper-compat (= X)"
+ # relations for.
+ 'LOWEST_VIRTUAL_DEBHELPER_COMPAT_LEVEL' => 9,
+ # Highest compat level permitted
+ 'MAX_COMPAT_LEVEL' => 15,
+ # Magic value for xargs
+ 'XARGS_INSERT_PARAMS_HERE' => \'<INSERT-HERE>', #'# Hi emacs.
+ # Magic value for debhelper tools to request "current version"
+ 'DH_BUILTIN_VERSION' => \'<DH_LIB_VERSION>', #'# Hi emacs.
+ # Default Package-Type / extension (must be aligned with dpkg)
+ 'DEFAULT_PACKAGE_TYPE' => 'deb',
+};
+
+
+# The Makefile changes this if debhelper is installed in a PREFIX.
+my $prefix="/usr";
+# The Makefile changes this during install to match the actual version.
+use constant HIGHEST_STABLE_COMPAT_LEVEL => undef;
+
+# Locations we search for data files by default
+my @DATA_INC_PATH = (
+ "${prefix}/share/debhelper",
+);
+# Enable the use of DH_DATAFILES for testing purposes.
+unshift(@DATA_INC_PATH, split(':', $ENV{'DH_DATAFILES'})) if exists($ENV{'DH_DATAFILES'});
+
+use constant {
+ # Package-Type / extension for dbgsym packages
+ # TODO: Find a way to determine this automatically from the vendor
+ # - blocked by Dpkg::Vendor having a rather high load time (for debhelper)
+ 'DBGSYM_PACKAGE_TYPE' => DEFAULT_PACKAGE_TYPE,
+ # Lowest compat level supported that is not scheduled for removal.
+ # - Set to MIN_COMPAT_LEVEL when there are no pending compat removals.
+ 'MIN_COMPAT_LEVEL_NOT_SCHEDULED_FOR_REMOVAL' => MIN_COMPAT_LEVEL,
+};
+
+
+# Internal constants used to define limits in variable expansions.
+use constant {
+ # How many expansions are permitted in total.
+ _VAR_SUBST_EXPANSION_COUNT_LIMIT => 50,
+ # When recursion is enabled, how many times will we expand a pattern
+ # on the same position in the string.
+ _VAR_SUBST_SAME_POSITION_RECURSION_LIMIT => 20,
+ # Expansions are always allowed to grow up to this length regardless
+ # of original input size (provided it does not trip another limit)
+ _VAR_SUBST_EXPANSION_MIN_SUPPORTED_SIZE_LIMIT => 4096,
+ # Factor input is allowed to grow before it triggers an error
+ # (_VAR_SUBST_EXPANSION_MIN_SUPPORTED_SIZE_LIMIT overrules this for a
+ # given input if the max size limit computed with this factor is less
+ # than _VAR_SUBST_EXPANSION_MIN_SUPPORTED_SIZE_LIMIT)
+ _VAR_SUBST_EXPANSION_DYNAMIC_EXPANSION_FACTOR_LIMIT => 3,
+};
+
+
+use Errno qw(ENOENT EXDEV);
+use Exporter qw(import);
+use File::Glob qw(bsd_glob GLOB_CSH GLOB_NOMAGIC GLOB_TILDE);
+our (@EXPORT, %dh);
+@EXPORT = (
+ # debhelper basis functionality
+qw(
+ init
+ %dh
+ compat
+),
+ # External command tooling API
+qw(
+ doit
+ doit_noerror
+ qx_cmd
+ xargs
+ XARGS_INSERT_PARAMS_HERE
+ print_and_doit
+ print_and_doit_noerror
+
+ complex_doit
+ escape_shell
+),
+ # Logging/messaging/error handling
+qw(
+ error
+ error_exitcode
+ warning
+ verbose_print
+ nonquiet_print
+),
+ # Package related actions
+qw(
+ getpackages
+ sourcepackage
+ tmpdir
+ dbgsym_tmpdir
+ default_sourcedir
+ pkgfile
+ pkgext
+ pkgfilename
+ package_is_arch_all
+ package_binary_arch
+ package_declared_arch
+ package_multiarch
+ package_section
+ package_arch
+ package_type
+ process_pkg
+ compute_doc_main_package
+ isnative
+ is_udeb
+),
+ # File/path related actions
+qw(
+ basename
+ dirname
+ mkdirs
+ install_file
+ install_prog
+ install_lib
+ install_dir
+ install_dh_config_file
+ make_symlink
+ make_symlink_raw_target
+ rename_path
+ find_hardlinks
+ rm_files
+ excludefile
+ is_so_or_exec_elf_file
+ is_empty_dir
+ reset_perm_and_owner
+ log_installed_files
+
+ filearray
+ filedoublearray
+ glob_expand
+ glob_expand_error_handler_reject
+ glob_expand_error_handler_warn_and_discard
+ glob_expand_error_handler_silently_ignore
+ glob_expand_error_handler_reject_nomagic_warn_discard
+),
+ # Generate triggers, substvars, maintscripts, build-time temporary files
+qw(
+ autoscript
+ autotrigger
+ addsubstvar
+ delsubstvar
+
+ generated_file
+ restore_file_on_clean
+),
+ # Split tasks among different cores
+qw(
+ on_pkgs_in_parallel
+ on_items_in_parallel
+ on_selected_pkgs_in_parallel
+),
+ # R³ framework
+qw(
+ should_use_root
+ gain_root_cmd
+
+),
+ # Architecture, cross-tooling, build options and profiles
+qw(
+ dpkg_architecture_value
+ hostarch
+ cross_command
+ is_cross_compiling
+ is_build_profile_active
+ get_buildoption
+ perl_cross_incdir
+),
+ # Other
+qw(
+ open_gz
+ get_source_date_epoch
+ get_non_binnmu_date_epoch
+ deprecated_functionality
+),
+ # Special-case functionality (e.g. tool specific), debhelper(-core) functionality and deprecated functions
+qw(
+ inhibit_log
+ load_log
+ write_log
+ commit_override_log
+ debhelper_script_subst
+ debhelper_script_per_package_subst
+ is_make_jobserver_unavailable
+ clean_jobserver_makeflags
+ set_buildflags
+ DEFAULT_PACKAGE_TYPE
+ DBGSYM_PACKAGE_TYPE
+ DH_BUILTIN_VERSION
+ is_known_package
+ assert_opt_is_known_package
+ restore_all_files
+
+ buildarch
+));
+
+my $MAX_PROCS = get_buildoption("parallel") || 1;
+my $DH_TOOL_VERSION;
+
+our $PKGNAME_REGEX = qr/[a-z0-9][-+\.a-z0-9]+/o;
+our $PKGVERSION_REGEX = qr/
+ (?: \d+ : )? # Optional epoch
+ [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;
+our $TOOL_NAME = basename($0);
+
+# From Policy 5.1:
+#
+# The field name is composed of US-ASCII characters excluding control
+# characters, space, and colon (i.e., characters in the ranges U+0021
+# (!) through U+0039 (9), and U+003B (;) through U+007E (~),
+# inclusive). Field names must not begin with the comment character
+# (U+0023 #), nor with the hyphen character (U+002D -).
+our $DEB822_FIELD_REGEX = qr/
+ [\x21\x22\x24-\x2C\x2F-\x39\x3B-\x7F] # First character
+ [\x21-\x39\x3B-\x7F]* # Subsequent characters (if any)
+ /xoa;
+
+our $PARSE_DH_SEQUENCE_INFO = 0;
+
+# We need logging in compat 9 or in override/hook targets (for --remaining-packages to work)
+# - This option is a global toggle to disable logs for special commands (e.g. dh or dh_clean)
+# It is initialized during "init". This implies that commands that never calls init are
+# not dh_* commands or do not need the log
+my $write_log = undef;
+
+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') &&
+ ! (defined $ENV{DH_OPTIONS} && length $ENV{DH_OPTIONS}) &&
+ ! (defined $ENV{DH_INTERNAL_OPTIONS} && length $ENV{DH_INTERNAL_OPTIONS})) {
+
+ # Single -i or -a as dh does it.
+ if ($ARGV[0] eq '-i') {
+ push(@{$dh{DOPACKAGES}}, getpackages('indep'));
+ $dh{DOINDEP} = 1;
+ } else {
+ push(@{$dh{DOPACKAGES}}, getpackages('arch'));
+ $dh{DOARCH} = 1;
+ }
+
+ if (! @{$dh{DOPACKAGES}}) {
+ if (! $dh{BLOCK_NOOP_WARNINGS}) {
+ warning("You asked that all arch in(dep) packages be built, but there are none of that type.");
+ }
+ exit(0);
+ }
+ # Clear @ARGV so we do not hit the expensive case below
+ @ARGV = ();
+ }
+
+ # Check to see if an option line starts with a dash,
+ # or DH_OPTIONS is set.
+ # If so, we need to pass this off to the resource intensive
+ # Getopt::Long, which I'd prefer to avoid loading at all if possible.
+ if ((defined $ENV{DH_OPTIONS} && length $ENV{DH_OPTIONS}) ||
+ (defined $ENV{DH_INTERNAL_OPTIONS} && length $ENV{DH_INTERNAL_OPTIONS}) ||
+ grep /^-/, @ARGV) {
+ eval { require Debian::Debhelper::Dh_Getopt; };
+ error($@) if $@;
+ Debian::Debhelper::Dh_Getopt::parseopts(%params);
+ }
+
+ # Another way to set excludes.
+ if (exists $ENV{DH_ALWAYS_EXCLUDE} && length $ENV{DH_ALWAYS_EXCLUDE}) {
+ push @{$dh{EXCLUDE}}, split(":", $ENV{DH_ALWAYS_EXCLUDE});
+ }
+
+ # Generate EXCLUDE_FIND.
+ if ($dh{EXCLUDE}) {
+ $dh{EXCLUDE_FIND}='';
+ foreach (@{$dh{EXCLUDE}}) {
+ my $x=$_;
+ $x=escape_shell($x);
+ $x=~s/\./\\\\./g;
+ $dh{EXCLUDE_FIND}.="-regex .\\*$x.\\* -or ";
+ }
+ $dh{EXCLUDE_FIND}=~s/ -or $//;
+ }
+
+ # Check to see if DH_VERBOSE environment variable was set, if so,
+ # 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 "" || get_buildoption("terse")) {
+ $dh{QUIET}=1;
+ }
+
+ # Check to see if DH_NO_ACT environment variable was set, if so,
+ # make sure no act mode is on.
+ if (defined $ENV{DH_NO_ACT} && $ENV{DH_NO_ACT} ne "") {
+ $dh{NO_ACT}=1;
+ }
+
+ # Get the name of the main binary package (first one listed in
+ # debian/control). Only if the main package was not set on the
+ # command line.
+ if (! exists $dh{MAINPACKAGE} || ! defined $dh{MAINPACKAGE}) {
+ my @allpackages=getpackages();
+ $dh{MAINPACKAGE}=$allpackages[0];
+ }
+
+ # Check if packages to build have been specified, if not, fall back to
+ # the default, building all relevant packages.
+ if (! defined $dh{DOPACKAGES} || ! @{$dh{DOPACKAGES}}) {
+ push @{$dh{DOPACKAGES}}, getpackages('both');
+ }
+
+ # Check to see if -P was specified. If so, we can only act on a single
+ # package.
+ if ($dh{TMPDIR} && $#{$dh{DOPACKAGES}} > 0) {
+ error("-P was specified, but multiple packages would be acted on (".join(",",@{$dh{DOPACKAGES}}).").");
+ }
+
+ # Figure out which package is the first one we were instructed to build.
+ # This package gets special treatement: files and directories specified on
+ # the command line may affect it.
+ $dh{FIRSTPACKAGE}=${$dh{DOPACKAGES}}[0];
+
+ # If no error handling function was specified, just propagate
+ # errors out.
+ if (! exists $dh{ERROR_HANDLER} || ! defined $dh{ERROR_HANDLER}) {
+ $dh{ERROR_HANDLER}='exit 1';
+ }
+
+ $dh{U_PARAMS} //= [];
+
+ if ($params{'inhibit_log'}) {
+ $write_log = 0;
+ } else {
+ # Only initialize if unset (i.e. avoid overriding an early call
+ # to inhibit_log()
+ $write_log //= 1;
+ }
+}
+
+# Ensure the log is written if requested but only if the command was
+# successful.
+sub END {
+ return if $? != 0 or not $write_log;
+ # If there is no 'debian/control', then we are not being run from
+ # a package directory and then the write_log will not do what we
+ # expect.
+ return if not -f 'debian/control';
+ if (compat(9, 1) || $ENV{DH_INTERNAL_OVERRIDE}) {
+ write_log($TOOL_NAME, @{$dh{DOPACKAGES}});
+ }
+}
+
+sub logfile {
+ my $package=shift;
+ my $ext=pkgext($package);
+ return "debian/${ext}debhelper.log"
+}
+
+sub load_log {
+ my ($package, $db)=@_;
+
+ my @log;
+ open(LOG, "<", logfile($package)) || return;
+ while (<LOG>) {
+ chomp;
+ my $command = $_;
+ push @log, $command;
+ $db->{$package}{$command}=1 if defined $db;
+ }
+ close LOG;
+ return @log;
+}
+
+sub write_log {
+ my $cmd=shift;
+ my @packages=@_;
+
+ return if $dh{NO_ACT};
+
+ foreach my $package (@packages) {
+ my $log = logfile($package);
+ open(LOG, ">>", $log) || error("failed to write to ${log}: $!");
+ print LOG $cmd."\n";
+ close LOG;
+ }
+}
+
+sub commit_override_log {
+ my @packages=@_;
+
+ return if $dh{NO_ACT};
+
+ foreach my $package (@packages) {
+ my @log = load_log($package);
+ my $log = logfile($package);
+ open(LOG, ">", $log) || error("failed to write to ${log}: $!");
+ print LOG $_."\n" foreach @log;
+ close LOG;
+ }
+}
+
+sub inhibit_log {
+ $write_log=0;
+}
+
+# Pass it an array containing the arguments of a shell command like would
+# be run by exec(). It turns that into a line like you might enter at the
+# shell, escaping metacharacters and quoting arguments that contain spaces.
+sub escape_shell {
+ my @args=@_;
+ my @ret;
+ foreach my $word (@args) {
+ if ($word=~/\s/) {
+ # Escape only a few things since it will be quoted.
+ # Note we use double quotes because you cannot
+ # escape ' in single quotes, while " can be escaped
+ # in double.
+ # This does make -V"foo bar" turn into "-Vfoo bar",
+ # but that will be parsed identically by the shell
+ # anyway..
+ $word=~s/([\n`\$"\\])/\\$1/g;
+ push @ret, "\"$word\"";
+ }
+ else {
+ # This list is from _Unix in a Nutshell_. (except '#')
+ $word=~s/([\s!"\$()*+#;<>?@\[\]\\`|~])/\\$1/g;
+ push @ret,$word;
+ }
+ }
+ return join(' ', @ret);
+}
+
+# Run a command, and display the command to stdout if verbose mode is on.
+# Throws error if command exits nonzero.
+#
+# All commands that modify files in $TMP should be run via this
+# function.
+#
+# Note that this cannot handle complex commands, especially anything
+# involving redirection. Use complex_doit instead.
+sub doit {
+ doit_noerror(@_) || error_exitcode(_format_cmdline(@_));
+}
+
+sub doit_noerror {
+ verbose_print(_format_cmdline(@_)) if $dh{VERBOSE};
+
+ goto \&_doit;
+}
+
+sub print_and_doit {
+ print_and_doit_noerror(@_) || error_exitcode(_format_cmdline(@_));
+}
+
+sub print_and_doit_noerror {
+ nonquiet_print(_format_cmdline(@_));
+
+ goto \&_doit;
+}
+
+sub _post_fork_setup_and_exec {
+ my ($close_stdin, $options, @cmd) = @_;
+ if (defined($options)) {
+ if (defined(my $dir = $options->{chdir})) {
+ if ($dir ne '.') {
+ chdir($dir) or error("chdir(\"${dir}\") failed: $!");
+ }
+ }
+ if ($close_stdin) {
+ open(STDIN, '<', '/dev/null') or error("redirect STDIN failed: $!");
+ }
+ if (defined(my $output = $options->{stdout})) {
+ open(STDOUT, '>', $output) or error("redirect STDOUT failed: $!");
+ }
+ if (defined(my $update_env = $options->{update_env})) {
+ while (my ($k, $v) = each(%{$update_env})) {
+ if (defined($v)) {
+ $ENV{$k} = $v;
+ } else {
+ delete($ENV{$k});
+ }
+ }
+ }
+ }
+ # Force execvp call to avoid shell. Apparently, even exec can
+ # involve a shell if you don't do this.
+ exec { $cmd[0] } @cmd or error('exec (for cmd: ' . escape_shell(@cmd) . ") failed: $!");
+}
+
+sub _doit {
+ my (@cmd) = @_;
+ my $options = ref($cmd[0]) ? shift(@cmd) : undef;
+ # In compat <= 11, we warn, in compat 12 we assume people know what they are doing.
+ if (not defined($options) and @cmd == 1 and compat(12) and $cmd[0] =~ m/[\s<&>|;]/) {
+ deprecated_functionality('doit() + doit_*() calls will no longer spawn a shell in compat 12 for single string arguments (please use complex_doit instead)',
+ 12);
+ return 1 if $dh{NO_ACT};
+ return system(@cmd) == 0;
+ }
+ return 1 if $dh{NO_ACT};
+ my $pid = fork() // error("fork(): $!");
+ if (not $pid) {
+ _post_fork_setup_and_exec(1, $options, @cmd) // error("Assertion error: sub should not return!");
+ }
+ return waitpid($pid, 0) == $pid && $? == 0;
+}
+
+sub _format_cmdline {
+ my (@cmd) = @_;
+ my $options = ref($cmd[0]) ? shift(@cmd) : {};
+ my $cmd_line = escape_shell(@cmd);
+ if (defined(my $update_env = $options->{update_env})) {
+ my $need_env = 0;
+ my @params;
+ for my $key (sort(keys(%{$update_env}))) {
+ my $value = $update_env->{$key};
+ if (defined($value)) {
+ my $quoted_key = escape_shell($key);
+ push(@params, join('=', $quoted_key, escape_shell($value)));
+ # shell does not like: "FU BAR"=1 cmd
+ # if the ENV key has weird symbols, the best bet is to use env
+ $need_env = 1 if $quoted_key ne $key;
+ } else {
+ $need_env = 1;
+ push(@params, escape_shell("--unset=${key}"));
+ }
+ }
+ unshift(@params, 'env', '--') if $need_env;
+ $cmd_line = join(' ', @params, $cmd_line);
+ }
+ if (defined(my $dir = $options->{chdir})) {
+ $cmd_line = join(' ', 'cd', escape_shell($dir), '&&', $cmd_line) if $dir ne '.';
+ }
+ if (defined(my $output = $options->{stdout})) {
+ $cmd_line .= ' > ' . escape_shell($output);
+ }
+ return $cmd_line;
+}
+
+sub qx_cmd {
+ my (@cmd) = @_;
+ my $options = ref($cmd[0]) ? shift(@cmd) : undef;
+ my ($output, @output);
+ my $pid = open(my $fd, '-|') // error('fork (for cmd: ' . escape_shell(@cmd) . ") failed: $!");
+ if ($pid == 0) {
+ _post_fork_setup_and_exec(0, $options, @cmd) // error("Assertion error: sub should not return!");
+ }
+ if (wantarray) {
+ @output = <$fd>;
+ } else {
+ local $/ = undef;
+ $output = <$fd>;
+ }
+ if (not close($fd)) {
+ error("close pipe failed: $!") if $!;
+ error_exitcode(escape_shell(@cmd));
+ }
+ return @output if wantarray;
+ return $output;
+}
+
+# Run a command and display the command to stdout if verbose mode is on.
+# Use doit() if you can, instead of this function, because this function
+# forks a shell. However, this function can handle more complicated stuff
+# like redirection.
+sub complex_doit {
+ verbose_print(join(" ",@_));
+
+ if (! $dh{NO_ACT}) {
+ # The join makes system get a scalar so it forks off a shell.
+ system(join(" ", @_)) == 0 || error_exitcode(join(" ", @_))
+ }
+}
+
+
+sub error_exitcode {
+ my $command=shift;
+ if ($? == -1) {
+ error("$command failed to execute: $!");
+ }
+ elsif ($? & 127) {
+ error("$command died with signal ".($? & 127));
+ }
+ elsif ($?) {
+ error("$command returned exit code ".($? >> 8));
+ }
+ else {
+ warning("This tool claimed that $command have failed, but it");
+ warning("appears to have returned 0.");
+ error("Probably a bug in this tool is hiding the actual problem.");
+ }
+}
+
+# Some shortcut functions for installing files and dirs to always
+# have the same owner and mode
+# install_file - installs a non-executable
+# install_prog - installs an executable
+# install_lib - installs a shared library (some systems may need x-bit, others don't)
+# install_dir - installs a directory
+{
+ my $_loaded = 0;
+ sub install_file {
+ unshift(@_, 0644);
+ goto \&_install_file_to_path;
+ }
+
+ sub install_prog {
+ unshift(@_, 0755);
+ goto \&_install_file_to_path;
+ }
+ sub install_lib {
+ unshift(@_, 0644);
+ goto \&_install_file_to_path;
+ }
+
+ sub _install_file_to_path {
+ my ($mode, $source, $dest) = @_;
+ if (not $_loaded) {
+ $_loaded++;
+ require File::Copy;
+ }
+ verbose_print(sprintf('install -p -m%04o %s', $mode, escape_shell($source, $dest)))
+ if $dh{VERBOSE};
+ return 1 if $dh{NO_ACT};
+ # "install -p -mXXXX foo bar" silently discards broken
+ # symlinks to install the file in place. File::Copy does not,
+ # so emulate it manually. (#868204)
+ if ( -l $dest and not -e $dest and not unlink($dest) and $! != ENOENT) {
+ error("unlink $dest failed: $!");
+ }
+ File::Copy::copy($source, $dest) or error("copy($source, $dest): $!");
+ chmod($mode, $dest) or error("chmod($mode, $dest): $!");
+ my (@stat) = stat($source);
+ error("stat($source): $!") if not @stat;
+ utime($stat[8], $stat[9], $dest)
+ or error(sprintf("utime(%d, %d, %s): $!", $stat[8] , $stat[9], $dest));
+ return 1;
+ }
+}
+
+
+sub _mkdirs {
+ my ($log, @dirs) = @_;
+ return if not @dirs;
+ if ($log && $dh{VERBOSE}) {
+ verbose_print(sprintf('install -m0755 -d %s', escape_shell(@dirs)));
+ }
+ return 1 if $dh{NO_ACT};
+ state $_loaded;
+ if (not $_loaded) {
+ $_loaded++;
+ require File::Path;
+ }
+ my %opts = (
+ # install -d uses 0755 (no umask), make_path uses 0777 (& umask) by default.
+ # Since we claim to run install -d, then ensure the mode is correct.
+ 'chmod' => 0755,
+ );
+ eval {
+ File::Path::make_path(@dirs, \%opts);
+ };
+ if (my $err = "$@") {
+ $err =~ s/\s+at\s+\S+\s+line\s+\d+\.?\n//;
+ error($err);
+ }
+ return;
+}
+
+sub mkdirs {
+ my @to_create = grep { not -d $_ } @_;
+ return _mkdirs(0, @to_create);
+}
+
+sub install_dir {
+ my @dirs = @_;
+ return _mkdirs(1, @dirs);
+}
+
+sub rename_path {
+ my ($source, $dest) = @_;
+
+ if ($dh{VERBOSE}) {
+ my $files = escape_shell($source, $dest);
+ verbose_print("mv $files");
+ }
+ return 1 if $dh{NO_ACT};
+ if (not rename($source, $dest)) {
+ my $ok = 0;
+ if ($! == EXDEV) {
+ # Replay with a fork+exec to handle crossing two mount
+ # points (See #897569)
+ $ok = _doit('mv', $source, $dest);
+ }
+ if (not $ok) {
+ my $files = escape_shell($source, $dest);
+ error("mv $files: $!");
+ }
+ }
+ return 1;
+}
+
+sub reset_perm_and_owner {
+ my ($mode, @paths) = @_;
+ my $_mode;
+ my $use_root = should_use_root();
+ # Dark goat blood to tell 0755 from "0755"
+ if (length( do { no warnings "numeric"; $mode & "" } ) ) {
+ # 0755, leave it alone.
+ $_mode = $mode;
+ } else {
+ # "0755" -> convert to 0755
+ $_mode = oct($mode);
+ }
+ if ($dh{VERBOSE}) {
+ verbose_print(sprintf('chmod %#o -- %s', $_mode, escape_shell(@paths)));
+ verbose_print(sprintf('chown 0:0 -- %s', escape_shell(@paths))) if $use_root;
+ }
+ return if $dh{NO_ACT};
+ for my $path (@paths) {
+ chmod($_mode, $path) or error(sprintf('chmod(%#o, %s): %s', $mode, $path, $!));
+ if ($use_root) {
+ chown(0, 0, $path) or error("chown(0, 0, $path): $!");
+ }
+ }
+}
+
+# Run a command that may have a huge number of arguments, like xargs does.
+# Pass in a reference to an array containing the arguments, and then other
+# parameters that are the command and any parameters that should be passed to
+# it each time.
+sub xargs {
+ my ($args, @static_args) = @_;
+
+ # The kernel can accept command lines up to 20k worth of characters.
+ my $command_max=20000; # LINUX SPECIFIC!!
+ # (And obsolete; it's bigger now.)
+ # I could use POSIX::ARG_MAX, but that would be slow.
+
+ # Figure out length of static portion of command.
+ my $static_length=0;
+ my $subst_index = -1;
+ for my $i (0..$#static_args) {
+ my $arg = $static_args[$i];
+ if ($arg eq XARGS_INSERT_PARAMS_HERE) {
+ error("Only one insertion place supported in xargs, got command: @static_args") if $subst_index > -1;
+ $subst_index = $i;
+ next;
+ }
+ $static_length+=length($arg)+1;
+ }
+
+ my @collect=();
+ my $length=$static_length;
+ foreach (@$args) {
+ if (length($_) + 1 + $static_length > $command_max) {
+ error("This command is greater than the maximum command size allowed by the kernel, and cannot be split up further. What on earth are you doing? \"@_ $_\"");
+ }
+ $length+=length($_) + 1;
+ if ($length < $command_max) {
+ push @collect, $_;
+ }
+ else {
+ if ($#collect > -1) {
+ if ($subst_index < 0) {
+ doit(@static_args, @collect);
+ } else {
+ my @cmd = @static_args;
+ splice(@cmd, $subst_index, 1, @collect);
+ doit(@cmd);
+ }
+ }
+ @collect=($_);
+ $length=$static_length + length($_) + 1;
+ }
+ }
+ if ($#collect > -1) {
+ if ($subst_index < 0) {
+ doit(@static_args, @collect);
+ } else {
+ my @cmd = @static_args;
+ splice(@cmd, $subst_index, 1, @collect);
+ doit(@cmd);
+ }
+ }
+}
+
+# Print something if the verbose flag is on.
+sub verbose_print {
+ my $message=shift;
+
+ if ($dh{VERBOSE}) {
+ print "\t$message\n";
+ }
+}
+
+# Print something unless the quiet flag is on
+sub nonquiet_print {
+ my $message=shift;
+
+ if (!$dh{QUIET}) {
+ if (defined($message)) {
+ print "\t$message\n";
+ } else {
+ print "\n";
+ }
+ }
+}
+
+sub _color {
+ my ($msg, $color) = @_;
+ state $_use_color;
+ if (not defined($_use_color)) {
+ # This part is basically Dpkg::ErrorHandling::setup_color over again
+ # with some tweaks.
+ # (but the module uses Dpkg + Dpkg::Gettext, so it is very expensive
+ # to load)
+ my $mode = $ENV{'DH_COLORS'} // $ENV{'DPKG_COLORS'};
+ # Support NO_COLOR (https://no-color.org/)
+ $mode //= exists($ENV{'NO_COLOR'}) ? 'never' : 'auto';
+
+ if ($mode eq 'auto') {
+ $_use_color = 1 if -t *STDOUT or -t *STDERR;
+ } elsif ($mode eq 'always') {
+ $_use_color = 1;
+ } else {
+ $_use_color = 0;
+ }
+
+ eval {
+ require Term::ANSIColor if $_use_color;
+ };
+ if ($@) {
+ # In case of errors, skip colors.
+ $_use_color = 0;
+ }
+ }
+ if ($_use_color) {
+ local $ENV{'NO_COLOR'} = undef;
+ $msg = Term::ANSIColor::colored($msg, $color);
+ }
+ return $msg;
+}
+
+# Output an error message and die (can be caught).
+sub error {
+ my ($message) = @_;
+ # ensure the error code is well defined.
+ $! = 255;
+ die(_color($TOOL_NAME, 'bold') . ': ' . _color('error', 'bold red') . ": $message\n");
+}
+
+# Output a warning.
+sub warning {
+ my ($message) = @_;
+ $message //= '';
+
+ print STDERR _color($TOOL_NAME, 'bold') . ': ' . _color('warning', 'bold yellow') . ": $message\n";
+}
+
+# Returns the basename of the argument passed to it.
+sub basename {
+ my $fn=shift;
+
+ $fn=~s/\/$//g; # ignore trailing slashes
+ $fn=~s:^.*/(.*?)$:$1:;
+ return $fn;
+}
+
+# Returns the directory name of the argument passed to it.
+sub dirname {
+ my $fn=shift;
+
+ $fn=~s/\/$//g; # ignore trailing slashes
+ $fn=~s:^(.*)/.*?$:$1:;
+ return $fn;
+}
+
+# Pass in a number, will return true iff the current compatibility level
+# is less than or equal to that number.
+my $compat_from_bd;
+{
+ my $check_pending_removals = get_buildoption('dherroron', '') eq 'obsolete-compat-levels' ? 1 : 0;
+ my $warned_compat = $ENV{DH_INTERNAL_TESTSUITE_SILENT_WARNINGS} ? 1 : 0;
+ my $declared_compat;
+ my $delared_compat_source;
+ my $c;
+
+ # Used mainly for testing
+ sub resetcompat {
+ undef $c;
+ undef $compat_from_bd;
+ }
+
+ sub _load_compat_info {
+ my ($nowarn) = @_;
+
+ getpackages() if not defined($compat_from_bd);
+
+ $c=1;
+ if (-e 'debian/compat') {
+ open(my $compat_in, '<', "debian/compat") || error "debian/compat: $!";
+ my $l=<$compat_in>;
+ close($compat_in);
+ if (! defined $l || ! length $l) {
+ error("debian/compat must contain a positive number (found an empty first line)");
+
+ }
+ else {
+ chomp $l;
+ my $new_compat = $l;
+ $new_compat =~ s/^\s*+//;
+ $new_compat =~ s/\s*+$//;
+ if ($new_compat !~ m/^\d+$/) {
+ error("debian/compat must contain a positive number (found: \"${new_compat}\")");
+ }
+ if (defined($compat_from_bd) and $compat_from_bd != -1) {
+ 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;
+ }
+ $delared_compat_source = 'debian/compat';
+ } elsif ($compat_from_bd != -1) {
+ $c = $compat_from_bd;
+ $delared_compat_source = "Build-Depends: debhelper-compat (= $c)";
+ } elsif (not $nowarn) {
+ error("Please specify the compatibility level in debian/compat or via Build-Depends: debhelper-compat (= X)");
+ }
+
+ $declared_compat = int($c);
+
+ if (defined $ENV{DH_COMPAT}) {
+ my $override = $ENV{DH_COMPAT};
+ error("The environment variable DH_COMPAT must be a positive integer")
+ if $override ne q{} and $override !~ m/^\d+$/;
+ $c=int($ENV{DH_COMPAT}) if $override ne q{};
+ }
+ }
+
+ sub get_compat_info {
+ if (not $c) {
+ _load_compat_info(1);
+ }
+ return ($c, $declared_compat, $delared_compat_source);
+ }
+
+ sub compat {
+ my ($num, $nowarn) = @_;
+
+ if (not $c) {
+ _load_compat_info($nowarn);
+ }
+
+ if (not $nowarn) {
+ if ($c < MIN_COMPAT_LEVEL) {
+ error("Compatibility levels before ${\MIN_COMPAT_LEVEL} are no longer supported (level $c requested)");
+ }
+
+ if ($check_pending_removals and $c < MIN_COMPAT_LEVEL_NOT_SCHEDULED_FOR_REMOVAL) {
+ my $v = MIN_COMPAT_LEVEL_NOT_SCHEDULED_FOR_REMOVAL;
+ error("Compatibility levels before ${v} are scheduled for removal and DH_COMPAT_ERROR_ON_PENDING_REMOVAL was set (level $c requested)");
+ }
+
+ if ($c < LOWEST_NON_DEPRECATED_COMPAT_LEVEL && ! $warned_compat) {
+ warning("Compatibility levels before ${\LOWEST_NON_DEPRECATED_COMPAT_LEVEL} are deprecated (level $c in use)");
+ $warned_compat=1;
+ }
+
+ if ($c > MAX_COMPAT_LEVEL) {
+ error("Sorry, but ${\MAX_COMPAT_LEVEL} is the highest compatibility level supported by this debhelper.");
+ }
+ }
+
+ return ($c <= $num);
+ }
+}
+
+# Pass it a name of a binary package, it returns the name of the tmp dir to
+# use, for that package.
+sub tmpdir {
+ my $package=shift;
+
+ if ($dh{TMPDIR}) {
+ return $dh{TMPDIR};
+ }
+ else {
+ return "debian/$package";
+ }
+}
+
+# Pass it a name of a binary package, it returns the name of the staging dir to
+# use, for that package. (Usually debian/tmp)
+sub default_sourcedir {
+ my ($package) = @_;
+
+ return 'debian/tmp';
+}
+
+# Pass this the name of a binary package, and the name of the file wanted
+# for the package, and it will return the actual existing filename to use.
+#
+# It tries several filenames:
+# * debian/package.filename.hostarch
+# * debian/package.filename.hostos
+# * debian/package.filename
+# * debian/filename (if the package is the main package)
+# If --name was specified then the files
+# must have the name after the package name:
+# * debian/package.name.filename.hostarch
+# * debian/package.name.filename.hostos
+# * debian/package.name.filename
+# * debian/name.filename (if the package is the main package)
+
+{
+ my %_check_expensive;
+
+ sub pkgfile {
+ my ($package, $filename) = @_;
+ my (@try, $check_expensive);
+
+ if (not exists($_check_expensive{$filename})) {
+ my @f = grep {
+ !/\.debhelper$/
+ } bsd_glob("debian/*.$filename.*", GLOB_CSH & ~(GLOB_NOMAGIC|GLOB_TILDE));
+ if (not @f) {
+ $check_expensive = 0;
+ } else {
+ $check_expensive = 1;
+ }
+ $_check_expensive{$filename} = $check_expensive;
+ } else {
+ $check_expensive = $_check_expensive{$filename};
+ }
+
+ # Rewrite $filename after the check_expensive globbing above
+ # as $dh{NAME} is used as a prefix (so the glob above will
+ # cover it).
+ #
+ # In practise, it should not matter as NAME is ether set
+ # globally or not. But if someone is being "clever" then the
+ # cache is reusable and for the general/normal case, it has no
+ # adverse effects.
+ if (defined $dh{NAME}) {
+ $filename="$dh{NAME}.$filename";
+ }
+
+ if (ref($package) eq 'ARRAY') {
+ # !!NOT A PART OF THE PUBLIC API!!
+ # Bulk test used by dh to speed up the can_skip check. It
+ # is NOT useful for finding the most precise pkgfile.
+ push(@try, "debian/$filename");
+ for my $pkg (@{$package}) {
+ push(@try, "debian/${pkg}.${filename}");
+ if ($check_expensive) {
+ my $cross_type = uc(package_cross_type($pkg));
+ push(@try,
+ "debian/${pkg}.${filename}.".dpkg_architecture_value("DEB_${cross_type}_ARCH"),
+ "debian/${pkg}.${filename}.".dpkg_architecture_value("DEB_${cross_type}_ARCH_OS"),
+ );
+ }
+ }
+ } else {
+ # Avoid checking for hostarch+hostos unless we have reason
+ # to believe that they exist.
+ if ($check_expensive) {
+ my $cross_type = uc(package_cross_type($package));
+ push(@try,
+ "debian/${package}.${filename}.".dpkg_architecture_value("DEB_${cross_type}_ARCH"),
+ "debian/${package}.${filename}.".dpkg_architecture_value("DEB_${cross_type}_ARCH_OS"),
+ );
+ }
+ push(@try, "debian/$package.$filename");
+ if ($package eq $dh{MAINPACKAGE}) {
+ push @try, "debian/$filename";
+ }
+ }
+ foreach my $file (@try) {
+ return $file if -f $file;
+ }
+
+ return "";
+ }
+
+ # Used by dh to ditch some caches that makes assumptions about
+ # dh_-tools can do, which does not hold for override targets.
+ sub dh_clear_unsafe_cache {
+ %_check_expensive = ();
+ }
+}
+
+# Pass it a name of a binary package, it returns the name to prefix to files
+# in debian/ for this package.
+sub pkgext {
+ my ($package) = @_;
+ return "$package.";
+}
+
+# Pass it the name of a binary package, it returns the name to install
+# files by in eg, etc. Normally this is the same, but --name can override
+# it.
+sub pkgfilename {
+ my $package=shift;
+
+ if (defined $dh{NAME}) {
+ return $dh{NAME};
+ }
+ return $package;
+}
+
+# Returns 1 if the package is a native debian package, null otherwise.
+# As a side effect, sets $dh{VERSION} to the version of this package.
+sub isnative {
+ my ($package) = @_;
+ my $cache_key = $package;
+
+ state (%isnative_cache, %pkg_version);
+
+ 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");
+ if (! $isnative_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,
+ );
+ if (not defined($res)) {
+ error("No changelog entries for $package!? (changelog file: ${isnative_changelog})");
+ }
+ my $version = $res->{'Version'};
+ # Do we have a valid version?
+ if (not defined($version) or not $version->is_valid) {
+ error("changelog parse failure; invalid or missing version");
+ }
+ # 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{$cache_key} = 0;
+ } else {
+ return $isnative_cache{$cache_key} = 1;
+ }
+}
+
+sub _tool_version {
+ return $DH_TOOL_VERSION if defined($DH_TOOL_VERSION);
+ if (defined($main::VERSION)) {
+ $DH_TOOL_VERSION = $main::VERSION;
+ }
+ if (defined($DH_TOOL_VERSION) and $DH_TOOL_VERSION eq DH_BUILTIN_VERSION) {
+ my $version = "UNRELEASED-${\MAX_COMPAT_LEVEL}";
+ eval {
+ require Debian::Debhelper::Dh_Version;
+ $version = $Debian::Debhelper::Dh_Version::version;
+ };
+ $DH_TOOL_VERSION = $version;
+ } else {
+ $DH_TOOL_VERSION //= 'UNDECLARED';
+ }
+ return $DH_TOOL_VERSION;
+}
+
+# Automatically add a shell script snippet to a debian script.
+# Only works if the script has #DEBHELPER# in it.
+#
+# Parameters:
+# 1: package
+# 2: script to add to
+# 3: filename of snippet
+# 4: either text: shell-quoted sed to run on the snippet. Ie, 's/#PACKAGE#/$PACKAGE/'
+# or a sub to run on each line of the snippet. Ie sub { s/#PACKAGE#/$PACKAGE/ }
+# or a hashref with keys being variables and values being their replacement. Ie. { PACKAGE => $PACKAGE }
+# 5: Internal usage only
+sub autoscript {
+ my ($package, $script, $filename, $sed, $extra_options) = @_;
+
+ my $tool_version = _tool_version();
+ # This is the file we will modify.
+ my $outfile="debian/".pkgext($package)."$script.debhelper";
+ if ($extra_options && exists($extra_options->{'snippet-order'})) {
+ my $order = $extra_options->{'snippet-order'};
+ error("Internal error - snippet order set to unknown value: \"${order}\"")
+ if $order ne 'service';
+ $outfile = generated_file($package, "${script}.${order}");
+ }
+
+ # Figure out what shell script snippet to use.
+ my $infile;
+ if (defined($ENV{DH_AUTOSCRIPTDIR}) &&
+ -e "$ENV{DH_AUTOSCRIPTDIR}/$filename") {
+ $infile="$ENV{DH_AUTOSCRIPTDIR}/$filename";
+ }
+ else {
+ for my $dir (@DATA_INC_PATH) {
+ my $path = "${dir}/autoscripts/${filename}";
+ if (-e $path) {
+ $infile = $path;
+ last;
+ }
+ }
+ if (not defined($infile)) {
+ my @dirs = map { "$_/autoscripts" } @DATA_INC_PATH;
+ unshift(@dirs, $ENV{DH_AUTOSCRIPTDIR}) if exists($ENV{DH_AUTOSCRIPTDIR});
+ error("Could not find autoscript $filename (search path: " . join(':', @dirs) . ')');
+ }
+ }
+
+ if (-e $outfile && ($script eq 'postrm' || $script eq 'prerm')) {
+ # Add fragments to top so they run in reverse order when removing.
+ if (not defined($sed) or ref($sed)) {
+ verbose_print("[META] Prepend autosnippet \"$filename\" to $script [${outfile}.new]");
+ if (not $dh{NO_ACT}) {
+ open(my $out_fd, '>', "${outfile}.new") or error("open(${outfile}.new): $!");
+ print {$out_fd} '# Automatically added by ' . $TOOL_NAME . "/${tool_version}\n";
+ autoscript_sed($sed, $infile, undef, $out_fd);
+ print {$out_fd} "# End automatically added section\n";
+ open(my $in_fd, '<', $outfile) or error("open($outfile): $!");
+ while (my $line = <$in_fd>) {
+ print {$out_fd} $line;
+ }
+ close($in_fd);
+ close($out_fd) or error("close(${outfile}.new): $!");
+ }
+ } else {
+ complex_doit("echo \"# Automatically added by ".$TOOL_NAME."/${tool_version}\"> $outfile.new");
+ autoscript_sed($sed, $infile, "$outfile.new");
+ complex_doit("echo '# End automatically added section' >> $outfile.new");
+ complex_doit("cat $outfile >> $outfile.new");
+ }
+ rename_path("${outfile}.new", $outfile);
+ } elsif (not defined($sed) or ref($sed)) {
+ verbose_print("[META] Append autosnippet \"$filename\" to $script [${outfile}]");
+ if (not $dh{NO_ACT}) {
+ open(my $out_fd, '>>', $outfile) or error("open(${outfile}): $!");
+ print {$out_fd} '# Automatically added by ' . $TOOL_NAME . "/${tool_version}\n";
+ autoscript_sed($sed, $infile, undef, $out_fd);
+ print {$out_fd} "# End automatically added section\n";
+ close($out_fd) or error("close(${outfile}): $!");
+ }
+ } else {
+ complex_doit("echo \"# Automatically added by ".$TOOL_NAME."/${tool_version}\">> $outfile");
+ autoscript_sed($sed, $infile, $outfile);
+ complex_doit("echo '# End automatically added section' >> $outfile");
+ }
+}
+
+sub autoscript_sed {
+ my ($sed, $infile, $outfile, $out_fd) = @_;
+ if (not defined($sed) or ref($sed)) {
+ my $out = $out_fd;
+ open(my $in, '<', $infile) or error("open $infile failed: $!");
+ if (not defined($out_fd)) {
+ open($out, '>>', $outfile) or error("open($outfile): $!");
+ }
+ if (not defined($sed) or ref($sed) eq 'CODE') {
+ while (<$in>) { $sed->() if $sed; print {$out} $_; }
+ } else {
+ my $rstr = sprintf('#(%s)#', join('|', reverse(sort(keys(%$sed)))));
+ my $regex = qr/$rstr/;
+ while (my $line = <$in>) {
+ $line =~ s/$regex/$sed->{$1}/eg;
+ print {$out} $line;
+ }
+ }
+ if (not defined($out_fd)) {
+ close($out) or error("close $outfile failed: $!");
+ }
+ close($in) or error("close $infile failed: $!");
+ }
+ else {
+ error("Internal error - passed open handle for legacy method") if defined($out_fd);
+ complex_doit("sed \"$sed\" $infile >> $outfile");
+ }
+}
+
+# Adds a trigger to the package
+{
+ my %VALID_TRIGGER_TYPES = map { $_ => 1 } qw(
+ interest interest-await interest-noawait
+ activate activate-await activate-noawait
+ );
+
+ sub autotrigger {
+ my ($package, $trigger_type, $trigger_target) = @_;
+ my ($triggers_file, $ifd, $tool_version);
+
+ if (not exists($VALID_TRIGGER_TYPES{$trigger_type})) {
+ require Carp;
+ Carp::confess("Invalid/unknown trigger ${trigger_type}");
+ }
+ return if $dh{NO_ACT};
+
+ $tool_version = _tool_version();
+ $triggers_file = generated_file($package, 'triggers');
+ if ( -f $triggers_file ) {
+ open($ifd, '<', $triggers_file)
+ or error("open $triggers_file failed $!");
+ } else {
+ open($ifd, '<', '/dev/null')
+ or error("open /dev/null failed $!");
+ }
+ open(my $ofd, '>', "${triggers_file}.new")
+ or error("open ${triggers_file}.new failed: $!");
+ while (my $line = <$ifd>) {
+ next if $line =~ m{\A \Q${trigger_type}\E \s+
+ \Q${trigger_target}\E (?:\s|\Z)
+ }x;
+ print {$ofd} $line;
+ }
+ print {$ofd} '# Triggers added by ' . $TOOL_NAME . "/${tool_version}\n";
+ print {$ofd} "${trigger_type} ${trigger_target}\n";
+ close($ofd) or error("closing ${triggers_file}.new failed: $!");
+ close($ifd);
+ rename_path("${triggers_file}.new", $triggers_file);
+ }
+}
+
+# Generated files are cleaned by dh_clean AND dh_prep
+# - Package can be set to "_source" to generate a file relevant
+# for the source package (the meson build does this atm.).
+# Files for "_source" are only cleaned by dh_clean.
+sub generated_file {
+ my ($package, $filename, $mkdirs) = @_;
+ my $dir = "debian/.debhelper/generated/${package}";
+ my $path = "${dir}/${filename}";
+ $mkdirs //= 1;
+ mkdirs($dir) if $mkdirs;
+ return $path;
+}
+
+sub _update_substvar {
+ my ($substvar_file, $update_logic, $insert_logic) = @_;
+ my @lines;
+ my $changed = 0;
+ if ( -f $substvar_file) {
+ open(my $in, '<', $substvar_file) // error("open($substvar_file): $!");
+ while (my $line = <$in>) {
+ chomp($line);
+ my $orig_value = $line;
+ my $updated_value = $update_logic->($line);
+ $changed ||= !defined($updated_value) || $orig_value ne $updated_value;
+ push(@lines, $updated_value) if defined($updated_value);
+ }
+ close($in);
+ }
+ my $len = scalar(@lines);
+ push(@lines, $insert_logic->()) if $insert_logic;
+ $changed ||= $len != scalar(@lines);
+ if ($changed && !$dh{NO_ACT}) {
+ open(my $out, '>', "${substvar_file}.new") // error("open(${substvar_file}.new, \"w\"): $!");
+ for my $line (@lines) {
+ print {$out} "$line\n";
+ }
+ close($out) // error("close(${substvar_file}.new): $!");
+ rename_path("${substvar_file}.new", $substvar_file);
+ }
+ return;
+}
+
+# Removes a whole substvar line.
+sub delsubstvar {
+ my ($package, $substvar) = @_;
+ my $ext = pkgext($package);
+ my $substvarfile = "debian/${ext}substvars";
+
+ return _update_substvar($substvarfile, sub {
+ my ($line) = @_;
+ return $line if $line !~ m/^\Q${substvar}\E[?]?=/;
+ return;
+ });
+}
+
+# Adds a dependency on some package to the specified
+# substvar in a package's substvar's file.
+sub addsubstvar {
+ my ($package, $substvar, $deppackage, $verinfo, $remove) = @_;
+ my ($present);
+ my $ext = pkgext($package);
+ my $substvarfile = "debian/${ext}substvars";
+ my $str = $deppackage;
+ $str .= " ($verinfo)" if defined $verinfo && length $verinfo;
+
+ if (not defined($deppackage) and not $remove) {
+ error("Bug in helper: Must provide a value for addsubstvar (or set the remove flag, but then use delsubstvar instead)")
+ }
+
+ if (defined($str) and $str =~ m/[\n]/) {
+ $str =~ s/\n/\\n/g;
+ # Per #1026014
+ warning('Unescaped newlines in the value of a substvars can cause broken substvars files (see #1025714).');
+ warning("Hint: If you really need a newline character, provide it as \"\${Newline}\".");
+ error("Bug in helper: The substvar must not contain a raw newline character (${substvar}=${str})");
+ }
+
+ my $update_logic = sub {
+ my ($line) = @_;
+ return $line if $line !~ m/^\Q${substvar}\E([?]?=)(.*)/;
+ my $assignment_type = $1;
+ my %items = map { $_ => 1 } split(", ", $2);
+ $present = 1;
+ if ($remove) {
+ # Unchanged; we can avoid rewriting the file.
+ return $line if not exists($items{$str});
+ delete($items{$str});
+ my $replacement = join(", ", sort(keys(%items)));
+ return "${substvar}${assignment_type}${replacement}" if $replacement ne '';
+ return;
+ }
+ # Unchanged; we can avoid rewriting the file.
+ return $line if %items and exists($items{$str});
+
+ $items{$str} = 1;
+ return "${substvar}${assignment_type}" . join(", ", sort(keys(%items)));
+ };
+ my $insert_logic = sub {
+ return ("${substvar}=${str}") if not $present and not $remove;
+ return;
+ };
+ return _update_substvar($substvarfile, $update_logic, $insert_logic);
+}
+
+sub _glob_expand_error_default_msg {
+ my ($pattern, $dir_ref) = @_;
+ my $dir_list = join(', ', map { escape_shell($_) } @{$dir_ref});
+ return "Cannot find (any matches for) \"${pattern}\" (tried in $dir_list)";
+}
+
+sub glob_expand_error_handler_reject {
+ my $msg = _glob_expand_error_default_msg(@_);
+ error("$msg\n");
+ return;
+}
+
+sub glob_expand_error_handler_warn_and_discard {
+ my $msg = _glob_expand_error_default_msg(@_);
+ warning("$msg\n");
+ return;
+}
+
+# Emulates the "old" glob mechanism; not recommended for new code as
+# it permits some globs expand to nothing with only a warning.
+sub glob_expand_error_handler_reject_nomagic_warn_discard {
+ my ($pattern, $dir_ref) = @_;
+ for my $dir (@{$dir_ref}) {
+ my $full_pattern = "$dir/$pattern";
+ my @matches = bsd_glob($full_pattern, GLOB_CSH & ~(GLOB_TILDE));
+ if (@matches) {
+ goto \&glob_expand_error_handler_reject;
+ }
+ }
+ goto \&glob_expand_error_handler_warn_and_discard;
+}
+
+sub glob_expand_error_handler_silently_ignore {
+ return;
+}
+
+sub glob_expand {
+ my ($dir_ref, $error_handler, @patterns) = @_;
+ my @dirs = @{$dir_ref};
+ my @result;
+ for my $pattern (@patterns) {
+ my @m;
+ for my $dir (@dirs) {
+ my $full_pattern = "$dir/$pattern";
+ @m = bsd_glob($full_pattern, GLOB_CSH & ~(GLOB_NOMAGIC|GLOB_TILDE));
+ last if @m;
+ # Handle "foo{bar}" pattern (#888251)
+ if (-l $full_pattern or -e _) {
+ push(@m, $full_pattern);
+ last;
+ }
+ }
+ if (not @m) {
+ $error_handler //= \&glob_expand_error_handler_reject;
+ $error_handler->($pattern, $dir_ref);
+ }
+ push(@result, @m);
+ }
+ return @result;
+}
+
+
+my %BUILT_IN_SUBST = (
+ 'Space' => ' ',
+ 'Dollar' => '$',
+ 'Newline' => "\n",
+ 'Tab' => "\t",
+);
+
+sub _variable_substitution {
+ my ($text, $loc) = @_;
+ return $text if index($text, '$') < 0;
+ my $pos = -1;
+ my $subst_count = 0;
+ my $expansion_count = 0;
+ my $current_size = length($text);
+ my $expansion_size_limit = _VAR_SUBST_EXPANSION_DYNAMIC_EXPANSION_FACTOR_LIMIT * $current_size;
+ $expansion_size_limit = _VAR_SUBST_EXPANSION_MIN_SUPPORTED_SIZE_LIMIT
+ if $expansion_size_limit < _VAR_SUBST_EXPANSION_MIN_SUPPORTED_SIZE_LIMIT;
+ 1 while ($text =~ s<
+ \$\{([A-Za-z0-9][-_:0-9A-Za-z]*)\} # Match ${something} and replace it
+ >[
+ my $match = $1;
+ my $new_pos = pos()//-1;
+ my $value;
+
+ if ($pos == $new_pos) {
+ # Safe-guard in case we ever implement recursive expansion
+ error("Error substituting in ${loc} (at position $pos); recursion limit while expanding \${${match}}")
+ if (++$subst_count >= _VAR_SUBST_SAME_POSITION_RECURSION_LIMIT);
+ } else {
+ $subst_count = 0;
+ $pos = $new_pos;
+ if (++$expansion_count >= _VAR_SUBST_EXPANSION_COUNT_LIMIT) {
+ error("Error substituting in ${loc}; substitution limit of ${expansion_count} reached");
+ }
+ }
+ if (exists($BUILT_IN_SUBST{$match})) {
+ $value = $BUILT_IN_SUBST{$match};
+ } elsif ($match =~ m/^DEB_(?:BUILD|HOST|TARGET)_/) {
+ $value = dpkg_architecture_value($match) //
+ error(qq{Cannot expand "\${${match}}" in ${loc} as it is not a known dpkg-architecture value});
+ } elsif ($match =~ m/^env:(.+)/) {
+ my $env_var = $1;
+ $value = $ENV{$env_var} //
+ error(qq{Cannot expand "\${${match}}" in ${loc} as the ENV variable "${env_var}" is unset});
+ }
+ error(qq{Cannot resolve variable "\${$match}" in ${loc}})
+ if not defined($value);
+ # We do not support recursive expansion.
+ $value =~ s/\$/\$\{\}/;
+ $current_size += length($value) - length($match) - 3;
+ if ($current_size > $expansion_size_limit) {
+ error("Refusing to expand \${${match}} in ${loc} - the original input seems to grow beyond reasonable'
+ . ' limits!");
+ }
+ $value;
+ ]gex);
+ $text =~ s/\$\{\}/\$/g;
+
+ return $text;
+}
+
+# Reads in the specified file, one line at a time. splits on words,
+# and returns an array of arrays of the contents.
+# If a value is passed in as the second parameter, then glob
+# expansion is done in the directory specified by the parameter ("." is
+# frequently a good choice).
+# In compat 13+, it will do variable expansion (after splitting the lines
+# into words)
+sub filedoublearray {
+ my ($file, $globdir, $error_handler) = @_;
+
+ # executable config files are a v9 thing.
+ my $x=! compat(8) && -x $file;
+ my $expand_patterns = compat(12) ? 0 : 1;
+ my $source;
+ if ($x) {
+ require Cwd;
+ my $cmd=Cwd::abs_path($file);
+ $ENV{"DH_CONFIG_ACT_ON_PACKAGES"} = join(",", @{$dh{"DOPACKAGES"}});
+ open(DH_FARRAY_IN, '-|', $cmd) || error("cannot run $file: $!");
+ delete $ENV{"DH_CONFIG_ACT_ON_PACKAGES"};
+ $source = "output of ./${file}";
+ }
+ else {
+ open (DH_FARRAY_IN, '<', $file) || error("cannot read $file: $!");
+ $source = $file;
+ }
+
+ my @ret;
+ while (<DH_FARRAY_IN>) {
+ chomp;
+ 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;
+ my $source_ref = "${source} (line $.)";
+
+ if (defined($globdir) && ! $x) {
+ if (ref($globdir)) {
+ my @patterns = split;
+ if ($expand_patterns) {
+ @patterns = map {_variable_substitution($_, $source_ref)} @patterns;
+ }
+ push(@line, glob_expand($globdir, $error_handler, @patterns));
+ } else {
+ # Legacy call - Silently discards globs that match nothing.
+ #
+ # The tricky bit is that the glob expansion is done
+ # as if we were in the specified directory, so the
+ # filenames that come out are relative to it.
+ foreach (map { glob "$globdir/$_" } split) {
+ s#^$globdir/##;
+ if ($expand_patterns) {
+ $_ = _variable_substitution($_, $source_ref);
+ }
+ push @line, $_;
+ }
+ }
+ }
+ else {
+ @line = split;
+ if ($expand_patterns) {
+ @line = map {_variable_substitution($_, $source_ref)} @line;
+ }
+ }
+ push @ret, [@line];
+ }
+
+ if (!close(DH_FARRAY_IN)) {
+ if ($x) {
+ _executable_dh_config_file_failed($file, $!, $?);
+ } else {
+ error("problem reading $file: $!");
+ }
+ }
+
+ return @ret;
+}
+
+# Reads in the specified file, one word at a time, and returns an array of
+# the result. Can do globbing as does filedoublearray.
+sub filearray {
+ return map { @$_ } filedoublearray(@_);
+}
+
+# Passed a filename, returns true if -X says that file should be excluded.
+sub excludefile {
+ my $filename = shift;
+ foreach my $f (@{$dh{EXCLUDE}}) {
+ return 1 if $filename =~ /\Q$f\E/;
+ }
+ return 0;
+}
+
+sub dpkg_architecture_value {
+ my $var = shift;
+ state %dpkg_arch_output;
+ if (exists($ENV{$var})) {
+ my $value = $ENV{$var};
+ return $value if $value ne q{};
+ warning("ENV[$var] is set to the empty string. It has been ignored to avoid bugs like #862842");
+ delete($ENV{$var});
+ }
+ if (! exists($dpkg_arch_output{$var})) {
+ # Return here if we already consulted dpkg-architecture
+ # (saves a fork+exec on unknown variables)
+ return if %dpkg_arch_output;
+
+ open(my $fd, '-|', 'dpkg-architecture')
+ or error("dpkg-architecture failed");
+ while (my $line = <$fd>) {
+ chomp($line);
+ my ($k, $v) = split(/=/, $line, 2);
+ $dpkg_arch_output{$k} = $v;
+ }
+ close($fd);
+ }
+ return $dpkg_arch_output{$var};
+}
+
+# Confusing name for hostarch
+sub buildarch {
+ deprecated_functionality('buildarch() is deprecated and replaced by hostarch()', 12);
+ goto \&hostarch;
+}
+
+# Returns the architecture that will run binaries produced (DEB_HOST_ARCH)
+sub hostarch {
+ dpkg_architecture_value('DEB_HOST_ARCH');
+}
+
+# Returns a truth value if this seems to be a cross-compile
+sub is_cross_compiling {
+ return dpkg_architecture_value("DEB_BUILD_GNU_TYPE")
+ ne dpkg_architecture_value("DEB_HOST_GNU_TYPE");
+}
+
+# Passed an arch and a space-separated list of arches to match against, returns true if matched
+sub samearch {
+ my $arch=shift;
+ my @archlist=split(/\s+/,shift);
+ state %knownsame;
+
+ foreach my $a (@archlist) {
+ if (exists $knownsame{$arch}{$a}) {
+ return 1 if $knownsame{$arch}{$a};
+ next;
+ }
+
+ require Dpkg::Arch;
+ if (Dpkg::Arch::debarch_is($arch, $a)) {
+ return $knownsame{$arch}{$a}=1;
+ }
+ else {
+ $knownsame{$arch}{$a}=0;
+ }
+ }
+
+ return 0;
+}
+
+
+# Returns a list of packages in the control file.
+# Pass "arch" or "indep" to specify arch-dependent (that will be built
+# for the system's arch) or independent. If nothing is specified,
+# returns all packages. Also, "both" returns the union of "arch" and "indep"
+# packages.
+#
+# As a side effect, populates %package_arches and %package_types
+# with the types of all packages (not only those returned).
+my (%package_types, %package_arches, %package_multiarches, %packages_by_type,
+ %package_sections, $sourcepackage, %package_cross_type, %dh_bd_sequences);
+
+# Resets the arrays; used mostly for testing
+sub resetpackages {
+ undef $sourcepackage;
+ %package_types = %package_arches = %package_multiarches =
+ %packages_by_type = %package_sections = %package_cross_type = ();
+ %dh_bd_sequences = ();
+}
+
+# Returns source package name
+sub sourcepackage {
+ getpackages() if not defined($sourcepackage);
+ return $sourcepackage;
+}
+
+sub getpackages {
+ my ($type) = @_;
+ error("getpackages: First argument must be one of \"arch\", \"indep\", or \"both\"")
+ if defined($type) and $type ne 'both' and $type ne 'indep' and $type ne 'arch';
+
+ $type //= 'all-listed-in-control-file';
+
+ if (not %packages_by_type) {
+ _parse_debian_control();
+ }
+ return @{$packages_by_type{$type}};
+}
+
+sub _strip_spaces {
+ my ($v) = @_;
+ return if not defined($v);
+ $v =~ s/^\s++//;
+ $v =~ s/\s++$//;
+ return $v;
+}
+
+sub _parse_debian_control {
+ my $valid_pkg_re = qr{^${PKGNAME_REGEX}$}o;
+ my (%seen, @profiles, $source_section, $cross_target_arch, %field_values,
+ $field_name, %bd_fields, $bd_field_value, %seen_fields, $fd);
+ if (exists $ENV{'DEB_BUILD_PROFILES'}) {
+ @profiles=split /\s+/, $ENV{'DEB_BUILD_PROFILES'};
+ }
+ if (not open($fd, '<', 'debian/control')) {
+ error("\"debian/control\" not found. Are you sure you are in the correct directory?")
+ if $! == ENOENT;
+ error("cannot read debian/control: $!\n");
+ };
+
+ $packages_by_type{$_} = [] for qw(both indep arch all-listed-in-control-file);
+ while (<$fd>) {
+ chomp;
+ s/\s+$//;
+ next if m/^\s*+\#/;
+
+ if (/^\s/) {
+ if (not %seen_fields) {
+ error("Continuation line seen before first stanza in debian/control (line $.)");
+ }
+ # Continuation line
+ s/^\s[.]?//;
+ push(@{$bd_field_value}, $_) if $bd_field_value;
+ # Ensure it is not completely empty or the code below will assume the paragraph ended
+ $_ = '.' if not $_;
+ } elsif (not $_ and not %seen_fields) {
+ # Ignore empty lines before first stanza
+ next;
+ } elsif ($_) {
+ my ($value);
+
+ if (m/^($DEB822_FIELD_REGEX):\s*(.*)/o) {
+ ($field_name, $value) = (lc($1), $2);
+ if (exists($seen_fields{$field_name})) {
+ my $first_time = $seen_fields{$field_name};
+ error("${field_name}-field appears twice in the same stanza of debian/control. " .
+ "First time on line $first_time, second time: $.");
+ }
+ $seen_fields{$field_name} = $.;
+ $bd_field_value = undef;
+ } else {
+ # Invalid file
+ error("Parse error in debian/control, line $., read: $_");
+ }
+ if ($field_name eq 'source') {
+ $sourcepackage = $value;
+ if ($sourcepackage !~ $valid_pkg_re) {
+ error('Source-field must be a valid package name, ' .
+ "got: \"${sourcepackage}\", should match \"${valid_pkg_re}\"");
+ }
+ next;
+ } elsif ($field_name eq 'section') {
+ $source_section = $value;
+ next;
+ } elsif ($field_name =~ /^(?:build-depends(?:-arch|-indep)?)$/) {
+ $bd_field_value = [$value];
+ $bd_fields{$field_name} = $bd_field_value;
+ }
+ }
+ last if not $_ or eof;
+ }
+ 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*//;
+ $value =~ s/\s*(?:,\s*)?$//;
+ for my $dep (split(/\s*,\s*/, $value)) {
+ if ($dep =~ m/^debhelper-compat\s*[(]\s*=\s*(${PKGVERSION_REGEX})\s*[)]$/) {
+ my $version = $1;
+ if ($version =~m/^(\d+)\D.*$/) {
+ my $guessed_compat = $1;
+ warning("Please use the compat level as the exact version rather than the full version.");
+ warning(" Perhaps you meant: debhelper-compat (= ${guessed_compat})");
+ if ($field ne 'build-depends') {
+ warning(" * Also, please move the declaration to Build-Depends (it was found in ${field})");
+ }
+ error("Invalid compat level ${version}, derived from relation: ${dep}");
+ }
+ $final_level = $version;
+ error("Duplicate debhelper-compat build-dependency: ${dh_compat_bd} vs. ${dep}") if $dh_compat_bd;
+ error("The debhelper-compat build-dependency must be in the Build-Depends field (not $field)")
+ if $field ne 'build-depends';
+ $dh_compat_bd = $dep;
+ } elsif ($dep =~ m/^debhelper-compat\s*(?:\S.*)?$/) {
+ my $clevel = "${\MAX_COMPAT_LEVEL}";
+ eval {
+ require Debian::Debhelper::Dh_Version;
+ $clevel = $Debian::Debhelper::Dh_Version::version;
+ };
+ $clevel =~ s/^\d+\K\D.*$//;
+ warning("Found invalid debhelper-compat relation: ${dep}");
+ warning(" * Please format the relation as (example): debhelper-compat (= ${clevel})");
+ warning(" * Note that alternatives, architecture restrictions, build-profiles etc. are not supported.");
+ if ($field ne 'build-depends') {
+ warning(" * Also, please move the declaration to Build-Depends (it was found in ${field})");
+ }
+ warning(" * If this is not possible, then please remove the debhelper-compat relation and insert the");
+ warning(" compat level into the file debian/compat. (E.g. \"echo ${clevel} > debian/compat\")");
+ error("Could not parse desired debhelper compat level from relation: $dep");
+ }
+ # Build-Depends on dh-sequence-<foo> OR dh-sequence-<foo> (<op> <version>)
+ if ($PARSE_DH_SEQUENCE_INFO and $dep =~ m/^dh-sequence-(${PKGNAME_REGEX})\s*(?:[(]\s*(?:[<>]?=|<<|>>)\s*(?:${PKGVERSION_REGEX})\s*[)])?(\s*[^\|]+[]>]\s*)?$/) {
+ my $sequence = $1;
+ 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} = $addon_type;
+ }
+ }
+ }
+ $compat_from_bd = $final_level // -1;
+ } else {
+ $compat_from_bd = -1;
+ }
+
+ %seen_fields = ();
+ $field_name = undef;
+
+ while (<$fd>) {
+ chomp;
+ s/\s+$//;
+ if (m/^\#/) {
+ # Skip unless EOF for the special case where the last line
+ # is a comment line directly after the last stanza. In
+ # that case we need to "commit" the last stanza as well or
+ # we end up omitting the last package.
+ next if not eof;
+ $_ = '';
+ }
+
+ if (/^\s/) {
+ # Continuation line
+ if (not %seen_fields) {
+ error("Continuation line seen outside stanza in debian/control (line $.)");
+ }
+ s/^\s[.]?//;
+ $field_values{$field_name} .= ' ' . $_;
+ # Ensure it is not completely empty or the code below will assume the paragraph ended
+ $_ = '.' if not $_;
+ } elsif (not $_ and not %seen_fields) {
+ # Ignore empty lines before first stanza
+ next;
+ } elsif ($_) {
+ my ($value);
+ if (m/^($DEB822_FIELD_REGEX):\s*(.*)/o) {
+ ($field_name, $value) = (lc($1), $2);
+ if (exists($seen_fields{$field_name})) {
+ my $first_time = $seen_fields{$field_name};
+ error("${field_name}-field appears twice in the same stanza of debian/control. " .
+ "First time on line $first_time, second time: $.");
+ }
+
+ if ($field_name =~ m/^(?:x[bc]*-)?package-type$/) {
+ # Normalize variants into the main "Package-Type" field
+ $field_name = 'package-type';
+ if (exists($seen_fields{$field_name})) {
+ my $package = _strip_spaces($field_values{'package'} // '');
+ my $help = "(issue seen prior \"Package\"-field)";
+ $help = "for package ${package}" if $package;
+ error("Multiple definitions of (X-)Package-Type in line $. ${help}");
+ }
+ }
+ $seen_fields{$field_name} = $.;
+ $field_values{$field_name} = $value;
+ $bd_field_value = undef;
+ } else {
+ # Invalid file
+ error("Parse error in debian/control, line $., read: $_");
+ }
+ }
+ if (!$_ or eof) { # end of stanza.
+ if (%field_values) {
+ my $package = _strip_spaces($field_values{'package'} // '');
+ my $build_profiles = $field_values{'build-profiles'};
+ my $included_in_build_profile = 1;
+ my $arch = _strip_spaces($field_values{'architecture'} // '');
+ my $cross_type = _strip_spaces($field_values{'x-dh-build-for-type'} // 'host');
+
+ # Detect duplicate package names in the same control file.
+ if ($package eq '') {
+ error("Binary paragraph ending on line $. is missing mandatory \"Package\"-field");
+ }
+ if (! $seen{$package}) {
+ $seen{$package}=1;
+ } else {
+ error("debian/control has a duplicate entry for $package");
+ }
+ if ($package !~ $valid_pkg_re) {
+ error('Package-field must be a valid package name, ' .
+ "got: \"${package}\", should match \"${valid_pkg_re}\"");
+ }
+ if ($cross_type ne 'host' and $cross_type ne 'target') {
+ error("Unknown value of X-DH-Build-For-Type \"$cross_type\" for package $package");
+ }
+
+ $package_types{$package} = _strip_spaces($field_values{'package-type'} // 'deb');
+ $package_arches{$package} = $arch;
+ $package_multiarches{$package} = _strip_spaces($field_values{'multi-arch'} // '');
+ $package_sections{$package} = _strip_spaces($field_values{'section'} // $source_section);
+ $package_cross_type{$package} = $cross_type;
+ push(@{$packages_by_type{'all-listed-in-control-file'}}, $package);
+
+ if (defined($build_profiles)) {
+ eval {
+ # rely on libdpkg-perl providing the parsing functions
+ # because if we work on a package with a Build-Profiles
+ # field, then a high enough version of dpkg-dev is needed
+ # anyways
+ require Dpkg::BuildProfiles;
+ my @restrictions = Dpkg::BuildProfiles::parse_build_profiles($build_profiles);
+ if (@restrictions) {
+ $included_in_build_profile = Dpkg::BuildProfiles::evaluate_restriction_formula(
+ \@restrictions,
+ \@profiles);
+ }
+ };
+ if ($@) {
+ error("The control file has a Build-Profiles field. Requires libdpkg-perl >= 1.17.14");
+ }
+ }
+
+ if ($included_in_build_profile) {
+ if ($arch eq 'all') {
+ push(@{$packages_by_type{'indep'}}, $package);
+ push(@{$packages_by_type{'both'}}, $package);
+ } else {
+ my $included = 0;
+ $included = 1 if $arch eq 'any';
+ if (not $included) {
+ my $desired_arch = hostarch();
+ if ($cross_type eq 'target') {
+ $cross_target_arch //= dpkg_architecture_value('DEB_TARGET_ARCH');
+ $desired_arch = $cross_target_arch;
+ }
+ $included = 1 if samearch($desired_arch, $arch);
+ }
+ if ($included) {
+ push(@{$packages_by_type{'arch'}}, $package);
+ push(@{$packages_by_type{'both'}}, $package);
+ }
+ }
+ }
+ }
+ %field_values = ();
+ %seen_fields = ();
+ }
+ }
+ close($fd);
+}
+
+# Return true if we should use root.
+# - Takes an optional keyword; if passed, this will return true if the keyword is listed in R^3 (Rules-Requires-Root)
+# - If the optional keyword is omitted or not present in R^3 and R^3 is not 'binary-targets', then returns false
+# - Returns true otherwise (i.e. keyword is in R^3 or R^3 is 'binary-targets')
+sub should_use_root {
+ my ($keyword) = @_;
+ my $rrr_env = $ENV{'DEB_RULES_REQUIRES_ROOT'} // 'binary-targets';
+ $rrr_env =~ s/^\s++//;
+ $rrr_env =~ s/\s++$//;
+ return 0 if $rrr_env eq 'no';
+ return 1 if $rrr_env eq 'binary-targets';
+ return 0 if not defined($keyword);
+
+ state %rrr = map { $_ => 1 } split(' ', $rrr_env);
+ return 1 if exists($rrr{$keyword});
+ return 0;
+}
+
+# Returns the "gain root command" as a list suitable for passing as a part of the command to "doit()"
+sub gain_root_cmd {
+ my $raw_cmd = $ENV{DEB_GAIN_ROOT_CMD};
+ return if not defined($raw_cmd) or $raw_cmd =~ m/^\s*+$/;
+ return split(' ', $raw_cmd);
+}
+
+sub root_requirements {
+ my $rrr_env = $ENV{'DEB_RULES_REQUIRES_ROOT'} // 'binary-targets';
+ $rrr_env =~ s/^\s++//;
+ $rrr_env =~ s/\s++$//;
+ return 'none' if $rrr_env eq 'no';
+ return 'legacy-root' if $rrr_env eq 'binary-targets';
+ return 'targeted-promotion';
+}
+
+# Returns the arch a package will build for.
+#
+# Deprecated: please switch to the more descriptive
+# package_binary_arch function instead.
+sub package_arch {
+ my $package=shift;
+ return package_binary_arch($package);
+}
+
+# Returns the architecture going into the resulting .deb, i.e. the
+# host architecture or "all".
+sub package_binary_arch {
+ my $package=shift;
+
+ if (! exists $package_arches{$package}) {
+ warning "package $package is not in control info";
+ return hostarch();
+ }
+ return 'all' if $package_arches{$package} eq 'all';
+ return dpkg_architecture_value('DEB_TARGET_ARCH') if package_cross_type($package) eq 'target';
+ return hostarch();
+}
+
+# Returns the Architecture: value which the package declared.
+sub package_declared_arch {
+ my $package=shift;
+
+ if (! exists $package_arches{$package}) {
+ warning "package $package is not in control info";
+ return hostarch();
+ }
+ return $package_arches{$package};
+}
+
+# Returns whether the package specified Architecture: all
+sub package_is_arch_all {
+ my $package=shift;
+
+ if (! exists $package_arches{$package}) {
+ warning "package $package is not in control info";
+ return hostarch();
+ }
+ return $package_arches{$package} eq 'all';
+}
+
+# Returns the multiarch value of a package.
+sub package_multiarch {
+ my $package=shift;
+
+ # Test the architecture field instead, as it is common for a
+ # package to not have a multi-arch value.
+ if (! exists $package_arches{$package}) {
+ warning "package $package is not in control info";
+ # The only sane default
+ return 'no';
+ }
+ return $package_multiarches{$package} // 'no';
+}
+
+# Returns the (raw) section value of a package (possibly including component).
+sub package_section {
+ my ($package) = @_;
+
+ # Test the architecture field instead, as it is common for a
+ # package to not have a multi-arch value.
+ if (! exists $package_sections{$package}) {
+ warning "package $package is not in control info";
+ return 'unknown';
+ }
+ return $package_sections{$package} // 'unknown';
+}
+
+sub package_cross_type {
+ my ($package) = @_;
+
+ # Test the architecture field instead, as it is common for a
+ # package to not have a multi-arch value.
+ if (! exists $package_cross_type{$package}) {
+ warning "package $package is not in control info";
+ return 'host';
+ }
+ return $package_cross_type{$package} // 'host';
+}
+
+sub package_type {
+ my ($package) = @_;
+
+ if (! exists $package_types{$package}) {
+ warning "package $package is not in control info";
+ return DEFAULT_PACKAGE_TYPE;
+ }
+ return $package_types{$package};
+}
+
+# Return true if a given package is really a udeb.
+sub is_udeb {
+ my $package=shift;
+
+ return package_type($package) eq 'udeb';
+}
+
+
+sub process_pkg {
+ my ($package) = @_;
+ state %packages_to_process = map { $_ => 1 } @{$dh{DOPACKAGES}};
+ return $packages_to_process{$package} // 0;
+}
+
+# Only useful for dh(1)
+sub bd_dh_sequences {
+ # Use $sourcepackage as check because %dh_bd_sequence can be empty
+ # after running getpackages().
+ getpackages() if not defined($sourcepackage);
+ return \%dh_bd_sequences;
+}
+
+sub _concat_slurp_script_files {
+ my (@files) = @_;
+ my $res = '';
+ for my $file (@files) {
+ open(my $fd, '<', $file) or error("open($file) failed: $!");
+ my $f = join('', <$fd>);
+ close($fd);
+ $res .= $f;
+ }
+ 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;
+ };
+}
+
+sub debhelper_script_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;
+}
+
+
+# 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, $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);
+ }
+ if (not exists($variables{'DEBHELPER'})) {
+ $variables{'DEBHELPER'} = sub {
+ return _concat_slurp_script_files(@generated_scripts);
+ };
+ }
+ $subst = _substitution_generator(\%variables);
+
+ if ($file ne '') {
+ 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;
+ }
+ close($in_fd);
+ close($out_fd) or error("close($tmp/DEBIAN/$script) failed: $!");
+ }
+ reset_perm_and_owner('0755', "$tmp/DEBIAN/$script");
+ }
+ elsif (@generated_scripts) {
+ if ($dh{VERBOSE}) {
+ verbose_print(q{printf '#!/bin/sh\nset -e\n' > } . "$tmp/DEBIAN/$script");
+ verbose_print("cat @generated_scripts >> $tmp/DEBIAN/$script");
+ }
+ if (not $dh{NO_ACT}) {
+ open(my $out_fd, '>', "$tmp/DEBIAN/$script") or error("open($tmp/DEBIAN/$script): $!");
+ print {$out_fd} "#!/bin/sh\n";
+ print {$out_fd} "set -e\n";
+ for my $generated_script (@generated_scripts) {
+ open(my $in_fd, '<', $generated_script)
+ or error("open($generated_script) failed: $!");
+ while (my $line = <$in_fd>) {
+ print {$out_fd} $line;
+ }
+ close($in_fd);
+ }
+ close($out_fd) or error("close($tmp/DEBIAN/$script) failed: $!");
+ }
+ reset_perm_and_owner('0755', "$tmp/DEBIAN/$script");
+ }
+}
+
+sub rm_files {
+ my @files = @_;
+ verbose_print('rm -f ' . escape_shell(@files))
+ if $dh{VERBOSE};
+ return 1 if $dh{NO_ACT};
+ for my $file (@files) {
+ if (not unlink($file) and $! != ENOENT) {
+ error("unlink $file failed: $!");
+ }
+ }
+ return 1;
+}
+
+sub make_symlink_raw_target {
+ my ($src, $dest) = @_;
+ verbose_print('ln -s ' . escape_shell($src, $dest))
+ if $dh{VERBOSE};
+ return 1 if $dh{NO_ACT};
+ if (not symlink($src, $dest)) {
+ error("symlink($src, $dest) failed: $!");
+ }
+ return 1;
+}
+
+# make_symlink($dest, $src[, $tmp]) creates a symlink from $dest -> $src.
+# if $tmp is given, $dest will be created within it.
+# Usually $tmp should be the value of tmpdir($package);
+sub make_symlink{
+ my $dest = shift;
+ my $src = _expand_path(shift);
+ my $tmp = shift;
+ $tmp = '' if not defined($tmp);
+
+ if ($dest =~ m{(?:^|/)*[.]{2}(?:/|$)}) {
+ error("Invalid destination/link name (contains \"..\"-segments): $dest");
+ }
+
+ $src =~ s{^(?:[.]/+)++}{};
+ $dest =~ s{^(?:[.]/+)++}{};
+
+ $src=~s:^/++::;
+ $dest=~s:^/++::;
+
+ if ($src eq $dest) {
+ warning("skipping link from $src to self");
+ return;
+ }
+
+
+
+ # Policy says that if the link is all within one toplevel
+ # directory, it should be relative. If it's between
+ # top level directories, leave it absolute.
+ my @src_dirs = grep { $_ ne '.' } split(m:/+:,$src);
+ my @dest_dirs = grep { $_ ne '.' } split(m:/+:,$dest);
+ if (@src_dirs > 0 && $src_dirs[0] eq $dest_dirs[0]) {
+ # Figure out how much of a path $src and $dest
+ # share in common.
+ my $x;
+ for ($x=0; $x < @src_dirs && $src_dirs[$x] eq $dest_dirs[$x]; $x++) {}
+ # Build up the new src.
+ $src="";
+ for (1..$#dest_dirs - $x) {
+ $src.="../";
+ }
+ for ($x .. $#src_dirs) {
+ $src.=$src_dirs[$_]."/";
+ }
+ if ($x > $#src_dirs && ! length $src) {
+ $src="."; # special case
+ }
+ $src=~s:/$::;
+ }
+ else {
+ # Make sure it's properly absolute.
+ $src="/$src";
+ }
+
+ my $full_dest = "$tmp/$dest";
+ if ( -l $full_dest ) {
+ # All ok - we can always replace a link, and target directory must exists
+ } elsif (-d _) {
+ # We cannot replace a directory though
+ error("link destination $full_dest is a directory");
+ } else {
+ # Make sure the directory the link will be in exists.
+ my $basedir=dirname($full_dest);
+ install_dir($basedir);
+ }
+ rm_files($full_dest);
+ make_symlink_raw_target($src, $full_dest);
+}
+
+# _expand_path expands all path "." and ".." components, but doesn't
+# resolve symbolic links.
+sub _expand_path {
+ my $start = @_ ? shift : '.';
+ my @pathname = split(m:/+:,$start);
+ my @respath;
+ for my $entry (@pathname) {
+ if ($entry eq '.' || $entry eq '') {
+ # Do nothing
+ }
+ elsif ($entry eq '..') {
+ if ($#respath == -1) {
+ # Do nothing
+ }
+ else {
+ pop @respath;
+ }
+ }
+ else {
+ push @respath, $entry;
+ }
+ }
+
+ my $result;
+ for my $entry (@respath) {
+ $result .= '/' . $entry;
+ }
+ if (! defined $result) {
+ $result="/"; # special case
+ }
+ return $result;
+}
+
+# Checks if make's jobserver is enabled via MAKEFLAGS, but
+# the FD used to communicate with it is actually not available.
+sub is_make_jobserver_unavailable {
+ if (exists $ENV{MAKEFLAGS} &&
+ $ENV{MAKEFLAGS} =~ /(?:^|\s)--jobserver-(?:fds|auth)=(\d+)/) {
+ if (!open(my $in, "<&$1")) {
+ return 1; # unavailable
+ }
+ else {
+ close $in;
+ return 0; # available
+ }
+ }
+
+ return; # no jobserver specified
+}
+
+# Cleans out jobserver options from MAKEFLAGS.
+sub clean_jobserver_makeflags {
+ if (exists $ENV{MAKEFLAGS}) {
+ if ($ENV{MAKEFLAGS} =~ /(?:^|\s)--jobserver-(?:fds|auth)=\d+/) {
+ $ENV{MAKEFLAGS} =~ s/(?:^|\s)--jobserver-(?:fds|auth)=\S+//g;
+ $ENV{MAKEFLAGS} =~ s/(?:^|\s)-j\b//g;
+ }
+ delete $ENV{MAKEFLAGS} if $ENV{MAKEFLAGS} =~ /^\s*$/;
+ }
+}
+
+# If cross-compiling, returns appropriate cross version of command.
+sub cross_command {
+ my ($package, $command) = @_;
+ if (package_cross_type($package) eq 'target') {
+ if (dpkg_architecture_value("DEB_HOST_GNU_TYPE") ne dpkg_architecture_value("DEB_TARGET_GNU_TYPE")) {
+ return dpkg_architecture_value("DEB_TARGET_GNU_TYPE") . "-$command";
+ }
+ }
+ if (is_cross_compiling()) {
+ return dpkg_architecture_value("DEB_HOST_GNU_TYPE")."-$command";
+ }
+ else {
+ return $command;
+ }
+}
+
+# Returns the SOURCE_DATE_EPOCH ENV variable if set OR computes it
+# from the latest changelog entry, sets the SOURCE_DATE_EPOCH ENV
+# variable and returns the computed value.
+sub get_source_date_epoch {
+ return $ENV{SOURCE_DATE_EPOCH} if exists($ENV{SOURCE_DATE_EPOCH});
+ _parse_non_binnmu_date_epoch();
+ return $ENV{SOURCE_DATE_EPOCH};
+}
+
+{
+ my $_non_binnmu_date_epoch;
+
+ # Needed for dh_strip_nondeterminism - not exported by default because it is not likely
+ # to be useful beyond that one helper.
+ sub get_non_binnmu_date_epoch {
+ return $_non_binnmu_date_epoch if defined($_non_binnmu_date_epoch);
+ _parse_non_binnmu_date_epoch();
+ return $_non_binnmu_date_epoch;
+ }
+
+ sub _parse_non_binnmu_date_epoch {
+ eval { require Dpkg::Changelog::Debian };
+ if ($@) {
+ warning "unable to set SOURCE_DATE_EPOCH: $@";
+ return;
+ }
+ eval { require Time::Piece };
+ if ($@) {
+ warning "unable to set SOURCE_DATE_EPOCH: $@";
+ return;
+ }
+
+ my $changelog = Dpkg::Changelog::Debian->new(range => {"count" => 2});
+ $changelog->load("debian/changelog");
+
+ my $first_entry = $changelog->[0];
+ my $non_binnmu_entry = $first_entry;
+ my $optional_fields = $first_entry->get_optional_fields();
+ my $first_tt = $first_entry->get_timestamp();
+ $first_tt =~ s/\s*\([^\)]+\)\s*$//; # Remove the optional timezone codename
+ my $first_timestamp = Time::Piece->strptime($first_tt, "%a, %d %b %Y %T %z")->epoch;
+ my $non_binnmu_timestamp = $first_timestamp;
+ if (exists($optional_fields->{'Binary-Only'}) and lc($optional_fields->{'Binary-Only'}) eq 'yes') {
+ $non_binnmu_entry = $changelog->[1];
+ my $non_binnmu_options = $non_binnmu_entry->get_optional_fields();
+ if (exists($non_binnmu_options->{'Binary-Only'}) and lc($non_binnmu_options->{'Binary-Only'}) eq 'yes') {
+ error("internal error: Could not locate the first non-binnmu entry in the change (assumed it would be the second entry)");
+ }
+ my $non_binnmu_tt = $non_binnmu_entry->get_timestamp();
+ $non_binnmu_tt =~ s/\s*\([^\)]+\)\s*$//; # Remove the optional timezone codename
+ $non_binnmu_timestamp = Time::Piece->strptime($non_binnmu_tt, "%a, %d %b %Y %T %z")->epoch();
+ }
+
+ $ENV{SOURCE_DATE_EPOCH} = $first_timestamp if not exists($ENV{SOURCE_DATE_EPOCH});
+ $_non_binnmu_date_epoch = $non_binnmu_timestamp;
+ return;
+ }
+}
+
+# Setup the build ENV by setting dpkg-buildflags (via set_buildflags()) plus
+# cleaning up HOME (etc) in compat 13+
+sub setup_buildenv {
+ set_buildflags();
+ if (not compat(12)) {
+ setup_home_and_xdg_dirs();
+ }
+}
+
+sub setup_home_and_xdg_dirs {
+ require Cwd;
+ my $cwd = Cwd::getcwd();
+ my $home_dir = join('/', $cwd, generated_file('_source', 'home', 0));
+ my @paths = (
+ $home_dir,
+ );
+ my @clear_env = qw(
+ XDG_CACHE_HOME
+ XDG_CONFIG_DIRS
+ XDG_CONFIG_HOME
+ XDG_DATA_HOME
+ XDG_DATA_DIRS
+ XDG_RUNTIME_DIR
+ );
+ mkdirs(@paths);
+ for my $envname (@clear_env) {
+ delete($ENV{$envname});
+ }
+ $ENV{'HOME'} = $home_dir;
+ return;
+}
+
+sub reset_buildflags {
+ eval { require Dpkg::BuildFlags };
+ if ($@) {
+ warning "unable to load build flags: $@";
+ return;
+ }
+ delete($ENV{'DH_INTERNAL_BUILDFLAGS'});
+ my $buildflags = Dpkg::BuildFlags->new();
+ foreach my $flag ($buildflags->list()) {
+ next unless $flag =~ /^[A-Z]/; # Skip flags starting with lowercase
+ delete($ENV{$flag});
+ }
+}
+
+# Sets environment variables from dpkg-buildflags. Avoids changing
+# any existing environment variables.
+sub set_buildflags {
+ return if $ENV{DH_INTERNAL_BUILDFLAGS};
+ $ENV{DH_INTERNAL_BUILDFLAGS}=1;
+
+ # For the side effect of computing the SOURCE_DATE_EPOCH variable.
+ get_source_date_epoch();
+
+ return if compat(8);
+
+ # Export PERL_USE_UNSAFE_INC as a transitional step to allow us
+ # to remove . from @INC by default without breaking packages which
+ # rely on this [CVE-2016-1238]
+ $ENV{PERL_USE_UNSAFE_INC} = 1 if compat(10);
+
+ eval { require Dpkg::BuildFlags };
+ if ($@) {
+ warning "unable to load build flags: $@";
+ return;
+ }
+
+ my $buildflags = Dpkg::BuildFlags->new();
+ $buildflags->load_config();
+ foreach my $flag ($buildflags->list()) {
+ next unless $flag =~ /^[A-Z]/; # Skip flags starting with lowercase
+ if (! exists $ENV{$flag}) {
+ $ENV{$flag} = $buildflags->get($flag);
+ }
+ }
+}
+
+# Gets a DEB_BUILD_OPTIONS option, if set.
+sub get_buildoption {
+ my ($wanted, $default) = @_;
+
+ return $default if not exists($ENV{DEB_BUILD_OPTIONS});
+
+ foreach my $opt (split(/\s+/, $ENV{DEB_BUILD_OPTIONS})) {
+ # currently parallel= is the only one with a parameter
+ if ($opt =~ /^parallel=(-?\d+)$/ && $wanted eq 'parallel') {
+ return $1;
+ } elsif ($opt =~ m/^dherroron=(\S*)$/ && $wanted eq 'dherroron') {
+ my $value = $1;
+ if ($value ne 'obsolete-compat-levels') {
+ warning("Unknown value \"${value}\" as parameter for \"dherroron\" seen in DEB_BUILD_OPTIONS");
+ }
+ return $value;
+ } elsif ($opt eq $wanted) {
+ return 1;
+ }
+ }
+ return $default;
+}
+
+# Returns true if DEB_BUILD_PROFILES lists the given profile.
+sub is_build_profile_active {
+ my ($wanted) = @_;
+ return 0 if not exists($ENV{DEB_BUILD_PROFILES});
+ for my $prof (split(m/\s+/, $ENV{DEB_BUILD_PROFILES})) {
+ return 1 if $prof eq $wanted;
+ }
+ return 0;
+}
+
+
+# Called when an executable config file failed. It provides a more helpful error message in
+# some cases (especially when the file was not intended to be executable).
+sub _executable_dh_config_file_failed {
+ my ($source, $err, $proc_err) = @_;
+ error("Error closing fd/process for ${source}: $err") if $err;
+ # The interpreter did not like the file for some reason.
+ # Lets check if the maintainer intended it to be
+ # executable.
+ if (not is_so_or_exec_elf_file($source) and not _has_shebang_line($source)) {
+ warning("${source} is marked executable but does not appear to an executable config.");
+ warning();
+ warning("If ${source} is intended to be an executable config file, please ensure it can");
+ warning("be run as a stand-alone script/program (e.g. \"./${source}\")");
+ warning("Otherwise, please remove the executable bit from the file (e.g. chmod -x \"${source}\")");
+ warning();
+ warning('Please see "Executable debhelper config files" in debhelper(7) for more information.');
+ warning();
+ }
+ $? = $proc_err;
+ error_exitcode("${source} (executable config)");
+ return;
+}
+
+
+# install a dh config file (e.g. debian/<pkg>.lintian-overrides) into
+# the package. Under compat 9+ it may execute the file and use its
+# output instead.
+#
+# install_dh_config_file(SOURCE, TARGET)
+sub install_dh_config_file {
+ my ($source, $target) = @_;
+
+ if (!compat(8) and -x $source) {
+ my @sstat = stat(_) || error("cannot stat $source: $!");
+ open(my $tfd, '>', $target) || error("cannot open $target: $!");
+ chmod(0644, $tfd) || error("cannot chmod $target: $!");
+ open(my $sfd, '-|', $source) || error("cannot run $source: $!");
+ while (my $line = <$sfd>) {
+ print ${tfd} $line;
+ }
+ if (!close($sfd)) {
+ _executable_dh_config_file_failed($source, $!, $?);
+ }
+ close($tfd) || error("cannot close $target: $!");
+ # Set the mtime (and atime) to ensure reproducibility.
+ utime($sstat[9], $sstat[9], $target);
+ } else {
+ install_file($source, $target);
+ }
+ return 1;
+}
+
+sub restore_file_on_clean {
+ my ($file) = @_;
+ my $bucket_index = 'debian/.debhelper/bucket/index';
+ my $bucket_dir = 'debian/.debhelper/bucket/files';
+ my $checksum;
+ mkdirs($bucket_dir);
+ if ($file =~ m{^/}) {
+ error("restore_file_on_clean requires a path relative to the package dir");
+ }
+ $file =~ s{^\./}{}g;
+ $file =~ s{//++}{}g;
+ if ($file =~ m{^\.} or $file =~ m{/CVS/} or $file =~ m{/\.svn/}) {
+ # We do not want to smash a Vcs repository by accident.
+ warning("Attempt to store $file, which looks like a VCS file or");
+ warning("a hidden package file (like quilt's \".pc\" directory)");
+ error("This tool probably contains a bug.");
+ }
+ if (-l $file or not -f _) {
+ error("Cannot store $file: Can only store regular files (no symlinks, etc.)");
+ }
+ require Digest::SHA;
+
+ $checksum = Digest::SHA->new('256')->addfile($file, 'b')->hexdigest;
+
+ if (not $dh{NO_ACT}) {
+ my ($in_index);
+ open(my $fd, '+>>', $bucket_index)
+ or error("open($bucket_index, a+) failed: $!");
+ seek($fd, 0, 0);
+ while (my $line = <$fd>) {
+ my ($cs, $stored_file);
+ chomp($line);
+ ($cs, $stored_file) = split(m/ /, $line, 2);
+ next if ($stored_file ne $file);
+ $in_index = 1;
+ }
+ if (not $in_index) {
+ # Copy and then rename so we always have the full copy of
+ # the file in the correct place (if any at all).
+ doit('cp', '-an', '--reflink=auto', $file, "${bucket_dir}/${checksum}.tmp");
+ rename_path("${bucket_dir}/${checksum}.tmp", "${bucket_dir}/${checksum}");
+ print {$fd} "${checksum} ${file}\n";
+ }
+ close($fd) or error("close($bucket_index) failed: $!");
+ }
+
+ return 1;
+}
+
+sub restore_all_files {
+ my ($clear_index) = @_;
+ my $bucket_index = 'debian/.debhelper/bucket/index';
+ my $bucket_dir = 'debian/.debhelper/bucket/files';
+
+ return if not -f $bucket_index;
+ open(my $fd, '<', $bucket_index)
+ or error("open($bucket_index) failed: $!");
+
+ while (my $line = <$fd>) {
+ my ($cs, $stored_file, $bucket_file);
+ chomp($line);
+ ($cs, $stored_file) = split(m/ /, $line, 2);
+ $bucket_file = "${bucket_dir}/${cs}";
+ # Restore by copy and then rename. This ensures that:
+ # 1) If dh_clean is interrupted, we can always do a full restore again
+ # (otherwise, we would be missing some of the files and have to handle
+ # that with scary warnings)
+ # 2) The file is always fully restored or in its "pre-restore" state.
+ doit('cp', '-an', '--reflink=auto', $bucket_file, "${bucket_file}.tmp");
+ rename_path("${bucket_file}.tmp", $stored_file);
+ }
+ close($fd);
+ rm_files($bucket_index) if $clear_index;
+ return;
+}
+
+sub open_gz {
+ my ($file) = @_;
+ my $fd;
+ eval {
+ require PerlIO::gzip;
+ };
+ if ($@) {
+ open($fd, '-|', 'gzip', '-dc', $file)
+ or error("gzip -dc $file failed: $!");
+ } else {
+ # Pass ":unix" as well due to https://rt.cpan.org/Public/Bug/Display.html?id=114557
+ # Alternatively, we could ensure we always use "POSIX::_exit". Unfortunately,
+ # loading POSIX is insanely slow.
+ open($fd, '<:unix:gzip', $file)
+ or error("open $file [<:unix:gzip] failed: $!");
+ }
+ return $fd;
+}
+
+sub deprecated_functionality {
+ my ($warning_msg, $compat_removal, $removal_msg) = @_;
+ if (defined($compat_removal) and not compat($compat_removal - 1)) {
+ my $msg = $removal_msg // $warning_msg;
+ warning($msg);
+ error("This feature was removed in compat ${compat_removal}.");
+ } else {
+ warning($warning_msg);
+ warning("This feature will be removed in compat ${compat_removal}.")
+ if defined($compat_removal);
+ }
+ return 1;
+}
+
+sub log_installed_files {
+ my ($package, @patterns) = @_;
+
+ return if $dh{NO_ACT};
+ my $tool = $TOOL_NAME;
+ if (ref($package) eq 'HASH') {
+ my $options = $package;
+ $tool = $options->{'tool_name'} // error('Missing mandatory "tool_name" option for log_installed_files');
+ $package = $options->{'package'} // error('Missing mandatory "package" option for log_installed_files');
+ }
+
+ my $log = generated_file($package, 'installed-by-' . $tool);
+ open(my $fh, '>>', $log) or error("open $log: $!");
+ for my $src (@patterns) {
+ print $fh "$src\n";
+ }
+ close($fh) or error("close $log: $!");
+
+ return 1;
+}
+
+use constant {
+ # The ELF header is at least 0x32 bytes (32bit); any filer shorter than that is not an ELF file
+ ELF_MIN_LENGTH => 0x32,
+ ELF_MAGIC => "\x7FELF",
+ ELF_ENDIAN_LE => 0x01,
+ ELF_ENDIAN_BE => 0x02,
+ ELF_TYPE_EXECUTABLE => 0x0002,
+ ELF_TYPE_SHARED_OBJECT => 0x0003,
+};
+
+sub is_so_or_exec_elf_file {
+ my ($file) = @_;
+ open(my $fd, '<:raw', $file) or error("open $file: $!");
+ my $buflen = 0;
+ my ($buf, $endian);
+ while ($buflen < ELF_MIN_LENGTH) {
+ my $r = read($fd, $buf, ELF_MIN_LENGTH - $buflen, $buflen) // error("read ($file): $!");
+ last if $r == 0; # EOF
+ $buflen += $r
+ }
+ close($fd);
+ return 0 if $buflen < ELF_MIN_LENGTH;
+
+ return 0 if substr($buf, 0x00, 4) ne ELF_MAGIC;
+ $endian = unpack('c', substr($buf, 0x05, 1));
+ my ($long_format, $short_format);
+
+ if ($endian == ELF_ENDIAN_BE) {
+ $long_format = 'N';
+ $short_format = 'n';
+ } elsif ($endian == ELF_ENDIAN_LE) {
+ $long_format = 'V';
+ $short_format = 'v';
+ } else {
+ return 0;
+ }
+ my $elf_version = substr($buf, 0x14, 4);
+ my $elf_type = substr($buf, 0x10, 2);
+
+
+ return 0 if unpack($long_format, $elf_version) != 0x00000001;
+ my $elf_type_unpacked = unpack($short_format, $elf_type);
+ return 0 if $elf_type_unpacked != ELF_TYPE_EXECUTABLE and $elf_type_unpacked != ELF_TYPE_SHARED_OBJECT;
+ return 1;
+}
+
+sub _has_shebang_line {
+ my ($file) = @_;
+ open(my $fd, '<', $file) or error("open $file: $!");
+ my $line = <$fd>;
+ close($fd);
+ return 1 if (defined($line) and substr($line, 0, 2) eq '#!');
+ return 0;
+}
+
+# Returns true iff the given argument is an empty directory.
+# Corner-cases:
+# - false if not a directory
+sub is_empty_dir {
+ my ($dir) = @_;
+ return 0 if not -d $dir;
+ my $ret = 1;
+ opendir(my $dir_fd, $dir) or error("opendir($dir) failed: $!");
+ while (defined(my $entry = readdir($dir_fd))) {
+ next if $entry eq '.' or $entry eq '..';
+ $ret = 0;
+ last;
+ }
+ closedir($dir_fd);
+ return $ret;
+}
+
+sub on_pkgs_in_parallel(&) {
+ unshift(@_, $dh{DOPACKAGES});
+ goto \&on_items_in_parallel;
+}
+
+# Given a list of files, find all hardlinked files and return:
+# 1: a list of unique files (all files in the list are not hardlinked with any other file in that list)
+# 2: a map where the keys are names of hardlinks and the value points to the name selected as the file put in the
+# list of unique files.
+#
+# This is can be used to relink hard links after modifying one of them.
+sub find_hardlinks {
+ my (@all_files) = @_;
+ my (%seen, %hardlinks, @unique_files);
+ for my $file (@all_files) {
+ my ($dev, $inode, undef, $nlink)=stat($file);
+ if (defined $nlink && $nlink > 1) {
+ if (! $seen{"$inode.$dev"}) {
+ $seen{"$inode.$dev"}=$file;
+ push(@unique_files, $file);
+ } else {
+ # This is a hardlink.
+ $hardlinks{$file}=$seen{"$inode.$dev"};
+ }
+ } else {
+ push(@unique_files, $file);
+ }
+ }
+ return (\@unique_files, \%hardlinks);
+}
+
+sub on_items_in_parallel {
+ my ($pkgs_ref, $code) = @_;
+ my @pkgs = @{$pkgs_ref};
+ my %pids;
+ my $parallel = $MAX_PROCS;
+ my $count_per_proc = int( (scalar(@pkgs) + $parallel - 1)/ $parallel);
+ my $exit = 0;
+ if ($count_per_proc < 1) {
+ $count_per_proc = 1;
+ if (@pkgs > 3) {
+ # Forking has a considerable overhead, so bulk the number
+ # a bit. We do not do this unconditionally, because we
+ # want parallel issues (if any) to appear already with 2
+ # packages and two procs (because people are lazy when
+ # testing).
+ #
+ # Same reason for also unconditionally forking with 1 pkg
+ # in 1 proc.
+ $count_per_proc = 2;
+ }
+ }
+ # Assertion, $count_per_proc * $parallel >= scalar(@pkgs)
+ while (@pkgs) {
+ my @batch = splice(@pkgs, 0, $count_per_proc);
+ my $pid = fork() // error("fork: $!");
+ if (not $pid) {
+ # Child processes should not write to the log file
+ inhibit_log();
+ eval {
+ $code->(@batch);
+ };
+ if (my $err = $@) {
+ $err =~ s/\n$//;
+ print STDERR "$err\n";
+ exit(2);
+ }
+ exit(0);
+ }
+ $pids{$pid} = 1;
+ }
+ while (%pids) {
+ my $pid = wait;
+ error("wait() failed: $!") if $pid == -1;
+ delete($pids{$pid});
+ if ($? != 0) {
+ $exit = 1;
+ }
+ }
+ if ($exit) {
+ error("Aborting due to earlier error");
+ }
+ return;
+}
+
+*on_selected_pkgs_in_parallel = \&on_items_in_parallel;
+
+sub compute_doc_main_package {
+ my ($doc_package) = @_;
+ # if explicitly set, then choose that.
+ return $dh{DOC_MAIN_PACKAGE} if $dh{DOC_MAIN_PACKAGE};
+ # In compat 10 (and earlier), there is no auto-detection
+ return $doc_package if compat(10);
+ my $target_package = $doc_package;
+ # If it is not a -doc package, then docs should be installed
+ # under its own package name.
+ return $doc_package if $target_package !~ s/-doc$//;
+ # FOO-doc hosts the docs for FOO; seems reasonable
+ return $target_package if exists($package_types{$target_package});
+ if ($doc_package =~ m/^lib./) {
+ # Special case, "libFOO-doc" can host docs for "libFOO-dev"
+ my $lib_dev = "${target_package}-dev";
+ return $lib_dev if exists($package_types{$lib_dev});
+ # Technically, we could go look for a libFOO<something>-dev,
+ # but atm. it is presumed to be that much of a corner case
+ # that it warrents an override.
+ }
+ # We do not know; make that clear to the caller
+ return;
+}
+
+sub dbgsym_tmpdir {
+ my ($package) = @_;
+ 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;
+}
+
+sub is_known_package {
+ my ($package) = @_;
+ state %known_packages = map { $_ => 1 } getpackages();
+ return 1 if exists($known_packages{$package});
+ return 0
+}
+
+sub assert_opt_is_known_package {
+ my ($package, $method) = @_;
+ if (not is_known_package($package)) {
+ error("Requested unknown package $package via $method, expected one of: " . join(' ', getpackages()));
+ }
+ return 1;
+}
+
+
+sub _internal_optional_file_args {
+ state $_disable_file_seccomp;
+ 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..ba627f46
--- /dev/null
+++ b/lib/Debian/Debhelper/Sequence.pm
@@ -0,0 +1,131 @@
+#!/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::Dh_Lib qw(error);
+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) = @_;
+ error("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) {
+ error("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) = @_;
+ error("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/build_stamp.pm b/lib/Debian/Debhelper/Sequence/build_stamp.pm
new file mode 100644
index 00000000..5c059754
--- /dev/null
+++ b/lib/Debian/Debhelper/Sequence/build_stamp.pm
@@ -0,0 +1,10 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+add_command_at_end('create-stamp debian/debhelper-build-stamp', 'build');
+add_command_at_end('create-stamp debian/debhelper-build-stamp', 'build-arch');
+add_command_at_end('create-stamp debian/debhelper-build-stamp', 'build-indep');
+
+1
diff --git a/lib/Debian/Debhelper/Sequence/dwz.pm b/lib/Debian/Debhelper/Sequence/dwz.pm
new file mode 100644
index 00000000..2e89ffa6
--- /dev/null
+++ b/lib/Debian/Debhelper/Sequence/dwz.pm
@@ -0,0 +1,14 @@
+#!/usr/bin/perl
+# Enable dh_dwz
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib qw(compat error);
+
+if (not compat(11)) {
+ error("In compat 12, dh_dwz is run by default and the dwz-sequence is no longer required.");
+}
+
+insert_before('dh_strip', 'dh_dwz');
+
+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..56bb07cc
--- /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 qw(compat);
+
+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/Sequence/installinitramfs.pm b/lib/Debian/Debhelper/Sequence/installinitramfs.pm
new file mode 100644
index 00000000..365f2837
--- /dev/null
+++ b/lib/Debian/Debhelper/Sequence/installinitramfs.pm
@@ -0,0 +1,14 @@
+#!/usr/bin/perl
+# Enable dh_installinitramfs
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib qw(compat error);
+
+if (not compat(11)) {
+ error("In compat 12, dh_installinitramfs is run by default and the installinitramfs-sequence is no longer required.");
+}
+
+insert_after('dh_installgsettings', 'dh_installinitramfs');
+
+1;
diff --git a/lib/Debian/Debhelper/Sequence/installsysusers.pm b/lib/Debian/Debhelper/Sequence/installsysusers.pm
new file mode 100644
index 00000000..47c38e59
--- /dev/null
+++ b/lib/Debian/Debhelper/Sequence/installsysusers.pm
@@ -0,0 +1,9 @@
+#!/usr/bin/perl
+# Enable dh_installsysusers
+
+use strict;
+use warnings;
+
+insert_after('dh_install', 'dh_installsysusers');
+
+1;
diff --git a/lib/Debian/Debhelper/Sequence/root_sequence.pm b/lib/Debian/Debhelper/Sequence/root_sequence.pm
new file mode 100644
index 00000000..45d908c1
--- /dev/null
+++ b/lib/Debian/Debhelper/Sequence/root_sequence.pm
@@ -0,0 +1,120 @@
+use strict;
+use warnings;
+
+use Debian::Debhelper::Dh_Lib qw(compat);
+use Debian::Debhelper::SequencerUtil;
+
+my $include_if_compat_X_or_newer = sub {
+ my ($compat, @commands) = @_;
+ return if compat($compat - 1, 1);
+ return @commands;
+};
+
+my @obsolete_command = (
+ [13, $include_if_compat_X_or_newer->(11, 'dh_systemd_enable', 'dh_systemd_start')],
+ [14, 'dh_gconf'],
+);
+
+my @commands_controlled_by_deb_build_options = (
+ $include_if_compat_X_or_newer->(13, ['dh_auto_test', 'nocheck'], ['dh_dwz', 'nostrip'], ['dh_strip', 'nostrip']),
+);
+
+my @bd_minimal = qw{
+ dh_testdir
+};
+my @bd = (@bd_minimal, qw{
+ dh_update_autotools_config
+ dh_auto_configure
+ dh_auto_build
+ dh_auto_test
+});
+my @i = (qw{
+ dh_testroot
+ dh_prep
+ dh_installdirs
+ dh_auto_install
+
+ dh_install
+ dh_installdocs
+ dh_installchangelogs
+ dh_installexamples
+ dh_installman
+
+ dh_installcatalogs
+ dh_installcron
+ dh_installdebconf
+ dh_installemacsen
+ dh_installifupdown
+ dh_installinfo
+ dh_installinit
+},
+ $include_if_compat_X_or_newer->(14, 'dh_installsysusers'),
+ $include_if_compat_X_or_newer->(13, 'dh_installtmpfiles'),
+ $include_if_compat_X_or_newer->(11, 'dh_installsystemd'),
+ $include_if_compat_X_or_newer->(12, 'dh_installsystemduser'),
+qw{
+ dh_installmenu
+ dh_installmime
+ dh_installmodules
+ dh_installlogcheck
+ dh_installlogrotate
+ dh_installpam
+ dh_installppp
+ dh_installudev
+ dh_installgsettings
+},
+ (!compat(11) ? qw(dh_installinitramfs) : qw()),
+ (compat(13) ? qw(dh_installalternatives) : qw()),
+qw{
+ dh_bugfiles
+ dh_ucf
+ dh_lintian
+ dh_icons
+ dh_perl
+ dh_usrlocal
+
+ dh_link
+},
+ (!compat(13) ? qw(dh_installalternatives) : qw()),
+qw{
+ dh_installwm
+ dh_installxfonts
+ dh_strip_nondeterminism
+ dh_compress
+ dh_fixperms
+ dh_missing
+});
+
+# 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
+};
+
+_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
+});
+
+for my $obsolete_command_spec (@obsolete_command) {
+ my ($error_compat, @cmds) = @{$obsolete_command_spec};
+ for my $command (@cmds) {
+ declare_command_obsolete($error_compat, $command);
+ }
+}
+
+for my $entry (@commands_controlled_by_deb_build_options) {
+ my ($command, $dbo_flag) = @{$entry};
+ # Dear reader; Should you be in doubt, then this is internal API that is
+ # subject to change without notice. If you need this feature, please
+ # make an explicit feature request, so we can implement a better solution.
+ _skip_cmd_if_deb_build_options_contains($command, $dbo_flag);
+}
+
+1;
diff --git a/lib/Debian/Debhelper/Sequence/single_binary.pm b/lib/Debian/Debhelper/Sequence/single_binary.pm
new file mode 100644
index 00000000..68d8db1c
--- /dev/null
+++ b/lib/Debian/Debhelper/Sequence/single_binary.pm
@@ -0,0 +1,34 @@
+use strict;
+use warnings;
+
+use Debian::Debhelper::Dh_Lib qw(getpackages error warning tmpdir);
+use Debian::Debhelper::SequencerUtil;
+
+my @packages = getpackages();
+my $pkg = $packages[0];
+my $tmp = tmpdir($pkg);
+if (@packages != 1) {
+ warning('Detected multiple binary packages (Package paragraphs) in debian/control, which is incompatible');
+ warning('with the single-binary dh add-on.');
+ warning();
+ warning('Please:');
+ warning(' 1) Remove the single-binary add-on ("dh-sequence-single-binary" in Build-Depends)');
+ warning(' 2) Update the packaging to cope with dh_auto_install using \"debian/tmp\" as default dest dir');
+ warning(" (Previously, it would probably have used \"${tmp}\")");
+ warning(' 3) Add Breaks/Replaces if you are moving existing files into a new package.');
+ warning(' 4) Double check that the resulting binaries have content.');
+ warning();
+ warning("IF YOU ARE ADDING A TRANSITIONAL PACKAGE: Then you probably want to pass --destdir=${tmp} to");
+ warning(' dh_auto_install. Most likely you will need Breaks + Replaces as renaming a package counts as');
+ warning(' moving files between two packages.');
+ warning();
+ warning('IF YOU ARE "SPLITTING" THE CONTENT INTO MULTIPLE PACKAGES: Then remember to install the content');
+ warning(" into them (by creating debian/${pkg}.install, etc.). Also remember to add Breaks + Replaces if");
+ warning(' you are moving files from one package into another.');
+ warning();
+ error("The single-binary add-on cannot be used for source packages that build multiple binary packages.");
+}
+
+add_command_options('dh_auto_install', "--destdir=${tmp}/");
+
+1;
diff --git a/lib/Debian/Debhelper/Sequence/systemd.pm b/lib/Debian/Debhelper/Sequence/systemd.pm
new file mode 100644
index 00000000..484e7645
--- /dev/null
+++ b/lib/Debian/Debhelper/Sequence/systemd.pm
@@ -0,0 +1,19 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+use Debian::Debhelper::Dh_Lib qw(compat error);
+
+if (not compat(10)) {
+ error("The systemd-sequence is no longer provided in compat >= 11, please rely on dh_installsystemd instead");
+}
+
+
+# dh_systemd_enable runs unconditionally, and before dh_installinit, so that
+# the latter can use invoke-rc.d and all symlinks are already in place.
+insert_before("dh_installinit", "dh_systemd_enable");
+
+# dh_systemd_start handles the case where there is no corresponding init
+# script, so it runs after dh_installinit.
+insert_after("dh_installinit", "dh_systemd_start");
+
+1
diff --git a/lib/Debian/Debhelper/SequencerUtil.pm b/lib/Debian/Debhelper/SequencerUtil.pm
new file mode 100644
index 00000000..2dc3f780
--- /dev/null
+++ b/lib/Debian/Debhelper/SequencerUtil.pm
@@ -0,0 +1,888 @@
+#!/usr/bin/perl
+#
+# Internal library functions for the dh(1) command
+
+package Debian::Debhelper::SequencerUtil;
+use strict;
+use warnings;
+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,
+ 'UNSKIPPABLE_CLI_OPTIONS_BUILD_SYSTEM' => q(-S|--buildsystem|-D|--sourcedir|--sourcedirectory|-B|--builddir|--builddirectory),
+};
+
+use Exporter qw(import);
+
+use Debian::Debhelper::Dh_Lib qw(
+ %dh
+ basename
+ commit_override_log
+ compat error
+ escape_shell
+ get_buildoption
+ getpackages
+ load_log
+ package_is_arch_all
+ pkgfile
+ rm_files
+ tmpdir
+ warning
+ write_log
+);
+
+
+our @EXPORT = qw(
+ extract_rules_target_name
+ to_rules_target
+ sequence_type
+ unpack_sequence
+ rules_explicit_target
+ extract_skipinfo
+ compute_selected_addons
+ load_sequence_addon
+ run_sequence_command_and_exit_on_failure
+ should_skip_due_to_dpo
+ check_for_obsolete_commands
+ compute_starting_point_in_sequences
+ parse_dh_cmd_options
+ run_hook_target
+ run_through_command_sequence
+ 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);
+
+sub extract_rules_target_name {
+ my ($command) = @_;
+ if ($command =~ m{^debian/rules\s++(.++)}) {
+ return $1
+ }
+ return;
+}
+
+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, $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).
+ 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) 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 = [$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});
+ push(@targets, $command) if not $seen{$command}++;
+ } elsif (! $seen{$command}) {
+ $seen{$command} = 1;
+ push(@sequence, $command);
+ }
+ }
+ }
+ }
+ return (\@targets, \@sequence);
+}
+
+
+sub rules_explicit_target {
+ # Checks if a specified target exists as an explicit target
+ # in debian/rules.
+ # undef is returned if target does not exist, 0 if target is noop
+ # and 1 if target has dependencies or executes commands.
+ my ($target) = @_;
+
+ if (! $RULES_PARSED) {
+ my $processing_targets = 0;
+ my $not_a_target = 0;
+ my $current_target;
+ open(MAKE, "LC_ALL=C make -Rrnpsf debian/rules ${\DUMMY_TARGET} 2>/dev/null |");
+ while (<MAKE>) {
+ if ($processing_targets) {
+ if (/^# Not a target:/) {
+ $not_a_target = 1;
+ } else {
+ if (!$not_a_target && m/^([^#:]+)::?\s*(.*)$/) {
+ # Target is defined. NOTE: if it is a dependency of
+ # .PHONY it will be defined too but that's ok.
+ # $2 contains target dependencies if any.
+ $current_target = $1;
+ $EXPLICIT_TARGETS{$current_target} = ($2) ? 1 : 0;
+ } else {
+ if (defined($current_target)) {
+ if (m/^#/) {
+ # Check if target has commands to execute
+ if (m/^#\s*(commands|recipe) to execute/) {
+ $EXPLICIT_TARGETS{$current_target} = 1;
+ }
+ } else {
+ # Target parsed.
+ $current_target = undef;
+ }
+ }
+ }
+ # "Not a target:" is always followed by
+ # a target name, so resetting this one
+ # here is safe.
+ $not_a_target = 0;
+ }
+ } elsif (m/^# Files$/) {
+ $processing_targets = 1;
+ }
+ }
+ close MAKE;
+ $RULES_PARSED = 1;
+ }
+
+ return $EXPLICIT_TARGETS{$target};
+}
+
+sub extract_skipinfo {
+ my ($command) = @_;
+
+ foreach my $dir (split(':', $ENV{PATH})) {
+ if (open (my $h, "<", "$dir/$command")) {
+ while (<$h>) {
+ if (m/PROMISE: DH NOOP( WITHOUT\s+(.*))?\s*$/) {
+ close $h;
+ return split(' ', $2) if defined($2);
+ return ('always-skip');
+ }
+ }
+ close $h;
+ return;
+ }
+ }
+ return;
+}
+
+sub _skipped_call_due_dpo {
+ my ($command, $dbo_flag) = @_;
+ my $me = Debian::Debhelper::Dh_Lib::_color(basename($0), 'bold');
+ my $skipped = Debian::Debhelper::Dh_Lib::_color('command-omitted', 'yellow');
+ print "${me}: ${skipped}: The call to \"${command}\" was omitted due to \"DEB_BUILD_OPTIONS=${dbo_flag}\"\n";
+ return;
+}
+
+sub should_skip_due_to_dpo {
+ my ($command, $to_be_invoked) = @_;
+
+ # Indirection/reference for readability
+ my $commands_ref = \%Debian::Debhelper::DH::SequenceState::commands_skippable_via_deb_build_options;
+
+ if (not $dh{'NO_ACT'} and exists($commands_ref->{$command})) {
+ my $flags_ref = $commands_ref->{$command};
+ for my $flag (@{$flags_ref}) {
+ if (get_buildoption($flag)) {
+ _skipped_call_due_dpo($to_be_invoked, $flag) if defined($to_be_invoked);
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+
+sub compute_starting_point_in_sequences {
+ my ($packages_ref, $full_sequence, $logged) = @_;
+ my %startpoint;
+ if (compat(9)) {
+ foreach my $package (@{$packages_ref}) {
+ my @log = load_log($package, $logged);
+ # 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;
+ }
+ }
+ }
+ }
+ } else {
+ foreach my $package (@{$packages_ref}) {
+ $startpoint{$package} = 0;
+ }
+ }
+ return %startpoint;
+}
+
+
+sub compute_selected_addons {
+ 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() };
+ my %explicitly_managed;
+
+ # 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
+ # requests.
+ push(@addon_requests, map { "+${_}" } split(",", $ENV{DH_EXTRA_ADDONS}))
+ if $ENV{DH_EXTRA_ADDONS};
+ if (not compat(9, 1)) {
+ # Enable autoreconf'ing by default in compat 10 or later.
+ push(@addon_requests, '+autoreconf');
+
+ # Enable systemd support by default in compat 10 or later.
+ # - compat 11 injects the dh_installsystemd tool directly in the
+ # sequence instead of using a --with sequence.
+ push(@addon_requests, '+systemd') if compat(10, 1);
+ push(@addon_requests, '+build-stamp');
+ }
+ for my $addon_name (sort(keys(%addon_constraints))) {
+ my $addon_type = $addon_constraints{$addon_name};
+
+ # Special-case for the "clean" target to avoid B-D-I dependencies in that for conditional add-ons
+ next if $sequence_name eq 'clean' and $addon_type ne SEQUENCE_TYPE_BOTH;
+ 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);
+
+ # Removing disabled add-ons are expensive (O(N) per time), so we
+ # attempt to make removals in bulk. Note that we have to be order
+ # preserving (due to #885580), so there is a limit to how "smart"
+ # we can be.
+ my $flush_disable_cache = sub {
+ @enabled_addons = grep { not exists($disabled_addons{$_}) } @enabled_addons;
+ for my $addon (keys(%disabled_addons)) {
+ delete($enabled{$addon});
+ }
+ %disabled_addons = ();
+ };
+
+ for my $request (@addon_requests) {
+ if ($request =~ m/^[+-]root[-_]sequence$/) {
+ error("Invalid request to skip the sequence \"root-sequence\": It cannot be disabled")
+ if $request =~ m/^-/;
+ error("Invalid request to load the sequence \"root-sequence\": Do not reference it directly");
+ }
+ if ($request =~ s/^[+]//) {
+ # Normalize "_" to "-" in the name.
+ $request =~ tr/_/-/;
+ $flush_disable_cache->() if %disabled_addons;
+ $explicitly_managed{$request} = 1;
+ push(@enabled_addons, $request) if not $enabled{$request}++;
+ } elsif ($request =~ s/^-//) {
+ # Normalize "_" to "-" in the name.
+ $request =~ tr/_/-/;
+ $explicitly_managed{$request} = 1;
+ $disabled_addons{$request} = 1;
+ } else {
+ error("Internal error: Invalid add-on request: $request (Missing +/- prefix)");
+ }
+ }
+
+ if (compat(14, 1) && getpackages() == 1 && !exists($explicitly_managed{'single-binary'})) {
+ if (not compat(13, 1)) {
+ warning("Implicitly activating single-binary dh addon for backwards compatibility. In compat 14+,");
+ warning("this fallback will *not* happen automatically and dh_auto_install will instead use a");
+ warning("different default for --destdir, which can cause the source to produce an empty binary package");
+ warning();
+ warning('To keep the existing behaviour, please activate the single-binary addon explicitly.');
+ warning('This can be done by adding "dh-sequence-single-binary" to Build-Depends or passing');
+ warning('--with=single-binary to dh.');
+ warning();
+ warning('If you have solved this issue differently (e.g., by passing --destdir explicitly to');
+ warning('dh_auto_install or not using dh_auto_install at all) and want to silence this warning');
+ warning('without activating the addon, you can do that by passing --without=single-binary to dh');
+ warning('to explicitly acknowledge the change.');
+ warning();
+ warning('Please see the description of the "single-binary" in "man dh" for more details of what');
+ warning('it does and why this is changing from implicit behaviour to explicitly opt-in.');
+ }
+ push(@enabled_addons, 'single-binary');
+ }
+
+ $flush_disable_cache->() if %disabled_addons;
+ return map {
+ {
+ 'name' => $_,
+ 'addon-type' => $addon_constraints{$_} // SEQUENCE_TYPE_BOTH,
+ }
+ } @enabled_addons;
+}
+
+
+sub load_sequence_addon {
+ my ($addon_name, $addon_type) = @_;
+ require Debian::Debhelper::DH::AddonAPI;
+ my $mod="Debian::Debhelper::Sequence::${addon_name}";
+ $mod=~s/-/_/g;
+ local $Debian::Debhelper::DH::AddonAPI::DH_INTERNAL_ADDON_NAME = $addon_name;
+ local $Debian::Debhelper::DH::AddonAPI::DH_INTERNAL_ADDON_TYPE = $addon_type;
+ eval "package Debian::Debhelper::DH::AddonAPI; use $mod";
+ if ($@) {
+ error("unable to load addon ${addon_name}: $@");
+ }
+}
+
+sub check_for_obsolete_commands {
+ my ($full_sequence) = @_;
+ my ($found_obsolete_targets, $min_compat);
+ for my $command (@{$full_sequence}) {
+ if (exists($Debian::Debhelper::DH::SequenceState::obsolete_command{$command})) {
+ my $addon_name = $Debian::Debhelper::DH::SequenceState::obsolete_command{$command}[1];
+ error("The addon ${addon_name} claimed that $command was obsolete, but it is not!?");
+ }
+ }
+ for my $command (sort(keys(%Debian::Debhelper::DH::SequenceState::obsolete_command))) {
+ my ($addon_name, $error_compat) = @{$Debian::Debhelper::DH::SequenceState::obsolete_command{$command}};
+ $addon_name = 'debhelper' if $addon_name eq 'root-sequence';
+ for my $prefix (qw(execute_before_ execute_after_ override_)) {
+ for my $suffix ('', '-arch', '-indep') {
+ my $target = "${prefix}${command}${suffix}";
+ if (defined(rules_explicit_target($target))) {
+ $found_obsolete_targets = 1;
+ $min_compat //= $error_compat;
+ $min_compat = $error_compat if $error_compat < $min_compat;
+ warning("The target ${target} references a now obsolete command and will not be run!"
+ . " (Marked by ${addon_name}, will be an error in compat $error_compat)");
+ }
+ }
+ }
+ }
+ if ($found_obsolete_targets and not compat($min_compat - 1)) {
+ error("Aborting due to left over override/hook targets for now removed commands.");
+ }
+ return;
+}
+
+sub run_sequence_command_and_exit_on_failure {
+ my ($command, @options) = @_;
+
+ # 3 space indent lines the command being run up under the
+ # sequence name after "dh ".
+ if (!$dh{QUIET}) {
+ print " ".escape_shell($command, @options)."\n";
+ }
+
+ return if $dh{NO_ACT};
+
+ my $ret=system { $command } $command, @options;
+ if ($ret >> 8 != 0) {
+ exit $ret >> 8;
+ }
+ if ($ret) {
+ exit 1;
+ }
+ return;
+}
+
+
+sub run_hook_target {
+ my ($target_stem, $min_compat_level, $command, $packages, @opts) = @_;
+ my @todo = @{$packages};
+ foreach my $override_type (undef, "arch", "indep") {
+ @todo = _run_injected_rules_target($target_stem, $override_type, $min_compat_level, $command, \@todo, @opts);
+ }
+ return @todo;
+}
+
+# Tries to run an override / hook target for a command. Returns the list of
+# packages that it was unable to run the target for.
+sub _run_injected_rules_target {
+ my ($target_stem, $override_type, $min_compat_level, $command, $packages, @options) = @_;
+
+ my $rules_target = $target_stem .
+ (defined $override_type ? "-".$override_type : "");
+
+ $command //= $rules_target; # Ensure it is defined
+
+ # Check which packages are of the right architecture for the
+ # override_type.
+ my (@todo, @rest);
+ my $has_explicit_target = rules_explicit_target($rules_target);
+
+ if ($has_explicit_target and defined($min_compat_level) and compat($min_compat_level - 1)) {
+ error("Hook target ${rules_target} is only supported in compat ${min_compat_level} or later");
+ }
+
+ if (defined $override_type) {
+ foreach my $package (@{$packages}) {
+ my $isall=package_is_arch_all($package);
+ if (($override_type eq 'indep' && $isall) ||
+ ($override_type eq 'arch' && !$isall)) {
+ push @todo, $package;
+ } else {
+ push @rest, $package;
+ push @options, "-N$package";
+ }
+ }
+ } else {
+ @todo=@{$packages};
+ }
+
+ return @{$packages} unless defined $has_explicit_target; # no such override
+ return @rest if ! $has_explicit_target; # has empty override
+ return @rest unless @todo; # has override, but no packages to act on
+ return @rest if should_skip_due_to_dpo($command, "debian/rules $rules_target");
+
+ if (defined $override_type) {
+ # Ensure appropriate -a or -i option is passed when running
+ # an arch-specific override target.
+ my $opt=$override_type eq "arch" ? "-a" : "-i";
+ push @options, $opt unless grep { $_ eq $opt } @options;
+ }
+
+ # Discard any override log files before calling the override
+ # target
+ if (not compat(9)) {
+ my @files = glob('debian/*.debhelper.log');
+ rm_files(@files) if @files;
+ }
+ # This passes the options through to commands called
+ # inside the target.
+ $ENV{DH_INTERNAL_OPTIONS}=join("\x1e", @options);
+ $ENV{DH_INTERNAL_OVERRIDE}=$command;
+ run_sequence_command_and_exit_on_failure("debian/rules", $rules_target);
+ delete $ENV{DH_INTERNAL_OPTIONS};
+ delete $ENV{DH_INTERNAL_OVERRIDE};
+
+ # Update log for overridden command now that it has
+ # finished successfully.
+ # (But avoid logging for dh_clean since it removes
+ # the log earlier.)
+ if (! $dh{NO_ACT} && $command ne 'dh_clean' && compat(9)) {
+ write_log($command, @todo);
+ commit_override_log(@todo);
+ }
+
+ # Override targets may introduce new helper files. Strictly
+ # speaking this *shouldn't* be necessary, but lets make no
+ # assumptions.
+ Debian::Debhelper::Dh_Lib::dh_clear_unsafe_cache();
+
+ return @rest;
+}
+
+
+# Options parsed to dh that may need to be passed on to helpers
+sub parse_dh_cmd_options {
+ my (@argv) = @_;
+
+ # Ref for readability
+ my $options_ref = \@Debian::Debhelper::DH::SequenceState::options;
+
+ while (@argv) {
+ my $opt = shift(@argv);
+ if ($opt =~ /^--?(after|until|before|with|without)$/) {
+ shift(@argv);
+ next;
+ } elsif ($opt =~ /^--?(no-act|remaining|(after|until|before|with|without)=)/) {
+ next;
+ } elsif ($opt =~ /^-/) {
+ if (not @{$options_ref} and $opt eq '--parallel' or $opt eq '--no-parallel') {
+ my $max_parallel;
+ # Ignore the option if it is the default for the given
+ # compat level.
+ next if compat(9) and $opt eq '--no-parallel';
+ next if not compat(9) and $opt eq '--parallel';
+ # Having an non-empty "@options" hurts performance quite a
+ # bit. At the same time, we want to promote the use of
+ # --(no-)parallel, so "tweak" the options a bit if there
+ # is no reason to include this option.
+ $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.
+ $Debian::Debhelper::DH::SequenceState::unoptimizable_option_bundle = 1
+ }
+ $Debian::Debhelper::DH::SequenceState::seen_options{$optname} = 1;
+ } elsif ($opt =~ 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)
+ $Debian::Debhelper::DH::SequenceState::unoptimizable_option_bundle = 1
+ } else {
+ # Special case that disables NOOP cli-options() as well
+ $Debian::Debhelper::DH::SequenceState::unoptimizable_user_option = 1;
+ }
+ push(@{$options_ref}, "-O" . $opt);
+ } elsif (@{$options_ref}) {
+ if ($options_ref->[$#{$options_ref}] =~ /^-O--/) {
+ $options_ref->[$#{$options_ref}] .= '=' . $opt;
+ } else {
+ # Special case that disables NOOP cli-options() as well
+ $Debian::Debhelper::DH::SequenceState::unoptimizable_user_option = 1;
+ $options_ref->[$#{$options_ref}] .= $opt;
+ }
+ } else {
+ error("Unknown parameter: $opt");
+ }
+ }
+ return;
+}
+
+
+sub run_through_command_sequence {
+ my ($full_sequence, $startpoint, $logged, $options, $all_packages, $arch_packages, $indep_packages) = @_;
+
+ my $command_opts = \%Debian::Debhelper::DH::SequenceState::command_opts;
+ my $stoppoint = $#{$full_sequence};
+
+ # Now run the commands in the sequence.
+ foreach my $i (0 .. $stoppoint) {
+ my $command = $full_sequence->[$i];
+
+ # Figure out which packages need to run this command.
+ my (@todo, @opts);
+ my @filtered_packages = _active_packages_for_command($command, $all_packages, $arch_packages, $indep_packages);
+
+ foreach my $package (@filtered_packages) {
+ if (($startpoint->{$package}//0) > $i ||
+ $logged->{$package}{$full_sequence->[$i]}) {
+ push(@opts, "-N$package");
+ }
+ else {
+ push(@todo, $package);
+ }
+ }
+ next unless @todo;
+ push(@opts, @{$options});
+
+ my $rules_target = extract_rules_target_name($command);
+ error("Internal error: $command is a rules target, but it is not supported to be!?") if defined($rules_target);
+
+ if (my $stamp_file = _stamp_target($command)) {
+ my %seen;
+ print " create-stamp " . escape_shell($stamp_file) . "\n";
+
+ next if $dh{NO_ACT};
+ open(my $fd, '+>>', $stamp_file) or error("open($stamp_file, rw) failed: $!");
+ # Seek to the beginning
+ seek($fd, 0, 0) or error("seek($stamp_file) failed: $!");
+ while (my $line = <$fd>) {
+ chomp($line);
+ $seen{$line} = 1;
+ }
+ for my $pkg (grep {not exists($seen{$_})} @todo) {
+ print {$fd} "$pkg\n";
+ }
+ close($fd) or error("close($stamp_file) failed: $!");
+ next;
+ }
+
+ my @full_todo = @todo;
+ run_hook_target("execute_before_${command}", 10, $command, \@full_todo, @opts);
+
+ # 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
+ # makes little sense.)
+ @todo = run_hook_target("override_${command}", undef, $command, \@full_todo, @opts);
+
+ if (@todo and not _can_skip_command($command, @todo)) {
+ # No need to run the command for any packages handled by the
+ # override targets.
+ my %todo = map {$_ => 1} @todo;
+ foreach my $package (@full_todo) {
+ if (!$todo{$package}) {
+ push @opts, "-N$package";
+ }
+ }
+ if (not should_skip_due_to_dpo($command, Debian::Debhelper::Dh_Lib::_format_cmdline($command, @opts))) {
+ my @cmd_options;
+ # Include additional command options if any
+ push(@cmd_options, @{$command_opts->{$command}})
+ if exists($command_opts->{$command});
+ push(@cmd_options, @opts);
+ run_sequence_command_and_exit_on_failure($command, _remove_dup_pkg_options(@cmd_options));
+ }
+ }
+
+ run_hook_target("execute_after_${command}", 10, $command, \@full_todo, @opts);
+ }
+}
+
+sub _remove_dup_pkg_options {
+ my (@options) = @_;
+ my @filtered_options;
+ my $arch = 0;
+ my $indep = 0;
+ for my $option (@options) {
+ if ($option eq '-a' or $option eq '--arch') {
+ next if $arch;
+ $arch = 1;
+ }
+ if ($option eq '-i' or $option eq '--indep') {
+ next if $indep;
+ $indep = 1;
+ }
+ push(@filtered_options, $option);
+ }
+ return @filtered_options;
+}
+
+
+sub _stamp_target {
+ my ($command) = @_;
+ if ($command =~ s/^create-stamp\s+//) {
+ return $command;
+ }
+ return;
+}
+
+{
+ my %skipinfo;
+ sub _can_skip_command {
+ my ($command, @packages) = @_;
+
+ return 0 if $dh{NO_ACT} and not $ENV{DH_INTERNAL_TEST_CAN_SKIP};
+
+ return 0 if $Debian::Debhelper::DH::SequenceState::unoptimizable_user_option ||
+ (exists $ENV{DH_OPTIONS} && length $ENV{DH_OPTIONS});
+
+ return 0 if exists($Debian::Debhelper::DH::SequenceState::command_opts{$command})
+ and @{$Debian::Debhelper::DH::SequenceState::command_opts{$command}};
+
+ if (! defined $skipinfo{$command}) {
+ $skipinfo{$command}=[extract_skipinfo($command)];
+ }
+ my @skipinfo=@{$skipinfo{$command}};
+ return 0 unless @skipinfo;
+ return 1 if scalar(@skipinfo) == 1 and $skipinfo[0] eq 'always-skip';
+ my ($all_pkgs, $had_cli_options);
+
+ foreach my $skipinfo (@skipinfo) {
+ my $type = 'pkgfile';
+ my $need = $skipinfo;
+ if ($skipinfo=~/^([a-zA-Z0-9-_]+)\((.*)\)$/) {
+ ($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 {
+ $all_pkgs //= [ getpackages() ];
+ $pkgs = $all_pkgs;
+ }
+ # Use the secret bulk check call
+ 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 $Debian::Debhelper::DH::SequenceState::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($Debian::Debhelper::DH::SequenceState::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);
+ } elsif ($type eq 'internal') {
+ if ($need eq 'bug#950723') {
+ $all_pkgs //= [ getpackages() ];
+ push(@{$all_pkgs}, map { "${_}@"} getpackages());
+ push(@packages, map { "${_}@"} @packages);
+ } elsif ($need eq 'rrr') {
+ my $req = Debian::Debhelper::Dh_Lib::root_requirements();
+ return 0 if $req ne 'none';
+ } else {
+ warning('Broken internal NOOP hint; should not happen unless someone is using implementation details');
+ error("Unknown internal NOOP type hint in ${command}: ${need}");
+ }
+ } else {
+ # Unknown hint - make no assumptions
+ return 0;
+ }
+ }
+ return 0 if not $had_cli_options and %Debian::Debhelper::DH::SequenceState::seen_options;
+ return 1;
+ }
+}
+
+sub _active_packages_for_command {
+ my ($command, $all_packages, $arch_packages, $indep_packages) = @_;
+ my $command_opts_ref = $Debian::Debhelper::DH::SequenceState::command_opts{$command};
+ my $selection = $all_packages;
+ if (grep { $_ eq '-i'} @{$command_opts_ref}) {
+ if (grep { $_ ne '-a'} @{$command_opts_ref}) {
+ $selection = $indep_packages;
+ }
+ } elsif (grep { $_ eq '-a'} @{$command_opts_ref}) {
+ $selection = $arch_packages;
+ }
+ return @{$selection};
+}
+
+1;
diff --git a/man/po4a/add.fr b/man/po4a/add.fr
index 5608967e..534e9083 100644
--- a/man/po4a/add.fr
+++ b/man/po4a/add.fr
@@ -2,14 +2,16 @@ PO4A-HEADER:mode=after;position=AUTEUR;beginboundary=\=head1
=head1 TRADUCTION
-Valéry Perrin <valery.perrin.debian@free.fr> le 17 septembre 2005. Dernière mise à jour le 3 avril 2011.
+Cette traduction est maintenue à l'aide de l'outil po4a
+<URL:http://po4a.alioth.debian.org/> par l'équipe francophone de traduction
+de Debian.
-L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité.
+Veuillez signaler toute erreur de traduction en écrivant à
+<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le paquet
+debhelper.
-Cette traduction est gérée dynamiquement par po4a. Certains paragraphes peuvent, éventuellement, apparaître en anglais. Ils correspondent à des modifications ou des ajouts récents du mainteneur, non encore incorporés dans la traduction française.
-
-La version originale anglaise de ce document est toujours consultable via la commande S<man -L en nom_du_man>.
-
-N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
+Vous pouvez toujours avoir accès à la version anglaise de ce document en
+utilisant la commande « man -L C <section> <page_de_man> ».
=cut
+
diff --git a/man/po4a/po/de.po b/man/po4a/po/de.po
index f87693d4..6087212e 100644
--- a/man/po4a/po/de.po
+++ b/man/po4a/po/de.po
@@ -1,15 +1,14 @@
# Translation of the debhelper documentation to German.
# Copyright (C) 1997-2011 Joey Hess.
# This file is distributed under the same license as the debhelper package.
-# Copyright (C) of this file 2011-2014 Chris Leick.
-#
+# Copyright (C) of this file 2011-2017, 2019, 2020 Chris Leick and 2020, 2022 Erik Pfannenstein
msgid ""
msgstr ""
-"Project-Id-Version: debhelper 9.20131227\n"
+"Project-Id-Version: debhelper 12.9\n"
"Report-Msgid-Bugs-To: debhelper@packages.debian.org\n"
-"POT-Creation-Date: 2014-10-03 15:16-0400\n"
-"PO-Revision-Date: 2012-10-22 22:47+0100\n"
-"Last-Translator: Chris Leick <c.leick@vollbio.de>\n"
+"POT-Creation-Date: 2023-08-14 19:10+0000\n"
+"PO-Revision-Date: 2023-01-11 22:00+0100\n"
+"Last-Translator: Erik Pfannenstein <debianignatz@gmx.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
@@ -18,76 +17,79 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. type: =head1
-#: debhelper.pod:1 dh:3 dh_auto_build:3 dh_auto_clean:3 dh_auto_configure:3
-#: dh_auto_install:3 dh_auto_test:3 dh_bugfiles:3 dh_builddeb:3 dh_clean:3
-#: dh_compress:3 dh_desktop:3 dh_fixperms:3 dh_gconf:3 dh_gencontrol:3
-#: dh_icons:3 dh_install:3 dh_installcatalogs:3 dh_installchangelogs:3
-#: dh_installcron:3 dh_installdeb:3 dh_installdebconf:3 dh_installdirs:3
-#: dh_installdocs:3 dh_installemacsen:3 dh_installexamples:3
-#: dh_installifupdown:3 dh_installinfo:3 dh_installinit:3 dh_installlogcheck:3
-#: dh_installlogrotate:3 dh_installman:3 dh_installmanpages:3 dh_installmenu:3
-#: dh_installmime:3 dh_installmodules:3 dh_installpam:3 dh_installppp:3
-#: dh_installudev:3 dh_installwm:3 dh_installxfonts:3 dh_link:3 dh_lintian:3
-#: dh_listpackages:3 dh_makeshlibs:3 dh_md5sums:3 dh_movefiles:3 dh_perl:3
-#: dh_prep:3 dh_scrollkeeper:3 dh_shlibdeps:3 dh_strip:3 dh_suidregister:3
-#: dh_testdir:3 dh_testroot:3 dh_undocumented:3 dh_usrlocal:3
+#: debhelper.pod:3 debhelper-compat-upgrade-checklist.pod:3
+#: debhelper-obsolete-compat.pod:1 dh:3 dh_auto_build:3 dh_auto_clean:3
+#: dh_auto_configure:3 dh_auto_install:3 dh_auto_test:3 dh_bugfiles:3
+#: dh_builddeb:5 dh_clean:3 dh_compress:3 dh_dwz:3 dh_fixperms:3
+#: dh_gencontrol:3 dh_icons:3 dh_install:3 dh_installcatalogs:3
+#: dh_installchangelogs:3 dh_installcron:3 dh_installdeb:3 dh_installdebconf:3
+#: dh_installdirs:3 dh_installdocs:5 dh_installemacsen:3 dh_installexamples:5
+#: dh_installifupdown:3 dh_installinfo:3 dh_installinit:3 dh_installinitramfs:3
+#: dh_installlogcheck:3 dh_installlogrotate:3 dh_installman:3
+#: dh_installmanpages:3 dh_installmenu:3 dh_installmime:3 dh_installmodules:3
+#: dh_installpam:3 dh_installppp:3 dh_installudev:3 dh_installwm:3
+#: dh_installxfonts:3 dh_link:3 dh_lintian:3 dh_listpackages:3 dh_makeshlibs:3
+#: dh_md5sums:3 dh_movefiles:3 dh_perl:3 dh_prep:3 dh_shlibdeps:3 dh_strip:3
+#: dh_testdir:3 dh_testroot:5 dh_usrlocal:5 dh_systemd_enable:3
+#: dh_systemd_start:3
msgid "NAME"
msgstr "NAME"
#. type: textblock
-#: debhelper.pod:3
+#: debhelper.pod:5
msgid "debhelper - the debhelper tool suite"
msgstr "debhelper - die Debhelper-Werkzeugsammlung"
#. type: =head1
-#: debhelper.pod:5 dh:12 dh_auto_build:12 dh_auto_clean:13
-#: dh_auto_configure:12 dh_auto_install:15 dh_auto_test:13 dh_bugfiles:12
-#: dh_builddeb:12 dh_clean:12 dh_compress:13 dh_desktop:12 dh_fixperms:13
-#: dh_gconf:12 dh_gencontrol:12 dh_icons:13 dh_install:13
-#: dh_installcatalogs:14 dh_installchangelogs:12 dh_installcron:12
-#: dh_installdeb:12 dh_installdebconf:12 dh_installdirs:12 dh_installdocs:12
-#: dh_installemacsen:12 dh_installexamples:12 dh_installifupdown:12
-#: dh_installinfo:12 dh_installinit:13 dh_installlogcheck:12
-#: dh_installlogrotate:12 dh_installman:13 dh_installmanpages:13
-#: dh_installmenu:12 dh_installmime:12 dh_installmodules:13 dh_installpam:12
-#: dh_installppp:12 dh_installudev:13 dh_installwm:12 dh_installxfonts:12
-#: dh_link:13 dh_lintian:12 dh_listpackages:12 dh_makeshlibs:12 dh_md5sums:13
-#: dh_movefiles:12 dh_perl:14 dh_prep:12 dh_scrollkeeper:12 dh_shlibdeps:13
-#: dh_strip:13 dh_suidregister:7 dh_testdir:12 dh_testroot:7
-#: dh_undocumented:12 dh_usrlocal:15
+#: debhelper.pod:7 debhelper-compat-upgrade-checklist.pod:7
+#: debhelper-obsolete-compat.pod:5 dh:22 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_gencontrol:16 dh_icons:16 dh_install:15 dh_installcatalogs:17
+#: dh_installchangelogs:16 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:18
+#: 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 "ÜBERSICHT"
#. type: textblock
-#: debhelper.pod:7
+#: debhelper.pod:9
msgid ""
-"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-p>I<package>] "
-"[B<-N>I<package>] [B<-P>I<tmpdir>]"
+"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<--no-act>] [B<-p>I<package>] [B<-"
+"N>I<package>] [B<-P>I<tmpdir>]"
msgstr ""
-"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-p>I<Paket>] [B<-"
+"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<--no-act>] [B<-p>I<Paket>] [B<-"
"N>I<Paket>] [B<-P>I<temporäres_Verzeichnis>]"
#. type: =head1
-#: debhelper.pod:9 dh:16 dh_auto_build:16 dh_auto_clean:17
-#: dh_auto_configure:16 dh_auto_install:19 dh_auto_test:17 dh_bugfiles:16
-#: dh_builddeb:16 dh_clean:16 dh_compress:17 dh_desktop:16 dh_fixperms:17
-#: dh_gconf:16 dh_gencontrol:16 dh_icons:17 dh_install:17
-#: dh_installcatalogs:18 dh_installchangelogs:16 dh_installcron:16
-#: dh_installdeb:16 dh_installdebconf:16 dh_installdirs:16 dh_installdocs:16
-#: dh_installemacsen:16 dh_installexamples:16 dh_installifupdown:16
-#: dh_installinfo:16 dh_installinit:17 dh_installlogcheck:16
-#: dh_installlogrotate:16 dh_installman:17 dh_installmanpages:17
-#: dh_installmenu:16 dh_installmime:16 dh_installmodules:17 dh_installpam:16
-#: dh_installppp:16 dh_installudev:17 dh_installwm:16 dh_installxfonts:16
-#: dh_link:17 dh_lintian:16 dh_listpackages:16 dh_makeshlibs:16 dh_md5sums:17
-#: dh_movefiles:16 dh_perl:18 dh_prep:16 dh_scrollkeeper:16 dh_shlibdeps:17
-#: dh_strip:17 dh_suidregister:11 dh_testdir:16 dh_testroot:11
-#: dh_undocumented:16 dh_usrlocal:19
+#: debhelper.pod:11 debhelper-compat-upgrade-checklist.pod:17 dh:26
+#: 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_gencontrol:20 dh_icons:20 dh_install:19
+#: dh_installcatalogs:21 dh_installchangelogs:20 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:22
+#: 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 "BESCHREIBUNG"
#. type: textblock
-#: debhelper.pod:11
+#: debhelper.pod:13
msgid ""
"Debhelper is used to help you build a Debian package. The philosophy behind "
"debhelper is to provide a collection of small, simple, and easily understood "
@@ -97,30 +99,31 @@ msgid ""
"and packages that use them will require only a rebuild to comply with the "
"new policy."
msgstr ""
-"Debhelper wird benutzt, um Ihnen beim Bau eines Debian-Pakets zu helfen. Die "
+"Debhelper ist dafür da, Ihnen beim Bau eines Debian-Pakets zu helfen. Die "
"Philosophie hinter Debhelper ist, eine kleine, einfach und leicht "
"verständliche Werkzeugsammlung bereitzustellen, die in F<debian/rules> "
"verwandt wird, um verschiedene geläufige Aspekte der Paketerstellung zu "
-"automatisieren. Dies bedeutet für Sie als Paketierer weniger Arbeit. "
-"Außerdem heißt das zu einem gewissen Grad, dass diese Werkzeuge geändert "
-"werden können, wenn sich die Debian-Richtlinie ändert und Pakete, die sie "
-"heranziehen, nur neu gebaut werden müssen, um ihr zu entsprechen."
+"automatisieren und Ihnen auf diese Weise Arbeit abzunehmen. Darüber hinaus "
+"können diese Werkzeuge bis zu einem gewissen Grad an etwaige Änderungen an "
+"der Debian-Richtlinie angepasst werden, sodass die Pakete, welche die "
+"Werkzeuge verwenden, lediglich neu erzeugt werden müssen, um der geänderten "
+"Richtlinie zu entsprechen."
#. type: textblock
-#: debhelper.pod:19
+#: debhelper.pod:21
msgid ""
"A typical F<debian/rules> file that uses debhelper will call several "
"debhelper commands in sequence, or use L<dh(1)> to automate this process. "
"Examples of rules files that use debhelper are in F</usr/share/doc/debhelper/"
"examples/>"
msgstr ""
-"Eine typische F<debian/rules>-Datei, die Debhelper benutzt, wird mehrere "
-"Debhelper-Befehle hintereinander aufrufen oder L<dh(1)> verwenden, um diesen "
+"Eine typische F<debian/rules>-Datei, die Debhelper benutzt, ruft mehrere "
+"Debhelper-Befehle hintereinander auf oder verwendet L<dh(1)>, um diesen "
"Prozess zu automatisieren. Beispiele für Regeldateien, die Debhelper "
"einsetzen, liegen in F</usr/share/doc/debhelper/examples/>."
#. type: textblock
-#: debhelper.pod:23
+#: debhelper.pod:25
msgid ""
"To create a new Debian package using debhelper, you can just copy one of the "
"sample rules files and edit it by hand. Or you can try the B<dh-make> "
@@ -131,19 +134,31 @@ msgid ""
msgstr ""
"Um ein neues Debian-Paket unter Benutzung von Debhelper zu erstellen, können "
"Sie einfach eine Beispielregeldatei kopieren und manuell bearbeiten. Oder "
-"Sie können das Paket B<dh-make> ausprobieren, das einen L<dh_make|"
-"dh_make(1)>-Befehl enthält, der den Prozess teilweise automatisiert. Für "
-"eine behutsamere Einführung enthält das Paket B<maint-guide> ein "
-"Lernprogramm, wie Sie Ihr erstes Paket unter Verwendung von Debhelper "
-"erstellen."
+"Sie probieren das Paket B<dh-make> aus; dieses enthält einenL<dh_make|"
+"dh_make(1)>-Befehl, welcher den Prozess teilweise automatisiert. Für eine "
+"behutsamere Einführung enthält das Paket ucB<maint-guide> ein Lernprogramm, "
+"mit dem Sie Ihr erstes Paket unter mit Hilfe von Debhelper erstellen."
+
+#. type: textblock
+#: debhelper.pod:31
+msgid ""
+"Except where the tool explicitly denotes otherwise, all of the debhelper "
+"tools assume that they run from the root directory of an unpacked source "
+"package. This is so they can locate find files like F<debian/control> when "
+"needed."
+msgstr ""
+"Solange nichts anderes angegeben wird, gehen alle Debhelper-Werkzeuge davon "
+"aus, dass sie aus dem Wurzelverzeichnis eines entpackten Quellpakets "
+"ausgeführt werden. Dadurch können sie, wenn notwendig, Dateien wie F<debian/"
+"control> finden."
#. type: =head1
-#: debhelper.pod:29
+#: debhelper.pod:36
msgid "DEBHELPER COMMANDS"
msgstr "DEBHELPER-BEFEHLE"
#. type: textblock
-#: debhelper.pod:31
+#: debhelper.pod:38
msgid ""
"Here is the list of debhelper commands you can use. See their man pages for "
"additional documentation."
@@ -152,33 +167,33 @@ msgstr ""
"Zusätzliche Dokumentation finden Sie in deren Handbuchseiten."
#. type: textblock
-#: debhelper.pod:36
+#: debhelper.pod:43
msgid "#LIST#"
msgstr "#LIST#"
#. type: =head2
-#: debhelper.pod:40
+#: debhelper.pod:47
msgid "Deprecated Commands"
msgstr "Missbilligte Befehle"
#. type: textblock
-#: debhelper.pod:42
+#: debhelper.pod:49
msgid "A few debhelper commands are deprecated and should not be used."
msgstr ""
-"Ein paar Debhelper-Befehle sind missbilligt und sollten nicht benutzt werden."
+"Ein paar Debhelper-Befehle sind veraltet und sollten nicht benutzt werden."
#. type: textblock
-#: debhelper.pod:46
+#: debhelper.pod:53
msgid "#LIST_DEPRECATED#"
msgstr "#LIST_DEPRECATED#"
#. type: =head2
-#: debhelper.pod:50
+#: debhelper.pod:57
msgid "Other Commands"
msgstr "Weitere Befehle"
#. type: textblock
-#: debhelper.pod:52
+#: debhelper.pod:59
msgid ""
"If a program's name starts with B<dh_>, and the program is not on the above "
"lists, then it is not part of the debhelper package, but it should still "
@@ -190,12 +205,12 @@ msgstr ""
"funktionieren."
#. type: =head1
-#: debhelper.pod:56
+#: debhelper.pod:63
msgid "DEBHELPER CONFIG FILES"
msgstr "DEBHELPER-KONFIGURATIONSDATEIEN"
#. type: textblock
-#: debhelper.pod:58
+#: debhelper.pod:65
msgid ""
"Many debhelper commands make use of files in F<debian/> to control what they "
"do. Besides the common F<debian/changelog> and F<debian/control>, which are "
@@ -206,14 +221,14 @@ msgid ""
msgstr ""
"Viele Debhelper-Befehle machen von den Dateien in F<debian/> Gebrauch, um zu "
"steuern, was sie tun. Neben den üblichen F<debian/changelog> und F<debian/"
-"control>, die in allen Paketen enthalten sind, nicht nur in denen, die "
-"Debhelper benutzen, können einige zusätzliche Dateien verwandt werden, um "
+"control>, die in allen Paketen enthalten sind (nicht nur in denen, die "
+"Debhelper benutzen), können einige zusätzliche Dateien verwandt werden, um "
"das Verhalten bestimmter Debhelper-Befehle zu konfigurieren. Diese Dateien "
"heißen üblicherweise debian/I<Paket>.foo (wobei I<Paket> natürlich durch das "
"Paket ersetzt wird, auf das es sich auswirkt)."
#. type: textblock
-#: debhelper.pod:65
+#: debhelper.pod:72
msgid ""
"For example, B<dh_installdocs> uses files named F<debian/package.docs> to "
"list the documentation files it will install. See the man pages of "
@@ -224,24 +239,32 @@ msgid ""
msgstr ""
"B<dh_installdocs> benutzt beispielsweise Dateien mit dem Namen F<debian/"
"package.docs>, um die Dokumentationsdateien aufzulisten, die es installieren "
-"wird. Lesen Sie die Handbuchseiten der einzelnen Befehle, um Einzelheiten "
-"über die Namen und Formate der Dateien zu erhalten, die sie verwenden. Im "
-"Allgemeinen werden diese Dateien Dateien auflisten, auf die sie einwirken, "
-"eine Datei pro Zeile. Einige Programme in Debhelper bedienen sich Paaren von "
-"Dateien und Zielen oder etwas kompiziertere Formate."
+"wird. Welche Dateien die einzelnen Befehle heranziehen, ihre Namen und "
+"Formate, entnehmen Sie den entsprechenden Handbuchseiten. Im Allgemeinen "
+"sind diese Dateien Listen von Dateien, die bearbeitet werden, eine Datei pro "
+"Zeile. Einige Programme in Debhelper bedienen sich Paaren von Dateien und "
+"Zielen oder etwas kompiziertere Formate."
#. type: textblock
-#: debhelper.pod:72
+#: debhelper.pod:79
msgid ""
"Note for the first (or only) binary package listed in F<debian/control>, "
-"debhelper will use F<debian/foo> when there's no F<debian/package.foo> file."
+"debhelper will use F<debian/foo> when there's no F<debian/I<package>.foo> "
+"file. However, it is often a good idea to keep the F<I<package>.> prefix as "
+"it is more explicit. The primary exception to this are files that debhelper "
+"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 ""
"Beachten Sie, dass Debhelper für das erste (oder einzige) in F<debian/"
-"control> aufgelistete Binärpaket F<debian/foo> benutzen wird, wenn es dort "
-"keine F<debian/package.foo>-Datei gibt."
+"control> aufgeführte Binärpaket F<debian/foo> benutzen wird, wenn es keine "
+"F<debian/I<Paket>.foo>-Datei gibt. Oft ist es jedoch eine gute Idee, das "
+"Präfix F<I<Paket>.> zu behalten, da es eindeutiger ist. Die Hauptausnahme "
+"davon bilden Dateien, die Debhelper standardmäßig in jedem Binärpaket "
+"installiert, wenn es kein Paketpräfix besitzt (wie F<debian/copyright> oder "
+"F<debian/changelog>)."
#. type: textblock
-#: debhelper.pod:76
+#: debhelper.pod:87
msgid ""
"In some rare cases, you may want to have different versions of these files "
"for different architectures or OSes. If files named debian/I<package>.foo."
@@ -259,7 +282,7 @@ msgstr ""
"allgemeineren Dateien, bevorzugt."
#. type: textblock
-#: debhelper.pod:83
+#: debhelper.pod:94
msgid ""
"Mostly, these config files are used to specify lists of various types of "
"files. Documentation or example files to install, files to move, and so on. "
@@ -277,28 +300,364 @@ msgstr ""
"beginnen, werden ignoriert."
#. type: textblock
-#: debhelper.pod:90
+#: debhelper.pod:101
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, "
-"you can make the file executable, and write a program that outputs whatever "
-"content is appropriate for a given situation. When you do so, the output is "
-"not further processed to expand wildcards or strip comments."
-msgstr ""
-"Die Syntax dieser Dateien ist absichtlich sehr einfach gehalten, damit sie "
-"leicht zu lesen, zu verstehen und zu ändern sind. Falls Sie Leistung und "
-"Komplexität vorziehen, können Sie die Datei ausführbar machen und ein "
-"Programm schreiben, das das ausgibt, was auch immer für eine gegebene "
-"Situation gegeignet ist. Wenn Sie dies tun, wird die Ausgabe nicht weiter "
-"verarbeitet, um Platzhalter zu expandieren oder Kommentare zu entfernen."
+"easy to read, understand, and modify."
+msgstr ""
+"Die Syntax dieser Dateien ist absichtlich sehr einfach gehalten, um sie "
+"leicht lesbar, verständlich und änderbar zu machen."
+
+#. type: =head2
+#: debhelper.pod:104
+msgid "Substitutions in debhelper config files"
+msgstr "Ersetzungen in Debhelper-Konfigurationsdateien"
+
+#. type: textblock
+#: debhelper.pod:106
+msgid ""
+"In compatibility level 13 and later, it is possible to use simple "
+"substitutions in debhelper config files for the following tools:"
+msgstr ""
+"In Kompatibilitätsstufe 13 und neuer ist es möglich, in den debhelper-"
+"Konfigurationsdateien einfache Ersetzungen für die folgenden Werkzeuge zu "
+"verwenden:"
+
+#. type: =item
+#: debhelper.pod:111 debhelper.pod:115 debhelper.pod:119 debhelper.pod:123
+#: debhelper.pod:127 debhelper.pod:131 debhelper.pod:135 debhelper.pod:139
+#: debhelper.pod:143 debhelper.pod:147 debhelper.pod:151 debhelper.pod:155
+#: debhelper.pod:159 debhelper.pod:247 debhelper.pod:252
+msgid "*"
+msgstr "*"
+
+#. type: textblock
+#: debhelper.pod:113
+msgid "dh_clean"
+msgstr "dh_clean"
+
+#. type: textblock
+#: debhelper.pod:117
+msgid "dh_install"
+msgstr "dh_install"
+
+#. type: textblock
+#: debhelper.pod:121
+msgid "dh_installcatalogs"
+msgstr "dh_installcatalogs"
+
+#. type: textblock
+#: debhelper.pod:125
+msgid "dh_installdeb"
+msgstr "dh_installdeb"
+
+#. type: textblock
+#: debhelper.pod:129
+msgid "dh_installdirs"
+msgstr "dh_installdirs"
+
+#. type: textblock
+#: debhelper.pod:133
+msgid "dh_installdocs"
+msgstr "dh_installdocs"
+
+#. type: textblock
+#: debhelper.pod:137
+msgid "dh_installexamples"
+msgstr "dh_installexamples"
+
+#. type: textblock
+#: debhelper.pod:141
+msgid "dh_installinfo"
+msgstr "dh_installinfo"
+
+#. type: textblock
+#: debhelper.pod:145
+msgid "dh_installman"
+msgstr "dh_installman"
+
+#. type: textblock
+#: debhelper.pod:149
+msgid "dh_installwm"
+msgstr "dh_installvm"
+
+#. type: textblock
+#: debhelper.pod:153
+msgid "dh_link"
+msgstr "dh_link"
+
+#. type: textblock
+#: debhelper.pod:157
+msgid "dh_missing"
+msgstr "dh_missing"
+
+#. type: textblock
+#: debhelper.pod:161
+msgid "dh_ucf"
+msgstr "dh_ucf"
+
+#. type: textblock
+#: debhelper.pod:165
+msgid ""
+"All substitution variables are of the form I<${foo}> and the braces are "
+"mandatory. Variable names are case-sensitive and consist of alphanumerics "
+"(a-zA-Z0-9), hyphens (-), underscores (_), and colons (:). The first "
+"character must be an alphanumeric."
+msgstr ""
+"Alle Ersetzungsvariablen haben die Form I<${foo}> und die Klammern sind "
+"Pflicht. Variablennamen berücksichtigen Groß- und Kleinschreibung und "
+"bestehen aus alphanumerischen Zeichen (a-zA-Z0-9), Bindestrichen (-), "
+"Unterstrichen (_) sowie Doppelpunkten (:). Das erst Zeichen muss "
+"alphanumerisch sein."
+
+#. type: textblock
+#: debhelper.pod:170
+msgid ""
+"If you need a literal dollar sign that cannot trigger a substitution, you "
+"can either use the B<${Dollar}> substitution or the sequence B<${}>."
+msgstr ""
+"Falls Sie ein Dollarzeichen benötigen, das kein Ersetzen auslösen kann, "
+"können Sie entweder die B<${Dollar}>-Ersetzung oder die Sequenz B<${}> "
+"verwenden."
+
+#. type: textblock
+#: debhelper.pod:173
+msgid "The following expansions are available:"
+msgstr "Die folgenden Expandierungen sind verfügbar:"
+
+#. type: =item
+#: debhelper.pod:177
+msgid "B<DEB_HOST_*>, B<DEB_BUILD_*>, B<DEB_TARGET_*>"
+msgstr "B<DEB_HOST_*>, B<DEB_BUILD_*>, B<DEB_TARGET_*>"
+
+#. type: textblock
+#: debhelper.pod:179
+msgid ""
+"Expands to the relevant L<dpkg-architecture(1)> value (similar to I<dpkg-"
+"architecture -qVARIABLE_HERE>)."
+msgstr ""
+"expandiert auf den passenden L<dpkg-architecture(1)>-Wert (ähnlich I<dpkg-"
+"architecture -qVARIABLE_HIER>)."
+
+#. type: textblock
+#: debhelper.pod:182
+msgid ""
+"When in doubt, the B<DEB_HOST_*> variant is the one that will work both for "
+"native and cross builds."
+msgstr ""
+"Im Zweifelsfall ist die Variante B<DEB_HOST_*> diejenige, die sowohl für "
+"natives Bauen als auch für andere Architekturen funktioniert."
+
+#. type: textblock
+#: debhelper.pod:185
+msgid ""
+"For performance reasons, debhelper will attempt to resolve these names from "
+"the environment first before consulting L<dpkg-architecture(1)>. This is "
+"mostly mentioned for completeness as it will not matter for most cases."
+msgstr ""
+"Aus Leistungsgründen versucht Debhelper, diese Namen aus der Umgebung "
+"aufzulösen, bevor es Rat bei L<dpkg-architecture(1)> sucht. Dies sei "
+"hauptsächlich der Vollständigkeit halber erwähnt und hat in den meisten "
+"Fällen keine Bedeutung."
+
+#. type: =item
+#: debhelper.pod:190
+msgid "B<Dollar>"
+msgstr "B<Dollar>"
+
+#. type: textblock
+#: debhelper.pod:192
+msgid ""
+"Expands to a single literal B<$>-symbol. This symbol will I<never> be "
+"considered part of a substitution variable. That is:"
+msgstr ""
+"expandiert auf ein einzelnes B<$>-Symbol. Dieses Symbol wird I<niemals> als "
+"Teil der Ersetzungsvariable angesehen. Dies bedeutet:"
+
+#. type: verbatim
+#: debhelper.pod:195
+#, no-wrap
+msgid ""
+" # Triggers an error\n"
+" ${NO_SUCH_TOKEN}\n"
+" # Expands to the literal value \"${NO_SUCH_TOKEN}\"\n"
+" ${Dollar}{NO_SUCH_TOKEN}\n"
+"\n"
+msgstr ""
+" # löst einen Fehler aus\n"
+" ${KEINE_DERARTIGE_MARKIERUNG}\n"
+" # expandiert auf den genauen Wert »${KEINE_DERARTIGE_MARKIERUNG}«\n"
+" ${Dollar}{KEINE_DERARTIGE_MARKIERUNG}\n"
+"\n"
+
+#. type: textblock
+#: debhelper.pod:200
+msgid ""
+"This variable equivalent to the sequence B<${}> and the two can be used "
+"interchangeably."
+msgstr ""
+"Diese Variable entspricht der Sequenz B<${}> und beides kann synonym benutzt "
+"werden."
+
+#. type: =item
+#: debhelper.pod:203
+msgid "B<Newline>, B<Space>, B<Tab>"
+msgstr "B<Newline>, B<Space>, B<Tab>"
+
+#. type: textblock
+#: debhelper.pod:205
+msgid "Expands to a single ASCII newline, space and tab respectively."
+msgstr ""
+"expandiert auf einen einzelnen ASCII-Zeilenumbruch, Leerzeichen "
+"beziehungsweise Tabulator."
+
+#. type: textblock
+#: debhelper.pod:207
+msgid ""
+"This can be useful if you need to include a literal whitespace character (e."
+"g. space) where it would otherwise be stripped or used as a separator."
+msgstr ""
+"Dies kann nützlich sein, wenn Sie ein Leerraumzeichen (z.B. Leerzeichen) "
+"einfügen möchten, wo es andernfalls entfernt oder als Trennzeichen benutzt "
+"würde."
+
+#. type: =item
+#: debhelper.pod:211
+msgid "B<< env:I<NAME> >>"
+msgstr "B<< env:I<NAME> >>"
+
+#. type: textblock
+#: debhelper.pod:213
+msgid ""
+"Expands to the environment variable I<NAME>. The environment variable must "
+"be set (but can be set to the empty string)."
+msgstr ""
+"expandiert zur Umgebungsvariable I<NAME>. Die Umgebungsvariable muss gesetzt "
+"sein (eine leere Zeichenkette reicht)."
+
+#. type: textblock
+#: debhelper.pod:218
+msgid ""
+"Note that all variables must expand to a defined value. As an example, if "
+"debhelper sees I<${env:FOO}>, then it will insist that the environment "
+"variable I<FOO> is set (it can be set to the empty string)."
+msgstr ""
+"Beachten Sie, dass alle Variablen auf einen definierten Wert expandiert "
+"werden müssen. Wenn Debhelper beispielsweise I<${env:FOO}> sieht, wird es "
+"darauf bestehen, dass die Umgebungsvariable I<FOO> gesetzt ist (eine leere "
+"Zeichenkette reicht)."
+
+#. type: =head3
+#: debhelper.pod:222
+msgid "Substitution limits"
+msgstr "Ersetzungsbeschränkungen"
+
+#. type: textblock
+#: debhelper.pod:224
+msgid ""
+"To avoid infinite loops and resource exhaustion, debhelper will stop with an "
+"error if the text contains many substitution variables (50) or they expand "
+"beyond a certain size (4096 characters or 3x length of the original input - "
+"whichever is bigger)."
+msgstr ""
+"Um Endlosschleifen und Ressourcenverschwendung zu vermeiden, bricht "
+"Debhelper mit einer Fehlermeldung ab, falls der Text viele "
+"Ersetzungsvariablen (50) enthält oder sie über eine bestimmte Größe "
+"expandieren (4096 Zeichen oder die dreifache Länge des Originaleingabe - je "
+"nachdem, was größer ist)."
+
+#. type: =head2
+#: debhelper.pod:229
+msgid "Executable debhelper config files"
+msgstr "Ausführbare Debhelper-Konfigurationsdateien"
+
+#. type: textblock
+#: debhelper.pod:231
+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 ""
+"Falls Sie zusätzliche Flexibilität benötigen, unterstützen viele Debhelper-"
+"Werkzeuge (z.B. L<dh_install(1)>) die Ausführung einer Konfigurationsdatei "
+"als Skript."
+
+#. type: textblock
+#: debhelper.pod:234
+msgid ""
+"To use this feature, simply mark the config file as executable (e.g. B<< "
+"chmod +x debian/I<package>.install >>) and the tool will attempt to execute "
+"it and use the output of the script. In many cases, you can use L<dh-"
+"exec(1)> as interpreter of the config file to retain most of the original "
+"syntax while getting the additional flexibility you need."
+msgstr ""
+"Um diese Funktionalität zu nutzen, markieren Sie die Konfigurationsdatei "
+"einfach als ausführbar (z.B. B<< chmod +x debian/I<Paket>.install >>) und "
+"das Werkzeug wird versuchen, es auszuführen und die Ausgabe des Skripts zu "
+"verwenden. In vielen Fällen können Sie auch L<dh-exec(1)> als Interpreter "
+"der Konfigurationsdatei verwenden, um das Meiste der Originalsyntax "
+"beizubehalten, obwohl Sie die zusätzliche Flexibilität wie gewünscht "
+"erhalten."
+
+#. type: textblock
+#: debhelper.pod:242
+msgid ""
+"When using executable debhelper config files, please be aware of the "
+"following:"
+msgstr ""
+"Wenn Sie ausführbare Debhelper-Konfigurationsdateien verwenden, sollten Sie "
+"Folgendes wissen:"
+
+#. type: textblock
+#: debhelper.pod:249
+msgid ""
+"The executable config file B<must> exit with success (i.e. its return code "
+"should indicate success)."
+msgstr ""
+"Die ausführbare Konfigurationsdatei B<muss> erfolgreich enden (d.h. der "
+"Rückgabewert sollte einen Erfolg anzeigen)."
+
+#. type: textblock
+#: debhelper.pod:254
+msgid ""
+"In compatibility level 13+, the output will be subject to substitutions (see "
+"L</Substitutions in debhelper config files>) where the tool support these. "
+"Remember to be careful if your generator I<also> provides substitutions as "
+"this can cause unnecessary confusion."
+msgstr ""
+"Auf Kompatibilitätsstufen oberhalb von 13 unterliegt die Ausgabe Ersetzungen "
+"(siehe L</Ersetzungen in Debhelper-Konfigurationsdateien>), soweit das "
+"Werkzeug diese unterstützt. Denken Sie daran, Vorsicht walten zu lassen, "
+"falls Ihr Generator I<auch> Ersetzungen bereitstellt, da dies zu unnötiger "
+"Verwirrung führen kann."
+
+#. type: textblock
+#: debhelper.pod:259
+msgid ""
+"Otherwise, the output will be used exactly as-is. Notably, debhelper will "
+"I<not> expand wildcards or strip comments or strip whitespace in the output."
+msgstr ""
+"Andernfalls wird die Ausgabe exakt so benutzt, wie sie ist. Insbesondere "
+"wird Debhelper Platzhalter I<nicht> expandieren oder Kommentare und "
+"Leerzeichen aus der Ausgabe entfernen."
+
+#. type: textblock
+#: debhelper.pod:265
+msgid ""
+"If you need the package to build on a file system where you cannot disable "
+"the executable bit, then you can use L<dh-exec(1)> and its B<strip-output> "
+"script."
+msgstr ""
+"Falls Sie das Paket auf einem Dateisystem bauen, auf dem Sie das "
+"Ausführungsbit nicht deaktivieren können, können Sie L<dh-exec(1)> und sein "
+"Skript B<strip-output> verwenden."
#. type: =head1
-#: debhelper.pod:96
+#: debhelper.pod:269
msgid "SHARED DEBHELPER OPTIONS"
msgstr "GEMEINSAM BENUTZTE DEBHELPER-OPTIONEN"
#. type: textblock
-#: debhelper.pod:98
+#: debhelper.pod:271
msgid ""
"The following command line options are supported by all debhelper programs."
msgstr ""
@@ -306,62 +665,70 @@ msgstr ""
"unterstützt."
#. type: =item
-#: debhelper.pod:102
+#: debhelper.pod:275
msgid "B<-v>, B<--verbose>"
msgstr "B<-v>, B<--verbose>"
#. type: textblock
-#: debhelper.pod:104
+#: debhelper.pod:277
+msgid "Verbose mode: show commands that modify the package build directory."
+msgstr ""
+"Detailreicher Modus: zeigt Befehle, die das Paketbauverzeichnis ändern."
+
+#. type: textblock
+#: debhelper.pod:279
msgid ""
-"Verbose mode: show all commands that modify the package build directory."
+"Note that verbose mode may also output other \"internal\" commands that do "
+"not directly affect the package build directory."
msgstr ""
-"detailreicher Modus: zeigt alle Befehle, die das Paketbauverzeichnis ändern"
+"Beachten Sie, dass der detailreiche Modus möglicherweise auch »interne« "
+"Befehle ausgibt, die das Paketbauverzeichnis nicht direkt betreffen."
#. type: =item
-#: debhelper.pod:106 dh:64
+#: debhelper.pod:282 dh:307
msgid "B<--no-act>"
msgstr "B<--no-act>"
#. type: textblock
-#: debhelper.pod:108
+#: debhelper.pod:284
msgid ""
"Do not really do anything. If used with -v, the result is that the command "
"will output what it would have done."
msgstr ""
-"tut nicht wirklich etwas. Falls es mit -v benutzt wird, wird als Ergebnis "
-"ausgegeben, was der Befehl getan hätte."
+"tut nicht wirklich etwas. Falls es zusammen mit -v benutzt wird, wird als "
+"Ergebnis ausgegeben, was der Befehl getan hätte."
#. type: =item
-#: debhelper.pod:111
+#: debhelper.pod:287
msgid "B<-a>, B<--arch>"
msgstr "B<-a>, B<--arch>"
#. type: textblock
-#: debhelper.pod:113
+#: debhelper.pod:289
msgid ""
-"Act on architecture dependent packages that should be built for the build "
-"architecture."
+"Act on architecture dependent packages that should be built for the "
+"B<DEB_HOST_ARCH> architecture."
msgstr ""
-"wirkt sich auf architekturabhängige Pakete aus, die für die Bauarchitektur "
-"gebaut werden sollen."
+"wirkt sich auf architekturabhängige Pakete aus, die für die Architektur "
+"B<DEB_HOST_ARCH> gebaut werden sollen."
#. type: =item
-#: debhelper.pod:116
+#: debhelper.pod:292
msgid "B<-i>, B<--indep>"
msgstr "B<-i>, B<--indep>"
#. type: textblock
-#: debhelper.pod:118
+#: debhelper.pod:294
msgid "Act on all architecture independent packages."
-msgstr "wirkt sich auf alle architekturunabhängigen Pakete aus."
+msgstr "wirkt sich auf alle architektur-unabhängigen Pakete aus."
#. type: =item
-#: debhelper.pod:120
+#: debhelper.pod:296
msgid "B<-p>I<package>, B<--package=>I<package>"
msgstr "B<-p>I<Paket>, B<--package=>I<Paket>"
#. type: textblock
-#: debhelper.pod:122
+#: debhelper.pod:298
msgid ""
"Act on the package named I<package>. This option may be specified multiple "
"times to make debhelper operate on a given set of packages."
@@ -371,40 +738,41 @@ msgstr ""
"arbeitet."
#. type: =item
-#: debhelper.pod:125
+#: debhelper.pod:301
msgid "B<-s>, B<--same-arch>"
msgstr "B<-s>, B<--same-arch>"
#. type: textblock
-#: debhelper.pod:127
-msgid ""
-"This used to be a smarter version of the B<-a> flag, but the B<-a> flag is "
-"now equally smart."
-msgstr ""
-"Dies wurde als intelligentere Version des Schalters B<-a> benutzt, aber B<-"
-"a> ist nun genauso intelligent."
+#: debhelper.pod:303
+msgid "Deprecated alias of B<-a>."
+msgstr "missbilligter Alias von B<-a>."
+
+#. type: textblock
+#: debhelper.pod:305 dh_install:80 dh_install:89
+msgid "This option is removed in compat 12."
+msgstr "Die Option wurde in Kompatibilitätsstufe 12 entfernt."
#. type: =item
-#: debhelper.pod:130
+#: debhelper.pod:307
msgid "B<-N>I<package>, B<--no-package=>I<package>"
msgstr "B<-N>I<Paket>, B<--no-package=>I<Paket>"
#. type: textblock
-#: debhelper.pod:132
+#: debhelper.pod:309
msgid ""
"Do not act on the specified package even if an B<-a>, B<-i>, or B<-p> option "
"lists the package as one that should be acted on."
msgstr ""
"verhindert Auswirkungen auf das angegebene Paket, sogar wenn die Optionen B<-"
-"a>, B<-i> oder B<-p> das Paket als zu verarbeiten auflisten."
+"a>, B<-i> oder B<-p> das Paket als ein zu verarbeitendes auflisten."
#. type: =item
-#: debhelper.pod:135
+#: debhelper.pod:312
msgid "B<--remaining-packages>"
msgstr "B<--remaining-packages>"
#. type: textblock
-#: debhelper.pod:137
+#: debhelper.pod:314
msgid ""
"Do not act on the packages which have already been acted on by this "
"debhelper command earlier (i.e. if the command is present in the package "
@@ -412,49 +780,20 @@ msgid ""
"options only for a couple of binary packages, pass this option to the last "
"call of the command to process the rest of packages with default settings."
msgstr ""
-"wirkt sich nicht auf die Pakete aus, auf die sich dieser Debhelper-Befehl "
-"bereits ausgewirkt hat (d.h. falls der Befehl im Debhelper-Protokoll des "
-"Pakets auftaucht). Falls Sie zum Beispiel den Befehl mit speziellen Optionen "
-"für nur ein paar Pakete aufrufen müssen, geben Sie diese Option beim letzten "
+"wirkt sich nicht auf die Pakete aus, die dieser Debhelper-Befehl bereits "
+"durchlaufen hat (d.h. falls der Befehl im Debhelper-Protokoll des Pakets "
+"auftaucht). Falls Sie zum Beispiel den Befehl nur bei einigen Binäraketen "
+"mit speziellen Optionen aufrufen müssen, geben Sie diese Option beim letzten "
"Aufruf des Befehls an, um die restlichen Pakete mit Standardeinstellungen zu "
"verarbeiten."
#. type: =item
-#: debhelper.pod:143
-msgid "B<--ignore=>I<file>"
-msgstr "B<--ignore=>I<Datei>"
-
-#. type: textblock
-#: debhelper.pod:145
-msgid ""
-"Ignore the specified file. This can be used if F<debian/> contains a "
-"debhelper config file that a debhelper command should not act on. Note that "
-"F<debian/compat>, F<debian/control>, and F<debian/changelog> can't be "
-"ignored, but then, there should never be a reason to ignore those files."
-msgstr ""
-"ignoriert die angegebene Datei. Dies ist sinnvoll, falls F<debian/> eine "
-"Debhelper-Konfigurationsdatei enthält, auf die ein Debhelper-Befehl nicht "
-"einwirken soll. Beachten Sie, dass F<debian/compat>, F<debian/control> und "
-"F<debian/changelog> nicht ignoriert werden können, andererseits sollte es "
-"nie einen Grund geben, diese Dateien zu ignorieren."
-
-#. type: textblock
-#: debhelper.pod:150
-msgid ""
-"For example, if upstream ships a F<debian/init> that you don't want "
-"B<dh_installinit> to install, use B<--ignore=debian/init>"
-msgstr ""
-"Falls die Originalautoren zum Beispiel ein F<debian/init> liefern, von dem "
-"Sie nicht wünschen, dass B<dh_installinit> es installiert, benutzen Sie B<--"
-"ignore=debian/init>"
-
-#. type: =item
-#: debhelper.pod:153
+#: debhelper.pod:320
msgid "B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>"
msgstr "B<-P>I<temporäres_Verzeichnis>, B<--tmpdir=>I<temporäres_Verzeichnis>"
#. type: textblock
-#: debhelper.pod:155
+#: debhelper.pod:322
msgid ""
"Use I<tmpdir> for package build directory. The default is debian/I<package>"
msgstr ""
@@ -462,30 +801,30 @@ msgstr ""
"Voreinstellung ist debian/I<Paket>."
#. type: =item
-#: debhelper.pod:157
+#: debhelper.pod:324
msgid "B<--mainpackage=>I<package>"
msgstr "B<--mainpackage=>I<Paket>"
#. type: textblock
-#: debhelper.pod:159
+#: debhelper.pod:326
msgid ""
"This little-used option changes the package which debhelper considers the "
"\"main package\", that is, the first one listed in F<debian/control>, and "
"the one for which F<debian/foo> files can be used instead of the usual "
"F<debian/package.foo> files."
msgstr ""
-"Diese selten benutzte Option ändert, welches Paket Debhelper als "
-"»Hauptpaket« ansieht, sprich das erste in F<debian/control> aufgeführte und "
-"das, für das F<debian/foo>-Dateien, statt der üblichen F<debian/Paket.foo>-"
-"Dateien verwandt werden können."
+"Diese selten benutzte Option ändert das Paket, welches Paket Debhelper als "
+"»Hauptpaket« ansieht, sprich als das Paket, welches zuerst in F<debian/"
+"control> aufgeführt wird und für das die F<debian/foo>-Dateien anstelle der "
+"üblichen F<debian/Paket.foo>-Dateien verwandt werden können."
#. type: =item
-#: debhelper.pod:164
+#: debhelper.pod:331
msgid "B<-O=>I<option>|I<bundle>"
msgstr "B<-O=>I<Option>|I<Bündel>"
#. type: textblock
-#: debhelper.pod:166
+#: debhelper.pod:333
msgid ""
"This is used by L<dh(1)> when passing user-specified options to all the "
"commands it runs. If the command supports the specified option or option "
@@ -494,17 +833,16 @@ msgid ""
msgstr ""
"Dies wird von L<dh(1)> verwandt, wenn benutzerdefinierte Optionen an alle "
"von ihm ausgeführten Befehle weitergereicht werden. Falls der Befehl die "
-"angegebene Option oder das Bündel von Optionen unterstützt, kommt er zum "
-"Tragen. Falls der Befehl (oder irgend ein Teil eines Optionenbündels) den "
-"Befehl nicht unterstützt, wird er ignoriert."
+"angegebene Option oder das ganze Bündel von Optionen unterstützt,kommt er "
+"zum Tragen. Falls nicht, wird er ignoriert."
#. type: =head1
-#: debhelper.pod:173
+#: debhelper.pod:340
msgid "COMMON DEBHELPER OPTIONS"
msgstr "HÄUFIGE DEBHELPER-OPTIONEN"
#. type: textblock
-#: debhelper.pod:175
+#: debhelper.pod:342
msgid ""
"The following command line options are supported by some debhelper "
"programs. See the man page of each program for a complete explanation of "
@@ -515,43 +853,43 @@ msgstr ""
"Handbuchseiten jedes einzelnen Programms."
#. type: =item
-#: debhelper.pod:181
+#: debhelper.pod:348
msgid "B<-n>"
msgstr "B<-n>"
#. type: textblock
-#: debhelper.pod:183
+#: debhelper.pod:350
msgid "Do not modify F<postinst>, F<postrm>, etc. scripts."
-msgstr "verändert keine F<postinst>-, F<postrm>- etc. Skripte"
+msgstr "verändert keine F<postinst>-, F<postrm>- etc. Skripte."
#. type: =item
-#: debhelper.pod:185 dh_compress:52 dh_install:81 dh_installchangelogs:71
-#: dh_installdocs:80 dh_installexamples:41 dh_link:62 dh_makeshlibs:81
-#: dh_md5sums:37 dh_shlibdeps:30 dh_strip:39
+#: debhelper.pod:352 dh_compress:56 dh_dwz:56 dh_installchangelogs:89
+#: dh_installdocs:109 dh_installexamples:84 dh_link:78 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>"
#. type: textblock
-#: debhelper.pod:187
+#: debhelper.pod:354
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."
+"exclude more than one thing. The I<item> is typically part of a filename, "
+"and any file containing the specified text will be excluded."
msgstr ""
"schließt ein Element von der Verarbeitung aus. Diese Option kann mehrfach "
-"benutzt werden, um mehr als nur eins auszuschließen. Das \\fElement\\fR ist "
+"benutzt werden, um mehr als nur eins auszuschließen. Das <Element> ist "
"üblicherweise Teil eines Dateinamens und jede Datei, die den angegebenen "
"Text enthält, wird ausgeschlossen."
#. type: =item
-#: debhelper.pod:191 dh_bugfiles:54 dh_compress:59 dh_installdirs:35
-#: dh_installdocs:75 dh_installexamples:36 dh_installinfo:35 dh_installman:65
-#: dh_link:57
+#: debhelper.pod:358 dh_bugfiles:57 dh_compress:63 dh_installdirs:49
+#: dh_installdocs:104 dh_installexamples:52 dh_installinfo:45 dh_installman:90
+#: dh_installwm:55 dh_link:73
msgid "B<-A>, B<--all>"
msgstr "B<-A>, B<--all>"
#. type: textblock
-#: debhelper.pod:193
+#: debhelper.pod:360
msgid ""
"Makes files or other items that are specified on the command line take "
"effect in ALL packages acted on, not just the first."
@@ -561,12 +899,12 @@ msgstr ""
"im ersten."
#. type: =head1
-#: debhelper.pod:198
+#: debhelper.pod:365
msgid "BUILD SYSTEM OPTIONS"
msgstr "BAUSYSTEMOPTIONEN"
#. type: textblock
-#: debhelper.pod:200
+#: debhelper.pod:367
msgid ""
"The following command line options are supported by all of the "
"B<dh_auto_>I<*> debhelper programs. These programs support a variety of "
@@ -576,20 +914,20 @@ msgid ""
"all the B<dh_auto_>I<*> programs."
msgstr ""
"Die folgenden Befehlszeilenoptionen werden von allen B<dh_auto_>I<*>-"
-"Debhelper-Ptogrammen unterstützt. Diese Programme unterstützen eine Vielzahl "
+"Debhelper-Programmen unterstützt. Diese Programme unterstützen eine Vielzahl "
"von Bausystemen und bestimmen normalerweise heuristisch, welches benutzt "
"werden soll und wie es verwendet wird. Sie können diese "
"Befehlszeilenoptionen nutzen, um das Standardverhalten zu ändern. "
-"Typischerweise werden sie an L<dh(1)> übergeben, das sie dann an all die "
+"Typischerweise werden sie an L<dh(1)> übergeben, das sie dann an alle "
"B<dh_auto_>I<*>-Programme übergibt."
#. type: =item
-#: debhelper.pod:209
+#: debhelper.pod:376
msgid "B<-S>I<buildsystem>, B<--buildsystem=>I<buildsystem>"
msgstr "B<-S>I<Bausystem>, B<--buildsystem=>I<Bausystem>"
#. type: textblock
-#: debhelper.pod:211
+#: debhelper.pod:378
msgid ""
"Force use of the specified I<buildsystem>, instead of trying to auto-select "
"one which might be applicable for the package."
@@ -597,34 +935,60 @@ msgstr ""
"erzwingt die Benutzung des angegebenen I<Bausystem>s, anstatt zu versuchen, "
"automatisch eins auszuwählen, das für das Paket geeignet sein könnte."
+#. type: textblock
+#: debhelper.pod:381
+msgid "Pass B<none> as I<buildsystem> to disable auto-selection."
+msgstr ""
+"übergibt B<none> als I<Bausystem>, um automatisches Auswählen zu "
+"deaktivieren."
+
#. type: =item
-#: debhelper.pod:214
-msgid "B<-D>I<directory>, B<--sourcedirectory=>I<directory>"
-msgstr "B<-D>I<Verzeichnis>, B<--sourcedirectory=>I<Verzeichnis>"
+#: debhelper.pod:383
+msgid ""
+"B<-D>I<directory>, B<--sourcedir=>I<directory>, B<--"
+"sourcedirectory=>I<directory>"
+msgstr ""
+"B<-D>I<Verzeichnis>, B<--sourcedir=>I<Verzeichnis>, B<--"
+"sourcedirectory=>I<Verzeichnis>"
#. type: textblock
-#: debhelper.pod:216
+#: debhelper.pod:385
msgid ""
"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."
msgstr ""
"geht davon aus, dass der Quellverzeichnisbaum des Originalpakets im "
-"angegebenen I<Verzeichnis>, anstatt auf der obersten Verzeichnisebene des "
-"Debian-Quellpaketverzeichnisbaums, liegt."
+"angegebenen I<Verzeichnis> statt auf der obersten Verzeichnisebene des "
+"Debian-Quellpaketverzeichnisbaums liegt."
+
+#. type: textblock
+#: debhelper.pod:389
+msgid ""
+"B<Warning>: The B<--sourcedir> variant matches a similar named option in "
+"B<dh_install> and B<dh_missing> (etc.) for historical reasons. While they "
+"have a similar name, they have very distinct purposes and in some cases it "
+"can cause errors when this variant is passed to B<dh> (when then passes it "
+"on to all tools)."
+msgstr ""
+"B<Warnung>: Für die B<--sourcedir>-Variante gibt es aus historischen Gründen "
+"eine ähnlich benannte Option in B<dh_install> und B<dh_missing> (etc.). "
+"Obwohl ihre Namen identisch sind, dienen sie völlig unterschiedlichen "
+"Zwecken, somit können in einigen Fällen Fehler auftreten, wenn diese "
+"Variante an B<dh> übergeben wird (und dieses sie seinerseits an alle anderen "
+"Werkzeuge weitergibt)."
#. type: =item
-#: debhelper.pod:220
-msgid "B<-B>[I<directory>], B<--builddirectory=>[I<directory>]"
-msgstr "B<-B>[I<Verzeichnis>], B<--builddirectory=>[I<Verzeichnis>]"
+#: debhelper.pod:395
+msgid ""
+"B<-B>[I<directory>], B<--builddir>[I<=directory>], B<--"
+"builddirectory>[I<=directory>]"
+msgstr ""
+"B<-B>[I<Verzeichnis>], B<--builddir>[I<=Verzeichnis>], B<--"
+"builddirectory=>[I<Verzeichnis>]"
#. type: textblock
-#: debhelper.pod:222
-#, fuzzy
-#| msgid ""
-#| "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 will chosen."
+#: debhelper.pod:397
msgid ""
"Enable out of source building and use the specified I<directory> as the "
"build directory. If I<directory> parameter is omitted, a default build "
@@ -635,7 +999,7 @@ msgstr ""
"weggelassen wurde, wird ein Vorgabebauverzeichnis ausgewählt."
#. type: textblock
-#: debhelper.pod:226
+#: debhelper.pod:401
msgid ""
"If this option is not specified, building will be done in source by default "
"unless the build system requires or prefers out of source tree building. In "
@@ -645,11 +1009,11 @@ msgstr ""
"Falls diese Option nicht angegeben ist, wird standardmäßig in der Quelle "
"gebaut, falls das Bausystem nicht das Bauen außerhalb des "
"Quellverzeichnisbaums erfordert oder bevorzugt. In einem solchen Fall wird "
-"ein Standardbauverzeichnis benutzt, selbst wenn B<--builddirectory> "
+"das Standardbauverzeichnis benutzt, selbst wenn B<--builddirectory> "
"angegeben wurde."
#. type: textblock
-#: debhelper.pod:231
+#: debhelper.pod:406
msgid ""
"If the build system prefers out of source tree building but still allows in "
"source building, the latter can be re-enabled by passing a build directory "
@@ -661,40 +1025,55 @@ msgstr ""
"dem Quellverzeichnispfad entspricht."
#. type: =item
-#: debhelper.pod:235
-msgid "B<--parallel>"
-msgstr "B<--parallel>"
+#: debhelper.pod:410
+msgid "B<--parallel>, B<--no-parallel>"
+msgstr "B<--parallel>, B<--no-parallel>"
#. type: textblock
-#: debhelper.pod:237
+#: debhelper.pod:412
msgid ""
-"Enable parallel builds if underlying build system supports them. The number "
-"of parallel jobs is controlled by the B<DEB_BUILD_OPTIONS> environment "
-"variable (L<Debian Policy, section 4.9.1>) at build time. It might also be "
-"subject to a build system specific limit."
+"Control whether parallel builds should be used if underlying build system "
+"supports them. The number of parallel jobs is controlled by the "
+"B<DEB_BUILD_OPTIONS> environment variable (L<Debian Policy, section 4.9.1>) "
+"at build time. It might also be subject to a build system specific limit."
msgstr ""
-"aktiviert paralleles Bauen, falls das zugrundeliegende Bausystem dies "
-"unterstützt. Die Anzahl paralleler Aufgaben wird zur Bauzeit durch die "
+"prüft, ob parallel gebaut werden soll, falls das zugrundeliegende Bausystem "
+"dies unterstützt. Die Anzahl paralleler Aufgaben wird zur Bauzeit durch die "
"Umgebungsvariable B<DEB_BUILD_OPTIONS> (L<Debian-Richtlinie, Abschnitt "
"4.9.1>) gesteuert, Sie könnte außerdem Gegenstand einer "
"bausystemspezifischen Begrenzung sein."
#. type: textblock
-#: debhelper.pod:242
+#: debhelper.pod:418
msgid ""
-"If this option is not specified, debhelper currently defaults to not "
-"allowing parallel package builds."
+"If neither option is specified, debhelper currently defaults to B<--"
+"parallel> in compat 10 (or later) and B<--no-parallel> otherwise."
msgstr ""
-"Falls diese Option nicht angegeben wurde, erlaubt Debhelper derzeit "
-"standardmäßig kein paralleles Bauen von Paketen."
+"Falls keine der Optionen angegeben wurde, ist die Voreinstellung von "
+"Debhelper derzeit B<--parallel> in Kompatibilitätsversion 10 (oder höher) "
+"und andernfalls B<--no-parallel>."
+
+#. type: textblock
+#: debhelper.pod:421
+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 "
+"this happens when B<DEB_BUILD_OPTIONS> does not have a I<parallel> parameter "
+"(or its value is 1)."
+msgstr ""
+"Zwecks Optimierung wird B<dh> versuchen, die Übergabe dieser Optionen an "
+"Unterprozesse zu vermeiden, falls sie unnötig sind und als einzige Optionen "
+"übergeben werden. Dies geschieht insbesondere dann, wenn "
+"B<DEB_BUILD_OPTIONS> keinen I<parallel>-Parameter hat (oder dessen Wert 1 "
+"ist)."
#. type: =item
-#: debhelper.pod:245
+#: debhelper.pod:426
msgid "B<--max-parallel=>I<maximum>"
msgstr "B<--max-parallel=>I<Maximum>"
#. type: textblock
-#: debhelper.pod:247
+#: debhelper.pod:428
msgid ""
"This option implies B<--parallel> and allows further limiting the number of "
"jobs that can be used in a parallel build. If the package build is known to "
@@ -702,19 +1081,120 @@ msgid ""
"maximum level that is known to work, or that you wish to support."
msgstr ""
"Diese Option impliziert B<--parallel> und erlaubt die weitere Begrenzung der "
-"Anzahl von Aufgaben, die bei einem parallelen Bauen benutzt werden können. "
+"Anzahl von Aufgaben, die bei einem parallelen Bau benutzt werden können. "
"Falls bekannt ist, dass das Bauen des Pakets nur mit einer bestimmten Stufe "
-"der Gleichzeitigkeit funktioniert, können Sie diese auf die maximale Stufe "
+"der Gleichzeitigkeit funktioniert, können Sie diese auf die höchste Stufe "
"setzen, von der bekannt ist, dass sie funktioniert oder auf die, von der Sie "
"wünschen, dass sie unterstützt wird."
+#. type: textblock
+#: debhelper.pod:433
+msgid ""
+"Notably, setting the maximum to 1 is effectively the same as using B<--no-"
+"parallel>."
+msgstr ""
+"Übrigens bewirkt das Setzen des Maximums auf 1 dasselbe wie die Verwendung "
+"von B<--no-parallel>."
+
+#. type: =item
+#: debhelper.pod:436
+msgid "B<--reload-all-buildenv-variables>"
+msgstr "B<--reload-all-buildenv-variables>"
+
+#. type: textblock
+#: debhelper.pod:438
+msgid ""
+"By default, L<dh(1)> will compute several environment variables (e.g. by "
+"using L<dpkg-buildflags(1)>) and cache them to avoid having all B<dh_auto_*> "
+"tool recompute them."
+msgstr ""
+"Standardmäßig wird L<dh(1)> mehrere Umgebungsvariablen berechnen (z.B. "
+"mittels L<dpkg-buildflags(1)>) und sie zwischenspeichern, um zu verhindern, "
+"dass alle B<dh_auto_*>-Werkzeuge sie erneut berechnen."
+
+#. type: textblock
+#: debhelper.pod:442
+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 ""
+"Wenn diese Option übergeben wird, wird das konkrete B<dh_auto_*>-Werkzeug "
+"den Zwischenspeicher von L<dh(1)> ignorieren und das neue Erzeugen dieser "
+"Variablen auslösen. Dies hilft in den sehr seltenen Fällen, in denen das "
+"Paket mehrere Bauvorgänge mit unterschiedlichen B<…FLAGS>-Optionen benötigt. "
+"Ein konkretes Beispiel wäre die Notwendigkeit, den Parameter B<-O> in "
+"B<CFLAGS> beim zweiten Bauen abzuändern:"
+
+#. type: verbatim
+#: debhelper.pod:449
+#, no-wrap
+msgid ""
+" export DEB_CFLAGS_MAINT_APPEND=-O3\n"
+"\n"
+msgstr ""
+" export DEB_CFLAGS_MAINT_APPEND=-O3\n"
+"\n"
+
+#. type: verbatim
+#: debhelper.pod:451
+#, no-wrap
+msgid ""
+" %:\n"
+" dh $@\n"
+"\n"
+msgstr ""
+" %:\n"
+" dh $@\n"
+"\n"
+
+#. type: verbatim
+#: debhelper.pod:454
+#, 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 ""
+" 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"
+
+#. type: textblock
+#: debhelper.pod:459
+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 ""
+"Ohne B<--reload-all-buildenv-variables> im zweiten Aufruf von "
+"L<dh_auto_configure(1)> würde die Änderung in B<DEB_CFLAGS_MAINT_APPEND> "
+"ignoriert werden, da L<dh_auto_configure(1)> den von durch L<dh(1)> "
+"zwischengespeicherten B<CFLAGS>-Wert benutzen würde."
+
+#. type: textblock
+#: debhelper.pod:464
+msgid ""
+"This option is only available with B<< debhelper (>= 12.7~) >> when the "
+"package uses compatibility level 9 or later."
+msgstr ""
+"Diese Option ist mit B<< debhelper (>= 12.7~) >> nur verfügbar, wenn das "
+"Paket Kompatibilitätsstufe 9 oder neuer verwendet."
+
#. type: =item
-#: debhelper.pod:252 dh:60
+#: debhelper.pod:467 dh:299
msgid "B<--list>, B<-l>"
msgstr "B<--list>, B<-l>"
#. type: textblock
-#: debhelper.pod:254
+#: debhelper.pod:469
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 "
@@ -724,76 +1204,154 @@ msgstr ""
"listet alle Bausysteme auf, die auf diesem System von Debhelper unterstützt "
"werden. Diese Liste enthält sowohl Standardbausysteme als auch Bausysteme "
"Dritter (als solche gekennzeichnet). Außerdem zeigt es, welches Bausystem "
-"automatisch ausgewählt würde oder welches durch die Option B<--buildsystem> "
-"manuell angegeben wird."
+"automatisch ausgewählt werden würde oder welches durch die Option B<--"
+"buildsystem> manuell angegeben wird."
#. type: =head1
-#: debhelper.pod:261
+#: debhelper.pod:476
msgid "COMPATIBILITY LEVELS"
msgstr "KOMPATIBILITÄTSSTUFEN"
#. type: textblock
-#: debhelper.pod:263
+#: debhelper.pod:478
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 "
-"tell debhelper which compatibility level it should use, and it modifies its "
-"behavior in various ways."
+"must tell debhelper which compatibility level it should use, and it modifies "
+"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 "
-"nötig zu halten und weil sein Autor mehr Erfahrung gewinnt. Um zu "
-"verhindern, dass solche wesentlichen Änderungen existierende Pakete kaputt "
-"machen, wurde das Konzept der Debhelper-Kompatibilitätsstufen eingeführt. "
-"Sie teilen Debhelper mit, welche Kompatibilitätsstufe es nutzen sollte und "
-"sie ändern sein Verhalten auf verschiedene Arten."
+"Debhelper vorgenommen werden, um es so sauber und übersichtlich wie möglich "
+"zu halten, denn die Bedürfnisse ändern sich bzw. sein Autor sammelt mehr "
+"Erfahrung. Um zu verhindern, dass solche wesentlichen Änderungen "
+"existierende Pakete beschädigen, ist das Konzept der Debhelper-"
+"Kompatibilitätsstufen eingeführt worden. Sie müssen Debhelper mitteilen, "
+"welche Kompatibilitätsstufe es nutzen soll und sie ändert sein Verhalten auf "
+"verschiedene Arten."
#. type: textblock
-#: debhelper.pod:270
+#: debhelper.pod:485
msgid ""
-"Tell debhelper what compatibility level to use by writing a number to "
-"F<debian/compat>. For example, to turn on v9 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 in den Modus "
-"V9 zu schalten geben Sie Folgendes ein:"
+"Im aktuellen Debhelper können Sie die Kompatibilitätsstufe in F<debian/"
+"control> angeben, indem Sie ein Build-Depends für das Paket Debhelper-Compat "
+"hinzufügen. Um beispielsweise den Modus v#RECOMMENDED_COMPAT# zu benutzen, "
+"stellen Sie sicher, dass F<debian/control> Folgendes enthält:"
#. type: verbatim
-#: debhelper.pod:273
+#: debhelper.pod:489
#, no-wrap
msgid ""
-" % echo 9 > debian/compat\n"
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
"\n"
msgstr ""
-" % echo 9 > debian/compat\n"
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
"\n"
#. type: textblock
-#: debhelper.pod:275
-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 9, 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 9 sicherstellen, dass debian/control Folgendes hat:"
+#: debhelper.pod:491
+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 ""
+"Dies dient auch als eine geeignete versionierte Bauabhängigkeit zu einer "
+"ausreichenden Version des Debhelper-Pakets, so dass Sie keine separate "
+"versionierte Bauabhängigkeit zum Debhelper-Paket angeben müssen, es sei "
+"denn, Sie benötigen eine besondere Zwischenveröffentlichung von Debhelper "
+"(wie für die Veröffentlichung einer neuen Funktionalität oder einer "
+"Fehlerbehebung innerhalb einer Kompatibilitätsstufe)."
+
+#. type: textblock
+#: debhelper.pod:497
+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, if only for selected commands, "
+"B<DH_COMPAT>)."
+msgstr ""
+"Beachten Sie, dass Debhelper-Compat nicht für experimentelle oder Beta-"
+"Kompatibilitätsstufen vorgesehen ist. Pakete, die mit diesen "
+"Kompatibilitätsstufen experimentieren, sollten F<debian/compat> oder, falls "
+"nur ausgewählte Befehle betroffen sind, B<DH_COMPAT> verwenden."
+
+# Profided by Markus Hiereth and Helge Kreutzmann, thanks!
+#. type: textblock
+#: debhelper.pod:501
+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. To use this method, the F<debian/compat> file 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 ""
+"Frühere Versionen von Debhelper benötigten die Angabe der "
+"Kompatibilitätsstufe in der Datei F<debian/compat>. Das aktuelle Debhelper "
+"unterstützt dies zum Zweck der Rückwärtskompatibilität weiterhin. Um diese "
+"Methode zu verwenden, sollte die Datei F<debian/compat> die "
+"Kompatibilitätsstufe als einzelne Zahl enthalten und keinen weiteren Inhalt. "
+"Falls Sie die Kompatibilitätsstufe mit dieser Methode angeben, muss Ihr "
+"Paket auch eine passende versionierte Bauabhängigkeit auf das Paket "
+"Debhelper haben, und zwar mit einer Version, die identisch zu (oder höher "
+"als) die Kompatibilitätsstufe ist, die von ihrem Paket verwandt wird. Daher "
+"sollten Sie, falls Sie die Kompatibilitätsstufe #RECOMMENDED_COMPAT# in "
+"F<debian/compat> angeben, sicherstellen, dass F<debian/control> Folgendes "
+"enthält:"
#. type: verbatim
-#: debhelper.pod:279
+#: debhelper.pod:511
#, no-wrap
msgid ""
-" Build-Depends: debhelper (>= 9)\n"
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#~)\n"
"\n"
msgstr ""
-" Build-Depends: debhelper (>= 9)\n"
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#~)\n"
"\n"
#. type: textblock
-#: debhelper.pod:281
+#: debhelper.pod:513
+msgid ""
+"Note that you must use either the build-dependency on debhelper-compat or "
+"the F<debian/compat> file. Whenever possible, the debhelper-compat build-"
+"dependency is recommended."
+msgstr ""
+"Beachten Sie, dass Sie entweder die Bauabhängigkeit auf debhelper-compat "
+"oder die F<debian/compat>-Datei verwenden müssen. Wo immer möglich, "
+"empfiehlt sich die debhelper-compat-Bauabhängigkeit."
+
+#. type: textblock
+#: debhelper.pod:517
+msgid ""
+"If needed be, the B<DH_COMPAT> environment variable can be used to override "
+"the compat level for a given command. The feature is mostly useful for "
+"either temporarily upgrading a few commands to a new compat level or keeping "
+"a few commands on a lower compat level. The feature is best used sparingly "
+"as it effectively introduces special-cases into the F<debian/rules> file "
+"that may be surprising to maintainers or reviewers (or, in the long term, to "
+"yourself)."
+msgstr ""
+"Falls nötig, kann die B<DH_COMPAT>-Umgebungsvariable dazu verwendet werden, "
+"die Kompatibilitätsstufe für einen bestimmten Befehl außer Kraft zu setzen. "
+"Diese Funktionalität eignet sich hauptsächlich für die vorübergehende "
+"Anhebung einiger Befehle auf eine neue Kompatibilitätsstufe oder zum "
+"selektiven Zurückhalten auf einer niedrigeren Stufe. Es sollte sparsam "
+"eingesetzt werden, weil es im Endeffekt zu Spezialfällen in der F<debian/"
+"rules>-Datei führt, die für unangenehme Überraschungen für Betreuer und "
+"Prüfer sorgen können (oder auch langfristig bei Ihnen selbst)."
+
+#. type: textblock
+#: debhelper.pod:525
msgid ""
"Unless otherwise indicated, all debhelper documentation assumes that you are "
"using the most recent compatibility level, and in most cases does not "
@@ -802,357 +1360,2513 @@ msgid ""
"read below for notes about what is different in earlier compatibility levels."
msgstr ""
"Wenn nicht anders angegeben, geht sämtliche Debhelper-Dokumentation davon "
-"aus, dass Sie die aktuellste Kompatibilitätsstufe nutzen und in den meisten "
-"Fällen wird nicht angezeigt, wenn sich dieses Verhalten von einer früheren "
-"Kompatibilitätsstufe unterscheidet. Wenn Sie also nicht die aktuellste "
-"Kompatibilitätsstufe benutzen, sind Sie gut beraten, das Folgende zu lesen, "
-"um Hinweise zu erhalten, was sich gegenüber früheren Kompatibilitätsstufen "
-"unterscheidet."
+"aus, dass Sie die aktuellste Kompatibilitätsstufe nutzen, und weist in den "
+"meisten Fällen nicht darauf hin, wenn sich dieses Verhalten von einer "
+"älteren Kompatibilitätsstufe unterscheidet. Sollten Sie also nicht die "
+"aktuellste Kompatibilitätsstufe benutzen, ist es eine gute Idee, folgende "
+"Hinweise zu den Unterschieden gegenüber älteren Kompatibilitätsstufen zu "
+"lesen."
+
+#. type: =head2
+#: debhelper.pod:532
+msgid "Supported compatibility levels"
+msgstr "Unterstützte Kompatibilitätsstufen"
#. type: textblock
-#: debhelper.pod:288
-msgid "These are the available compatibility levels:"
-msgstr "Diese Kompatibilitätsstufen sind verfügbar:"
+#: debhelper.pod:534
+msgid ""
+"The list of supported compatibility levels and the related upgrade check "
+"list has moved to L<debhelper-compat-upgrade-checklist(7)>."
+msgstr ""
+
+#. type: =head1
+#: debhelper.pod:537 dh_auto_test:48 dh_dwz:69 dh_installcatalogs:67
+#: dh_installdocs:202 dh_installemacsen:75 dh_installexamples:96
+#: dh_installinit:204 dh_installinitramfs:60 dh_installman:131
+#: dh_installmodules:57 dh_installudev:50 dh_installwm:66 dh_installxfonts:40
+#: dh_movefiles:67 dh_strip:119 dh_usrlocal:60 dh_systemd_enable:103
+#: dh_systemd_start:68
+msgid "NOTES"
+msgstr "ANMERKUNGEN"
+
+#. type: =head2
+#: debhelper.pod:539
+msgid "Multiple binary package support"
+msgstr "Unterstützung mehrerer Binärpakete"
+
+#. type: textblock
+#: debhelper.pod:541
+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 "
+"source package happens to generate one architecture dependent package, and "
+"another architecture independent package, this is not the correct behavior, "
+"because you need to generate the architecture dependent packages in the "
+"binary-arch F<debian/rules> target, and the architecture independent "
+"packages in the binary-indep F<debian/rules> target."
+msgstr ""
+"Falls Ihr Quellpaket mehr als ein Binärpaket erzeugt, werden die Debhelper-"
+"Programme standardmäßig auf alle Paketen einwirken. Falls es vorkommt, dass "
+"Ihr Quellpaket ein architekturabhängiges Paket und ein anderes "
+"architekturunabhängiges Paket erzeugt, ist dies nicht das korrekte "
+"Verhalten, da Sie die architekturabhängigen Pakete im F<debian/rules>-Ziel "
+"»binary-arch« erzeugen müssen und die unabhängigen Pakete im F<debian/rules>-"
+"Ziel »binary-indep«."
+
+#. type: textblock
+#: debhelper.pod:549
+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<-"
+"i>, B<-p>, and B<-s> parameters. These parameters are cumulative. If none "
+"are given, debhelper programs default to acting on all packages listed in "
+"the control file, with the exceptions below."
+msgstr ""
+"Um dies zu erleichtern sowie Ihnen mehr Kontrolle darüber zu geben, auf "
+"welche Pakete Debhelper-Programme einwirken, akzeptieren alle Debhelper-"
+"Programme die Parameter B<-a>, B<-i>, B<-p> und B<-s>. Diese Parameter sind "
+"kumulativ. Falls keiner angegeben wurde, wirken Debhelper-Programme "
+"standardmäßig auf alle Paketen ein, die in der Datei »control« aufgeführt "
+"sind, mit nachfolgenden Ausnahmen."
+
+#. type: textblock
+#: debhelper.pod:555
+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, "
+"section 5.6.8>)."
+msgstr ""
+"Zuerst werden alle Pakete, deren B<Architecture>-Feld in B<debian/control> "
+"nicht mit der B<DEB_HOST_ARCH>-Architektur übereinstimmt, ausgeschlossen "
+"(L<Debian Policy, Abschnitt 5.6.8>)."
+
+#. type: textblock
+#: debhelper.pod:559
+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 "
+"binary package stanzas in B<debian/control>, according to the draft policy "
+"at L<https://wiki.debian.org/BuildProfileSpec>."
+msgstr ""
+"Außerdem können einige zusätzliche Paket basierend auf dem Inhalt der "
+"Umgebungsvariable B<DEB_BUILD_PROFILES> und den Feldern B<Build-Profiles> in "
+"den Absätzen für binäre Pakete in B<debian/control> ausgeschlossen werden. "
+"Dies geschieht gemäß der Entwurfrichtlinie unter L<https://wiki.debian.org/"
+"BuildProfileSpec>."
+
+#. type: =head3
+#: debhelper.pod:564
+msgid "Interaction between package selections and Build-Profiles"
+msgstr "Zusammenspiel zwischen Paketauswahl und Bauprofilen"
+
+#. type: textblock
+#: debhelper.pod:566
+msgid ""
+"Build-Profiles affect which packages are included in the package selections "
+"mechanisms in debhelper. Generally, the package selections are described "
+"from the assumption that all packages are enabled. This section describes "
+"how the selections react when a package is disabled due to the active Build-"
+"Profiles (or lack of active Build-Profiles)."
+msgstr ""
+"Bauprofile beeinflussen, welche Pakete im Paketauswahlmechanismus von "
+"Debhelper enthalten sind. Im Allgemeinen wird die Paketauswahl unter der "
+"Annahme beschrieben, dass alle Pakete aktiviert sind. Dieser Abschnitt "
+"beschreibt, wie die Auswahl reagiert, wenn ein Paket aufgrund des aktiven "
+"Bauprofils (oder das Fehlen des aktiven Bauprofils) deaktiviert wird."
#. type: =item
-#: debhelper.pod:292
-msgid "v1"
-msgstr "v1"
+#: debhelper.pod:574
+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:294
+#: debhelper.pod:576
msgid ""
-"This is the original debhelper compatibility level, and so it is the default "
-"one. In this mode, debhelper will use F<debian/tmp> as the package tree "
-"directory for the first binary package listed in the control file, while "
-"using debian/I<package> for all other packages listed in the F<control> file."
+"The package disabled by Build-Profiles is silently excluded from the "
+"selection."
msgstr ""
-"Dies ist die Original-Debhelper-Kompatibilitätsstufe und daher ist sie die "
-"Vorgabe. In diesem Modus wird Debhelper F<debian/tmp> als "
-"Paketverzeichnisbaum des ersten in der Datei »control« aufgeführten Pakets "
-"nehmen, während für alle anderen in der Datei F<control> aufgeführten Pakete "
-"debian/I<Paket> genommen wird."
+"Das durch Bauprofile deaktivierte Paket wird stillschweigend aus der Auswahl "
+"ausgeschlossen."
#. type: textblock
-#: debhelper.pod:299 debhelper.pod:306 debhelper.pod:329 debhelper.pod:358
-msgid "This mode is deprecated."
-msgstr "Dieser Modus ist missbilligt."
+#: debhelper.pod:579
+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 "
+"do the build in the first place."
+msgstr ""
+"Beachten Sie, dass Sie eine Warnung bekommen, falls I<alle> zu dieser "
+"Auswahl gehörenden Pakete deaktiviert werden. In diesem Fall ist der Bau im "
+"Allgemeinen überhaupt sinnlos."
#. type: =item
-#: debhelper.pod:301
-msgid "v2"
-msgstr "v2"
+#: debhelper.pod:583
+msgid "-N I<package> / --no-package I<package>"
+msgstr "-N I<Paket> / --no-package I<Paket>"
#. type: textblock
-#: debhelper.pod:303
+#: debhelper.pod:585
+msgid "The option is accepted and effectively does nothing."
+msgstr "Die Option wird akzeptiert und hat keine Wirkung."
+
+#. type: =item
+#: debhelper.pod:587
+msgid "-p I<package> / --package I<package>"
+msgstr "-p I<Paket> / --package I<Paket>"
+
+#. type: textblock
+#: debhelper.pod:589
+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 ändern."
+
+#. type: textblock
+#: debhelper.pod:593
msgid ""
-"In this mode, debhelper will consistently use debian/I<package> as the "
-"package tree directory for every package that is built."
+"Note that it does not matter whether a package is enabled or disabled by "
+"default."
msgstr ""
-"In diesem Modus wird Debhelper durchweg debian/I<Paket> als "
-"Paketverzeichnisbaum für jedes Paket nehmen, das gebaut wird."
+"Beachten Sie, dass es keine Rolle spielt, ob das Paket standardmäßig "
+"aktiviert oder deaktiviert ist."
+
+#. type: =head2
+#: debhelper.pod:596
+msgid "Automatic generation of Debian install scripts"
+msgstr "Automatisches Erzeugen von Debian-Installationsskripten"
+
+#. type: textblock
+#: debhelper.pod:598
+msgid ""
+"Some debhelper commands will automatically generate parts of Debian "
+"maintainer scripts. If you want these automatically generated things "
+"included in your existing Debian maintainer scripts, then you need to add "
+"B<#DEBHELPER#> to your scripts, in the place the code should be added. "
+"B<#DEBHELPER#> will be replaced by any auto-generated code when you run "
+"B<dh_installdeb>."
+msgstr ""
+"Einige Debhelper-Befehle werden automatisch Teile der Debian-Betreuerskripte "
+"erzeugen. Falls Sie diese automatisch erzeugten Dinge in Ihre existierenden "
+"Debian-Betreuerskripte einfügen möchten, dann müssen Sie Ihren Skripten "
+"B<#DEBHELPER#> an der Stelle platzieren, an die der Kode hinzugefügt werden "
+"soll. B<#DEBHELPER#> wird bei der Ausführung durch beliebigen automatisch "
+"erzeugten Kode ersetzt, wenn Sie B<dh_installdeb> ausführen."
+
+#. type: textblock
+#: debhelper.pod:605
+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 ""
+"Falls ein Skript noch gar nicht existiert und Debhelper etwas darin "
+"hinzufügen muss, dann wird Debhelper das komplette Skript erstellen."
+
+#. type: textblock
+#: debhelper.pod:608
+msgid ""
+"All debhelper commands that automatically generate code in this way let it "
+"be disabled by the -n parameter (see above)."
+msgstr ""
+"Alle Debhelper-Befehle, die auf diese Art automatisch Kode erzeugen, lassen "
+"ihn durch den Parameter -n deaktiviert (siehe oben)."
+
+#. type: textblock
+#: debhelper.pod:611
+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 "
+"is one way to do that (note that I made sure that $1, $2, etc are set with "
+"the set command):"
+msgstr ""
+"Beachten Sie, dass der eingefügte Kode Shell-Kode sein wird. Sie können ihn "
+"daher nicht direkt in einem Perl-Skript verwenden. Falls Sie ihn in ein Perl-"
+"Skript einbetten wollen, wird hier eine Möglichkeit dafür beschrieben "
+"(beachten Sie, dass über den Befehl »set« sichergestellt wird, dass $1, $2, "
+"etc. gesetzt sind):"
+
+#. type: verbatim
+#: debhelper.pod:616
+#, no-wrap
+msgid ""
+" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
+" #DEBHELPER#\n"
+" EOF\n"
+" if (system($temp)) {\n"
+" my $exit_code = ($? >> 8) & 0xff;\n"
+" my $signal = $? & 0x7f;\n"
+" if ($exit_code) {\n"
+" die(\"The debhelper script failed with error code: ${exit_code}\");\n"
+" } else {\n"
+" die(\"The debhelper script was killed by signal: ${signal}\");\n"
+" }\n"
+" }\n"
+"\n"
+msgstr ""
+" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
+" #DEBHELPER#\n"
+" EOF\n"
+" if (system($temp)) {\n"
+" my $exit_code = ($? >> 8) & 0xff;\n"
+" my $signal = $? & 0x7f;\n"
+" if ($exit_code) {\n"
+" die(\"Das Debhelper-Skript scheiterte mit folgendem Fehlercode: ${exit_code}\");\n"
+" } else {\n"
+" die(\"Das Debhelper-Skript wurde per Signal abgebrochen: ${signal}\");\n"
+" }\n"
+" }\n"
+"\n"
+
+#. type: =head2
+#: debhelper.pod:629
+msgid "Automatic generation of miscellaneous dependencies."
+msgstr "Automatisches Erzeugen verschiedener Abhängigkeiten."
+
+#. type: textblock
+#: debhelper.pod:631
+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 "
+"package will generally need to depend on debconf. Or if you use "
+"L<dh_installxfonts(1)>, your package will generally need to depend on a "
+"particular version of xutils. Keeping track of these miscellaneous "
+"dependencies can be annoying since they are dependent on how debhelper does "
+"things, so debhelper offers a way to automate it."
+msgstr ""
+"Einige Debhelper-Befehle könnten dazu führen, dass das erzeugte Paket von "
+"einigen anderen Paketen abhängt. Falls Sie beispielsweise "
+"L<dh_installdebconf(1)> benutzen, wird Ihr Paket von Debconf abhängen "
+"müssen. Oder, falls Sie L<dh_installxfonts(1)> verwenden, wird ihr Paket "
+"generell von einer bestimmten Version der Xutils abhängen. Den Überblick "
+"über diese verschiedenen Abhängigkeiten zu behalten kann lästig sein, da sie "
+"von Debhelpers Arbeitsweise abhängen, weswegen Debhelper eine Möglichkeit "
+"bietet, sie zu automatisieren."
+
+#. type: textblock
+#: debhelper.pod:639
+msgid ""
+"All commands of this type, besides documenting what dependencies may be "
+"needed on their man pages, will automatically generate a substvar called "
+"B<${misc:Depends}>. If you put that token into your F<debian/control> file, "
+"it will be expanded to the dependencies debhelper figures you need."
+msgstr ""
+"Für jeden Befehl werden die benötigten Abhängigkeiten in den Handbuchseiten "
+"dokumentiert. Daneben wird automatisch eine »substvar« erzeugt, die B<${misc:"
+"Depends}> genannt wird. Falls Sie eine Markierung in Ihre F<debian/control>-"
+"Datei schreiben, wird es sie zu den Abhängigkeiten expandieren, von denen "
+"Debhelper findet, dass Sie sie benötigen."
+
+#. type: textblock
+#: debhelper.pod:644
+msgid ""
+"This is entirely independent of the standard B<${shlibs:Depends}> generated "
+"by L<dh_makeshlibs(1)>, and the B<${perl:Depends}> generated by "
+"L<dh_perl(1)>. You can choose not to use any of these, if debhelper's "
+"guesses don't match reality."
+msgstr ""
+"Dies ist gänzlich unabhängig von dem vorgegebenen B<${shlibs:Depends}>, das "
+"durch L<dh_makeshlibs(1)> erzeugt wurde, und den durch L<dh_perl(1)> "
+"erzeugten B<${perl:Depends}>. Sie können sich entscheiden, keines davon "
+"benutzen, falls die Einschätzung von Debhelper nicht der Wirklichkeit "
+"entspricht."
+
+#. type: =head2
+#: debhelper.pod:649
+msgid "Package build directories"
+msgstr "Paketbauverzeichnisse"
+
+#. type: textblock
+#: debhelper.pod:651
+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 ""
+"Standardmäßig gehen alle Debhelper-Programme davon aus, dass das temporäre "
+"Verzeichnis, das zum Zusammenbau des Dateibaums in einem Paket benutzt wird, "
+"debian/I<Paket> ist."
+
+#. type: textblock
+#: debhelper.pod:654
+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>\", will use B<debian/tmp> as the temporary directory. Note that if you "
+"use B<-P>, the debhelper programs can only be acting on a single package at "
+"a time. So if you have a package that builds many binary packages, you will "
+"need to also use the B<-p> flag to specify which binary package the "
+"debhelper program will act on."
+msgstr ""
+"Manchmal wollen Sie möglicherweise ein anderes temporäres Vezeichnis "
+"benutzen. Dies wird durch den Schalters B<-P> unterstützt. »B<dh_installdocs "
+"-Pdebian/tmp>« wird zum Beispiel B<debian/tmp> als temporäres Verzeichnis "
+"nutzen. Beachten Sie, dass die Debhelper-Programme nur auf ein einzelnes "
+"Paket auf einmal einwirken können, wenn Sie B<-P> verwenden. Falls Sie ein "
+"Paket haben, das mehrere Binärpakete baut, müssen Sie zusätzlich den "
+"Schalter B<-p> einsetzen, um anzugeben, auf welches Binärpaket sich das "
+"Debhelper-Programm auswirkt."
+
+#. type: =head2
+#: debhelper.pod:662
+msgid "udebs"
+msgstr "Udebs"
+
+#. type: textblock
+#: debhelper.pod:664
+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>. "
+"Debhelper will try to create udebs that comply with debian-installer policy, "
+"by making the generated package files end in F<.udeb>, not installing any "
+"documentation into a udeb, skipping over F<preinst>, F<postrm>, F<prerm>, "
+"and F<config> scripts, etc."
+msgstr ""
+"Debhelper beinhaltet Unterstützung für Udebs. Um ein Udeb mit Debhelper zu "
+"erstellen, fügen Sie dem Absatz des Pakets in F<debian/control> »B<Package-"
+"Type: udeb>« hinzu. Debhelper wird versuchen, Udebs zu erstellen, die der "
+"Debian-Installer-Richtlinie entsprechen, indem die erzeugten Paketdateien "
+"mit F<.udeb> enden, keine Dokumentation in ein Udeb installiert wird und "
+"F<preinst>-, F<postrm>-, F<prerm>- sowie F<config>-Skripte etc. übersprungen "
+"werden."
+
+#. type: =head1
+#: debhelper.pod:671
+msgid "ENVIRONMENT"
+msgstr "UMGEBUNGSVARIABLEN"
+
+#. type: textblock
+#: debhelper.pod:673
+msgid ""
+"This section describes some of the environment variables that influences the "
+"behaviour of debhelper or which debhelper interacts with."
+msgstr ""
+"Dieser Abschnitt beschreibt einige der Umgebungsvariablen, die das Verhalten "
+"von Debhelper beeinflussen oder mit denen Debhelper interagiert."
+
+#. type: textblock
+#: debhelper.pod:676
+msgid ""
+"It is important to note that these must be actual environment variables in "
+"order to affect the behaviour of debhelper (not simply F<Makefile> "
+"variables). To specify them properly in F<debian/rules>, be sure to "
+"\"B<export>\" them. For example, \"B<export DH_VERBOSE>\"."
+msgstr ""
+"Es ist wichtig, darauf hinzuweisen, dass es echte Umgebungsvariablen (nicht "
+"nur einfache F<Makefile>-Variablen) sein müssen, damit dies korrekt "
+"funktioniert. Um sie ordnungsgemäß in F<debian/rules> anzugeben, müssen Sie "
+"sicherstellen, dass sie »B<export>«iert werden, zum Beispiel »B<export "
+"DH_VERBOSE>«."
#. type: =item
-#: debhelper.pod:308
-msgid "v3"
-msgstr "v3"
+#: debhelper.pod:683
+msgid "B<DH_VERBOSE>"
+msgstr "B<DH_VERBOSE>"
#. type: textblock
-#: debhelper.pod:310
-msgid "This mode works like v2, with the following additions:"
-msgstr "Dieser Modus funktioniert wie v2 mit den folgenden Zusätzen:"
+#: debhelper.pod:685
+msgid ""
+"Set to a non-empty value to enable verbose mode. Please see the B<-v> / B<--"
+"verbose> option for details."
+msgstr ""
+"Ist hier ein beliebiger (nicht-leerer) Wert gesetzt, arbeitet Debhelper im "
+"detailreichen Modus. Details finden Sie bei der Option B<-v> / B<--verbose>."
#. type: =item
-#: debhelper.pod:314 debhelper.pod:319 debhelper.pod:323 debhelper.pod:337
-#: debhelper.pod:342 debhelper.pod:347 debhelper.pod:352 debhelper.pod:366
-#: debhelper.pod:370 debhelper.pod:375 debhelper.pod:379 debhelper.pod:391
-#: debhelper.pod:396 debhelper.pod:402 debhelper.pod:408 debhelper.pod:421
-#: debhelper.pod:428 debhelper.pod:432 debhelper.pod:436 debhelper.pod:449
-#: debhelper.pod:453 debhelper.pod:461 debhelper.pod:466 debhelper.pod:480
-#: debhelper.pod:485 debhelper.pod:492 debhelper.pod:497 debhelper.pod:502
-#: debhelper.pod:506 debhelper.pod:512 debhelper.pod:517 debhelper.pod:522
-#: debhelper.pod:535 debhelper.pod:542
-msgid "-"
-msgstr "-"
+#: debhelper.pod:688
+msgid "B<DH_QUIET>"
+msgstr "B<DH_QUIET>"
#. type: textblock
-#: debhelper.pod:316
+#: debhelper.pod:690
msgid ""
-"Debhelper config files support globbing via B<*> and B<?>, when appropriate. "
-"To turn this off and use those characters raw, just prefix with a backslash."
+"Set to a non-empty value to enable quiet mode. Debhelper will not output "
+"commands calling the upstream build system nor will dh print which "
+"subcommands are called and depending on the upstream build system might make "
+"that more quiet, too. This makes it easier to spot important messages but "
+"makes the output quite useless as buildd log."
msgstr ""
-"Debhelper-Konfigurationsdateien unterstützen Platzhalter mittels B<*> und B<?"
-">, wenn geeignet. Um dies auszuschalten und diese Zeichen im Rohzustand zu "
-"verwenden, stellen Sie ihnen einen Rückwärtsschragstrich voran."
+"Ist hier ein nicht-leerer Wert gesetzt, arbeitet Debhelper im stillen Modus. "
+"Es wird wird weder Befehle ausgeben, die das Bausystem der Ursprungsautoren "
+"aufrufen, noch wird dh auflisten, welche Unterbefehle aufgerufen werden. "
+"Abhängig vom benutzten Bausystem wird auch dieses weniger Details ausgeben. "
+"Dadurch wird es einfacher, wichtige Nachrichten zu erkennen, die Ausgabe "
+"wird jedoch als Buildd-Protokoll ziemlich nutzlos."
+
+#. type: textblock
+#: debhelper.pod:696
+msgid "Ignored if DH_VERBOSE is also set or B<-v> / B<--verbose> is passed."
+msgstr ""
+"Wird ignoriert, wenn DH_VERBOSE ebenfalls gesetzt oder B<-v> / B<--verbose> "
+"übergeben wird."
+
+#. type: =item
+#: debhelper.pod:698
+msgid "B<DH_COMPAT>"
+msgstr "B<DH_COMPAT>"
#. type: textblock
-#: debhelper.pod:321
+#: debhelper.pod:700
msgid ""
-"B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call "
-"B<ldconfig>."
+"Temporarily specifies what compatibility level debhelper should run at, "
+"overriding any value specified via Build-Depends on debhelper-compat or via "
+"the F<debian/compat> file."
msgstr ""
-"B<dh_makeshlibs> lässt F<postinst>- und F<postrm>-Skripte B<ldconfig> "
-"aufrufen."
+"gibt vorübergehend an, auf welcher Kompatibilitätsstufe Debhelper ausgeführt "
+"werden soll und setzt dabei jeden Wert außer Kraft, der über Build-Depends "
+"in Debhelper-compat oder über die Datei F<debian/compat> angegeben wurde."
+
+#. type: =item
+#: debhelper.pod:704
+msgid "B<DH_NO_ACT>"
+msgstr "B<DH_NO_ACT>"
+
+#. type: textblock
+#: debhelper.pod:706
+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:708
+msgid "B<DH_OPTIONS>"
+msgstr "B<DH_OPTIONS>"
#. type: textblock
-#: debhelper.pod:325
+#: debhelper.pod:710
msgid ""
-"Every file in F<etc/> is automatically flagged as a conffile by "
-"B<dh_installdeb>."
+"All debhelper tools will parse command line arguments listed in this "
+"variable before any command option (as if they had been prepended to the "
+"command line arguments). Unfortunately, some third-party provided tools may "
+"not support this variable and will ignore these command line arguments."
msgstr ""
-"Jede Datei in F<etc/> wird automatisch durch B<dh_installdeb> als Conffile "
-"markiert."
+"Alle Debhelper-Werkzeuge werden die in dieser Variable aufgeführten "
+"Argumente vor ihren eigenen Befehlszeilenargumenten auswerten (als ob sie "
+"den Befehlszeilenargumenten vorangestellt worden wären). Leider unterstützen "
+"einige von Dritten bereitgestellte Werkzeuge diese Variable möglicherweise "
+"nicht und werden diese Befehlszeilenargumente ignorieren."
+
+#. type: textblock
+#: debhelper.pod:715
+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 ""
+"Wenn L<dh(1)> benutzt wird, können ihm Optionen übergeben werden, die es an "
+"jeden Debhelper-Befehl weitergibt, was im Allgemeinen besser ist, als "
+"DH_OPTIONS zu verwenden."
#. type: =item
-#: debhelper.pod:331
-msgid "v4"
-msgstr "v4"
+#: debhelper.pod:718
+msgid "B<DH_ALWAYS_EXCLUDE>"
+msgstr "B<DH_ALWAYS_EXCLUDE>"
#. type: textblock
-#: debhelper.pod:333
-msgid "Changes from v3 are:"
-msgstr "Änderungen gegenüber v3 sind:"
+#: debhelper.pod:720
+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 "
+"B<rm -rf> anything that matches the value in your package build tree."
+msgstr ""
+"Falls gesetzt, fügt dies den Wert der Variablen den B<-X>-Optionen aller "
+"Befehle hinzu, welche die Option B<-X> unterstützen. Außerdem wird "
+"B<dh_builddeb> für alles in Ihrem Paketbaubaum, das dem Wert entspricht, "
+"B<rm -rf> ausführen."
#. type: textblock
-#: debhelper.pod:339
+#: debhelper.pod:724
msgid ""
-"B<dh_makeshlibs -V> will not include the Debian part of the version number "
-"in the generated dependency line in the shlibs file."
+"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 "
+"sneaking into the package you build. Or, if a package has a source tarball "
+"that (unwisely) includes CVS directories, you might want to export "
+"B<DH_ALWAYS_EXCLUDE=CVS> in F<debian/rules>, to make it take effect wherever "
+"your package is built."
msgstr ""
-"B<dh_makeshlibs -V> wird nicht den Debian-Teil der Versionsnummer in der "
-"erzeugten Abhängigkeitslinie in der Shlibs-Datei enthalten."
+"Dies kann nützlich sein, wenn Sie aus einem CVS-Quellverzeichnisbaum bauen. "
+"In diesem Fall verhindert das Setzen von B<DH_ALWAYS_EXCLUDE=CVS>, dass sich "
+"irgendwelche CVS-Verzeichnisse in das Paket einschleichen, das Sie bauen. "
+"Oder, falls ein Paket einen Quell-Tarball hat, der (unklugerweise) CVS-"
+"Verzeichnisse enthält, möchten Sie möglicherweise B<DH_ALWAYS_EXCLUDE=CVS> "
+"in F<debian/rules> exportieren, damit es wirksam ist, wo auch immer Ihr "
+"Paket gebaut wird."
#. type: textblock
-#: debhelper.pod:344
+#: debhelper.pod:731
msgid ""
-"You are encouraged to put the new B<${misc:Depends}> into F<debian/control> "
-"to supplement the B<${shlibs:Depends}> field."
+"Multiple things to exclude can be separated with colons, as in "
+"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
msgstr ""
-"Sie werden aufgefordert, das neue B<${misc:Depends}> in F<debian/control> "
-"abzulegen, um das Feld B<${shlibs:Depends}> zu ergänzen."
+"Mehrere Dinge, die ausgeschlossen werden sollen, können mit Doppelpunkten "
+"getrennt werden, wie in B<DH_ALWAYS_EXCLUDE=CVS:.svn>."
+
+#. type: =item
+#: debhelper.pod:734
+msgid "B<DH_EXTRA_ADDONS>"
+msgstr "B<DH_EXTRA_ADDONS>"
#. type: textblock
-#: debhelper.pod:349
+#: debhelper.pod:736
msgid ""
-"B<dh_fixperms> will make all files in F<bin/> directories and in F<etc/init."
-"d> executable."
+"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 "
+"addon to run with the --with flag in the debian/rules file. Any --without "
+"calls specifying an addon in this environment variable will not be run."
msgstr ""
-"B<dh_fixperms> wird alle Dateien in F<bin/>-Verzeichnissen und in F<etc/init."
-"d> ausführbar machen."
+"Falls gesetzt, fügt dies die angegebenen Dh-Erweiterungen hinzu, die an den "
+"entsprechenden Stellen in den Befehlssequenzen ausgeführt werden. Dies "
+"entspricht der Angabe der auszuführenden Erweiterung mit dem Schalter --with "
+"in der Datei »debian/rules«. Alle --without-Aufrufe, die in dieser "
+"Umgebungsvariable eine Erweiterung festlegen, werden nicht ausgeführt."
#. type: textblock
-#: debhelper.pod:354
-msgid "B<dh_link> will correct existing links to conform with policy."
+#: debhelper.pod:741
+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 "
+"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."
msgstr ""
-"B<dh_link> wird bestehende Verweise korrigieren, damit sie konform mit der "
-"Richtlinie sind."
+"Dies ist für die Benutzung durch nachgeschaltete Distributionen oder "
+"spezielle lokale Konfigurationen gedacht, die während mehrerer Bauvorgänge "
+"eine Debhelper-Erweiterung ausführen müssen, ohne dass eine große Anzahl von "
+"Regeldateien bearbeitet werden muss. Falls überhaupt möglich, sollte dies "
+"zugunsten eines --with-Schalters in der Datei »rules« vermieden werden."
#. type: =item
-#: debhelper.pod:360
-msgid "v5"
-msgstr "v5"
+#: debhelper.pod:746
+msgid "B<DH_COLORS>, B<DPKG_COLORS>"
+msgstr "B<DH_COLORS>, B<DPKG_COLORS>"
#. type: textblock
-#: debhelper.pod:362
-msgid "Changes from v4 are:"
-msgstr "Änderungen gegenüber v4 sind:"
+#: debhelper.pod:748
+msgid ""
+"These variables can be used to control whether debhelper commands should use "
+"colors in their textual output. Can be set to \"always\", \"auto\" (the "
+"default), or \"never\"."
+msgstr ""
+"Diese Variablen können benutzt werden, um zu steuern, ob Debhelper-Befehle "
+"in ihrer Textausgabe Farben benutzen sollen. Sie können auf »always«, "
+"»auto« (die Voreinstellung) oder »never« gesetzt werden."
#. type: textblock
-#: debhelper.pod:368
-msgid "Comments are ignored in debhelper config files."
-msgstr "Kommentare in Debhelper-Konfigurationsdateien werden ignoriert."
+#: debhelper.pod:752
+msgid ""
+"Note that B<DPKG_COLOR> also affects a number of dpkg related tools and "
+"debhelper uses it on the assumption that you want the same color setting for "
+"dpkg and debhelper. In the off-hand chance you want different color setting "
+"for debhelper, you can use B<DH_COLORS> instead or in addition to "
+"B<DPKG_COLORS>."
+msgstr ""
+"Beachten Sie, dass B<DPKG_COLOR> auch mehrere mit Dpkg verbunden Werkzeuge "
+"beeinflusst und Debhelper es unter der Annahme benutzt, dass Sie dieselbe "
+"Farbeinstellung für Dpkg und Debhelper benutzen wollen. In dem "
+"unwahrscheinlichen Fall, dass Sie für Debhelper eine andere Farbeinstellung "
+"möchten, können Sie B<DH_COLORS> statt oder zusätzlich zu B<DPKG_COLORS> "
+"verwenden."
+
+#. type: =item
+#: debhelper.pod:758
+msgid "B<NO_COLOR>"
+msgstr "B<NO_COLOR>"
-# http://de.wikipedia.org/wiki/Debugsymbol
#. type: textblock
-#: debhelper.pod:372
+#: debhelper.pod:760
msgid ""
-"B<dh_strip --dbg-package> now specifies the name of a package to put "
-"debugging symbols in, not the packages to take the symbols from."
+"If no explicit request for color has been given (e.g. B<DH_COLORS> and "
+"B<DPKG_COLORS> are both unset), the presence of this environment variable "
+"cause the default color setting to be \"never\"."
msgstr ""
-"B<dh_strip --dbg-package> gibt nun den Name des Pakets an, in das Debug-"
-"Symbole getan werden, nicht die Pakete, aus denen die Symbole genommen "
-"werden."
+"Falls nicht explizit um Farbe gebeten wurde (sowohl B<DH_COLORS> als auch "
+"B<DPKG_COLORS> sind nicht gesetzt), führt die Anwesenheit dieser "
+"Umgebungsvariablen dazu, dass die Standardfarbeinstellung auf »never« "
+"gesetzt wird."
#. type: textblock
-#: debhelper.pod:377
-msgid "B<dh_installdocs> skips installing empty files."
-msgstr "B<dh_installdocs> überspringt die Installation leerer Dateien."
+#: debhelper.pod:764
+msgid ""
+"The variable is defined according to L<https://no-color.org/>. In this "
+"project, the environment variables (such as B<DH_COLORS>) are considered an "
+"explicit request for color."
+msgstr ""
+"Die Variable ist gemäß L<https://no-color.org/> definiert. In diesem Projekt "
+"werden die Umgebungsvariablen (wie B<DH_COLORS>) als explizite Farbanfrage "
+"betrachtet."
+
+#. type: =item
+#: debhelper.pod:768
+msgid ""
+"B<CFLAGS>, B<CPPFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, "
+"B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS>, B<LDFLAGS>"
+msgstr ""
+"B<CFLAGS>, B<CPPFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, "
+"B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS>, B<LDFLAGS>"
#. type: textblock
-#: debhelper.pod:381
-msgid "B<dh_install> errors out if wildcards expand to nothing."
+#: debhelper.pod:770
+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 ""
-"B<dh_install> gibt Fehlermeldungen aus, wenn Platzhalter zu nichts "
-"expandieren."
+"Standardmäßig (in jeder nicht missbilligten Kompatibilitätsstufe) wird "
+"Debhelper diese Schalter automatisch mittels L<dpkg-buildflags(1)> setzen, "
+"wenn sie nicht gesetzt sind. Falls Sie die voreingestellten Schalter ändern "
+"wollen, benutzen Sie dazu die Funktionalität von L<dpkg-buildflags(1)> (z.B. "
+"B<DEB_BUILD_MAINT_OPTIONS=hardening=all> oder B<DEB_CPPFLAGS_MAINT_APPEND=-"
+"DCUSTOM_MACRO=true>) statt die konkrete Variable direkt zu setzen."
#. type: =item
-#: debhelper.pod:385
-msgid "v6"
-msgstr "v6"
+#: debhelper.pod:777
+msgid "B<HOME>, B<XDG_*>"
+msgstr "B<HOME>, B<XDG_*>"
#. type: textblock
-#: debhelper.pod:387
-msgid "Changes from v5 are:"
-msgstr "Änderungen gegenüber v5 sind:"
+#: debhelper.pod:779
+msgid ""
+"In compat 13 and later, these environment variables are reset before "
+"invoking the upstream build system via the B<dh_auto_*> helpers. The "
+"variables B<HOME> (all B<dh_auto_*> helpers) and B<XDG_RUNTIME_DIR> "
+"(B<dh_auto_test> only) will be set to a writable directory. All remaining "
+"variables and B<XDG_RUNTIME_DIR> (except for during B<dh_auto_test>) will be "
+"cleared."
+msgstr ""
+"In Kompatibilitätsstufe 13 und darüber werden diese Umgebungsvariablen "
+"zurückgesetzt, bevor das Originalautoren-Bausystem via B<dh_auto_*> "
+"angeworfen wird. Die B<HOME>- (B<dh_auto_*>-Hilfsprogramme) und die "
+"B<XDG_RUNTIME_DIR>-Variable (nur B<dh_auto_test>) werden auf ein "
+"beschreibbares Verzeichnis gesetzt. Alle anderen Variablen und "
+"B<XDG_RUNTIME_DIR> (außer während des B<dh_auto_test>) werden geleert."
#. type: textblock
-#: debhelper.pod:393
+#: debhelper.pod:785
msgid ""
-"Commands that generate maintainer script fragments will order the fragments "
-"in reverse order for the F<prerm> and F<postrm> scripts."
+"The B<HOME> directory will be created as an empty directory but it will be "
+"reused between calls to B<dh_auto_*>. Any content will persist until "
+"explicitly deleted or B<dh_clean>."
msgstr ""
-"Befehle, die Fragmente von Betreuerskripten erzeugen, werden die Fragmente "
-"für die F<prerm>- und F<postrm>-Skripte in umgekehrter Reiherfolge anordnen."
+"Die Verzeichnisse werden leer erzeugt und zwischen den B<dh_auto_*>-Aufrufen "
+"wiederverwendet. Jeglicher Inhalt wird weiter bestehen, bis er explizit "
+"gelöscht oder B<dh_clean> aufgerufen wird."
+
+#. type: =item
+#: debhelper.pod:789
+msgid "B<DEB_BUILD_OPTIONS>"
+msgstr "B<DEB_BUILD_OPTIONS>"
#. type: textblock
-#: debhelper.pod:398
+#: debhelper.pod:791
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 "
-"directory."
+"Please see L</Supported flags in DEB_BUILD_OPTIONS> for this environment "
+"variable."
msgstr ""
-"B<dh_installwm> wird einen untergeordneten Handbuchseitenverweis für F<x-"
-"window-manager.1.gz> installieren. falls es die Handbuchseite in F<usr/share/"
-"man/man1> im Bauverzeichnis des Pakets entdeckt."
+"Die Beschreibung dieser Umgebungsvariable entnehmen Sie bitte L</"
+"Unterstützte Optionen in DEB_BUILD_OPTIONS>."
#. type: textblock
-#: debhelper.pod:404
+#: debhelper.pod:794
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."
+"Please note that this variable should I<not> be altered by package "
+"maintainers inside F<debian/rules> to change the behaviour of debhelper. "
+"Instead, where the package maintainer need these features, they should look "
+"disabling the relevant feature directly (e.g. by overriding the concrete "
+"tools)."
msgstr ""
-"B<dh_builddeb> löschte vorher nichts, was auf B<DH_ALWAYS_EXCLUDE> passte, "
-"aber es wurde auf eine Liste von Dingen gesetzt, die ausgeschlossen werden "
-"sollen, wie B<CVS:.svn:.git>. Nun tut es dies."
+"Bitte beachten Sie, dass diese Variable von Paketbetreuern in ihren F<debian/"
+"rules> I<nicht> geändert werden sollte, um das Verhalten von Debhelper zu "
+"beeinflussen. Stattdessen sollen die fraglichen Funktionsmerkmale direkt "
+"abgeschaltet werden (etwa durch Außerkraftsetzen der betreffenden Werkzeuge)."
+
+#. type: =item
+#: debhelper.pod:799
+msgid "B<DEB_BUILD_MAINT_OPTIONS>"
+msgstr "B<DEB_BUILD_MAINT_OPTIONS>"
#. type: textblock
-#: debhelper.pod:410
+#: debhelper.pod:801
msgid ""
-"B<dh_installman> allows overwriting existing man pages in the package build "
-"directory. In previous compatibility levels it silently refuses to do this."
+"This is a dpkg specific environment variable (see e.g. L<dpkg-"
+"buildflags(1)>). The debhelper tool suite silently ignores it."
msgstr ""
-"B<dh_installman> erlaubt das Überschreiben existierender Handbuchseiten im "
-"Bauverzeichnis des Pakets. In vorhergehenden Kompatibilitätsstufen lehnte es "
-"lautlos ab, dies zu tun."
+"Dies ist eine Dpkg-spezifische Umgebungsvariable (siehe L<dpkg-"
+"buildflags(1)>). Die Debhelper-Suite ignoriert sie kommentarlos."
+
+#. type: textblock
+#: debhelper.pod:804
+msgid ""
+"It is documented here because it has a similar name to B<DEB_BUILD_OPTIONS>, "
+"which make some people mistakenly assume that debhelper will also react to "
+"this variable."
+msgstr ""
+"Sie ist hier dokumentiert, weil ihr Name B<DEB_BUILD_OPTIONS> ähnelt, was zu "
+"der falschen Annahme verleiten kann, dass Debhelper die Variable genauso auf "
+"die Variable reagiert."
+
+#. type: =head2
+#: debhelper.pod:810
+msgid "Supported flags in DEB_BUILD_OPTIONS"
+msgstr "Unterstützte Optionen in DEB_BUILD_OPTIONS"
+
+#. type: textblock
+#: debhelper.pod:812
+msgid ""
+"The debhelper tool suite reacts to the following flags in "
+"B<DEB_BUILD_OPTIONS>."
+msgstr ""
+"Die Debhelper-Suite reagiert auf die folgenden Optionen in "
+"B<DEB_BUILD_OPTIONS>:"
#. type: =item
-#: debhelper.pod:415
-msgid "v7"
-msgstr "v7"
+#: debhelper.pod:816
+msgid "B<dherroron=obsolete-compat-levels>"
+msgstr "dherroron=obsolete-compat-levels>"
#. type: textblock
-#: debhelper.pod:417
-msgid "Changes from v6 are:"
-msgstr "Änderungen gegenüber v6 sind:"
+#: debhelper.pod:818
+msgid "I<This is a debhelper specific value.>"
+msgstr "I<Dieser Wert ist Debhelper-spezfisch.>"
#. type: textblock
-#: debhelper.pod:423
+#: debhelper.pod:820
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 "
-"using B<--sourcedir>). This allows B<dh_install> to interoperate with "
-"B<dh_auto_install>, which installs to F<debian/tmp>, without needing any "
-"special parameters."
+"When B<dherroron> is present and set to B<obsolete-compat-levels>, then "
+"debhelper tools will promote deprecation warnings for usage of old soon to "
+"be removed compat levels into errors."
msgstr ""
-"B<dh_install> wird darauf zurückgreifen, in F<debian/tmp> nach Dateien zu "
-"suchen, falls es sie nicht im aktuellen Verzeichnis findet (oder wo auch "
-"immer Sie es unter Benutzung von B<--sourcedir> vorgeben). Dies ermöglicht "
-"B<dh_install> mit B<dh_auto_install> zusammenzuarbeiten, das nach F<debian/"
-"tmp> installiert, ohne irgendwelche besonderen Parameter zu benötigen."
+"Wenn B<dherroron> vorhanden und auf B<obsolete-compat-levels> gesetzt ist, "
+"werden die Debhelper-Werkzeuge die Missbilligungswarnungen für auf der "
+"Abschussliste stehenden Kompaitiblitätsstufen zu Fehlern erheben."
#. type: textblock
-#: debhelper.pod:430
-msgid "B<dh_clean> will read F<debian/clean> and delete files listed there."
+#: debhelper.pod:824
+msgid ""
+"This is useful for automated checking for code relying on deprecated compat "
+"levels that is scheduled for removal."
msgstr ""
-"B<dh_clean> wird F<debian/clean> lesen und die dort aufgeführten Dateien "
-"löschen."
+"Dies hilft bei automatischen Überprüfungen, ob Kode auf veralteten "
+"Kompatibilitätsstufen basiert, die bald entfernt werden sollen."
#. type: textblock
-#: debhelper.pod:434
-msgid "B<dh_clean> will delete toplevel F<*-stamp> files."
-msgstr "<dh_clean> wird die F<*-stamp>-Dateien der obersten Ebene löschen."
+#: debhelper.pod:827
+msgid "This option is intended for testing purposes; not production builds."
+msgstr ""
+"Die Option ist für Testzwecke gedacht, aber nicht für Produktiveinsatz."
+
+#. type: =item
+#: debhelper.pod:829
+msgid "B<nostrip>"
+msgstr "B<nostrip>"
#. type: textblock
-#: debhelper.pod:438
+#: debhelper.pod:831 debhelper.pod:854 debhelper.pod:868
msgid ""
-"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
-"none is specified."
+"I<This value will change the content of the debs being built. The .deb "
+"packages built when this is set is therefore not bit-for-bit reproducible "
+"with a regular build in the general case.>"
+msgstr ""
+"I<Dieser Wert ändert den Inhalt der Debs, die gebaut werden. Die .deb-"
+"Pakete, die unter Anwesenheit dieses Werts gebaut werden, werden nicht Bit "
+"für Bit reproduzierbar sein, was bei einem gewöhnlichen Paket der Regelfall "
+"ist.>"
+
+#. type: textblock
+#: debhelper.pod:835
+msgid ""
+"This value will cause the official debhelper tools will skip actions and "
+"helpers that either remove, detach or deduplicate debugging symbols in ELF "
+"binaries."
msgstr ""
-"B<dh_installchangelogs> wird abschätzen, in welcher Datei das "
-"Änderungsprotokoll der Originalautoren liegt, falls keines angegeben wurde."
+"Durch diesen Wert werden die offiziellen Debhelper-Werkzeuge dazu gebracht, "
+"Aktionen und Hilfsprogramme zum Entfernen, Abkoppeln oder Deduplizieren von "
+"Fehlersuchsymbolen in ELF-Binärdateien zu überspringen."
+
+#. type: textblock
+#: debhelper.pod:839
+msgid "This value affects L<dh_dwz(1)> and L<dh_strip(1)>."
+msgstr "Dieser Wert betrifft L<dh_dwz(1)> und L<dh_strip(1)>."
#. type: =item
-#: debhelper.pod:443
-msgid "v8"
-msgstr "v8"
+#: debhelper.pod:841
+msgid "B<nocheck>"
+msgstr "B<nocheck>"
#. type: textblock
-#: debhelper.pod:445
-msgid "Changes from v7 are:"
-msgstr "Änderungen gegenüber v7 sind:"
+#: debhelper.pod:843
+msgid ""
+"This value will cause the official debhelper build systems to skip runs of "
+"upstream test suites."
+msgstr ""
+"Dieser Wert führt dazu, dass die offiziellen Debhelper-Bausysteme die "
+"Ausführung von Test-Suiten der Originalautoren überspringen."
#. type: textblock
-#: debhelper.pod:451
+#: debhelper.pod:846
msgid ""
-"Commands will fail rather than warning when they are passed unknown options."
+"Package maintainers looking to avoid running the upstream tests should "
+"B<not> rely on this. Instead, they can add an empty override target to skip "
+"B<dh_auto_test>."
msgstr ""
-"Befehle werden fehlschlagen, anstatt zu warnen, wenn ihnen unbekannte "
-"Optionen übergeben werden."
+"Paketbetreuer, die versuchen, diese Tests zu umgehen, sollten sich hierauf "
+"B<nicht> verlassen. Stattdessen können sie ein leeres Override-Ziel angeben, "
+"um B<dh_auto_test> zu überspringen."
#. type: textblock
-#: debhelper.pod:455
+#: debhelper.pod:850
+msgid "This value affects L<dh_auto_test(1)>."
+msgstr "Dieser Wert betrifft L<dh_auto_test(1)>."
+
+#. type: =item
+#: debhelper.pod:852
+msgid "B<nodoc>"
+msgstr "B<nodoc>"
+
+#. type: textblock
+#: debhelper.pod:858
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. "
-"Also, libraries in unusual locations that B<dpkg-gensymbols> would not have "
-"processed before will be passed to it, a behavior change that can cause some "
-"packages to fail to build."
+"This value will cause several debhelper tools to skip installation of "
+"documentation such as manpages or upstream provided documentation. "
+"Additionally, the tools will also ignore if declared documentation is "
+"\"missing\" on the assumption that the documentation has not been built."
msgstr ""
-"B<dh_makeshlibs> wird B<dpkg-gensymbols> auf allen gemeinsam benutzten "
-"Bibliotheken ausführen, für die es Shlib-Dateien erzeugt. Daher kann B<-X> "
-"verwandt werden, um Bibliotheken auszuschließen. Außerdem würden "
-"Bibliotheken an unüblichen Speicherplätzen, die B<dpkg-gensymbols> nicht "
-"verarbeiten würde, bevor es sie übergeben bekäme, eine Verhaltenweise "
-"ändern, was dazu führen könnte, dass der Bau einiger Pakete fehlschlagen "
-"würde."
+"Dieser Wert wird mehrere Debhelper-Tools anweisen, die Installation von "
+"Dokumentation wie Handbuchseiten oder von den Originalautoren "
+"bereitgestellte Dokumentation auszulassen. Außerdem werden die Werkzeuge es "
+"ignorieren, wenndie deklarierte Dokumentation fehlt, unter der Annahme, dass "
+"sie nicht gebaut wurde."
#. type: textblock
-#: debhelper.pod:463
+#: debhelper.pod:863
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 $@>"
-"\"."
+"This value effects tools I<like> L<dh_installdocs(1)>, which I<knows> it is "
+"working with documentation."
msgstr ""
-"B<dh> erfordert, dass die auszuführende Sequenz als erster Parameter "
-"angegeben wird und sämtliche Schalter danach kommen. »B<dh $@ --foo>« nicht "
-"»B<dh --foo $@>«."
+"Dieser Wert betrifft Werkzeuge I<wie> L<dh_installdocs(1)>, welches I<weiß>, "
+"dass es mit Dokumentation arbeitet."
+
+#. type: =item
+#: debhelper.pod:866
+msgid "B<notrimdch>"
+msgstr "B<notrimdch>"
#. type: textblock
-#: debhelper.pod:468
+#: debhelper.pod:872
msgid ""
-"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
-"F<Makefile.PL>."
+"This value will cause L<dh_installchangelogs(1)> to act as if it had been "
+"passed the B<--no-trim> option, forcing it to forgo removing older entries "
+"from changelogs."
msgstr ""
-"B<dh_auto_>I<*> bevorzugt Perls B<Module::Build> gegenüber F<Makefile.PL>."
#. type: =item
-#: debhelper.pod:472
-msgid "v9"
-msgstr "v9"
+#: debhelper.pod:876
+msgid "B<noautodbgsym>, B<noddebs>"
+msgstr "B<noautodbgsym>, B<noddebs>"
+
+#. type: textblock
+#: debhelper.pod:878
+msgid ""
+"I<The official name is noautodbgsym. The noddebs variant is accepted for "
+"historical reasons.>"
+msgstr ""
+"I<Der offizielle Name ist noautodbgsym. Die noddebs-Variante wird aus "
+"historischen Gründen akzeptiert.>"
+
+#. type: textblock
+#: debhelper.pod:881
+msgid ""
+"This value causes debhelper to skip the generation of automatically "
+"generated debug symbol packages."
+msgstr ""
+"Dieser Wert veranlasst Debhelper, die automatische Erzeugung der "
+"Fehlersuchsymbol-Pakete zu unterlassen."
+
+#. type: textblock
+#: debhelper.pod:884
+msgid "This value affects L<dh_strip(1)>."
+msgstr "Dieser Wert beeinflusst L<dh_strip(1)>."
+
+#. type: =item
+#: debhelper.pod:886
+msgid "B<parallel=N>"
+msgstr "B<parallel=N>"
+
+#. type: textblock
+#: debhelper.pod:888
+msgid ""
+"This value enables debhelper to use up to B<N> threads or processes (subject "
+"to parameters like B<--no-parallel> and B<--max-parallel=M>). Not all "
+"debhelper tools work with parallel tasks and may silently ignore the request."
+msgstr ""
+"Dieser Wert erlaubt es Debhelper, bis zu B<N> Threads oder Prozesse "
+"(eingeschränkt durch Parameter wie B<--no-parallel> und B<--max-parallel=M>) "
+"zu verwenden. Nicht alle Debhelper-Werkzeuge arbeiten parallel und können "
+"die Anfrage daher kommentarlos ignorieren."
+
+#. type: textblock
+#: debhelper.pod:893
+msgid ""
+"This value affects many debhelper tools. Most notably B<dh_auto_*>, which "
+"will attempt to run the underlying upstream build system with that number of "
+"threads."
+msgstr ""
+"Dieser Wert betrifft viele Debhelper-Werkzeuge. Vor allem B<dh_auto_*> wird "
+"versuchen, das zugrundeliegende Bausystem der Originalautoren mit dieser "
+"Anzahl an Threads auszuführen."
+
+#. type: =item
+#: debhelper.pod:897
+msgid "B<terse>"
+msgstr "B<terse>"
+
+#. type: textblock
+#: debhelper.pod:899
+msgid ""
+"This value will cause the official debhelper build systems to configure "
+"upstream builds to be terse (i.e. reduce verbosity in their output). This "
+"is subject to the upstream and the debhelper build system supporting such "
+"features."
+msgstr ""
+"Dieser Wert wird die offiziellen Debhelper-Bausysteme zu einer knappen, "
+"weniger ausführlichen (daher »terse«) Ausgabe animieren. Seine Wirkung hängt "
+"davon ab, inwieweit das Bausystem der Originalautoren und das von Debhelper "
+"solche Funktionsmerkmale unterstützen."
+
+#. type: textblock
+#: debhelper.pod:904
+msgid ""
+"This value affects most B<dh_auto_*> tools directly. For commands provided "
+"by the debhelper package, it also causes the tools to act like the "
+"B<DH_QUIET> environment variable was non-empty."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:910
+msgid "Unknown flags are silently ignored."
+msgstr "Unbekannte Schalter werden stillschweigend ignoriert."
+
+#. type: textblock
+#: debhelper.pod:912
+msgid ""
+"Note third-party debhelper-like tools or third-party provided build systems "
+"may or may not react to the above flags. This tends to depend on "
+"implementation details of the tool."
+msgstr ""
+"Beachten Sie, dass Debhelper-ähnliche Werkzeuge oder Bausysteme von "
+"Drittherstellern unterschiedlich auf die oben genannten Schalter reagieren. "
+"Das hängt davon ab, wie die Werkzeuge im Detail implementiert sind."
+
+#. type: =head1
+#: debhelper.pod:916 debhelper-compat-upgrade-checklist.pod:758
+#: debhelper-obsolete-compat.pod:178 dh:872 dh_auto_build:53 dh_auto_clean:55
+#: dh_auto_configure:58 dh_auto_install:103 dh_auto_test:64 dh_bugfiles:133
+#: dh_builddeb:176 dh_clean:189 dh_compress:243 dh_dwz:163 dh_fixperms:164
+#: dh_gencontrol:208 dh_icons:75 dh_install:377 dh_installcatalogs:128
+#: dh_installchangelogs:365 dh_installcron:80 dh_installdeb:419
+#: dh_installdebconf:233 dh_installdirs:131 dh_installdocs:437
+#: dh_installemacsen:138 dh_installexamples:182 dh_installifupdown:72
+#: dh_installinfo:123 dh_installinit:413 dh_installinitramfs:91
+#: dh_installlogcheck:81 dh_installlogrotate:53 dh_installman:420
+#: dh_installmanpages:198 dh_installmenu:88 dh_installmime:63
+#: dh_installmodules:109 dh_installpam:71 dh_installppp:68 dh_installudev:102
+#: dh_installwm:130 dh_installxfonts:90 dh_link:166 dh_lintian:60
+#: dh_listpackages:34 dh_makeshlibs:456 dh_md5sums:118 dh_movefiles:161
+#: dh_perl:188 dh_prep:70 dh_shlibdeps:204 dh_strip:435 dh_testdir:62
+#: dh_testroot:93 dh_usrlocal:136 dh_systemd_enable:280 dh_systemd_start:280
+msgid "SEE ALSO"
+msgstr "SIEHE AUCH"
+
+#. type: =item
+#: debhelper.pod:920
+msgid "L<debhelper-compat-upgrade-checklist(7)>"
+msgstr "L<debhelper-compat-upgrade-checklist(7)>"
+
+#. type: textblock
+#: debhelper.pod:922
+msgid ""
+"List of supported compat levels and an upgrade checklist for each of them."
+msgstr ""
+"Liste der unterstützten Kompatibilitätsstufen und eine Upgrade-Prüfliste für "
+"jede davon."
+
+#. type: =item
+#: debhelper.pod:924
+msgid "F</usr/share/doc/debhelper/examples/>"
+msgstr "F</usr/share/doc/debhelper/examples/>"
+
+#. type: textblock
+#: debhelper.pod:926
+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:928
+msgid "L<http://joeyh.name/code/debhelper/>"
+msgstr "L<http://joeyh.name/code/debhelper/>"
+
+#. type: textblock
+#: debhelper.pod:930
+msgid "Debhelper web site."
+msgstr "Debhelper-Website."
+
+#. type: =head1
+#: debhelper.pod:934 dh:878 dh_auto_build:59 dh_auto_clean:61
+#: dh_auto_configure:64 dh_auto_install:109 dh_auto_test:70 dh_bugfiles:141
+#: dh_builddeb:182 dh_clean:195 dh_compress:249 dh_dwz:169 dh_fixperms:170
+#: dh_gencontrol:214 dh_icons:81 dh_install:383 dh_installcatalogs:134
+#: dh_installchangelogs:371 dh_installcron:86 dh_installdeb:425
+#: dh_installdebconf:239 dh_installdirs:137 dh_installdocs:443
+#: dh_installemacsen:145 dh_installexamples:188 dh_installifupdown:78
+#: dh_installinfo:129 dh_installinitramfs:99 dh_installlogcheck:87
+#: dh_installlogrotate:59 dh_installman:426 dh_installmanpages:204
+#: dh_installmenu:96 dh_installmime:69 dh_installmodules:115 dh_installpam:77
+#: dh_installppp:74 dh_installudev:108 dh_installwm:136 dh_installxfonts:96
+#: dh_link:172 dh_lintian:68 dh_listpackages:40 dh_makeshlibs:462
+#: dh_md5sums:124 dh_movefiles:167 dh_perl:194 dh_prep:76 dh_shlibdeps:210
+#: dh_strip:441 dh_testdir:68 dh_testroot:99 dh_usrlocal:142
+msgid "AUTHOR"
+msgstr "AUTOR"
+
+#. type: textblock
+#: debhelper.pod:936 dh:880 dh_auto_build:61 dh_auto_clean:63
+#: dh_auto_configure:66 dh_auto_install:111 dh_auto_test:72 dh_builddeb:184
+#: dh_clean:197 dh_compress:251 dh_fixperms:172 dh_gencontrol:216
+#: dh_install:385 dh_installchangelogs:373 dh_installcron:88 dh_installdeb:427
+#: dh_installdebconf:241 dh_installdirs:139 dh_installdocs:445
+#: dh_installemacsen:147 dh_installexamples:190 dh_installifupdown:80
+#: dh_installinfo:131 dh_installinit:421 dh_installlogrotate:61
+#: dh_installman:428 dh_installmanpages:206 dh_installmenu:98 dh_installmime:71
+#: dh_installmodules:117 dh_installpam:79 dh_installppp:76 dh_installudev:110
+#: dh_installwm:138 dh_installxfonts:98 dh_link:174 dh_listpackages:42
+#: dh_makeshlibs:464 dh_md5sums:126 dh_movefiles:169 dh_prep:78
+#: dh_shlibdeps:212 dh_strip:443 dh_testdir:70 dh_testroot:101
+msgid "Joey Hess <joeyh@debian.org>"
+msgstr "Joey Hess <joeyh@debian.org>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:5
+msgid ""
+"debhelper-compat-upgrade-checklist - Upgrade checklist for supported "
+"debhelper compat levels"
+msgstr ""
+"debhelper-compat-upgrade-checklist - Upgrade-Prüfliste für "
+"unterstützteDebhelper-Kompaitiblitätsstufen"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:9
+msgid ""
+"This document is an upgrade checklist of all the supported debhelper compat "
+"levels. It also lists all the support debhelper compat levels."
+msgstr ""
+"Dieses Dokument ist eine Upgrade-Prüfliste für alle unterstützten Debhelper-"
+"Kompatibilitätsstufen. Es listet darüber hinaus alle unterstützten Debhelper-"
+"Kompatibilitätsstufen auf."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:12
+msgid ""
+"Information about how to declare the compat level is in L<debhelper(7)/"
+"COMPATIBILITY LEVELS>."
+msgstr ""
+"Informationen darüber, wie die Kompatibilitätsstufen deklariert werden, ist "
+"in L<debhelper(7)/KOMPATIBILITÄTSSTUFEN> zu finden."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:14
+msgid ""
+"If you are upgrading from a (now) obsolete compat level, then please refer "
+"to L<debhelper-obsolete-compat(7)>."
+msgstr ""
+"Falls Sie ein Upgrade von einer (jetzt) überholten Kompatibilitätsstufe "
+"durchführen, schlagen Sie bitte in L<debhelper-obsolete-compat(7)> nach."
+
+#. type: =head2
+#: debhelper-compat-upgrade-checklist.pod:19
+msgid "Upgrade checklist for supported compatibility levels"
+msgstr "Upgrade-Prüfliste für unterstützte Kompatibilitätsstufen."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:21
+msgid "These are the available compatibility levels:"
+msgstr "Folgende Kompatibilitätsstufen sind verfügbar:"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:25
+msgid "v15"
+msgstr "v15"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:27
+#: debhelper-compat-upgrade-checklist.pod:51 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-compat-upgrade-checklist.pod:29
+msgid "Changes from v14 are:"
+msgstr "Änderungen gegenüber v14 sind:"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:33
+#: debhelper-compat-upgrade-checklist.pod:57
+#: debhelper-compat-upgrade-checklist.pod:63
+#: debhelper-compat-upgrade-checklist.pod:68
+#: debhelper-compat-upgrade-checklist.pod:74
+#: debhelper-compat-upgrade-checklist.pod:90
+#: debhelper-compat-upgrade-checklist.pod:95
+#: debhelper-compat-upgrade-checklist.pod:103
+#: debhelper-compat-upgrade-checklist.pod:110
+#: debhelper-compat-upgrade-checklist.pod:125
+#: debhelper-compat-upgrade-checklist.pod:133
+#: debhelper-compat-upgrade-checklist.pod:141
+#: debhelper-compat-upgrade-checklist.pod:150
+#: debhelper-compat-upgrade-checklist.pod:156
+#: debhelper-compat-upgrade-checklist.pod:166
+#: debhelper-compat-upgrade-checklist.pod:174
+#: debhelper-compat-upgrade-checklist.pod:180
+#: debhelper-compat-upgrade-checklist.pod:194
+#: debhelper-compat-upgrade-checklist.pod:205
+#: debhelper-compat-upgrade-checklist.pod:219
+#: debhelper-compat-upgrade-checklist.pod:230
+#: debhelper-compat-upgrade-checklist.pod:246
+#: debhelper-compat-upgrade-checklist.pod:256
+#: debhelper-compat-upgrade-checklist.pod:260
+#: debhelper-compat-upgrade-checklist.pod:265
+#: debhelper-compat-upgrade-checklist.pod:270
+#: debhelper-compat-upgrade-checklist.pod:277
+#: debhelper-compat-upgrade-checklist.pod:283
+#: debhelper-compat-upgrade-checklist.pod:291
+#: debhelper-compat-upgrade-checklist.pod:297
+#: debhelper-compat-upgrade-checklist.pod:301
+#: debhelper-compat-upgrade-checklist.pod:306
+#: debhelper-compat-upgrade-checklist.pod:311
+#: debhelper-compat-upgrade-checklist.pod:320
+#: debhelper-compat-upgrade-checklist.pod:336
+#: debhelper-compat-upgrade-checklist.pod:345
+#: debhelper-compat-upgrade-checklist.pod:361
+#: debhelper-compat-upgrade-checklist.pod:369
+#: debhelper-compat-upgrade-checklist.pod:374
+#: debhelper-compat-upgrade-checklist.pod:396
+#: debhelper-compat-upgrade-checklist.pod:402
+#: debhelper-compat-upgrade-checklist.pod:414
+#: debhelper-compat-upgrade-checklist.pod:422
+#: debhelper-compat-upgrade-checklist.pod:428
+#: debhelper-compat-upgrade-checklist.pod:433
+#: debhelper-compat-upgrade-checklist.pod:438
+#: debhelper-compat-upgrade-checklist.pod:443
+#: debhelper-compat-upgrade-checklist.pod:451
+#: debhelper-compat-upgrade-checklist.pod:461
+#: debhelper-compat-upgrade-checklist.pod:471
+#: debhelper-compat-upgrade-checklist.pod:478
+#: debhelper-compat-upgrade-checklist.pod:490
+#: debhelper-compat-upgrade-checklist.pod:495
+#: debhelper-compat-upgrade-checklist.pod:523
+#: debhelper-compat-upgrade-checklist.pod:540
+#: debhelper-compat-upgrade-checklist.pod:545
+#: debhelper-compat-upgrade-checklist.pod:551
+#: debhelper-compat-upgrade-checklist.pod:557
+#: debhelper-compat-upgrade-checklist.pod:562
+#: debhelper-compat-upgrade-checklist.pod:568
+#: debhelper-compat-upgrade-checklist.pod:577
+#: debhelper-compat-upgrade-checklist.pod:587
+#: debhelper-compat-upgrade-checklist.pod:593
+#: debhelper-compat-upgrade-checklist.pod:616
+#: debhelper-compat-upgrade-checklist.pod:623
+#: debhelper-compat-upgrade-checklist.pod:629
+#: debhelper-compat-upgrade-checklist.pod:635
+#: debhelper-compat-upgrade-checklist.pod:641
+#: debhelper-compat-upgrade-checklist.pod:661
+#: debhelper-compat-upgrade-checklist.pod:666
+#: debhelper-compat-upgrade-checklist.pod:673
+#: debhelper-compat-upgrade-checklist.pod:678
+#: debhelper-compat-upgrade-checklist.pod:683
+#: debhelper-compat-upgrade-checklist.pod:691
+#: debhelper-compat-upgrade-checklist.pod:697
+#: debhelper-compat-upgrade-checklist.pod:702
+#: debhelper-compat-upgrade-checklist.pod:707
+#: debhelper-compat-upgrade-checklist.pod:722
+#: debhelper-compat-upgrade-checklist.pod:726
+#: debhelper-compat-upgrade-checklist.pod:734
+#: debhelper-compat-upgrade-checklist.pod:739 debhelper-obsolete-compat.pod:29
+#: debhelper-obsolete-compat.pod:36 debhelper-obsolete-compat.pod:40
+#: debhelper-obsolete-compat.pod:44 debhelper-obsolete-compat.pod:57
+#: debhelper-obsolete-compat.pod:62 debhelper-obsolete-compat.pod:68
+#: debhelper-obsolete-compat.pod:74 debhelper-obsolete-compat.pod:89
+#: debhelper-obsolete-compat.pod:93 debhelper-obsolete-compat.pod:98
+#: debhelper-obsolete-compat.pod:102 debhelper-obsolete-compat.pod:114
+#: debhelper-obsolete-compat.pod:119 debhelper-obsolete-compat.pod:124
+#: debhelper-obsolete-compat.pod:129 debhelper-obsolete-compat.pod:143
+#: debhelper-obsolete-compat.pod:148 debhelper-obsolete-compat.pod:152
+#: dh_testroot:36 dh_testroot:41 dh_testroot:46
+msgid "-"
+msgstr "-"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:35
+msgid ""
+"The B<dh_auto_install> tool no longer defaults to B<< --destdir=debian/"
+"I<package> >> for source packages only producing a single binary. If this "
+"behaviour is wanted, the package should explicitly activate the B<single-"
+"binary> dh addon (e.g., by adding B<dh-sequence-single-binary> to B<Build-"
+"Depends>) or pass B<--destdir> to B<dh_auto_install>."
+msgstr ""
+"Das B<dh_auto_install>-Werkzeug benutzt für Quellpakete, aus denen eine "
+"einzelne Binärdatei entsteht, nicht länger standardmäßig B<< --"
+"destdir=debian/I<package> >> Sollte dieses Verhalten gewünscht sein, sollte "
+"das Paket ausdrücklich die B<single-binary>-Erweiterung für dh aktivieren "
+"(z. B. durch Anfügen von B<dh-sequence-single-binary> an B<Build-Depends>) "
+"oder Weitergeben von B<--destdir> an B<dh_auto_install>."
#. type: textblock
-#: debhelper.pod:474
+#: debhelper-compat-upgrade-checklist.pod:41
+#: debhelper-compat-upgrade-checklist.pod:84
+msgid ""
+"The rationale for this change is to avoid \"surprises\" when adding a second "
+"binary package later. Previously, debhelper would silently change behaviour "
+"often resulting in empty binary packages being uploaded to the archive by "
+"mistake. With the new behaviour, the B<single-binary> addon will detect the "
+"mismatch and warn the maintainer of what is about to happen."
+msgstr ""
+"Der Zweck dieser Änderung besteht darin, »Überraschungen« beim späteren "
+"Hinzufügen eines zweiten Binärpakets zu vermeiden. In der Vergangenheit hat "
+"Debhelper kommentarlos sein Verhalten geändert, was dazu führte, dass "
+"versehentlich leere Pakete ins Archiv hochgeladen wurden. Bei der neuen "
+"Vorgehensweise wird die B<single-binary>-Erweiterung diese Diskrepanz "
+"feststellen und den Betreuer vor dem, was passieren wird, warnen."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:49
+msgid "v14"
+msgstr "v14"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:53
+msgid "Changes from v13 are:"
+msgstr "Änderungen gegenüber v13 sind:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:59
+msgid ""
+"The B<cmake> buildsystem now passes B<-DCMAKE_BUILD_RPATH_USE_ORIGIN=ON> to "
+"L<cmake(1)> to avoid some reproducibility issues."
+msgstr ""
+"Das B<cmake>-Bausystem gibt jetzt B<-DCMAKE_BUILD_RPATH_USE_ORIGIN=ON> an "
+"L<cmake(1)> weiter, womit einige Reproduzierbarkeitsprobleme vermieden "
+"werden."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:65
+msgid ""
+"The tool B<dh_installsysusers> is now included in the default sequence. This "
+"helper tool will process systemd sysusers files."
+msgstr ""
+"Das Werkzeug B<dh_installsysusers> ist jetzt in der Standardsequenz "
+"enthalten. Es verarbeitet systemd-Sysuser-Dateien."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:70
+msgid ""
+"Use of the B<dh_gconf> command in override and hook targets now causes an "
+"error. The B<dh_gconf> command has been a no-op for years and was removed "
+"in debhelper 13.4."
+msgstr ""
+"Die Verwendung des B<dh_gconf>-Befehls in Override- und Hook-Zielen führt "
+"jetzt zu einem Fehler. Der B<dh_gconf>-Befehl war seit Jahren ein Leerbefehl "
+"und ist in Debhelper 13.4 entfernt worden."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:76
+msgid ""
+"The B<dh> sequencer will warn if the B<single-binary> addon is implicitly "
+"activated to warn maintainers of the pending compat 15 change in "
+"B<dh_auto_install>."
+msgstr ""
+"Der B<dh>-Sequenzer wird eine Warnung ausgeben, wenn die B<single-binary>-"
+"Erweiterung implizit aktiviert wurde, um Betreuer vor der anstehenden "
+"Kompat-15-Änderung in B<dh_auto_install> zu warnen."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:79
+msgid ""
+"Maintainers are urged to either explicitly activate the B<single-binary> "
+"addon to preserve the existing behaviour (e.g., by adding B<dh-sequence-"
+"single-binary> to Build-Depends), or explicitly passing B<--destdir> to "
+"B<dh_auto_install> if used and then passing B<--without single-binary> to "
+"B<dh> (the latter to silence the warning)."
+msgstr ""
+"Betreuern wird dringend geraten, die B<single-binary>-Erweiterung entweder "
+"explizit zu aktivieren, um das bisherige Verhalten beizubehalten (bspw. "
+"durch Hinzufügen von B<dh-sequence-single-binary> zu Build-Depends), oder "
+"B<dh_auto_install> explizit mit B<--destdir> aufzurufen, wenn verwendet, und "
+"dann B<--without single-binary> bei B<dh> anzugeben (Letzteres zum Abstellen "
+"der Warnung)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:92
+msgid ""
+"The B<dh_installalternatives> tool will now be run after B<dh_link> rather "
+"than after B<dh_installinitramfs> in the default B<dh> sequence."
+msgstr ""
+"Das Werkzeug B<dh_installalternatives> wird jetzt in der Standard-B<dh>-"
+"Sequenz nach B<dh_link> und nicht mehr nach B<dh_installinitramfs> "
+"ausgeführt."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:97
+msgid ""
+"The B<dh_installpam> tool will now install PAM configuration files under "
+"F<< /usr/lib/pam.d/I<package> >> instead of F<< /etc/pam.d/I<package> >>."
+msgstr ""
+"Das B<dh_installpam>-Werkzeug wird die PAM-Konfigurationsdateien nicht mehr "
+"unter F<< /etc/pam.d/I<Paket> >>, sondern unter F<< /usr/lib/pam.d/I<Paet> "
+">> installieren."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:100
+msgid ""
+"Please consider using the \"rm_conffile\" feature from L<dh_installdeb(1)> "
+"to ensure the proper removal of previous PAM files."
+msgstr ""
+"Bitte prüfen Sie, ob Sie die »rm_conffile«-Funktion von L<dh_installdeb(1)> "
+"einsetzen wollen, um die gründliche Entfernung bestehender PAM-Dateien "
+"sicherzustellen."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:105
+msgid ""
+"The B<meson+ninja> and B<cmake> build systems now use B<meson install> and "
+"B<cmake --install>, respectively, instead of B<ninja install> and B<make "
+"install> in the L<dh_auto_install(1)> call. Any override of "
+"B<dh_auto_install> that passes extra parameters to the upstream build system "
+"should be reviewed."
+msgstr ""
+"Die B<meson+ninja>- und B<cmake>-Bausysteme verwenden im "
+"L<dh_auto_install(1)>-Aufruf jetzt B<meson install> bzw. B<cmake --install> "
+"anstelle von B<ninja install> und B<make install>. Jede Außerkraftsetzung "
+"von B<dh_auto_install>, die Extra-Parameter an das Bausystem der "
+"Originalautoren weiterreicht, sollte überprüft werden."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:112
+msgid ""
+"The B<cmake> build system passes B<< -DBUILD_TESTING:BOOL=OFF >> to B<cmake> "
+"if B<DEB_BUILD_OPTIONS> contains B<nocheck> thus disabling CTest."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:117
+msgid "v13"
+msgstr "v13"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:119
msgid "This is the recommended mode of operation."
msgstr "Dies ist der empfohlene Betriebsmodus."
#. type: textblock
-#: debhelper.pod:476
+#: debhelper-compat-upgrade-checklist.pod:121
+msgid "Changes from v12 are:"
+msgstr "Die Änderungen gegenüber v12 sind:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:127
+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 ""
+"Das Bausystem B<meson+ninja> benutzt anstelle von B<ninja test> nun B<meson "
+"test>, wenn die Testsuite ausgeführt wird. Alles, was B<dh_auto_test> außer "
+"Kraft setzt und zusätzliche Parameter an das Testausführungsprogramm der "
+"Ursprungsautoren übergibt, sollte überprüft werden, da B<meson test> auf der "
+"Befehlszeile nicht mit B<ninja test> kompatibel ist."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:135
+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 ""
+"Alle Debhelper-ähnlichen Werkzeuge, die auf der offiziellen Debhelper-"
+"Bibliothek basieren (einschließlich B<dh> und den offiziellen B<dh_*>-"
+"Werkzeugen) akzeptieren keine abgekürzten Befehlsparameter mehr. "
+"Gleichzeitig sortiert B<dh> nun Aufrufe zu überflüssigen B<dh_*>-"
+"Hilfsprogrammen sogar dann aus, wenn lange Befehlszeilenoptionen angegeben "
+"werden."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:143
+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). If you need them for B<*-indep> targets, you can add an explicit "
+"Build-Depends on B<dh-sequence-elf-tools>."
+msgstr ""
+"Die ELF-bezogenen Debhelper-Werkzeuge (B<dh_dwz>, B<dh_strip>, "
+"B<dh_makeshlibs>, B<dh_shlibdeps>) werden nun standardmäßig nur noch für "
+"architekturabhängige Pakete ausgeführt (d. h. sie werden von B<*-indep>-"
+"Zielen ausgeschlossen und standardmäßig mit B<-a> übergeben). Falls Sie sie "
+"für B<*-indep>-Ziele benötigen, können Sie eine explizite Build-Depends in "
+"B<dh-sequence-elf-tools> hinzufügen."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:152
+msgid ""
+"The third-party B<gradle> build system (from B<gradle-debian-helper> "
+"package) now runs the upstream-provided test suite automatically. To "
+"suppress such behavior, override B<dh_auto_test>."
+msgstr ""
+"Das Drittanbieterbausystem B<gradle> (aus dem Paket B<gradle-debian-helper>) "
+"führt nun automatisch eine von den Ursprungsautoren bereitgestellte "
+"Testsuite aus. Setzen Sie B<dh_auto_test> außer Kraft, um dieses Verhalten "
+"zu unterbinden."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:158
+msgid ""
+"The B<dh_installman> tool now aborts if it sees conflicting definitions of a "
+"manpage. This typically happens if the upstream build system is installing "
+"a compressed version and the package lists an uncompressed version of the "
+"manpage in F<< debian/I<package>.manpages >>. Often the easiest fix is to "
+"remove the manpage from F<< debian/I<package>.manpages >> (assuming both "
+"versions are identical)."
+msgstr ""
+"Das Werkzeug B<dh_installman> beendet sich vorzeitig, falls es "
+"widersprüchliche Definitionen einer Handbuchseite entdeckt. Dies kommt "
+"üblicherweise vor, wenn das Bausystem der Ursprungsautoren eine komprimierte "
+"Version installiert und das Paket eine nicht komprimierte Version der "
+"Handbuchseite in F<< debian/I<package>.manpages >> auflistet. Meist ist die "
+"einfachste Lösung, die Handbuchseite aus F<< debian/I<package>.manpages >> "
+"zu entfernen (davon ausgehend, dass beide Versionen identisch sind)."
+
+# FIXME: s/resets/reset
+# FIXME: last line: missing "is"
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:168
+msgid ""
+"The B<dh_auto_*> helpers now reset the environment variables B<HOME> and "
+"common B<XDG_*> variable. Please see description of the environment "
+"variables in L</ENVIRONMENT> for how this is handled."
+msgstr ""
+"Die B<dh_auto_*>-Hilfsprogramme setzen nun die Umgebungsvariablen B<HOME> "
+"und gebräuchliche B<XDG_*>-Variablen zurück. Wie damit umgegangen wird, "
+"können Sie Sie der Beschreibung für die Umgebungsvariablen in L</"
+"ENVIRONMENT> entnehmen."
+
+# FIXME: Double "between"
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:172
+msgid "I<This feature changed between debhelper 13 and debhelper 13.2.>"
+msgstr ""
+"I<Dieses Funktionsmerkmal hat sich zwischen Debhelper 13 und Debhelper 13.2 "
+"geändert.>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:176
+msgid ""
+"The B<dh> command will now error if an override or hook target for an "
+"obsolete command are present in F<debian/rules> (e.g. "
+"B<override_dh_systemd_enable:>)."
+msgstr ""
+"Der Befehl B<dh> wird nun einen Fehler ausgeben, falls ein Override- oder "
+"Hook-Ziel für einen veralteten Befehl in F<debian/rules> (z.B. "
+"B<override_dh_systemd_enable:>) vorhanden ist."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:182
+msgid ""
+"The B<dh_missing> command will now default to B<--fail-missing>. This can "
+"be reverted to a non-fatal warning by explicitly passing B<--list-missing> "
+"like it was in compat 12."
+msgstr ""
+"Der Befehl B<dh_missing> wird nun auf B<--fail-missing> voreingestellt. Dies "
+"lässt sich zu einer nicht-fatalen Warnung zurückändern, indem explizit B<--"
+"list-missing> übergeben wird, wie es in Kompatibilitätsstufe 12 war."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:186
+msgid ""
+"If you do not want the warning either, please omit the call to "
+"B<dh_missing>. If you use the B<dh> command sequencer, then you can do this "
+"by inserting an empty override target in the F<debian/rules> file of the "
+"relevant package. As an example:"
+msgstr ""
+"Falls Sie die Warnung gar nicht wollen, lassen Sie bitte den Aufruf von "
+"B<dh_missing> weg. Falls Sie den Befehlssequenzer B<dh> benutzen, dann "
+"können Sie dies mit einem leeren Override-Ziel in der Datei F<debian/rules> "
+"oder dem passenden Paket erledigen. Zum Beispiel:"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:191
+#, no-wrap
+msgid ""
+" # Disable dh_missing\n"
+" override_dh_missing:\n"
+"\n"
+msgstr ""
+" # Disable dh_missing\n"
+" override_dh_missing:\n"
+"\n"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:196
+msgid ""
+"The B<dh> command sequencer now runs B<dh_installtmpfiles> in the default "
+"sequence. The B<dh_installtmpfiles> takes over handling of tmpfiles.d "
+"configuration files. Related functionality in B<dh_installsystemd> is now "
+"disabled."
+msgstr ""
+"Der Befehlssequenzer B<dh> führt nun in der Standardsequenz "
+"B<dh_installtmpfiles> aus. B<dh_installtmpfiles> übernimmt die Handhabung "
+"von tmpfiles.d-Konfigurationsdateien. Diesbezügliche Funktionalität in "
+"B<dh_installsystemd> ist nun deaktiviert."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:201
+msgid ""
+"Note that B<dh_installtmpfiles> responds to F<< debian/I<package>.tmpfiles "
+">> where B<dh_installsystemd> used a name without the trailing \"s\"."
+msgstr ""
+"Beachten Sie, dass B<dh_installtmpfiles> auf F<< debian/I<Paket>.tmpfiles >> "
+"reagiert, wo B<dh_installsystemd> einen Nahmen ohne das nachfolgende »s« "
+"benutzt hat."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:207
+msgid ""
+"Many B<dh_*> tools now support limited variable expansion via the B<${foo}> "
+"syntax. In many cases, this can be used to reference paths that contain "
+"either spaces or L<dpkg-architecture(1)> values. While this can reduce the "
+"need for L<dh-exec(1)> in some cases, it is B<not> a replacement L<dh-"
+"exec(1)> in general. If you need filtering, renaming, etc., the package "
+"will still need L<dh-exec(1)>."
+msgstr ""
+"Viele B<dh_*>-Werkzeuge unterstützen nun eine eingeschränkte "
+"Variablenexpandierung per B<${foo}>-Syntax. In vielen Fällen kann dies "
+"benutzt werden, um Pfade zu referenzieren, die entweder Leerzeichen oder "
+"L<dpkg-architecture(1)>-Werte enthalten. Obwohl es den Bedarf an L<dh-"
+"exec(1)> in einigen Fällen vermindern kann, ist es im Allgemeinen B<kein> "
+"Ersatz für L<dh-exec(1)>. Falls Sie filtern, umbenennen usw. möchten, wird "
+"das Paket weiterhin L<dh-exec(1)> benötigt."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:214
+msgid ""
+"Please see L</Substitutions in debhelper config files> for syntax and "
+"available substitution variables. To B<dh_*> tool writers, substitution "
+"expansion occurs as a part of the B<filearray> and B<filedoublearray> "
+"functions."
+msgstr ""
+"Bitte lesen Sie L</Ersetzungen in Debhelper-Konfigurationsdateien>, um mehr "
+"über die Syntax und verfügbare Ersetzungsvariablen zu erfahren. An Verfasser "
+"von B<dh_*>-Werkzeugen: Die Ersetzung und Expandierung ist Teil der "
+"Funktionen B<filearray> und B<filedoublearray>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:221
+msgid ""
+"The B<dh> command sequencer will now skip all hook and override targets for "
+"B<dh_auto_test>, B<dh_dwz> and B<dh_strip> when B<DEB_BUILD_OPTIONS> lists "
+"the relevant B<nocheck> / B<nostrip> options."
+msgstr ""
+"Der Befehlssequenzer B<dh> wird jetzt alle Hooks und Override-Ziele für "
+"B<dh_auto_test>, B<dh_dwz> und B<dh_strip> überspringen, wenn "
+"B<DEB_BUILD_OPTIONS> die maßgeblichen B<nocheck>-/B<nostrip>-Optionen "
+"aufführt."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:225
+msgid ""
+"Any package relying on these targets to always be run should instead move "
+"relevant logic out of those targets. E.g. non-test related packaging code "
+"from B<override_dh_auto_test> would have to be moved to "
+"B<execute_after_dh_auto_build> or B<execute_before_dh_auto_install>."
+msgstr ""
+"Alle Pakete, die sich darauf verlassen, dass diese Ziele immer ausgeführt "
+"werden, sollten die betroffene Logik aus diesen Zielen heraus verschieben. "
+"Z. B. müsste nicht-testbezogener Paketierungscode von "
+"B<override_dh_auto_test> nach B<execute_after_dh_auto_build> oder "
+"B<execute_before_dh_auto_install> verschoben werden."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:232
+msgid ""
+"The B<cmake> buildsystem now passes B<-"
+"DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON> to L<cmake(1)> to speed up automatic "
+"installation process. If for some reason you need previous behavior, "
+"override the flag:"
+msgstr ""
+"Das B<cmake>-Bausystem übergibt nun B<-"
+"DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON> an L<cmake(1)>, um den automatischen "
+"Installationsprozess zu beschleunigen. Falls Sie aus irgendeinem Grund beim "
+"alten Verhalten bleiben möchten, übersteuern Sie den Schalter:"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:236
+#, no-wrap
+msgid ""
+" dh_auto_configure -- -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=OFF ...\n"
+"\n"
+msgstr ""
+" dh_auto_configure -- -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=OFF ...\n"
+"\n"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:240
+msgid "v12"
+msgstr "v12"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:242
+msgid "Changes from v11 are:"
+msgstr "Änderungen gegenüber v11 sind:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:248
+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>) "
+"is now the default."
+msgstr ""
+"Das Werkzeug B<dh_makeshlibs> erzeugt nun standardmäßig Shlibs-Dateien mit "
+"versionierter Abhängigkeit. Das bedeutet, dass B<-VUpstream-Version> (alias "
+"B<-V>) nun die Voreinstellung ist."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:252
+msgid ""
+"If an unversioned dependency in the shlibs file is wanted, this can be "
+"obtained by passing B<-VNone> instead. However, please see "
+"L<dh_makeshlibs(1)> for the caveat of unversioned dependencies."
+msgstr ""
+"Falls eine nicht versionierte Abhängigkeit in der Shlibs-Datei gewünscht "
+"wird, kann dies stattdessen durch Übergabe von B<-VNone> erreicht werden. "
+"Siehe aber auch L<dh_makeshlibs(1)> für die Vorbehalte gegen nicht "
+"versionierte Abhängigkeiten."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:258
+msgid ""
+"The B<-s> (B<--same-arch>) option is removed. Please use B<-a> (B<--arch>) "
+"instead."
+msgstr ""
+"Die Option B<-s> (B<--same-arch>) wurde entfernt. Bitte verwenden Sie "
+"stattdessen B<-a> (B<--arch>)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:262
+msgid ""
+"Invoking B<dh_clean -k> now causes an error instead of a deprecation warning."
+msgstr ""
+"Der Aufruf von B<dh_clean -k> verursacht jetzt einen Fehler statt einer "
+"Warnung, es sei missbilligt."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:267
+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 ""
+"Die Option B<--no-restart-on-upgrade> in B<dh_installinit> wurde entfernt. "
+"Bitte verwenden Sie den neuen Namen B<--no-stop-on-upgrade>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:272
+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 "
+"circumstance. This bug is now removed and will cause helpers that rely on "
+"the bug to fail with a \"command not found\"-error."
+msgstr ""
+"Es gab einen Fehler in den B<doit>- und ähnlichen Funktionen von L<Debian::"
+"Debhelper::Dh_Lib>, der unter einem bestimmten Umstand zum Öffnen einer "
+"Shell führte. Dieser Fehler wurde nun entfernt, wodurch Hilfsprogramme, die "
+"auf den Fehler setzen, mit der Meldung »command not found« fehlschlagen."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:279
+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 "
+"also see the files installed by other helpers."
+msgstr ""
+"B<--list-missing> und B<--fail-missing> in B<dh_install> wurden entfernt. "
+"Bitte verwenden Sie B<dh_missing> und die zugehörigen Optionen, die die "
+"durch andere Hilfsprogramme installierten Dateien ebenfalls sehen können."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:285
+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 "
+"upstart configuration file. The error is there to remind the package "
+"maintainer to ensure the proper removal of the conffiles shipped in previous "
+"versions of the package (if any)."
+msgstr ""
+"Das Hilfsprogramm B<dh_installinit> installiert die Konfiguration für das "
+"Init-System Upstart nicht mehr. Stattdessen bricht es das Bauen ab, wenn es "
+"eine alte Upstart-Konfigurationsdatei findet. Der Fehler soll den "
+"Paketbetreuer daran erinnern, sicherzugehen, dass die mit vorherigen "
+"Versionen des Pakets mitgelieferten Konfigdateien (falls vorhanden) sauber "
+"entfernt werden."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:293
+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 "
+"be invalid."
+msgstr ""
+"Das Werkzeug B<dh_installdeb> wird die Grundprüfung einiger L<dpkg-"
+"maintscript-helper(1)>-Befehle durchführen und sich mit einer Fehlermeldung "
+"beenden, falls die Befehle ungültig zu sein scheinen."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:299
+msgid "The B<dh_missing> tool will now default to B<--list-missing>."
+msgstr ""
+"Das Werkzeug B<dh_missing> wird nun auf B<--list-missing> voreingestellt."
+
+# https://en.wikipedia.org/wiki/Soname
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:303
+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 ""
+"Das Werkzeug B<dh_makeshlibs> wird jetzt nur Bibliotheken an L<dpkg-"
+"gensymbols(1)> übergeben, falls die ELF-Binärdatei einen SONAME hat (enthält "
+"».so«)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:308
+msgid ""
+"The B<dh_compress> tool no longer compresses examples (i.e. anything "
+"installed in F<</usr/share/doc/I<package>/examples>>.)"
+msgstr ""
+"Das Werkzeug B<dh_compress> komprimiert keine Beispiele mehr (d. h. alles, "
+"was in F<</usr/share/doc/I<Paket>/examples>> installiert ist)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:313
+msgid ""
+"The standard sequence in B<dh> now includes B<dh_dwz> and "
+"B<dh_installinitramfs> by default. This makes the B<dwz> and "
+"B<installinitramfs> sequences obsolete and they will now fail with an "
+"error. If you want to skip these commands, then please insert an empty "
+"override target for them in F<debian/rules> (e.g. I<override_dh_dwz:>)"
+msgstr ""
+"Die Standardsequenz in B<dh> enthält nun standardmäßig B<dh_dwz> und "
+"B<dh_installinitramfs>. Dies macht die Sequenzen B<dwz> und "
+"B<installinitramfs> überflüssig und sie werden mit einem Fehler scheitern. "
+"Falls Sie diese Befehle überspringen wollen, fügen Sie bitte ein leeres "
+"Override-Ziel in F<debian/rules> ein (z.B. I<override_dh_dwz:>)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:322
+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 "
+"should be B</usr/libexec> (per FHS 3.0, adopted in Debian Policy 4.1.5)."
+msgstr ""
+"Die Bausysteme B<Meson> und B<Autoconf> setzen die Variable B<--libexecdir> "
+"nicht mehr explizit und verlassen sich auf die Voreinstellung des Bausystems "
+"– diese sollte B</usr/libexec> sein (per FHS 3.0, angenommen in der Debian-"
+"Richtlinie 4.1.5)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:327
+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. "
+"via the following example:"
+msgstr ""
+"Falls ein spezielles Paket der Ursprungsautoren nicht die korrekte "
+"Voreinstellung benutzt, kann der Parameter oft manuell per "
+"L<dh_auto_configure(1)> übergeben werden, etwa wie im folgenden Beispiel:"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:331
+#, no-wrap
+msgid ""
+" override_dh_auto_configure:\n"
+" \tdh_auto_configure -- --libexecdir=/usr/libexec\n"
+"\n"
+msgstr ""
+" override_dh_auto_configure:\n"
+" \tdh_auto_configure -- --libexecdir=/usr/libexec\n"
+"\n"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:334
+msgid "Note the B<--> before the B<--libexecdir> parameter."
+msgstr "Beachten Sie das B<--> vor dem Parameter B<--libexecdir>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:338
+msgid "B<Retroactively removed in debhelper/13.5>:"
+msgstr "B<Rückwirkend in debhelper/13.5 entfernt:>"
+
+# FIXME: would no longer installs → no longer installs
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:340
+msgid ""
+"The B<dh_installdeb> tool would no longer installs the maintainer provided "
+"F<conffiles> file as it was deemed unnecessary. However, the B<remove-on-"
+"upgrade> from dpkg/1.20 made the file relevant again and B<dh_installdeb> "
+"now installs it again in compat levels 12+."
+msgstr ""
+"Das B<dh_installdeb>-Werkzeug installiert nicht länger die vom Betreuer "
+"bereitgestellte F<conffiles>-Datei, weil das als unnötig erachtet wurde. Das "
+"B<remove-on-upgrade> aus Dpkg Version 1.20 machte die Datei jedoch wieder "
+"relevant und B<dh_installdeb> installiert sie jetzt wieder in den "
+"Kompaitiblitätsstufen 12 und aufwärts."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:347
+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 ""
+"Das Werkzeug B<dh_installsystemd> beruht nicht mehr auf B<dh_installinit>, "
+"um Systemd-Dienste zu handhaben, die über eine SysVinit-Alternative "
+"verfügen. In einem solchen Fall müssen jetzt beide Werkzeuge benutzt werden, "
+"um sicherzustellen, dass der Dienst sowohl unter SysVinit als auch unter "
+"Systemd sauber gestartet wird."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:352
+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 ""
+"Falls Sie eine Methode haben, B<dh_installinit> außer Kraft zu setzen (z. B. "
+"indem Sie es mit B<--no-start> aufrufen), dann werden Sie jetzt "
+"wahrscheinlich auch eine für B<dh_installsystemd> benötigen."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:356
+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 ""
+"Diese Änderung lässt B<dh_installinit> ein I<misc:Pre-Depends> für B<< init-"
+"system-helpers (>= 1.54~) >> einspeisen. Bitte stellen Sie sicher, dass das "
+"Paket B<${misc:Pre-Depends}> in seinem Feld B<Pre-Depends> aufführt, bevor "
+"Sie ein Upgrade auf Kompatibilitätsstufe 12 durchführen."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:363
+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 ""
+"Das Drittherstellerwerkzeug B<dh_golang> (aus dem Paket B<dh-golang>) "
+"akzeptiert jetzt standardmäßig die Variable B<DH_GOLANG_EXCLUDES> für die "
+"Quelleninstallation in -dev-Paketen und das nicht nur während des "
+"Bauprozesses. Bitte setzen Sie B<DH_GOLANG_EXCLUDES_ALL> auf »false«, um zum "
+"vorherigen Verhalten zurückzukehren. Einzelheiten und Beispiele finden Sie "
+"unter B<Debian::Debhelper::Buildsystem::golang(3pm)>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:371
+msgid ""
+"B<dh_installsystemduser> is now included in the B<dh> standard sequence by "
+"default."
+msgstr ""
+"B<dh_installsystemduser> ist nun per Voreinstellung in der Standard-B<dh>-"
+"Sequenz enthalten."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:376
+msgid ""
+"The B<python-distutils> buildsystem is now removed. Please use the third-"
+"party build system B<pybuild> instead."
+msgstr ""
+"Das Bausystem B<python-distutils> ist jetzt entfernt worden. Bitte verwenden "
+"Sie stattdessen das Drittanbieterbausystem B<pybuild>."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:381
+msgid "v11"
+msgstr "v11"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:383
+msgid "This mode is discouraged."
+msgstr "Von diesem Modus wird abgeraten."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:385
+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 ""
+"Von der Kompatibilitätsstufe 11 wird für neue Pakete abgeraten, da sie vvon "
+"Funktionalitätswechselwirkungen zwischen L<dh_installinit> und "
+"L<dh_installsystemd> betroffen ist, die dazu führen, dass in manchen Fällen "
+"Dienste nicht korrekt laufen. Bitte erwägen Sie, stattdessen die "
+"Kompatibilitätsstufen 10 oder 12 zu benutzen. Weitere Einzelheiten über das "
+"Thema sind in Debian#887904 und L<https://lists.debian.org/debian-"
+"release/2019/04/msg01442.html> verfügbar."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:392
+msgid "Changes from v10 are:"
+msgstr "Änderungen gegenüber v10 sind:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:398
+msgid ""
+"B<dh_installinit> no longer installs F<service> or F<tmpfile> files, nor "
+"generates maintainer scripts for those files. Please use the new "
+"B<dh_installsystemd> helper."
+msgstr ""
+"B<dh_installinit> installiert keine F<service>- oder F<tmpfile>-Dateien "
+"mehr. Es erstellt auch keine Betreuerskripte dafür. Bitte verwenden Sie das "
+"neue Hilfsprogramm B<dh_installsystemd>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:404
+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> "
+"sequence for B<dh> has also been removed. If you need to disable the "
+"B<dh_installsystemd> helper tool, please use an empty override target."
+msgstr ""
+"Die Hilfsprogramme B<dh_systemd_enable> und B<dh_systemd_start> wurden durch "
+"das neue Hilfsprogramm B<dh_installsystemd> ersetzt. Aus demselben Grund "
+"wurde auch die B<systemd>-Sequenz für B<dh> entfernt. Wenn Sie das "
+"Hilfswerkzeug B<dh_installsystemd> deaktivieren möchten, verwenden Sie bitte "
+"ein leeres Override-Ziel."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:410
+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 ""
+"Bitte beachten Sie, dass sich das Werkzeug B<dh_installsystemd> in manchen "
+"Fällen (z.B. bei der Verwendung des Parameters B<--name>) geringfügig anders "
+"verhält."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:416
+msgid ""
+"B<dh_installdirs> no longer creates debian/I<package> directories unless "
+"explicitly requested (or it has to create a subdirectory in it)."
+msgstr ""
+"B<dh_installdirs> erstellt keine debian/I<Paket>-Verzeichnisse mehr, es sei "
+"denn, dies wird ausdrücklich verlangt (oder es muss ein Unterverzeichnis "
+"darin erstellt werden)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:420
+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-compat-upgrade-checklist.pod:424
+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."
+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-compat-upgrade-checklist.pod:430
+msgid ""
+"The B<autoconf> buildsystem now passes B<--runstatedir=/run> to F<./"
+"configure>."
+msgstr ""
+"Das B<autoconf>-Bausystem übergibt nun B<--runstatedir=/run> an F<./"
+"configure>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:435
+msgid ""
+"The B<cmake> buildsystem now passes B<-DCMAKE_INSTALL_RUNSTATEDIR=/run> to "
+"L<cmake(1)>."
+msgstr ""
+"Das B<cmake>-Bausystem übergibt nun B<-DCMAKE_INSTALL_RUNSTATEDIR=/run> an "
+"L<cmake(1)>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:440
+msgid ""
+"B<dh_installman> will now prefer detecting the language from the path name "
+"rather than the extension."
+msgstr ""
+"B<dh_installman> wird nun vorzugsweise die Sprache anhand des Pfadnamens "
+"statt der Erweiterung bestimmen."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:445
+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. "
+"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_auto_install> wird jetzt nur das Zielverzeichnis erstellen, das es "
+"benötigt. Vorher hätte es die Bauverzeichnisse für alle Pakete erstellt. "
+"Dies hat keine Auswirkungen auf Pakete, die nur mit Debhelper-Befehlen "
+"bauen, es könnte aber Programmfehler in Befehlen offenlegen, die nicht in "
+"Debhelper enthalten sind."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:453
+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 "
+"match anything or reference a path that does not exist."
+msgstr ""
+"Die Hilfsprogramme B<dh_installdocs>, B<dh_installexamples>, "
+"B<dh_installinfo> und B<dh_installman> beenden sich jetzt mit Fehlermeldung, "
+"falls ihre Konfiguration ein Muster aufweist, das zu nichts passt oder sich "
+"auf einen Pfad bezieht, den es nicht gibt."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:457
+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 "
+"specify documentation."
+msgstr ""
+"Bekannte Ausnahmen umfassen das Bauen mit dem Profil B<nodoc>, bei dem die "
+"obigen Werkzeuge stillschweigend fehlschlagende Suchen mit Mustern erlauben,"
+"welche zur Angabe von Dokumentation verwendet werden."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:463
+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 "
+"as B<dh_install>. Furthermore, they now also fall back to F<debian/tmp> like "
+"B<dh_install>."
+msgstr ""
+"Die Hilfsprogramme B<dh_installdocs>, B<dh_installexamples>, "
+"B<dh_installinfo> und B<dh_installman> akzeptieren nun den Parameter B<--"
+"sourcedir> mit derselben Bedeutung wie B<dh_install>. Überdies fallen sie "
+"jetzt, so wie B<dh_install>, auf F<debian/tmp> zurück."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:468
+msgid ""
+"Migration note: A bug in debhelper 11 up to 11.1.5 made B<dh_installinfo> "
+"incorrectly ignore B<--sourcedir>."
+msgstr ""
+"Migrationshinweis: Ein Fehler in Debhelper 11 bis 11.1.5 führte "
+"fälschlicherweise dazu, dass B<dh_installinfo> B<--sourcedir> ignoriert hat."
+
+# FIXME s/can emulate it/can get an emulation of it/ (or emulate it)
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:473
+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 "
+"the B<PERL5LIB> environment variable. E.g. by adding B<export PERL5LIB=.> "
+"in their debian/rules file (or similar)."
+msgstr ""
+"Die Bausysteme B<perl-makemaker> und B<perl-build> übergeben B<-I.> nicht "
+"mehr an Perl. Pakete, die dieses Verhalten immer noch benötigen, können es "
+"durch Verwendung der Umgebungsvariable B<PERL5LIB> emulieren, z. B. durch "
+"Eintragen von B<export PERL5LIB=.> in ihre »debian/rules«-Datei (oder "
+"dergleichen)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:480
+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 "
+"avoid a lot of packages failing to build at the same time."
+msgstr ""
+"B<PERL_USE_UNSAFE_INC> wird jetzt von B<dh> oder den B<dh_auto_*>-Werkzeugen "
+"nicht mehr gesetzt. Sie diente als Übergangslösung, um zu verhindern, dass "
+"das gleichzeitige Bauen vieler Pakete scheitert."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:485
+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 "
+"drops support for it, then this variable will be removed retroactively from "
+"existing compat levels as well."
+msgstr ""
+"Beachten Sie, dass sie irgendwann komplett überholt wird, da die "
+"Ursprungsautoren beabsichtigen, die Unterstützung für die Umgebungsvariable "
+"B<PERL_USE_UNSAFE_INC> einzustellen. Wenn es so weit ist, wird diese "
+"Variable nachträglich auch aus bestehenden Kompatibilitätsstufen entfernt."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:492
+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 ""
+"Das Hilfsprogramm B<dh_makeshlibs> wird nun mit einer Fehlermeldung beendet, "
+"falls Objdump nach der Auswertung einer gegebenen Datei einen Rückgabewert "
+"ungleich null zurückliefert."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:497
+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 "
+"recommendation from Debian policy §12.3 (since version 3.9.7)."
+msgstr ""
+"Die Werkzeuge B<dh_installdocs> und B<dh_installexamples> können jezt die "
+"I<meiste> Dokumentation in einem anderen Pfad installieren, um die "
+"Empfehlung der Debian-Richtlinien §12.3 (seit Version 3.9.7) zu erfüllen."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:501
+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 "
+"change is not relevant for that source package and you can skip to the next "
+"change."
+msgstr ""
+"Beachten Sie, dass diese Änderung nicht für dieses Quellpaket relevant ist "
+"und Sie zur nächsten Änderung springen können, falls ein angegebenes "
+"Quellpaket nur ein einziges Binärpaket in F<debian/control> enthält oder "
+"keine I<-doc>-Pakete dabei sind."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:506
+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<-"
+"doc> package. If they find such a I<doc-main-package>, they will now "
+"install the documentation into the path F<< /usr/share/doc/I<doc-main-"
+"package> >> in the given doc package. I.e. the path can change but the "
+"documentation is still shipped in the I<-doc> package."
+msgstr ""
+"Standardmäßig werden diese Werkzeuge nun versuchen, ein »Hauptpaket für die "
+"Dokumentation« (ab hier I<Hauptdokumentationspaket> genannt) für jedes I<-"
+"doc>-Paket zu bestimmen. Falls sie ein derartiges "
+"I<Hauptdokumentationspaket> finden, werden sie nun die Dokumentation in den "
+"Pfad F<< /usr/share/doc/I<Hauptdokumentationspaket> >> im angegebenen "
+"Dokumentationspaket installieren. Das heißt, der Pfad kann sich ändern, aber "
+"die Dokumentation wird immer noch im I<-doc>-Paket mitgeliefert."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:514
+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 "
+"to diverge from Debian policy recommendation."
+msgstr ""
+"Die Option B<--doc-main-package> kann benutzt werden, wenn die automatische "
+"Erkennung unzureichend ist oder um den Pfad auf seinen vorherigen Wert "
+"zurückzusetzen, falls es einen Grund gibt, von der Empfehlung der Debian-"
+"Richlinien abzuweichen."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:518
+msgid ""
+"Some documentation will not be affected by this change. These exceptions "
+"include the copyright file, changelog files, README.Debian, etc. These "
+"files will still be installed in the path F<< /usr/share/doc/I<package> >>."
+msgstr ""
+"Manche Dokumentation wird von dieser Änderung nicht beeinflusst. Diese "
+"Ausnahmen umfassen die Copyright-Dateien, README.Debian usw. Diese Dateien "
+"werden weiterhin im Pfad F<< /usr/share/doc/I<Paket> >> installiert."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:525
+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 "
+"for an ELF header to determine if a given file is an shared object or an ELF "
+"executable."
+msgstr ""
+"Die Werkzeuge B<dh_strip> und B<dh_shlibdeps> verwenden keine "
+"Dateinamenmuster mehr, um zu bestimmen, welche Dateien verarbeitet werden. "
+"Stattdessen öffnen sie die Datei und suchen nach einem ELF-Header, um zu "
+"bestimmen, ob eine übergebene Datei ein gemeinsam benutztes Objekt oder ein "
+"ausführbares binäres Programm ist."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:530
+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-compat-upgrade-checklist.pod:534
+msgid "v10"
+msgstr "v10"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:536
+msgid "Changes from v9 are:"
+msgstr "Änderungen gegenüber v9 sind:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:542
+msgid ""
+"B<dh_installinit> will no longer installs a file named debian/I<package> as "
+"an init script."
+msgstr ""
+"B<dh_installinit> wird keine Datei namens debian/I<Paket> mehr als Init-"
+"Skript installieren."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:547
+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 "
+"binNMUs."
+msgstr ""
+"B<dh_installdocs> wird mit einem Fehler fehlschlagen, falls es Links "
+"entdeckt, die mit --link-doc zwischen Paketen der Architektur »all« und "
+"nicht-»all« erzeugt wurden, da d binNMUs beschädigt."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:553
+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 ""
+"B<dh_installdeb> installiert keine vom Paketbetreuer bereitgestellte debian/"
+"I<Paket>.shlibs-Datei mehr. Dies wird stattdessen von B<dh_makeshlibs> "
+"erledigt."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:559
+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 ""
+"B<dh_installwm> weigert sich, ein beschädigtes Paket zu erstellen, falls "
+"keine Handbuchseite gefunden wird (erforderlich, um die Alternative zum X-"
+"Window-Manager zu registrieren)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:564
+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 ""
+"B<--parallel> ist Debhelpers Voreinstellung für alle Bausysteme, die "
+"paralleles Bauen unterstützen. Dies kann entweder durch Verwendung von B<--"
+"no-parallel> oder durch Übergabe von B<--max-parallel> mit einem Wert von 1 "
+"deaktiviert werden."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:570
+msgid ""
+"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."
+msgstr ""
+"Der Befehl B<dh> wird keinen der veralteten Parameter zur »manuellen "
+"Sequenzsteuerung« (B<--before>, B<--after>, etc.) akzeptieren. Bitte "
+"verwenden Sie stattdessen Aufhebungsziele (override targts)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:574
+msgid ""
+"B<Retroactively applied to earlier compat levels>: B<dh> no longer accepts "
+"any of these since debhelper/12.4."
+msgstr ""
+"B<Nachträglich auf frühere Kompatibilitätsstufen angewandt>: B<dh> "
+"akzeptiert seit Debhelper/12.4 nichts davon mehr."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:579
+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 "
+"the \"build\" sequence and skip it if it did."
+msgstr ""
+"Der Befehl B<dh> wird keine Logdateien mehr benutzen, um zu protokollieren, "
+"welche Befehle ausgeführt worden sind. Er wird aber I<trotzdem> "
+"nachverfolgen, ob er selbst schon einmal in der Bausequenz gelaufen ist und "
+"sie ggf. überspringen."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:583
+msgid "The main effects of this are:"
+msgstr "Die wichtigsten Auswirkungen davon sind:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:589
+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 "
+"full \"clean and rebuild\" cycle)"
+msgstr ""
+"Hierdurch wird die Fehlersuche bei den Sequenzen I<install> und/oder "
+"I<binary> einfacher, da sie nun einfach erneut ausgeführt werden können "
+"(ohne, dass ein vollständiger »Aufräum- und Neubau«-Durchgang erforderlich "
+"ist)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:595
+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 "
+"happens in the same override target everything will work as before."
+msgstr ""
+"Der Pferdefuß hier liegt darin, dass B<dh_*> nun nur noch nachverfolgt, was "
+"in einem einzelnen Override-Ziel geschieht. Wenn alle Aufrufe eines "
+"angegebenen B<dh_cmd>-Befehls im selben Override-Ziel stattfinden, wird "
+"alles wie zuvor funktionieren."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:600
+msgid "Example of where it can go wrong:"
+msgstr "Beispiel, bei dem es schiefgehen kann:"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:602
+#, no-wrap
+msgid ""
+" override_dh_foo:\n"
+" dh_foo -pmy-pkg\n"
+"\n"
+msgstr ""
+" override_dh_foo:\n"
+" dh_foo -pmein-Paket\n"
+"\n"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:605
+#, no-wrap
+msgid ""
+" override_dh_bar:\n"
+" dh_bar\n"
+" dh_foo --remaining\n"
+"\n"
+msgstr ""
+" override_dh_bar:\n"
+" dh_bar\n"
+" dh_foo --remaining\n"
+"\n"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:609
+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 "
+"issue is not limited to B<--remaining>, but also includes B<-a>, B<-i>, etc."
+msgstr ""
+"In diesem Fall wird der Aufruf von B<dh_foo --remaining> I<außerdem> I<mein-"
+"Paket> enthalten, da B<dh_foo -pmein-Paket> in einem separaten Override-Ziel "
+"ausgeführt wird. Dieses Problem ist nicht auf B<--remaining> begrenzt, es "
+"umfasst außerdem B<-a>, B<-i>, etc."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:618
+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 "
+"work properly and packages have begun to rely on the incomplete shell "
+"escaping (e.g. quoting file names)."
+msgstr ""
+"Der Befehl B<dh_installdeb> maskiert nun die Zeilen in der "
+"Konfigurationsdatei F<maintscript> für die Shell. Dies war der ursprüngliche "
+"Gedanke, aber es funktionierte nicht, wie es sollte und die Pakete begannen, "
+"sich auf die unvollständige Shell-Maskierung zu verlassen (z.B. das Setzen "
+"von Dateinamen in Anführungszeichen)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:625
+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-"
+"upgrade>."
+msgstr ""
+"Voreinstellung für den Befehl B<dh_installinit> ist nun B<--restart-after-"
+"upgrade>. Für Pakete, die das vorhergehende Verhalten erfordern, verwenden "
+"Sie bitte B<--no-restart-after-upgrade>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:631
+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 ""
+"Die B<autoreconf>-Sequenz ist nun standardmäßig aktiviert. Bitte übergeben "
+"Sie B<--without autoreconf> an B<dh>, falls dies für ein angegebenes Paket "
+"nicht erwünscht ist."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:637
+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 ""
+"Die B<systemd>-Sequenz ist nun standardmäßig aktiviert. Bitte übergeben Sie "
+"B<--without systemd> an B<dh>, falls dies für ein angegebenes Paket nicht "
+"erwünscht ist."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:643
+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<Nachträglich entfernt>: 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-compat-upgrade-checklist.pod:648
+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 ""
+"Diese Kompatibilitätsfunktionalität hatte einen Fehler seit ihrer Aufnahme "
+"in Debhelper/9.20130516, der sie im Kompatibilitätsmodus 9 und älter zum "
+"Scheitern brachte. Da es in den fünf Jahren ihres Bestehens keine Berichte "
+"zu Problemen gab, die von diesem Fehler verursacht wurden, wurde sie nicht "
+"überarbeitet, sondern entfernt."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:655
+msgid "v9"
+msgstr "v9"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:657
msgid "Changes from v8 are:"
msgstr "Änderungen gegenüber v8 sind:"
#. type: textblock
-#: debhelper.pod:482
+#: debhelper-compat-upgrade-checklist.pod:663
msgid ""
"Multiarch support. In particular, B<dh_auto_configure> passes multiarch "
"directories to autoconf in --libdir and --libexecdir."
@@ -1161,72 +3875,83 @@ msgstr ""
"Verzeichnisse an Autoconf in --libdir and --libexecdir weiter."
#. type: textblock
-#: debhelper.pod:487
+#: debhelper-compat-upgrade-checklist.pod:668
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 "
"targets that exist in the rules file. There's no need to define an explicit "
"binary target with explicit dependencies on the other targets."
msgstr ""
-"dh kennt die üblichen Abhängigkeiten zwischen Zielen in debian/rules. Daher "
-"wird »dh binary« alle »build«-, »build-arch«-, »build-indep«-, »install«-"
-"Ziele etc. ausführen, die in dieser Regeldatei stehen. Es ist nicht nötig, "
-"explizit ein binäres Ziel mit expliziten Abhängigkeiten zu den anderen "
-"Zielen zu definieren."
+"dh kennt die üblichen Abhängigkeiten zwischen den Zielen in debian/rules. "
+"Daher wird »dh binary« alle »build«-, »build-arch«-, »build-indep«-, "
+"»install«-Ziele etc. ausführen, die in der Regeldatei stehen. Es ist nicht "
+"nötig, explizit ein binäres Ziel mit expliziten Abhängigkeiten zu den "
+"anderen Zielen zu definieren."
#. type: textblock
-#: debhelper.pod:494
+#: debhelper-compat-upgrade-checklist.pod:675
msgid ""
"B<dh_strip> compresses debugging symbol files to reduce the installed size "
"of -dbg packages."
msgstr ""
-"B<dh_strip> komprimiert Debug-Symboldateien, um die installierte Größe von »-"
-"dbg«-Paketen zu verringern."
+"B<dh_strip> komprimiert Debug-Symboldateien, um die Größe der installierten "
+"»-dbg«-Paketen zu verringern."
#. type: textblock
-#: debhelper.pod:499
+#: debhelper-compat-upgrade-checklist.pod:680
msgid ""
"B<dh_auto_configure> does not include the source package name in --"
"libexecdir when using autoconf."
msgstr ""
-"B<dh_auto_configure> enthält nicht den Quellpaketnamen in --libexecdir, wenn "
+"B<dh_auto_configure> enthält keinen Quellpaketnamen in --libexecdir, wenn "
"Autoconf benutzt wird."
#. type: textblock
-#: debhelper.pod:504
+#: debhelper-compat-upgrade-checklist.pod:685
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:508
+#: debhelper-compat-upgrade-checklist.pod:687
+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 "
+"regardless of compat level)"
+msgstr ""
+"(Hinfällig, da das Werkzeug B<dh_pysupport> aus Debian Stretch entfernt "
+"wurde. Seit Debhelper/10.3 aktiviert B<dh> diese Sequenzerweiterung "
+"unabhängig von der Kompatibilitätsstufe nicht mehr.)"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:693
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 ""
"Alle B<dh_auto_>I<*>-Debhelper-Programme und B<dh> setzen "
-"Umgebungsvariablen, die durch B<dpkg-buildflags> aufgelistet werden, wenn "
+"Umgebungsvariablen, die durch B<dpkg-buildflags> aufgelistet werden, sofern "
"sie nicht bereits gesetzt sind."
#. type: textblock
-#: debhelper.pod:514
+#: debhelper-compat-upgrade-checklist.pod:699
msgid ""
"B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and LDFLAGS "
"to perl F<Makefile.PL> and F<Build.PL>"
msgstr ""
"B<dh_auto_configure> übergibt CFLAGS, CPPFLAGS und LDFLAGS von B<dpkg-"
-"buildflags> an Perls F<Makefile.PL> und F<Build.PL.>"
+"buildflags> an Perls F<Makefile.PL> und F<Build.PL.>."
#. type: textblock
-#: debhelper.pod:519
+#: debhelper-compat-upgrade-checklist.pod:704
msgid ""
"B<dh_strip> puts separated debug symbols in a location based on their build-"
"id."
msgstr ""
-"B<dh_strip> legt getrennte Debug-Symbole an einer Stelle ab, die auf ihrer "
-"Baukennzahl basiert."
+"B<dh_strip> legt getrennte Fehlersuchsymbole an einer Stelle ab, die auf "
+"ihrer Baukennzahl basiert."
#. type: textblock
-#: debhelper.pod:524
+#: debhelper-compat-upgrade-checklist.pod:709
msgid ""
"Executable debhelper config files are run and their output used as the "
"configuration."
@@ -1234,497 +3959,431 @@ msgstr ""
"Ausführbare Debhelper-Konfigurationsdateien werden ausgeführt und ihre "
"Ausgabe wird als Konfiguration benutzt."
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:714
+#: debhelper-compat-upgrade-checklist.pod:745
+#: debhelper-compat-upgrade-checklist.pod:749 debhelper-obsolete-compat.pod:81
+#: debhelper-obsolete-compat.pod:135 debhelper-obsolete-compat.pod:158
+#: debhelper-obsolete-compat.pod:165 debhelper-obsolete-compat.pod:174
+msgid "This mode is deprecated."
+msgstr "Dieser Modus ist missbilligt."
+
#. type: =item
-#: debhelper.pod:529
-msgid "v10"
-msgstr "v10"
+#: debhelper-compat-upgrade-checklist.pod:716
+msgid "v8"
+msgstr "v8"
#. type: textblock
-#: debhelper.pod:531
+#: debhelper-compat-upgrade-checklist.pod:718
+msgid "Changes from v7 are:"
+msgstr "Änderungen gegenüber v7 sind:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:724
msgid ""
-"This compatibility level is still open for development; use with caution."
+"Commands will fail rather than warning when they are passed unknown options."
msgstr ""
-"Diese Kompatibilitätsstufe ist immer noch in Entwicklung; benutzen Sie sie "
-"mit Vorsicht."
+"Befehle werden fehlschlagen anstatt zu warnen, wenn ihnen unbekannte "
+"Optionen übergeben werden."
#. type: textblock
-#: debhelper.pod:533
-msgid "Changes from v9 are:"
-msgstr "Änderungen gegenüber v9 sind:"
+#: debhelper-compat-upgrade-checklist.pod:728
+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. "
+"Also, libraries in unusual locations that B<dpkg-gensymbols> would not have "
+"processed before will be passed to it, a behavior change that can cause some "
+"packages to fail to build."
+msgstr ""
+"B<dh_makeshlibs> führt B<dpkg-gensymbols> auf allen gemeinsamen Bibliotheken "
+"aus, für die es Shlib-Dateien generiert, wobei Bibliotheken mit B<-X> "
+"ausgeschlossen werden können. Außerdem werden B<dpkg-gensymbols> "
+"Bibliotheken an unüblichen Orten übergeben, ohne dass es diese vorher "
+"verarbeitet haben wird, was dazu führen kann, dass sich einige Pakete nicht "
+"bauen lassen."
#. type: textblock
-#: debhelper.pod:537
+#: debhelper-compat-upgrade-checklist.pod:736
msgid ""
-"B<dh_installinit> will no longer install a file named debian/I<package> as "
-"an init script."
+"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 "
+"$@>\"."
msgstr ""
-"B<dh_installinit> wird nicht mehr eine Datei namens debian/I<Paket> als Init-"
-"Skript installieren."
+"B<dh> erfordert, dass die auszuführende Sequenz als erster Parameter "
+"angegeben wird und sämtliche Schalter danach kommen. Das heißt, Sie "
+"schreiben nicht »B<dh --foo $@>«, sondern »B<dh $@ --foo>«."
#. type: textblock
-#: debhelper.pod:544
+#: debhelper-compat-upgrade-checklist.pod:741
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."
+"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
+"F<Makefile.PL>."
msgstr ""
-"B<dh> erstellt das Bauverzeichnis des Pakets nicht mehr, wenn die Ausführung "
-"von Debhelper-Befehlen übersprungen wird. Dies wird auf Pakete, die nur mit "
-"Debhelper-Befehlen bauen, keine Auswirkungen haben, es könnte aber Fehler in "
-"Befehlen offenlegen, die nicht in Debhelper enthalten sind."
+"B<dh_auto_>I<*> bevorzugt Perls B<Module::Build> gegenüber F<Makefile.PL>."
-#. type: =head1
-#: debhelper.pod:553 dh_auto_test:45 dh_installcatalogs:59 dh_installdocs:121
-#: dh_installemacsen:72 dh_installexamples:53 dh_installinit:140
-#: dh_installman:82 dh_installmodules:54 dh_installudev:55 dh_installwm:54
-#: dh_installxfonts:37 dh_movefiles:64 dh_strip:68 dh_usrlocal:49
-msgid "NOTES"
-msgstr "ANMERKUNGEN"
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:747 debhelper-obsolete-compat.pod:21
+msgid "v7"
+msgstr "v7"
-#. type: =head2
-#: debhelper.pod:555
-msgid "Multiple binary package support"
-msgstr "Unterstützung mehrerer Binärpakete"
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:751 debhelper-obsolete-compat.pod:23
+msgid "This is the lowest supported compatibility level."
+msgstr "Dies ist die unterste unterstützte Kompatibilitätsstufe."
#. type: textblock
-#: debhelper.pod:557
+#: debhelper-compat-upgrade-checklist.pod:753
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 "
-"source package happens to generate one architecture dependent package, and "
-"another architecture independent package, this is not the correct behavior, "
-"because you need to generate the architecture dependent packages in the "
-"binary-arch F<debian/rules> target, and the architecture independent "
-"packages in the binary-indep F<debian/rules> target."
+"If you are upgrading from an earlier compatibility level, please review "
+"L<debhelper-obsolete-compat(7)>."
msgstr ""
-"Falls Ihr Quellpaket mehr als ein Binärpaket erzeugt, werden Debhelper-"
-"Programme standardmäßig bei der Ausführung auf alle Paketen einwirken. Falls "
-"es vorkommt, dass Ihr Quellpaket ein architekturabhängiges Paket und ein "
-"anderes architekturunabhängiges Paket erzeugt, ist dies nicht das korrekte "
-"Verhalten, da Sie die architekturabhängigen Pakete im F<debian/rules>-Ziel "
-"»binary-arch« erzeugen müssen und die unabhängigen Pakete im F<debian/rules>-"
-"Ziel »binary-indep«."
+"Falls Sie ein Upgrade von einer vorhergehenden Kompatibilitätsstufe "
+"durchführen, überprüfen Sie bitte L<debhelper-obsolete-compat(7)>."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:762
+msgid "L<debhelper-obsolete-compat(7)>"
+msgstr "L<debhelper-obsolete-compat(7)>"
#. type: textblock
-#: debhelper.pod:565
-#, fuzzy
-#| 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<-i>, B<-p>, and B<-s> parameters. These parameters are cumulative. "
-#| "If none are given, debhelper programs default to acting on all packages "
-#| "listed in the control file."
+#: debhelper-compat-upgrade-checklist.pod:764
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<-"
-"i>, B<-p>, and B<-s> parameters. These parameters are cumulative. If none "
-"are given, debhelper programs default to acting on all packages listed in "
-"the control file, with the exceptions below."
+"Upgrading from a (now) obsolete compatibility level? This document covers "
+"the upgrade checklist up to the earliest supported level."
msgstr ""
-"Um dies zu erleichtern als auch, um Ihnen mehr Kontrolle darüber zu geben, "
-"auf welche Pakete Debhelper-Programme einwirken, akzepieren alle Debhelper-"
-"Programme die Parameter B<-a>, B<-i>, B<-p> und B<-s>. Diese Parameter sind "
-"kumulativ. Falls keiner angegeben wurde, wirken Debhelper-Programme "
-"standardmäßig auf alle Paketen ein, die in der Datei »control« aufgeführt "
-"sind."
+"Führen Sie ein Upgrade von einer (jetzt) obsoleten Kompatibilitätsstufe aus? "
+"Dieses Dokument enthält die Upgrade-Prüflisten bis zur ältesten "
+"unterstützten Stufe."
#. type: textblock
-#: debhelper.pod:571
-msgid ""
-"First, any package whose B<Architecture> field in B<debian/control> does not "
-"match the build architecture will be excluded (L<Debian Policy, section "
-"5.6.8>)."
-msgstr ""
+#: debhelper-compat-upgrade-checklist.pod:767 debhelper-obsolete-compat.pod:180
+#: dh:874 dh_auto_build:55 dh_auto_clean:57 dh_auto_configure:60
+#: dh_auto_install:105 dh_auto_test:66 dh_builddeb:178 dh_clean:191
+#: dh_compress:245 dh_dwz:165 dh_fixperms:166 dh_gencontrol:210 dh_install:379
+#: dh_installcatalogs:130 dh_installchangelogs:367 dh_installcron:82
+#: dh_installdeb:421 dh_installdebconf:235 dh_installdirs:133
+#: dh_installdocs:439 dh_installexamples:184 dh_installifupdown:74
+#: dh_installinfo:125 dh_installlogcheck:83 dh_installlogrotate:55
+#: dh_installman:422 dh_installmanpages:200 dh_installmime:65
+#: dh_installmodules:111 dh_installpam:73 dh_installppp:70 dh_installudev:104
+#: dh_installwm:132 dh_installxfonts:92 dh_link:168 dh_listpackages:36
+#: dh_makeshlibs:458 dh_md5sums:120 dh_movefiles:163 dh_perl:190 dh_prep:72
+#: dh_strip:437 dh_testdir:64 dh_testroot:95 dh_usrlocal:138
+#: dh_systemd_start:282
+msgid "L<debhelper(7)>"
+msgstr "L<debhelper(7)>"
#. type: textblock
-#: debhelper.pod:575
+#: debhelper-compat-upgrade-checklist.pod:769
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 "
-"binary package stanzas in B<debian/control>, according to the draft policy "
-"at L<https://wiki.debian.org/BuildProfileSpec>."
+"General information about the debhelper framework. This document also covers "
+"how to declare your chosen debhelper compat level."
msgstr ""
+"Generelle Informationen über das Debhelper-Rahmenwerk. Dieses Dokument "
+"beschreibt auch, wie Sie die von Ihnen gewählte Debhelper-"
+"Kompatibilitätsstufe deklarieren."
-#. type: =head2
-#: debhelper.pod:580
-msgid "Automatic generation of Debian install scripts"
-msgstr "Automatisches Erzeugen von Debian-Installationsskripten"
+#. type: =head1
+#: debhelper-compat-upgrade-checklist.pod:774 debhelper-obsolete-compat.pod:182
+#: dh_installinit:419 dh_systemd_enable:284 dh_systemd_start:284
+msgid "AUTHORS"
+msgstr "AUTOREN"
#. type: textblock
-#: debhelper.pod:582
-msgid ""
-"Some debhelper commands will automatically generate parts of Debian "
-"maintainer scripts. If you want these automatically generated things "
-"included in your existing Debian maintainer scripts, then you need to add "
-"B<#DEBHELPER#> to your scripts, in the place the code should be added. "
-"B<#DEBHELPER#> will be replaced by any auto-generated code when you run "
-"B<dh_installdeb>."
-msgstr ""
-"Einige Debhelper-Befehle werden automatisch Teile der Debian-Betreuerskripte "
-"erzeugen. Falls Sie diese automatisch erzeugten Dinge in Ihre existierenden "
-"Debian-Betreuerskripte einfügen möchten, dann müssen Sie Ihren Skripten "
-"B<#DEBHELPER#> an der Stelle hinzufügen, an die der Kode hinzugefügt werden "
-"soll. B<#DEBHELPER#> wird bei der Ausführung durch irgendeinen automatisch "
-"erzeugten Kode ersetzt."
+#: debhelper-compat-upgrade-checklist.pod:776 debhelper-obsolete-compat.pod:184
+#: dh_dwz:171 dh_installinitramfs:101
+msgid "Niels Thykier <niels@thykier.net>"
+msgstr "Niels Thykier <niels@thykier.net>"
#. type: textblock
-#: debhelper.pod:589
-msgid ""
-"If a script does not exist at all and debhelper needs to add something to "
-"it, then debhelper will create the complete script."
+#: debhelper-compat-upgrade-checklist.pod:778 debhelper-obsolete-compat.pod:186
+msgid "Joey Hess"
+msgstr "Joey Hess"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:3
+msgid "debhelper-obsolete-compat - List of no longer supported compat levels"
msgstr ""
-"Falls ein Skript überhaupt noch nicht existiert und Debhelper etwas darin "
-"hinzufügen muss, dann wird Debhelper das komplette Skript erstellen."
+"debhelper-obsolete-compat - Liste nicht mehr unterstützter "
+"Kompatibilitätsstufen"
#. type: textblock
-#: debhelper.pod:592
+#: debhelper-obsolete-compat.pod:7
msgid ""
-"All debhelper commands that automatically generate code in this way let it "
-"be disabled by the -n parameter (see above)."
+"This document contains the upgrade guidelines from all compat levels which "
+"are no longer supported. Accordingly it is mostly for historical purposes "
+"and to assist people upgrading from a non-supported compat level to a "
+"supported level."
msgstr ""
-"Alle Debhelper-Befehle, die auf diese Art automatisch Kode erzeugen, lassen "
-"dies durch den Parameter -n deaktiviert (siehe oben)."
+"Dieses Dokument enthält die Upgrade-Richtlinien aller Kompatibilitätsstufen, "
+"die nicht mehr unterstützt werden. Dementsprechend dient es vor allem "
+"historischen Zwecken und hilft beim Upgrade von einer nicht unterstützten "
+"Kompatibilitätsstufe auf eine unterstützte Stufe."
#. type: textblock
-#: debhelper.pod:595
-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 "
-"is one way to do that (note that I made sure that $1, $2, etc are set with "
-"the set command):"
+#: debhelper-obsolete-compat.pod:12
+msgid "For upgrades from supported compat levels, please see L<debhelper(7)>."
msgstr ""
-"Beachten Sie, dass der eingefügte Kode Shell-Kode sein wird. Sie können ihn "
-"daher nicht direkt in einem Perl-Skript verwenden. Falls Sie ihn in ein Perl-"
-"Skript einbetten wollen, wird hier eine Möglichkeit beschrieben, dies zu tun "
-"(beachten Sie, dass über den Befehl »set« sichergestellt wird, dass $1, $2, "
-"etc. gesetzt sind):"
+"Für Upgrades von unterstützten Kompatibilitätsstufen lesen Sie bitte "
+"L<debhelper(7)>."
-#. type: verbatim
-#: debhelper.pod:600
-#, no-wrap
+#. type: =head1
+#: debhelper-obsolete-compat.pod:14
+msgid "UPGRADE LIST FOR COMPAT LEVELS"
+msgstr "UPGRADE-LISTE FÜR KOMPATIBILITÄTSSTUFEN"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:16
msgid ""
-" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
-" #DEBHELPER#\n"
-" EOF\n"
-" system ($temp) / 256 == 0\n"
-" \tor die \"Problem with debhelper scripts: $!\";\n"
-"\n"
+"The following is the list of now obsolete compat levels and their changes."
msgstr ""
-" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
-" #DEBHELPER#\n"
-" EOF\n"
-" system ($temp) / 256 == 0\n"
-" \tor die \"Problem mit Debhelper-Skripten: $!\";\n"
-"\n"
+"Es folgt die Liste der nun überflüssigen Kompatibilitätsstufen und ihrer "
+"Änderungen."
-#. type: =head2
-#: debhelper.pod:606
-msgid "Automatic generation of miscellaneous dependencies."
-msgstr "Automatisches Erzeugen verschiedener Abhängigkeiten"
+#. type: textblock
+#: debhelper-obsolete-compat.pod:25
+msgid "Changes from v6 are:"
+msgstr "Änderungen gegenüber v6 sind:"
#. type: textblock
-#: debhelper.pod:608
+#: debhelper-obsolete-compat.pod:31
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 "
-"package will generally need to depend on debconf. Or if you use "
-"L<dh_installxfonts(1)>, your package will generally need to depend on a "
-"particular version of xutils. Keeping track of these miscellaneous "
-"dependencies can be annoying since they are dependent on how debhelper does "
-"things, so debhelper offers a way to automate it."
+"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 "
+"using B<--sourcedir>). This allows B<dh_install> to interoperate with "
+"B<dh_auto_install>, which installs to F<debian/tmp>, without needing any "
+"special parameters."
msgstr ""
-"Einige Debhelper-Befehle könnten dazu führen, dass das erzeugte Paket von "
-"einigen anderen Paketen abhängt. Falls Sie beispielsweise "
-"L<dh_installdebconf(1)> benutzen, wird Ihr Paket von Debconf abhängen "
-"müssen. Oder, falls Sie L<dh_installxfonts(1)> verwenden, wird ihr Paket "
-"generell von einer bestimmten Version der Xutils abhängen. Den Überblick "
-"über diese verschiedenen Abhängigkeiten zu behalten kann lästig sein, da sie "
-"davon abhängen, wie Debhelper Dinge tut, weswegen Debhelper eine Möglichkeit "
-"bietet, sie zu automatisieren."
+"Falls B<dh_install> keine Dateien im derzeitigen (oder dem via B<--"
+"sourcedir> mitgegebenen) Verzeichnis findet, sucht es sie ersatzweise in "
+"F<debian/tmp>. Das ermöglicht es ihm, ohne dass es bsondere Parameter "
+"benötigt, mit B<dh_auto_install> zusammenzuarbeiten, welches nach F<debian/"
+"tmp> installiert."
#. type: textblock
-#: debhelper.pod:616
-msgid ""
-"All commands of this type, besides documenting what dependencies may be "
-"needed on their man pages, will automatically generate a substvar called B<"
-"${misc:Depends}>. If you put that token into your F<debian/control> file, it "
-"will be expanded to the dependencies debhelper figures you need."
+#: debhelper-obsolete-compat.pod:38
+msgid "B<dh_clean> will read F<debian/clean> and delete files listed there."
msgstr ""
-"Für jeden Befehl werden die benötigten Abhängigkeiten in den Handbuchseiten "
-"dokumentiert. Daneben wird automatisch eine »substvar« erzeugt, die B<${misc:"
-"Depends}> genannt wird. Falls Sie eine Markierung in Ihre F<debian/control>-"
-"Datei schreiben, wird es sie zu den Abhängigkeiten expandieren, von denen "
-"Debhelper findet, dass Sie sie benötigen."
+"B<dh_clean> wird F<debian/clean> lesen und die dort aufgeführten Dateien "
+"löschen."
#. type: textblock
-#: debhelper.pod:621
+#: debhelper-obsolete-compat.pod:42
+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-obsolete-compat.pod:46
msgid ""
-"This is entirely independent of the standard B<${shlibs:Depends}> generated "
-"by L<dh_makeshlibs(1)>, and the B<${perl:Depends}> generated by "
-"L<dh_perl(1)>. You can choose not to use any of these, if debhelper's "
-"guesses don't match reality."
+"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
+"none is specified."
msgstr ""
-"Dies ist gänzlich unabhängig von dem vorgegebenen B<${shlibs:Depends}>, das "
-"durch L<dh_makeshlibs(1)> erzeugt wurde und den durch L<dh_perl(1)> "
-"erzeugten B<${perl:Depends}>. Sie können auswählen, keines davon zu "
-"benutzen, falls die Einschätzung von Debhelper nicht der Wirklichkeit "
-"entspricht."
+"B<dh_installchangelogs> wird abschätzen, in welcher Datei das Changelog der "
+"Originalautoren liegt, falls keines angegeben wurde."
-#. type: =head2
-#: debhelper.pod:626
-msgid "Package build directories"
-msgstr "Paketbauverzeichnisse"
+#. type: =item
+#: debhelper-obsolete-compat.pod:51
+msgid "v6"
+msgstr "v6"
#. type: textblock
-#: debhelper.pod:628
+#: debhelper-obsolete-compat.pod:53
+msgid "Changes from v5 are:"
+msgstr "Änderungen gegenüber v5 sind:"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:59
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>."
+"Commands that generate maintainer script fragments will order the fragments "
+"in reverse order for the F<prerm> and F<postrm> scripts."
msgstr ""
-"Standardmäßig gehen alle Debhelper-Programme davon aus, dass das temporäre "
-"Verzeichnis, das zum Zusammenbau des Dateibaums in einem Paket benutzt wird, "
-"debian/I<Paket> ist."
+"Befehle, die Fragmente von Betreuerskripten erzeugen, werden die Fragmente "
+"für die F<prerm>- und F<postrm>-Skripte in umgekehrter Reiherfolge anordnen."
#. type: textblock
-#: debhelper.pod:631
+#: debhelper-obsolete-compat.pod:64
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>"
-"\", will use B<debian/tmp> as the temporary directory. Note that if you use "
-"B<-P>, the debhelper programs can only be acting on a single package at a "
-"time. So if you have a package that builds many binary packages, you will "
-"need to also use the B<-p> flag to specify which binary package the "
-"debhelper program will act on."
+"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 "
+"directory."
msgstr ""
-"Manchmal wollen Sie möglicherweise ein anderes temporäres Vezeichnis "
-"benutzen. Dies wird durch den Schalters B<-P> unterstützt. »B<dh_installdocs "
-"-Pdebian/tmp>« wird zum Beispiel B<debian/tmp> als temporäres Verzeichnis "
-"nutzen. Beachten Sie, falls Sie B<-P> verwenden, dass die Debhelper-"
-"Programme nur auf ein einzelnes Paket auf einmal einwirken kann. Falls Sie "
-"also ein Paket haben, das mehrere Binärpakete baut, müssen Sie außerdem den "
-"Schalter B<-p> einsetzen, um anzugeben, auf welches Binärpaket sich das "
-"Debhelper-Programm auswirkt."
-
-#. type: =head2
-#: debhelper.pod:639
-msgid "udebs"
-msgstr "Udebs"
+"B<dh_installwm> wird einen untergeordneten Handbuchseiten-Link für F<x-"
+"window-manager.1.gz> installieren. falls es die Handbuchseite in F<usr/share/"
+"man/man1> im Bauverzeichnis des Pakets entdeckt."
-# FIXME : an udeb
#. type: textblock
-#: debhelper.pod:641
+#: debhelper-obsolete-compat.pod:70
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>. "
-"Debhelper will try to create udebs that comply with debian-installer policy, "
-"by making the generated package files end in F<.udeb>, not installing any "
-"documentation into a udeb, skipping over F<preinst>, F<postrm>, F<prerm>, "
-"and F<config> scripts, etc."
+"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 ""
-"Debhelper beinhaltet Unterstützung für Udebs. Um ein Udeb mit Debhelper zu "
-"erstellen, fügen Sie dem Absatz des Pakets in F<debian/control> »B<Package-"
-"Type: udeb>« hinzu. Debhelper wird versuchen, Udebs zu erstellen, die der "
-"Debian-Installer-Richtlinie entsprechen, indem die erzeugten Paketdateien "
-"mit F<.udeb> enden, indem keine Dokumentation in ein Udeb installiert wird "
-"und indem F<preinst>-, F<postrm>-, F<prerm>- und F<config>-Skripte etc. "
-"übersprungen werden."
+"Wenn ihm eine Liste mit Dingen zum Ausschließen, so wie B<CVS:.svn:.git>, "
+"mitgegeben wurde, hat B<dh_builddeb> nicht alles gelöscht, was auf "
+"B<DH_ALWAYS_EXCLUDE> passte. Jetzt schon."
-#. type: =head1
-#: debhelper.pod:648
-msgid "ENVIRONMENT"
-msgstr "UMGEBUNGSVARIABLEN"
+#. type: textblock
+#: debhelper-obsolete-compat.pod:76
+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> erlaubt das Überschreiben existierender Handbuchseiten im "
+"Bauverzeichnis des Pakets. In vorhergehenden Kompatibilitätsstufen weigert "
+"es sich kommentarlos."
#. type: =item
-#: debhelper.pod:652
-msgid "B<DH_VERBOSE>"
-msgstr "B<DH_VERBOSE>"
+#: debhelper-obsolete-compat.pod:83
+msgid "v5"
+msgstr "v5"
#. type: textblock
-#: debhelper.pod:654
-#, fuzzy
-#| msgid ""
-#| "Set to B<1> to enable verbose mode. Debhelper will output every command "
-#| "it runs that modifies files on the build system."
+#: debhelper-obsolete-compat.pod:85
+msgid "Changes from v4 are:"
+msgstr "Änderungen gegenüber v4 sind:"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:91
+msgid "Comments are ignored in debhelper config files."
+msgstr "Kommentare in Debhelper-Konfigurationsdateien werden ignoriert."
+
+# http://de.wikipedia.org/wiki/Debugsymbol
+#. type: textblock
+#: debhelper-obsolete-compat.pod:95
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."
+"B<dh_strip --dbg-package> now specifies the name of a package to put "
+"debugging symbols in, not the packages to take the symbols from."
msgstr ""
-"auf B<1> gesetzt, um Modus mit detailreicher Ausgabe zu aktivieren. "
-"Debhelper wird jeden von ihm ausgeführten Befehl ausgeben, der Dateien im "
-"Bausystem verändert."
+"B<dh_strip --dbg-package> gibt nun den Namen des Pakets an, in das "
+"Fehlersuchsymbole getan werden, nicht die Pakete, aus denen die Symbole "
+"genommen werden."
-#. type: =item
-#: debhelper.pod:657
-msgid "B<DH_COMPAT>"
-msgstr "B<DH_COMPAT>"
+#. type: textblock
+#: debhelper-obsolete-compat.pod:100
+msgid "B<dh_installdocs> skips installing empty files."
+msgstr "B<dh_installdocs> überspringt die Installation leerer Dateien."
#. type: textblock
-#: debhelper.pod:659
-msgid ""
-"Temporarily specifies what compatibility level debhelper should run at, "
-"overriding any value in F<debian/compat>."
+#: debhelper-obsolete-compat.pod:104
+msgid "B<dh_install> errors out if wildcards expand to nothing."
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."
+"B<dh_install> gibt Fehlermeldungen aus, wenn Platzhalter zu nichts "
+"expandieren."
#. type: =item
-#: debhelper.pod:662
-msgid "B<DH_NO_ACT>"
-msgstr "B<DH_NO_ACT>"
+#: debhelper-obsolete-compat.pod:108
+msgid "v4"
+msgstr "v4"
#. type: textblock
-#: debhelper.pod:664
-msgid "Set to B<1> to enable no-act mode."
-msgstr "auf B<1> gesetzt, um Modus ohne Aktion zu aktivieren."
+#: debhelper-obsolete-compat.pod:110
+msgid "Changes from v3 are:"
+msgstr "Änderungen gegenüber v3 sind:"
-#. type: =item
-#: debhelper.pod:666
-msgid "B<DH_OPTIONS>"
-msgstr "B<DH_OPTIONS>"
+#. type: textblock
+#: debhelper-obsolete-compat.pod:116
+msgid ""
+"B<dh_makeshlibs -V> will not include the Debian part of the version number "
+"in the generated dependency line in the shlibs file."
+msgstr ""
+"B<dh_makeshlibs -V> wird nicht den Debian-Teil der Versionsnummer in der "
+"erzeugten Abhängigkeitslinie in der Shlibs-Datei enthalten."
#. type: textblock
-#: debhelper.pod:668
+#: debhelper-obsolete-compat.pod:121
msgid ""
-"Anything in this variable will be prepended to the command line arguments of "
-"all debhelper commands."
+"You are encouraged to put the new B<${misc:Depends}> into F<debian/control> "
+"to supplement the B<${shlibs:Depends}> field."
msgstr ""
-"Alles in dieser Variable wird den Befehlszeilenargumenten aller Debhelper-"
-"Befehle vorangestellt."
+"Sie werden ermuntert, das neue B<${misc:Depends}> in F<debian/control> "
+"abzulegen, um das Feld B<${shlibs:Depends}> zu ergänzen."
#. type: textblock
-#: debhelper.pod:671
+#: debhelper-obsolete-compat.pod:126
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."
+"B<dh_fixperms> will make all files in F<bin/> directories and in F<etc/init."
+"d> executable."
msgstr ""
-"Wenn L<dh(1)> benutzt wird, können ihm Optionen übergeben werden, die es an "
-"jeden Debhelper-Befehl weitergibt, was im Allgemeinen besser ist, als "
-"DH_OPTIONS zu verwenden."
+"B<dh_fixperms> wird alle Dateien in F<bin/>-Verzeichnissen und in F<etc/init."
+"d> ausführbar machen."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:131
+msgid "B<dh_link> will correct existing links to conform with policy."
+msgstr ""
+"B<dh_link> wird bestehende Links korrigieren, damit sie konform mit der "
+"Richtlinie sind."
#. type: =item
-#: debhelper.pod:674
-msgid "B<DH_ALWAYS_EXCLUDE>"
-msgstr "B<DH_ALWAYS_EXCLUDE>"
+#: debhelper-obsolete-compat.pod:137
+msgid "v3"
+msgstr "v3"
#. type: textblock
-#: debhelper.pod:676
+#: debhelper-obsolete-compat.pod:139
+msgid "This mode works like v2, with the following additions:"
+msgstr "Dieser Modus funktioniert wie v2 mit den folgenden Zusätzen:"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:145
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 "
-"B<rm -rf> anything that matches the value in your package build tree."
+"Debhelper config files support globbing via B<*> and B<?>, when appropriate. "
+"To turn this off and use those characters raw, just prefix with a backslash."
msgstr ""
-"Falls gesetzt, fügt dies den Wert, auf den die Variable gesetzt ist, den B<-"
-"X>-Optionen aller Befehle hinzu, die die Option B<-X> unterstützen. Außerdem "
-"wird B<dh_builddeb> für alles, das dem Wert in Ihrem Paketbaubaum "
-"entspricht, B<rm -rf> ausführen."
+"Debhelper-Konfigurationsdateien unterstützen Platzhalter mittels B<*> und B<?"
+">, wenn angemessen. Um dies auszuschalten und diese Zeichen im Rohzustand zu "
+"verwenden, stellen Sie ihnen einen Rückwärtsschragstrich voran."
#. type: textblock
-#: debhelper.pod:680
+#: debhelper-obsolete-compat.pod:150
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 "
-"sneaking into the package you build. Or, if a package has a source tarball "
-"that (unwisely) includes CVS directories, you might want to export "
-"B<DH_ALWAYS_EXCLUDE=CVS> in F<debian/rules>, to make it take effect wherever "
-"your package is built."
+"B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call "
+"B<ldconfig>."
msgstr ""
-"Dies kann nützlich sein, falls Sie aus einem CVS-Quellverzeichnisbaum bauen. "
-"In diesem Fall verhindert das Setzen von B<DH_ALWAYS_EXCLUDE=CVS>, dass "
-"irgendwelche CVS-Verzeichnisse sich in das Paket einschleichen, das Sie "
-"bauen. Oder, falls ein Paket einen Quell-Tarball hat, der (unklugerweise) "
-"CVS-Verzeichnisse enthält, möchten Sie möglicherweise "
-"B<DH_ALWAYS_EXCLUDE=CVS> in F<debian/rules> exportieren, damit es wirksam "
-"ist, wo auch immer Ihr Paket gebaut wird."
+"B<dh_makeshlibs> lässt F<postinst>- und F<postrm>-Skripte B<ldconfig> "
+"aufrufen."
#. type: textblock
-#: debhelper.pod:687
+#: debhelper-obsolete-compat.pod:154
msgid ""
-"Multiple things to exclude can be separated with colons, as in "
-"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
+"Every file in F<etc/> is automatically flagged as a conffile by "
+"B<dh_installdeb>."
msgstr ""
-"Mehrere Dinge, die ausgeschlossen werden sollen, können mit Doppelpunkten "
-"getrennt werden, wie in B<DH_ALWAYS_EXCLUDE=CVS:.svn>."
-
-#. type: =head1
-#: debhelper.pod:692 dh:972 dh_auto_build:47 dh_auto_clean:50
-#: dh_auto_configure:52 dh_auto_install:92 dh_auto_test:63 dh_bugfiles:124
-#: dh_builddeb:124 dh_clean:147 dh_compress:210 dh_desktop:31 dh_fixperms:131
-#: dh_gconf:101 dh_gencontrol:78 dh_icons:71 dh_install:260
-#: dh_installcatalogs:122 dh_installchangelogs:241 dh_installcron:79
-#: dh_installdeb:142 dh_installdebconf:128 dh_installdirs:88
-#: dh_installdocs:337 dh_installemacsen:141 dh_installexamples:108
-#: dh_installifupdown:71 dh_installinfo:77 dh_installinit:324
-#: dh_installlogcheck:80 dh_installlogrotate:52 dh_installman:263
-#: dh_installmanpages:197 dh_installmenu:89 dh_installmime:63
-#: dh_installmodules:115 dh_installpam:61 dh_installppp:67 dh_installudev:117
-#: dh_installwm:110 dh_installxfonts:89 dh_link:228 dh_lintian:59
-#: dh_listpackages:30 dh_makeshlibs:264 dh_md5sums:90 dh_movefiles:170
-#: dh_perl:152 dh_prep:60 dh_scrollkeeper:28 dh_shlibdeps:152 dh_strip:242
-#: dh_suidregister:117 dh_testdir:53 dh_testroot:27 dh_undocumented:28
-#: dh_usrlocal:116
-msgid "SEE ALSO"
-msgstr "SIEHE AUCH"
+"Jede Datei in F<etc/> wird automatisch durch B<dh_installdeb> als Conffile "
+"markiert."
#. type: =item
-#: debhelper.pod:696
-msgid "F</usr/share/doc/debhelper/examples/>"
-msgstr "F</usr/share/doc/debhelper/examples/>"
+#: debhelper-obsolete-compat.pod:160
+msgid "v2"
+msgstr "v2"
#. type: textblock
-#: debhelper.pod:698
-msgid "A set of example F<debian/rules> files that use debhelper."
+#: debhelper-obsolete-compat.pod:162
+msgid ""
+"In this mode, debhelper will consistently use debian/I<package> as the "
+"package tree directory for every package that is built."
msgstr ""
-"eine Zusammenstellung von F<debian/rules>-Beispieldateien, die Debhelper "
-"benutzen"
+"In diesem Modus wird Debhelper durchweg debian/I<Paket> als "
+"Paketverzeichnisbaum für jedes Paket nehmen, das gebaut wird."
#. type: =item
-#: debhelper.pod:700
-#, fuzzy
-#| msgid "L<http://kitenet.net/~joey/code/debhelper/>"
-msgid "L<http://joeyh.name/code/debhelper/>"
-msgstr "L<http://kitenet.net/~joey/code/debhelper/>"
-
-#. type: textblock
-#: debhelper.pod:702
-msgid "Debhelper web site."
-msgstr "Debhelper-Website"
-
-#. type: =head1
-#: debhelper.pod:706 dh:978 dh_auto_build:53 dh_auto_clean:56
-#: dh_auto_configure:58 dh_auto_install:98 dh_auto_test:69 dh_bugfiles:132
-#: dh_builddeb:130 dh_clean:153 dh_compress:216 dh_desktop:37 dh_fixperms:137
-#: dh_gconf:107 dh_gencontrol:84 dh_icons:77 dh_install:266
-#: dh_installcatalogs:128 dh_installchangelogs:247 dh_installcron:85
-#: dh_installdeb:148 dh_installdebconf:134 dh_installdirs:94
-#: dh_installdocs:343 dh_installemacsen:148 dh_installexamples:114
-#: dh_installifupdown:77 dh_installinfo:83 dh_installlogcheck:86
-#: dh_installlogrotate:58 dh_installman:269 dh_installmanpages:203
-#: dh_installmenu:97 dh_installmime:69 dh_installmodules:121 dh_installpam:67
-#: dh_installppp:73 dh_installudev:123 dh_installwm:116 dh_installxfonts:95
-#: dh_link:234 dh_lintian:67 dh_listpackages:36 dh_makeshlibs:270
-#: dh_md5sums:96 dh_movefiles:176 dh_perl:158 dh_prep:66 dh_scrollkeeper:34
-#: dh_shlibdeps:158 dh_strip:248 dh_suidregister:123 dh_testdir:59
-#: dh_testroot:33 dh_undocumented:34 dh_usrlocal:122
-msgid "AUTHOR"
-msgstr "AUTOR"
+#: debhelper-obsolete-compat.pod:167
+msgid "v1"
+msgstr "v1"
#. type: textblock
-#: debhelper.pod:708 dh:980 dh_auto_build:55 dh_auto_clean:58
-#: dh_auto_configure:60 dh_auto_install:100 dh_auto_test:71 dh_builddeb:132
-#: dh_clean:155 dh_compress:218 dh_fixperms:139 dh_gencontrol:86
-#: dh_install:268 dh_installchangelogs:249 dh_installcron:87 dh_installdeb:150
-#: dh_installdebconf:136 dh_installdirs:96 dh_installdocs:345
-#: dh_installemacsen:150 dh_installexamples:116 dh_installifupdown:79
-#: dh_installinfo:85 dh_installinit:332 dh_installlogrotate:60
-#: dh_installman:271 dh_installmanpages:205 dh_installmenu:99
-#: dh_installmime:71 dh_installmodules:123 dh_installpam:69 dh_installppp:75
-#: dh_installudev:125 dh_installwm:118 dh_installxfonts:97 dh_link:236
-#: dh_listpackages:38 dh_makeshlibs:272 dh_md5sums:98 dh_movefiles:178
-#: dh_prep:68 dh_shlibdeps:160 dh_strip:250 dh_suidregister:125 dh_testdir:61
-#: dh_testroot:35 dh_undocumented:36
-msgid "Joey Hess <joeyh@debian.org>"
-msgstr "Joey Hess <joeyh@debian.org>"
+#: debhelper-obsolete-compat.pod:169
+msgid ""
+"This is the original debhelper compatibility level, and so it is the default "
+"one. In this mode, debhelper will use F<debian/tmp> as the package tree "
+"directory for the first binary package listed in the control file, while "
+"using debian/I<package> for all other packages listed in the F<control> file."
+msgstr ""
+"Dies ist die Original-Debhelper-Kompatibilitätsstufe und daher ist sie die "
+"Vorgabe. In diesem Modus wird Debhelper F<debian/tmp> als "
+"Paketverzeichnisbaum des ersten in der Datei »control« aufgeführten Pakets "
+"nehmen, während für alle anderen in der Datei F<control> aufgeführten Pakete "
+"debian/I<Paket> genommen wird."
#. type: textblock
#: dh:5
@@ -1732,7 +4391,7 @@ msgid "dh - debhelper command sequencer"
msgstr "dh - Debhelper-Befehls-Sequenzer"
#. type: textblock
-#: dh:14
+#: dh:24
msgid ""
"B<dh> I<sequence> [B<--with> I<addon>[B<,>I<addon> ...]] [B<--list>] "
"[S<I<debhelper options>>]"
@@ -1741,7 +4400,7 @@ msgstr ""
"[S<I<Debhelper-Optionen>>]"
#. type: textblock
-#: dh:18
+#: dh:28
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-"
@@ -1754,22 +4413,71 @@ msgstr ""
"arch>, B<install>, B<binary-arch>, B<binary-indep> und B<binary>."
#. type: =head1
-#: dh:23
-msgid "OVERRIDE TARGETS"
-msgstr "ZIELE AUßER KRAFT SETZEN"
+#: dh:33
+msgid "OVERRIDE AND HOOK TARGETS"
+msgstr "OVERRIDE- UND HOOK-ZIELE"
#. type: textblock
-#: dh:25
+#: dh:35
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."
+"any step in a sequence, by defining an override target. It is also possible "
+"to inject a command before or after any step without affecting the step "
+"itself."
msgstr ""
-"Eine F<debian/rules>-Datei, die B<dh> benutzt, kann einen Befehl aus jeder "
-"Sequenz, die ausgeführt wird, außer Kraft setzen, indem ein außer Kraft "
-"setzendes Ziel definiert wird."
+"Eine F<debian/rules>-Datei, die B<dh> benutzt, kann einen Befehl in jedem "
+"Schritt einer Sequenz außer Kraft setzen, indem sie ein Override-Ziel "
+"(Override target) definiert. Es ist auch möglich, Befehle vor oder nach "
+"jedem Schritt einzuspeisen, ohne den Schritt selbst zu beeinflussen."
+
+#. type: =head2
+#: dh:40
+msgid "Injecting commands before or after a step"
+msgstr "Befehle vor oder nach einem Schritt einspeisen"
#. type: textblock
-#: dh:28
+#: dh:42
+msgid ""
+"I<Note>: This feature requires debhelper 12.8 or later plus the package must "
+"use compatibility mode 10 or later."
+msgstr ""
+"I<Hinweis>: Diese Funktionalität erfordert Debhelper 12.8 oder neuer, zudem "
+"muss das Paket Kompatibilitätsmodus 10 oder neuer nutzen."
+
+#. type: textblock
+#: dh:45
+msgid ""
+"To inject commands before I<dh_command>, add a target named "
+"B<execute_before_>I<dh_command> to the rules files. Similarly, if you want "
+"to inject commands after I<dh_command>, add the target "
+"B<execute_after_>I<dh_command>. Both targets can be used for the same "
+"I<dh_command> and also even if the command is overridden (as described in L</"
+"Overriding a command> below)."
+msgstr ""
+"Um Befehle vor I<dh_Befehl> einzuspeisen, fügen Sie den Rules-Dateien ein "
+"Ziel namens B<execute_before_>I<dh_Befehl> hinzu. Genauso fügen Sie, wenn "
+"Sie nach I<dh_Befehl> Befehle einspeisen wollen, "
+"B<execute_after_>I<dh_Befehl> hinzu. Beide Ziele können für denselben "
+"I<dh_Befehl> benutzt werden und das sogar dann, wenn der Befehl außer Kraft "
+"gesetzt wurde (wie nachfolgend in L</Einen Befehl außer Kraft setzen> "
+"beschrieben)."
+
+#. type: textblock
+#: dh:52
+msgid ""
+"When these targets are defined, B<dh> will call the targets respectively "
+"before or after it would invoke I<dh_command> (or its override target)."
+msgstr ""
+"Wenn diese Ziele definiert sind, wird B<dh> die Ziele vor beziehungsweise "
+"nach dem Aufruf von I<dh_Befehl> (oder dessen Override-Ziel) aufrufen."
+
+#. type: =head2
+#: dh:55
+msgid "Overriding a command"
+msgstr "Einen Befehl außer Kraft setzen"
+
+#. type: textblock
+#: dh:57
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 "
@@ -1778,50 +4486,518 @@ msgid ""
"below."
msgstr ""
"Um I<dh_Befehl> außer Kraft zu setzen, fügen Sie der Datei »rules« ein Ziel "
-"mit Namen B<override_>I<dh_Befehl> hinzu. Wenn es normalerweise I<dh_Befehl> "
-"ausführen würde, wird B<dh> stattdessen dieses Ziel aufrufen. Das außer "
-"Kraft setzende Ziel kann dann den Befehl mit zusätzlichen Optionen oder "
-"stattdessen ganz andere Befehle ausführen. Lesen Sie die folgenden Beispiele."
+"mit Namen B<override_>I<dh_Befehl> hinzu. Sobald es normalerweise "
+"I<dh_Befehl> ausführen würde, wird B<dh> stattdessen dieses Ziel aufrufen. "
+"Das Override-Ziel kann dann den Befehl mit zusätzlichen Optionen oder "
+"stattdessen ganz andere Befehle ausführen. Siehe die folgenden Beispiele."
+
+#. type: =head2
+#: dh:63
+msgid "Architecture dependent/independent override and hook targets"
+msgstr "Architekturabhängige/-unabhängige Override- und Hook-Ziele"
+
+#. type: textblock
+#: dh:65
+msgid ""
+"The override and hook targets can also be defined to run only when building "
+"architecture dependent or architecture independent packages. Use targets "
+"with names like B<override_>I<dh_command>B<-arch> and "
+"B<execute_after_>I<dh_command>B<-indep>."
+msgstr ""
+"Die Override- und Hook-Ziele können so definiert werden, dass sie nur "
+"ausgeführt werden, wenn architekturabhängige oder -unabhängige Pakete gebaut "
+"werden. Benutzen Sie dazu Ziele mit Namen wie B<override_>I<dh_Befehl>B<-"
+"arch> und B<override_>I<dh_Befehl>B<-indep>."
#. type: textblock
-#: dh:34
+#: dh:70
msgid ""
-"Override targets can also be defined to run only when building architecture "
-"dependent or architecture independent packages. Use targets with names like "
-"B<override_>I<dh_command>B<-arch> and B<override_>I<dh_command>B<-indep>. "
-"(Note that to use this feature, you should Build-Depend on debhelper 8.9.7 "
-"or above.)"
+"This feature is available since debhelper 8.9.7 (for override targets) and "
+"12.8 (for hook targets)."
msgstr ""
-"Außer Kraft setzende Ziele können außerdem definiert werden, um nur "
-"ausgeführt zu werden, wenn architekturab- oder -unabhängige Pakete gebaut "
-"werden. Benutzen Sie Ziele mit Namen wie B<override_>I<dh_Befehl>B<-arch> "
-"und B<override_>I<dh_Befehl>B<-indep>. Beachten Sie, dass Sie, um diese "
-"Funktion verwenden zu können, Build-Depend auf Debhelper 8.9.7 oder höher "
-"haben sollten."
+"Diese Funktionalität ist seit Debhelper 8.9.7 (für Override-Ziele) und 12.8 "
+"(für Hook-Ziele) verfügbar."
+
+#. type: =head2
+#: dh:73
+msgid "Completely empty targets"
+msgstr "Komplett leere Ziele"
+
+#. type: textblock
+#: dh:75
+msgid ""
+"As a special optimization, B<dh> will skip a target if it is completely "
+"empty and does not depend on any other target. This is mostly useful for "
+"override targets, where the command will simply be skipped without the "
+"overhead of invoking a dummy target."
+msgstr ""
+"Als besondere Optimierung wird B<dh> ein Ziel überspringen, falls es "
+"komplett leer ist und von keinem anderen Ziel abhängt. Dies eignet sich "
+"hauptsächlich für Override-Ziele, bei denen der Befehl einfach nur "
+"übersprungen und so der Mehraufwand beim Aufruf eines Scheinziels eingespart "
+"wird."
+
+#. type: textblock
+#: dh:80
+msgid "Note that the target has to be completely empty for this to work:"
+msgstr ""
+"Beachten Sie, das das Ziel komplett leer sein muss, damit dies funktioniert."
+
+#. type: verbatim
+#: dh:82
+#, no-wrap
+msgid ""
+" # Skip dh_bar - the good and optimized way\n"
+" # Some rationale for skipping dh_bar goes here\n"
+" override_dh_bar:\n"
+"\n"
+msgstr ""
+" # überspringt dh_bar auf die gute und optimierte Art\n"
+" # hier wird eine Begründung zum Überspringen von dh_bar eingefügt\n"
+" override_dh_bar:\n"
+"\n"
+
+#. type: verbatim
+#: dh:87
+#, no-wrap
+msgid ""
+" # Skip dh_foo - the slow way\n"
+" override_dh_foo:\n"
+" # Some rationale for skipping dh_foo goes here\n"
+" # (these comments causes a dummy target to be run)\n"
+"\n"
+msgstr ""
+" # überspringt dh_foo auf die langsame Art\n"
+" override_dh_foo:\n"
+" # hier wird eine Begründung des Überspringens von dh_foo eingefügt\n"
+" # (diese Kommentare verursachen die Ausführung eines Scheinziels)\n"
+"\n"
+
+#. type: =head2
+#: dh:92
+msgid "Verifying targets are picked up by dh"
+msgstr "Verifizierungsziele werden von dh aufgenommen"
+
+#. type: textblock
+#: dh:94
+msgid ""
+"As of debhelper 13.10, you can use L<dh_assistant(1)> to see which override "
+"and hook targets will be seen by B<dh>. Here is an example run of "
+"L<dh_assistant(1)> along with its output:"
+msgstr ""
+"Ab debhelper 13.10 können Sie mit Hilfe von L<dh_assistant(1)> nachsehen, "
+"welche Override- und Hook-Targets B<dh> sehen wird. Hier ist ein Beispiel "
+"einer Ausführung von L<dh_assistant(1)> und was es ausgibt:"
+
+#. type: verbatim
+#: dh:98
+#, no-wrap
+msgid ""
+" $ dh_assistant detect-hook-targets\n"
+" {\n"
+" \"commands-not-in-path\": [\n"
+" \"dh_foo\"\n"
+" ],\n"
+" \"hook-targets\": [\n"
+" {\n"
+" \"command\": \"dh_strip_nondeterminism\",\n"
+" \"is-empty\": true,\n"
+" \"package-section-param\": null,\n"
+" \"target-name\": \"override_dh_strip_nondeterminism\"\n"
+" },\n"
+" {\n"
+" \"command\": \"dh_foo\",\n"
+" \"is-empty\": false,\n"
+" \"package-section-param\": \"-a\",\n"
+" \"target-name\": \"override_dh_foo-arch\"\n"
+" }\n"
+" ]\n"
+" }\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:119
+msgid ""
+"The B<commands-not-in-path> is useful for spotting mistakes in the hook "
+"target names. A non-empty value implies one of more hook targets are "
+"related to a command that is either not installed or no command with that "
+"name exists at all. It is generally worth double checking these."
+msgstr ""
+"Das B<commands-not-in-path> hilft beim Aufspüren von Fehlern in den Namen "
+"der Hook-Ziele. Ein nicht-leerer Wert zeigt an, dass eines oder mehrere Hook-"
+"Ziele mit einem Befehl in Zusammenhang stehen, der entweder nicht "
+"installiert ist oder gar nicht existiert. Es ist generell ratsam, dies zu "
+"untersuchen."
+
+#. type: textblock
+#: dh:124
+msgid ""
+"Additionally, the B<is-empty> attribute for each hook target can be used for "
+"seeing whether a hook target triggers the L</Completely empty targets> "
+"optimization."
+msgstr ""
+"Darüber hinaus kann das B<is-empty>-Attribut eines jeden Ziels dafür "
+"verwendet werden, um zu kontrollieren, ob eins der Hook-Ziele die L</"
+"Completely empty targets>-Optimierung für komplett leere Ziele auslöst."
+
+#. type: textblock
+#: dh:127
+msgid ""
+"If you are interested in the other attributes, please read the "
+"L<dh_assistant(1)> for the details."
+msgstr ""
+"Wenn Sie an den anderen Attributen interessiert sind, finden Sie deren "
+"Details in L<dh_assistant(1)>."
+
+#. type: =head3
+#: dh:130
+msgid ""
+"Verifying targets are picked up by dh (when debhelper is older than 13.10)"
+msgstr ""
+"Verifizierungsziele werden von dh aufgenommen (wenn Debhelper älter als "
+"13.10 ist)."
+
+#. type: textblock
+#: dh:134
+msgid ""
+"On older versions of debhelper, you have to use B<dh> with B<--no-act>. You "
+"can use the following command as an example:"
+msgstr ""
+"Bei älteren Versionen von Debhelper müssen Sie B<dh> mit B<--no-act> "
+"benutzen. Sie können sich an folgendem Beispiel orientieren:"
+
+#. type: verbatim
+#: dh:137
+#, no-wrap
+msgid ""
+" $ dh binary --no-act | grep dh_install | head -n5\n"
+" dh_installdirs\n"
+" dh_install\n"
+" debian/rules execute_after_dh_install\n"
+" dh_installdocs\n"
+" dh_installchangelogs\n"
+"\n"
+msgstr ""
+" $ dh binary --no-act | grep dh_install | head -n5\n"
+" dh_installdirs\n"
+" dh_install\n"
+" debian/rules execute_after_dh_install\n"
+" dh_installdocs\n"
+" dh_installchangelogs\n"
+"\n"
+
+#. type: textblock
+#: dh:144
+msgid ""
+"The B<debian/rules execute_after_dh_install> in the output, which signals "
+"that B<dh> registered a B<execute_after_dh_install> target and would run it "
+"directly after L<dh_install(1)>."
+msgstr ""
+"Das B<debian/rules execute_after_dh_install> in der Ausgabe zeigt an, dass "
+"B<dh> ein B<execute_after_dh_install>-Ziel registriert hat und es direkt "
+"nach L<dh_install(1)> ausführen würde."
+
+#. type: textblock
+#: dh:148
+msgid ""
+"Note that L</Completely empty targets> will be omitted in the listing "
+"above. This makes it a bit harder to spot as you are looking for the "
+"omission of a command name. But otherwise, the principle remains the same."
+msgstr ""
+"Beachten Sie, dass L</Komplett leere Ziele> im oberen Listing weggelassen "
+"wurde. Damit wird es etwas schwieriger zu finden, weil Sie nach der "
+"Weglassung eines Befehlsnamens suchen. Aber andererseits bleibt das Prinzip "
+"dasselbe."
+
+#. type: =head2
+#: dh:152
+msgid "Caveats with hook targets and makefile conditionals"
+msgstr "Vorbehalte bei Hook-Zielen und Makefile-Bedingungen (conditionals)"
+
+#. type: textblock
+#: dh:154
+msgid ""
+"If you choose to wrap a hook target in makefile conditionals, please be "
+"aware that B<dh> computes all the hook targets a head of time and caches the "
+"result for that run. Furthermore, the conditionals will be invoked again "
+"when B<dh> calls the hook target later and will assume the answer did not "
+"change."
+msgstr ""
+"Wenn Sie sich entscheiden, ein Hook-Target in Makefile-Bedingungen "
+"einzubetten, seien Sie sich bitte bewusst, dass B<dh> alle Hook-Targets im "
+"Voraus berechnet und die Rechenergebnisse zwischenspeichert. Darüber hinaus "
+"werden die Bedingungen später wieder ausgelöst, wenn B<dh> das Hook-Target "
+"aufruft, und es wird dabei davon ausgehen, dass sich die Ergebnisse nicht "
+"geändert haben."
+
+#. type: textblock
+#: dh:160
+msgid ""
+"The parsing and caching I<often> happens before B<dh> knows whether it will "
+"build arch:any (-a) or/and arch:all (-i) packages, which can produce "
+"confusing results - especially when L<dh_listpackages(1)> is part of the "
+"conditional."
+msgstr ""
+"Die Auswertung und das Zwischenspeichern passieren I<oft> schon, bevor B<dh> "
+"weiß, ob es Pakete für arch:any (-a) und/oder arch:all (-i) bauen wird, und "
+"kann deswegen verwirrende Resultate erzielen – vor allem, wenn "
+"L<dh_listpackages(1)> Teil der Bedingung ist."
+
+#. type: textblock
+#: dh:165
+msgid ""
+"Most of the problems can be avoided by making the hook target unconditional "
+"and then have the \"body\" be partially or completely conditional. As an "
+"example:"
+msgstr ""
+"Die meisten Probleme lassen sich vermeiden, indem das Hook-Ziel von "
+"Bedingungen befreit wird und danach der »body«-Teil teilweise oder komplett "
+"konditional gemacht wird. Beispielsweise:"
+
+#. type: verbatim
+#: dh:169
+#, no-wrap
+msgid ""
+" # SIMPLE: It is well-defined what happens. The hook target\n"
+" # is always considered. The \"maybe run this\" bit is\n"
+" # conditional but dh_foo is definitely skipped.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, \"maybe run this\"\n"
+" # is skipped.\n"
+" override_dh_foo:\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+" # EINFACH: Es ist durchdefiniert, was passieren wird. Das Hook-Ziel \n"
+" # wird immer berücksichtigt. Der »vielleicht ausführen«-Teil hat eine \n"
+" # Bedingung, aber dh_foo wird mit Sicherheit übersprungen.\n"
+" #\n"
+" # Hinweis: Der Bedingungsteil wird »zweimal« untersucht, bevor er \n"
+" # beeinflusst, was passiert. Einmal, wenn dh nachsieht, welche \n"
+" # Hook-Ziele vorkommen und das zweite Mal, wenn das Hook-Ziel override_dh_foo \n"
+" # ausgeführt wird. Falls *eines* davon FALSE zurückliefert, wird »vielleicht \n"
+" # ausführen« übersprungen.\n"
+" override_dh_foo:\n"
+" ifneq (...)\n"
+" vielleicht ausführen\n"
+" endif\n"
+"\n"
+
+#. type: verbatim
+#: dh:183
+#, no-wrap
+msgid ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The \"maybe run this\" bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar:\n"
+" : # Dummy command to force the target to always be run\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+" # EINFACH: Dies hier ist genaus durchdefiniert. Das Hook-Ziel wird immer \n"
+" # ausgeführt und dh_bar wird übersprungen. Der »vielleicht ausführen«-Teil ist \n"
+" # bedingt, so wie man es erwarten würde.\n"
+" #\n"
+" # Hinweis: Die Bedingung wird trotzdem mehrmals überprüft (jedes \n"
+" # Mal in einem anderen Prozess). Nur die Untersuchung während des \n"
+" # Laufs des Hook-Ziels beeinflusst, was passiert.\n"
+" override_dh_bar:\n"
+" : # Scheinbefehl, der erzwingt, dass das Ziel immer ausgeführt wird\n"
+" ifneq (...)\n"
+" vielleicht ausführen\n"
+" endif\n"
+"\n"
+
+#. type: verbatim
+#: dh:198
+#, no-wrap
+msgid ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" # Here, either dh_baz is run normally OR \"maybe run this\" is run\n"
+" # instead.\n"
+" #\n"
+" # And it gets even more complicated to reason about if dh needs to\n"
+" # recurse into debian/rules because you have an \"explicit\"\n"
+" # standard target (e.g. a \"build-arch:\" target separate from \"%:\").\n"
+" ifneq (...)\n"
+" override_dh_baz:\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+" # KOMPLIZIERT: Dieser Fall ist ggf. nicht trivial und hat seine Haken.\n"
+" # Benutzen Sie es auf eigene Verantwortung, wenn dh_listpackages in der Bedingung steckt.\n"
+" #\n"
+" # Hier wird entweder dh_baz normal ODER stattdessen »vielleicht ausführen« ausgeführt.\n"
+" #\n"
+" # Es wird noch komplizierter, wenn die Frage aufkommt, ob dh in \n"
+" # debian/rules rekursiv arbeiten muss, weil Sie ein »explicit« Standardziel \n"
+" # (z. B. ein »build-arch:«-Ziel, das von »%:« getrennt ist) haben.\n"
+" ifneq (...)\n"
+" override_dh_baz:\n"
+" vielleicht ausführen\n"
+" endif\n"
+"\n"
+
+#. type: textblock
+#: dh:212
+msgid ""
+"These recipes are also relevant for conditional dependency targets, which "
+"are often seen in a variant of the following example:"
+msgstr ""
+"Diese Rezepte funktionieren auch bei bedingten Abhängigkeitszielen, die oft "
+"in einer Abwandlung des folgenden Beispiels anzutreffen sind:"
+
+#. type: verbatim
+#: dh:215
+#, no-wrap
+msgid ""
+" COND_TASKS =\n"
+" ifneq (...)\n"
+" COND_TASKS += maybe-run-this\n"
+" endif\n"
+" ...\n"
+"\n"
+msgstr ""
+" COND_TASKS =\n"
+" ifneq (...)\n"
+" COND_TASKS += vielleicht-ausführen\n"
+" endif\n"
+" ...\n"
+"\n"
+
+#. type: verbatim
+#: dh:221
+#, no-wrap
+msgid ""
+" maybe-run-this:\n"
+" ...\n"
+"\n"
+msgstr ""
+" vielleicht-ausführen:\n"
+" ...\n"
+"\n"
+
+#. type: verbatim
+#: dh:224
+#, no-wrap
+msgid ""
+" # SIMPLE: It is well-defined what happens. Either the\n"
+" # $(COND_TASKS) are skipped or run.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, $(COND_TASKS)\n"
+" # is skipped.\n"
+" override_dh_foo: $(COND_TASKS)\n"
+"\n"
+msgstr ""
+" # EINFACH: Es ist durchdefiniert, was passiert. Die \n"
+" # $(COND_TASKS) werden entweder übersprungen oder nicht.\n"
+" #\n"
+" # Hinweis: Die Bedingung wird »zweimal« überprüft und beeinflusst immer, \n"
+" # was passiert. Einmal, wenn dh nachsieht, welche Hook-Ziele \n"
+" # vorhanden sind, und einmal, wenn das Hook-Ziel override_dh_foo \n"
+" # ausgeführt wird. Wenn bei *einem* der beiden Male ein FALSE # zurückgeliefert wird, wird $(COND_TASKS) übersprungen\n"
+" override_dh_foo: $(COND_TASKS)\n"
+"\n"
+
+#. type: verbatim
+#: dh:235
+#, no-wrap
+msgid ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The $(COND_TASKS) bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar: $(COND_TASKS)\n"
+" : # Dummy command to force the target to always be run\n"
+"\n"
+msgstr ""
+" # EINFACH: Dieses hier ist genauso durchdefiniert. Das Hook-Ziel \n"
+" # wird ausgeführt und dh_bar wird übersprungen. Der $(COND_TASKS)-Teil \n"
+" # ist so bedingt wie man erwarten würde.\n"
+" #\n"
+" # Hinweis: Die Bedingung wird trotzdem mehrmals überprüft (jedes # Mal in einem anderen Prozess. Nur die Überprüfung während des Laufs des \n"
+" # Hook-Ziels beeinflusst, was passiert.\n"
+" override_dh_bar: $(COND_TASKS)\n"
+" : # Scheinbefehl, der das Ziel zwingt, immer ausgeführt zu werden\n"
+"\n"
+
+#. type: verbatim
+#: dh:246
+#, no-wrap
+msgid ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" ifneq (...)\n"
+" override_dh_baz: $(COND_TASKS)\n"
+" endif\n"
+"\n"
+msgstr ""
+" # KOMPLIZIERT: Dieser Fall kann kompliziert sein und seine Haken haben.\n"
+" # Verwenden Sie es auf Ihre eigene Verantwortung, wenn dh_listpackages in der Bedingung vorkommt.\n"
+" #\n"
+" ifneq (...)\n"
+" override_dh_baz: $(COND_TASKS)\n"
+" endif\n"
+"\n"
+
+#. type: textblock
+#: dh:254
+msgid ""
+"When in doubt, pick the relevant B<SIMPLE> case in the examples above that "
+"match your need."
+msgstr ""
+"Im Zweifelsfall suchen Sie sich eins der B<EINFACHEN> Fallbeispiele aus, "
+"welches zu Ihrem Bedarf passt."
#. type: =head1
-#: dh:41 dh_auto_build:28 dh_auto_clean:30 dh_auto_configure:31
-#: dh_auto_install:43 dh_auto_test:31 dh_bugfiles:50 dh_builddeb:24
-#: dh_clean:41 dh_compress:48 dh_fixperms:32 dh_gconf:39 dh_gencontrol:26
-#: dh_icons:30 dh_install:59 dh_installcatalogs:49 dh_installchangelogs:59
-#: dh_installcron:40 dh_installdebconf:61 dh_installdirs:31 dh_installdocs:71
-#: dh_installemacsen:53 dh_installexamples:32 dh_installifupdown:39
-#: dh_installinfo:31 dh_installinit:59 dh_installlogcheck:42
-#: dh_installlogrotate:22 dh_installman:61 dh_installmanpages:40
-#: dh_installmenu:41 dh_installmodules:38 dh_installpam:31 dh_installppp:35
-#: dh_installudev:35 dh_installwm:34 dh_link:53 dh_makeshlibs:43 dh_md5sums:28
-#: dh_movefiles:38 dh_perl:31 dh_prep:26 dh_shlibdeps:26 dh_strip:35
-#: dh_testdir:23 dh_usrlocal:39
+#: dh:257 dh_auto_build:32 dh_auto_clean:33 dh_auto_configure:35
+#: dh_auto_install:52 dh_auto_test:34 dh_bugfiles:53 dh_builddeb:34 dh_clean:49
+#: dh_compress:52 dh_dwz:26 dh_fixperms:40 dh_gencontrol:38 dh_icons:33
+#: dh_install:69 dh_installcatalogs:56 dh_installchangelogs:77
+#: dh_installcron:45 dh_installdeb:107 dh_installdebconf:64 dh_installdirs:45
+#: dh_installdocs:100 dh_installemacsen:56 dh_installexamples:48
+#: dh_installifupdown:42 dh_installinfo:41 dh_installinit:77
+#: dh_installinitramfs:43 dh_installlogcheck:45 dh_installlogrotate:25
+#: dh_installman:86 dh_installmanpages:43 dh_installmenu:44
+#: dh_installmodules:41 dh_installpam:38 dh_installppp:38 dh_installudev:34
+#: dh_installwm:41 dh_link:69 dh_makeshlibs:67 dh_md5sums:31 dh_movefiles:41
+#: dh_perl:35 dh_prep:29 dh_shlibdeps:30 dh_strip:38 dh_testdir:26
+#: dh_usrlocal:50 dh_systemd_enable:82 dh_systemd_start:33
msgid "OPTIONS"
msgstr "OPTIONEN"
#. type: =item
-#: dh:45
+#: dh:261
msgid "B<--with> I<addon>[B<,>I<addon> ...]"
-msgstr "B<--with> I<Add-on>[B<,>I<Add-on> …]"
+msgstr "B<--with> I<Erweiterung>[B<,>I<Add-on> …]"
#. type: textblock
-#: dh:47
+#: dh:263
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 "
@@ -1830,44 +5006,108 @@ msgid ""
"commands. See the F<PROGRAMMING> file for documentation about the sequence "
"addon interface."
msgstr ""
-"fügt die Debhelper-Befehle, die durch das gegebene Add-on angegeben wurden, "
-"an geeigneten Stellen der Befehlssequenz, die ausgeführt wird, hinzu. Diese "
+"fügt die Debhelper-Befehle, die durch die genannte Erweiterung angegeben "
+"wurden an geeigneten Stellen der ausgeführten Befehlssequenz hinzu. Diese "
"Option kann mehr als einmal wiederholt werden oder es können mehrere Add-ons "
"durch Kommas getrennt aufgeführt werden. Dies wird benutzt, wenn es ein "
"Fremdpaket gibt, das Debhelper-Befehle bereitstellt. Dokumentation über die "
-"Sequenz-Add-on-Schnittstelle finden Sie in der Datei F<PROGRAMMING>."
+"Sequenz-Erweiterungsschnittstelle finden Sie in der Datei F<PROGRAMMING>."
+
+#. type: textblock
+#: dh:270
+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>. 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 "
+"bootstrapping)."
+msgstr ""
+"Eine B<Build-Depends>-Beziehung zum Paket B<dh-sequence->I<Erweiterung> "
+"setzt eine B<--with>-I<Erweiterung> voraus. Das vermeidet, dass ein "
+"explizites B<--with> in F<debian/rules> benötigt wird, das nur dupliziert, "
+"was bereits über die Bauabhängigkeiten in F<debian/control> erklärt wurde. "
+"Die Beziehung kann (seit 12.5) optional gemacht werden, z. B. über "
+"Bauprofile. Dies versetzt Sie in die Lage, einfach eine Erweiterung zu "
+"deaktivieren, die nur zu einem bestimmten Profil passt (z. B. um "
+"Bootstrapping zu erleichtern)."
+
+#. type: textblock
+#: dh:279
+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 ""
+"Ab Debhelper 12.5 können Erweiterungen auch im reinen B<indep>-Modus (über "
+"B<Build-Depends-Indep>) oder reinen B<arch>-Modus (über B<Build-Depends-"
+"Arch>) aktiviert werden. Derartige Erweiterungen sind nur in der bestimmten "
+"Sequenz aktiv (z. B. B<binary-indep>), die Abhängigkeitsverwaltung für Cross-"
+"Bauen vereinfachen."
+
+#. type: textblock
+#: dh:285
+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 ""
+"Bitte beachten Sie, dass Erweiterungen, die über B<Build-Depends-Indep> oder "
+"B<Build-Depends-Arch> aktiviert wurden, zusätzlichen Beschränkungen "
+"unterliegen, die sicherzustellen, dass das Ergebnis sogar dann "
+"deterministisch ist, wenn die Erweiterung nicht verfügbar ist (z. B. während "
+"des Aufräumens). Dies impliziert, dass einige Erweiterungen mit diesen "
+"Beschränkungen inkompatibel sind und nur über B<Build-Depends> (oder manuell "
+"ber F<debian/rules>) benutzt werden können. Derzeit können derartige "
+"Erweiterungen nur Befehle zu Sequenzen hinzufügen."
#. type: =item
-#: dh:54
+#: dh:293
msgid "B<--without> I<addon>"
-msgstr "B<--without> I<Add-on>"
+msgstr "B<--without> I<Erweiterung>"
#. type: textblock
-#: dh:56
+#: dh:295
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, "
"separated by commas."
msgstr ""
-"das Gegenteil von B<--with>, deaktiviert die Benutzung des angegebenen Add-"
-"ons. Diese Option kann mehrfach wiederholt werden oder es können mehrere Add-"
-"ons zum Deaktivieren durch Kommas getrennt aufgelistet werden."
+"das Gegenteil von B<--with>, deaktiviert die Benutzung der angegebenen "
+"Erweiterung. Diese Option kann mehrfach wiederholt werden oder es können "
+"mehrere Erweiterungen zum Deaktivieren durch Kommas getrennt aufgelistet "
+"werden."
#. type: textblock
-#: dh:62
+#: dh:301
msgid "List all available addons."
-msgstr "listet alle verfügbaren Add-ons auf."
+msgstr "listet alle verfügbaren Erweiterungen auf."
+
+#. type: textblock
+#: dh:303
+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 ""
+"Wenn es nur mit dieser Option aufgerufen wird, kann B<dh> aus jedem "
+"Verzeichnis aufgerufen werden (d.h. es benötigt keinen Zugriff auf Dateien "
+"aus einem Quellpaket)."
#. type: textblock
-#: dh:66
+#: dh:309
msgid ""
"Prints commands that would run for a given sequence, but does not run them."
msgstr ""
"gibt Befehle aus, die für eine angegebene Sequenz ausgeführt würden, führt "
-"sie aber nicht aus"
+"sie aber nicht aus."
#. type: textblock
-#: dh:68
+#: dh:311
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."
@@ -1877,23 +5117,24 @@ msgstr ""
"vollständige Liste der Befehle der Reihe nach ausgegeben."
#. type: textblock
-#: dh:73
+#: dh:316
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 "
"more specialised options."
msgstr ""
"Andere an B<dh> übergebene Optionen werden an jeden Befehl, den es ausführt, "
-"weitergereicht. Dies kann benutzt werden, um eine Option wie B<-v>, B<-X> "
-"oder B<-N> sowie spezialisiertere Optionen zu setzen."
+"weitergereicht. Damit kann eine Option wie B<-v>, B<-X> oder B<-N> sowie "
+"spezialisiertere Optionen gesetzt werden."
#. type: =head1
-#: dh:77 dh_installdocs:110 dh_link:75 dh_makeshlibs:97 dh_shlibdeps:70
+#: dh:320 dh_install:332 dh_installdocs:191 dh_installman:117 dh_link:91
+#: dh_makeshlibs:185 dh_shlibdeps:78
msgid "EXAMPLES"
msgstr "BEISPIELE"
#. type: textblock
-#: dh:79
+#: dh:322
msgid ""
"To see what commands are included in a sequence, without actually doing "
"anything:"
@@ -1902,7 +5143,7 @@ msgstr ""
"tatsächlich etwas zu tun, geben Sie Folgendes ein:"
#. type: verbatim
-#: dh:82
+#: dh:325
#, no-wrap
msgid ""
"\tdh binary-arch --no-act\n"
@@ -1912,16 +5153,16 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:84
+#: dh:327
msgid ""
"This is a very simple rules file, for packages where the default sequences "
"of commands work with no additional options."
msgstr ""
-"Dies ist eine einfach »rules«-Datei für Pakete, bei denen die vorgegebenen "
-"Befehlssequenzen ohne zusätzliche Optionen arbeiten."
+"Dies ist eine sehr einfache »rules«-Datei für Pakete, bei denen die "
+"vorgegebenen Befehlssequenzen ohne zusätzliche Optionen arbeiten."
#. type: verbatim
-#: dh:87 dh:108 dh:121
+#: dh:330 dh:337 dh:351 dh:364 dh:375 dh:433 dh:444
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -1935,43 +5176,29 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:91
+#: dh:334
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 ""
"Oft möchten Sie eine Option an einen speziellen Debhelper-Befehl übergeben. "
-"Der einfachste Weg, dies zu tun, besteht darin, ein außer Kraft setzendes "
-"Ziel für diesen Befehl hinzuzufügen."
+"Der einfachste Weg, dies zu tun, besteht darin, ein Override-Ziel für diesen "
+"Befehl hinzuzufügen."
#. type: verbatim
-#: dh:94 dh:179 dh:190
-#, 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:98
+#: dh:341
#, no-wrap
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"
+"\n"
#. type: verbatim
-#: dh:101
+#: dh:344
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -1983,19 +5210,19 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:104
+#: dh:347
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 "
"either and instead run your own commands."
msgstr ""
-"Manchmal können die automatisierten L<dh_auto_configure(1)> und "
-"L<dh_auto_build(1)> nicht abschätzen, was für ein merkwürdiges Paket zu tun "
-"ist. Hier nun, wie das Ausführen vermieden und stattdessen Ihre eigenen "
-"Befehle ausgeführt werden."
+"Manchmal ist ein Paket den L<dh_auto_configure(1)> und L<dh_auto_build(1)> "
+"so fremd, dass sie nicht automaitsch einschätzen können, was daran zu machen "
+"ist. Um ihre Ausführung zu verhindern und stattdessen Ihre eigenen Befehle "
+"einzusetzen, schreiben Sie Folgendes: "
#. type: verbatim
-#: dh:112
+#: dh:355
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -2007,7 +5234,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:115
+#: dh:358
#, no-wrap
msgid ""
"\toverride_dh_auto_build:\n"
@@ -2015,11 +5242,11 @@ msgid ""
"\n"
msgstr ""
"\toverride_dh_auto_build:\n"
-"\t\tmake universe-explode-in-delight\n"
+"\t\tmach-dass-sich-das-Universum-in-Wohlgefallen-auflöst\n"
"\n"
#. type: textblock
-#: dh:118
+#: dh:361
msgid ""
"Another common case is wanting to do something manually before or after a "
"particular debhelper command is run."
@@ -2028,59 +5255,57 @@ msgstr ""
"besonderen Debhelper-Befehls manuell etwas tun möchten."
#. type: verbatim
-#: dh:125
+#: dh:368
#, no-wrap
msgid ""
-"\toverride_dh_fixperms:\n"
-"\t\tdh_fixperms\n"
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
-"\toverride_dh_fixperms:\n"
-"\t\tdh_fixperms\n"
+"\t# Beispiel geht von Debhelper/12.8 und Kompatibilitätsstufe 10+ aus\n"
+"\texecute_after_dh_fixperms:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
#. type: textblock
-#: dh:129
+#: dh:372
msgid ""
-"If your package uses autotools and you want to freshen F<config.sub> and "
-"F<config.guess> with newer versions from the B<autotools-dev> package at "
-"build time, you can use some commands provided in B<autotools-dev> that "
-"automate it, like this."
+"If you are on an older debhelper or compatibility level, the above example "
+"would have to be written as."
msgstr ""
-"Falls Ihr Paket Autotools benutzt und Sie F<config.sub> und F<config.guess> "
-"mit neueren Versionen vom Paket B<autotools-dev> zur Bauzeit auffrischen "
-"möchten, können Sie einige von B<autotools-dev> bereitgestellten Befehle "
-"verwenden, die es wie folgt automatisieren."
+"Falls Sie auf einer älteren Debhelper-Kompatibilitätsstufe sind, würde das "
+"Beispiel wie folgt aussehen:"
#. type: verbatim
-#: dh:134
+#: dh:379
#, no-wrap
msgid ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@ --with autotools_dev\n"
+"\t# Older debhelper versions or using compat 9 or lower.\n"
+"\toverride_dh_fixperms:\n"
+"\t\tdh_fixperms\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@ --with autotools_dev\n"
+"\t# ältere Debhelper-Versionen oder Verwendung von Kompatibilitätsstufe 9\n"
+"\t#und niedriger\n"
+"\toverride_dh_fixperms:\n"
+"\t\tdh_fixperms\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
#. type: textblock
-#: dh:138
+#: dh:384
msgid ""
"Python tools are not run by dh by default, due to the continual change in "
-"that area. (Before compatibility level v9, dh does run B<dh_pysupport>.) "
-"Here is how to use B<dh_python2>."
+"that area. Here is how to use B<dh_python2>."
msgstr ""
"Python-Werkzeuge werden aufgrund ständiger Änderungen in diesem Bereich "
-"nicht standardmäßig von dh ausgeführt. (Vor Kompatibilitätsstufe v9 führt dh "
-"B<dh_pysupport> aus.) Hier wird gezeigt, wie B<dh_python2> benutzt wird."
+"nicht standardmäßig von dh ausgeführt. Sie können B<dh_python2> "
+"folgendermaßen benutzen."
#. type: verbatim
-#: dh:142
+#: dh:387
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2094,17 +5319,17 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:146
+#: dh:391
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 ""
-"Hier wird gezeigt, wie die Benutzung von Perls Bausystem B<Module::Build> "
-"erzwungen wird, was nötig sein kann, falls Debhelper fälschlicherweise "
-"entdeckt, dass das Programm MakeMaker verwendet."
+"So wird die Benutzung von Perls Bausystem B<Module::Build> erzwungen wird, "
+"was nötig sein kann, falls Debhelper fälschlicherweise feststellt, dass das "
+"Programm MakeMaker verwendet."
#. type: verbatim
-#: dh:150
+#: dh:395
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2118,7 +5343,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:154
+#: dh:399
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 "
@@ -2129,7 +5354,7 @@ msgstr ""
"einem Unterverzeichnis liegt."
#. type: verbatim
-#: dh:158
+#: dh:403
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2143,16 +5368,17 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:162
+#: dh:407
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 ""
"Und hier ist ein Beispiel, wie B<dh_auto_>I<*>-Befehlen mitgeteilt wird, "
-"dass in einem Unterverzeichnis gebaut wird, das mit B<clean> entfernt wird."
+"dass in einem Unterverzeichnis gebaut wird, das beim B<Aufräumen> entfernt "
+"wird."
#. type: verbatim
-#: dh:165
+#: dh:410
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2166,16 +5392,17 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:169
+#: dh:414
msgid ""
-"If your package can be built in parallel, you can support parallel building "
-"as follows. Then B<dpkg-buildpackage -j> will work."
+"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 ""
-"Falls Ihr Paket parallel gebaut werden kann, können Sie das parallele Bauen "
-"wie folgt unterstützen. Dann wird B<dpkg-buildpackage -j> funktionieren."
+"Falls Ihr Paket parallel gebaut werden kann, benutzen Sie bitte entweder "
+"Kompatibilitätsmodus 10 oder übergeben Sie B<--parallel> an Dh. Dann wird "
+"B<dpkg-buildpackage -j> funktionieren."
#. type: verbatim
-#: dh:172
+#: dh:417
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2189,17 +5416,41 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:176
+#: dh:421
+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 ""
+"Falls Ihr Paket nicht verlässlich unter Verwendung mehrerer Threads gebaut "
+"werden kann, übergeben Sie bitte B<--no-parallel> an Dh (oder den "
+"zuständigen B<dh_auto_>I<*>-Befehl):"
+
+#. type: verbatim
+#: dh:426
+#, no-wrap
+msgid ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --no-parallel\n"
+"\n"
+msgstr ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --no-parallel\n"
+"\n"
+
+#. type: textblock
+#: dh:430
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 ""
"Es folgt eine Möglichkeit, die Ausführung mehrerer Befehle, die Sie nicht "
-"ausführen möchten, durch B<dh> zu verhindern, indem Sie leere, außer Kraft "
-"setzende Ziele für jeden Befehl definieren."
+"ausführen möchten, durch B<dh> zu verhindern, indem Sie leere Override-Ziele "
+"für jeden Befehl definieren."
#. type: verbatim
-#: dh:183
+#: dh:437
#, no-wrap
msgid ""
"\t# Commands not to run:\n"
@@ -2211,19 +5462,19 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:186
+#: dh:440
msgid ""
"A long build process for a separate documentation package can be separated "
"out using architecture independent overrides. These will be skipped when "
"running build-arch and binary-arch sequences."
msgstr ""
"Ein langer Bauprozess für ein separates Dokumentationspaket kann durch "
-"Benutzung von architekturabhängigem außer Kraft setzen abgetrennt werden. "
-"Dies wird übersprungen, wenn »build-arch«- und »binary-arch«-Sequenzen "
-"ausgeführt werden."
+"Benutzung von architekturabhängigen Außerkraftsetzungen (Overrides) "
+"abgetrennt werden. Diese Ziele werden übersprungen, wenn »build-arch«- und "
+"»binary-arch«-Sequenzen ausgeführt werden."
#. type: verbatim
-#: dh:194
+#: dh:448
#, no-wrap
msgid ""
"\toverride_dh_auto_build-indep:\n"
@@ -2235,7 +5486,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:197
+#: dh:451
#, no-wrap
msgid ""
"\t# No tests needed for docs\n"
@@ -2247,7 +5498,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:200
+#: dh:454
#, no-wrap
msgid ""
"\toverride_dh_auto_install-indep:\n"
@@ -2259,38 +5510,228 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:203
+#: dh:457
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 "
"building only documentation."
msgstr ""
-"Angenommen, Sie möchten zusätzlich zum vorhergehenden Beispiel "
+"Angenommen, Sie möchten zusätzlich zum vorhergehenden Beispiel die "
"Dateimodusbits einer Datei ändern, aber nur, wenn Sie ein "
-"architekturabhängiges Paket bauen, da es beim Bauen der Dokumentation nicht "
+"architekturabhängiges Paket bauen, da sie beim Bauen der Dokumentation nicht "
"vorhanden ist."
#. type: verbatim
-#: dh:207
+#: dh:461
#, no-wrap
msgid ""
-"\toverride_dh_fixperms-arch:\n"
-"\t\tdh_fixperms\n"
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms-arch:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
-"\toverride_dh_fixperms-arch:\n"
-"\t\tdh_fixperms\n"
+"\t# Beispiel geht von Debhelper/12.8 und Kompatibilitätsstufe 10+ aus\n"
+"\texecute_after_dh_fixperms-arch:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
#. type: =head1
-#: dh:211
+#: dh:465
+msgid "DEBHELPER PROVIDED DH ADDONS"
+msgstr "VON DEBHELPER ANGEBOTENE DH-ERWEITERUNGEN"
+
+#. type: textblock
+#: dh:467
+msgid ""
+"The primary purpose of B<dh> addons is to provide easy integration with "
+"third-party provided features for debhelper. However, debhelper itself also "
+"provide a few sequences that can be useful in some cases. These are "
+"documented in this list:"
+msgstr ""
+"Der Hauptzweck von B<dh>-Erweiterungen besteht darin, die Integration von "
+"Drittanbieter-Funktionalitäten für Debhelper zu erleichtern. Debhelper "
+"selbst bietet ebenfalls einige Sequenzen an, die die in bestimmten Fällen "
+"nützlich sein könnten. Sie sind in der folgenden Liste dokumentiert:"
+
+#. type: =item
+#: dh:474
+msgid "build-stamp"
+msgstr "build-stamp"
+
+#. type: textblock
+#: dh:476
+msgid ""
+"A special addon for controlling whether B<dh> (in compat 10 or later) will "
+"create stamp files to tell whether the build target has been run "
+"successfully. See L</INTERNALS> for more details."
+msgstr ""
+"Eine spezielle Erweiterung, mit der gesteuert werden kann, ob B<dh> "
+"(Kompatibilitätsstufe 10 oder darüber) Stempeldateien anlegen soll, aus "
+"denen ersichtlich ist, dass das Bauziel erfolgreich ausgeführt worden ist. "
+"Siehe L</INTERNALS> für weitere Details."
+
+#. type: textblock
+#: dh:480
+msgid ""
+"This addon is active by default but can disabled by using B<dh $@ --without "
+"build-stamp>"
+msgstr ""
+"Diese Erweiterung ist standardmäßig aktiv, kann aber mit B<dh $@ --without "
+"build-stamp> abgeschaltet werden."
+
+#. type: =item
+#: dh:483
+msgid "dwz (obsolete)"
+msgstr "dwz (überholt)"
+
+#. type: textblock
+#: dh:485
+msgid ""
+"Adds L<dh_dwz(1)> to the sequence in compat level 11 or below. Obsolete in "
+"compat 12 or later."
+msgstr ""
+"Fügt in Kompatibilitätsstufe 11 und früher L<dh_dwz(1)> zur Sequenz hinzu. "
+"Ist in Stufe 12 und darüber überholt."
+
+#. type: =item
+#: dh:488
+msgid "elf-tools"
+msgstr "elf-tools"
+
+#. type: textblock
+#: dh:490
+msgid ""
+"This addon adds tools related to ELF files to the sequence such as "
+"L<dh_strip(1)> and L<dh_shlibdeps(1)>"
+msgstr ""
+"Diese Erweiterung fügt der Sequenz Werkzeuge für ELF-Dateien hinzu, unter "
+"anderem L<dh_strip(1)> und L<dh_shlibdeps(1)>."
+
+#. type: textblock
+#: dh:493
+msgid ""
+"This addon is I<conditionally> active by default for architecture specific "
+"packages - that is, it is skipped for arch:all packages. In the special "
+"case where you need these tools to work on arch:all packages, you can use "
+"B<--with elf-tools> to activate it unconditionally."
+msgstr ""
+"Diese Erweiterung ist I<unter Bedingungen> standardmäßig für "
+"architekturspezifische Pakete aktiviert – das heißt, sie wird für arch:all-"
+"Pakete übersprungen. Falls Sie diese Werkzeuge in einem speziellen Fall auch "
+"auf arch:all-Pakete ansetzen müssen, können Sie sie mit B<--with elf-tools> "
+"ohne die Bedingungen aktivieren."
+
+#. type: =item
+#: dh:499
+msgid "installinitramfs (obsolete)"
+msgstr "installinitramfs (überholt)"
+
+#. type: textblock
+#: dh:501
+msgid ""
+"Adds L<dh_installinitramfs(1)> to the sequence in compat level 11 or below. "
+"Obsolete in compat 12 or later."
+msgstr ""
+"Fügt der Sequenz in der Kompatibilitätsstufe 11 und darunter "
+"L<dh_installinitramfs(1)> hinzu. Ist in Stufe 12 und neuer überholt."
+
+#. type: =item
+#: dh:504
+msgid "root-sequence (internal)"
+msgstr "root-sequence (intern)"
+
+#. type: textblock
+#: dh:506
+msgid "This is reserved for internal usage."
+msgstr "Diese ist für den internen Gebrauch reserviert."
+
+#. type: =item
+#: dh:508
+msgid "single-binary"
+msgstr "single-binary"
+
+#. type: textblock
+#: dh:510
+msgid ""
+"A special-purpose addon that makes debhelper run in \"single binary\" mode."
+msgstr ""
+"Eine Spezialerweiterung, die dafür sorgt, dass Debhelper im »single-binary«-"
+"Modus läuft."
+
+#. type: textblock
+#: dh:512
+msgid ""
+"When active, it will pass B<< --destdir=debian/I<package>/ >> to "
+"L<dh_auto_install(1)>. This makes every file \"installed\" by the upstream "
+"build system part of the (only) binary package by default without having to "
+"use other helpers such as L<dh_install(1)>."
+msgstr ""
+"Wenn sie aktiv ist, übergibt sie B<< --destdir=debian/I<Paket>/ >> an "
+"L<dh_auto_install(1)>. Dadurch wird jede vom Bausystem der Originalautoren "
+"»installierte« Datei standardmäßig zu einem Teil des (einzigen) Binärpakets, "
+"ohne dass andere Helfer wie L<dh_install(1)> eingesetzt werden müssen."
+
+#. type: textblock
+#: dh:517
+msgid ""
+"The addon will refuse to activate when the source package lists 2 or more "
+"binary packages in F<debian/control> as a precaution."
+msgstr ""
+"Als Vorsichtsmaßnahme lässt sich diese Erweiterung nicht aktivieren, wenn "
+"das Quellpaket in F<debian/control> zwei oder mehr Binärpakete auflistet."
+
+#. type: textblock
+#: dh:520
+msgid ""
+"Before compat 15. this behaviour was the default when there was only a "
+"single binary package listed in F<debian/control>. In compat 15 and later, "
+"this addon must explicitly be activated for this feature to work."
+msgstr ""
+"Vor Kompatibilitätsstufe 15 war dies das Standardverhalten, wenn nur ein "
+"einzelnes Binärpaket in F<debian/control> aufgelistet war. In Stufe 15 und "
+"darüber muss die Erweiterung explizit aktiviert werden, um es zu aktivieren."
+
+#. type: textblock
+#: dh:524
+msgid ""
+"The rationale for requiring this as an explicit choice is that if it is "
+"implicit then debhelper will silently change behaviour on adding a new "
+"binary package. This has caused many RC bugs when maintainers renamed a "
+"binary and added transitional packages with the intention of supporting "
+"seamless upgrades. The result would often be two empty binary packages that "
+"were uploaded to archive with users frustrated as their \"upgrade\" removed "
+"their programs."
+msgstr ""
+"Dass jetzt die ausdrückliche Aktivierung nötig ist, hat den Hintergrund, "
+"dass es ansonsten nicht bemerkt wird, wenn eine neues Binärpaket hinzukommt "
+"und Debhelper sein Verhalten anpasst. Deswegen kam es in der Vergangenheit "
+"zu vielen veröffentlichungskritischen Fehlern und zur Einführung von "
+"Übergangspaketen, die nahtlose Upgrades ermöglichen sollten. Das Ergebnis "
+"waren dann oft zwei leere Binärpakete, die ins Archiv hochgeladen wurden und "
+"Anwender frustrierten, weil nach dem Upgrade ihre Programme fort waren."
+
+#. type: =item
+#: dh:532
+msgid "systemd (obsolete)"
+msgstr "systemd (überholt)"
+
+#. type: textblock
+#: dh:534
+msgid ""
+"Adds L<dh_systemd_enable(1)> and L<dh_systemd_start(1)> to the sequence in "
+"compat level 10 or below. Obsolete in compat 11 or later."
+msgstr ""
+"Fügt der Sequenz in Kompatibilitätsstufe 10 und darunter "
+"L<dh_systemd_enable(1)> und L<dh_systemd_start(1)> hinzu. Ist in Stufe 11 "
+"und darüber überholt."
+
+#. type: =head1
+#: dh:539
msgid "INTERNALS"
msgstr "INTERNA"
#. type: textblock
-#: dh:213
+#: dh:541
msgid ""
"If you're curious about B<dh>'s internals, here's how it works under the "
"hood."
@@ -2299,35 +5740,64 @@ msgstr ""
"wie es unter der Haube arbeitet."
#. type: textblock
-#: dh:215
+#: dh:543
+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 "
+"possible to avoid the stamp file by passing B<--without=build-stamp> to "
+"B<dh>. This makes \"no clean\" builds behave more like what some people "
+"expect at the expense of possibly running the build and test twice (the "
+"second time as root or under L<fakeroot(1)>)."
+msgstr ""
+"Im Kompatibilitätsmodus 10 (oder höher) erzeugt B<dh> eine Stempeldatei "
+"F<debian/debhelper-build-stamp>, nachdem die Bauschritte abgeschlossen sind, "
+"um ein erneutes Ausführen zu vermeiden. Es ist möglich, die Stempeldatei zu "
+"verhindern, indem B<--without=build-stamp> an B<dh> übergeben wird. Dies "
+"sorgt dafür, dass »unsauber« gebaute Pakete sich eher so verhalten, wie es "
+"manche Leute erwarten. Allerdings wird der Bau und das Testen möglicherweise "
+"zweimal ausgeführt (das zweite Mal als root oder unter L<fakeroot(1)>)."
+
+#. type: textblock
+#: dh:551
+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 "
+"been run for. These log files are then removed once the override target is "
+"complete."
+msgstr ""
+"Innerhalb eines Override-Ziels werden B<dh_*>-Befehle eine F<debian/package."
+"debhelper.log>-Protokolldatei erzeugen, um den Überblick zu behalten, für "
+"welche Pakete die Befehle ausgeführt wurden. Diese Protokolldateien werden "
+"entfernt, sobald die Override-Ziele erledigt sind."
+
+#. type: textblock
+#: dh:556
msgid ""
-"Each debhelper command will record when it's successfully run in F<debian/"
-"package.debhelper.log>. (Which B<dh_clean> deletes.) So B<dh> can tell which "
-"commands have already been run, for which packages, and skip running those "
-"commands again."
+"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> "
+"deletes.) So B<dh> can tell which commands have already been run, for which "
+"packages, and skip running those commands again."
msgstr ""
-"Jeder Debhelper-Befehl wird in F<debian/package.debhelper.log> "
-"aufgezeichnet, wenn er erfolgreich ausgeführt wurde. (Was durch B<dh_clean> "
-"gelöscht wird.) Daher kann B<dh> sagen, welche Befehle bereits für welche "
-"Pakete ausgeführt wurden und die erneute Ausführung dieser Befehl "
-"überspringen."
+"Im Kompatibilitätsmodus 9 oder älter wird jeder Debhelper-Befehl in F<debian/"
+"package.debhelper.log> aufgezeichnet, wenn er erfolgreich ausgeführt wurde. "
+"(Was durch B<dh_clean> gelöscht wird.) Daher kann B<dh> sagen, welche "
+"Befehle bereits für welche Pakete ausgeführt wurden und die erneute "
+"Ausführung dieser Befehle überspringen."
#. type: textblock
-#: dh:220
+#: dh:561
msgid ""
-"Each time B<dh> is run, 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."
+"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."
msgstr ""
-"Jedesmal, wenn B<dh> ausgeführt wird, untersucht es das Protokoll und findet "
-"den zuletzt protokollierten Befehl, der in der angegebenen Sequenz ist. Es "
-"fährt mit dem nächsten Befehl in der Sequenz fort. Die Optionen B<--until>, "
-"B<--before>, B<--after> und B<--remaining> setzten dieses Verhalten außer "
-"Kraft."
+"Jedes Mal, wenn B<dh> (im Kompatibilitätsmodus 9 oder älter) ausgeführt "
+"wird, geht es das Protokoll durch, um festzustellen, welcher Befehl in der "
+"angegebenen Sequenz zuletzt ausgeführt wurde. Es fährt dann mit dem nächsten "
+"Befehl fort."
#. type: textblock
-#: dh:225
+#: dh:565
msgid ""
"A sequence can also run dependent targets in debian/rules. For example, the "
"\"binary\" sequence runs the \"install\" target."
@@ -2336,7 +5806,7 @@ msgstr ""
"Sequenz »binary« führt zum Beispiel das Ziel »install« aus."
#. type: textblock
-#: dh:228
+#: dh:568
msgid ""
"B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass "
"information through to debhelper commands that are run inside override "
@@ -2345,12 +5815,11 @@ msgid ""
msgstr ""
"B<dh> benutzt die Umgebungsvariable B<DH_INTERNAL_OPTIONS>, um Informationen "
"an die Debhelper-Befehle durchzureichen, die innerhalb der Ziele ausgeführt "
-"werden. Der Inhalt (und die tatsächliche Existenz) dieser "
-"Umgebungsvariableist, wie der Name schon andeutet, Gegenstand dauernder "
-"Änderungen."
+"werden. Der Inhalt (und die tatsächliche Existenz) dieser Umgebungsvariable "
+"ist, wie der Name schon andeutet, Gegenstand dauernder Änderungen."
#. type: textblock
-#: dh:233
+#: dh:573
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 "
@@ -2365,108 +5834,21 @@ msgstr ""
"Option B<-a> übergeben, um sicherzustellen, dass sie nur auf "
"architekturabhängigen Paketen funktionieren."
-#. type: =head1
-#: dh:239
-msgid "DEPRECATED OPTIONS"
-msgstr "MISSBILLIGTE OPTIONEN"
-
#. type: textblock
-#: dh:241
-msgid ""
-"The following options are deprecated. It's much better to use override "
-"targets instead."
-msgstr ""
-"Die folgenden Optionen sind missbilligt. Es ist wesentlich besser, "
-"stattdessen außer Kraft setzende Ziele zu verwenden."
-
-#. type: =item
-#: dh:246
-msgid "B<--until> I<cmd>"
-msgstr "B<--until> I<Befehl>"
-
-#. type: textblock
-#: dh:248
-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:250
-msgid "B<--before> I<cmd>"
-msgstr "B<--before> I<Befehl>"
-
-#. type: textblock
-#: dh:252
-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:254
-msgid "B<--after> I<cmd>"
-msgstr "B<--after> I<Befehl>"
-
-#. type: textblock
-#: dh:256
-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:258
-msgid "B<--remaining>"
-msgstr "B<--remaining>"
-
-#. type: textblock
-#: dh:260
-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:264
-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:974 dh_auto_build:49 dh_auto_clean:52 dh_auto_configure:54
-#: dh_auto_install:94 dh_auto_test:65 dh_builddeb:126 dh_clean:149
-#: dh_compress:212 dh_fixperms:133 dh_gconf:103 dh_gencontrol:80
-#: dh_install:262 dh_installcatalogs:124 dh_installchangelogs:243
-#: dh_installcron:81 dh_installdeb:144 dh_installdebconf:130 dh_installdirs:90
-#: dh_installdocs:339 dh_installexamples:110 dh_installifupdown:73
-#: dh_installinfo:79 dh_installinit:326 dh_installlogcheck:82
-#: dh_installlogrotate:54 dh_installman:265 dh_installmanpages:199
-#: dh_installmime:65 dh_installmodules:117 dh_installpam:63 dh_installppp:69
-#: dh_installudev:119 dh_installwm:112 dh_installxfonts:91 dh_link:230
-#: dh_listpackages:32 dh_makeshlibs:266 dh_md5sums:92 dh_movefiles:172
-#: dh_perl:154 dh_prep:62 dh_strip:244 dh_suidregister:119 dh_testdir:55
-#: dh_testroot:29 dh_undocumented:30 dh_usrlocal:118
-msgid "L<debhelper(7)>"
-msgstr "L<debhelper(7)>"
-
-#. type: textblock
-#: dh:976 dh_auto_build:51 dh_auto_clean:54 dh_auto_configure:56
-#: dh_auto_install:96 dh_auto_test:67 dh_bugfiles:130 dh_builddeb:128
-#: dh_clean:151 dh_compress:214 dh_desktop:35 dh_fixperms:135 dh_gconf:105
-#: dh_gencontrol:82 dh_icons:75 dh_install:264 dh_installchangelogs:245
-#: dh_installcron:83 dh_installdeb:146 dh_installdebconf:132 dh_installdirs:92
-#: dh_installdocs:341 dh_installemacsen:146 dh_installexamples:112
-#: dh_installifupdown:75 dh_installinfo:81 dh_installinit:328
-#: dh_installlogrotate:56 dh_installman:267 dh_installmanpages:201
-#: dh_installmenu:95 dh_installmime:67 dh_installmodules:119 dh_installpam:65
-#: dh_installppp:71 dh_installudev:121 dh_installwm:114 dh_installxfonts:93
-#: dh_link:232 dh_lintian:63 dh_listpackages:34 dh_makeshlibs:268
-#: dh_md5sums:94 dh_movefiles:174 dh_perl:156 dh_prep:64 dh_scrollkeeper:32
-#: dh_shlibdeps:156 dh_strip:246 dh_suidregister:121 dh_testdir:57
-#: dh_testroot:31 dh_undocumented:32 dh_usrlocal:120
+#: dh:876 dh_auto_build:57 dh_auto_clean:59 dh_auto_configure:62
+#: dh_auto_install:107 dh_auto_test:68 dh_bugfiles:139 dh_builddeb:180
+#: dh_clean:193 dh_compress:247 dh_dwz:167 dh_fixperms:168 dh_gencontrol:212
+#: dh_icons:79 dh_install:381 dh_installchangelogs:369 dh_installcron:84
+#: dh_installdeb:423 dh_installdebconf:237 dh_installdirs:135
+#: dh_installdocs:441 dh_installemacsen:143 dh_installexamples:186
+#: dh_installifupdown:76 dh_installinfo:127 dh_installinit:417
+#: dh_installinitramfs:97 dh_installlogrotate:57 dh_installman:424
+#: dh_installmanpages:202 dh_installmenu:94 dh_installmime:67
+#: dh_installmodules:113 dh_installpam:75 dh_installppp:72 dh_installudev:106
+#: dh_installwm:134 dh_installxfonts:94 dh_link:170 dh_lintian:64
+#: dh_listpackages:38 dh_makeshlibs:460 dh_md5sums:122 dh_movefiles:165
+#: dh_perl:192 dh_prep:74 dh_shlibdeps:208 dh_strip:439 dh_testdir:66
+#: dh_testroot:97 dh_usrlocal:140
msgid "This program is a part of debhelper."
msgstr "Dieses Programm ist Teil von Debhelper."
@@ -2476,7 +5858,7 @@ msgid "dh_auto_build - automatically builds a package"
msgstr "dh_auto_build - baut ein Paket automatisch"
#. type: textblock
-#: dh_auto_build:14
+#: dh_auto_build:18
msgid ""
"B<dh_auto_build> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2485,7 +5867,7 @@ msgstr ""
"> I<Parameter>>]"
#. type: textblock
-#: dh_auto_build:18
+#: dh_auto_build:22
msgid ""
"B<dh_auto_build> is a debhelper program that tries to automatically build a "
"package. It does so by running the appropriate command for the build system "
@@ -2493,50 +5875,49 @@ msgid ""
"done by running B<make> (or B<MAKE>, if the environment variable is set). If "
"there's a F<setup.py>, or F<Build.PL>, it is run to build the package."
msgstr ""
-"B<dh_auto_build> ist ein Debhelper-Programm, das versucht ein Paket "
-"automatisch zu bauen. Es tut dies, indem es einen geeigneten Befehl für das "
-"Bausystem ausführt, von dem es ermittelt hat, dass es vom Paket benutzt "
-"wird. Falls zum Beispiel ein F<Makefile> gefunden wird, wird dies durch "
-"B<make> (oder B<MAKE>, falls die Umgebungsvariable gesetzt ist) ausgeführt. "
-"Falls es dort ein F<setup.py> oder F<Build.PL> gibt, wird dies zum Bau des "
-"Pakets ausgeführt."
+"B<dh_auto_build> ist ein Debhelper-Programm, das versucht, ein Paket "
+"automatisch zu bauen. Dazu führt es einen geeigneten Befehl für dasjenige "
+"Bausystem aus, für das es ermittelt hat, dass es vom Paket benutzt wird. "
+"Falls zum Beispiel ein F<Makefile> gefunden wird, wird B<make> (oder "
+"B<MAKE>, falls die Umgebungsvariable gesetzt ist) verwendet. Falls es ein "
+"F<setup.py> oder F<Build.PL> gibt, wird dieses zum Bau des Pakets ausgeführt."
#. type: textblock
-#: dh_auto_build:24
+#: dh_auto_build:28
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, "
"you're encouraged to skip using B<dh_auto_build> at all, and just run the "
"build process manually."
msgstr ""
-"Dies wird für die Arbeit mit über 90% der Pakete angestrebt. Falls es nicht "
-"funktioniert, sind Sie angehalten, jegliche Benutzung von B<dh_auto_build> "
-"zu überspringen und den Bauprozess nur manuell auszuführen."
+"Es ist beabsichtigt, dass diese Vorgehensweise für 90% der Pakete "
+"funktioniert.Falls sie das nicht tut, möchten Sie bitte jegliche Benutzung "
+"von B<dh_auto_build> überspringen und den Bauprozess nur manuell ausführen."
#. type: textblock
-#: dh_auto_build:30 dh_auto_clean:32 dh_auto_configure:33 dh_auto_install:45
-#: dh_auto_test:33
+#: dh_auto_build:34 dh_auto_clean:35 dh_auto_configure:37 dh_auto_install:54
+#: dh_auto_test:36
msgid ""
"See L<debhelper(7)/B<BUILD SYSTEM OPTIONS>> for a list of common build "
"system selection and control options."
msgstr ""
-"Eine Liste der üblichen Bausystemauswahl und Steueroptionen finden Sie in "
+"Eine Liste der üblichen Bausystemauswahl- und Steueroptionen finden Sie in "
"L<debhelper(7)/B<BUILD-SYSTEMOPTIONEN>>."
#. type: =item
-#: dh_auto_build:35 dh_auto_clean:37 dh_auto_configure:38 dh_auto_install:56
-#: dh_auto_test:38 dh_builddeb:38 dh_gencontrol:30 dh_installdebconf:69
-#: dh_installinit:105 dh_makeshlibs:91 dh_shlibdeps:37
+#: dh_auto_build:39 dh_auto_clean:40 dh_auto_configure:42 dh_auto_install:65
+#: dh_auto_test:41 dh_builddeb:48 dh_dwz:62 dh_gencontrol:42
+#: dh_installdebconf:72 dh_installinit:166 dh_makeshlibs:179 dh_shlibdeps:41
msgid "B<--> I<params>"
msgstr "B<--> I<Parameter>"
#. type: textblock
-#: dh_auto_build:37
+#: dh_auto_build:41
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_build> usually passes."
msgstr ""
-"Es werden I<Parameter> an das Programm übergeben, das nach den Parametern "
-"ausgeführt wird, die B<dh_auto_build> normalerweise übergibt."
+"Dem ausgeführten Programm I<Parameter> übergeben, und zwar nach den "
+"Parametern, die B<dh_auto_build> üblicherweise übergibt."
#. type: textblock
#: dh_auto_clean:5
@@ -2544,7 +5925,7 @@ msgid "dh_auto_clean - automatically cleans up after a build"
msgstr "dh_auto_clean - räumt nach dem Bauen automatisch auf"
#. type: textblock
-#: dh_auto_clean:15
+#: dh_auto_clean:18
msgid ""
"B<dh_auto_clean> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2553,7 +5934,7 @@ msgstr ""
"> I<Parameter>>]"
#. type: textblock
-#: dh_auto_clean:19
+#: dh_auto_clean:22
msgid ""
"B<dh_auto_clean> is a debhelper program that tries to automatically clean up "
"after a package build. It does so by running the appropriate command for the "
@@ -2564,34 +5945,34 @@ msgid ""
"clean the package."
msgstr ""
"B<dh_auto_clean> ist ein Debhelper-Programm, das versucht, nach dem Bau "
-"eines Pakets automatisch aufzuräumen. Es tut dies, indem es einen geeigneten "
-"Befehl für das Bausystem ausführt, von dem es ermittelt hat, dass es vom "
+"eines Pakets automatisch aufzuräumen. Dazu führt es einen entsprechenden "
+"Befehl für dasjenige Bausystem aus, von dem es ermittelt hat, dass es vom "
"Paket benutzt wird. Falls es dort zum Beispiel ein F<Makefile> gibt und es "
"ein B<distclean>-, B<realclean>- oder B<clean>-Ziel enthält, dann wird dies "
"durch Ausführung von B<make> (oder B<MAKE>, falls die Umgebungsvariable "
"gesetzt ist) erledigt. Falls es dort ein F<setup.py> oder F<Build.PL> gibt, "
-"wird dies ausgeführt, um das Paket zu bereinigen."
+"wird dieses ausgeführt, um das Paket zu bereinigen."
#. type: textblock
-#: dh_auto_clean:26
+#: dh_auto_clean:29
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, or "
"tries to use the wrong clean target, you're encouraged to skip using "
"B<dh_auto_clean> at all, and just run B<make clean> manually."
msgstr ""
-"Dies wird für die Arbeit mit über 90% der Pakete angestrebt. Falls es nicht "
-"funktioniert oder versucht, das falsche Ziel aufzuräumen, sind Sie "
-"angehalten, jegliche Benutzung von B<dh_auto_clean> zu überspringen und "
-"B<make clean> nur manuell auszuführen."
+"Diese Vorgehensweise sollte für über 90% der Pakete funktionieren. Sollte "
+"sie es nicht tun oder versuchen, ein falsches Aufräum-Ziel zu benutzen, "
+"möchten Sie bitte B<dh_auto_clean> vollständig ignorieren und B<make clean> "
+"einfach per Hand ausführen."
#. type: textblock
-#: dh_auto_clean:39
+#: dh_auto_clean:42
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_clean> usually passes."
msgstr ""
-"Es werden I<Parameter> an das Programm übergeben, das nach den Parametern "
-"ausgeführt wird, die B<dh_auto_clean> normalerweise übergibt."
+"Dem ausgeführten Programm I<Parameter> übergeben, und zwar nach den "
+"Parametern, die B<dh_auto_clean> üblicherweise übergibt."
#. type: textblock
#: dh_auto_configure:5
@@ -2599,7 +5980,7 @@ msgid "dh_auto_configure - automatically configure a package prior to building"
msgstr "dh_auto_configure - konfiguriert das Paket automatisch vor dem Bauen."
#. type: textblock
-#: dh_auto_configure:14
+#: dh_auto_configure:18
msgid ""
"B<dh_auto_configure> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2608,7 +5989,7 @@ msgstr ""
"[S<B<--> I<Parameter>>]"
#. type: textblock
-#: dh_auto_configure:18
+#: dh_auto_configure:22
msgid ""
"B<dh_auto_configure> is a debhelper program that tries to automatically "
"configure a package prior to building. It does so by running the appropriate "
@@ -2620,29 +6001,28 @@ msgid ""
"anything."
msgstr ""
"B<dh_auto_configure> ist ein Debhelper-Programm, das versucht, ein Paket vor "
-"dem Bauen automatisch zu konfigurieren. Es tut dies, indem es einen "
-"geeigneten Befehl für das Bausystem ausführt, von dem es ermittelt hat, dass "
-"es vom Paket benutzt wird. Es sieht zum Beispiel nach, ob es ein F<./"
-"configure>-Skript, F<Makefile.PL>, F<Build.PL> oder F<cmake> gibt und führt "
-"es aus. Ein Standardsatz von Parametern wird festgelegt und an das Programm "
-"übergeben, das ausgeführt wird. Einige Bausysteme wie »make« benötigen "
-"keinen Konfigurationsschritt; für diese wird B<dh_auto_configure> beendet "
-"ohne etwas zu tun."
+"dem Bauen automatisch zu konfigurieren. Dazu führt es einen passenden Befehl "
+"desjenigen Bausystems aus, von dem es ermittelt hat, dass es vom Paket "
+"benutzt wird. Es sieht zum Beispiel nach, ob es ein F<./configure>-Skript, "
+"F<Makefile.PL>, F<Build.PL> oder F<cmake> gibt und führt es aus. Ein "
+"Standardsatz von Parametern wird festgelegt und an das Programm übergeben. "
+"Einige Bausysteme wie »make« benötigen keinen Konfigurationsschritt; für "
+"diese wird B<dh_auto_configure> beendet, ohne etwas zu tun."
#. type: textblock
-#: dh_auto_configure:27
+#: dh_auto_configure:31
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, "
"you're encouraged to skip using B<dh_auto_configure> at all, and just run "
"F<./configure> or its equivalent manually."
msgstr ""
-"Dies wird für die Arbeit mit über 90% der Pakete angestrebt. Falls es nicht "
-"funktioniert, sind Sie angehalten, jegliche Benutzung von "
-"B<dh_auto_configure> zu überspringen und nur F<./configure> oder etwas "
-"Vergleichbares manuell auszuführen."
+"Es ist beabsichtigt, dass diese Vorgehensweise für über 90% der Pakete "
+"funktioniert. Falls sie das nicht tut, möchten Sie bitte "
+"B<dh_auto_configure> komplett ignorieren und nur F<./configure> oder etwas "
+"Vergleichbares per Hand ausführen."
#. type: textblock
-#: dh_auto_configure:40
+#: dh_auto_configure:44
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_configure> usually passes. For example:"
@@ -2651,7 +6031,7 @@ msgstr ""
"normalerweise übergibt, an das laufende Programm. Zum Beispiel:"
#. type: verbatim
-#: dh_auto_configure:43
+#: dh_auto_configure:47
#, no-wrap
msgid ""
" dh_auto_configure -- --with-foo --enable-bar\n"
@@ -2666,7 +6046,7 @@ msgid "dh_auto_install - automatically runs make install or similar"
msgstr "dh_auto_install - führt »make install« oder Ähnliches aus"
#. type: textblock
-#: dh_auto_install:17
+#: dh_auto_install:20
msgid ""
"B<dh_auto_install> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2675,7 +6055,7 @@ msgstr ""
"[S<B<--> I<Parameter>>]"
#. type: textblock
-#: dh_auto_install:21
+#: dh_auto_install:24
msgid ""
"B<dh_auto_install> is a debhelper program that tries to automatically "
"install built files. It does so by running the appropriate command for the "
@@ -2687,32 +6067,49 @@ msgid ""
"built using Ant."
msgstr ""
"B<dh_auto_install> ist ein Debhelper-Programm, das versucht gebaute Dateien "
-"automatisch zu installieren. Es tut dies, indem es einen geeigneten Befehl "
-"für das Bausystem ausführt, von dem es ermittelt hat, dass es vom Paket "
-"benutzt wird. Wenn es dort zum Beispiel ein F<Makefile> gibt und es ein "
-"B<install>-Ziel enthält, dann wird dies durch Ausführung von B<make> (oder "
-"B<MAKE>, falls die Umgebungsvariable gesetzt ist) erledigt. Falls es dort "
-"ein F<setup.py> oder F<Build.PL> gibt, wird es verwandt. Beachten Sie, dass "
-"das Bausystem Ant keine Installation unterstützt. B<dh_auto_install> wird "
-"daher keine mit Ant gebauten Dateien installieren."
+"automatisch zu installieren. Dazu führt es einen geeigneten Befehl für "
+"dasjenige Bausystem aus, von dem es ermittelt hat, dass es vom Paket benutzt "
+"wird. Wenn es dort zum Beispiel ein F<Makefile> gibt und es ein B<install>-"
+"Ziel enthält, dann wird dies durch Ausführung von B<make> (oder B<MAKE>, "
+"falls die Umgebungsvariable gesetzt ist) erledigt. Falls es dort ein F<setup."
+"py> oder F<Build.PL> gibt, wird dieses verwandt. Beachten Sie, dass das "
+"Bausystem Ant keine Installation unterstützt. B<dh_auto_install> wird daher "
+"keine mit Ant gebauten Dateien installieren."
#. type: textblock
-#: dh_auto_install:29
+#: dh_auto_install:32
msgid ""
-"Unless B<--destdir> option is specified, the files are installed into debian/"
-"I<package>/ if there is only one binary package. In the multiple binary "
-"package case, the files are instead installed into F<debian/tmp/>, and "
-"should be moved from there to the appropriate package build directory using "
-"L<dh_install(1)>."
+"In compat 15 or later, B<dh_auto_install> will use F<debian/tmp> as the "
+"default B<--destdir> and should be moved from there to the appropriate "
+"package build directory using L<dh_install(1)> or similar tools. Though if "
+"the B<single-binary> addon for L<dh(1)> is activated, then it will pass an "
+"explicit B<< --destdir=debian/I<package>/ >> to B<dh_auto_install>."
msgstr ""
-"Sofern die Option B<--destdir> nicht angegeben ist, werden die Dateien in "
-"debian/I<Paket>/ installiert, falls es nur ein binäres Paket gibt. Im Fall "
-"mehrerer binärer Pakete werden die Dateien stattdessen in F<debian/tmp/> "
-"installiert und sollten von dort unter Benutzung von L<dh_install(1)> in das "
-"dazugehörige Bauverzeichnis des Pakets verschoben werden."
+"In Kompatibilitätsstufe 15 oder neuer verwendet B<dh_auto_install> F<debian/"
+"tmp> als Vorgabe-B<--destdir> und sollte von dort mit Hilfe von "
+"L<dh_install(1)> oder vergleichbaren Werkzeugen in das passende "
+"Paketbauverzeichnis verschoben werden. Falls jedoch die B<single-binary>-"
+"Erweiterung für L<dh(1)> aktiviert ist, wird explizit B<< --destdir=debian/"
+"I<Paket>/ >> an B<dh_auto_install> übergeben."
#. type: textblock
-#: dh_auto_install:35
+#: dh_auto_install:38
+msgid ""
+"For earlier compat levels then unless B<--destdir> option is specified, the "
+"files are installed into debian/I<package>/ if there is only one binary "
+"package. In the multiple binary package case, the files are instead "
+"installed into F<debian/tmp/>, and should be moved from there to the "
+"appropriate package build directory using L<dh_install(1)> or similar tools."
+msgstr ""
+"Sofern die Option B<--destdir> nicht angegeben ist und es nur ein binäres "
+"Paket gibt, werden die Dateien bei älteren Kompatibilitätsstufen in debian/"
+"I<Paket>/ installiert. Im Fall mehrerer binärer Pakete werden die Dateien "
+"stattdessen in F<debian/tmp/> installiert und sollten von dort unter "
+"Benutzung von L<dh_install(1)> oder ähnlicher Werkzeuge in das dazugehörige "
+"Bauverzeichnis des Pakets verschoben werden."
+
+#. type: textblock
+#: dh_auto_install:44
msgid ""
"B<DESTDIR> is used to tell make where to install the files. If the Makefile "
"was generated by MakeMaker from a F<Makefile.PL>, it will automatically set "
@@ -2724,24 +6121,24 @@ msgstr ""
"dies erfordern."
#. type: textblock
-#: dh_auto_install:39
+#: dh_auto_install:48
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, or "
"tries to use the wrong install target, you're encouraged to skip using "
"B<dh_auto_install> at all, and just run make install manually."
msgstr ""
-"Dies wird für die Arbeit mit über 90% der Pakete angestrebt. Falls es nicht "
-"funktioniert oder versucht, das falsche »install«-Ziel zu verwenden, sind "
-"Sie angehalten, jegliche Benutzung von B<dh_auto_install> zu überspringen "
-"und »make install« nur manuell auszuführen."
+"Diese Vorgehensweise sollte für über 90% der Pakete funktionieren. Falls sie "
+"das nicht tut oder versucht, das falsche Installationsziel zu verwenden, "
+"möchten Sie bitte B<dh_auto_install> komplett ignorieren und nur make "
+"install per Hand ausführen."
#. type: =item
-#: dh_auto_install:50 dh_builddeb:28
+#: dh_auto_install:59 dh_builddeb:38
msgid "B<--destdir=>I<directory>"
msgstr "B<--destdir=>I<Verzeichnis>"
#. type: textblock
-#: dh_auto_install:52
+#: dh_auto_install:61
msgid ""
"Install files into the specified I<directory>. If this option is not "
"specified, destination directory is determined automatically as described in "
@@ -2752,21 +6149,21 @@ msgstr ""
"Abschnitt L</B<BESCHREIBUNG>> beschrieben, festgelegt."
#. type: textblock
-#: dh_auto_install:58
+#: dh_auto_install:67
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_install> usually passes."
msgstr ""
-"Es werden I<Parameter> nach den Parametern, die B<dh_auto_install> "
-"normalerweise übergibt, an das laufende Programm übergeben."
+"übergibt I<Parameter> nach den Parametern, die B<dh_auto_install> "
+"normalerweise übergibt, an das laufende Programm."
#. type: textblock
#: dh_auto_test:5
msgid "dh_auto_test - automatically runs a package's test suites"
-msgstr "dh_auto_test - führt automatisch die Test-Suites eines Programms aus"
+msgstr "dh_auto_test - führt automatisch die Test-Suites eines Pakets aus"
#. type: textblock
-#: dh_auto_test:15
+#: dh_auto_test:18
msgid ""
"B<dh_auto_test> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2775,7 +6172,7 @@ msgstr ""
"> I<Parameter>>]"
#. type: textblock
-#: dh_auto_test:19
+#: dh_auto_test:22
msgid ""
"B<dh_auto_test> is a debhelper program that tries to automatically run a "
"package's test suite. It does so by running the appropriate command for the "
@@ -2786,37 +6183,37 @@ msgid ""
"zero without doing anything."
msgstr ""
"B<dh_auto_test> ist ein Debhelper-Programm, das versucht, automatisch eine "
-"Test-Suite eines Programms auszuführen. Es tut dies, indem es einen "
-"geeigneten Befehl für das Bausystem ausführt, von dem es ermittelt hat, dass "
-"es vom Paket benutzt wird. Wenn es dort zum Beispiel ein Makefile gibt und "
-"es ein B<test>- oder B<check>-Ziel enthält, dann wird dies durch Ausführung "
-"von B<make> (oder B<MAKE>, falls die Umgebungsvariable gesetzt ist) "
-"erledigt. Falls die Test-Suite fehlschlägt, wird der Befehl mit einem "
-"Rückgabewert ungleich Null beendet. Falls es dort keine Test-Suite gibt, "
-"wird er mit dem Rückgabewert Null beendet ohne etwas zu tun."
+"Test-Suite eines Programms auszuführen. Dazu führt es einen geeigneten "
+"Befehl für dasjenige Bausystem aus, von dem es ermittelt hat, dass es vom "
+"Paket benutzt wird. Wenn es dort zum Beispiel ein Makefile gibt und dieses "
+"ein B<test>- oder B<check>-Ziel enthält, dann wird dies durch Ausführung von "
+"B<make> (oder B<MAKE>, falls die Umgebungsvariable gesetzt ist) erledigt. "
+"Falls die Test-Suite fehlschlägt, wird der Befehl mit einem Rückgabewert "
+"ungleich null beendet. Falls es dort keine Test-Suite gibt, wird er mit dem "
+"Rückgabewert null beendet, ohne etwas zu tun."
#. type: textblock
-#: dh_auto_test:27
+#: dh_auto_test:30
msgid ""
"This is intended to work for about 90% of packages with a test suite. If it "
"doesn't work, you're encouraged to skip using B<dh_auto_test> at all, and "
"just run the test suite manually."
msgstr ""
-"Dies wird für die Arbeit mit über 90% der Pakete angestrebt. Falls es nicht "
-"funktioniert, sind Sie angehalten, jegliche Benutzung von B<dh_auto_test> zu "
-"überspringen und nur die Test-Suite manuell auszuführen."
+"Es ist beabsichtigt, dass diese Vorgehensweise für über 90% der Pakete "
+"funktioniert. Falls sie das nicht tut, möchten Sie bitte B<dh_auto_test> "
+"komplett ignorieren und die Test-Suite per Hand ausführen."
#. type: textblock
-#: dh_auto_test:40
+#: dh_auto_test:43
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_test> usually passes."
msgstr ""
-"Es werden I<Parameter> nach den Parametern, die B<dh_auto_test> "
-"normalerweise übergibt, an das laufende Programm übergeben."
+"Übergibt I<Parameter> nach den Parametern, die B<dh_auto_test> normalerweise "
+"übergibt, an das laufende Programm."
#. type: textblock
-#: dh_auto_test:47
+#: dh_auto_test:50
msgid ""
"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nocheck>, no "
"tests will be performed."
@@ -2825,15 +6222,6 @@ msgstr ""
"keine Tests durchgeführt."
#. type: textblock
-#: dh_auto_test:50
-msgid ""
-"dh_auto_test does not run the test suite when a package is being cross "
-"compiled."
-msgstr ""
-"dh_auto_test führt die Testsuite nicht aus, wenn das Paket cross-kompiliert "
-"wird."
-
-#. type: textblock
#: dh_bugfiles:5
msgid ""
"dh_bugfiles - install bug reporting customization files into package build "
@@ -2843,12 +6231,12 @@ msgstr ""
"Bauverzeichnisse von Paketen."
#. type: textblock
-#: dh_bugfiles:14
+#: dh_bugfiles:17
msgid "B<dh_bugfiles> [B<-A>] [S<I<debhelper options>>]"
msgstr "B<dh_bugfiles> [B<-A>] [S<I<Debhelper-Optionen>>]"
#. type: textblock
-#: dh_bugfiles:18
+#: dh_bugfiles:21
msgid ""
"B<dh_bugfiles> is a debhelper program that is responsible for installing bug "
"reporting customization files (bug scripts and/or bug control files and/or "
@@ -2860,24 +6248,25 @@ msgstr ""
"»presubj«-Dateien)."
#. type: =head1
-#: dh_bugfiles:22 dh_clean:31 dh_compress:31 dh_gconf:23 dh_install:38
-#: dh_installcatalogs:35 dh_installchangelogs:35 dh_installcron:21
-#: dh_installdeb:22 dh_installdebconf:34 dh_installdirs:21 dh_installdocs:21
-#: dh_installemacsen:27 dh_installexamples:22 dh_installifupdown:22
-#: dh_installinfo:21 dh_installinit:27 dh_installlogcheck:21 dh_installman:51
-#: dh_installmenu:25 dh_installmime:21 dh_installmodules:28 dh_installpam:21
-#: dh_installppp:21 dh_installudev:25 dh_installwm:24 dh_link:41 dh_lintian:21
-#: dh_makeshlibs:29 dh_movefiles:26
+#: dh_bugfiles:25 dh_clean:33 dh_compress:35 dh_install:40
+#: dh_installcatalogs:39 dh_installchangelogs:53 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 "DATEIEN"
#. type: =item
-#: dh_bugfiles:26
+#: dh_bugfiles:29
msgid "debian/I<package>.bug-script"
msgstr "debian/I<Paket>.bug-script"
#. type: textblock
-#: dh_bugfiles:28
+#: dh_bugfiles:31
msgid ""
"This is the script to be run by the bug reporting program for generating a "
"bug report template. This file is installed as F<usr/share/bug/package> in "
@@ -2887,20 +6276,20 @@ msgid ""
"script is given execute permissions."
msgstr ""
"Dies ist das Skript, das durch das Programm zum Berichten von Fehlern "
-"verwandt wird, um eine Fehlerberichtschablone zu erzeugen. Diese Datei ist "
-"als F<usr/share/bug/package> im Paketbauverzeichnis installiert, falls keine "
-"anderen Typen von Anpassungsdateien für Fehlerberichte für die in Frage "
-"kommenden Pakete installiert werden. Andernfalls wird diese Datei als F<usr/"
-"share/bug/package/script> installiert. Am Ende werden dem installierten "
-"Skript Ausführrechte gegeben."
+"verwendet wird, um eine Fehlerberichtschablone zu erzeugen. Falls keine "
+"anderen Arten von Fehlerbericht-Anpassungsdateien für die in Frage kommenden "
+"Pakete installiert werden, ist diese Datei als F<usr/share/bug/package> im "
+"Paketbauverzeichnis installiert. Andernfalls wird sie als F<usr/share/bug/"
+"package/script> installiert. Am Ende werden dem installierten Skript "
+"Ausführrechte gegeben."
#. type: =item
-#: dh_bugfiles:35
+#: dh_bugfiles:38
msgid "debian/I<package>.bug-control"
msgstr "debian/I<Paket>.bug-control"
#. type: textblock
-#: dh_bugfiles:37
+#: dh_bugfiles:40
msgid ""
"It is the bug control file containing some directions for the bug reporting "
"tool. This file is installed as F<usr/share/bug/package/control> in the "
@@ -2911,12 +6300,12 @@ msgstr ""
"package/control> im Bauverzeichnis des Pakets installiert."
#. type: =item
-#: dh_bugfiles:41
+#: dh_bugfiles:44
msgid "debian/I<package>.bug-presubj"
msgstr "debian/I<Paket>.bug-presubj"
#. type: textblock
-#: dh_bugfiles:43
+#: dh_bugfiles:46
msgid ""
"The contents of this file are displayed to the user by the bug reporting "
"tool before allowing the user to write a bug report on the package to the "
@@ -2925,12 +6314,12 @@ msgid ""
msgstr ""
"Der Inhalt dieser Datei wird dem Benutzer durch das Werkzeug zum Erstellen "
"von Fehlerberichten angezeigt, bevor es dem Benutzer ermöglicht, einen "
-"Fehlerbericht für das Paket an die Fehlerdatenbank zu verfassen. Diese Datei "
-"wird als F<usr/share/bug/package/presubj> in das Bauverzeichnis des Pakets "
-"installiert."
+"Fehlerbericht für das Paket an die Debian-Fehlerdatenbank zu verfassen. "
+"Diese Datei wird als F<usr/share/bug/package/presubj> in das Bauverzeichnis "
+"des Pakets installiert."
#. type: textblock
-#: dh_bugfiles:56
+#: dh_bugfiles:59
msgid ""
"Install F<debian/bug-*> files to ALL packages acted on when respective "
"F<debian/package.bug-*> files do not exist. Normally, F<debian/bug-*> will "
@@ -2942,27 +6331,27 @@ msgstr ""
"installiert."
#. type: textblock
-#: dh_bugfiles:126
+#: dh_bugfiles:135
msgid "F</usr/share/doc/reportbug/README.developers.gz>"
msgstr "F</usr/share/doc/reportbug/README.developers.gz>"
#. type: textblock
-#: dh_bugfiles:128 dh_lintian:61
+#: dh_bugfiles:137 dh_lintian:62
msgid "L<debhelper(1)>"
msgstr "L<debhelper(1)>"
#. type: textblock
-#: dh_bugfiles:134
+#: dh_bugfiles:143
msgid "Modestas Vainius <modestas@vainius.eu>"
msgstr "Modestas Vainius <modestas@vainius.eu>"
#. type: textblock
-#: dh_builddeb:5
+#: dh_builddeb:7
msgid "dh_builddeb - build Debian binary packages"
msgstr "dh_builddeb - baut binäre Debian-Pakete"
#. type: textblock
-#: dh_builddeb:14
+#: dh_builddeb:19
msgid ""
"B<dh_builddeb> [S<I<debhelper options>>] [B<--destdir=>I<directory>] [B<--"
"filename=>I<name>] [S<B<--> I<params>>]"
@@ -2971,16 +6360,18 @@ msgstr ""
"filename=>I<Name>] [S<B<--> I<Parameter>>]"
#. type: textblock
-#: dh_builddeb:18
+#: dh_builddeb:23
msgid ""
"B<dh_builddeb> simply calls L<dpkg-deb(1)> to build a Debian package or "
-"packages."
+"packages. It will also build dbgsym packages when L<dh_strip(1)> and "
+"L<dh_gencontrol(1)> have prepared them."
msgstr ""
"B<dh_builddeb> ruft einfach L<dpkg-deb(1)> auf, um ein oder mehrere Debian-"
-"Pakete zu bauen."
+"Pakete zu bauen. Es wird außerdem Dbgsym-Pakete bauen, wenn sie von "
+"L<dh_strip(1)> und L<dh_gencontrol(1)> vorbereitet wurden."
#. type: textblock
-#: dh_builddeb:21
+#: dh_builddeb:27
msgid ""
"It supports building multiple binary packages in parallel, when enabled by "
"DEB_BUILD_OPTIONS."
@@ -2991,6 +6382,15 @@ msgstr ""
#. type: textblock
#: dh_builddeb:30
msgid ""
+"When the I<Rules-Requires-Root> field is not (effectively) I<binary-"
+"targets>, B<dh_builddeb> will pass B<--root-owner-group> to L<dpkg-deb(1)>."
+msgstr ""
+"Wenn das Feld I<Rules-Requires-Root> nicht (tatsächlich) I<binary-targets> "
+"ist, wird B<dh_builddeb> B<--root-owner-group> an L<dpkg-deb(1)> übergeben."
+
+#. type: textblock
+#: dh_builddeb:40
+msgid ""
"Use this if you want the generated F<.deb> files to be put in a directory "
"other than the default of \"F<..>\"."
msgstr ""
@@ -2998,40 +6398,40 @@ msgstr ""
"Verzeichnis als dem vorgegebenen »F<..>« ablegen."
#. type: =item
-#: dh_builddeb:33
+#: dh_builddeb:43
msgid "B<--filename=>I<name>"
msgstr "B<--filename=>I<Name>"
#. type: textblock
-#: dh_builddeb:35
+#: dh_builddeb:45
msgid ""
"Use this if you want to force the generated .deb file to have a particular "
"file name. Does not work well if more than one .deb is generated!"
msgstr ""
"Benutzen Sie dies, falls Sie einen bestimmten Dateinamen für die erzeugte ."
"deb-Datei erzwingen wollen. Dies funktioniert nicht gut, wenn mehr als ein ."
-"deb erzeugt wird."
+"deb erzeugt wird!"
#. type: textblock
-#: dh_builddeb:40
+#: dh_builddeb:50
msgid "Pass I<params> to L<dpkg-deb(1)> when it is used to build the package."
msgstr ""
"I<Parameter> wird an L<dpkg-deb(1)> übergeben, wenn es zum Bauen des Pakets "
"benutzt wird."
#. type: =item
-#: dh_builddeb:43
+#: dh_builddeb:53
msgid "B<-u>I<params>"
msgstr "B<-u>I<Parameter>"
#. type: textblock
-#: dh_builddeb:45
+#: dh_builddeb:55
msgid ""
"This is another way to pass I<params> to L<dpkg-deb(1)>. It is deprecated; "
"use B<--> instead."
msgstr ""
"Dies ist eine weitere Möglichkeit, I<Parameter> an L<dpkg-deb(1)> zu "
-"übergeben. Sie ist missbilligt; benutzen Sie stattdessen B<-->."
+"übergeben. Sie ist veraltet; benutzen Sie stattdessen B<-->."
#. type: textblock
#: dh_clean:5
@@ -3039,122 +6439,157 @@ msgid "dh_clean - clean up package build directories"
msgstr "dh_clean - räumt die Bauverzeichnisse des Pakets auf"
#. type: textblock
-#: dh_clean:14
+#: dh_clean:17
msgid ""
"B<dh_clean> [S<I<debhelper options>>] [B<-k>] [B<-d>] [B<-X>I<item>] "
-"[S<I<file> ...>]"
+"[S<I<path> ...>]"
msgstr ""
"B<dh_clean> [S<I<Debhelper-Optionen>>] [B<-k>] [B<-d>] [B<-X>I<Element>] "
-"[S<I<Datei> …>]"
+"[S<I<Pfad> …>]"
+
+#. type: textblock
+#: dh_clean:21
+msgid ""
+"B<dh_clean> is a debhelper program that is responsible for cleaning up. It "
+"should be the last step of the B<clean> target and other debhelper commands "
+"generally assume that B<dh_clean> will clean up after them."
+msgstr ""
+"B<dh_clean> ist ein Debhelper-Programm, welches für das Aufräumen "
+"verantwortlich ist. Es sollte an letzter Stelle des B<clean>-Ziels stehen "
+"und die anderen Debhelper-Programme gehen im Allgemeinen davon aus, dass "
+"B<dh_clean> hinter ihnen aufräumt."
#. type: verbatim
-#: dh_clean:18
+#: dh_clean:25
#, no-wrap
msgid ""
-"B<dh_clean> is a debhelper program that is responsible for cleaning up after a\n"
-"package is built. It removes the package build directories, and removes some\n"
-"other files including F<debian/files>, and any detritus left behind by other\n"
-"debhelper commands. It also removes common files that should not appear in a\n"
-"Debian diff:\n"
+"It removes the package build directories, and removes some other files including\n"
+"F<debian/files>, and any detritus left behind by other debhelper commands. It\n"
+"also removes common files that should not appear in a Debian diff:\n"
" #*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp\n"
"\n"
msgstr ""
-"B<dh_clean> ist ein Debhelper-Programm, das für das Aufräumen nach dem Bauen\n"
-"eines Pakets zuständig ist. Es entfernt Bauverzeichnisse des Pakets, einige\n"
-"andere Dateien einschließlich F<debian/files> und irgendwelche Überbleibsel,\n"
-"die andere Debhelper-Befehle hinterlassen haben. Es entfernt außerdem häufige\n"
-"Dateien, die nicht in einem Debian-Diff erscheinen sollten:\n"
+"Es entfernt die Paketbauverzeichnisse und einige andere Dateien wie \n"
+"F<debian/files>, außerdem sämtlichen Müll, den andere Debhelper-Programme \n"
+"hinterlassen haben. Es löscht auch verschiedene Dateien, die nicht in \n"
+"einem Debian-Diff auftauchen sollten:\n"
" #*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp\n"
"\n"
#. type: textblock
-#: dh_clean:25
+#: dh_clean:30
msgid ""
"It does not run \"make clean\" to clean up after the build process. Use "
"L<dh_auto_clean(1)> to do things like that."
msgstr ""
-"Es führt nicht »make clean« aus, um nach dem Bauprozess aufzuräumen. "
+"Es führt jedoch nicht »make clean« aus, um nach dem Bauprozess aufzuräumen. "
"Benutzen Sie für solche Zwecke L<dh_auto_clean(1)>."
-#. type: textblock
-#: dh_clean:28
-msgid ""
-"B<dh_clean> should be the last debhelper command run in the B<clean> target "
-"in F<debian/rules>."
-msgstr ""
-"B<dh_clean> sollte der zuletzt ausgeführte Debhelper-Befehl im B<clean>-Ziel "
-"in F<debian/rules> sein."
-
#. type: =item
-#: dh_clean:35
+#: dh_clean:37
msgid "F<debian/clean>"
msgstr "F<debian/clean>"
#. type: textblock
-#: dh_clean:37
-msgid "Can list other files to be removed."
-msgstr "kann weitere Dateien auflisten, die zu entfernen sind."
+#: dh_clean:39
+msgid "Can list other paths to be removed."
+msgstr "kann weitere Pfade auflisten, die zu entfernen sind."
+
+#. type: textblock
+#: dh_clean:41
+msgid ""
+"Note that directories listed in this file B<must> end with a trailing "
+"slash. Any content in these directories will be removed as well."
+msgstr ""
+"Beachten Sie, dass Verzeichnisse, die in dieser Datei aufgeführt sind, mit "
+"einem Schrägstrich enden B<müssen>. Der Inhalt dieser Verzeichnisse wird "
+"ebenfalls entfernt."
+
+#. type: textblock
+#: dh_clean:44 dh_install:59 dh_installcatalogs:51 dh_installdeb:102
+#: dh_installdirs:40 dh_installdocs:48 dh_installexamples:43 dh_installinfo:36
+#: dh_installman:81 dh_installwm:36 dh_link:64
+msgid ""
+"Supports substitution variables in compat 13 and later as documented in "
+"L<debhelper(7)>."
+msgstr ""
+"unterstützt Ersetzungsvariablen in Kompatibilitätsstufe 13 oder neuer, wie "
+"in L<debhelper(7)> beschrieben."
#. type: =item
-#: dh_clean:45 dh_installchangelogs:63
+#: dh_clean:53 dh_installchangelogs:81
msgid "B<-k>, B<--keep>"
msgstr "B<-k>, B<--keep>"
#. type: textblock
-#: dh_clean:47
+#: dh_clean:55
msgid "This is deprecated, use L<dh_prep(1)> instead."
-msgstr "Dies ist missbilligt, benutzen Sie stattdessen L<dh_prep(1)>."
+msgstr "Dies ist veraltet, benutzen Sie stattdessen L<dh_prep(1)>."
+
+#. type: textblock
+#: dh_clean:57
+msgid "The option is removed in compat 12."
+msgstr "Die Option wurde in Kompatibilitätsstufe 12 entfernt."
#. type: =item
-#: dh_clean:49
+#: dh_clean:59
msgid "B<-d>, B<--dirs-only>"
msgstr "B<-d>, B<--dirs-only>"
#. type: textblock
-#: dh_clean:51
+#: dh_clean:61
msgid ""
"Only clean the package build directories, do not clean up any other files at "
"all."
msgstr "räumt nur die Bauverzeichnisse auf, keine weiteren Dateien."
#. type: =item
-#: dh_clean:54 dh_prep:30
+#: dh_clean:64 dh_prep:33
msgid "B<-X>I<item> B<--exclude=>I<item>"
msgstr "B<-X>I<Element> B<--exclude=>I<Element>"
#. type: textblock
-#: dh_clean:56
+#: dh_clean:66
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"deleted, even if they would normally be deleted. You may use this option "
"multiple times to build up a list of things to exclude."
msgstr ""
"schließt Dateien, die irgendwo im Dateinamen I<Element> enthalten, vom "
-"Löschen aus, sogar, wenn sie normalerweise gelöscht würden. Sie können diese "
-"Option mehrfach benutzen, um eine Liste von Dingen zu erstellen, die "
+"Löschen aus, auch dann, wenn sie normalerweise gelöscht würden. Sie können "
+"diese Option mehrfach benutzen, um eine Liste von Dingen zu erstellen, die "
"ausgeschlossen werden sollen."
#. type: =item
-#: dh_clean:60 dh_compress:64 dh_installdocs:103 dh_installexamples:46
-#: dh_installinfo:40 dh_installmanpages:44 dh_movefiles:55 dh_testdir:27
-msgid "I<file> ..."
-msgstr "<I<Datei> …"
+#: dh_clean:70
+msgid "I<path> ..."
+msgstr "I<Pfad> …>"
#. type: textblock
-#: dh_clean:62
-msgid "Delete these I<file>s too."
-msgstr "löscht diese <I<Datei>en ebenfalls."
+#: dh_clean:72
+msgid "Delete these I<path>s too."
+msgstr "löscht diese <I<Pfad>e ebenfalls."
+
+#. type: textblock
+#: dh_clean:74
+msgid ""
+"Note that directories passed as arguments B<must> end with a trailing "
+"slash. Any content in these directories will be removed as well."
+msgstr ""
+"Beachten Sie, dass Verzeichnisse, die als Argumente übergeben werden, mit "
+"einem Schrägstrich enden B<müssen>. Der Inhalt dieser Verzeichnisse wird "
+"ebenfalls entfernt."
#. type: textblock
#: dh_compress:5
msgid ""
"dh_compress - compress files and fix symlinks in package build directories"
msgstr ""
-"dh_compress - komprimiert Dateien und feste symbolische Verweise in "
+"dh_compress - komprimiert Dateien und korrigiert symbolische Links in "
"Bauverzeichnissen von Paketen"
#. type: textblock
-#: dh_compress:15
+#: dh_compress:19
msgid ""
"B<dh_compress> [S<I<debhelper options>>] [B<-X>I<item>] [B<-A>] "
"[S<I<file> ...>]"
@@ -3163,7 +6598,7 @@ msgstr ""
"[S<I<Datei> …>]"
#. type: textblock
-#: dh_compress:19
+#: dh_compress:23
msgid ""
"B<dh_compress> is a debhelper program that is responsible for compressing "
"the files in package build directories, and makes sure that any symlinks "
@@ -3172,11 +6607,11 @@ msgid ""
msgstr ""
"B<dh_compress> ist ein Debhelper-Programm, das für das Komprimieren von "
"Dateien in Bauverzeichnissen von Paketen zuständig ist und sicherstellt, "
-"dass jegliche symbolischen Verweise, die vor dem Komprimieren auf Dateien "
-"zeigten, aktualisiert werden, damit sie auf die neuen Dateien zeigen."
+"dass jegliche symbolischen Links, die vor dem Komprimieren zu den Dateien "
+"führten, aktualisiert werden, damit sie danach auf die neue Dateien zeigen."
#. type: textblock
-#: dh_compress:24
+#: dh_compress:28
msgid ""
"By default, B<dh_compress> compresses files that Debian policy mandates "
"should be compressed, namely all files in F<usr/share/info>, F<usr/share/"
@@ -3185,26 +6620,26 @@ msgid ""
"appear to be already compressed based on their extensions), and all "
"F<changelog> files. Plus PCF fonts underneath F<usr/share/fonts/X11/>"
msgstr ""
-"Standardmäßig komprimiert B<dh_compress> Dateien, bei denen dies die Debian-"
-"Richtlinie anordnet und zwar alle Dateien in F<usr/share/info>, F<usr/share/"
-"man>, Dateien in F<usr/share/doc>, die größer als 4k sind (außer der "
-"F<copyright>-Datei, F<.html> und andere Web-Dateien, Bilddateien und "
-"Dateien, die basierend auf ihren Endungen bereits komprimiert zu sein "
-"scheinen und alle F<changelog>-Dateien, zusätzlich PCF-Schriften unterhalb "
-"F<usr/share/fonts/X11/>."
+"Standardmäßig komprimiert B<dh_compress> diejenigen Dateien, bei denen dies "
+"die Debian-Richtlinie anordnet, nämlich alle Dateien in F<usr/share/info>, "
+"F<usr/share/man>, Dateien in F<usr/share/doc>, die größer als 4k sind (außer "
+"der F<copyright>-Datei, F<.html> und andere Web-Dateien, Bilddateien und "
+"Dateien, die ihren Endungen nach bereits komprimiert sind) und alle "
+"F<changelog>-Dateien, zusätzlich PCF-Schriften unterhalb F<usr/share/fonts/"
+"X11/>."
#. type: =item
-#: dh_compress:35
+#: dh_compress:39
msgid "debian/I<package>.compress"
msgstr "debian/I<Paket>.compress"
#. type: textblock
-#: dh_compress:37
+#: dh_compress:41
msgid "These files are deprecated."
-msgstr "Diese Dateien sind missbilligt."
+msgstr "Diese Dateien sind veraltet."
#. type: textblock
-#: dh_compress:39
+#: dh_compress:43
msgid ""
"If this file exists, the default files are not compressed. Instead, the file "
"is ran as a shell script, and all filenames that the shell script outputs "
@@ -3218,11 +6653,11 @@ msgstr ""
"das Shell-Skript ausgibt werden komprimiert. Das Shell-Skript wird aus dem "
"Bauverzeichnis des Pakets ausgeführt. Beachten Sie jedoch, dass es im "
"Allgemeinen eine wesentlich bessere Idee ist, B<-X> zu benutzen; Sie sollten "
-"nur eine F<debian/Paket.compress>-Datei verwenden, wenn Sie dies wirklich "
+"nur dann eine F<debian/Paket.compress>-Datei verwenden, wenn Sie es wirklich "
"müssen."
#. type: textblock
-#: dh_compress:54
+#: dh_compress:58
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"compressed. For example, B<-X.tiff> will exclude TIFF files from "
@@ -3235,7 +6670,7 @@ msgstr ""
"eine Liste von Dingen zu erstellen, die ausgeschlossen werden sollen."
#. type: textblock
-#: dh_compress:61
+#: dh_compress:65
msgid ""
"Compress all files specified by command line parameters in ALL packages "
"acted on."
@@ -3243,62 +6678,166 @@ msgstr ""
"komprimiert alle durch Befehlszeilenparameter angegebenen Dateien in ALLEN "
"Paketen, auf die es sich auswirken wird."
+#. type: =item
+#: dh_compress:68 dh_installdocs:184 dh_installexamples:89 dh_installinfo:60
+#: dh_installmanpages:47 dh_movefiles:58 dh_testdir:30
+msgid "I<file> ..."
+msgstr "<I<Datei> …"
+
#. type: textblock
-#: dh_compress:66
+#: dh_compress:70
msgid "Add these files to the list of files to compress."
msgstr ""
-"fügt diese Dateien zu der Liste der Dateien hinzu, die komprimiert werden"
+"fügt diese Dateien zu der Liste der Dateien hinzu, die komprimiert werden."
#. type: =head1
-#: dh_compress:70 dh_perl:61 dh_strip:74 dh_usrlocal:55
+#: dh_compress:74 dh_perl:65 dh_strip:133 dh_usrlocal:66
msgid "CONFORMS TO"
msgstr "KONFORM ZU"
#. type: textblock
-#: dh_compress:72
+#: dh_compress:76
msgid "Debian policy, version 3.0"
msgstr "Debian-Richtlinie, Version 3.0"
#. type: textblock
-#: dh_desktop:5
-msgid "dh_desktop - deprecated no-op"
-msgstr "dh_desktop - missbilligt, Leerbefehl"
+#: dh_dwz:5
+msgid "dh_dwz - optimize DWARF debug information in ELF binaries via dwz"
+msgstr ""
+"dh_dwz - optimiert DWARF-Fehlersuchinformationen in ELF-Binärdateien über dwz"
#. type: textblock
-#: dh_desktop:14
-msgid "B<dh_desktop> [S<I<debhelper options>>]"
-msgstr "B<dh_desktop> [S<I<Dephelper-Optionen>>]"
+#: dh_dwz:18
+msgid "B<dh_dwz> [S<I<debhelper options>>] [B<-X>I<item>] [S<B<--> I<params>>]"
+msgstr ""
+"B<dh_dwz> [S<I<Debhelper-Optionen>>] [B<-X>I<Element>] [S<B<--> "
+"I<Parameter>>]"
#. type: textblock
-#: dh_desktop:18
+#: dh_dwz:22
msgid ""
-"B<dh_desktop> was a debhelper program that registers F<.desktop> files. "
-"However, it no longer does anything, and is now deprecated."
+"B<dh_dwz> is a debhelper program that will optimize the (uncompressed) size "
+"of the DWARF debug information in ELF binaries. It does so by running "
+"L<dwz(1)> on all the ELF binaries in the package."
msgstr ""
-"B<dh_desktop> war ein Debhelper-Programm, das F<.desktop>-Dateien "
-"registriert. Es tut jedoch nichts mehr und ist nun missbilligt."
+"B<dh_dwz> ist ein Debhelper-Programm, das die (unkomprimierte) Größe von "
+"DWARF-Fehlersuchinformationen in ELF-Binärdateien optimiert. Dazu lässt es "
+"L<dwz(1)> über alle ELF-Binärdateien im Paket laufen."
+
+#. type: =item
+#: dh_dwz:30
+msgid "B<--dwz-multifile>, B<--no-dwz-multifile>"
+msgstr "B<--dwz-multifile>, B<--no-dwz-multifile>"
#. type: textblock
-#: dh_desktop:21
+#: dh_dwz:32
msgid ""
-"If a package ships F<desktop> files, they just need to be installed in the "
-"correct location (F</usr/share/applications>) and they will be registered by "
-"the appropriate tools for the corresponding desktop environments."
+"Whether L<dwz(1)> should generate a I<multifile> from the ELF binaries 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."
msgstr ""
-"Falls ein Paket F<desktop>-Dateien mitbringt, müssen sie nur an der "
-"richtigen Stelle installiert werden (F</usr/share/applications>) und sie "
-"werden durch die dazugehörigen Werkzeuge der entsprechenden Desktop-Umgebung "
-"registriert."
+"Gibt an, ob L<dwz(1)> eine I<Mehrfachdatei> aus den ELF-Binärdateien im "
+"selben Paket erstellen soll. Falls aktiviert, wird B<dh_dwz>, falls ein "
+"Paket mindestens zwei ELF-Binärdateien ausliefert, L<dwz(1)> anweisen, eine "
+"Mehrfachdatei für das Paket zu erstellen."
#. type: textblock
-#: dh_desktop:33 dh_icons:73 dh_scrollkeeper:30
-msgid "L<debhelper>"
-msgstr "L<debhelper>"
+#: dh_dwz:37
+msgid ""
+"By default, B<dh_dwz> will attempt to create a multifile but will continue "
+"without if L<dwz(1)> does not 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 ""
+"Standardmäßig wird B<dh_dwz> versuchen, eine Mehrfachdatei zu erstellen, es "
+"wird jedoch ohne sie fortfahren, falls L<dwz(1)> keine erstellt (aber "
+"dennoch erfolgreich ist). Dies kommt üblicherweise vor, wenn die "
+"Fehlersuchdateien keine Fehlersuchsymbole enthalten (z. B. ein fehlendes -g "
+"für den Compiler) oder wenn die Fehlersuchsymbole komprimiert sind (siehe "
+"Debian-Fehlerbericht #931891). Falls B<--dwz-multifile> übergeben wurde, "
+"wird B<dh_dwz> mit einem Fehler abbrechen, falls L<dwz(1)> keine "
+"Mehrfachdatei erstellt."
+
+#. 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 ""
+"Beachten Sie, dass diese Optionen möglicherweise nicht funktionieren wird, "
+"falls ein Paket mehr ELF-Binärdateien enthält als auf eine einzige "
+"Befehlszeile passen. Falls dies zum Problem wird, geben Sie bitte B<--no-dwz-"
+"multifile> an, um diese Angelegenheit zu umgehen."
+
+#. type: textblock
+#: dh_dwz:49
+msgid ""
+"The generated multifile will be compressed with B<objcopy --compress-debug-"
+"sections>."
+msgstr ""
+"Die erstellte Mehrfachdatei wird mit B<objcopy --compress-debug-sections> "
+"komprimiert."
+
+#. 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 ""
+"Beachten Sie bei B<udeb>-Paketen: B<dh_dwz> wird niemals Mehrfachdateien für "
+"B<udeb>-Pakete erzeugen. Es wird weiterhin B<dwz> benutzen, um die Größe der "
+"Fehlersuchdateien zu verringern, falls es welche findet."
+
+#. 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 "
+"things to exclude."
+msgstr ""
+"schließt Dateien, die irgendwo in ihrem Dateinamen genanntes I<Element> "
+"enthalten, vom Entfernen der Symbole aus. Sie können diese Option mehrfach "
+"benutzen, um eine Liste auszuschließender Dinge zu erstellen."
+
+#. type: textblock
+#: 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 ""
+"übergibt I<Parameter> an L<dwz(1)>, wenn es ELF-Binärdateien verarbeitet. "
+"Dies ist meist nützlich, um speicherbezogene Parameter zu setzen (z.B. -l "
+"und -L)."
+
+#. type: textblock
+#: 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 "
+"\"Binaries\")."
+msgstr ""
+"Falls die Umgebungsvariable B<DEB_BUILD_OPTIONS> B<nostrip> enthält, werden "
+"getreu der Debian-Richlinie (Abschnitt 10.1. »Binaries«) keine Symbole "
+"entfernt."
#. type: textblock
-#: dh_desktop:39 dh_scrollkeeper:36
-msgid "Ross Burton <ross@burtonini.com>"
-msgstr "Ross Burton <ross@burtonini.com>"
+#: 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 "
+"contains B<nostrip>. This is because B<nostrip> is often used to optimize "
+"build times (e.g. for \"build and test\"-cycles) rather than optimizing for "
+"size."
+msgstr ""
+"Obwohl dieses Werkzeug aus technischer Sicht keine Fehlersuchinformationen "
+"aus Binärdateien entfernt, wird es dennoch übersprungen, wenn die "
+"Umgebungsvariable B<DEB_BUILD_OPTIONS> B<nostrip> enthält. Dies rührt daher, "
+"dass B<nostrip> oft zum Optimieren der Bauzeit benutzt wird (z. B. für »Bau- "
+"und Test«-Zyklen), anstatt sie größenmäßig zu optimieren."
#. type: textblock
#: dh_fixperms:5
@@ -3307,12 +6846,12 @@ msgstr ""
"dh_fixperms - korrigiert Zugriffsrechte von Dateien in Bauverzeichnissen"
#. type: textblock
-#: dh_fixperms:15
+#: dh_fixperms:18
msgid "B<dh_fixperms> [S<I<debhelper options>>] [B<-X>I<item>]"
msgstr "B<dh_fixperms> [S<I<Debhelper-Optionen>>] [B<-X>I<Element>]"
#. type: textblock
-#: dh_fixperms:19
+#: dh_fixperms:22
msgid ""
"B<dh_fixperms> is a debhelper program that is responsible for setting the "
"permissions of files and directories in package build directories to a sane "
@@ -3324,35 +6863,45 @@ msgstr ""
"erfüllt."
#. type: textblock
-#: dh_fixperms:23
+#: dh_fixperms:26
msgid ""
"B<dh_fixperms> makes all files in F<usr/share/doc> in the package build "
"directory (excluding files in the F<examples/> directory) be mode 644. It "
-"also changes the permissions of all man pages to mode 644. It makes all "
-"files be owned by root, and it removes group and other write permission from "
-"all files. It removes execute permissions from any libraries, headers, Perl "
-"modules, or desktop files that have it set. It makes all files in the "
-"standard F<bin> and F<sbin> directories, F<usr/games/> and F<etc/init.d> "
-"executable (since v4). Finally, it removes the setuid and setgid bits from "
-"all files in the package."
+"also changes the permissions of all man pages to mode 644. It removes group "
+"and other write permission from all files. It removes execute permissions "
+"from any libraries, headers, Perl modules, or desktop files that have it "
+"set. It makes all files in the standard F<bin> and F<sbin> directories, "
+"F<usr/games/> and F<etc/init.d> executable (since v4). Finally, it removes "
+"the setuid and setgid bits from all files in the package."
msgstr ""
"B<dh_fixperms> gibt allen Dateien in F<usr/share/doc> im Bauverzeichnis des "
"Pakets (ausgenommen Dateien im Verzeichnis F<examples/>) die Rechte-Bits "
"644. Es ändert außerdem die Rechte-Bits aller Handbuchseiten auf 644. Es "
-"gibt Root die Besitzrechte und entfernt Schreibrechte von Gruppen und "
-"Anderen von allen Dateien. Es entfernt Ausführungsrechte von jeglichen "
-"Bibliotheken, Headern, Perl-Modulen oder Desktop-Dateien, bei denen sie "
-"gesetzt sind. Es macht alle Dateien in den Verzeichnissen F<bin>, F<sbin>, "
-"<usr/games/> und F<etc/init.d> ausführbar (seit v4). Am Ende entfernt es die "
-"Setuid- und Setgid-Bits von allen Dateien im Paket."
+"entfernt Schreibrechte von Gruppen und Anderen von allen Dateien. Es "
+"entfernt Ausführungsrechte von jeglichen Bibliotheken, Headern, Perl-Modulen "
+"oder Desktop-Dateien, bei denen sie gesetzt sind. Es macht alle Dateien in "
+"den Verzeichnissen F<bin>, F<sbin>, <usr/games/> und F<etc/init.d> "
+"ausführbar (seit v4). Am Ende entfernt es die Setuid- und Setgid-Bits von "
+"allen Dateien im Paket."
-#. type: =item
+#. type: textblock
#: dh_fixperms:36
+msgid ""
+"When the I<Rules-Requires-Root> field has the (effective) value of I<binary-"
+"targets>, B<dh_fixperms> will also reset the ownership of all paths to "
+"\"root:root\"."
+msgstr ""
+"Wenn das Feld I<Rules-Requires-Root> den (tatsächlichen) Wert von I<binary-"
+"targets> hat, wird B<dh_fixperms> auch den Eigentümer an allen Pfaden auf "
+"»root:root« zurücksetzen."
+
+#. type: =item
+#: dh_fixperms:44
msgid "B<-X>I<item>, B<--exclude> I<item>"
msgstr "B<-X>I<Element>, B<--exclude> I<Element>"
#. type: textblock
-#: dh_fixperms:38
+#: dh_fixperms:46
msgid ""
"Exclude files that contain I<item> anywhere in their filename from having "
"their permissions changed. You may use this option multiple times to build "
@@ -3364,94 +6913,17 @@ msgstr ""
"sollen."
#. type: textblock
-#: dh_gconf:5
-msgid "dh_gconf - install GConf defaults files and register schemas"
-msgstr "dh_gconf - installiert Standard-GConf-Dateien und registriert Schemen"
-
-#. type: textblock
-#: dh_gconf:14
-msgid "B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>]"
-msgstr "B<dh_gconf> [S<I<Debhelper-Optionen>>] [B<--priority=>I<Priorität>]"
-
-#. type: textblock
-#: dh_gconf:18
-msgid ""
-"B<dh_gconf> is a debhelper program that is responsible for installing GConf "
-"defaults files and registering GConf schemas."
-msgstr ""
-"B<dh_gconf> ist ein Debhelper-Programm, das für die Installation der "
-"Standard-GConf-Dateien und das Registrieren der GConf-Schemen zuständig ist."
-
-#. type: textblock
-#: dh_gconf:21
-msgid ""
-"An appropriate dependency on gconf2 will be generated in B<${misc:Depends}>."
-msgstr ""
-"Eine geeignete Abhängigkeit zu gconf2 wird in B<${misc:Depends}> erzeugt."
-
-#. type: =item
-#: dh_gconf:27
-msgid "debian/I<package>.gconf-defaults"
-msgstr "debian/I<Paket>.gconf-defaults"
-
-#. type: textblock
-#: dh_gconf:29
-msgid ""
-"Installed into F<usr/share/gconf/defaults/10_package> in the package build "
-"directory, with I<package> replaced by the package name."
-msgstr ""
-"installiert in F<usr/share/gconf/defaults/10_package> im Bauverzeichnis des "
-"Pakets, wobei I<Paket> durch den Namen des Pakets ersetzt wird."
-
-#. type: =item
-#: dh_gconf:32
-msgid "debian/I<package>.gconf-mandatory"
-msgstr "debian/I<Paket>.gconf-mandatory"
-
-#. type: textblock
-#: dh_gconf:34
-msgid ""
-"Installed into F<usr/share/gconf/mandatory/10_package> in the package build "
-"directory, with I<package> replaced by the package name."
-msgstr ""
-"installiert in F<usr/share/gconf/mandatory/10_package> im Bauverzeichnis des "
-"Pakets, wobei I<Paket> durch den Namen des Pakets ersetzt wird."
-
-#. type: =item
-#: dh_gconf:43
-msgid "B<--priority> I<priority>"
-msgstr "B<--priority> I<Priorität>"
-
-#. type: textblock
-#: dh_gconf:45
-msgid ""
-"Use I<priority> (which should be a 2-digit number) as the defaults priority "
-"instead of B<10>. Higher values than ten can be used by derived "
-"distributions (B<20>), CDD distributions (B<50>), or site-specific packages "
-"(B<90>)."
-msgstr ""
-"benutzt I<Priorität> (was eine zweistellige Zahl sein sollte) als "
-"Standardpriorität an Stelle von B<10>. Höhere Werte als zehn können durch "
-"abgeleitete Distributionen (B<20>), CDD-Distributionen (B<50>) oder Site-"
-"spezifische Pakete (B<90>) verwandt werden."
-
-#. type: textblock
-#: dh_gconf:109
-msgid "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
-msgstr "Ross Burton <ross@burtonini.com>, Josselin Mouette <joss@debian.org>"
-
-#. type: textblock
#: dh_gencontrol:5
msgid "dh_gencontrol - generate and install control file"
-msgstr "dh_gencontrol - erzeugt und installiert die Datei »control«"
+msgstr "dh_gencontrol - erzeugt und installiert die Steuerdatei »control«"
#. type: textblock
-#: dh_gencontrol:14
+#: dh_gencontrol:18
msgid "B<dh_gencontrol> [S<I<debhelper options>>] [S<B<--> I<params>>]"
msgstr "B<dh_gencontrol> [S<I<Debhelper-Optionen>>] [S<B<--> I<Parameter>>]"
#. type: textblock
-#: dh_gencontrol:18
+#: dh_gencontrol:22
msgid ""
"B<dh_gencontrol> is a debhelper program that is responsible for generating "
"control files, and installing them into the I<DEBIAN> directory with the "
@@ -3462,34 +6934,51 @@ msgstr ""
"das Verzeichnis I<DEBIAN> installiert."
#. type: textblock
-#: dh_gencontrol:22
+#: dh_gencontrol:26
msgid ""
"This program is merely a wrapper around L<dpkg-gencontrol(1)>, which calls "
-"it once for each package being acted on, and passes in some additional "
-"useful flags."
+"it once for each package being acted on (plus related dbgsym packages), and "
+"passes in some additional useful flags."
msgstr ""
-"Dieses Programm ist bloß ein Wrapper um L<dpkg-gencontrol(1)>, das es einmal "
-"für jedes Paket, auf das es sich auswirkt, aufruft und einige zusätzliche "
-"nützliche Schalter übergibt."
+"Dieses Programm ist bloß ein Wrapper um L<dpkg-gencontrol(1)>, der es einmal "
+"für jedes Paket, auf das es sich auswirkt (plus nötige Dbgsym-Pakete), "
+"aufruft und einige zusätzliche nützliche Schalter übergibt."
#. type: textblock
-#: dh_gencontrol:32
+#: dh_gencontrol:30
+msgid ""
+"B<Note> that if you use B<dh_gencontrol>, you must also use "
+"L<dh_builddeb(1)> to build the packages. Otherwise, your build may fail to "
+"build as B<dh_gencontrol> (via L<dpkg-gencontrol(1)>) declares which "
+"packages are built. As debhelper automatically generates dbgsym packages, "
+"it some times adds additional packages, which will be built by "
+"L<dh_builddeb(1)>."
+msgstr ""
+"B<Beachten Sie>, dass Sie, falls Sie B<dh_gencontrol> verwenden, zum Bauen "
+"der Pakete auch L<dh_builddeb(1)> verwenden müssen. Andernfalls könnte Ihr "
+"Bauen fehlschlagen, da B<dh_gencontrol> (über L<dpkg-gencontrol(1)>) "
+"deklariert, welche Pakete gebaut werden. Da Debhelper Dbgsym-Pakete "
+"automatisch erzeugt, fügt es manchmal zusätzliche Pakete hinzu, die durch "
+"L<dh_builddeb(1)> gebaut werden."
+
+#. type: textblock
+#: dh_gencontrol:44
msgid "Pass I<params> to L<dpkg-gencontrol(1)>."
msgstr "übergibt I<Parameter> an L<dpkg-gencontrol(1)>"
#. type: =item
-#: dh_gencontrol:34
+#: dh_gencontrol:46
msgid "B<-u>I<params>, B<--dpkg-gencontrol-params=>I<params>"
msgstr "B<-u>I<Parameter>, B<--dpkg-gencontrol-params=>I<Parameter>"
#. type: textblock
-#: dh_gencontrol:36
+#: dh_gencontrol:48
msgid ""
"This is another way to pass I<params> to L<dpkg-gencontrol(1)>. It is "
"deprecated; use B<--> instead."
msgstr ""
"Dies ist eine weitere Möglichkeit, I<Parameter> an L<dpkg-gencontrol(1)> zu "
-"übergeben. Sie ist missbilligt; nutzen Sie stattdessen B<-->."
+"übergeben. Sie ist veraltet; nutzen Sie stattdessen B<-->."
#. type: textblock
#: dh_icons:5
@@ -3497,12 +6986,12 @@ msgid "dh_icons - Update caches of Freedesktop icons"
msgstr "dh_icons - aktualisiert die Zwischenspeicher von Freedesktop-Symbolen"
#. type: textblock
-#: dh_icons:15
+#: dh_icons:18
msgid "B<dh_icons> [S<I<debhelper options>>] [B<-n>]"
msgstr "B<dh_icons> [S<I<Debhelper-Optionen>>] [B<-n>]"
#. type: textblock
-#: dh_icons:19
+#: dh_icons:22
msgid ""
"B<dh_icons> is a debhelper program that updates caches of Freedesktop icons "
"when needed, using the B<update-icon-caches> program provided by GTK+2.12. "
@@ -3512,38 +7001,44 @@ msgid ""
msgstr ""
"B<dh_icons> ist ein Debhelper-Programm, das die Zwischenspeicher von "
"Freedesktop-Symbolen aktualisiert, wenn dies nötig ist. Es benutzt das durch "
-"GTK+2.12 bereitgestellte Programm B<update-icon-caches>. Derzeit handhabt "
-"das Programm nicht die Installation der Dateien, obwohl es dies später "
-"vielleicht einmal tun könnte, daher sollte es ausgeführt werden, nachdem die "
-"Symbole in den Paketbauverzeichnissen installiert wurden."
+"GTK+2.12 bereitgestellte Programm B<update-icon-caches>. Derzeit kümmert "
+"sich das Programm nicht um die Installation der Dateien, obwohl es dies "
+"später vielleicht einmal tun könnte; daher sollte es ausgeführt werden, "
+"nachdem die Symbole in den Paketbauverzeichnissen installiert wurden."
#. type: textblock
-#: dh_icons:25
+#: dh_icons:28
msgid ""
"It takes care of adding maintainer script fragments to call B<update-icon-"
"caches> for icon directories. (This is not done for gnome and hicolor icons, "
"as those are handled by triggers.) These commands are inserted into the "
"maintainer scripts by L<dh_installdeb(1)>."
msgstr ""
-"Es nimmt Rücksicht auf das Hinzufügen von Betreuerskripten, um B<update-icon-"
-"caches> für Symbolverzeichnisse aufzurufen. (Dies wird nicht für GNOME- und "
-"Hicolor-Symbole getan, da diese von Auslösern gehandhabt werden.) Diese "
-"Befehle werden durch L<dh_installdeb(1)> in die Betreuerskripte eingefügt."
+"Worum es sich kümmert ist das Hinzufügen von Beteruerskriptfragmenten, um "
+"B<update-icon-caches> für Symbolverzeichnisse aufzurufen. (Dies gilt nicht "
+"für GNOME- und Hicolor-Symbole, da diese von Auslösern gehandhabt werden.) "
+"Diese Befehle werden durch L<dh_installdeb(1)> in die Betreuerskripte "
+"eingefügt."
#. type: =item
-#: dh_icons:34 dh_installcatalogs:53 dh_installdebconf:65 dh_installemacsen:57
-#: dh_installinit:63 dh_installmenu:45 dh_installmodules:42 dh_installudev:49
-#: dh_installwm:44 dh_makeshlibs:77 dh_usrlocal:43
-msgid "B<-n>, B<--noscripts>"
-msgstr "B<-n>, B<--noscripts>"
+#: dh_icons:37 dh_installcatalogs:60 dh_installdebconf:68 dh_installemacsen:60
+#: dh_installinit:81 dh_installinitramfs:47 dh_installmenu:48
+#: dh_installmodules:45 dh_installwm:51 dh_makeshlibs:147 dh_usrlocal:54
+msgid "B<-n>, B<--no-scripts>"
+msgstr "B<-n>, B<--no-scripts>"
#. type: textblock
-#: dh_icons:36
+#: dh_icons:39
msgid "Do not modify maintainer scripts."
msgstr "Es werden keine Betreuerskripte geändert."
#. type: textblock
-#: dh_icons:79
+#: dh_icons:77
+msgid "L<debhelper>"
+msgstr "L<debhelper>"
+
+#. type: textblock
+#: dh_icons:83
msgid ""
"Ross Burton <ross@burtonini.com> Jordi Mallach <jordi@debian.org> Josselin "
"Mouette <joss@debian.org>"
@@ -3557,7 +7052,7 @@ msgid "dh_install - install files into package build directories"
msgstr "dh_install - installiert Dateien in Bauverzeichnisse von Paketen"
#. type: textblock
-#: dh_install:15
+#: dh_install:17
msgid ""
"B<dh_install> [B<-X>I<item>] [B<--autodest>] [B<--sourcedir=>I<dir>] "
"[S<I<debhelper options>>] [S<I<file|dir> ... I<destdir>>]"
@@ -3566,7 +7061,7 @@ msgstr ""
"[S<I<Debhelper-Optionen>>] [S<I<Datei|Verz> … I<Ziel>>]"
#. type: textblock
-#: dh_install:19
+#: dh_install:21
msgid ""
"B<dh_install> is a debhelper program that handles installing files into "
"package build directories. There are many B<dh_install>I<*> commands that "
@@ -3577,16 +7072,16 @@ msgid ""
"is needed. It is a replacement for the old B<dh_movefiles> command."
msgstr ""
"B<dh_install> ist ein Debhelper-Programm, das die Installation von Paketen "
-"in Bauverzeichnisse handhabt. Es gibt viele B<dh_install>I<*>-Befehle, die "
-"die Installation spezieller Dateitypen, wie Dokumentation, Beispiele, "
-"Handbuchseiten und so weiter handhaben und sie sollten, wenn möglich, "
-"benutzt werden, da sie oft zusätzliche Informationen für diese besonderen "
-"Aufgaben mitbringen. Ergänzend ist B<dh_install> nützlich, um alles andere "
-"zu installieren, für das keine zusätzliche Logik benötigt wird. Es ist ein "
+"in Bauverzeichnisse handhabt. Es gibt viele B<dh_install>I<*>-Befehle für "
+"die die Installation spezieller Dateitypen, wie Dokumentation, Beispiele, "
+"Handbuchseiten und so weiter und sie sollten nach Möglichkeit benutzt "
+"werden, da sie oft zusätzliche Programmlogik für diese besonderen Aufgaben "
+"mitbringen. Ergänzend eignet sich B<dh_install>, um alles andere zu "
+"installieren, für das keine zusätzliche Logik benötigt wird. Es ist ein "
"Ersatz für den alten Befehl B<dh_movefiles>."
#. type: textblock
-#: dh_install:27
+#: dh_install:29
msgid ""
"This program may be used in one of two ways. If you just have a file or two "
"that the upstream Makefile does not install for you, you can run "
@@ -3598,24 +7093,18 @@ msgid ""
msgstr ""
"Dieses Programm kann auf eine von zwei Arten benutzt werden. Falls Sie nur "
"eine oder zwei Dateien haben, die das Makefile der Originalautoren nicht für "
-"Sie installiert, können Sie B<dh_install> dafür ausführen, um diese an Ort "
-"und Stelle zu verschieben. Zum Anderen könnten Sie ein großes Paket haben, "
-"das mehrere Binärpakete baut. Sie können das F<Makefile> der Originalautoren "
-"nehmen, um alles in F<debian/tmp> zu installieren und dann B<dh_install> "
-"verwenden, um dann Dateien und Verzeichnisse in ihre passenden "
+"Sie installiert, können Sie B<dh_install> darüberlaufen lassen, um diese an "
+"Ort und Stelle zu verschieben. Vielleicht haben Sie auch ein großes Paket, "
+"das mehrere Binärpakete baut. Sie können dann das F<Makefile> der "
+"Originalautoren nehmen, um alles in F<debian/tmp> zu installieren und dann "
+"B<dh_install> verwenden, um dann Dateien und Verzeichnisse in ihre passenden "
"Paketbauverzeichnisse zu kopieren."
#. type: textblock
-#: dh_install:34
-#, fuzzy
-#| msgid ""
-#| "From debhelper compatibility level 7 on, B<dh_install> will fall back to "
-#| "looking in F<debian/tmp> for files, if it doesn't find them in the "
-#| "current directory (or whereever you've told it to look using B<--"
-#| "sourcedir>)."
+#: dh_install:36
msgid ""
"From debhelper compatibility level 7 on, B<dh_install> will fall back to "
-"looking in F<debian/tmp> for files, if it doesn't find them in the current "
+"looking in F<debian/tmp> for files, if it does not find them in the current "
"directory (or wherever you've told it to look using B<--sourcedir>)."
msgstr ""
"Ab Debhelper-Kompatibilitätsstufe 7 wird B<dh_install> in F<debian/tmp> nach "
@@ -3623,12 +7112,12 @@ msgstr ""
"auch immer Sie ihm mit B<--sourcedir> aufgetragen haben, zu suchen)."
#. type: =item
-#: dh_install:42
+#: dh_install:44
msgid "debian/I<package>.install"
msgstr "debian/I<Paket>.install"
#. type: textblock
-#: dh_install:44
+#: dh_install:46
msgid ""
"List the files to install into each package and the directory they should be "
"installed to. The format is a set of lines, where each line lists a file or "
@@ -3636,7 +7125,7 @@ msgid ""
"be installed in. The name of the files (or directories) to install should be "
"given relative to the current directory, while the installation directory is "
"given relative to the package build directory. You may use wildcards in the "
-"names of the files to install (in v3 mode and above)."
+"names of the files to install."
msgstr ""
"Listet die Dateien auf, die in jedes Paket installiert werden und das "
"Verzeichnis, in das sie installiert werden sollen. Das Format ist ein Satz "
@@ -3646,10 +7135,10 @@ msgstr ""
"zum aktuellen Verzeichnis angegeben werden, während das "
"Installationsverzeichnis relativ zum Bauverzeichnis des Pakets angegeben "
"wird. Sie können Platzhalter in den Namen der zu installierenden Dateien "
-"benutzen (im Modus v3 und darüber)."
+"benutzen."
#. type: textblock
-#: dh_install:52
+#: dh_install:54
msgid ""
"Note that if you list exactly one filename or wildcard-pattern on a line by "
"itself, with no explicit destination, then B<dh_install> will automatically "
@@ -3661,80 +7150,70 @@ msgstr ""
"nicht gesetzt ist."
#. type: =item
-#: dh_install:63
-msgid "B<--list-missing>"
-msgstr "B<--list-missing>"
+#: dh_install:62
+msgid "debian/not-installed"
+msgstr "debian/not-installed"
#. type: textblock
-#: dh_install:65
+#: dh_install:64
msgid ""
-"This option makes B<dh_install> keep track of the files it installs, and "
-"then at the end, compare that list with the files in the source directory. "
-"If any of the files (and symlinks) in the source directory were not "
-"installed to somewhere, it will warn on stderr about that."
+"Used with the deprecated B<--list-missing> and B<--fail-missing> options. "
+"Please refer to L<dh_missing(1)> for the documentation of this file."
msgstr ""
-"Diese Option veranlasst B<dh_install>, aufzuzeichnen, welche Dateien es "
-"installiert und diese Liste am Ende mit den Dateien im Quellverzeichnis zu "
-"vergleichen. Falls irgendwelche der Dateien (oder symbolischen Verweise) "
-"nicht irgendwo im Quellverzeichnis installiert wurden, wird es diesbezüglich "
-"auf der Standardfehlerausgabe warnen."
+"wird zusammen mit den missbilligten Optionen B<--list-missing> und B<--fail-"
+"missing> benutzt. Die Dokumentation dieser Datei finden Sie unter "
+"L<dh_missing(1)>."
-#. type: textblock
-#: dh_install:70
-msgid ""
-"This may be useful if you have a large package and want to make sure that "
-"you don't miss installing newly added files in new upstream releases."
-msgstr ""
-"Dies könnte nützlich sein, falls Sie ein großes Paket haben und "
-"sicherstellen möchten, dass Sie keine neu hinzugefügten Dateien in neuen "
-"Veröffentlichungen der Originalautoren übersehen."
+#. type: =item
+#: dh_install:73
+msgid "B<--list-missing>"
+msgstr "B<--list-missing>"
#. type: textblock
-#: dh_install:73
+#: dh_install:75
msgid ""
-"Note that files that are excluded from being moved via the B<-X> option are "
-"not warned about."
+"B<Deprecated>: Please use B<dh_missing --list-missing> instead. If you use "
+"this option, B<dh_install> will call B<dh_missing> with that option after it "
+"has processed all the files. Please see L<dh_missing(1)> for the "
+"documentation of this option."
msgstr ""
-"Beachten Sie, dass nicht bezüglich Dateien gewarnt wird, die mittels der "
-"Option B<-X> ausgeschlossen wurden."
+"B<Missbilligt>: Bitte verwenden Sie stattdessen B<dh_missing --list-"
+"missing>. Falls Sie diese Option verwenden, wird B<dh_install> B<dh_missing> "
+"mit dieser Option aufrufen, nachdem es alle Dateien verarbeitet hat. Die "
+"Dokumentation dieser Option finden Sie unter L<dh_missing(1)>."
#. type: =item
-#: dh_install:76
+#: dh_install:82
msgid "B<--fail-missing>"
msgstr "B<--fail-missing>"
#. type: textblock
-#: dh_install:78
-msgid ""
-"This option is like B<--list-missing>, except if a file was missed, it will "
-"not only list the missing files, but also fail with a nonzero exit code."
-msgstr ""
-"Diese Option ist wie B<--list-missing>, außer dass sie, wenn eine Datei "
-"fehlt, nicht nur die fehlenden Dateien auflistet, sondern auch mit einem "
-"Rückgabewert ungleich Null fehlschlägt."
-
-#. type: textblock
-#: dh_install:83 dh_installexamples:43
+#: dh_install:84
msgid ""
-"Exclude files that contain I<item> anywhere in their filename from being "
-"installed."
+"B<Deprecated>: Please use B<dh_missing --fail-missing> instead. If you use "
+"this option, B<dh_install> will call B<dh_missing> with that option after it "
+"has processed all the files. Please see L<dh_missing(1)> for the "
+"documentation of this option."
msgstr ""
-"schließt Dateien von der Installation aus, die irgendwo in ihrem Dateinamen "
-"I<Element> enthalten"
+"B<Missbilligt>: Bitte verwenden Sie stattdessen B<dh_missing --fail-"
+"missing>. Falls Sie diese Option verwenden, wird B<dh_install> B<dh_missing> "
+"mit dieser Option aufrufen, nachdem es alle Dateien verarbeitet hat. Die "
+"Dokumentation dieser Option finden Sie unter L<dh_missing(1)>."
#. type: =item
-#: dh_install:86 dh_movefiles:42
+#: dh_install:91 dh_installdirs:62 dh_installdocs:114 dh_installexamples:57
+#: dh_installinfo:50 dh_installman:100 dh_movefiles:45
msgid "B<--sourcedir=>I<dir>"
msgstr "B<--sourcedir=>I<Verz>"
#. type: textblock
-#: dh_install:88
+#: dh_install:93
msgid "Look in the specified directory for files to be installed."
msgstr ""
"sucht im angegebenen Verzeichnis nach Dateien, die installiert werden sollen."
#. type: textblock
-#: dh_install:90
+#: dh_install:95
msgid ""
"Note that this is not the same as the B<--sourcedirectory> option used by "
"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
@@ -3748,12 +7227,12 @@ msgstr ""
"sucht."
#. type: =item
-#: dh_install:95
+#: dh_install:100
msgid "B<--autodest>"
msgstr "B<--autodest>"
#. type: textblock
-#: dh_install:97
+#: dh_install:102
msgid ""
"Guess as the destination directory to install things to. If this is "
"specified, you should not list destination directories in F<debian/package."
@@ -3762,11 +7241,11 @@ msgid ""
msgstr ""
"wird als Zielverzeichnis angenommen, um Dinge darin zu installieren. Falls "
"dies angegeben wurde, sollten Sie keine Zielverzeichnisse in F<debian/Paket."
-"install>-Dateien oder auf der Befehlszeile angeben. Stattdessen wird "
+"install>-Dateien oder auf der Befehlszeile festlegen. Stattdessen wird "
"B<dh_install> wie folgt raten:"
#. type: textblock
-#: dh_install:102
+#: dh_install:107
msgid ""
"Strip off F<debian/tmp> (or the sourcedir if one is given) from the front of "
"the filename, if it is present, and install into the dirname of the "
@@ -3775,19 +7254,19 @@ msgid ""
"etc/passwd>, it will be copied to F<debian/package/etc/>."
msgstr ""
"F<debian/tmp> (oder das Quellverzeichnis, wenn eines angegeben ist) wird vom "
-"Anfang des Dateinamens entfernt, falls es vorhanden ist, und es wird in den "
-"Verzeichnisanteil des Dateinamens installiert. Wenn also der Dateiname "
+"Anfang des Dateinamens entfernt, falls sie vorhanden ist, und wird in den "
+"Verzeichnisanteil des Dateinamens übernommen. Wenn also der Dateiname "
"F<debian/tmp/usr/bin> ist, dann wird dieses Verzeichnis nach F<debian/Paket/"
"usr/> kopiert. Falls der Dateiname F<debian/tmp/etc/passwd> ist, wird es "
"nach F<debian/Paket/etc/> kopiert."
#. type: =item
-#: dh_install:108
+#: dh_install:113
msgid "I<file|dir> ... I<destdir>"
msgstr "<I<Datei|Verz> … I<Zielverz>"
#. type: textblock
-#: dh_install:110
+#: dh_install:115
msgid ""
"Lists files (or directories) to install and where to install them to. The "
"files will be installed into the first package F<dh_install> acts on."
@@ -3796,24 +7275,132 @@ msgstr ""
"installiert werden sollen. Die Dateien werden in das erste Paket "
"installiert, auf das sich F<dh_install> auswirkt."
+#. type: textblock
+#: dh_install:334
+msgid "Here are some small examples of configuration files for dh_install."
+msgstr ""
+"Hier folgen einige kleine Beispiele für Konfigurationsdateien von dh_install."
+
+#. type: verbatim
+#: dh_install:336
+#, no-wrap
+msgid ""
+" # Install my-prog into usr/bin (as \"usr/bin/my-prog\")\n"
+" my-prog usr/bin\n"
+"\n"
+msgstr ""
+" # installiert my-prog in usr/bin (als »usr/bin/mein_Programm«)\n"
+" my-prog usr/bin\n"
+"\n"
+
+#. type: verbatim
+#: dh_install:339
+#, no-wrap
+msgid ""
+" # Install a plugins directory into usr/share/my-prog\n"
+" # (as \"usr/share/my-prog/plugins/\")\n"
+" plugins usr/share/my-prog\n"
+"\n"
+msgstr ""
+" # installiert ein Erweiterungsverzeichnis in usr/share/mein_Programm\n"
+" # (als »usr/share/mein_Programm/plugins/«)\n"
+" plugins usr/share/mein_Programm\n"
+"\n"
+
+#. type: verbatim
+#: dh_install:343
+#, no-wrap
+msgid ""
+" # Install a file with spaces in into usr/share/my-prog/data\n"
+" # (as \"usr/share/my-prog/data/my datafile with spaces.txt\")\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" my${Space}datafile${Space}with${Space}spaces.txt usr/share/my-prog/data\n"
+"\n"
+msgstr ""
+" # installiert eine Datei mit Leerzeichen in usr/share/mein_Programm/data\n"
+" # (als »usr/share/mein_Programm/data/meine_Daten mit spaces.txt«)\n"
+" # SETZT KOMPATIBILITÄTSSTUFE 13 VORAUS, in der Ersetzungsmuster\n"
+" # verfügbar sind\n"
+" my${Space}datafile${Space}with${Space}spaces.txt usr/share/mein_Programm/data\n"
+"\n"
+
+#. type: verbatim
+#: dh_install:348
+#, no-wrap
+msgid ""
+" # Install a library into the multi-arch lib directory\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" build/output/libfrop*.so.* usr/lib/${DEB_HOST_MULTIARCH}\n"
+"\n"
+msgstr ""
+" # installiert eine Bibliothek in das Multiarch-Bibliotheksverzeichnis\n"
+" # SETZT KOMPATIBILITÄTSSTUFE 13 VORAUS, in der Ersetzungsmuster\n"
+" # verfügbar sind\n"
+" build/output/libfrop*.so.* usr/lib/${DEB_HOST_MULTIARCH}\n"
+"\n"
+
#. type: =head1
-#: dh_install:254
+#: dh_install:352
msgid "LIMITATIONS"
msgstr "EINSCHRÄNKUNGEN"
+#. type: textblock
+#: dh_install:354
+msgid ""
+"B<dh_install> cannot rename files or directories, it can only install them "
+"with the names they already have into wherever you want in the package build "
+"tree."
+msgstr ""
+"B<dh_install> kann keine Dateien oder Verzeichnisse umbenennen, es kann sie "
+"nur mit den Namen, die sie bereits haben, im Paketbauverzeichnisbaum an die "
+"gewünschte Stelle installieren."
+
+#. type: textblock
+#: dh_install:358
+msgid ""
+"However, renaming can be achieved by using B<dh-exec> with compatibility "
+"level 9 or later. An example debian/I<package>.install file using B<dh-"
+"exec> could look like:"
+msgstr ""
+"Umbenennen kann jedoch durch Verwenden von B<dh-exec> mit der "
+"Kompatibilitätsstufe 9 oder höher erreicht werden. Eine debian/I<package>."
+"install-Beispieldatei, die B<dh-exec> verwendet, könnte wie folgt aussehen:"
+
#. type: verbatim
-#: dh_install:256
+#: dh_install:362
#, no-wrap
msgid ""
-"B<dh_install> cannot rename files or directories, it can only install them\n"
-"with the names they already have into wherever you want in the package\n"
-"build tree.\n"
-" \n"
+" #!/usr/bin/dh-exec\n"
+" debian/default.conf => /etc/my-package/start.conf\n"
+"\n"
+msgstr ""
+" #!/usr/bin/dh-exec\n"
+" debian/default.conf => /etc/my-package/start.conf\n"
+"\n"
+
+#. type: textblock
+#: dh_install:365
+msgid "Please remember the following three things:"
+msgstr "Bitte vergessen Sie nicht die folgenden drei Dinge:"
+
+#. type: =item
+#: dh_install:369
+msgid ""
+"* The package must be using compatibility level 9 or later (see "
+"L<debhelper(7)>)"
msgstr ""
-"B<dh_install> kann keine Dateien oder Verzeichnisse umbenennen, es kann sie nur\n"
-"mit den Namen, die sie bereits haben, im Paketbauverzeichnisbaum dorthin\n"
-"installieren, wo Sie es wünschen.\n"
-" \n"
+"* Das Paket muss Kompatibilitätsstufe 9 oder höher verwenden (siehe "
+"L<debhelper(7)>)."
+
+#. type: =item
+#: dh_install:371
+msgid "* The package will need a build-dependency on dh-exec."
+msgstr "* Das Paket muss eine Bauabhängigkeit zu Dh-exec haben."
+
+#. type: =item
+#: dh_install:373
+msgid "* The install file must be marked as executable."
+msgstr "* Die Installationsdatei muss als ausführbar markiert sein."
#. type: textblock
#: dh_installcatalogs:5
@@ -3821,12 +7408,12 @@ msgid "dh_installcatalogs - install and register SGML Catalogs"
msgstr "dh_installcatalogs - installiert und registriert SGML-Kataloge"
#. type: textblock
-#: dh_installcatalogs:16
+#: dh_installcatalogs:19
msgid "B<dh_installcatalogs> [S<I<debhelper options>>] [B<-n>]"
msgstr "B<dh_installcatalogs> [S<I<Debhelper-Optionen>>] [B<-n>]"
#. type: textblock
-#: dh_installcatalogs:20
+#: dh_installcatalogs:23
msgid ""
"B<dh_installcatalogs> is a debhelper program that installs and registers "
"SGML catalogs. It complies with the Debian XML/SGML policy."
@@ -3835,7 +7422,7 @@ msgstr ""
"installiert und registriert. Es erfüllt die Debian-XML/SGML-Richtlinie."
#. type: textblock
-#: dh_installcatalogs:23
+#: dh_installcatalogs:26
msgid ""
"Catalogs will be registered in a supercatalog, in F</etc/sgml/I<package>."
"cat>."
@@ -3844,37 +7431,37 @@ msgstr ""
"cat>."
#. type: textblock
-#: dh_installcatalogs:26
+#: dh_installcatalogs:29
msgid ""
"This command automatically adds maintainer script snippets for registering "
"and unregistering the catalogs and supercatalogs (unless B<-n> is used). "
-"These snippets are inserted into the maintainer scripts by B<dh_installdeb>; "
-"see L<dh_installdeb(1)> for an explanation of Debhelper maintainer script "
-"snippets."
-msgstr ""
-"Dieser Befehl fügt Schnipsel von Betreuerskripten zur Registrierung und "
-"Austragung der Kataloge und Superkataloge hinzu (außer wenn B<-n> benutzt "
-"wird). Diese Ausschnitte werden durch B<dh_installdeb> in die "
-"Betreuerskripte eingefügt; eine Erläuterung der Debhelper-"
+"These snippets are inserted into the maintainer scripts and the B<triggers> "
+"file by B<dh_installdeb>; see L<dh_installdeb(1)> for an explanation of "
+"Debhelper maintainer script snippets."
+msgstr ""
+"Dieser Befehl fügt Schnipsel von Betreuerskripten zur Ein- und Austragung "
+"der Kataloge und Superkataloge hinzu (außer wenn B<-n> benutzt wird). Diese "
+"Schnipsel werden durch B<dh_installdeb> in die Betreuerskripte und die Datei "
+"B<triggers> eingefügt; eine Erläuterung der Debhelper-"
"Betreuerskriptschnipsel finden Sie in L<dh_installdeb(1)>."
#. type: textblock
-#: dh_installcatalogs:32
+#: dh_installcatalogs:36
msgid ""
"A dependency on B<sgml-base> will be added to B<${misc:Depends}>, so be sure "
"your package uses that variable in F<debian/control>."
msgstr ""
-"Eine Abhängigkeit von B<sgml-base> wird B<${misc:Depends}> hinzugefügt, "
+"Eine Abhängigkeit von B<sgml-base> wird B<${misc:Depends}> hinzugefügt; "
"stellen Sie also sicher, dass Ihr Paket diese Variable in F<debian/control> "
"benutzt."
#. type: =item
-#: dh_installcatalogs:39
+#: dh_installcatalogs:43
msgid "debian/I<package>.sgmlcatalogs"
msgstr "debian/I<Paket>.sgmlcatalogs"
#. type: textblock
-#: dh_installcatalogs:41
+#: dh_installcatalogs:45
msgid ""
"Lists the catalogs to be installed per package. Each line in that file "
"should be of the form C<I<source> I<dest>>, where I<source> indicates where "
@@ -3885,35 +7472,38 @@ msgstr ""
"listet die Kataloge auf, die je Paket installiert werden. Jede Zeile in "
"dieser Datei sollte die Form C<I<Quelle> I<Ziel>> haben, wobei I<Quelle> "
"anzeigt, wo die Kataloge im Quellverzeichnisbaum liegen und I<Ziel> den "
-"Zielspeicherort für den Katalog unterhalb des Baubereichs des Pakets "
-"anzeigt. I<Ziel> sollte mit F</usr/share/sgml/> beginnen."
+"Zielspeicherort für den Katalog unterhalb des Baubereichs des Pakets nennt. "
+"I<Ziel> sollte mit F</usr/share/sgml/> beginnen."
#. type: textblock
-#: dh_installcatalogs:55 dh_installinit:65
-msgid "Do not modify F<postinst>/F<postrm>/F<prerm> scripts."
-msgstr "ändert keine F<postinst>-/F<postrm>/F<prerm>-Skripte."
+#: dh_installcatalogs:62
+msgid ""
+"Do not modify F<postinst>/F<postrm>/F<prerm> scripts nor add an activation "
+"trigger."
+msgstr ""
+"ändert weder F<postinst>-/F<postrm>/F<prerm>-Skripte, noch wird ein "
+"Aktivierungsauslöser hinzugefügt."
#. type: textblock
-#: dh_installcatalogs:61 dh_installdocs:127 dh_installemacsen:74
-#: dh_installinit:142 dh_installmodules:56 dh_installudev:57 dh_installwm:56
-#: dh_usrlocal:51
+#: dh_installcatalogs:69 dh_installemacsen:77 dh_installinit:206
+#: dh_installmodules:59 dh_installudev:52 dh_installwm:68 dh_usrlocal:62
msgid ""
"Note that this command is not idempotent. L<dh_prep(1)> should be called "
"between invocations of this command. Otherwise, it may cause multiple "
"instances of the same text to be added to maintainer scripts."
msgstr ""
-"Beachten Sie, dass dieser Befehl nicht idempotent ist. Zwischen Aufrufen "
-"dieses Befehls sollte L<dh_prep(1)> aufgerufen werden. Ansonsten könnte er "
-"zur Folge haben, dass den Betreuerskripten mehrere Instanzen des gleichen "
-"Textes hinzugefügt werden."
+"Beachten Sie, dass dieser Befehl nicht idempotent ist. Zwischen mehreren "
+"Aufrufen dieses Befehls sollte L<dh_prep(1)> aufgerufen werden. Ansonsten "
+"könnte er zur Folge haben, dass den Betreuerskripten mehrere Instanzen des "
+"gleichen Textes hinzugefügt werden."
#. type: textblock
-#: dh_installcatalogs:126
+#: dh_installcatalogs:132
msgid "F</usr/share/doc/sgml-base-doc/>"
msgstr "F</usr/share/doc/sgml-base-doc/>"
#. type: textblock
-#: dh_installcatalogs:130
+#: dh_installcatalogs:136
msgid "Adam Di Carlo <aph@debian.org>"
msgstr "Adam Di Carlo <aph@debian.org>"
@@ -3922,88 +7512,113 @@ msgstr "Adam Di Carlo <aph@debian.org>"
msgid ""
"dh_installchangelogs - install changelogs into package build directories"
msgstr ""
-"dh_installchangelogs - installiert Änderungsprotokolle (»changelogs«) in die "
-"Paketbauverzeichnisse"
+"dh_installchangelogs - installiert Changelogs in die Paketbauverzeichnisse"
#. type: textblock
-#: dh_installchangelogs:14
+#: dh_installchangelogs:18
msgid ""
"B<dh_installchangelogs> [S<I<debhelper options>>] [B<-k>] [B<-X>I<item>] "
-"[I<upstream>]"
+"[B<--no-trim>] [I<upstream>]"
msgstr ""
"B<dh_installchangelogs> [S<I<Debhelper-Optionen>>] [B<-k>] [B<-X>I<Element>] "
-"[I<Originalautor>]"
+"[B<--no-trim>] [I<Originalautor>]"
#. type: textblock
-#: dh_installchangelogs:18
+#: dh_installchangelogs:22
msgid ""
"B<dh_installchangelogs> is a debhelper program that is responsible for "
"installing changelogs into package build directories."
msgstr ""
"B<dh_installchangelogs> ist ein Debhelper-Programm, das für die Installation "
-"von Änderungsprotokollen in Paketbauverzeichnisse zuständig ist."
+"von Changelogs in Paketbauverzeichnisse zuständig ist."
#. type: textblock
-#: dh_installchangelogs:21
+#: dh_installchangelogs:25
msgid ""
"An upstream F<changelog> file may be specified as an option. If none is "
-"specified, it looks for files with names that seem likely to be changelogs. "
-"(In compatibility level 7 and above.)"
+"specified, B<dh_installchangelogs> may look for files with names that seem "
+"likely to be changelogs as described in the next paragraphs."
msgstr ""
"Optional könnte eine F<changelog>-Datei der Originalautoren angegeben "
-"werden. Falls keine angegeben wurde, sucht es nach Dateien mit Namen, die "
-"wahrscheinlich Änderungsdateien sein könnten (auf Kompatibilitätsstufe 7 und "
-"darüber)."
+"werden. Falls keine angegeben wurde, könnte B<dh_installchangelogs> nach "
+"Dateien mit Namen suchen, die wahrscheinlich Changelogs, wie in den nächsten "
+"Abschnitten beschrieben, sein könnten."
+
+#. type: textblock
+#: dh_installchangelogs:29
+msgid ""
+"In non-native packages, B<dh_installchangelogs> will first look for "
+"changelog files installed by the upstream build system into F<< usr/share/"
+"doc/I<package> >> (of the package build directory) and rename the most "
+"likely candidate (if any) to F<< usr/share/doc/I<package>/changelog >>. "
+"Note that B<dh_installchangelogs> does I<not> look into any source directory "
+"(such as F<debian/tmp>). Otherwise, B<dh_installchangelogs> (at "
+"compatibility level 7 or any later) will look for changelog files in the "
+"source directory (e.g. the root or the F<docs> subdirectory). It will look "
+"for F<changelog>, F<changes> and F<history> optionally with common "
+"extensions (such as F<.txt>, F<.md> and F<.rst>)."
+msgstr ""
+"In nicht nativen Paketen wird B<dh_installchangelogs> zuerst nach Changelog-"
+"Dateien suchen, die vom Bausystem der Ursprungsautoren in F<< usr/share/doc/"
+"I<package> >> (des Paketbauverzeichnisses) installiert wurden und den "
+"ähnlichsten Kandidaten (falls vorhanden) in F<< usr/share/doc/I<package>/"
+"changelog >> umbenennen. Beachten Sie, dass B<dh_installchangelogs> in "
+"I<kein> Quellverzeichnis (wie F<debian/tmp>) schaut. Ansonsten wird "
+"B<dh_installchangelogs> (auf Kompatibilitätsstufe 7 oder neuer) nach "
+"Changelog-Dateien im Quellverzeichnis (z.B. der Wurzel des F<docs>-"
+"Unterverzeichnisses) suchen. Dabei konzentriert es sich auf F<changelog>, "
+"F<changes> und F<history> die auch die gängigen Dateiendungen aufweisen "
+"können (etwa F<.txt>, F<.md> und F<.rst>)."
#. type: textblock
-#: dh_installchangelogs:25
+#: dh_installchangelogs:41
msgid ""
-"If there is an upstream F<changelog> file, it will be be installed as F<usr/"
-"share/doc/package/changelog> in the package build directory."
+"If a changelog file is specified and is an F<html> file (determined by file "
+"extension), it will be installed as F<usr/share/doc/package/changelog.html> "
+"instead. If the html changelog is converted to plain text, that variant can "
+"be specified as a second parameter. When no plain text variant is specified, "
+"a short F<usr/share/doc/package/changelog> is generated, pointing readers at "
+"the html changelog file."
msgstr ""
-"Falls es eine F<changelog>-Datei der Ursprungsautoren gibt, wird sie im "
-"Paketbauverzeichnis als F<usr/share/doc/Paket/changelog> installiert."
+"Falls das angegebene Changelog eine F<html>-Datei ist (durch die Dateiendung "
+"festgelegt), wird es stattdessen als F<usr/share/doc/Paket/changelog.html> "
+"installiert. Falls das HTML-Changelog in eine reine Textdatei umgewandelt "
+"wird, kann diese als eine zweite Variante der Changelog-Datei der "
+"Ursprungsautoren angegeben werden. Wenn keine Variante als reine Textdatei "
+"angegeben wurde, wird ein kurzes F<usr/share/doc/Paket/changelog> erzeugt, "
+"das Leser auf die HTML-Changelog-Datei verweist."
#. type: textblock
-#: dh_installchangelogs:28
+#: dh_installchangelogs:48
msgid ""
-"If the upstream changelog is is a F<html> file (determined by file "
-"extension), it will be installed as F<usr/share/doc/package/changelog.html> "
-"instead. If the html changelog is converted to plain text, that variant can "
-"be specified as a second upstream changelog file. When no plain text variant "
-"is specified, a short F<usr/share/doc/package/changelog> is generated, "
-"pointing readers at the html changelog file."
+"The B<debchange>-style Debian changelogs are trimmed to include only entries "
+"more recent than the release date of I<oldstable>. No trimming will be "
+"performed if the B<--no-trim> option is passed or if the "
+"B<DEB_BUILD_OPTIONS> environment variable contains B<notrimdch>."
msgstr ""
-"Falls das Changelog der Ursprungsautoren eine F<html>-Datei ist (durch die "
-"Dateiendung festgelegt), wird es stattdessen als F<usr/share/doc/Paket/"
-"changelog.html> installiert. Falls das HTML-Changelog in Klartext "
-"umgewandelt wird, kann dies als eine zweite Variante der Changelog-Datei der "
-"Ursprungsautoren angegeben werden. Wenn keine Klartextvariante angegeben "
-"wurde, wird ein kurzes F<usr/share/doc/Paket/changelog> erzeugt, das Leser "
-"auf die HTML-Changelog-Datei verweist."
#. type: =item
-#: dh_installchangelogs:39
+#: dh_installchangelogs:57
msgid "F<debian/changelog>"
msgstr "F<debian/changelog>"
#. type: =item
-#: dh_installchangelogs:41
+#: dh_installchangelogs:59
msgid "F<debian/NEWS>"
msgstr "F<debian/NEWS>"
#. type: =item
-#: dh_installchangelogs:43
+#: dh_installchangelogs:61
msgid "debian/I<package>.changelog"
msgstr "debian/I<Paket>.changelog"
#. type: =item
-#: dh_installchangelogs:45
+#: dh_installchangelogs:63
msgid "debian/I<package>.NEWS"
msgstr "debian/I<Paket>.NEWS"
#. type: textblock
-#: dh_installchangelogs:47
+#: dh_installchangelogs:65
msgid ""
"Automatically installed into usr/share/doc/I<package>/ in the package build "
"directory."
@@ -4012,7 +7627,7 @@ msgstr ""
"installiert."
#. type: textblock
-#: dh_installchangelogs:50
+#: dh_installchangelogs:68
msgid ""
"Use the package specific name if I<package> needs a different F<NEWS> or "
"F<changelog> file."
@@ -4021,18 +7636,18 @@ msgstr ""
"oder F<changelog>-Datei benötigt."
#. type: textblock
-#: dh_installchangelogs:53
+#: dh_installchangelogs:71
msgid ""
"The F<changelog> file is installed with a name of changelog for native "
"packages, and F<changelog.Debian> for non-native packages. The F<NEWS> file "
"is always installed with a name of F<NEWS.Debian>."
msgstr ""
-"Die F<changelog>-Datei wird mit dem Namen des Änderungsprotokolls für native "
-"Pakete installiert und F<changelog.Debian> für nicht native Pakete. Die "
-"Datei F<NEWS> wird immer mit dem Namen F<NEWS.Debian> installiert."
+"Die F<changelog>-Datei wird mit dem Namen des Changelogs für native Pakete "
+"installiert und F<changelog.Debian> für nicht native Pakete. Die Datei "
+"F<NEWS> wird immer mit dem Namen F<NEWS.Debian> installiert."
#. type: textblock
-#: dh_installchangelogs:65
+#: dh_installchangelogs:83
msgid ""
"Keep the original name of the upstream changelog. This will be accomplished "
"by installing the upstream changelog as F<changelog>, and making a symlink "
@@ -4040,16 +7655,15 @@ msgid ""
"if the upstream changelog has an unusual name, or if other documentation in "
"the package refers to the F<changelog> file."
msgstr ""
-"behält den Originalnamen des Änderungsprotokolls der Originalautoren. Dies "
-"wird durch Installieren des Änderungsprotokolls der Originalautoren als "
-"F<changelog> und Erstellen eines symbolischen Verweises davon zum "
-"Originalnamen der F<changelog>-Datei bewerkstelligt. Dies kann nützlich "
-"sein, falls das Änderungsprotokoll der Originalautoren einen unüblichen "
-"Dateinamen hat oder falls andere Dokumentation im Paket sich auf die Datei "
-"F<changelog> bezieht."
+"behält den Originalnamen des Changelogs der Originalautoren. Dies wird durch "
+"Installieren des Changelogs der Originalautoren als F<changelog> und "
+"Erstellen eines symbolischen Links davon zum Originalnamen der F<changelog>-"
+"Datei bewerkstelligt. Dies kann nützlich sein, falls das Changelog der "
+"Originalautoren einen unüblichen Dateinamen hat oder falls andere "
+"Dokumentation im Paket sich auf die Datei F<changelog> bezieht."
#. type: textblock
-#: dh_installchangelogs:73
+#: dh_installchangelogs:91
msgid ""
"Exclude upstream F<changelog> files that contain I<item> anywhere in their "
"filename from being installed."
@@ -4057,15 +7671,36 @@ msgstr ""
"schließt F<changelog>-Dateien der Originalautoren von der Installation aus, "
"die irgendwo in ihrem Dateinamen I<Element> enthalten."
+#. type: textblock
+#: dh_installchangelogs:94
+msgid "Note that directory name of the changelog is also part of the match."
+msgstr ""
+"Beachten Sie, dass der Verzeichnisname des Changelogs auch Teil des Treffers "
+"ist."
+
#. type: =item
-#: dh_installchangelogs:76
+#: dh_installchangelogs:96
+msgid "B<--no-trim>"
+msgstr "B<--no-trim>"
+
+#. type: textblock
+#: dh_installchangelogs:98
+msgid ""
+"Install the full changelog, not its trimmed version that includes only "
+"recent entries."
+msgstr ""
+"installiert den vollen Changelog, nicht die gekürzte Version, die nur die "
+"neuesten Einträge enthält."
+
+#. type: =item
+#: dh_installchangelogs:101
msgid "I<upstream>"
msgstr "I<Originalautoren>"
#. type: textblock
-#: dh_installchangelogs:78
+#: dh_installchangelogs:103
msgid "Install this file as the upstream changelog."
-msgstr "installiert diese Datei als Änderungsprotokoll der Originalautoren."
+msgstr "installiert diese Datei als Changelog der Originalautoren."
#. type: textblock
#: dh_installcron:5
@@ -4073,12 +7708,12 @@ msgid "dh_installcron - install cron scripts into etc/cron.*"
msgstr "dh_installcron - installiert Cron-Skripte in etc/cron.*"
#. type: textblock
-#: dh_installcron:14
+#: dh_installcron:17
msgid "B<dh_installcron> [S<B<debhelper options>>] [B<--name=>I<name>]"
msgstr "B<dh_installcron> [S<B<Debhelper-Optionen>>] [B<--name=>I<Name>]"
#. type: textblock
-#: dh_installcron:18
+#: dh_installcron:21
msgid ""
"B<dh_installcron> is a debhelper program that is responsible for installing "
"cron scripts."
@@ -4087,47 +7722,52 @@ msgstr ""
"Cron-Skripten zuständig ist."
#. type: =item
-#: dh_installcron:25
+#: dh_installcron:28
msgid "debian/I<package>.cron.daily"
msgstr "debian/I<Paket>.cron.daily"
#. type: =item
-#: dh_installcron:27
+#: dh_installcron:30
msgid "debian/I<package>.cron.weekly"
msgstr "debian/I<Paket>.cron.weekly"
#. type: =item
-#: dh_installcron:29
+#: dh_installcron:32
msgid "debian/I<package>.cron.monthly"
msgstr "debian/I<Paket>.cron.monthly"
#. type: =item
-#: dh_installcron:31
+#: dh_installcron:34
+msgid "debian/I<package>.cron.yearly"
+msgstr "debian/I<Paket>.cron.yearly"
+
+#. type: =item
+#: dh_installcron:36
msgid "debian/I<package>.cron.hourly"
msgstr "debian/I<Paket>.cron.hourly"
#. type: =item
-#: dh_installcron:33
+#: dh_installcron:38
msgid "debian/I<package>.cron.d"
msgstr "debian/I<Paket>.cron.d"
#. type: textblock
-#: dh_installcron:35
+#: dh_installcron:40
msgid ""
"Installed into the appropriate F<etc/cron.*/> directory in the package build "
"directory."
msgstr ""
-"installiert im passenden F<etc/cron.*/>-Verzeichnis im Paketbauverzeichnis"
+"installiert im passenden F<etc/cron.*/>-Verzeichnis im Paketbauverzeichnis."
#. type: =item
-#: dh_installcron:44 dh_installifupdown:43 dh_installinit:110
-#: dh_installlogcheck:46 dh_installlogrotate:26 dh_installmodules:46
-#: dh_installpam:35 dh_installppp:39 dh_installudev:39
+#: dh_installcron:49 dh_installifupdown:46 dh_installinit:174
+#: dh_installlogcheck:49 dh_installlogrotate:29 dh_installmodules:49
+#: dh_installpam:42 dh_installppp:42 dh_installudev:38 dh_systemd_enable:94
msgid "B<--name=>I<name>"
msgstr "B<--name=>I<Name>"
#. type: textblock
-#: dh_installcron:46
+#: dh_installcron:51
msgid ""
"Look for files named F<debian/package.name.cron.*> and install them as F<etc/"
"cron.*/name>, instead of using the usual files and installing them as the "
@@ -4143,12 +7783,12 @@ msgid "dh_installdeb - install files into the DEBIAN directory"
msgstr "dh_installdeb - installiert Dateien in das Verzeichnis DEBIAN."
#. type: textblock
-#: dh_installdeb:14
+#: dh_installdeb:17
msgid "B<dh_installdeb> [S<I<debhelper options>>]"
msgstr "B<dh_installdeb> [S<I<Debhelper-Optionen>>]"
#. type: textblock
-#: dh_installdeb:18
+#: dh_installdeb:21
msgid ""
"B<dh_installdeb> is a debhelper program that is responsible for installing "
"files into the F<DEBIAN> directories in package build directories with the "
@@ -4159,95 +7799,471 @@ msgstr ""
"korrekten Berechtigungen zuständig ist."
#. type: =item
-#: dh_installdeb:26
+#: dh_installdeb:29
msgid "I<package>.postinst"
msgstr "I<Paket>.postinst"
#. type: =item
-#: dh_installdeb:28
+#: dh_installdeb:31
msgid "I<package>.preinst"
msgstr "I<Paket>.preinst"
#. type: =item
-#: dh_installdeb:30
+#: dh_installdeb:33
msgid "I<package>.postrm"
msgstr "I<Paket>.postrm"
#. type: =item
-#: dh_installdeb:32
+#: dh_installdeb:35
msgid "I<package>.prerm"
msgstr "I<Paket>.prerm"
#. type: textblock
-#: dh_installdeb:34
+#: dh_installdeb:37
msgid "These maintainer scripts are installed into the F<DEBIAN> directory."
msgstr "Diese Betreuerskripte werden in das Verzeichnis F<DEBIAN> installiert."
#. type: textblock
-#: dh_installdeb:36
+#: 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 ""
-"Innerhalb der Skripte wird die Markierung B<#DEBHELPER#> durch Shell-"
-"Skriptschnipsel ersetzt, die durch andere Debhelper-Befehle erzeugt wurden."
+"B<dh_installdeb> wird eine Ersetzung bekannter MARKIERUNGEN des Musters "
+"B<#MARKIERUNG#> durchführen. Im Allgemeinen werden Skripte B<#DEBHELPER#> "
+"einbinden wollen, um von den durch Debhelper-Befehle erzeugten Shell-"
+"Skripten zu profitieren (einschließlich derer von B<dh_installdeb>, wenn es "
+"I<Paket>.maintscript-Dateien verarbeitet)."
+
+#. type: textblock
+#: dh_installdeb:45
+msgid ""
+"The B<#DEBHELPER#> token should be placed on its own line as it is often "
+"replaced by a multi-line shell script."
+msgstr ""
+"Die Markierung B<#DEBHELPER#> sollte in eine eigene Zeile platziert werden, "
+"da sie oft durch ein mehrzeiliges Shellskript ersetzt wird."
#. type: =item
-#: dh_installdeb:39
+#: dh_installdeb:48
msgid "I<package>.triggers"
msgstr "I<Paket>.triggers"
#. type: =item
-#: dh_installdeb:41
+#: dh_installdeb:50
msgid "I<package>.shlibs"
msgstr "I<Paket>.shlibs"
#. type: textblock
-#: dh_installdeb:43
+#: dh_installdeb:52
msgid "These control files are installed into the F<DEBIAN> directory."
msgstr "Diese Steuerdateien sind im Verzeichnis F<DEBIAN> installiert."
+#. type: textblock
+#: dh_installdeb:54
+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 ""
+"Beachten Sie, dass I<Paket>.shlibs nur auf Kompatibilitätsstufe 9 und älter "
+"installiert wird. Verwenden Sie im Kompatibilitätsmodus 10 bitte "
+"L<dh_makeshlibs(1)>."
+
#. type: =item
-#: dh_installdeb:45
+#: dh_installdeb:57
msgid "I<package>.conffiles"
msgstr "I<Paket>.conffiles"
#. type: textblock
-#: dh_installdeb:47
-msgid "This control file will be installed into the F<DEBIAN> directory."
-msgstr "Diese Steuerdatei wird in das Verzeichnis F<DEBIAN> installiert."
+#: dh_installdeb:59
+msgid ""
+"This file will be installed into the F<DEBIAN> directory. The provided file "
+"will be enriched by debhelper to include all the B<conffiles> auto-detected "
+"by debhelper (the maintainer should not list anything there as debhelper "
+"assumes it should handle that part)."
+msgstr ""
+"Diese Datei wird ins F<DEBIAN>-Verzeichnis installiert. Die bereitgestellte "
+"Datei wird von Debhelper ergänzt, sodass sie alle von Debhelper automatisch "
+"festgestellten B<conffiles> enthält (der Paketbetreuer sollte diese Liste "
+"nicht selbst schreiben, weil Debhelper davon ausgeht, dass dies seine "
+"Aufgabe ist)."
#. type: textblock
-#: dh_installdeb:49
+#: 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."
+"This file is primarily useful for using \"special\" entries such as the B<< "
+"remove-on-upgrade >> feature from dpkg."
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."
+"Diese Datei eignet sich hauptsächlich für den Einsatz »spezieller« "
+"Funktionalitäten wie Dpkgs B<< remove-on-upgrade >>."
#. type: =item
-#: dh_installdeb:53
+#: dh_installdeb:67
msgid "I<package>.maintscript"
msgstr "I<Paket>.maintscript"
#. type: textblock
-#: dh_installdeb:55
+#: dh_installdeb:69
msgid ""
"Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands and "
-"parameters. Any shell metacharacters will be escaped, so arbitrary shell "
-"code cannot be inserted here. For example, a line such as C<mv_conffile /"
-"etc/oldconffile /etc/newconffile> will insert maintainer script snippets "
-"into all maintainer scripts sufficient to move that conffile."
+"parameters. However, the \"maint-script-parameters\" should I<not> be "
+"included as debhelper will add those automatically."
+msgstr ""
+"Zeilen in dieser Datei entsprechen L<dpkg-maintscript-helper(1)>-Befehlen "
+"und -Parametern. Die »maint-script-parameters« sollten jedoch I<nicht> "
+"eingefügt werden, da Debhelper sie automatisch hinzufügen wird."
+
+#. type: textblock
+#: dh_installdeb:73
+msgid "Example:"
+msgstr "Beispiel:"
+
+#. type: verbatim
+#: dh_installdeb:75
+#, no-wrap
+msgid ""
+" # Correct\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo\n"
+" # INCORRECT\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo -- \"$@\"\n"
+"\n"
+msgstr ""
+" # Richtig\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo\n"
+" # FALSCH\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo -- \"$@\"\n"
+"\n"
+
+#. type: textblock
+#: dh_installdeb:80
+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 "
+"C<mv_conffile /etc/oldconffile /etc/newconffile> will insert maintainer "
+"script snippets into all maintainer scripts sufficient to move that conffile."
+msgstr ""
+"Im Kompatibilitätsmodus 10 oder höher werden alle Shell-Metazeichen "
+"maskiert, daher kann hier kein beliebiger Shell-Code eingefügt werden. Eine "
+"Zeile wie C<mv_conffile /etc/oldconffile /etc/newconffile> wird zum Beispiel "
+"Schnipsel von Betreuerskripten in alle Betreuerskripte einfügen, die sich "
+"eignen, um diese Konfigdatei zu verschieben."
+
+#. type: textblock
+#: dh_installdeb:86
+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 "
+"embed arbitrary shell code in earlier compat levels."
+msgstr ""
+"Es war außerdem beabsichtigt, die Shell-Metazeichen in allen vorherigen "
+"Kompatibilitätsstufen zu maskieren. Dies funktionierte jedoch nicht "
+"ordentlich und von daher war es möglich, beliebigen Shell-Code in "
+"vorhergehenden Kompatibilitätsstufen einzubetten."
+
+#. type: textblock
+#: dh_installdeb:90
+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 ""
+"Das Werkzeug B<dh_installdeb> wird einige grundlegende Prüfungen einiger der "
+"in dieser Datei aufgeführten Befehle durchführen, um häufige Fehler "
+"abzufangen. Die Überprüfung wird seit Kompatibilitätsstufe 10 als Warnung "
+"aktiviert und in Kompatibilitätsstufe 12 als harter Fehler."
+
+#. type: textblock
+#: dh_installdeb:95
+msgid ""
+"Where possible, B<dh_installdeb> may choose to rewrite some or all of the "
+"entries into equivalent features supported in dpkg without relying on "
+"maintainer scripts at its sole discretion (examples include rewriting "
+"B<rm_conffile> into dpkg's B<remove-on-upgrade>). The minimum requirement "
+"for activating this feature is that debhelper runs in compat 10 or later."
+msgstr ""
+"Wo möglich, kann sich B<dh_installdeb> eigenständig dafür entscheiden, "
+"einige oder alle Einträge so umzugestalten, dass anstelle von Betreuer-"
+"Skripten die entsprechenden Dpkg-Funktionen verwendet werden (bspw. kann es "
+"B<rm_conffile> in B<remove-on-upgrade> umschreiben). Die "
+"Mindestvoraussetzung, dass diese Funktionalität aktiv wird, ist dass "
+"Debhelper in Kompatibilitätsstufe 10 oder höher läuft."
+
+#. type: =item
+#: dh_installdeb:111 dh_installdebconf:76
+msgid "B<-D>I<TOKEN=VALUE>, B<--define> I<TOKEN=VALUE>"
+msgstr "B<-D>I<MARKIERUNG=WERT>, B<--define> I<MARKIERUNG=WERT>"
+
+#. type: textblock
+#: dh_installdeb:113 dh_installdebconf:78
+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 ""
+"definiert Markierungen, die innerhalb von Betreuerskripten bei ihrer "
+"Erzeugung ersetzt werden. Bitte beachten Sie, dass die in L</Beschränkungen "
+"in Markierungsnamen> beschriebenen Beschränkungen auch für Markierungen "
+"gelten, die auf der Befehlszeile definiert werden. Ungültige "
+"Markierungsnamen werden einen Fehler auslösen."
+
+#. type: textblock
+#: dh_installdeb:118 dh_installdebconf:83
+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 ""
+"In einfachen Fall wird dieser Parameter veranlassen, dass B<< "
+"#I<MARKIERUNG># >> durch I<WERT> ersetzt wird. Falls I<WERT> mit einem I<@>-"
+"Zeichen beginnt, wird von I<WERT> erwartet, dass er auf eine Datei zeigt, "
+"die den tatsächlich einzufügenden Wert enthält."
+
+#. type: textblock
+#: dh_installdeb:123 dh_installdebconf:88
+msgid ""
+"An explicit declared token with this parameter will replace built-in tokens."
+msgstr ""
+"Eine explizit mit diesem Parameter deklarierte Markierung wird die "
+"eingebauten Markierungen ersetzen."
+
+#. type: textblock
+#: dh_installdeb:126 dh_installdebconf:91
+msgid "Test examples to aid with the understanding:"
+msgstr "Testbeispiele zum besseren Verständnis:"
+
+#. type: verbatim
+#: dh_installdeb:128
+#, 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 ""
+"\tcat >> debian/postinst <<EOF\n"
+"\t#EINFACH#\n"
+"\t#DATEIBASIERT#\n"
+"\tEOF\n"
+"\techo -n \"Komplexer Wert\" > irgendeine-Datei\n"
+" dh_installdeb --define EINFACH=direkt --define DATEIBASIERT=@irgendeine-Datei\n"
+"\n"
+
+#. type: textblock
+#: dh_installdeb:135 dh_installdebconf:100
+msgid ""
+"In this example, B<#SIMPLE#> will expand to B<direct> and B<#FILEBASED#> "
+"will expand to B<Complex value>."
+msgstr ""
+"In diesem Beispiel wird B<#EINFACH#> zu B<direkt> und B<#DATEIBASIERT#> zu "
+"B<Komplexer Wert> expandiert."
+
+#. type: textblock
+#: dh_installdeb:138
+msgid ""
+"It is also possible to 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 ""
+"Es ist auch möglich, paketspezifische Werte für eine angegebene Markierung "
+"zu setzen, was hilfreich ist, wenn B<dh_installdeb> mit mehreren Paketen "
+"agiert, die unterschiedliche Werte für dieselbe Markierung benötigen. Dazu "
+"wird B<< pkg.I<Paketname>. >> vor die Markierung gestellt."
+
+#. type: textblock
+#: dh_installdeb:143 dh_installdebconf:108
+msgid "This can be used as in the following example:"
+msgstr "Es kann wie im folgenden Beispiel benutzt werden:"
+
+#. type: verbatim
+#: dh_installdeb:145
+#, 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 ""
+"\tcat >> debian/foo.postinst <<EOF\n"
+"\t# Skript für #PACKAGE#\n"
+"\t#MARKIERUNG#\n"
+"\tEOF\n"
+"\tcat >> debian/bar.postinst <<EOF\n"
+"\t# Skript für #PACKAGE#\n"
+"\t#MARKIERUNG#\n"
+"\tEOF\n"
+"\tcat >> debian/baz.postinst <<EOF\n"
+"\t# Skript für #PACKAGE#\n"
+"\t#MARKIERUNG#\n"
+"\tEOF\n"
+" dh_installdeb -pfoo -pbar -pbaz --define MARKIERUNG=Vorgabe --define pkg.bar.MARKIERUNG=eindeutiger-bar-wert \\\n"
+" --define pkg.baz.MARKIERUNG=eindeutiger-baz-wert\n"
+"\n"
+
+#. type: textblock
+#: dh_installdeb:160
+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 ""
+"In diesem Beispiel wird B<#MARKIERUNG#> in F<debian/foo.postinst> zu "
+"B<Vorgabe>, in F<debian/bar.postinst> zu B<eindeutiger-bar-wert> und in "
+"F<debian/baz.postinst> zu B<eindeutiger-baz-wert> expandiert."
+
+#. type: textblock
+#: dh_installdeb:164
+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 ""
+"Beachten Sie, dass die B<#pkg.*#>-Markierungen in allen Skripten, mit denen "
+"gearbeitet wird, sichtbar sind. Sie können sich z. B. auf B<#pkg.bar."
+"MARKIERUNG#> innerhalb von F<debian/foo.postinst> beziehen und es wird durch "
+"B<eindeutiger-bar-wert> ersetzt."
+
+#. type: =head1
+#: dh_installdeb:170 dh_installdebconf:135
+msgid "SUBSTITUTION IN MAINTAINER SCRIPTS"
+msgstr "ERSETZUNG IN BETREUERSKRIPTEN"
+
+#. type: textblock
+#: dh_installdeb:172
+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 ""
+"B<dh_installdeb> wird automatisch die folgenden Markierungen innerhalb eines "
+"bereitgestellten Betreuerskripts ersetzen (falls sie nicht über B<-D>/B<--"
+"define> ersetzt werden):"
+
+#. type: =item
+#: dh_installdeb:177
+msgid "#DEBHELPER#"
+msgstr "#DEBHELPER#"
+
+#. type: textblock
+#: dh_installdeb:179
+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 ""
+"Diese Markierung wird standardmäßig durch in Shell-Schnipseln erzeugten "
+"Debhelper-Befehlen ersetzt. Dies umfasst die durch B<dh_installdeb> aus der "
+"Datei I<Paket>.maintscript erzeugten Schnipsel (falls vorhanden)."
+
+#. type: =item
+#: dh_installdeb:183 dh_installdebconf:142
+msgid "#DEB_HOST_I<NAME>#, #DEB_BUILD_I<NAME>#, #DEB_TARGET_I<NAME>#"
+msgstr "#DEB_HOST_I<NAME>#, #DEB_BUILD_I<NAME>#, #DEB_TARGET_I<NAME>#"
+
+#. type: textblock
+#: dh_installdeb:185 dh_installdebconf:144
+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 ""
-"Zeilen in dieser Datei entsprechen den Befehlen und Parametern von L<dpkg-"
-"maintscript-helper(1)>. Etwaige Meta-Zeichen der Shell werden maskiert, "
-"weswegen hier kein beliebiger Shell-Kode eingefügt werden kann. Eine Zeile "
-"wie C<mv_conffile /etc/oldconffile /etc/newconffile> wird zum Beispiel "
-"Schnipsel von Betreuerskripten in alle Betreuerskripte einfügen, die "
-"ausreichen, um dieses Conffile zu verschieben."
+"Diese Markierungen werden durch die entsprechende Variable aus L<dpkg-"
+"architecture(1)> ersetzt. In fast allen Fällen werden Sie die Variante B<< "
+"#DEB_HOST_I<NAME> >> in einem Skript benutzen wollen, um sicherzustellen, "
+"dass Sie beim Cross-Bauen den richtigen Wert haben."
+
+#. type: textblock
+#: dh_installdeb:190 dh_installdebconf:149
+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 ""
+"Wenn Markierungen dieses Musters auch unter größten Anstrengungen nicht zu "
+"einer Variable in L<dpkg-architecture(1)> passen, werden sie so belassen, "
+"wie sie sind."
+
+#. type: =item
+#: dh_installdeb:193 dh_installdebconf:152
+msgid "#ENV.I<NAME>#"
+msgstr "#ENV.I<NAME>#"
+
+#. type: textblock
+#: dh_installdeb:195 dh_installdebconf:154
+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 ""
+"Markierungen dieser Form werden durch den Wert der entsprechenden "
+"Umgebungsvariable ersetzt. Falls eine Umgebungsvariable nicht gesetzt ist, "
+"wird die Markierung durch die leere Zeichenkette ersetzt."
+
+#. type: textblock
+#: dh_installdeb:200 dh_installdebconf:159
+msgid ""
+"Note that there are limits on which names can be used (see L</Limitations in "
+"token names>)."
+msgstr ""
+"Beachten Sie, dass es Einschränkungen gibt, welche Namen verwendet werden "
+"können (siehe L</Einschränkungen in Markierungsnamen>)."
+
+#. type: =item
+#: dh_installdeb:203 dh_installdebconf:162
+msgid "#PACKAGE#"
+msgstr "#PACKAGE#"
+
+#. type: textblock
+#: dh_installdeb:205 dh_installdebconf:164
+msgid ""
+"This token is by default replaced by the package name, which will contain "
+"the concrete script."
+msgstr ""
+"Diese Markierung wird standardmäßig durch den Namen des Paketes ersetzt, "
+"welches das wirkliche Skript enthält."
+
+#. type: =head2
+#: dh_installdeb:210 dh_installdebconf:169
+msgid "Limitations in token names"
+msgstr "Einschränkungen in Markierungsnamen"
+
+#. type: textblock
+#: dh_installdeb:212 dh_installdebconf:171
+msgid ""
+"All tokens intended to be substituted must match the regex: #[A-Za-z0-9_.+]+#"
+msgstr ""
+"Alle Markierungen, die zur Ersetzung vorgesehen sind, müssen zum regulären "
+"Ausdruck #[A-Za-z0-9_.+]+# passen."
+
+#. type: textblock
+#: dh_installdeb:214
+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 ""
+"Markierungen, die nicht auf diesen Ausdruck passen, werden stillschweigend "
+"ignoriert, falls sie in der Skriptschablone gefunden werden. Ungültige "
+"Markierungsnamen, die per B<-D> oder B<--define> übergeben wurden, führen in "
+"den meisten Fällen dazu, dass B<dh_installdeb> den Befehl mit einem Fehler "
+"zurückweist."
#. type: textblock
#: dh_installdebconf:5
@@ -4259,7 +8275,7 @@ msgstr ""
"Paketbauverzeichnis benutzt werden"
#. type: textblock
-#: dh_installdebconf:14
+#: dh_installdebconf:17
msgid ""
"B<dh_installdebconf> [S<I<debhelper options>>] [B<-n>] [S<B<--> I<params>>]"
msgstr ""
@@ -4267,40 +8283,39 @@ msgstr ""
"I<Parameter>>]"
#. type: textblock
-#: dh_installdebconf:18
+#: dh_installdebconf:21
msgid ""
"B<dh_installdebconf> is a debhelper program that is responsible for "
"installing files used by debconf into package build directories."
msgstr ""
-"B<dh_installdebconf> ist ein Debhelper-Programm, das für die Installation "
-"von Dateien zuständig ist, die von Debconf in Paketbauverzeichnissen "
-"installiert werden."
+"B<dh_installdebconf> ist ein Debhelper-Programm, das dafür zuständig ist, "
+"die Dateien, die von Debconf verwendet werden, in die Paketbauverzeichnisse "
+"zu installieren."
#. type: textblock
-#: dh_installdebconf:21
+#: dh_installdebconf:24
msgid ""
"It also automatically generates the F<postrm> commands needed to interface "
"with debconf. The commands are added to the maintainer scripts by "
"B<dh_installdeb>. See L<dh_installdeb(1)> for an explanation of how that "
"works."
msgstr ""
-"Es erzeugt außerdem automatisch die für das Verbinden mit Debconf nötigen "
-"F<postrm>-Befehle. Die Befehle werden den Betreuerskripten durch "
-"B<dh_installdeb> hinzugefügt. Eine Erklärung, wie dies funktioniert, finden "
-"Sie in L<dh_installdeb(1)>."
+"Es erzeugt außerdem automatisch die für die Verbindung mit Debconf nötigen "
+"F<postrm>-Befehle. B<dh_installdeb> trägt die Befehle in die Betreuerskripte "
+"ein. Eine Erklärung, wie das funktioniert, finden Sie in L<dh_installdeb(1)>."
#. type: textblock
-#: dh_installdebconf:26
+#: dh_installdebconf:29
msgid ""
"Note that if you use debconf, your package probably needs to depend on it "
"(it will be added to B<${misc:Depends}> by this program)."
msgstr ""
-"Beachten Sie, falls Sie Debconf benutzen, dass Ihr Paket wahrscheinlich "
-"davon abhängen muss (durch dieses Programm wird B<${misc:Depends}> "
+"Beachten Sie, dass, falls Sie Debconf benutzen, Ihr Paket wahrscheinlich "
+"davon abhängen muss (es wird durch dieses Programm zu B<${misc:Depends}> "
"hinzugefügt)."
#. type: textblock
-#: dh_installdebconf:29
+#: dh_installdebconf:32
msgid ""
"Note that for your config script to be called by B<dpkg>, your F<postinst> "
"needs to source debconf's confmodule. B<dh_installdebconf> does not install "
@@ -4308,17 +8323,17 @@ msgid ""
"right."
msgstr ""
"Beachten Sie für Ihr durch B<dpkg> aufgerufenes Konfigurationsskript, dass "
-"sich Ihr F<postinst> das Confmodul von Debconf einbinden muss. "
+"Ihr F<postinst> das Confmodul von Debconf einbinden muss. "
"B<dh_installdebconf> installiert die benötigten Befehle nicht automatisch in "
-"F<postinst>, da es zu schwierig ist, dies richtig zu tun."
+"F<postinst>, da es zu schwierig ist, dies richtig zu machen."
#. type: =item
-#: dh_installdebconf:38
+#: dh_installdebconf:41
msgid "debian/I<package>.config"
msgstr "debian/I<Paket>.config"
#. type: textblock
-#: dh_installdebconf:40
+#: dh_installdebconf:43
msgid ""
"This is the debconf F<config> script, and is installed into the F<DEBIAN> "
"directory in the package build directory."
@@ -4327,7 +8342,7 @@ msgstr ""
"Paketbauverzeichnis installiert."
#. type: textblock
-#: dh_installdebconf:43
+#: dh_installdebconf:46
msgid ""
"Inside the script, the token B<#DEBHELPER#> is replaced with shell script "
"snippets generated by other debhelper commands."
@@ -4336,12 +8351,12 @@ msgstr ""
"Skriptschnipsel ersetzt, die durch andere Debhelper-Befehle erzeugt wurden."
#. type: =item
-#: dh_installdebconf:46
+#: dh_installdebconf:49
msgid "debian/I<package>.templates"
msgstr "debian/I<Paket>.template"
#. type: textblock
-#: dh_installdebconf:48
+#: dh_installdebconf:51
msgid ""
"This is the debconf F<templates> file, and is installed into the F<DEBIAN> "
"directory in the package build directory."
@@ -4350,12 +8365,12 @@ msgstr ""
"Paketbauverzeichnis installiert."
#. type: =item
-#: dh_installdebconf:51
+#: dh_installdebconf:54
msgid "F<debian/po/>"
msgstr "F<debian/po/>"
#. type: textblock
-#: dh_installdebconf:53
+#: dh_installdebconf:56
msgid ""
"If this directory is present, this program will automatically use "
"L<po2debconf(1)> to generate merged templates files that include the "
@@ -4363,25 +8378,140 @@ msgid ""
msgstr ""
"Falls dieses Verzeichnis vorhanden ist, wird dieses Programm automatisch "
"L<po2debconf(1)> benutzen, um zusammengefügte Schablonendateien zu erzeugen, "
-"die Übersetzungen von dort enthalten."
+"die Übersetzungen aus dem Verzeichnis enthalten."
#. type: textblock
-#: dh_installdebconf:57
+#: dh_installdebconf:60
msgid "For this to work, your package should build-depend on F<po-debconf>."
msgstr ""
"Für diese Aufgabe sollte Ihr Paket über eine Bauabhängigkeit auf F<po-"
"debconf> verfügen."
#. type: textblock
-#: dh_installdebconf:67
+#: dh_installdebconf:70
msgid "Do not modify F<postrm> script."
-msgstr "ändert nicht das F<postrm>-Skript."
+msgstr "Ncht das F<postrm>-Skript ändern."
#. type: textblock
-#: dh_installdebconf:71
+#: dh_installdebconf:74
msgid "Pass the params to B<po2debconf>."
msgstr "Übergeben der Parameter an B<po2debconf>."
+#. type: verbatim
+#: dh_installdebconf:93
+#, no-wrap
+msgid ""
+"\tcat >> debian/config <<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 ""
+"\tcat >> debian/config <<EOF\n"
+"\t#EINFACH#\n"
+"\t#DATEIBASIERT#\n"
+"\tEOF\n"
+"\techo -n \"Komplexer Wert\" > irgendeine-Datei\n"
+" dh_installdeb --define EINFACH=direkt --define DATEIBASIERT=@irgendeine-Datei\n"
+"\n"
+
+#. type: textblock
+#: dh_installdebconf:103
+msgid ""
+"It is also possible to set package-specific values for a given token. This "
+"is useful when B<dh_installdebconf> 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 ""
+"Es ist auch möglich, paketspezifische Werte für eine angegebene Markierung "
+"zu setzen, was hilfreich ist, wenn B<dh_installdeb> mit mehreren Paketen "
+"agiert, die unterschiedliche Werte für dieselbe Markierung benötigen. Dazu "
+"wird B<< pkg.I<Paketname>. >> vor die Markierung gestellt."
+
+#. type: verbatim
+#: dh_installdebconf:110
+#, no-wrap
+msgid ""
+"\tcat >> debian/foo.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/bar.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/baz.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+" dh_installdebconf -pfoo -pbar -pbaz --define TOKEN=default --define pkg.bar.TOKEN=unique-bar-value \\\n"
+" --define pkg.baz.TOKEN=unique-baz-value\n"
+"\n"
+msgstr ""
+"\tcat >> debian/foo.config <<EOF\n"
+"\t# Skript für #PACKAGE#\n"
+"\t#MARKIERUNG#\n"
+"\tEOF\n"
+"\tcat >> debian/bar.config <<EOF\n"
+"\t# Skript für #PACKAGE#\n"
+"\t#MARKIERUNG#\n"
+"\tEOF\n"
+"\tcat >> debian/baz.config <<EOF\n"
+"\t# Skript für #PACKAGE#\n"
+"\t#MARKIERUNG#\n"
+"\tEOF\n"
+" dh_installdeb -pfoo -pbar -pbaz --define MARKIERUNG=Vorgabe --define pkg.bar.MARKIERUNG=eindeutiger-bar-wert \\\n"
+" --define pkg.baz.MARKIERUNG=eindeutiger-baz-wert\n"
+"\n"
+
+#. type: textblock
+#: dh_installdebconf:125
+msgid ""
+"In this example, B<#TOKEN#> will expand to B<default> in F<debian/foo."
+"config>, to B<unique-bar-value> in F<debian/bar.config> and to B<unique-baz-"
+"value> in F<debian/baz.config>."
+msgstr ""
+"In diesem Beispiel wird B<#MARKIERUNG#> in F<debian/foo.config> zu "
+"B<Vorgabe>, in F<debian/bar.config> zu B<eindeutiger-bar-wert> und in "
+"F<debian/baz.config> zu B<eindeutiger-baz-wert> expandiert."
+
+#. type: textblock
+#: dh_installdebconf:129
+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.config> and it "
+"will be replaced by B<unique-bar-value>."
+msgstr ""
+"Beachten Sie, dass die B<#pkg.*#>-Markierungen in allen Skripten, mit denen "
+"gearbeitet wird, sichtbar sind. Sie können sich z. B. auf B<#pkg.bar."
+"MARKIERUNG#> innerhalb von F<debian/foo.config> beziehen und es wird durch "
+"B<eindeutiger-bar-wert> ersetzt."
+
+#. type: textblock
+#: dh_installdebconf:137
+msgid ""
+"The B<dh_installdebconf> will automatically replace the following tokens "
+"inside a provided maintainer script (if not replaced via B<-D>/B<--define>):"
+msgstr ""
+"B<dh_installdeb> wird automatisch die folgenden Markierungen innerhalb eines "
+"bereitgestellten Betreuerskripts ersetzen (falls sie nicht über B<-D>/B<--"
+"define> ersetzt werden):"
+
+#. type: textblock
+#: dh_installdebconf:173
+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_installdebconf> to reject the command with an error in most cases."
+msgstr ""
+"Markierungen, die nicht auf diesen Ausdruck passen, werden stillschweigend "
+"ignoriert, falls sie in der Skriptschablone gefunden werden. Ungültige "
+"Markierungsnamen, die per B<-D> oder B<--define> übergeben wurden, führen in "
+"den meisten Fällen dazu, dass B<dh_installdebconf> den Befehl mit einem "
+"Fehler zurückweist."
+
#. type: textblock
#: dh_installdirs:5
msgid "dh_installdirs - create subdirectories in package build directories"
@@ -4389,12 +8519,16 @@ msgstr ""
"dh_installdirs - erstellt Unterverzeichnisse in den Paketbauverzeichnissen"
#. type: textblock
-#: dh_installdirs:14
-msgid "B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [S<I<dir> ...>]"
-msgstr "B<dh_installdirs> [S<I<Debhelper-Optionen>>] [B<-A>] [S<I<Verz> …>]"
+#: dh_installdirs:17
+msgid ""
+"B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [B<--sourcedir=>I<dir>] "
+"[B<--create-in-sourcedir>] [S<I<dir> ...>]"
+msgstr ""
+"B<dh_installdirs> [S<I<Debhelper-Optionen>>] [B<-A>] [B<--"
+"sourcedir=>I<Verz>] [B<--create-in-sourcedir>] [S<I<Verz> …>]"
#. type: textblock
-#: dh_installdirs:18
+#: dh_installdirs:21
msgid ""
"B<dh_installdirs> is a debhelper program that is responsible for creating "
"subdirectories in package build directories."
@@ -4402,18 +8536,39 @@ msgstr ""
"B<dh_installdirs> ist ein Debhelper-Programm, das für das Erstellen von "
"Unterverzeichnissen in den Paketbauverzeichnisse zuständig ist."
+#. type: textblock
+#: dh_installdirs:24
+msgid ""
+"Many packages can get away with omitting the call to B<dh_installdirs> "
+"completely. Notably, other B<dh_*> commands are expected to create "
+"directories as needed."
+msgstr ""
+"Viele Pakete kommen um den Aufruf von B<dh_installdirs> komplett herum. "
+"Insbesondere ist von anderen B<dh_*>-Befehlen zu erwarten, dass sie "
+"Verzeichnisse bei Bedarf selbst erstellen."
+
#. type: =item
-#: dh_installdirs:25
+#: dh_installdirs:32
msgid "debian/I<package>.dirs"
msgstr "debian/I<Paket>.dirs"
#. type: textblock
-#: dh_installdirs:27
+#: dh_installdirs:34
msgid "Lists directories to be created in I<package>."
-msgstr "listet Verzeichnisse auf, die in I<Paket> erstellt werden"
+msgstr "Listet Verzeichnisse auf, die in I<Paket> erstellt werden."
#. type: textblock
-#: dh_installdirs:37
+#: dh_installdirs:36
+msgid ""
+"Generally, there is no need to list directories created by the upstream "
+"build system or directories needed by other B<debhelper> commands."
+msgstr ""
+"Meist ist es nicht erforderlich, Verzeichnisse aufzuführen, die vom "
+"Bausystem der Ursprungsautoren erstellt worden sind oder die von anderen "
+"B<Debhelper>-Befehlen benötigt werden."
+
+#. type: textblock
+#: dh_installdirs:51
msgid ""
"Create any directories specified by command line parameters in ALL packages "
"acted on, not just the first."
@@ -4422,12 +8577,53 @@ msgstr ""
"wurden, in ALLEN Paketen, auf die es sich auswirkt, nicht nur im ersten."
#. type: =item
-#: dh_installdirs:40
+#: dh_installdirs:54
+msgid "B<--create-in-sourcedir>, B<--no-create-in-sourcedir>"
+msgstr "B<--create-in-sourcedir>, B<--no-create-in-sourcedir>"
+
+#. type: textblock
+#: dh_installdirs:56
+msgid ""
+"Whether to create the specified directories in the source directory (usually "
+"F<debian/tmp>) I<in addition to> in the package build directory (usually F<< "
+"debian/I<package> >>)."
+msgstr ""
+"Werden die angegebenen Verzeichnisse im Quellverzeichnis (üblicherweise "
+"F<debian/tmp>) I<zusätzlich> zum Paketbauverzeichnis (üblicherweise F<< "
+"debian/I<Paket> >>) erzeugt?"
+
+#. type: textblock
+#: dh_installdirs:60
+msgid "The default is B<--no-create-in-sourcedir>."
+msgstr "Die Voreinstellung ist B<--no-create-in-sourcedir>."
+
+#. type: textblock
+#: dh_installdirs:64
+msgid ""
+"Consider I<dir> the source directory for the packages acted on instead of "
+"the default (which is usually F<debian/tmp>)."
+msgstr ""
+"I<Verz> soll anstatt der Vorgabe (normalerweise F<debian/tmp>) als "
+"Quellverzeichnis, auf dem gearbeitet wird, betrachtet werden."
+
+#. type: textblock
+#: dh_installdirs:67
+msgid ""
+"Please note that this option is dependent on the B<--create-in-sourcedir> "
+"option (when B<--no-create-in-sourcedir> is in effect, this option does "
+"nothing in B<dh_installdirs>)."
+msgstr ""
+"Bitte beachten Sie, dass diese Option von der Option B<--create-in-"
+"sourcedir> abhängt (wenn B<--no-create-in-sourcedir> in Kraft ist, tut diese "
+"Option in B<dh_installdirs> nichts)."
+
+#. type: =item
+#: dh_installdirs:71
msgid "I<dir> ..."
msgstr "I<Verz> …"
#. type: textblock
-#: dh_installdirs:42
+#: dh_installdirs:73
msgid ""
"Create these directories in the package build directory of the first package "
"acted on. (Or in all packages if B<-A> is specified.)"
@@ -4436,12 +8632,12 @@ msgstr ""
"die es sich auswirkt (oder in allen Paketen, falls B<-A> angegeben wurde)."
#. type: textblock
-#: dh_installdocs:5
+#: dh_installdocs:7
msgid "dh_installdocs - install documentation into package build directories"
msgstr "dh_installdocs - installiert Dokumentation in Paketbauverzeichnisse"
#. type: textblock
-#: dh_installdocs:14
+#: dh_installdocs:19
msgid ""
"B<dh_installdocs> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
"[S<I<file> ...>]"
@@ -4450,32 +8646,71 @@ msgstr ""
"[S<I<Datei> …>]"
#. type: textblock
-#: dh_installdocs:18
+#: dh_installdocs:23
msgid ""
"B<dh_installdocs> is a debhelper program that is responsible for installing "
"documentation into F<usr/share/doc/package> in package build directories."
msgstr ""
"B<dh_installdocs> ist ein Debhelper-Programm, das für die Installation von "
-"Dokumentation in F<usr/share/doc/Paket> im Paketbauverzeichniszuständig ist."
+"Dokumentation in F<usr/share/doc/Paket> im Paketbauverzeichnis zuständig ist."
+
+#. type: textblock
+#: dh_installdocs:26
+msgid ""
+"In compat 10 and earlier, L<dh_install(1)> may be a better tool for handling "
+"the upstream documentation, when upstream's own build system installs all "
+"the desired documentation correctly. In this case, B<dh_installdocs> is "
+"still useful for installing packaging related documentation (e.g. the "
+"F<debian/copyright> file)."
+msgstr ""
+"In Kompatibilitätsstufe 10 und älter war L<dh_install(1)> möglicherweise ein "
+"besseres Werkzeug zur Handhabung von Dokumentation der Ursprungsautoren, "
+"wenn das eigene Bausystem der Ursprungsautoren sämtliche gewünschte "
+"Dokumentation korrekt installierte. In diesem Fall kann B<dh_installdocs> "
+"immer noch paketierungsbezogene Dokumentation (z.B. die Datei F<debian/"
+"copyright>) installieren."
+
+#. type: textblock
+#: dh_installdocs:31 dh_installexamples:27 dh_installinfo:24 dh_installman:69
+msgid ""
+"From debhelper compatibility level 11 on, B<dh_install> will fall back to "
+"looking in F<debian/tmp> for files, if it does not find them in the current "
+"directory (or wherever you've told it to look using B<--sourcedir>)."
+msgstr ""
+"Ab Debhelper-Kompatibilitätsstufe 11 wird B<dh_install> in F<debian/tmp> "
+"nach Dateien suchen, wenn es sie nicht im aktuellen Verzeichnis findet (oder "
+"wo auch immer Sie ihm mit B<--sourcedir> aufgetragen haben zu suchen)."
+
+#. type: textblock
+#: dh_installdocs:35
+msgid ""
+"In compat 11 and later, B<dh_installdocs> offers many of the features that "
+"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 "
+"B<dh_installdocs> außerdem das Bauprofil B<nodoc>, um Dokumentation "
+"(unabhängig von der Kompatibilitätsstufe) auszuschließen."
#. type: =item
-#: dh_installdocs:25
+#: dh_installdocs:44
msgid "debian/I<package>.docs"
msgstr "debian/I<Paket>.docs"
#. type: textblock
-#: dh_installdocs:27
+#: dh_installdocs:46
msgid "List documentation files to be installed into I<package>."
msgstr ""
"listet Dokumentationsdateien auf, die in I<Paket> installiert werden sollen."
#. type: =item
-#: dh_installdocs:29
+#: dh_installdocs:51
msgid "F<debian/copyright>"
msgstr "F<debian/copyright>"
#. type: textblock
-#: dh_installdocs:31
+#: dh_installdocs:53
msgid ""
"The copyright file is installed into all packages, unless a more specific "
"copyright file is available."
@@ -4484,22 +8719,22 @@ msgstr ""
"speziellere Copyright-Datei verfügbar ist."
#. type: =item
-#: dh_installdocs:34
+#: dh_installdocs:56
msgid "debian/I<package>.copyright"
msgstr "debian/I<Paket>.copyright"
#. type: =item
-#: dh_installdocs:36
+#: dh_installdocs:58
msgid "debian/I<package>.README.Debian"
msgstr "debian/I<Paket>.README.Debian"
#. type: =item
-#: dh_installdocs:38
+#: dh_installdocs:60
msgid "debian/I<package>.TODO"
msgstr "debian/I<Paket>.TODO"
#. type: textblock
-#: dh_installdocs:40
+#: dh_installdocs:62
msgid ""
"Each of these files is automatically installed if present for a I<package>."
msgstr ""
@@ -4507,17 +8742,17 @@ msgstr ""
"vorhanden ist."
#. type: =item
-#: dh_installdocs:43
+#: dh_installdocs:65
msgid "F<debian/README.Debian>"
msgstr "F<debian/README.Debian>"
#. type: =item
-#: dh_installdocs:45
+#: dh_installdocs:67
msgid "F<debian/TODO>"
msgstr "F<debian/TODO>"
#. type: textblock
-#: dh_installdocs:47
+#: dh_installdocs:69
msgid ""
"These files are installed into the first binary package listed in debian/"
"control."
@@ -4526,22 +8761,22 @@ msgstr ""
"control« aufgeführt ist."
#. type: textblock
-#: dh_installdocs:50
+#: dh_installdocs:72
msgid ""
"Note that F<README.debian> files are also installed as F<README.Debian>, and "
"F<TODO> files will be installed as F<TODO.Debian> in non-native packages."
msgstr ""
"Beachten Sie, dass F<README.debian>-Dateien auch als F<README.Debian> und "
-"F<TODO>-Dateien in nicht nativen Paketen auch als F<TODO.Debian> installiert "
+"F<TODO>-Dateien in nicht-nativen Paketen auch als F<TODO.Debian> installiert "
"werden."
#. type: =item
-#: dh_installdocs:53
+#: dh_installdocs:75
msgid "debian/I<package>.doc-base"
msgstr "debian/I<Paket>.doc-base"
#. type: textblock
-#: dh_installdocs:55
+#: dh_installdocs:77
msgid ""
"Installed as doc-base control files. Note that the doc-id will be determined "
"from the B<Document:> entry in the doc-base control file in question. In the "
@@ -4551,17 +8786,17 @@ msgid ""
msgstr ""
"sind als doc-base-Steuerdateien installiert. Beachten Sie, dass die Doc-ID "
"vom Eintrag B<Document:> in der bestreffenden Doc-base-Steuerdatei bestimmt "
-"wird. Im Fall, dass mehrere Doc-base-Dateien in einem einzelnen Quellpaket "
-"die gleiche Doc-ID gemeinsam benutzen, werden sie nach usr/share/doc-base/"
-"package statt nach usr/share/doc-base/doc-id installiert."
+"wird. In dem Fall, dass mehrere Doc-base-Dateien in einem einzelnen "
+"Quellpaket die gleiche Doc-ID gemeinsam benutzen, werden sie nach usr/share/"
+"doc-base/package statt nach usr/share/doc-base/doc-id installiert."
#. type: =item
-#: dh_installdocs:61
+#: dh_installdocs:83
msgid "debian/I<package>.doc-base.*"
msgstr "debian/I<Paket>.doc-base.*"
#. type: textblock
-#: dh_installdocs:63
+#: dh_installdocs:85
msgid ""
"If your package needs to register more than one document, you need multiple "
"doc-base files, and can name them like this. In the event that multiple doc-"
@@ -4570,22 +8805,39 @@ msgid ""
"doc-base/doc-id."
msgstr ""
"Falls es nötig ist, dass Ihr Paket mehr als ein Dokument registriert, "
-"benötigen Sie mehrere Doc-base-Dateien und können sie so wie diese benennen. "
-"Im Fall, dass mehrere Doc-base-Dateien in diesem Stil in einem einzelnen "
-"Quellpaket die gleiche Doc-ID gemeinsam benutzen, werden sie nach usr/share/"
-"doc-base/package-* statt nach usr/share/doc-base/doc-id installiert."
+"benötigen Sie mehrere Doc-base-Dateien und können sie auf diese Weise "
+"benennen. In dem Fall, dass mehrere solche Doc-base-Dateien in einem "
+"einzelnen Quellpaket die gleiche Doc-ID gemeinsam benutzen, werden sie nach "
+"usr/share/doc-base/package-* statt nach usr/share/doc-base/doc-id "
+"installiert."
#. type: textblock
-#: dh_installdocs:77 dh_installinfo:37 dh_installman:67
+#: dh_installdocs:91
+msgid ""
+"Please be aware that this deduplication is currently done in memory only, so "
+"for now it requires B<dh_installdocs> to be called no more than once during "
+"the package build. Calling B<dh_installdocs -p>I<package> in combination "
+"with using F<debian/>I<package>F<.doc-base.*> files can lead to "
+"uninstallable packages. See L<https://bugs.debian.org/980903> for details."
+msgstr ""
+"Bitte behalten Sie im Hinterkopf dass diese Deduplikation derzeit nur im "
+"Speicher stattfindet, daher darf B<dh_installdocs> nur ein einziges Mal "
+"während des Bauvorgangs aufgerufen werden. Wenn Sie B<dh_installdocs -"
+"p>I<Paket> aufrufen und gleichzeitig F<debian/>I<Paket>F<.doc-base.*>-"
+"Dateien verwenden, können dabei uninstallierbare Pakete herauskommen. Siehe "
+"L<https://bugs.debian.org/980903> für Details."
+
+#. type: textblock
+#: dh_installdocs:106 dh_installinfo:47 dh_installman:92
msgid ""
"Install all files specified by command line parameters in ALL packages acted "
"on."
msgstr ""
-"installiert alle Dateien, die durch Befehlszeilenparameter in ALLEN Paketen "
-"angegeben werden, auf die es sich auswirkt."
+"installiert alle durch Befehlszeilenparameter angegebenen Dateien in ALLEN "
+"Paketen, auf die es sich auswirkt."
#. type: textblock
-#: dh_installdocs:82
+#: dh_installdocs:111
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"installed. Note that this includes doc-base files."
@@ -4593,13 +8845,89 @@ msgstr ""
"schließt Dateien von der Installation aus, die I<Element> in ihrem "
"Dateinamen enthalten. Beachten Sie, dass dies doc-base-Dateien einschließt."
+#. type: textblock
+#: dh_installdocs:116 dh_installexamples:59 dh_installinfo:52 dh_installman:102
+msgid ""
+"Look in the specified directory for files to be installed. This option "
+"requires compat 11 or later (it is silently ignored in compat 10 or earlier)."
+msgstr ""
+"schaut im angegebenen Verzeichnis nach Dateien, die installiert werden "
+"sollen. Diese Option erfordert Kompatibilitätsstufe 11 oder höher (sie wird "
+"in Kompatibilitätsstufe 10 und darunter stillschweigend ignoriert)."
+
+#. type: textblock
+#: dh_installdocs:119 dh_installman:105
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installman> automatically looks for files in F<debian/tmp> in debhelper "
+"compatibility level 11 and above."
+msgstr ""
+"Beachten Sie, dass dies nicht das Gleiche wie die Option B<--"
+"sourcedirectory> ist, die von B<dh_auto_>I<*>-Befehlen benutzt wird. Sie "
+"benötigen diese Option selten, da B<dh_installman> in Debhelper-"
+"Kompatibilitätsstufe 11 und darüber automatisch in F<debian/tmp> nach "
+"Dateien sucht."
+
#. type: =item
-#: dh_installdocs:85
+#: dh_installdocs:124 dh_installexamples:67
+msgid "B<--doc-main-package=>I<main-package>"
+msgstr "B<--doc-main-package=>I<Hauptpaket>"
+
+#. type: textblock
+#: dh_installdocs:126 dh_installexamples:69
+msgid ""
+"Set the main package for a documentation package. This is used to install "
+"the documentation of the documentation package in F<< /usr/share/doc/I<main-"
+"package> >> as recommended by the Debian policy manual 3.9.7 in §12.3."
+msgstr ""
+"setzt das Hauptpaket für ein Dokumentationspaket. Dies wird zur Installation "
+"der Dokumentation des Dokumentationspakets in F<< /usr/share/doc/"
+"I<Hauptpaket> >> benutzt, wie es das Debian-Richlinienhandbuch 3.9.7 in "
+"§12.3 empfiehlt."
+
+#. type: textblock
+#: dh_installdocs:131 dh_installexamples:74
+msgid ""
+"In compat 11 (or later), this option is only useful if debhelper's auto-"
+"detection of the main package is wrong. The option can also be used to "
+"silence a warning from debhelper when the auto-detection fails but the "
+"default happens to be correct."
+msgstr ""
+"In Kompatibilitätsstufe 11 (oder höher) ist diese Option nur dann nützlich, "
+"wenn Debhelpers automatische Erkennung des Hauptpakets falsch ist. Die "
+"Option kann außerdem benutzt werden, um eine Warnung von Debhelper zu "
+"unterdrücken, wenn die automatische Erkennung fehlschlägt, die "
+"Voreinstellung aber korrekt funktioniert."
+
+#. type: textblock
+#: dh_installdocs:136
+msgid ""
+"This option cannot be used when B<dh_installdocs> is instructed to act on "
+"multiple packages. If you need this option, you will generally need to "
+"combine it with B<-p> to ensure exactly one package is acted on."
+msgstr ""
+"Diese Option kann nicht verwendet werden, wenn B<dh_installdocs> angewiesen "
+"wurde, auf mehrere Pakete einzuwirken. Falls Sie diese Option benötigen, "
+"werden Sie sie üblicherweise mit B<-p> kombinieren müssen, um "
+"sicherzustellen, dass nur auf exakt ein Paket eingewirkt wird."
+
+#. type: textblock
+#: dh_installdocs:141
+msgid ""
+"Please keep in mind that some documentation (the copyright file, README."
+"Debian, etc.) will be unaffected by this option."
+msgstr ""
+"Bitte denken Sie daran, dass manche Dokumentation (die Copyright-Datei, "
+"README.Debian, etc.) nicht von dieser Option beeinflusst wird."
+
+#. type: =item
+#: dh_installdocs:144
msgid "B<--link-doc=>I<package>"
msgstr "B<--link-doc=>I<Paket>"
#. type: textblock
-#: dh_installdocs:87
+#: dh_installdocs:146
msgid ""
"Make the documentation directory of all packages acted on be a symlink to "
"the documentation directory of I<package>. This has no effect when acting on "
@@ -4608,7 +8936,7 @@ msgid ""
"be a binary package that comes from the same source package."
msgstr ""
"veranlasst, dass das Dokumentationsverzeichnis aller Pakete, auf die es sich "
-"auswirkt, ein symbolischer Verweis auf das Dokumentationsverzeichnis von "
+"auswirkt, ein symbolischer Link auf das Dokumentationsverzeichnis von "
"I<Paket> ist. Dies hat keine Auswirkungen, wenn auf das I<Paket> selbst "
"eingewirkt wird oder falls das Dokumentationsverzeichnis, das erstellt "
"werden soll, bereits bei der Ausführung von B<dh_installdocs> existiert. Um "
@@ -4616,7 +8944,7 @@ msgstr ""
"selben Quellpaket stammt."
#. type: textblock
-#: dh_installdocs:93
+#: dh_installdocs:152
msgid ""
"debhelper will try to avoid installing files into linked documentation "
"directories that would cause conflicts with the linked package. The B<-A> "
@@ -4624,26 +8952,77 @@ msgid ""
"directories, and F<copyright>, F<changelog>, F<README.Debian>, and F<TODO> "
"files will not be installed."
msgstr ""
-"Debhelper wird versuchen, die Installation von Dateien in verknüpfte "
-"Dokumentationsverzeichnisse zu verhindern, die Konflikte mit dem verknüpften "
+"Debhelper wird versuchen, die Installation von Dateien in verlinkte "
+"Dokumentationsverzeichnisse zu verhindern, die Konflikte mit dem verlinkten "
"Paket verursachen würden. Die Option B<-A> wird keine Auswirkungen auf "
-"Pakete mit verknüpften Dokumentationsverzeichnissen haben und die Dateien "
+"Pakete mit verlinkten Dokumentationsverzeichnissen haben und die Dateien "
"F<copyright>, F<changelog>, F<README.Debian> und F<TODO> werden nicht "
"installiert."
#. type: textblock
-#: dh_installdocs:99
+#: dh_installdocs:158
msgid ""
"(An older method to accomplish the same thing, which is still supported, is "
"to make the documentation directory of a package be a dangling symlink, "
"before calling B<dh_installdocs>.)"
msgstr ""
-"(Eine ältere Methode, um dasselbe zu erreichen, die immer noch unterstützt "
+"(Eine ältere Methode, die dasselbe errecht und die immer noch unterstützt "
"wird, besteht darin, das Dokumentationsverzeichnis eines Pakets als defekten "
-"symbolischen Verweis zu erstellen, bevor B<dh_installdocs> aufgerufen wird.)"
+"symbolischen Link zu erstellen, bevor B<dh_installdocs> aufgerufen wird.)"
+
+#. type: textblock
+#: dh_installdocs:162
+msgid ""
+"Please note that this option only applies to the documentation directory for "
+"the package itself. When the package ships documentation for another "
+"package (e.g. see B<--doc-main-package>), it will not use a symlink for the "
+"documentation of the other package."
+msgstr ""
+"Bitte beachten Sie, dass diese Option nur für das Dokumentationsverzeichnis "
+"des Pakets selbst gilt. Wenn das Paket Dokumentation für ein anderes Paket "
+"mitbringt (siehe z. B. B<--doc-main-package>), wird kein symbolischer Link "
+"für die Dokumentation des anderen Pakets verwendet."
#. type: textblock
-#: dh_installdocs:105
+#: dh_installdocs:168
+msgid ""
+"B<CAVEAT 1>: If a previous version of the package was built without this "
+"option and is now built with it (or vice-versa), it requires a \"dir to "
+"symlink\" (or \"symlink to dir\") migration. Since debhelper has no "
+"knowledge of previous versions, you have to enable this migration itself."
+msgstr ""
+"B<WARNUNG 1>: Falls eine vorhergehende Version des Pakets ohne diese Option "
+"gebaut wurde und nun mit ihr gebaut wird (oder umgekehrt), erfordert es eine "
+"»Verzeichnis-zu-Symlink«- (oder »Symlink-zu-Verzeichnis«)-Migration. Da "
+"Debhelper nichts über die vorhergehenden Versionen weiß, müssen Sie diese "
+"Migration selbst anstoßen."
+
+#. type: textblock
+#: dh_installdocs:174
+msgid ""
+"This can be done by providing a \"debian/I<package>.maintscript\" file and "
+"using L<dh_installdeb(1)> to provide the relevant maintainer script snippets."
+msgstr ""
+"Dies kann durch Bereitstellen einer »debian/I<Paket>.maintscript«-Datei und "
+"mittels L<dh_installdeb(1)> erledigt werden. Dadurch werden die passenden "
+"Betreuerskriptschnipsel zur Verfügung gestellt."
+
+#. type: textblock
+#: dh_installdocs:178
+msgid ""
+"B<CAVEAT 2>: The use of B<--link-doc> should only be done when the packages "
+"have same \"architecture\" type. A link from an architecture independent "
+"package to an architecture dependent package (or vice versa) will not work. "
+"Since compat 10, debhelper will actively reject unsupported combinations."
+msgstr ""
+"B<WARNUNG 2>: B<--link-doc> sollte nur benutzt werden, wenn die Pakete "
+"denselben »architecture«-Typ haben. Ein Link von einem "
+"architekturunabhängigen zu einem architekturabhängigen Paket (oder "
+"umgekehrt) wird nicht funktionieren. Seit Kompatibilitätsstufe 10 wird "
+"Debhelper nicht unterstützte Kombinationen aktiv zurückweisen."
+
+#. type: textblock
+#: dh_installdocs:186
msgid ""
"Install these files as documentation into the first package acted on. (Or in "
"all packages if B<-A> is specified)."
@@ -4652,12 +9031,12 @@ msgstr ""
"sich auswirkt (oder in allen Paketen, falls B<-A> angegeben wurde)."
#. type: textblock
-#: dh_installdocs:112
+#: dh_installdocs:193
msgid "This is an example of a F<debian/package.docs> file:"
msgstr "Dies ist ein Beispiel einer F<debian/Paket.docs>-Datei:"
#. type: verbatim
-#: dh_installdocs:114
+#: dh_installdocs:195
#, no-wrap
msgid ""
" README\n"
@@ -4677,16 +9056,15 @@ msgstr ""
"\n"
#. type: textblock
-#: dh_installdocs:123
+#: dh_installdocs:204
msgid ""
"Note that B<dh_installdocs> will happily copy entire directory hierarchies "
"if you ask it to (similar to B<cp -a>). If it is asked to install a "
"directory, it will install the complete contents of the directory."
msgstr ""
"Beachten Sie, dass B<dh_installdocs> klaglos ganze Verzeichnishierarchien "
-"kopiert, falls Sie es verlangen (ähnlich B<cp -a>). Falls verlangt wurde, "
-"ein Verzeichnis zu installieren, wird es den kompletten Inhalt des "
-"Verzeichnisses installieren."
+"kopiert, wenn Sie es verlangen (ähnlich B<cp -a>). Wenn ein Verzeichnis "
+"installieren soll, übernimmt es den kompletten Verzeichnisinhalt."
#. type: textblock
#: dh_installemacsen:5
@@ -4694,7 +9072,7 @@ msgid "dh_installemacsen - register an Emacs add on package"
msgstr "dh_installemacsen - registriert ein Emacs-Add-on-Paket"
#. type: textblock
-#: dh_installemacsen:14
+#: dh_installemacsen:17
msgid ""
"B<dh_installemacsen> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
"[B<--flavor=>I<foo>]"
@@ -4703,18 +9081,18 @@ msgstr ""
"[B<--flavor=>I<foo>]"
#. type: textblock
-#: dh_installemacsen:18
+#: dh_installemacsen:21
msgid ""
"B<dh_installemacsen> is a debhelper program that is responsible for "
"installing files used by the Debian B<emacsen-common> package into package "
"build directories."
msgstr ""
"B<dh_installemacsen> ist ein Debhelper-Programm, das für die Installation "
-"von Dateien in Paketbauverzeichnissea zuständig, die vom Debian-Paket "
+"von Dateien in Paketbauverzeichnissen zuständig ist, die vom Debian-Paket "
"B<emacsen-common> benutzt werden."
#. type: textblock
-#: dh_installemacsen:22
+#: dh_installemacsen:25
msgid ""
"It also automatically generates the F<preinst> F<postinst> and F<prerm> "
"commands needed to register a package as an Emacs add on package. The "
@@ -4722,18 +9100,18 @@ msgid ""
"L<dh_installdeb(1)> for an explanation of how this works."
msgstr ""
"Es erzeugt außerdem automatisch die F<preinst>, F<postinst>- und F<prerm>-"
-"Befehle, die benötigt werden, um ein Paket als ein Emacs-Add-on-Paket zu "
+"Befehle, die benötigt sind, um ein Paket als ein Emacs-Add-on-Paket zu "
"registrieren. Die Befehle werden den Betreuerskripten durch B<dh_installdeb> "
-"hinzugefügt. Eine Erklärung, wie dies funktioniert, finden Sie in "
+"hinzugefügt. Eine Erklärung, wie das funktioniert, finden Sie in "
"L<dh_installdeb(1)>."
#. type: =item
-#: dh_installemacsen:31
+#: dh_installemacsen:34
msgid "debian/I<package>.emacsen-compat"
msgstr "debian/I<Paket>.emacsen-compat"
#. type: textblock
-#: dh_installemacsen:33
+#: dh_installemacsen:36
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/compat/package> in the "
"package build directory."
@@ -4742,12 +9120,12 @@ msgstr ""
"Paketbauverzeichnis."
#. type: =item
-#: dh_installemacsen:36
+#: dh_installemacsen:39
msgid "debian/I<package>.emacsen-install"
msgstr "debian/I<Paket>.emacsen-install"
#. type: textblock
-#: dh_installemacsen:38
+#: dh_installemacsen:41
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/install/package> in the "
"package build directory."
@@ -4756,12 +9134,12 @@ msgstr ""
"Paketbauverzeichnis."
#. type: =item
-#: dh_installemacsen:41
+#: dh_installemacsen:44
msgid "debian/I<package>.emacsen-remove"
msgstr "debian/I<Paket>.emacsen-remove"
#. type: textblock
-#: dh_installemacsen:43
+#: dh_installemacsen:46
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/remove/package> in the "
"package build directory."
@@ -4770,12 +9148,12 @@ msgstr ""
"Paketbauverzeichnis."
#. type: =item
-#: dh_installemacsen:46
+#: dh_installemacsen:49
msgid "debian/I<package>.emacsen-startup"
msgstr "debian/I<Paket>.emacsen-startup"
#. type: textblock
-#: dh_installemacsen:48
+#: dh_installemacsen:51
msgid ""
"Installed into etc/emacs/site-start.d/50I<package>.el in the package build "
"directory. Use B<--priority> to use a different priority than 50."
@@ -4784,43 +9162,43 @@ msgstr ""
"Benutzen Sie B<--priority>, um eine andere Priorität als 50 zu verwenden."
#. type: textblock
-#: dh_installemacsen:59 dh_usrlocal:45
+#: dh_installemacsen:62 dh_usrlocal:56
msgid "Do not modify F<postinst>/F<prerm> scripts."
msgstr "ändert keine F<postinst>-/F<prerm>-Skripte."
#. type: =item
-#: dh_installemacsen:61 dh_installwm:38
+#: dh_installemacsen:64 dh_installwm:45
msgid "B<--priority=>I<n>"
msgstr "B<--priority=>I<n>"
#. type: textblock
-#: dh_installemacsen:63
+#: dh_installemacsen:66
msgid "Sets the priority number of a F<site-start.d> file. Default is 50."
msgstr ""
"setzt die Prioritätsnummer einer F<site-start.d>-Datei. Vorgabe ist 50."
#. type: =item
-#: dh_installemacsen:65
+#: dh_installemacsen:68
msgid "B<--flavor=>I<foo>"
msgstr "B<--flavor=>I<foo>"
#. type: textblock
-#: dh_installemacsen:67
+#: dh_installemacsen:70
msgid ""
"Sets the flavor a F<site-start.d> file will be installed in. Default is "
"B<emacs>, alternatives include B<xemacs> and B<emacs20>."
msgstr ""
-"setzt die Geschmacksrichtung in die eine F<site-start.d>-Datei installiert "
-"wird. Vorgabe ist B<emacs>, Alternativen umfassen B<xemacs> und B<emacs20>."
+"setzt die Variante, in der eine F<site-start.d>-Datei installiert wird. "
+"Vorgabe ist B<emacs>, zu den Alternativen gehören B<xemacs> und B<emacs20>."
#. type: textblock
-#: dh_installemacsen:143
+#: 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>"
#. type: textblock
-#: dh_installexamples:5
+#: dh_installexamples:7
msgid ""
"dh_installexamples - install example files into package build directories"
msgstr ""
@@ -4828,7 +9206,7 @@ msgstr ""
"Paketbauverzeichnisse."
#. type: textblock
-#: dh_installexamples:14
+#: dh_installexamples:19
msgid ""
"B<dh_installexamples> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
"[S<I<file> ...>]"
@@ -4837,7 +9215,7 @@ msgstr ""
"[S<I<Datei> …>]"
#. type: textblock
-#: dh_installexamples:18
+#: dh_installexamples:23
msgid ""
"B<dh_installexamples> is a debhelper program that is responsible for "
"installing examples into F<usr/share/doc/package/examples> in package build "
@@ -4848,17 +9226,26 @@ msgstr ""
"Paketbauverzeichnissen zuständig ist."
#. type: =item
-#: dh_installexamples:26
+#: dh_installexamples:35
msgid "debian/I<package>.examples"
msgstr "debian/I<Paket>.examples"
#. type: textblock
-#: dh_installexamples:28
+#: dh_installexamples:37
msgid "Lists example files or directories to be installed."
-msgstr "listet zu installierende Beispieldateien oder -verzeichnisse auf"
+msgstr "listet zu installierende Beispieldateien oder -verzeichnisse auf."
+
+#. type: textblock
+#: dh_installexamples:39
+msgid ""
+"If upstream provides an F<examples> directory, you will often want to use "
+"B<examples/*> rather than B<examples> in this file. The latter would create "
+"F<< /usr/share/doc/I<package>/examples/examples >>, which is rarely what you "
+"want."
+msgstr ""
#. type: textblock
-#: dh_installexamples:38
+#: dh_installexamples:54
msgid ""
"Install any files specified by command line parameters in ALL packages acted "
"on."
@@ -4867,7 +9254,42 @@ msgstr ""
"ALLEN Paketen, auf die es sich auswirkt."
#. type: textblock
-#: dh_installexamples:48
+#: dh_installexamples:62
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installexamples> automatically looks for files in F<debian/tmp> in "
+"debhelper compatibility level 11 and above."
+msgstr ""
+"Beachten Sie, dass dies nicht das Gleiche wie die Option B<--"
+"sourcedirectory> ist, die von B<dh_auto_>I<*>-Befehlen benutzt wird. Sie "
+"benötigen diese Option selten, da B<dh_installexamples> in Debhelper-"
+"Kompatibilitätsstufe 11 und darüber automatisch in F<debian/tmp> nach "
+"Dateien sucht."
+
+#. type: textblock
+#: dh_installexamples:79
+msgid ""
+"This option cannot be used when B<dh_installexamples> is instructed to act "
+"on multiple packages. If you need this option, you will generally need to "
+"combine it with B<-p> to ensure exactly one package is acted on."
+msgstr ""
+"Diese Option kann nicht benutzt werden, wenn B<dh_installexamples> "
+"angewiesen wurde, auf mehrere Pakete einzuwirken. Falls Sie diese Option "
+"benötigen, werden Sie sie üblicherweise mit B<-p> kombinieren müssen, um "
+"sicherzustellen, dass auf genau ein Paket eingewirkt wird."
+
+#. type: textblock
+#: dh_installexamples:86
+msgid ""
+"Exclude files that contain I<item> anywhere in their filename from being "
+"installed."
+msgstr ""
+"schließt Dateien von der Installation aus, die irgendwo in ihrem Dateinamen "
+"I<Element> enthalten."
+
+#. type: textblock
+#: dh_installexamples:91
msgid ""
"Install these files (or directories) as examples into the first package "
"acted on. (Or into all packages if B<-A> is specified.)"
@@ -4877,7 +9299,7 @@ msgstr ""
"wurde)."
#. type: textblock
-#: dh_installexamples:55
+#: dh_installexamples:98
msgid ""
"Note that B<dh_installexamples> will happily copy entire directory "
"hierarchies if you ask it to (similar to B<cp -a>). If it is asked to "
@@ -4885,8 +9307,8 @@ msgid ""
msgstr ""
"Beachten Sie, dass B<dh_installexamples> klaglos ganze "
"Verzeichnishierarchien kopiert, falls Sie es verlangen (ähnlich B<cp -a>). "
-"Falls verlangt wurde, ein Verzeichnis zu installieren, wird es den "
-"kompletten Inhalt des Verzeichnisses installieren."
+"Wenn es ein Verzeichnis installieren soll, übernimmt es auch den kompletten "
+"Verzeichnisinhalt."
#. type: textblock
#: dh_installifupdown:5
@@ -4894,12 +9316,12 @@ msgid "dh_installifupdown - install if-up and if-down hooks"
msgstr "dh_installifupdown - installiert »if-up«- und »if-down«-Hooks."
#. type: textblock
-#: dh_installifupdown:14
+#: dh_installifupdown:17
msgid "B<dh_installifupdown> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr "B<dh_installifupdown> [S<I<Debhelper-Optionen>>] [B<--name=>I<Name>]"
#. type: textblock
-#: dh_installifupdown:18
+#: dh_installifupdown:21
msgid ""
"B<dh_installifupdown> is a debhelper program that is responsible for "
"installing F<if-up>, F<if-down>, F<if-pre-up>, and F<if-post-down> hook "
@@ -4910,27 +9332,27 @@ msgstr ""
"in den Paketbauverzeichnissen zuständig ist."
#. type: =item
-#: dh_installifupdown:26
+#: dh_installifupdown:29
msgid "debian/I<package>.if-up"
msgstr "debian/I<Paket>.if-up"
#. type: =item
-#: dh_installifupdown:28
+#: dh_installifupdown:31
msgid "debian/I<package>.if-down"
msgstr "debian/I<Paket>.if-down"
#. type: =item
-#: dh_installifupdown:30
+#: dh_installifupdown:33
msgid "debian/I<package>.if-pre-up"
msgstr "debian/I<Paket>.if-pre-up"
#. type: =item
-#: dh_installifupdown:32
+#: dh_installifupdown:35
msgid "debian/I<package>.if-post-down"
msgstr "debian/I<Paket>.if-post-down"
#. type: textblock
-#: dh_installifupdown:34
+#: dh_installifupdown:37
msgid ""
"These files are installed into etc/network/if-*.d/I<package> in the package "
"build directory."
@@ -4939,7 +9361,7 @@ msgstr ""
"installiert."
#. type: textblock
-#: dh_installifupdown:45
+#: dh_installifupdown:48
msgid ""
"Look for files named F<debian/package.name.if-*> and install them as F<etc/"
"network/if-*/name>, instead of using the usual files and installing them as "
@@ -4947,7 +9369,7 @@ msgid ""
msgstr ""
"sucht nach Dateien mit Namen F<debian/Paket.Name.if-*> und installiert sie "
"als F<etc/network/if-*/Name>, statt die üblichen Dateien zu benutzen und sie "
-"als Paketname zu installieren."
+"als den Paketnamen zu installieren."
#. type: textblock
#: dh_installinfo:5
@@ -4955,12 +9377,12 @@ msgid "dh_installinfo - install info files"
msgstr "dh_installinfo - installiert Info-Dateien"
#. type: textblock
-#: dh_installinfo:14
+#: dh_installinfo:17
msgid "B<dh_installinfo> [S<I<debhelper options>>] [B<-A>] [S<I<file> ...>]"
msgstr "B<dh_installinfo> [S<I<Debhelper-Optionen>>] [B<-A>] [S<I<Datei> …>]"
#. type: textblock
-#: dh_installinfo:18
+#: dh_installinfo:21
msgid ""
"B<dh_installinfo> is a debhelper program that is responsible for installing "
"info files into F<usr/share/info> in the package build directory."
@@ -4969,17 +9391,31 @@ msgstr ""
"Dateien in F<usr/share/info> im Paketbauverzeichnis zuständig ist."
#. type: =item
-#: dh_installinfo:25
+#: dh_installinfo:32
msgid "debian/I<package>.info"
msgstr "debian/I<Paket>.info"
#. type: textblock
-#: dh_installinfo:27
+#: dh_installinfo:34
msgid "List info files to be installed."
msgstr "listet zu installierende Info-Dateien auf."
#. type: textblock
-#: dh_installinfo:42
+#: dh_installinfo:55
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installinfo> automatically looks for files in F<debian/tmp> in "
+"debhelper compatibility level 11 and above."
+msgstr ""
+"Beachten Sie, dass dies nicht das Gleiche ist wie die Option B<--"
+"sourcedirectory>, die von B<dh_auto_>I<*>-Befehlen benutzt wird. Sie "
+"benötigen diese Option selten, da B<dh_installinfo> in Debhelper-"
+"Kompatibilitätsstufe 11 und darüber automatisch in F<debian/tmp> nach "
+"Dateien sucht."
+
+#. type: textblock
+#: dh_installinfo:62
msgid ""
"Install these info files into the first package acted on. (Or in all "
"packages if B<-A> is specified)."
@@ -4996,7 +9432,7 @@ msgstr ""
"Paketbauverzeichnisse"
#. type: textblock
-#: dh_installinit:15
+#: dh_installinit:18
msgid ""
"B<dh_installinit> [S<I<debhelper options>>] [B<--name=>I<name>] [B<-n>] [B<-"
"R>] [B<-r>] [B<-d>] [S<B<--> I<params>>]"
@@ -5005,211 +9441,380 @@ msgstr ""
"R>] [B<-r>] [B<-d>] [S<B<--> I<Parameter>>]"
#. type: textblock
-#: dh_installinit:19
+#: dh_installinit:22
msgid ""
"B<dh_installinit> is a debhelper program that is responsible for installing "
-"init scripts with associated defaults files, as well as upstart job files, "
-"and systemd service files into package build directories."
+"init scripts with associated defaults files. In compatibility levels up to "
+"and including 10, B<dh_installinit> will also install some systemd related "
+"files provided by the debian packaging (see the L</FILES> section below). "
+"In compatibility levels up to and including 11, B<dh_installinit> will also "
+"handle upstart jobs provided in the debian packaging (see the L</FILES> for "
+"more information on this as well)."
msgstr ""
"B<dh_installinit> ist ein Debhelper-Programm, das für die Installation von "
-"Init-Skripten mit zugehörigen Standarddateien sowie Upstart- und Systemd-Job-"
-"Dateien in Paketbauverzeichnisse zuständig ist."
+"Init-Skripten mit den zugehörigen Standarddateien verantwortlich ist. In "
+"Kompatibilitätsstufen bis einschließlich 10 wird B<dh_installinit> auch "
+"einige Systemd-bezogenen Dateien installieren, die von Debian-Paketen "
+"bereitgestellt werden (siehe den nachfolgenden Abschnitt L</DATEIEN>). In "
+"Kompatibilitätsstufen bis einschließlich 11 wird B<dh_installinit> auch die "
+"in der Debian-Paketierung bereitgestellten Upstart-Jobs handhaben (weitere "
+"Informationen darüber finden Sie auch unter L</DATEIEN>)."
#. type: textblock
-#: dh_installinit:23
+#: dh_installinit:31
msgid ""
"It also automatically generates the F<postinst> and F<postrm> and F<prerm> "
"commands needed to set up the symlinks in F</etc/rc*.d/> to start and stop "
"the init scripts."
msgstr ""
"Es erzeugt außerdem automatisch die F<postinst>-, F<postrm>- und F<prerm>-"
-"Skripte, die nötig sind, um die symbolischen Verweise in F</etc/rc*.d/> "
+"Skripte, die nötig sind, um die symbolischen Links in F</etc/rc*.d/> "
"einzurichten und die Init-Skripte zu starten und zu stoppen."
+#. type: textblock
+#: dh_installinit:35
+msgid ""
+"In compat 10 or earlier: If a package only ships a systemd service file and "
+"no sysvinit script is provided, you may want to exclude the call to "
+"dh_installinit for that package (e.g. via B<-N>). Otherwise, you may get "
+"warnings from lintian about init.d scripts not being included in the package."
+msgstr ""
+"In Kompatibilitätsstufe 10 oder älter: Falls ein Paket nur eine Systemd-"
+"Dienstdatei mitbringt und kein Sysvinit-Skript bereitgestellt wird, möchten "
+"Sie möglicherweise den Aufruf von »dh_installinit« für dieses Paket "
+"ausschließen (z. B. per B<-N>). Andernfalls könnten Sie von Lintian "
+"Warnungen vor »init.d«-Skripte bekommen, die nicht im Paket enthalten sind."
+
#. type: =item
-#: dh_installinit:31
+#: dh_installinit:45
msgid "debian/I<package>.init"
msgstr "debian/I<Paket>.init"
#. type: textblock
-#: dh_installinit:33
+#: dh_installinit:47
msgid ""
"If this exists, it is installed into etc/init.d/I<package> in the package "
"build directory."
msgstr ""
-"Falls dies existiert, wird es in etc/init.d/I<Paket>.conf im "
-"Paketbauverzeichnis installiert."
+"Falls vorhanden, wird es in etc/init.d/I<Paket> im Paketbauverzeichnis "
+"installiert."
#. type: =item
-#: dh_installinit:36
+#: dh_installinit:50
msgid "debian/I<package>.default"
msgstr "debian/I<Paket>.default"
#. type: textblock
-#: dh_installinit:38
+#: dh_installinit:52
msgid ""
"If this exists, it is installed into etc/default/I<package> in the package "
"build directory."
msgstr ""
-"Falls dies existiert, wird es in etc/default/I<Paket> im Paketbauverzeichnis "
+"Falls vorhanden, wird es in etc/default/I<Paket> im Paketbauverzeichnis "
"installiert."
#. type: =item
-#: dh_installinit:41
+#: dh_installinit:55
msgid "debian/I<package>.upstart"
msgstr "debian/I<Paket>.upstart"
#. type: textblock
-#: dh_installinit:43
+#: dh_installinit:57
msgid ""
-"If this exists, it is installed into etc/init/I<package>.conf in the package "
-"build directory."
+"In compatibility level 11, this file will trigger an error with a reminder "
+"about ensuring the proper removal of the upstart file in the previous "
+"package version. Please consider using the \"rm_conffile\" feature from "
+"L<dh_installdeb(1)> to ensure the proper removal of previous upstart files."
msgstr ""
-"Falls dies existiert, wird es in etc/init/I<Paket>.conf im "
-"Paketbauverzeichnis installiert."
+"In Kompatibilitätsstufe 11 wird diese Datei einen Fehler auslösen, der daran "
+"erinnert, dass das ordentliche Entfernen der Upstart-Datei in der vorherigen "
+"Paketversion sichergestellt werden soll. Bitte ziehen Sie die Verwendung der "
+"Funktionalität »rm_conffile« von L<dh_installdeb(1)> in Betracht, um das "
+"ordentliche Entfernen früherer Upstart-Dateien sicherzustellen."
+
+#. type: textblock
+#: dh_installinit:62
+msgid ""
+"In compatibility level 10, if this file exists, it is installed into etc/"
+"init/I<package>.conf in the package build directory."
+msgstr ""
+"Falls diese Datei in Kompatibilitätsstufe 10 existiert, wird sie in etc/init/"
+"I<Paket>.conf im Paketbauverzeichnis installiert."
#. type: =item
-#: dh_installinit:46
+#: dh_installinit:65
msgid "debian/I<package>.service"
msgstr "debian/I<Paket>.service"
#. type: textblock
-#: dh_installinit:48
+#: dh_installinit:67
msgid ""
-"If this exists, it is installed into lib/systemd/system/I<package>.service "
-"in the package build directory."
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"service >> in the package build directory. Only used in compat levels 10 and "
+"below."
msgstr ""
-"Falls dies existiert, wird es in lib/systemd/system/I<Paket>.service im "
-"Paketbauverzeichnis installiert."
+"Falls vorhanden, wird es in F<< lib/systemd/system/I<Paket>.service >> im "
+"Paketbauverzeichnis installiert. Wird nur in Kompatibilitätsstufen 10 und "
+"darunter benutzt."
#. type: =item
-#: dh_installinit:51
+#: dh_installinit:70 dh_systemd_enable:50
msgid "debian/I<package>.tmpfile"
msgstr "debian/I<Paket>.tmpfile"
#. type: textblock
-#: dh_installinit:53
+#: dh_installinit:72
msgid ""
"If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in "
-"the package build directory. (The tmpfiles.d mechanism is currently only "
-"used by systemd.)"
+"the package build directory. Only used in compat levels 10 and below."
msgstr ""
-"Falls dies existiert, wird es in usr/lib/tmpfiles.d/I<Paket>.conf im "
-"Paketbauverzeichnis installiert. (Der »tmpfiles.d«-Mechanismus wird derzeit "
-"nur von Systemd benutzt.)"
+"Falls vorhanden, wird es in lib/systemd/system/I<Paket>.conf im "
+"Paketbauverzeichnis installiert. Wird nur in Kompatibilitätsstufen 10 und "
+"darunter benutzt."
+
+#. type: textblock
+#: dh_installinit:83
+msgid "Do not modify F<postinst>/F<postrm>/F<prerm> scripts."
+msgstr "ändert keine F<postinst>-/F<postrm>/F<prerm>-Skripte."
#. type: =item
-#: dh_installinit:67
-msgid "B<-o>, B<--onlyscripts>"
-msgstr "B<-o>, B<--onlyscripts>"
+#: dh_installinit:85
+msgid "B<-o>, B<--only-scripts>"
+msgstr "B<-o>, B<--only-scripts>"
#. type: textblock
-#: dh_installinit:69
+#: dh_installinit:87
msgid ""
"Only modify F<postinst>/F<postrm>/F<prerm> scripts, do not actually install "
"any init script, default files, upstart job or systemd service file. May be "
"useful if the file is shipped and/or installed by upstream in a way that "
"doesn't make it easy to let B<dh_installinit> find it."
msgstr ""
-"verändert nur die F<postinst>-/F<postrm>-/F<prerm>-Skripte, installiert aber "
-"tatsächlich kein Init-Skript, keine Vorgabedateien, keinen Upstart-Job und "
-"keine Systemd-Dienstdatei; kann nützlich sein, falls die Datei von den "
-"Originalautoren auf eine Art mitgeliefert/installiert wird, die es "
-"B<dh_installinit> nicht leicht macht, sie zu finden."
+"verändert nur die F<postinst>-/F<postrm>-/F<prerm>-Skripte und installiert "
+"kein Init-Skript, keine Vorgabedateien, keinen Upstart-Job und keine Systemd-"
+"Dienstdatei; kann nützlich sein, falls die Datei von den Originalautoren auf "
+"eine Art mitgeliefert/installiert wird, die es B<dh_installinit> erschwert, "
+"sie zu finden."
+
+#. type: textblock
+#: dh_installinit:92
+msgid ""
+"B<Caveat>: This will bypass all the regular checks and I<unconditionally> "
+"modify the scripts. You will almost certainly want to use this with B<-p> "
+"to limit, which packages are affected by the call. Example:"
+msgstr ""
+"B<Warnung>: Dies wird alle normalen Prüfungen umgehen und die Skripte "
+"I<bedingungslos> verändern. Sie werden es mit Sicherheit mit B<-p> verwenden "
+"wollen, um einzugrenzen, welche Pakete von dem Aufruf betroffen sind. "
+"Beispiel:"
+
+#. type: verbatim
+#: dh_installinit:97
+#, no-wrap
+msgid ""
+" override_dh_installinit:\n"
+"\tdh_installinit -pfoo --only-scripts\n"
+"\tdh_installinit --remaining\n"
+"\n"
+msgstr ""
+" override_dh_installinit:\n"
+"\tdh_installinit -pfoo --only-scripts\n"
+"\tdh_installinit --remaining\n"
+"\n"
#. type: =item
-#: dh_installinit:74
+#: dh_installinit:101
msgid "B<-R>, B<--restart-after-upgrade>"
msgstr "B<-R>, B<--restart-after-upgrade>"
#. type: textblock
-#: dh_installinit:76
+#: dh_installinit:103
msgid ""
"Do not stop the init script until after the package upgrade has been "
-"completed. This is different than the default behavior, which stops the "
-"script in the F<prerm>, and starts it again in the F<postinst>."
+"completed. This is the default behaviour in compat 10."
msgstr ""
"stoppt das Init-Skript nicht, bis das Paket-Upgrade komplett durchgeführt "
-"wurde. Dies ist anders, als das Standardverhalten, das das Skript in "
+"wurde. Dies ist das Standardverhalten für Kompatibilitätsmodus 10."
+
+#. type: textblock
+#: dh_installinit:106
+msgid ""
+"In early compat levels, the default was to stop the script in the F<prerm>, "
+"and starts it again in the F<postinst>."
+msgstr ""
+"In älteren Kompatibilitätsmodi war es Standardverhalten, dass das Skript in "
"F<prerm> stoppt und es in F<postinst> wieder startet."
#. type: textblock
-#: dh_installinit:80
+#: dh_installinit:109 dh_systemd_start:45
msgid ""
"This can be useful for daemons that should not have a possibly long downtime "
"during upgrade. But you should make sure that the daemon will not get "
"confused by the package being upgraded while it's running before using this "
"option."
msgstr ""
-"Dies kann nützlich für Daemons sein, die nicht lange während des Upgrades "
-"ausgeschaltet sein sollen. Sie sollten aber sicherstellen, dass der Daemon "
-"nicht von dem Paket, von dem ein Upgrade durchgeführt wird, durcheinander "
-"gebracht wird, während er läuft, bevor diese Option benutzt wird."
+"Dies kann nützlich für Daemons sein, die während des Upgrades nicht allzu "
+"lange ausfallen sollen. Sie sollten aber, bevor Sie diese Option verwenden, "
+"sicherstellen, dass der Daemon damit zurechtkommt, dass im laufenden Betrieb "
+"sein Paket ausgetauscht wird."
#. type: =item
-#: dh_installinit:85
-msgid "B<-r>, B<--no-restart-on-upgrade>"
-msgstr "B<-r>, B<--no-restart-on-upgrade>"
+#: dh_installinit:114 dh_systemd_start:50
+msgid "B<--no-restart-after-upgrade>"
+msgstr "B<--no-restart-after-upgrade>"
#. type: textblock
-#: dh_installinit:87
-msgid "Do not stop init script on upgrade."
-msgstr "stoppt das Init-Skript nicht beim Upgrade."
+#: dh_installinit:116 dh_systemd_start:52
+msgid ""
+"Undo a previous B<--restart-after-upgrade> (or the default of compat 10). "
+"If no other options are given, this will cause the service to be stopped in "
+"the F<prerm> script and started again in the F<postinst> script."
+msgstr ""
+"macht ein vorhergehendes B<--restart-after-upgrade> (oder die Voreinstellung "
+"des Kompatibilitätsmodus 10) rückgängig. Falls keine weiteren Optionen "
+"angegeben wurden, wird dies dafür sorgen, dass der Dienst im F<prerm>-Skript "
+"gestoppt und im F<postinst>-Skript wieder gestartet wird."
+
+#. type: =item
+#: dh_installinit:121 dh_systemd_start:57
+msgid "B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>"
+msgstr "B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>"
+
+#. type: textblock
+#: dh_installinit:123
+msgid ""
+"Do not stop init script on upgrade. This has the side-effect of not "
+"restarting the service as a part of the upgrade."
+msgstr ""
+"lässt das Init-Skript beim Upgrade weiterlaufen. Dies hat den Nebeneffekt, "
+"dass der Dienst nicht als Teil des Upgrades neu gestartet wird."
+
+#. type: textblock
+#: dh_installinit:126
+msgid ""
+"If you want to restart the service with minimal downtime, please use B<--"
+"restart-after-upgrade> (default in compat 10 or later). If you want the "
+"service to be restarted but be stopped during the upgrade, then please use "
+"B<--no-restart-after-upgrade> (note the \"after-upgrade\")."
+msgstr ""
+"Falls Sie den Dienst mit minimaler Stillstandzeit neu starten möchten, "
+"benutzen Sie bitte B<--restart-after-upgrade> (Voreinstellung in "
+"Kompatibilitätsstufe 10 oder höher). Falls Sie wollen, dass der Dienst neu "
+"gestartet, jedoch während des Upgrades gestoppt wird, benutzen Sie bitte B<--"
+"no-restart-after-upgrade> (beachten Sie das »after-upgrade«)."
+
+#. type: textblock
+#: dh_installinit:131
+msgid ""
+"Note that the B<--no-restart-on-upgrade> alias is deprecated and will be "
+"removed in compat 12. This is to avoid confusion with the B<--no-restart-"
+"after-upgrade> option. The B<--no-stop-on-upgrade> variant was introduced "
+"in debhelper 10.2 (included in Debian stretch)."
+msgstr ""
+"Beachten Sie, dass der Alias B<--no-restart-on-upgrade> missbilligt ist und "
+"in Kompatibilitätsstufe 12 entfernt wird, um Verwirrung mit der Option B<--"
+"no-restart-after-upgrade> zu vermeiden. Die Variante B<--no-stop-on-upgrade> "
+"wurde in Debhelper 10.2 (enthalten in Debian Stretch) eingeführt."
#. type: =item
-#: dh_installinit:89
+#: dh_installinit:136 dh_systemd_start:61
msgid "B<--no-start>"
msgstr "B<--no-start>"
#. type: textblock
-#: dh_installinit:91
+#: dh_installinit:138
msgid ""
"Do not start the init script on install or upgrade, or stop it on removal. "
"Only call B<update-rc.d>. Useful for rcS scripts."
msgstr ""
-"startet das Init-Skript nicht bei der Installation oder dem Upgrade und "
+"startet das Init-Skript bei der Installation oder dem Upgrade nicht und "
"stoppt es nicht beim Entfernen. Rufen Sie nur B<update-rc.d> auf. Nützlich "
"für rcS-Skripte."
#. type: =item
-#: dh_installinit:94
+#: dh_installinit:141 dh_systemd_enable:86
+msgid "B<--no-enable>"
+msgstr "B<--no-enable>"
+
+#. type: textblock
+#: dh_installinit:143
+msgid ""
+"Disable the init script on purge, but do not enable them on install. This "
+"implies a versioned dependency on B<< init-system-helpers (E<gt>= 1.51) >> "
+"as it is the first (functional) version that supports B<< update-rc.d "
+"E<lt>scriptE<gt> defaults-disabled >>."
+msgstr ""
+"deaktiviert das Startskript beim vollständigen Entfernen, aktiviert es aber "
+"nicht bei der Installation. Dies impliziert eine versionierte Abhängigkeit "
+"von B<< init-system-helpers (E<gt>= 1.51) >>, da dies die erste "
+"(funktionsfähige) Version ist, die B<< update-rc.d E<lt>scriptE<gt> defaults-"
+"disabled >> unterstützt."
+
+#. type: textblock
+#: dh_installinit:148
+msgid ""
+"B<Note> that this option does not affect whether the services are started. "
+"Please remember to also use B<--no-start> if the service should not be "
+"started."
+msgstr ""
+"B<Beachten Sie>, dass diese Option nicht beeinflusst, ob die Dienste "
+"gestartet werden. Bitte denken Sie daran, auch B<--no-start> zuverwenden, "
+"falls der Dienst nicht gestartet werden soll."
+
+#. type: textblock
+#: dh_installinit:152
+msgid ""
+"Cannot be combined with B<-u>I<params>, B<--update-rcd-params=>I<params>, or "
+"B<--> I<params>."
+msgstr ""
+"kann nicht mit B<-u>I<Parameter>, B<--update-rcd-params=>I<Parameter> oder "
+"B<--> I<Parameter> kombiniert werden."
+
+#. type: =item
+#: dh_installinit:155
msgid "B<-d>, B<--remove-d>"
msgstr "B<-d>, B<--remove-d>"
-# FIXME s#F<etc/default/> .#F<etc/default/>.#
#. type: textblock
-#: dh_installinit:96
+#: dh_installinit:157
msgid ""
"Remove trailing B<d> from the name of the package, and use the result for "
"the filename the upstart job file is installed as in F<etc/init/> , and for "
"the filename the init script is installed as in etc/init.d and the default "
-"file is installed as in F<etc/default/> . This may be useful for daemons "
-"with names ending in B<d>. (Note: this takes precedence over the B<--init-"
-"script> parameter described below.)"
+"file is installed as in F<etc/default/>. This may be useful for daemons with "
+"names ending in B<d>. (Note: this takes precedence over the B<--init-script> "
+"parameter described below.)"
msgstr ""
"entfernt abschließende B<d> vom Namen des Pakets und benutzt das Ergebnis "
"als Dateiname, unter dem die Upstart-Job-Datei in F<etc/init/> installiert "
-"wird und als Dateiname, unter dem das Init-Skript in etc/init.d und die "
-"Standarddatei in F<etc/default/> installiert wird. Dies kann nützlich für "
-"Daemons sein, deren Namen mit B<d> enden. (Anmerkung: Dies hat Vorrang "
-"gegenüber dem im Folgenden beschriebenen Parameter B<--init-script>.)"
+"wird, sowie als Dateiname für das Init-Skript in etc/init.d und die "
+"Standarddatei in F<etc/default/>. Dies kann nützlich für Daemons sein, deren "
+"Namen mit B<d> enden. (Anmerkung: Hat Vorrang gegenüber dem im Folgenden "
+"beschriebenen Parameter B<--init-script>.)"
#. type: =item
-#: dh_installinit:103
+#: dh_installinit:164
msgid "B<-u>I<params> B<--update-rcd-params=>I<params>"
msgstr "B<-u>I<Parameter> B<--update-rcd-params=>I<Parameter>"
#. type: textblock
-#: dh_installinit:107
+#: dh_installinit:168
msgid ""
-"Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> will be "
-"passed to L<update-rc.d(8)>."
+"Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> (or "
+"B<defaults-disabled> with B<--no-enable>) will be passed to L<update-rc."
+"d(8)>."
msgstr ""
"übergibt I<Parameter> an L<update-rc.d(8)>. Falls nicht angegeben, wird "
-"B<defaults> an L<update-rc.d(8)> übergeben."
+"B<defaults> (oder bei B<--no-enable> B<defaults-disabled>) an L<update-rc."
+"d(8)> übergeben."
+
+#. type: textblock
+#: dh_installinit:172
+msgid "Cannot be combined with B<--no-enable>."
+msgstr "kann nicht mit B<--no-enable> kombiniert werden."
#. type: textblock
-#: dh_installinit:112
+#: dh_installinit:176
msgid ""
"Install the init script (and default file) as well as upstart job file using "
"the filename I<name> instead of the default filename, which is the package "
@@ -5221,18 +9826,18 @@ msgstr ""
"installiert das Init-Skript (und die Standarddatei) ebenso wie den Upstart-"
"Job unter Benutzung des Dateinamens I<Name> an Stelle des "
"Standarddateinamens, der dem Paketnamen entspricht. Wenn dieser Parameter "
-"verwandt wird, sucht und installiert B<dh_installinit> Dateien mit dem Namen "
-"F<debian/package.name.init>, F<debian/package.name.default> und F<debian/"
-"package.name.upstart> an Stelle der üblichen F<debian/package.init>, "
-"F<debian/package.default> and F<debian/package.upstart>."
+"verwendet wird, sucht und installiert B<dh_installinit> Dateien mit dem "
+"Namen F<debian/package.name.init>, F<debian/package.name.default> und "
+"F<debian/package.name.upstart> an Stelle der üblichen F<debian/package."
+"init>, F<debian/package.default> and F<debian/package.upstart>."
#. type: =item
-#: dh_installinit:120
+#: dh_installinit:184
msgid "B<--init-script=>I<scriptname>"
msgstr "B<--init-script=>I<Skriptname>"
#. type: textblock
-#: dh_installinit:122
+#: dh_installinit:186
msgid ""
"Use I<scriptname> as the filename the init script is installed as in F<etc/"
"init.d/> (and also use it as the filename for the defaults file, if it is "
@@ -5243,28 +9848,28 @@ msgid ""
msgstr ""
"benutzt I<Skriptname> als Dateiname, unter dem das Init-Skript in F<etc/init."
"d/> installiert wird (und verwendet ihn außerdem als Dateinamen der "
-"Standarddatei, falls sie installiert wird). Falls Sie diesen Parameter "
+"Standarddatei, falls sie installiert wird). Sollten Sie diesen Parameter "
"einsetzen, wird B<dh_installinit> nachsehen, ob im Verzeichnis F<debian/> "
-"eine Datei existiert, die aussieht wie F<Paket.Skriptname> und falls dies so "
-"ist, wird sie bevorzugt als Init-Skript gegenüber den Dateien installiert, "
-"die normalerweise installiert werden."
+"nach einer Datei namens F<Paket.Skriptname> suchen und, falls gefunden, bei "
+"der Installation als Init-Skript den üblicherweise installierten Dateien "
+"vorziehen."
#. type: textblock
-#: dh_installinit:129
+#: dh_installinit:193
msgid ""
"This parameter is deprecated, use the B<--name> parameter instead. This "
"parameter is incompatible with the use of upstart jobs."
msgstr ""
-"Dieser Parameter ist missbilligt. Benutzen Sie stattdessen den Parameter B<--"
-"name>. Dieser Parameter ist für die Benutzung mit Upstart-Jobs inkompatibel."
+"Dieser Parameter ist veraltet, benutzen Sie stattdessen B<--name>. "
+"Desweiteren ist er für die Benutzung mit Upstart-Jobs inkompatibel."
#. type: =item
-#: dh_installinit:132
+#: dh_installinit:196
msgid "B<--error-handler=>I<function>"
msgstr "B<--error-handler=>I<Funktion>"
#. type: textblock
-#: dh_installinit:134
+#: dh_installinit:198
msgid ""
"Call the named shell I<function> if running the init script fails. The "
"function should be provided in the F<prerm> and F<postinst> scripts, before "
@@ -5274,22 +9879,117 @@ msgstr ""
"Init-Skripts fehlschlägt. Die Funktion sollte in den F<prerm>- und "
"F<postinst>-Skripten vor der Markierung B<#DEBHELPER#> bereitgestellt werden."
-#. type: =head1
-#: dh_installinit:330
-msgid "AUTHORS"
-msgstr "AUTOREN"
+#. type: textblock
+#: dh_installinit:415
+msgid "L<debhelper(7)>, L<dh_installsystemd(1)>"
+msgstr "L<debhelper(7)>, L<dh_installsystemd(1)>"
#. type: textblock
-#: dh_installinit:334
+#: dh_installinit:423
msgid "Steve Langasek <steve.langasek@canonical.com>"
msgstr "Steve Langasek <steve.langasek@canonical.com>"
#. type: textblock
-#: dh_installinit:336
+#: dh_installinit:425
msgid "Michael Stapelberg <stapelberg@debian.org>"
msgstr "Michael Stapelberg <stapelberg@debian.org>"
#. type: textblock
+#: dh_installinitramfs:5
+msgid "dh_installinitramfs - install initramfs hooks and setup maintscripts"
+msgstr ""
+"dh_installinitramfs - installiert Initramfs-Hooks und richtet Maintscripts "
+"ein"
+
+#. type: textblock
+#: dh_installinitramfs:17
+msgid "B<dh_installinitramfs> [S<B<debhelper options>>] [B<-n>]"
+msgstr "B<dh_installinitramfs> [S<B<Debhelper-Optionen>>] [B<-n>]"
+
+#. type: textblock
+#: dh_installinitramfs:21
+msgid ""
+"B<dh_installinitramfs> is a debhelper program that is responsible for "
+"installing Debian package provided initramfs hooks."
+msgstr ""
+"B<dh_installinitramfs> ist ein Debhelper-Programm, das für die Installation "
+"von Initramfs-Hooks zuständig ist, die von Debian-Pakete bereitgestellt "
+"werden."
+
+#. type: textblock
+#: dh_installinitramfs:24
+msgid ""
+"If B<dh_installinitramfs> installs or detects one or more initramfs hooks in "
+"the package, then it also automatically generates the noawait trigger "
+"B<update-initframfs> command needed to interface with the Debian initramfs "
+"system. This trigger is inserted into the packaging by L<dh_installdeb(1)>."
+msgstr ""
+"Falls B<dh_installinitramfs> einen oder mehreren Initramfs-Hooks im Paket "
+"installiert oder feststellt, erzeugt es automatisch den nötigen B<update-"
+"initframfs> mit noawait-Auslöser, um ihn oder sie mit Debians Initramfs-"
+"System zu verbinden. Der Auslöser wird dann von L<dh_installdeb(1)> in die "
+"Paketierung übernommen."
+
+#. type: =item
+#: dh_installinitramfs:34
+msgid "debian/I<package>.initramfs-hook"
+msgstr "debian/I<Paket>.initramfs-hook"
+
+#. type: textblock
+#: dh_installinitramfs:36
+msgid ""
+"Assumed to be an initramfs hook that will be installed into F<< usr/share/"
+"initramfs-tools/hooks/I<package> >> in the package build directory. See "
+"B<HOOK SCRIPTS> in L<initramfs-tools(8)> for more information about "
+"initramfs hooks."
+msgstr ""
+"Es wird davon ausgegangen, dass der Initramfs-Hook in F<< usr/share/"
+"initramfs-tools/hooks/I<Paket> >> im Bauverzeichnis installiert wird. "
+"Weitere Informationen über Initramfs-Hooks finden Sie unter B<HOOK SCRIPTS> "
+"in L<initramfs-tools(8)>."
+
+#. type: textblock
+#: dh_installinitramfs:49
+msgid ""
+"Do not add the B<update-initramfs> trigger even if it seems like the package "
+"might need it. The option is called B<--no-scripts> for historical reasons "
+"as B<dh_installinitramfs> would previously generate maintainer scripts that "
+"called B<update-initramfs -u>."
+msgstr ""
+"Fügen Sie den B<update-initramfs>-Auslöser auch dann nicht hinzu, wenn es so "
+"scheint, als würde das Paket ihn benötigen. Die Option ist aus historischen "
+"Gründen als B<--no-scripts> benannt, weil B<dh_installinitramfs> früher "
+"Betreuerskripte erzeugt hätte, die B<update-initramfs -u> aufgerufen hätten."
+
+#. type: textblock
+#: dh_installinitramfs:54
+msgid ""
+"Use this option, if you need to interface with the B<update-initramfs> "
+"system that is not satisfied by the noawait trigger (e.g. because you need "
+"the extra guarantees and head-aches of a await trigger)."
+msgstr ""
+"Verwenden Sie diese Option, wenn Sie sich mit dem B<update-initramfs>-System "
+"verbinden wollen und der noawait-Auslöser dafür nicht ausreicht (z. B. weil "
+"Sie die Extra-Garantien des await-Auslösers benötigen und die Kopfschmerzen "
+"in Kauf nehmen)."
+
+#. type: textblock
+#: dh_installinitramfs:62
+msgid ""
+"Note that this command is not idempotent. L<dh_prep(1)> should be called "
+"between invocations of this command. Otherwise, it may cause multiple "
+"instances of the same text to be added to triggers file."
+msgstr ""
+"Beachten Sie, dass dieser Befehl nicht idempotent ist. Zwischen mehreren "
+"Aufrufen dieses Befehls sollte L<dh_prep(1)> aufgerufen werden, weil sonst "
+"mehrere Exemplare des selben Texts in der Auslöserdatei vorkommen können."
+
+#. type: textblock
+#: dh_installinitramfs:93
+msgid "L<debhelper(7)> L<update-initramfs(8)> L<initramfs-tools(8)>"
+msgstr "L<debhelper(7)> L<update-initramfs(8)> L<initramfs-tools(8)>"
+
+#. type: textblock
#: dh_installlogcheck:5
msgid "dh_installlogcheck - install logcheck rulefiles into etc/logcheck/"
msgstr ""
@@ -5297,12 +9997,12 @@ msgstr ""
"logcheck/"
#. type: textblock
-#: dh_installlogcheck:14
+#: dh_installlogcheck:17
msgid "B<dh_installlogcheck> [S<I<debhelper options>>]"
msgstr "B<dh_installlogcheck> [S<I<Debhelper-Optionen>>]"
#. type: textblock
-#: dh_installlogcheck:18
+#: dh_installlogcheck:21
msgid ""
"B<dh_installlogcheck> is a debhelper program that is responsible for "
"installing logcheck rule files."
@@ -5311,37 +10011,37 @@ msgstr ""
"von Regeldateien zur Protokollprüfung zuständig ist."
#. type: =item
-#: dh_installlogcheck:25
+#: dh_installlogcheck:28
msgid "debian/I<package>.logcheck.cracking"
msgstr "debian/I<Paket>.logcheck.cracking"
#. type: =item
-#: dh_installlogcheck:27
+#: dh_installlogcheck:30
msgid "debian/I<package>.logcheck.violations"
msgstr "debian/I<Paket>.logcheck.violations"
#. type: =item
-#: dh_installlogcheck:29
+#: dh_installlogcheck:32
msgid "debian/I<package>.logcheck.violations.ignore"
msgstr "debian/I<Paket>.logcheck.violations.ignore"
#. type: =item
-#: dh_installlogcheck:31
+#: dh_installlogcheck:34
msgid "debian/I<package>.logcheck.ignore.workstation"
msgstr "debian/I<Paket>.logcheck.ignore.workstation"
#. type: =item
-#: dh_installlogcheck:33
+#: dh_installlogcheck:36
msgid "debian/I<package>.logcheck.ignore.server"
msgstr "debian/I<Paket>.logcheck.ignore.server"
#. type: =item
-#: dh_installlogcheck:35
+#: dh_installlogcheck:38
msgid "debian/I<package>.logcheck.ignore.paranoid"
msgstr "debian/I<Paket>.logcheck.ignore.paranoid"
#. type: textblock
-#: dh_installlogcheck:37
+#: dh_installlogcheck:40
msgid ""
"Each of these files, if present, are installed into corresponding "
"subdirectories of F<etc/logcheck/> in package build directories."
@@ -5350,7 +10050,7 @@ msgstr ""
"Unterverzeichnisse von F<etc/logcheck/> im Paketbauverzeichnisse installiert."
#. type: textblock
-#: dh_installlogcheck:48
+#: dh_installlogcheck:51
msgid ""
"Look for files named F<debian/package.name.logcheck.*> and install them into "
"the corresponding subdirectories of F<etc/logcheck/>, but use the specified "
@@ -5361,7 +10061,7 @@ msgstr ""
"aber den angegebenen Namen an Stelle des Paketnamens."
#. type: verbatim
-#: dh_installlogcheck:84
+#: dh_installlogcheck:85
#, no-wrap
msgid ""
"This program is a part of debhelper.\n"
@@ -5371,7 +10071,7 @@ msgstr ""
" \n"
#. type: textblock
-#: dh_installlogcheck:88
+#: dh_installlogcheck:89
msgid "Jon Middleton <jjm@debian.org>"
msgstr "Jon Middleton <jjm@debian.org>"
@@ -5381,12 +10081,12 @@ msgid "dh_installlogrotate - install logrotate config files"
msgstr "dh_installlogrotate - installiert Konfigurationsdateien von Logrotate"
#. type: textblock
-#: dh_installlogrotate:14
+#: dh_installlogrotate:17
msgid "B<dh_installlogrotate> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr "B<dh_installlogrotate> [S<I<Debhelper-Optionen>>] [B<--name=>I<Name>]"
#. type: textblock
-#: dh_installlogrotate:18
+#: dh_installlogrotate:21
msgid ""
"B<dh_installlogrotate> is a debhelper program that is responsible for "
"installing logrotate config files into F<etc/logrotate.d> in package build "
@@ -5398,7 +10098,7 @@ msgstr ""
"logrotate> werden installiert."
#. type: textblock
-#: dh_installlogrotate:28
+#: dh_installlogrotate:31
msgid ""
"Look for files named F<debian/package.name.logrotate> and install them as "
"F<etc/logrotate.d/name>, instead of using the usual files and installing "
@@ -5414,37 +10114,75 @@ msgid "dh_installman - install man pages into package build directories"
msgstr "dh_installman - installiert Handbuchseiten in Paketbauverzeichnisse"
#. type: textblock
-#: dh_installman:15
+#: dh_installman:18
msgid "B<dh_installman> [S<I<debhelper options>>] [S<I<manpage> ...>]"
msgstr "B<dh_installman> [S<I<Debhelper-Optionen>>] [S<I<Handbuchseite> …>]"
#. type: textblock
-#: dh_installman:19
+#: dh_installman:22
msgid ""
"B<dh_installman> is a debhelper program that handles installing man pages "
-"into the correct locations in package build directories. You tell it what "
-"man pages go in your packages, and it figures out where to install them "
-"based on the section field in their B<.TH> or B<.Dt> line. If you have a "
-"properly formatted B<.TH> or B<.Dt> line, your man page will be installed "
-"into the right directory, with the right name (this includes proper handling "
-"of pages with a subsection, like B<3perl>, which are placed in F<man3>, and "
-"given an extension of F<.3perl>). If your B<.TH> or B<.Dt> line is incorrect "
-"or missing, the program may guess wrong based on the file extension."
+"into the correct locations in package build directories."
msgstr ""
"B<dh_installman> ist ein Debhelper-Programm, das die Installation von "
-"Handbuchseiten an die korrekten Speicherorte in Paketbauverzeichnissen "
-"handhabt. Sie teilen ihm mit, welche Handbuchseiten in Ihr Paket kommen und "
-"es ergründet, wohin sie installiert werden, basierend auf dem Abschnittsfeld "
-"in ihrer B<.TH>- oder B<.Dt>-Zeile. Falls Sie eine ordentlich formatierte B<."
-"TH>- oder B<.Dt>-Zeile haben, wird Ihre Handbuchseite in das richtige "
-"Verzeichnis mit dem richtigen Namen installiert (dies umfasst eine "
-"ordentliche Handhabung von Seiten mit einem Unterabschnitt wie B<3perl>, die "
-"in F<man3> platziert werden und Angabe einer Erweiterung von F<.3perl>). "
-"Falls Ihre B<.TH>- oder B<.Dt>-Zeile nicht korrekt ist oder fehlt, wird das "
-"Programm möglicherweise aufgrund der Dateiendung falsch raten."
+"Handbuchseiten an den richtigen Stellen in Paketbauverzeichnissen vornimmt."
+
+#. type: textblock
+#: dh_installman:25
+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 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 zur "
+"Korrektur da, wenn das Bausystem der Ursprungsautoren sie nicht ordentlich "
+"als Teil ihres Installationsschritts installierte (oder keinen "
+"Installationsschritt hatte). In Kompatibilitätsstufe 11 und höher "
+"unterstützt es wie dh_install(1) auch das Standardsuchverzeichnis plus --"
+"sourcedir und hat dabei den Vorteil, dass es das Bauprofil nodoc beachtet "
+"(im Gegensatz zu dh_install(1))."
+
+#. type: textblock
+#: dh_installman:32
+msgid ""
+"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 to "
+"UTF-8 and for converting F<.so> links (as described below). However, that "
+"part happens automatically without any explicit configuration."
+msgstr ""
+"Sogar wenn Sie die Verwendung von L<dh_install(1)> für das Installieren der "
+"Handbuchseiten vorziehen, kann sich B<dh_installman> immer noch nützlich für "
+"die Umwandlung der Handbuchseitenkodierung in UTF-8 und die Umwandlung von "
+"F<.so>-Links (wie unten beschreiben) erweisen. Dieser Teil geschieht jedoch "
+"ohne ausdrückliche Konfiguration automatisch."
#. type: textblock
-#: dh_installman:29
+#: dh_installman:38
+msgid ""
+"You tell B<dh_installman> what man pages go in your packages, and it figures "
+"out where to install them based on the section field in their B<.TH> or B<."
+"Dt> line. If you have a properly formatted B<.TH> or B<.Dt> line, your man "
+"page will be installed into the right directory, with the right name (this "
+"includes proper handling of pages with a subsection, like B<3perl>, which "
+"are placed in F<man3>, and given an extension of F<.3perl>). If your B<.TH> "
+"or B<.Dt> line is incorrect or missing, the program may guess wrong based on "
+"the file extension."
+msgstr ""
+"Sie teilen B<dh_installman> mit, welche Handbuchseiten in Ihr Paket kommen "
+"und es stellt anhand des Abschnittsfelds in ihrer B<.TH>- oder B<.Dt>-Zeile "
+"fest, wohin sie zu installieren sind. Falls Sie eine ordentlich formatierte "
+"B<.TH>- oder B<.Dt>-Zeile haben (dies umfasst eine ordentliche Handhabung "
+"von Seiten mit einem Unterabschnitt wie B<3perl>, die in F<man3> platziert "
+"werden und Angabe einer Erweiterung von F<.3perl>), wird Ihre Handbuchseite "
+"in das richtige Verzeichnis mit dem richtigen Namen installiert. Ist Ihre B<."
+"TH>- oder B<.Dt>-Zeile nicht korrekt oder fehlt sie, wird das Programm "
+"möglicherweise aufgrund der Dateiendung falsch raten."
+
+#. type: textblock
+#: dh_installman:47
msgid ""
"It also supports translated man pages, by looking for extensions like F<."
"ll.8> and F<.ll_LL.8>, or by use of the B<--language> switch."
@@ -5454,7 +10192,7 @@ msgstr ""
"benutzt wird."
#. type: textblock
-#: dh_installman:32
+#: dh_installman:50
msgid ""
"If B<dh_installman> seems to install a man page into the wrong section or "
"with the wrong extension, this is because the man page has the wrong section "
@@ -5467,18 +10205,19 @@ msgid ""
"B<--language=C> to avoid this."
msgstr ""
"Falls B<dh_installman> eine Handbuchseite in den falschen Abschnitt oder mit "
-"der falschen Endung zu installieren scheint, ist dies, weil die "
-"Handbuchseite den falschen Abschnitt in ihrer B<.TH>- oder B<.Dt>-Zeile "
-"aufführt. Bearbeiten Sie die Handbuchseite, korrigieren Sie den Abschnitt "
-"und B<dh_installman> wird passend folgen. Einzelheiten über die B<.TH>-Zeile "
-"finden Sie in L<man(7)> und über die B<.Dt>-Zeile in L<mdoc(7)>. Falls "
+"der falschen Endung zu installieren scheint, liegt es daran, dass die "
+"Handbuchseite in ihrer B<.TH>- oder B<.Dt>-Zeile im falschen Abschnitt "
+"eingetragen ist. Bearbeiten Sie die Handbuchseite, korrigieren Sie den "
+"Abschnitt und B<dh_installman> wird mitziehen. Einzelheiten über die B<.TH>-"
+"Zeile finden Sie in L<man(7)> und über die B<.Dt>-Zeile in L<mdoc(7)>. Falls "
"B<dh_installman> eine Handbuchseite in ein Verzeichnis wie F</usr/share/man/"
-"pl/man1/> zu installieren scheint, ist dies, weil Ihr Programm einen Namen "
-"wie F<foo.pl> hat und B<dh_installman> annimmt, dass dies bedeutet, sie sei "
-"ins Polnische übersetzt. Benutzen Sie B<--language=C>, um dies zu vermeiden."
+"pl/man1/> zu installieren scheint, liegt es daran, dass Ihr Programm einen "
+"Namen wie F<foo.pl> hat und B<dh_installman> ihn so interpretiert als sei "
+"sie ins Polnische übersetzt. Benutzen Sie B<--language=C>, um das zu "
+"vermeiden."
#. type: textblock
-#: dh_installman:42
+#: dh_installman:60
msgid ""
"After the man page installation step, B<dh_installman> will check to see if "
"any of the man pages in the temporary directories of any of the packages it "
@@ -5486,39 +10225,39 @@ msgid ""
msgstr ""
"Nach dem Installationsschritt für Handbuchseiten wird B<dh_installman> "
"prüfen, ob einige der Handbuchseiten in den temporären Verzeichnissen in "
-"irgendwelchen Paketen, auf die es sich auswirkt, F<.so>-Verweise enthalten. "
-"Falls dies so ist, ändert es sie in symbolische Verweise."
+"irgendwelchen Paketen, auf die es sich auswirkt, F<.so>-Links enthalten. "
+"Falls ja, ändert es sie in symbolische Links."
#. type: textblock
-#: dh_installman:46
+#: dh_installman:64
msgid ""
"Also, B<dh_installman> will use man to guess the character encoding of each "
"manual page and convert it to UTF-8. If the guesswork fails for some reason, "
"you can override it using an encoding declaration. See L<manconv(1)> for "
"details."
msgstr ""
-"B<dh_installman> wird außerdem die Zeichenkodierung jeder Handbuchseite "
-"raten und sie in UTF-8 umwandeln. Falls das Raten aus irgend einem Grund "
-"fehlschlägt, können Sie sie außer Kraft setzen und eine Kodierungsangabe "
-"benutzen. Einzelheiten finden Sie unter L<manconv(1)>."
+"Außerdem wird <dh_installman> mit Hilfe von man die Zeichenkodierung jeder "
+"Handbuchseite erraten und sie in UTF-8 umwandeln. Falls die Mutmaßung aus "
+"irgend einem Grund fehlschlägt, können Sie sie außer Kraft setzen und eine "
+"Kodierungsangabe benutzen. Einzelheiten finden Sie unter L<manconv(1)>."
#. type: =item
-#: dh_installman:55
+#: dh_installman:77
msgid "debian/I<package>.manpages"
msgstr "debian/I<Paket>.manpages"
#. type: textblock
-#: dh_installman:57
+#: dh_installman:79
msgid "Lists man pages to be installed."
msgstr "listet zu installierende Handbuchseiten auf."
#. type: =item
-#: dh_installman:70
+#: dh_installman:95
msgid "B<--language=>I<ll>"
msgstr "B<--language=>I<ll>"
#. type: textblock
-#: dh_installman:72
+#: dh_installman:97
msgid ""
"Use this to specify that the man pages being acted on are written in the "
"specified language."
@@ -5527,12 +10266,12 @@ msgstr ""
"auswirkt, in der angegebenen Sprache geschrieben sind."
#. type: =item
-#: dh_installman:75
+#: dh_installman:110
msgid "I<manpage> ..."
msgstr "I<Handbuchseite> …>"
#. type: textblock
-#: dh_installman:77
+#: dh_installman:112
msgid ""
"Install these man pages into the first package acted on. (Or in all packages "
"if B<-A> is specified)."
@@ -5541,7 +10280,38 @@ msgstr ""
"auswirkt (oder in allen Paketen, falls B<-A> angegeben wurde)."
#. type: textblock
-#: dh_installman:84
+#: dh_installman:119
+msgid "An example F<debian/manpages> file could look like this:"
+msgstr "Eine F<debian/manpages>-Datei könnte wie folgt aussehen:"
+
+#. type: verbatim
+#: dh_installman:121
+#, no-wrap
+msgid ""
+" doc/man/foo.1\n"
+" # Translations\n"
+" doc/man/foo.da.1\n"
+" doc/man/foo.de.1\n"
+" doc/man/foo.fr.1\n"
+" # NB: The following line is considered a polish translation\n"
+" # of \"foo.1\" (and not a manpage written in perl called \"foo.pl\")\n"
+" doc/man/foo.pl.1\n"
+" # ...\n"
+"\n"
+msgstr ""
+" doc/man/foo.1\n"
+" # Übersetzungen\n"
+" doc/man/foo.da.1\n"
+" doc/man/foo.de.1\n"
+" doc/man/foo.fr.1\n"
+" # NB: Die folgende Zeile wird als polnische Übersetzung von »foo.1« (und\n"
+" # nicht als in Perl geschriebene Handbuchseite namens »foo.pl«) betrachtet\n"
+" doc/man/foo.pl.1\n"
+" # …\n"
+"\n"
+
+#. type: textblock
+#: dh_installman:133
msgid ""
"An older version of this program, L<dh_installmanpages(1)>, is still used by "
"some packages, and so is still included in debhelper. It is, however, "
@@ -5550,23 +10320,24 @@ msgid ""
msgstr ""
"Eine ältere Version dieses Programms, L<dh_installmanpages(1)>, wird immer "
"noch von einigen Paketen benutzt. Daher ist es immer noch in Debhelper "
-"enthalten. Es is jedoch missbilligt, infolge seiner nicht eingängigen und "
-"uneinheitlichen Schnittstelle. Verwenden Sie stattdessen dieses Programm."
+"enthalten. Es is jedoch wegen seiner der Intuition widersprechenden und "
+"uneinheitlichen Schnittstelle veraltet. Verwenden Sie stattdessen dieses "
+"Programm."
#. type: textblock
#: dh_installmanpages:5
msgid "dh_installmanpages - old-style man page installer (deprecated)"
msgstr ""
"dh_installmanpages - Handbuchseiteninstallationsprogramm im alten Stil "
-"(missbilligt)"
+"(veraltet)"
#. type: textblock
-#: dh_installmanpages:15
+#: dh_installmanpages:18
msgid "B<dh_installmanpages> [S<I<debhelper options>>] [S<I<file> ...>]"
msgstr "B<dh_installmanpages> [S<I<Debhelper-Optionen>>] [S<I<Datei> …>]"
#. type: textblock
-#: dh_installmanpages:19
+#: dh_installmanpages:22
msgid ""
"B<dh_installmanpages> is a debhelper program that is responsible for "
"automatically installing man pages into F<usr/share/man/> in package build "
@@ -5577,18 +10348,18 @@ msgstr ""
"Paketbauverzeichnissen zuständig ist."
#. type: textblock
-#: dh_installmanpages:23
+#: dh_installmanpages:26
msgid ""
"This is a DWIM-style program, with an interface unlike the rest of "
"debhelper. It is deprecated, and you are encouraged to use "
"L<dh_installman(1)> instead."
msgstr ""
-"Dies ist ein Programm im DWIM-Stil mit einer Schnittstelle, die anders als "
-"der Rest von Debhelper ist. Es ist missbilligt und es wird Ihnen empfohlen, "
-"stattdessen L<dh_installman(1)> zu benutzen."
+"Dies ist ein Programm im DWIM-Stil mit einer Schnittstelle, die sich vom "
+"Rest von Debhelper unterscheidet. Es ist veraltet und es wird Ihnen "
+"empfohlen, stattdessen L<dh_installman(1)> zu benutzen."
#. type: textblock
-#: dh_installmanpages:27
+#: dh_installmanpages:30
msgid ""
"B<dh_installmanpages> scans the current directory and all subdirectories for "
"filenames that look like man pages. (Note that only real files are looked "
@@ -5599,12 +10370,12 @@ msgstr ""
"B<dh_installmanpages> durchsucht das aktuelle Verzeichnis und alle "
"Unterverzeichnisse nach Dateinamen, die wie Handbuchseiten aussehen. "
"(Beachten Sie, dass nur echte Dateien berücksichtigt werden; symbolische "
-"Verweise werden ignoriert.) Es benutzt L<file(1)>, um zu überprüfen, ob die "
+"Links werden ignoriert.) Es benutzt L<file(1)>, um zu überprüfen, ob die "
"Dateien das korrekte Format haben. Dann installiert es sie, basierend auf "
"den Endungen der Dateien, in das korrekte Handbuchseitenverzeichnis."
#. type: textblock
-#: dh_installmanpages:33
+#: dh_installmanpages:36
msgid ""
"All filenames specified as parameters will be skipped by "
"B<dh_installmanpages>. This is useful if by default it installs some man "
@@ -5615,32 +10386,32 @@ msgstr ""
"installiert werden, die Sie nicht installieren möchten."
#. type: textblock
-#: dh_installmanpages:37
+#: dh_installmanpages:40
msgid ""
"After the man page installation step, B<dh_installmanpages> will check to "
"see if any of the man pages are F<.so> links. If so, it changes them to "
"symlinks."
msgstr ""
"Nach dem Handbuchseiten-Installationsschritt wird B<dh_installmanpages> "
-"prüfen, ob einige der Handbuchseiten F<.so>-Verweise sind. Falls dies der "
-"Fall ist, ändert es sie in symbolische Verweise."
+"prüfen, ob einige der Handbuchseiten F<.so>-Links sind. Falls dies der Fall "
+"ist, ändert es sie in symbolische Links."
#. type: textblock
-#: dh_installmanpages:46
+#: dh_installmanpages:49
msgid ""
"Do not install these files as man pages, even if they look like valid man "
"pages."
msgstr ""
-"installiert diese Dateien nicht als Handbuchseiten, nicht einmal, wenn sie "
-"wie gültige Handbuchseiten aussehen."
+"installiert diese Dateien nicht als Handbuchseiten, auch nicht, wenn sie wie "
+"gültige Handbuchseiten aussehen."
#. type: =head1
-#: dh_installmanpages:51
+#: dh_installmanpages:54
msgid "BUGS"
msgstr "FEHLER"
#. type: textblock
-#: dh_installmanpages:53
+#: dh_installmanpages:56
msgid ""
"B<dh_installmanpages> will install the man pages it finds into B<all> "
"packages you tell it to act on, since it can't tell what package the man "
@@ -5648,7 +10419,7 @@ msgid ""
"work around this, or use the much better L<dh_installman(1)> program "
"instead)."
msgstr ""
-"B<dh_installmanpages> wird die Handbuchseiten, die es findetn in B<alle> "
+"B<dh_installmanpages> wird die Handbuchseiten, die es findet, in B<alle> "
"Pakete installieren, von denen Sie ihm mitgeteilt haben, dass es darauf "
"einwirken soll, da es nicht entscheiden kann, zu welchem Paket die "
"Handbuchseite gehört. Dies ist meist nicht das, was Sie wirklich möchten "
@@ -5656,12 +10427,12 @@ msgstr ""
"viel bessere Programm L<dh_installman(1)>)."
#. type: textblock
-#: dh_installmanpages:58
+#: dh_installmanpages:61
msgid "Files ending in F<.man> will be ignored."
msgstr "Dateien, die auf F<.man> enden, werden ignoriert."
#. type: textblock
-#: dh_installmanpages:60
+#: dh_installmanpages:63
msgid ""
"Files specified as parameters that contain spaces in their filenames will "
"not be processed properly."
@@ -5677,22 +10448,21 @@ msgstr ""
"dh_installmenu - installiert Debian-Menü-Dateien in Paketbauverzeichnisse"
#. type: textblock
-#: dh_installmenu:14
+#: dh_installmenu:17
msgid "B<dh_installmenu> [S<B<debhelper options>>] [B<-n>]"
msgstr "B<dh_installmenu> [S<B<Debhelper-Optionen>>] [B<-n>]"
#. type: textblock
-#: dh_installmenu:18
+#: dh_installmenu:21
msgid ""
"B<dh_installmenu> is a debhelper program that is responsible for installing "
"files used by the Debian B<menu> package into package build directories."
msgstr ""
"B<dh_installmenu> ist ein Debhelper-Programm, das für die Installation von "
-"Dateien in Paketbauverzeichnisse zuständig ist, die vom Debian-Paket B<menu> "
-"benutzt werden."
+"Dateien für das Debian-Paket B<menu> in Paketbauverzeichnisse zuständig ist."
#. type: textblock
-#: dh_installmenu:21
+#: dh_installmenu:24
msgid ""
"It also automatically generates the F<postinst> and F<postrm> commands "
"needed to interface with the Debian B<menu> package. These commands are "
@@ -5703,12 +10473,12 @@ msgstr ""
"L<dh_installdeb(1)> in die Betreuerskripte eingefügt."
#. type: =item
-#: dh_installmenu:29
+#: dh_installmenu:32
msgid "debian/I<package>.menu"
msgstr "debian/I<Paket>.menu"
#. type: textblock
-#: dh_installmenu:31
+#: dh_installmenu:34
msgid ""
"Debian menu files, installed into usr/share/menu/I<package> in the package "
"build directory. See L<menufile(5)> for its format."
@@ -5718,12 +10488,12 @@ msgstr ""
"L<menufile(5)>."
#. type: =item
-#: dh_installmenu:34
+#: dh_installmenu:37
msgid "debian/I<package>.menu-method"
msgstr "debian/I<Paket>.menu-method"
#. type: textblock
-#: dh_installmenu:36
+#: dh_installmenu:39
msgid ""
"Debian menu method files, installed into etc/menu-methods/I<package> in the "
"package build directory."
@@ -5732,12 +10502,12 @@ msgstr ""
"Paketbauverzeichnis."
#. type: textblock
-#: dh_installmenu:47 dh_makeshlibs:79
+#: dh_installmenu:50
msgid "Do not modify F<postinst>/F<postrm> scripts."
msgstr "ändert keine F<postinst>-/F<postrm>-Skripte."
#. type: textblock
-#: dh_installmenu:91
+#: dh_installmenu:90
msgid "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
msgstr "L<update-menus(1)>, L<menufile(5)>, L<debhelper(7)>"
@@ -5747,12 +10517,12 @@ msgid "dh_installmime - install mime files into package build directories"
msgstr "dh_installmime - installiert MIME-Dateien in Paketbauverzeichnisse"
#. type: textblock
-#: dh_installmime:14
+#: dh_installmime:17
msgid "B<dh_installmime> [S<I<debhelper options>>]"
msgstr "B<dh_installmime> [S<I<Debhelper-Optionen>>]"
#. type: textblock
-#: dh_installmime:18
+#: dh_installmime:21
msgid ""
"B<dh_installmime> is a debhelper program that is responsible for installing "
"mime files into package build directories."
@@ -5761,29 +10531,29 @@ msgstr ""
"MIME-Dateien in Paketbauverzeichnisse zuständig ist."
#. type: =item
-#: dh_installmime:25
+#: dh_installmime:28
msgid "debian/I<package>.mime"
msgstr "debian/I<Paket>.mime"
#. type: textblock
-#: dh_installmime:27
+#: dh_installmime:30
msgid ""
"Installed into usr/lib/mime/packages/I<package> in the package build "
"directory."
-msgstr "installiert in usr/lib/mime/packages/I<Paket> im Paketbauverzeichnis"
+msgstr "installiert in usr/lib/mime/packages/I<Paket> im Paketbauverzeichnis."
#. type: =item
-#: dh_installmime:30
+#: dh_installmime:33
msgid "debian/I<package>.sharedmimeinfo"
msgstr "debian/I<Paket>.sharedmimeinfo"
#. type: textblock
-#: dh_installmime:32
+#: dh_installmime:35
msgid ""
"Installed into /usr/share/mime/packages/I<package>.xml in the package build "
"directory."
msgstr ""
-"installiert in /usr/share/mime/packages/I<Paket>.xml im Paketbauverzeichnis"
+"installiert in /usr/share/mime/packages/I<Paket>.xml im Paketbauverzeichnis."
#. type: textblock
#: dh_installmodules:5
@@ -5791,14 +10561,14 @@ msgid "dh_installmodules - register kernel modules"
msgstr "dh_installmodules - registriert Kernel-Module"
#. type: textblock
-#: dh_installmodules:15
+#: dh_installmodules:18
msgid ""
"B<dh_installmodules> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>]"
msgstr ""
"B<dh_installmodules> [S<I<Debhelper-Optionen>>] [B<-n>] [B<--name=>I<Name>]"
#. type: textblock
-#: dh_installmodules:19
+#: dh_installmodules:22
msgid ""
"B<dh_installmodules> is a debhelper program that is responsible for "
"registering kernel modules."
@@ -5807,7 +10577,7 @@ msgstr ""
"von Kernel-Modulen zuständig ist."
#. type: textblock
-#: dh_installmodules:22
+#: dh_installmodules:25
msgid ""
"Kernel modules are searched for in the package build directory and if found, "
"F<preinst>, F<postinst> and F<postrm> commands are automatically generated "
@@ -5815,31 +10585,31 @@ msgid ""
"These commands are inserted into the maintainer scripts by "
"L<dh_installdeb(1)>."
msgstr ""
-"Kernel-Module werden im Paketbauverzeichnis gesucht und falls sie gefunden "
-"werden, werden automatisch die F<preinst>-, F<postinst>- und F<postrm>-"
-"Befehle erzeugt, um B<depmod> auszuführen und die Module zu registrieren, "
-"wenn das Paket installiert wird. Diese Befehle werden durch "
+"Das Paketbauverzeichnis wird nach Kernel-Modulen abgesucht und falls welche "
+"gefunden werden, werden automatisch F<preinst>-, F<postinst>- und F<postrm>-"
+"Befehle erzeugt, um B<depmod> auszuführen und die Module im Zuge der "
+"Paketinstallation zu registrieren. Diese Befehle werden durch "
"L<dh_installdeb(1)> in die Betreuerskripte eingefügt."
#. type: =item
-#: dh_installmodules:32
+#: dh_installmodules:35
msgid "debian/I<package>.modprobe"
msgstr "debian/I<Paket>.modprobe"
#. type: textblock
-#: dh_installmodules:34
+#: dh_installmodules:37
msgid ""
"Installed to etc/modprobe.d/I<package>.conf in the package build directory."
msgstr ""
-"installiert nach etc/modprobe.d/I<Paket>.conf in das Paketbauverzeichnis"
+"installiert nach etc/modprobe.d/I<Paket>.conf in das Paketbauverzeichnis."
#. type: textblock
-#: dh_installmodules:44
+#: dh_installmodules:47
msgid "Do not modify F<preinst>/F<postinst>/F<postrm> scripts."
msgstr "ändert keine F<preinst>-/F<postinst>-/F<postrm>-Skripte."
#. type: textblock
-#: dh_installmodules:48
+#: dh_installmodules:51
msgid ""
"When this parameter is used, B<dh_installmodules> looks for and installs "
"files named debian/I<package>.I<name>.modprobe instead of the usual debian/"
@@ -5852,15 +10622,15 @@ msgstr ""
#. type: textblock
#: dh_installpam:5
msgid "dh_installpam - install pam support files"
-msgstr "dh_installpam - installiert PAM unterstützende Dateien"
+msgstr "dh_installpam - installiert PAM-Unterstützungsdateien"
#. type: textblock
-#: dh_installpam:14
+#: dh_installpam:17
msgid "B<dh_installpam> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr "B<dh_installpam> [S<I<Debhelper-Optionen>>] [B<--name=>I<Name>]"
#. type: textblock
-#: dh_installpam:18
+#: dh_installpam:21
msgid ""
"B<dh_installpam> is a debhelper program that is responsible for installing "
"files used by PAM into package build directories."
@@ -5869,24 +10639,36 @@ msgstr ""
"Dateien, die von PAM benutzt werden, in Paketbauverzeichnisse zuständig ist."
#. type: =item
-#: dh_installpam:25
+#: dh_installpam:28
msgid "debian/I<package>.pam"
msgstr "debian/I<Paket>.pam"
#. type: textblock
-#: dh_installpam:27
-msgid "Installed into etc/pam.d/I<package> in the package build directory."
-msgstr "installiert in etc/pam.d/I<Paket> im Paketbauverzeichnis"
+#: dh_installpam:30
+msgid "Installed into usr/lib/pam.d/I<package> in the package build directory."
+msgstr "installiert in usr/lib/pam.d/I<Paket> im Paketbauverzeichnis."
#. type: textblock
-#: dh_installpam:37
+#: dh_installpam:32
msgid ""
-"Look for files named debian/I<package>.I<name>.pam and install them as etc/"
-"pam.d/I<name>, instead of using the usual files and installing them using "
-"the package name."
+"Until compatibility level 14 this file was installed under etc/pam.d/"
+"I<package>. Please consider using the \"rm_conffile\" feature from "
+"L<dh_installdeb(1)> to ensure the proper removal of previous PAM files."
+msgstr ""
+"Bis zu Kompatibilitätsstufe 14 wurde diese Datei unter etc/pam.d/I<Paket> "
+"installiert. Bitte erwägen Sie die Verwendung der »rm_conffile«-Funktion aus "
+"L<dh_installdeb(1)>, um sicherzustellen, dass vorherige PAM-Dateien sauber "
+"entfernt werden."
+
+#. type: textblock
+#: dh_installpam:44
+msgid ""
+"Look for files named debian/I<package>.I<name>.pam and install them as usr/"
+"lib/pam.d/I<name>, instead of using the usual files and installing them "
+"using the package name."
msgstr ""
"sucht nach Dateien mit Namen debian/I<Paket>.I<Name>.pam und installiert sie "
-"als etc/pam.d/I<Name>, anstatt die üblichen Dateien zu verwenden und sie "
+"als usr/lib/pam.d/I<Name>, anstatt die üblichen Dateien zu verwenden und sie "
"unter Benutzung des Paketnamens zu installieren."
#. type: textblock
@@ -5895,12 +10677,12 @@ msgid "dh_installppp - install ppp ip-up and ip-down files"
msgstr "dh_installppp - installiert PPP-ip-up- und -ip-down-Dateien"
#. type: textblock
-#: dh_installppp:14
+#: dh_installppp:17
msgid "B<dh_installppp> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr "B<dh_installppp> [S<I<Debhelper-Optionen>>] [B<--name=>I<Name>]"
#. type: textblock
-#: dh_installppp:18
+#: dh_installppp:21
msgid ""
"B<dh_installppp> is a debhelper program that is responsible for installing "
"ppp ip-up and ip-down scripts into package build directories."
@@ -5909,29 +10691,29 @@ msgstr ""
"PPP-ip-up- und -ip-down-Skripten in Paketbauverzeichnisse zuständig ist."
#. type: =item
-#: dh_installppp:25
+#: dh_installppp:28
msgid "debian/I<package>.ppp.ip-up"
msgstr "debian/I<Paket>.ppp.ip-up"
#. type: textblock
-#: dh_installppp:27
+#: dh_installppp:30
msgid ""
"Installed into etc/ppp/ip-up.d/I<package> in the package build directory."
-msgstr "installiert in etc/ppp/ip-up.d/I<Paket> im Paketbauverzeichnis"
+msgstr "installiert in etc/ppp/ip-up.d/I<Paket> im Paketbauverzeichnis."
#. type: =item
-#: dh_installppp:29
+#: dh_installppp:32
msgid "debian/I<package>.ppp.ip-down"
msgstr "debian/I<Paket>.ppp.ip-down"
#. type: textblock
-#: dh_installppp:31
+#: dh_installppp:34
msgid ""
"Installed into etc/ppp/ip-down.d/I<package> in the package build directory."
-msgstr "installiert in etc/ppp/ip-down.d/I<Paket> im Paketbauverzeichnis"
+msgstr "installiert in etc/ppp/ip-down.d/I<Paket> im Paketbauverzeichnis."
#. type: textblock
-#: dh_installppp:41
+#: dh_installppp:44
msgid ""
"Look for files named F<debian/package.name.ppp.ip-*> and install them as "
"F<etc/ppp/ip-*/name>, instead of using the usual files and installing them "
@@ -5947,7 +10729,7 @@ msgid "dh_installudev - install udev rules files"
msgstr "dh_installudev - installiert udev-Regeldateien"
#. type: textblock
-#: dh_installudev:15
+#: dh_installudev:17
msgid ""
"B<dh_installudev> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>] [B<--"
"priority=>I<priority>]"
@@ -5956,7 +10738,7 @@ msgstr ""
"[B<--priority=>I<Priorität>]"
#. type: textblock
-#: dh_installudev:19
+#: dh_installudev:21
msgid ""
"B<dh_installudev> is a debhelper program that is responsible for installing "
"B<udev> rules files."
@@ -5964,27 +10746,18 @@ msgstr ""
"B<dh_installudev> ist ein Debhelper-Programm, das für die Installation von "
"udev-Regeldateien zuständig ist."
-#. type: textblock
-#: dh_installudev:22
-msgid ""
-"Code is added to the F<preinst> and F<postinst> to handle the upgrade from "
-"the old B<udev> rules file location."
-msgstr ""
-"Den F<preinst>- und F<postinst>-Skripten wird Kode hinzugefügt, um das "
-"Upgrade vom alten Speicherort der B<udev>-Regeldateien zu handhaben."
-
#. type: =item
-#: dh_installudev:29
+#: dh_installudev:28
msgid "debian/I<package>.udev"
msgstr "debian/I<Paket>.udev"
#. type: textblock
-#: dh_installudev:31
+#: dh_installudev:30
msgid "Installed into F<lib/udev/rules.d/> in the package build directory."
-msgstr "installiert in F<lib/udev/rules.d/> im Paketbauverzeichnis"
+msgstr "installiert in F<lib/udev/rules.d/> im Paketbauverzeichnis."
#. type: textblock
-#: dh_installudev:41
+#: dh_installudev:40
msgid ""
"When this parameter is used, B<dh_installudev> looks for and installs files "
"named debian/I<package>.I<name>.udev instead of the usual debian/I<package>."
@@ -5995,88 +10768,95 @@ msgstr ""
"I<Paket>.udev."
#. type: =item
-#: dh_installudev:45
+#: dh_installudev:44
msgid "B<--priority=>I<priority>"
msgstr "B<--priority=>I<Priorität>"
#. type: textblock
-#: dh_installudev:47
+#: dh_installudev:46
msgid "Sets the priority the file. Default is 60."
msgstr "setzt die Priorität der Datei. Vorgabe ist 60."
#. type: textblock
-#: dh_installudev:51
-msgid "Do not modify F<preinst>/F<postinst> scripts."
-msgstr "ändert keine F<preinst>-/F<postinst>-Skripte."
-
-#. type: textblock
#: dh_installwm:5
msgid "dh_installwm - register a window manager"
-msgstr "dh_installwm - registriert einen Fenster-Manager"
+msgstr "dh_installwm - registriert einen Fenstermanager"
#. type: textblock
-#: dh_installwm:14
+#: dh_installwm:17
msgid ""
"B<dh_installwm> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
"[S<I<wm> ...>]"
msgstr ""
"B<dh_installwm> [S<I<Debhelper-Optionen>>] [B<-n>] [B<--priority=>I<n>] "
-"[S<I<Fenster-Manager> …>]"
+"[S<I<Fenstermanager> …>]"
#. type: textblock
-#: dh_installwm:18
+#: dh_installwm:21
msgid ""
"B<dh_installwm> is a debhelper program that is responsible for generating "
"the F<postinst> and F<prerm> commands that register a window manager with "
"L<update-alternatives(8)>. The window manager's man page is also registered "
-"as a slave symlink (in v6 mode and up), if it is found in F<usr/share/man/"
-"man1/> in the package build directory."
+"as a slave symlink (in v6 mode and up). It must be installed in F<usr/share/"
+"man/man1/> in the package build directory prior to calling B<dh_installwm>. "
+"In compat 9 and earlier, the manpage was optional."
msgstr ""
"B<dh_installwm> ist ein Debhelper-Programm, das für das Erzeugen der "
-"F<postinst>- und F<prerm>-Befehle zuständig ist, die einen Fenster-Manager "
+"F<postinst>- und F<prerm>-Befehle zuständig ist, die einen Fenstermanager "
"mit L<update-alternatives(8)> registrieren. Außerdem wird die Handbuchseite "
-"des Fenster-Managers als untergeordneter symbolischer Verweis (im v6-Modus "
-"und darüber) registriert, falls sie in F<usr/share/man/man1/> im "
-"Paketbauverzeichnis gefunden wird."
+"des Fenstermanagers als symbolischer Slave-Link (im v6-Modus und höher) "
+"registriert. Sie muss vor dem Aufruf von B<dh_installwm> in F<usr/share/man/"
+"man1/> im Paketbauverzeichnis installiert sein. Im Kompatibilitätsmodus 9 "
+"und älter war die Handbuchseite optional."
#. type: =item
-#: dh_installwm:28
+#: dh_installwm:32
msgid "debian/I<package>.wm"
msgstr "debian/I<Paket>.wm"
#. type: textblock
-#: dh_installwm:30
+#: dh_installwm:34
msgid "List window manager programs to register."
-msgstr "listet zu registrierende Fenster-Manager-Programme auf."
+msgstr "listet zu registrierende Fenstermanager-Programme auf."
#. type: textblock
-#: dh_installwm:40
+#: dh_installwm:47
msgid ""
"Set the priority of the window manager. Default is 20, which is too low for "
"most window managers; see the Debian Policy document for instructions on "
"calculating the correct value."
msgstr ""
-"setzt die Priorität des Fenster-Managers. Vorgabe ist 20, was für die "
-"meisten Fenster-Manager zu niedrig ist; Anleitungen zur Berechnung des "
-"korrekten Wertes finden Sie in der Debian-Richtlinie."
+"setzt die Priorität des Fenstermanagers. Vorgabe ist 20, was für die meisten "
+"Fenstermanager zu niedrig ist; Anleitungen zur Berechnung des korrekten "
+"Wertes finden Sie in der Debian-Richtlinie."
#. type: textblock
-#: dh_installwm:46
+#: dh_installwm:53
msgid ""
"Do not modify F<postinst>/F<prerm> scripts. Turns this command into a no-op."
msgstr ""
-"ändert keine F<postinst>-/F<prerm>-Skripte; wandelt diesen Befehl in einen "
-"Leerbefehl."
+"ändert keine F<postinst>-/F<prerm>-Skripte; verwandelt diesen Befehl in "
+"einen Leerbefehl."
+
+#. type: textblock
+#: dh_installwm:57
+msgid ""
+"Modify scripts for window managers specified by command line parameters in "
+"ALL packages acted on, not just the first."
+msgstr ""
+"verändert Skripte für Fenstermanager, die durch Befehlszeilenparameter "
+"angegeben sind, in ALLEN Paketen, auf die es sich auswirkt, nicht nur im "
+"ersten."
#. type: =item
-#: dh_installwm:48
+#: dh_installwm:60
msgid "I<wm> ..."
-msgstr "I<Fenster-Manager> …"
+msgstr "I<Fenstermanager> …"
#. type: textblock
-#: dh_installwm:50
+#: dh_installwm:62
msgid "Window manager programs to register."
-msgstr "zu registrierende Fenster-Manager-Programme"
+msgstr "zu registrierende Fenstermanager-Programme."
#. type: textblock
#: dh_installxfonts:5
@@ -6084,23 +10864,23 @@ msgid "dh_installxfonts - register X fonts"
msgstr "dh_installxfonts - registriert X-Schriften"
#. type: textblock
-#: dh_installxfonts:14
+#: dh_installxfonts:17
msgid "B<dh_installxfonts> [S<I<debhelper options>>]"
msgstr "B<dh_installxfonts> [S<I<Debhelper-Optionen>>]"
#. type: textblock
-#: dh_installxfonts:18
+#: dh_installxfonts:21
msgid ""
"B<dh_installxfonts> is a debhelper program that is responsible for "
"registering X fonts, so their corresponding F<fonts.dir>, F<fonts.alias>, "
"and F<fonts.scale> be rebuilt properly at install time."
msgstr ""
"B<dh_installxfonts> ist ein Debhelper-Programm, das für das Registrieren der "
-"X-Schriften zuständig ist, weswegen ihre entsprechenden F<fonts.dir>, "
-"F<fonts.alias> und F<fonts.scale> zur Installationszeit neu gebaut werden."
+"X-Schriften zuständig ist, damit ihre entsprechenden F<fonts.dir>, F<fonts."
+"alias> und F<fonts.scale> zur Installationszeit neu gebaut werden."
#. type: textblock
-#: dh_installxfonts:22
+#: dh_installxfonts:25
msgid ""
"Before calling this program, you should have installed any X fonts provided "
"by your package into the appropriate location in the package build "
@@ -6115,18 +10895,18 @@ msgstr ""
"F<etc/X11/fonts> in Ihrem Paketbauverzeichnis installieren."
#. type: textblock
-#: dh_installxfonts:28
+#: dh_installxfonts:31
msgid ""
"Your package should depend on B<xfonts-utils> so that the B<update-fonts-"
">I<*> commands are available. (This program adds that dependency to B<${misc:"
"Depends}>.)"
msgstr ""
"Ihr Paket sollte von B<xfonts-utils> abhängen, so dass die B<update-fonts-"
-">I<*>-Befehle verfügbar sind. (Dieses Programm fügt diese Abhängigkeit B<"
-"${misc:Depends}> hinzu.)"
+">I<*>-Befehle verfügbar sind. (Dieses Programm fügt diese Abhängigkeit "
+"B<${misc:Depends}> hinzu.)"
#. type: textblock
-#: dh_installxfonts:32
+#: dh_installxfonts:35
msgid ""
"This program automatically generates the F<postinst> and F<postrm> commands "
"needed to register X fonts. These commands are inserted into the maintainer "
@@ -6136,10 +10916,10 @@ msgstr ""
"Dieses Programm erzeugt automatisch die F<postinst>- und F<postrm>-Befehle, "
"die zum Registrieren von X-Schriften benötigt werden. Diese Befehle werden "
"durch B<dh_installdeb> in die Betreuerskripte eingefügt. Eine Erklärung, wie "
-"dies funktioniert, finden Sie in L<dh_installdeb(1)>."
+"das funktioniert, finden Sie in L<dh_installdeb(1)>."
#. type: textblock
-#: dh_installxfonts:39
+#: dh_installxfonts:42
msgid ""
"See L<update-fonts-alias(8)>, L<update-fonts-scale(8)>, and L<update-fonts-"
"dir(8)> for more information about X font installation."
@@ -6149,7 +10929,7 @@ msgstr ""
"dir(8)>."
#. type: textblock
-#: dh_installxfonts:42
+#: dh_installxfonts:45
msgid ""
"See Debian policy, section 11.8.5. for details about doing fonts the Debian "
"way."
@@ -6160,10 +10940,10 @@ msgstr ""
#. type: textblock
#: dh_link:5
msgid "dh_link - create symlinks in package build directories"
-msgstr "dh_link - erzeugt symbolische Verweise in Paketbauverzeichnisse"
+msgstr "dh_link - erzeugt symbolische Links in Paketbauverzeichnisse"
#. type: textblock
-#: dh_link:15
+#: dh_link:18
msgid ""
"B<dh_link> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<source "
"destination> ...>]"
@@ -6172,122 +10952,145 @@ msgstr ""
"Ziel> …>]"
#. type: textblock
-#: dh_link:19
+#: dh_link:22
msgid ""
"B<dh_link> is a debhelper program that creates symlinks in package build "
"directories."
msgstr ""
-"B<dh_link> ist ein Debhelper-Programm, das symbolische Verweise in "
+"B<dh_link> ist ein Debhelper-Programm, das symbolische Links in "
"Paketbauverzeichnissen erstellt."
#. type: textblock
-#: dh_link:22
+#: dh_link:25
msgid ""
"B<dh_link> accepts a list of pairs of source and destination files. The "
-"source files are the already existing files that will be symlinked from. The "
-"destination files are the symlinks that will be created. There B<must> be an "
-"equal number of source and destination files specified."
+"source files are the already existing files that will be symlinked from "
+"(called B<target> by L<ln(1)>). The destination files are the symlinks that "
+"will be created (called B<link name> by L<ln(1)>). There B<must> be an equal "
+"number of source and destination files specified."
msgstr ""
"B<dh_link> akzeptiert eine Liste von Paaren aus Quell- und Zieldateien. Die "
"Quelldateien sind bereits existierende Dateien, auf die dann symbolisch "
-"verwiesen wird. Die Zieldateien sind die symbolischen Verweise, die erstellt "
-"werden. Es B<muss> eine gleiche Anzahl von Quell- und Zieldateien angegeben "
-"werden."
+"verwiesen wird (von L<ln(1)> B<target> genannt). Die Zieldateien sind die "
+"symbolischen Links, die erstellt werden (von L<ln(1)> B<link name> genannt). "
+"Es B<muss> eine gleiche Anzahl von Quell- und Zieldateien angegeben werden."
#. type: textblock
-#: dh_link:27
+#: dh_link:32
msgid ""
-"Be sure you B<do> specify the full filename to both the source and "
+"Be sure you B<do> specify the absolute path to both the source and "
"destination files (unlike you would do if you were using something like "
-"L<ln(1)>)."
+"L<ln(1)>). Please note that the leading slash is optional."
msgstr ""
-"Stellen Sie sicher, dass Sie den vollständigen Dateinamen sowohl für die "
-"Quell- als auch für die Zieldateien I<angeben> (anderes Vorgehen als bei der "
-"Verwendung von L<ln(1)> oder ähnlichem)."
+"Stellen Sie sicher, dass Sie den B<absoluten Pfad> sowohl für die Quell- als "
+"auch für die Zieldateien angeben (anderes Vorgehen als bei der Verwendung "
+"von L<ln(1)> oder ähnlichem). Bitte beachten Sie, dass der führende "
+"Schrägstrich optional ist."
#. type: textblock
-#: dh_link:31
+#: dh_link:36
msgid ""
"B<dh_link> will generate symlinks that comply with Debian policy - absolute "
"when policy says they should be absolute, and relative links with as short a "
-"path as possible. It will also create any subdirectories it needs to to put "
-"the symlinks in."
+"path as possible. It will also create any subdirectories it needs to put the "
+"symlinks in."
msgstr ""
-"B<dh_link> wird symbolische Verweise erzeugen, die die Debian-Richtlinie "
+"B<dh_link> wird symbolische Links erzeugen, welche die Debian-Richtlinie "
"erfüllen – absolute, wenn die Debian-Richtlinie sagt, sie sollten absolut "
-"sein und relative Verweise mit einem so kurzen Pfad wie möglich. Es wird "
+"sein und relative Links bei einem so kurzen Pfad wie möglich. Es wird "
"außerdem jegliche Unterverzeichnisse erzeugen, die es benötigt, um die "
-"symbolischen Verweise darin abzulegen."
+"symbolischen Links darin abzulegen."
#. type: textblock
-#: dh_link:36
+#: dh_link:41
msgid "Any pre-existing destination files will be replaced with symlinks."
msgstr ""
-"Alle vorher existierenden Zieldateien werden durch symbolische Verweise "
-"ersetzt."
+"Alle vorher existierenden Zieldateien werden durch symbolische Links ersetzt."
#. type: textblock
-#: dh_link:38
+#: dh_link:43
msgid ""
"B<dh_link> also scans the package build tree for existing symlinks which do "
"not conform to Debian policy, and corrects them (v4 or later)."
msgstr ""
"B<dh_link> durchsucht außerdem den Bauverzeichnisbaum des Pakets nach "
-"existierenden symbolischen Verweisen, die nicht der Debian-Richtlinie "
+"existierenden symbolischen Links, die nicht der Debian-Richtlinie "
"entsprechen und korrigiert sie (v4 und neuer)."
#. type: =item
-#: dh_link:45
+#: dh_link:50
msgid "debian/I<package>.links"
msgstr "debian/I<Paket>.links"
#. type: textblock
-#: dh_link:47
+#: dh_link:52
msgid ""
"Lists pairs of source and destination files to be symlinked. Each pair "
"should be put on its own line, with the source and destination separated by "
"whitespace."
msgstr ""
-"listet Paare von Quell- und Zieldateien auf, von denen symbolische Verweise "
+"listet Paare von Quell- und Zieldateien auf, von denen symbolische Links "
"erstellt werden sollen. Jedes Paar sollte in einer eigenen Zeile stehen, in "
"der Quell- und Zieldatei durch Leerzeichen getrennt sind."
#. type: textblock
-#: dh_link:59
+#: dh_link:56
+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 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. "
+"Ihr folgt die Zieldatei (durch L<ln(1)> B<Linkname> genannt). Daher werden "
+"die Paare von Quell- und Zieldatei in jeder Zeile in derselben Reihenfolge "
+"angegeben, in der sie an L<ln(1)> übergeben würden."
+
+#. type: textblock
+#: dh_link:61
+msgid ""
+"In contrast to L<ln(1)>, source and destination paths must be absolute (the "
+"leading slash is optional)."
+msgstr ""
+"Im Gegensatz zu L<ln(1)> müssen Quell- und Zielpfade absolut sein (der "
+"führende Schrägstrich ist optional)."
+
+#. type: textblock
+#: dh_link:75
msgid ""
"Create any links specified by command line parameters in ALL packages acted "
"on, not just the first."
msgstr ""
-"erstellt jegliche durch Befehlszeilenparameter angegebenen Verweise in ALLEN "
+"erstellt jegliche durch Befehlszeilenparameter angegebenen Links in ALLEN "
"Paketen, auf die es sich auswirkt, nicht nur im ersten."
#. type: textblock
-#: dh_link:64
+#: dh_link:80
msgid ""
"Exclude symlinks that contain I<item> anywhere in their filename from being "
"corrected to comply with Debian policy."
msgstr ""
-"schließt symbolische Verweise von der Korrektur zur Einhaltung der Debian-"
-"Richtlinie aus, die irgendwo in ihrem Dateinamen I<Element> enthalten."
+"schließt symbolische Links, die irgendwo in ihrem Dateinamen I<Element> "
+"enthalten, von der Korrektur zur Einhaltung der Debian-Richtlinie aus."
#. type: =item
-#: dh_link:67
+#: dh_link:83
msgid "I<source destination> ..."
msgstr "I<Quelle Ziel> …"
#. type: textblock
-#: dh_link:69
+#: dh_link:85
msgid ""
"Create a file named I<destination> as a link to a file named I<source>. Do "
"this in the package build directory of the first package acted on. (Or in "
"all packages if B<-A> is specified.)"
msgstr ""
-"erstellt eine Datei mit Namen I<Ziel> als Verweis auf eine Datei mit Namen "
-"I<Quelle>. Dies wird im Paketbauverzeichnis des ersten Pakets getan, auf das "
+"erstellt eine Datei mit Namen I<Ziel> als Link auf eine Datei mit Namen "
+"I<Quelle>. Machen Sie das im Paketbauverzeichnis des ersten Pakets, auf das "
"es sich auswirkt (oder in allen Paketen, falls B<-A> angegeben wurde)."
#. type: verbatim
-#: dh_link:77
+#: dh_link:93
#, no-wrap
msgid ""
" dh_link usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
@@ -6297,12 +11100,12 @@ msgstr ""
"\n"
#. type: textblock
-#: dh_link:79
+#: dh_link:95
msgid "Make F<bar.1> be a symlink to F<foo.1>"
-msgstr "sorgt dafür, dass F<bar.1> ein symbolischer Verweis auf F<foo.1> ist."
+msgstr "sorgt dafür, dass F<bar.1> ein symbolischer Link auf F<foo.1> ist."
#. type: verbatim
-#: dh_link:81
+#: dh_link:97
#, no-wrap
msgid ""
" dh_link var/lib/foo usr/lib/foo \\\n"
@@ -6314,44 +11117,62 @@ msgstr ""
"\n"
#. type: textblock
-#: dh_link:84
+#: dh_link:100
msgid ""
"Make F</usr/lib/foo/> be a link to F</var/lib/foo/>, and F<bar.1> be a "
"symlink to the F<foo.1>"
msgstr ""
-"sorgt dafür, dass F</usr/lib/foo/> ein symbolischer Verweis auf F</var/lib/"
-"foo/> und F<bar.1> ein symbolischer Verweis auf F<foo.1> ist."
+"sorgt dafür, dass F</usr/lib/foo/> ein symbolischer Link auf F</var/lib/foo/"
+"> und F<bar.1> ein symbolischer Link auf F<foo.1> ist."
+
+#. type: verbatim
+#: dh_link:103
+#, no-wrap
+msgid ""
+" var/lib/foo usr/lib/foo\n"
+" usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+msgstr ""
+" var/lib/foo usr/lib/foo\n"
+" usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+
+#. type: textblock
+#: dh_link:106
+msgid "Same as above but as content for a debian/I<package>.links file."
+msgstr ""
+"genau wie oben, jedoch als Inhalt für eine debian/I<Paket>.links-Datei."
#. type: textblock
#: dh_lintian:5
msgid ""
"dh_lintian - install lintian override files into package build directories"
msgstr ""
-"dh_lintian - installiert außer Kraft setzende Dateien für Lintian in "
+"dh_lintian - installiert Override-Dateien für Lintian in "
"Paketbauverzeichnisse"
#. type: textblock
-#: dh_lintian:14
+#: dh_lintian:17
msgid "B<dh_lintian> [S<I<debhelper options>>]"
msgstr "B<dh_lintian> [S<I<Debhelper-Optionen>>]"
#. type: textblock
-#: dh_lintian:18
+#: dh_lintian:21
msgid ""
"B<dh_lintian> is a debhelper program that is responsible for installing "
"override files used by lintian into package build directories."
msgstr ""
-"B<dh_lintian> ist ein Debhelper-Programm, das für die Installation von außer "
-"Kraft setzenden Dateien, die von Lintian benutzt werden, in "
-"Paketbauverzeichnisse zuständig ist, ."
+"B<dh_lintian> ist ein Debhelper-Programm, das für die Installation von "
+"Override-Dateien, die von Lintian benutzt werden, in Paketbauverzeichnisse "
+"zuständig ist."
#. type: =item
-#: dh_lintian:25
+#: dh_lintian:28
msgid "debian/I<package>.lintian-overrides"
msgstr "debian/I<Paket>.lintian-overrides"
#. type: textblock
-#: dh_lintian:27
+#: dh_lintian:30
msgid ""
"Installed into usr/share/lintian/overrides/I<package> in the package build "
"directory. This file is used to suppress erroneous lintian diagnostics."
@@ -6360,26 +11181,26 @@ msgstr ""
"Diese Datei wird benutzt, um fehlerhafte Lintian-Diagnosen zu unterdrücken."
#. type: =item
-#: dh_lintian:31
+#: dh_lintian:34
msgid "F<debian/source/lintian-overrides>"
msgstr "F<debian/source/lintian-overrides>"
#. type: textblock
-#: dh_lintian:33
+#: dh_lintian:36
msgid ""
"These files are not installed, but will be scanned by lintian to provide "
"overrides for the source package."
msgstr ""
-"Diese Dateien werden nicht installiert, werden aber durch Lintian "
-"durchsucht, um Außerkraftsetzungen in das Quellpaket bereitzustellen."
+"Diese Dateien werden nicht installiert, werden aber von Lintian durchsucht, "
+"um Außerkraftsetzungen in das Quellpaket bereitzustellen."
#. type: textblock
-#: dh_lintian:65
+#: dh_lintian:66
msgid "L<lintian(1)>"
msgstr "L<lintian(1)>"
#. type: textblock
-#: dh_lintian:69
+#: dh_lintian:70
msgid "Steve Robbins <smr@debian.org>"
msgstr "Steve Robbins <smr@debian.org>"
@@ -6390,12 +11211,12 @@ msgstr ""
"dh_listpackages - listet Binärpakete auf, auf die Dephelper einwirken wird "
#. type: textblock
-#: dh_listpackages:14
+#: dh_listpackages:17
msgid "B<dh_listpackages> [S<I<debhelper options>>]"
msgstr "B<dh_listpackages> [S<I<Debhelper-Optionen>>]"
#. type: textblock
-#: dh_listpackages:18
+#: dh_listpackages:21
msgid ""
"B<dh_listpackages> is a debhelper program that outputs a list of all binary "
"packages debhelper commands will act on. If you pass it some options, it "
@@ -6403,10 +11224,17 @@ msgid ""
"act on if passed the same options."
msgstr ""
"B<dh_listpackages> ist ein Debhelper-Programm, das eine Liste aller "
-"Binärpakete ausgibt, auf die Debhelper-Befehle einwirken werden. Falls Sie "
-"ihm irgendwelche Optionen übergeben, wird es die Liste so ändern, dass sie "
-"auf Pakete passt, auf die andere Debhelper-Befehle einwirken würden, wenn "
-"sie die gleichen Optionen übergeben bekämen."
+"Binärpakete ausgibt, auf welche die Debhelper-Befehle einwirken werden. "
+"Falls Sie ihm irgendwelche Optionen übergeben, wird es die Liste so ändern, "
+"dass sie die Pakete enthält, auf die andere Debhelper-Befehle einwirken "
+"würden, wenn sie die gleichen Optionen übergeben bekämen."
+
+#. type: textblock
+#: dh_listpackages:26
+msgid "Packages are listed in the order they appear in F<debian/control>."
+msgstr ""
+"Die Pakete werden in der Reihenfolge aufgeführt, in der sie in F<debian/"
+"control> erscheinen."
#. type: textblock
#: dh_makeshlibs:5
@@ -6417,77 +11245,129 @@ msgstr ""
"gensymbols auf"
#. type: textblock
-#: dh_makeshlibs:14
+#: dh_makeshlibs:17
msgid ""
"B<dh_makeshlibs> [S<I<debhelper options>>] [B<-m>I<major>] [B<-"
"V>I<[dependencies]>] [B<-n>] [B<-X>I<item>] [S<B<--> I<params>>]"
msgstr ""
-"B<dh_makeshlibs> [S<I<Debhelper-Optionen>>] [B<-m>I<Hauptnummer>] [B<-"
+"B<dh_makeshlibs> [S<I<Debhelper-Optionen>>] [B<-m>I<Major>] [B<-"
"V>I<[Abhängigkeiten]>] [B<-n>] [B<-X>I<Element>] [S<B<--> I<Parameter>>]"
#. type: textblock
-#: dh_makeshlibs:18
+#: dh_makeshlibs:21
msgid ""
"B<dh_makeshlibs> is a debhelper program that automatically scans for shared "
"libraries, and generates a shlibs file for the libraries it finds."
msgstr ""
"B<dh_makeshlibs> ist ein Debhelper-Programm, das automatisch nach gemeinsam "
-"benutzten Bibliotheken sucht und eine Shlibs-Datei für die Dateien erzeugt, "
-"die es findet."
+"benutzten Bibliotheken sucht und für die gefundenen Bibliotheken eine Shlibs-"
+"Datei erzeugt."
#. type: textblock
-#: dh_makeshlibs:21
+#: dh_makeshlibs:24
msgid ""
-"It also adds a call to ldconfig in the F<postinst> and F<postrm> scripts (in "
-"v3 mode and above only) to any packages in which it finds shared libraries."
+"It will also ensure that ldconfig is invoked during install and removal when "
+"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."
msgstr ""
-"Außerdem fügt es den F<postinst>- und F<postrm>-Skripten in jedem Paket, in "
-"dem es gemeinsam benutzte Bibliotheken findet, einen Aufruf von Ldconfig "
-"hinzu (nur im Modus v3 und darüber)."
+"Es stellt außerdem sicher, dass Ldconfig während der Installation und "
+"Entfernung aufgerufen wird, wenn es gemeinsam benutzte Bibliotheken findet. "
+"Seit Debhelper 9.20151004 wird dafür ein Dpkg-Auslösers eingesetzt. In "
+"älteren Versionen von Debhelper würde B<dh_makeshlibs> zu diesem Zweck ein "
+"Betreuerskript erzeugen."
#. type: textblock
-#: dh_makeshlibs:24
+#: 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 ""
+"Seit Debhelper 12.3 wird B<dh_makeshlibs> standardmäßig in der Datei shlibs "
+"eine zusätzliche I<udeb>-Zeile eintragen, wenn das Udeb denselben Namen wie "
+"das Deb hat, gefolgt von einer »-udeb«-Endung (wenn z. B. das Deb »libfoo1« "
+"heißt, dann wird Debhelper ein Udeb namens »libfoo1-udeb« automatisch "
+"erkennen. Bitte benutzen Sie die nachfolgenden Optionen B<--add-udeb> und "
+"B<--no-add-udeb>, wenn diese automatische Erkennung nicht ausreicht."
+
+# FIXME s/and is/and are/
+#. type: textblock
+#: dh_makeshlibs:36
msgid ""
-"Packages that support multiarch are detected, and a Pre-Dependency on "
-"multiarch-support is set in ${misc:Pre-Depends} ; you should make sure to "
-"put that token into an appropriate place in your debian/control file for "
-"packages supporting multiarch."
+"If you previously used B<--add-udeb> and are considering to migrate to using "
+"the 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 ""
-"Pakete, die Multiarch unterstützen, werden entdeckt und eine Vorabhängigkeit "
-"(»Pre-Dependency«) zur Multiarch-Unterstützung wird in ${misc:Pre-Depends} "
-"gesetzt; Sie sollten sicherstellen, dass diese Markierung an eine geeignete "
-"Stelle in Ihrer debian/control-Datei für Pakete abgelegt wird, die Multiarch "
-"unterstützen."
+"Falls Sie vorher B<--add-udeb> benutzt haben und mit dem Gedanken spielen, "
+"auf die neue automatische Erkennungsfunktionalität in 12.3 zu migrieren, "
+"dann denken Sie bitte daran zu testen, ob die resultierenden F<DEBIAN/"
+"shlibs>-Dateien wie erwartet ausfallen. Es gibt einige bekannte "
+"Ausnahmefälle, in denen die automatische Erkennung nicht ausreicht. Dazu "
+"zählt u. a., dass das Udeb Bibliotheksdateien aus mehreren normalen Deb-"
+"Paketen enthält oder dass die Pakete nicht der erwarteten Namensübereinkunft "
+"folgen."
#. type: =item
-#: dh_makeshlibs:33
+#: dh_makeshlibs:48
+msgid "debian/I<package>.shlibs"
+msgstr "debian/I<Paket>.shlibs"
+
+#. type: textblock
+#: 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 "
+"any libraries."
+msgstr ""
+"installiert, falls vorhanden, diese Datei in das Paket als DEBIAN/shlibs. "
+"Falls es weggelassen wird, erzeugt Debhelper automatisch eine Shlibs-Datei "
+"wenn es irgendwelche Bibliotheken entdeckt."
+
+#. type: textblock
+#: 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 ""
+"Beachten Sie, dass diese Datei in Kompatibilitätsmodi 9 und älter durch "
+"L<dh_installdeb(1)> anstatt durch B<dh_makeshlibs> installiert wurde."
+
+#. type: =item
+#: dh_makeshlibs:57
msgid "debian/I<package>.symbols"
msgstr "debian/I<Paket>.symbols"
#. type: =item
-#: dh_makeshlibs:35
+#: dh_makeshlibs:59
msgid "debian/I<package>.symbols.I<arch>"
msgstr "debian/I<Paket>.symbols.I<Architektur>"
#. type: textblock
-#: dh_makeshlibs:37
+#: 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 "
"provide different symbols files for different architectures."
msgstr ""
-"Diese Symboldateien werden, falls Sie vorhanden sind, zur Verarbeitung und "
+"Diese Symboldateien werden, falls sie vorhanden sind, zur Verarbeitung und "
"Installation an L<dpkg-gensymbols(1)> übergeben. Benutzen Sie die für die "
"I<Architektur> spezifischen Dateinamen, falls Sie mehrere unterschiedliche "
"Symbole für unterschiedliche Architekturen bereitstellen müssen."
#. type: =item
-#: dh_makeshlibs:47
+#: 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:49
+#: 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 "
@@ -6496,102 +11376,277 @@ msgid ""
msgstr ""
"benutzt die nach dem Parameter -m angegebene Hauptnummer, anstatt zu "
"versuchen, die Hauptnummer der Bibliothek mit Objdump zu erraten. Dies ist "
-"weit weniger nützlich, wie es früher zu den schlimmen alten Zeiten war, als "
-"dieses Programm nach Bibliotheksdateinamen suchte, anstatt Objdump zu "
-"verwenden."
+"weit weniger nützlich als früher zu den schlechten alten Zeiten, als dieses "
+"Programm nach Bibliotheksdateinamen suchte, anstatt Objdump zu verwenden."
#. type: =item
-#: dh_makeshlibs:54
+#: dh_makeshlibs:78
msgid "B<-V>, B<-V>I<dependencies>"
msgstr "B<-V>, B<-V>I<Abhängigkeiten>"
#. type: =item
-#: dh_makeshlibs:56
+#: 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:58
-msgid ""
-"By default, the shlibs file generated by this program does not make packages "
-"depend on any particular version of the package containing the shared "
-"library. It may be necessary for you to add some version dependency "
-"information to the shlibs file. If B<-V> is specified with no dependency "
-"information, the current upstream version of the package is plugged into a "
-"dependency that looks like \"I<packagename> B<(E<gt>>= I<packageversion>B<)>"
-"\". Note that in debhelper compatibility levels before v4, the Debian part "
-"of the package version number is also included. If B<-V> is specified with "
-"parameters, the parameters can be used to specify the exact dependency "
-"information needed (be sure to include the package name)."
-msgstr ""
-"Standardmäßig macht die von diesem Programm erzeugte Shlibs-Datei Pakete "
-"nicht von einer bestimmten Version des Pakets abhängig, das die gemeinsam "
-"benutzte Bibliothek enthält. Es könnte nötig sein, dass Sie der Shlibs-Datei "
-"einige Informationen zur Abhängigkeit von Versionen hinzufügen. Falls B<-V> "
-"ohne Abhängigkeitsinformationen angegeben wurde, wird die aktuelle Version "
-"der Originalautoren des Pakets an eine Abhängigkeit angeschlossen, die die "
-"Form »I<Paketname> B<(E<gt>>= I<Paketversion>B<)> hat. Beachten Sie, dass "
-"der Debian-Teil der Versionsnummer in Kompatibilitätsstufen vor v4 ebenfalls "
-"eingefügt wird. Falls B<-V> mit Parametern angegeben wurde, können die "
-"Parameter verwandt werden, um die exakte benötigte Abhängigkeitsinformation "
-"anzugeben (stellen Sie sicher, dass der Paketname enthalten ist)."
-
-#. type: textblock
-#: dh_makeshlibs:69
-msgid ""
-"Beware of using B<-V> without any parameters; 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 your library is prone to changing "
-"ABI without updating the upstream version number), so that if the maintainer "
-"screws up then they won't break. The flip side is that packages might end up "
-"with dependencies that are too tight and so find it harder to be upgraded."
-msgstr ""
-"Hüten Sie sich davor, B<-V> ohne irgendwelche Parameter zu benutzen. Dies "
-"ist eine konservative Einstellung, die immer sicherstellt, dass die "
-"gemeinsam verwendeten Abhängigkeiten von Bibliotheken anderer Pakete so "
-"streng wie möglich sind (so lange Ihre Bibliothek nicht anfällig für eine "
-"Änderung des ABI ohne Aktualisierung der Versionsnummer der Originalautoren "
-"ist), so dass sie nicht zerstört werden, falls der Betreuer sie vermurkst. "
-"Die Kehrseite davon ist, dass Pakete mit zu strengen Abhängigkeiten "
-"herauskommen könnten und es so schwieriger wird, ein Upgrade durchzuführen."
-
-#. type: textblock
-#: dh_makeshlibs:83
+#: 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 ""
+"Falls durch dieses Programm eine Shlibs-Datei erzeugt wurde, steuert diese "
+"Option, welche Version in der Abhängigkeitsbeziehung benutzt werden soll."
+
+#. type: textblock
+#: 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 ""
+"Auf Kompatibilitätsstufe 12 und höher ist die Voreinstellung von "
+"B<dh_makeshlibs> B<-VUpstream-Version>. Auf Kompatibilitätsstufe 11 und "
+"niedriger verhält sich die Voreinstellung wie B<-VNone>."
+
+#. type: textblock
+#: dh_makeshlibs:88
+msgid "The B<dh_makeshlibs> tool can generate dependencies in three variants:"
+msgstr ""
+"Das Werkzeug B<dh_makeshlibs> kann Abhängigkeiten in drei Varianten erzeugen:"
+
+#. type: =item
+#: dh_makeshlibs:92
+msgid "B<-VUpstream-Version>"
+msgstr "B<-VUpstream-Version>"
+
+#. type: textblock
+#: 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 "
+"as shown here."
+msgstr ""
+"Die Abhängigkeit wird »I<Paketname> B<(E<gt>>= I<Paketversion>B<)>« lauten. "
+"Beachten Sie, dass I<VUpstream-Version> Groß- und Kleinschreibung "
+"berücksichtigt und genau wie hier gezeigt geschrieben werden muss."
+
+#. type: textblock
+#: 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 "
+"the library is prone to changing ABI without updating the upstream version "
+"number)."
+msgstr ""
+"Dies ist eine zurückhaltende Einstellung, die immer sicherstellt, dass die "
+"Abhängigkeiten von gemeinsam benutzten Bibliotheken anderer Pakete "
+"mindestens so eng sind wie erforderlich (es sei denn, in Ihrer Bibliothek "
+"wird gern das ABI geändert, ohne die Versionsnummer der Ursprungsautoren zu "
+"aktualisieren)."
+
+#. type: textblock
+#: 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 "
+"often of minor temporary inconvenience and usually a lot better than the "
+"fall out caused by forgetting to bump the dependency information."
+msgstr ""
+"Die Kehrseite ist, dass Pakete mit Abhängigkeiten enden können, die in "
+"einigen Fällen zu eng sind (beachten Sie, dass eine Symboldatei dieses "
+"Problem entschärfen kann). Dies ist aber oft eine kleine, vorübergehende "
+"Unannehmlichkeit und normalerweise viel besser als der Rattenschwanz an "
+"Problemen, der entsteht, wenn vergessen wird, die Abhängigkeitsinfos "
+"mitzupflegen."
+
+#. type: textblock
+#: 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 "
+"works)"
+msgstr ""
+"Diese eindeutige Form wurde in Debhelper/11.3 hinzugefügt. In früheren "
+"Versionen wurde stattdessen ein B<-V> ohne irgendwelche "
+"Abhängigkeitsinformationen benutzt (und diese Form funktioniert immer noch)."
+
+#. type: =item
+#: dh_makeshlibs:113
+msgid "B<-VNone>"
+msgstr "B<-VNone>"
+
+#. type: textblock
+#: 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 ""
+"Die Abhängigkeit wird »I<Paketname>« lauten. Beachten Sie, dass I<None> die "
+"Groß- und Kleinschreibung berücksichtigt und daher genau wie hier gezeigt "
+"geschrieben werden muss."
+
+#. type: textblock
+#: 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 "
+"interfaces over time and packagers are recommended to use B<-VUpstream-"
+"Version> (or one of the other forms of B<-V>I<dependencies>)."
+msgstr ""
+"Diese Form ist im Allgemeinen unsicher, es sei denn, die Ursprungsautoren "
+"erweitern das ABI in keiner Weise. Die meisten Ursprungsautoren verbessern "
+"jedoch ihre Schnittstellen mit der Zeit und es wird Paketierern empfohlen, "
+"B<-VUpstream-Version> (oder eine der anderen Formen von B<-"
+"V>I<Abhängigkeiten>) zu verwenden."
+
+#. type: textblock
+#: 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 "
+"packages. Note that symbols are not supported for udeb packages, which "
+"solely relies on shlibs for dependency handling."
+msgstr ""
+"Alterantiv kann dies ausreichen, falls (und nur falls) das Paket "
+"Symbolversionierung verwendet (siehe L<dpkg-gensymbols(1)>) und I<keine> "
+"Udeb-Pakete baut. Beachten Sie, dass Symbole nicht von Udeb-Paketen "
+"unterstützt werden, die sich bei der Behandlung von Abhängigkeiten "
+"ausschließlich auf Shlibs verlassen."
+
+#. type: =item
+#: dh_makeshlibs:128
+msgid "B<-V>I<package-relation>"
+msgstr "B<-V>I<Paketbeziehung>"
+
+#. type: textblock
+#: 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-"
+"package-name> B<(E<gt>>= I<some-package-version>B<)>\". Remember to include "
+"the package name."
+msgstr ""
+"In diesem Fall wird der an B<-V> übergebene Wert als Abhängigkeitsbeziehung "
+"benutzt. Die I<Paketbeziehung> sollte generell die Form »I<irgendein-"
+"Paketname> B<(E<gt>>= I<irgendeine-Paketversion)> haben. Denken Sie daran, "
+"den Paketnamen beizufügen."
+
+#. type: textblock
+#: 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 "
+"dependency on a different package than the one containing the library."
+msgstr ""
+"Beachten Sie, dass Debhelper diesen Wert so benutzen wird, I<wie er ist>, "
+"ohne zu prüfen, ob er vernünftig und ohne Änderung ist. In I<seltenen "
+"Sonderfällen> ist das erforderlich, um eine Abhängigkeit zu einem anderen "
+"Paket zu erzeugen als dem, das die Bibliothek enthält."
+
+#. type: textblock
+#: dh_makeshlibs:142
+msgid ""
+"When choosing a value for this option, please keep mind that if the package "
+"provides a symbols file, then that this is generally preferred over the "
+"shlibs file for regular .deb packages. See L<dpkg-shlibdeps(1)> for more "
+"information on this topic."
+msgstr ""
+"Wenn ein Wert für diese Option gewählt wird, denken Sie bitte daran, dass "
+"eine Symboldatei generell den Vorzug gegenüber der Shlibs-Datei für normale ."
+"deb-Pakete erhält, falls das Paket eine solche bereitstellt. Weitere "
+"Informationen über dieses Thema finden Sie unter L<dpkg-shlibdeps(1)>."
+
+#. type: textblock
+#: 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 "
+"B<dh_makeshlibs> would previously generate maintainer scripts that called "
+"B<ldconfig>."
+msgstr ""
+"Fügen Sie den Auslöser »ldconfig« selbst dann nicht hinzu, wenn das Paket "
+"ihn scheinbar benötigt. Diese Option wird aus historischen Gründen B<--"
+"noscripts> genannt, da B<dh_makeshlibs> früher Betreuerskripte erzeugt "
+"hatte, die B<ldconfig> aufriefen."
+
+#. type: textblock
+#: dh_makeshlibs:156
msgid ""
"Exclude files that contain I<item> anywhere in their filename or directory "
"from being treated as shared libraries."
msgstr ""
"schließt Dateien aus, die irgendwo in ihrem Datei- oder Verzeichnisnamen "
-"I<Element> enthalten, als Bibliotheken betrachtet zu werden."
+"I<Element> enthalten, als gemeinsam benutzte Bibliotheken betrachtet zu "
+"werden."
#. type: =item
-#: dh_makeshlibs:86
+#: dh_makeshlibs:159
msgid "B<--add-udeb=>I<udeb>"
msgstr "B<--add-udeb=>I<Udeb>"
#. type: textblock
-#: dh_makeshlibs:88
+#: 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 "
"package."
msgstr ""
"erstellt eine zusätzliche Zeile für Udebs in der Shlibs-Datei und benutzt "
-"I<Udeb> als Paketnamen für Udebs als Abhängigkeit, an Stelle des regulären "
+"I<Udeb> als Paketnamen für Udebs als Abhängigkeit, anstelle des regulären "
"Bibliothekpakets."
#. type: textblock
-#: dh_makeshlibs:93
+#: dh_makeshlibs:164
+msgid ""
+"This 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 ""
+"Diese Option eignet sich nur für Sonderfälle, beispielsweise wenn Debhelper "
+"den Paketnamen des Udeb-Pakets nicht automatisch ermitteln kann, das Udeb "
+"Bibliotheken aus mehreren Deb-Paketen enthalten wird oder das Udeb "
+"Bibliotheken enthält, die B<nicht> im Deb-Paket enthalten sind."
+
+#. type: =item
+#: dh_makeshlibs:169
+msgid "B<--no-add-udeb>"
+msgstr "B<--no-add-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 ""
+"fügt der Shlibs-Datei keine Udeb-Zeilen hinzu. Damit kann die "
+"voreingestellte automatische Erkennung von Udebs deaktiviert werden."
+
+#. 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 ""
+"Dies kann nützlich sein, wenn Sie gar keine Shlibs-Datei für das Udeb "
+"wollen, weil kein Paket davon abhängt; bspw. weil das Hinzufügen eines Udeb-"
+"Pakets für die Bibliothek übertrieben wäre und die Bibliothek in ein anderes "
+"Udeb-Paket eingebettet ist."
+
+#. 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:101
-msgid "B<dh_makeshlibs>"
-msgstr "B<dh_makeshlibs>"
+#: dh_makeshlibs:189
+msgid "B<dh_makeshlibs -VNone>"
+msgstr "B<dh_makeshlibs -VNone>"
#. type: verbatim
-#: dh_makeshlibs:103
+#: dh_makeshlibs:191
#, no-wrap
msgid ""
"Assuming this is a package named F<libfoobar1>, generates a shlibs file that\n"
@@ -6599,18 +11654,18 @@ msgid ""
" libfoobar 1 libfoobar1\n"
"\n"
msgstr ""
-"unter der Annahme dass dies ein Paket mit Namen F<libfoobar1> sei, wird eine Shlibs-Datei\n"
+"Angenommen, dies sei ein Paket mit Namen F<libfoobar1>, wird eine Shlibs-Datei\n"
"erzeugt, die ungefähr so aussieht:\n"
" libfoobar 1 libfoobar1\n"
"\n"
#. type: =item
-#: dh_makeshlibs:107
-msgid "B<dh_makeshlibs -V>"
-msgstr "B<dh_makeshlibs -V>"
+#: dh_makeshlibs:195
+msgid "B<dh_makeshlibs -VUpstream-Version>"
+msgstr "B<dh_makeshlibs -VUpstream-Version>"
#. type: verbatim
-#: dh_makeshlibs:109
+#: dh_makeshlibs:197
#, no-wrap
msgid ""
"Assuming the current version of the package is 1.1-3, generates a shlibs\n"
@@ -6618,18 +11673,18 @@ msgid ""
" libfoobar 1 libfoobar1 (>= 1.1)\n"
"\n"
msgstr ""
-"unter der Annahme, dass die aktuelle Version des Pakets 1.1-3 ist, wird eine\n"
+"Angenommen, dies sei die aktuelle Version des Pakets 1.1-3, wird eine\n"
"Shlibs-Datei erzeugt, die in etwa wie folgt aussieht:\n"
" libfoobar 1 libfoobar1 (>= 1.1)\n"
"\n"
#. type: =item
-#: dh_makeshlibs:113
+#: 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:115
+#: dh_makeshlibs:203
#, no-wrap
msgid ""
"Generates a shlibs file that looks something like:\n"
@@ -6646,7 +11701,7 @@ msgid "dh_md5sums - generate DEBIAN/md5sums file"
msgstr "dh_md5sums - erzeugt die Datei DEBIAN/md5sums"
#. type: textblock
-#: dh_md5sums:15
+#: dh_md5sums:18
msgid ""
"B<dh_md5sums> [S<I<debhelper options>>] [B<-x>] [B<-X>I<item>] [B<--include-"
"conffiles>]"
@@ -6655,49 +11710,52 @@ msgstr ""
"include-conffiles>]"
#. type: textblock
-#: dh_md5sums:19
+#: dh_md5sums:22
msgid ""
"B<dh_md5sums> is a debhelper program that is responsible for generating a "
"F<DEBIAN/md5sums> file, which lists the md5sums of each file in the "
-"package. These files are used by the B<debsums> package."
+"package. These files are used by B<dpkg --verify> or the L<debsums(1)> "
+"program."
msgstr ""
"B<dh_md5sums> ist ein Debhelper-Programm, das für das Erzeugen einer "
"F<DEBIAN/md5sums>-Datei zuständig ist, die die Md5-Prüfsummen jeder Datei im "
-"Paket auflistet. Diese Dateien werden vom Paket B<debsums> benutzt."
+"Paket auflistet. Diese Dateien werden von B<dpkg --verify> oder dem Programm "
+"L<debsums(1)> benutzt."
#. type: textblock
-#: dh_md5sums:23
+#: dh_md5sums:26
msgid ""
"All files in F<DEBIAN/> are omitted from the F<md5sums> file, as are all "
"conffiles (unless you use the B<--include-conffiles> switch)."
msgstr ""
"Alle Dateien in F<DEBIAN/> werden aus der F<md5sums>-Datei weggelassen, da "
-"sie alle Conffiles sind (außer, Sie benutzen den Schalter B<--include-"
+"sie alle Konfigdateien sind (außer, Sie benutzen den Schalter B<--include-"
"conffiles>)."
#. type: textblock
-#: dh_md5sums:26
+#: dh_md5sums:29
msgid "The md5sums file is installed with proper permissions and ownerships."
msgstr ""
"Die Datei »md5sums« wird mit ordnungsgemäßen Zugriffs- und Besitzrechten "
"installiert."
#. type: =item
-#: dh_md5sums:32
+#: dh_md5sums:35
msgid "B<-x>, B<--include-conffiles>"
msgstr "B<-x>, B<--include-conffiles>"
#. type: textblock
-#: dh_md5sums:34
+#: dh_md5sums:37
msgid ""
"Include conffiles in the md5sums list. Note that this information is "
-"redundant since it is included elsewhere in Debian packages."
+"redundant since it is included in F</var/lib/dpkg/status> in Debian packages."
msgstr ""
"fügt Conffiles in die Md5sums-Liste ein. Beachten Sie, dass diese "
-"Information überflüssig ist, da sie anderswo in Debian-Paketen enthalten ist."
+"Information überflüssig ist, da sie in Debian-Paketen in der F</var/lib/dpkg/"
+"status> enthalten ist."
#. type: textblock
-#: dh_md5sums:39
+#: dh_md5sums:42
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"listed in the md5sums file."
@@ -6711,7 +11769,7 @@ msgid "dh_movefiles - move files out of debian/tmp into subpackages"
msgstr "dh_movefiles - verschiebt Dateien aus debian/tmp in Unterpakete"
#. type: textblock
-#: dh_movefiles:14
+#: dh_movefiles:17
msgid ""
"B<dh_movefiles> [S<I<debhelper options>>] [B<--sourcedir=>I<dir>] [B<-"
"X>I<item>] [S<I<file> ...>]"
@@ -6720,7 +11778,7 @@ msgstr ""
"X>I<Element>] S<I<Datei> …>]"
#. type: textblock
-#: dh_movefiles:18
+#: dh_movefiles:21
msgid ""
"B<dh_movefiles> is a debhelper program that is responsible for moving files "
"out of F<debian/tmp> or some other directory and into other package build "
@@ -6731,25 +11789,25 @@ msgstr ""
"B<dh_movefiles> ist ein Debhelper-Programm, das für das Verschieben von "
"Dateien aus F<debian/tmp> oder irgendeinem anderen Verzeichnis in andere "
"Paketbauverzeichnisse zuständig ist. Dies könnte nützlich sein, falls Ihr "
-"Paket ein Makefile hat, das alles in F<debian/tmp> installiert und Sie dies "
-"in Unterpakete zerteilen möchten."
+"Paket ein Makefile hat, das alles in F<debian/tmp> installiert und Sie es in "
+"Unterpakete zerteilen möchten."
#. type: textblock
-#: dh_movefiles:23
+#: dh_movefiles:26
msgid ""
"Note: B<dh_install> is a much better program, and you are recommended to use "
"it instead of B<dh_movefiles>."
msgstr ""
"Anmerkung: B<dh_install> ist ein wesentlich besseres Programm und es wird "
-"empfohlen, es an Stelle von B<dh_movefiles> zu benutzen."
+"empfohlen, dieses an Stelle von B<dh_movefiles> zu benutzen."
#. type: =item
-#: dh_movefiles:30
+#: dh_movefiles:33
msgid "debian/I<package>.files"
msgstr "debian/I<Paket>.files"
#. type: textblock
-#: dh_movefiles:32
+#: dh_movefiles:35
msgid ""
"Lists the files to be moved into a package, separated by whitespace. The "
"filenames listed should be relative to F<debian/tmp/>. You can also list "
@@ -6761,7 +11819,7 @@ msgstr ""
"Verzeichnis wird verschoben."
#. type: textblock
-#: dh_movefiles:44
+#: dh_movefiles:47
msgid ""
"Instead of moving files out of F<debian/tmp> (the default), this option "
"makes it move files out of some other directory. Since the entire contents "
@@ -6769,20 +11827,20 @@ msgid ""
"very unsafe, so to prevent mistakes, the sourcedir must be a relative "
"filename; it cannot begin with a `B</>'."
msgstr ""
-"Anstatt Dateien aus F<debian/tmp> zu verschieben (die Vorgabe) lässt diese "
+"Anstatt Dateien aus F<debian/tmp> zu verschieben (die Vorgabe), lässt diese "
"Option die Dateien aus irgendwelchen anderen Verzeichnissen verschieben. Da "
"der ganze Inhalt des Quellverzeichnisses verschoben wird, ist die Angabe von "
-"etwas wie B<--sourcedir=/> sehr unsicher, daher muss das Quellverzeichnis, "
-"um Missverständnisse zu vermeiden, ein relativer Pfadname sein; er kann "
-"nicht mit einem »B</>« beginnen."
+"B<--sourcedir=/> o. ä. sehr unsicher, daher muss das Quellverzeichnis, um "
+"Missverständnisse zu vermeiden, ein relativer Pfadname sein; er kann nicht "
+"mit einem »B</>« beginnen."
#. type: =item
-#: dh_movefiles:50
+#: dh_movefiles:53
msgid "B<-Xitem>, B<--exclude=item>"
msgstr "B<-Xitem>, B<--exclude=Element>"
#. type: textblock
-#: dh_movefiles:52
+#: dh_movefiles:55
msgid ""
"Exclude files that contain B<item> anywhere in their filename from being "
"installed."
@@ -6791,7 +11849,7 @@ msgstr ""
"I<Element> enthalten."
#. type: textblock
-#: dh_movefiles:57
+#: dh_movefiles:60
msgid ""
"Lists files to move. The filenames listed should be relative to F<debian/tmp/"
">. You can also list directory names, and the whole directory will be moved. "
@@ -6806,7 +11864,7 @@ msgstr ""
"ablegen soll."
#. type: textblock
-#: dh_movefiles:66
+#: dh_movefiles:69
msgid ""
"Note that files are always moved out of F<debian/tmp> by default (even if "
"you have instructed debhelper to use a compatibility level higher than one, "
@@ -6818,13 +11876,12 @@ msgid ""
msgstr ""
"Beachten Sie, dass Dateien standardmäßig immer aus F<debian/tmp> verschoben "
"werden (sogar, wenn Sie Debhelper angewiesen haben, eine "
-"Kompatibilitätsstufe zu benutzen, die höher ist als Eins, da dort ansonsten "
-"debian/tmp überhaupt nicht verwendet wird). Die zugrundeliegende Idee "
-"besteht darin, dass dem zu bauenden Paket mitgeteilt wird, dass es in "
-"F<debian/tmp> installiert wird und Dateien dann durch B<dh_movefiles> von "
-"diesem Verzeichnis verschoben werden können. Jegliche Dateien oder "
-"Verzeichnisse, die verbleiben, werden ignoriert und später durch B<dh_clean> "
-"gelöscht."
+"Kompatibilitätsstufe oberhalb von eins zu benutzen, welche debian/tmp "
+"ansonsten überhaupt nicht verwendet). Die zugrundeliegende Idee besteht "
+"darin, dass dem zu bauenden Paket mitgeteilt wird, dass es in F<debian/tmp> "
+"installiert wird und Dateien dann durch B<dh_movefiles> von diesem "
+"Verzeichnis verschoben werden können. Jegliche Dateien oder Verzeichnisse, "
+"die verbleiben, werden ignoriert und später durch B<dh_clean> gelöscht."
#. type: textblock
#: dh_perl:5
@@ -6832,24 +11889,24 @@ msgid "dh_perl - calculates Perl dependencies and cleans up after MakeMaker"
msgstr "dh_perl - berechnet Perl-Abhängigkeiten und räumt nach MakeMaker auf"
#. type: textblock
-#: dh_perl:16
+#: dh_perl:20
msgid "B<dh_perl> [S<I<debhelper options>>] [B<-d>] [S<I<library dirs> ...>]"
msgstr ""
"B<dh_perl> [S<I<Debhelper-Optionen>>] [B<-d>] "
"[S<I<Bibliothekenverzeichnisse> …>]"
#. type: textblock
-#: dh_perl:20
+#: dh_perl:24
msgid ""
-"B<dh_perl> is a debhelper program that is responsible for generating the B<"
-"${perl:Depends}> substitutions and adding them to substvars files."
+"B<dh_perl> is a debhelper program that is responsible for generating the "
+"B<${perl:Depends}> substitutions and adding them to substvars files."
msgstr ""
"B<dh_perl> ist ein Debhelper-Programm, das für das Erzeugen der B<${perl:"
-"Depends}>-Ersatzung zuständig ist und um diese dann den Substvars-Dateien "
+"Depends}>-Ersetzung zuständig ist und um diese dann den Substvars-Dateien "
"hinzuzufügen."
#. type: textblock
-#: dh_perl:23
+#: dh_perl:27
msgid ""
"The program will look at Perl scripts and modules in your package, and will "
"use this information to generate a dependency on B<perl> or B<perlapi>. The "
@@ -6859,10 +11916,10 @@ msgstr ""
"Das Programm wird in Ihrem Paket nach Perl-Skripten und -Modulen suchen und "
"diese Informationen nutzen, um eine Abhängigkeit zu B<perl> oder B<perlapi> "
"zu erzeugen. Die Abhängigkeit wird in der Datei F<control> überall dort "
-"ersetzt, wo Sie die Markierung B<${perl:Depends}> platzieren."
+"eingesetzt, wo Sie die Markierung B<${perl:Depends}> platzieren."
#. type: textblock
-#: dh_perl:28
+#: dh_perl:32
msgid ""
"B<dh_perl> also cleans up empty directories that MakeMaker can generate when "
"installing Perl modules."
@@ -6871,12 +11928,12 @@ msgstr ""
"kann, wenn es Perl-Module installiert."
#. type: =item
-#: dh_perl:35
+#: dh_perl:39
msgid "B<-d>"
msgstr "B<-d>"
#. type: textblock
-#: dh_perl:37
+#: dh_perl:41
msgid ""
"In some specific cases you may want to depend on B<perl-base> rather than "
"the full B<perl> package. If so, you can pass the -d option to make "
@@ -6884,13 +11941,13 @@ msgid ""
"necessary for some packages that are included in the base system."
msgstr ""
"In einigen besonderen Fällen möchten Sie vielleicht eher eine Abhängigkeit "
-"von B<perl-base> statt vom ganzen Paket B<perl>. Falls dies so ist, können "
-"Sie die Option -d übergeben, um B<dh_perl> anzuweisen, eine Abhängigkeit vom "
+"von B<perl-base> statt vom ganzen Paket B<perl>. In diesem Fall können Sie "
+"die Option -d übergeben, um B<dh_perl> anzuweisen, eine Abhängigkeit vom "
"korrekten Basispaket zu erzeugen. Dies ist nur für einige Pakete nötig, die "
"im Basissystem enthalten sind."
#. type: textblock
-#: dh_perl:42
+#: dh_perl:46
msgid ""
"Note that this flag may cause no dependency on B<perl-base> to be generated "
"at all. B<perl-base> is Essential, so its dependency can be left out, unless "
@@ -6898,16 +11955,16 @@ msgid ""
msgstr ""
"Beachten Sie, dass wegen dieses Schalters möglicherweise gar keine "
"Abhängigkeit zu B<perl-base> erzeugt wird. B<perl-base> ist "
-"»Essential« (erforderlich) daher kann seine Abhängigkeit weggelassen werden, "
-"außer wenn eine versionsbasierte Abhängigkeit nötig ist."
+"»Essential« (erforderlich), daher kann seine Abhängigkeit weggelassen "
+"werden, außer wenn eine versionsbasierte Abhängigkeit nötig ist."
#. type: =item
-#: dh_perl:46
+#: dh_perl:50
msgid "B<-V>"
msgstr "B<-V>"
#. type: textblock
-#: dh_perl:48
+#: dh_perl:52
msgid ""
"By default, scripts and architecture independent modules don't depend on any "
"specific version of B<perl>. The B<-V> option causes the current version of "
@@ -6919,12 +11976,12 @@ msgstr ""
"angegeben wird."
#. type: =item
-#: dh_perl:52
+#: dh_perl:56
msgid "I<library dirs>"
msgstr "<I<Bibliothekenverzeichnisse>"
#. type: textblock
-#: dh_perl:54
+#: dh_perl:58
msgid ""
"If your package installs Perl modules in non-standard directories, you can "
"make B<dh_perl> check those directories by passing their names on the "
@@ -6937,17 +11994,17 @@ msgstr ""
"Verzeichnisse F<vendorlib> und F<vendorarch> prüfen."
#. type: textblock
-#: dh_perl:63
+#: dh_perl:67
msgid "Debian policy, version 3.8.3"
msgstr "Debian-Richtlinie, Version 3.8.3"
#. type: textblock
-#: dh_perl:65
+#: dh_perl:69
msgid "Perl policy, version 1.20"
msgstr "Perl-Richtlinie, Version 1.20"
#. type: textblock
-#: dh_perl:160
+#: dh_perl:196
msgid "Brendan O'Dea <bod@debian.org>"
msgstr "Brendan O'Dea <bod@debian.org>"
@@ -6959,12 +12016,12 @@ msgstr ""
"Binärpaketen durch"
#. type: textblock
-#: dh_prep:14
+#: dh_prep:17
msgid "B<dh_prep> [S<I<debhelper options>>] [B<-X>I<item>]"
msgstr "B<dh_prep> [S<I<Debhelper-Optionen>>] [B<-X>I<Element>]"
#. type: textblock
-#: dh_prep:18
+#: dh_prep:21
msgid ""
"B<dh_prep> is a debhelper program that performs some file cleanups in "
"preparation for building a binary package. (This is what B<dh_clean -k> used "
@@ -6978,48 +12035,26 @@ msgstr ""
"erstellt wird."
#. type: textblock
-#: dh_prep:23
+#: dh_prep:26
msgid ""
"It is typically run at the top of the B<binary-arch> and B<binary-indep> "
"targets, or at the top of a target such as install that they depend on."
msgstr ""
"Es wird üblicherweise oben in den Zielen B<binary-arch> und B<binary-indep> "
-"ausgeführt oder an Anfang eines Ziels wie der »install« von etwas von dem es "
-"abhängt."
+"ausgeführt oder an Anfang eines Ziels wie dem »install«, von dem sie "
+"abhängen."
#. type: textblock
-#: dh_prep:32
+#: dh_prep:35
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"deleted, even if they would normally be deleted. You may use this option "
"multiple times to build up a list of things to exclude."
msgstr ""
"schließt Dateien vom Löschen aus, die irgendwo in ihrem Dateinamen "
-"I<Element> enthalten, sogar wenn diese normalerweise gelöscht würden. Sie "
-"können diese Option mehrfach benutzen, um eine Liste auszuschließender Dinge "
-"zu erstellen."
-
-#. type: textblock
-#: dh_scrollkeeper:5
-msgid "dh_scrollkeeper - deprecated no-op"
-msgstr "dh_scrollkeeper - missbilligter Leerbefehl"
-
-#. type: textblock
-#: dh_scrollkeeper:14
-msgid "B<dh_scrollkeeper> [S<I<debhelper options>>] [B<-n>] [S<I<directory>>]"
-msgstr ""
-"B<dh_scrollkeeper> [S<I<Debhelper-Optionen>>] [B<-n>] [S<I<Verzeichnis>>]"
-
-#. type: textblock
-#: dh_scrollkeeper:18
-msgid ""
-"B<dh_scrollkeeper> was a debhelper program that handled registering OMF "
-"files for ScrollKeeper. However, it no longer does anything, and is now "
-"deprecated."
-msgstr ""
-"B<dh_scrollkeeper> war ein Debhelper-Programm, das die Registrierung von OMF-"
-"Dateien für Scrollkeeper handhabte. Es tut jedoch nicht länger irgend etwas "
-"und ist nun missbilligt."
+"I<Element> enthalten, sogar wenn diese normalerweise gelöscht erden würden. "
+"Sie können diese Option mehrfach benutzen, um eine Liste auszuschließender "
+"Dinge zu erstellen."
#. type: textblock
#: dh_shlibdeps:5
@@ -7028,7 +12063,7 @@ msgstr ""
"dh_shlibdeps - berechnet Abhängigkeiten gemeinsam benutzter Bibliotheken"
#. type: textblock
-#: dh_shlibdeps:15
+#: dh_shlibdeps:19
msgid ""
"B<dh_shlibdeps> [S<I<debhelper options>>] [B<-L>I<package>] [B<-"
"l>I<directory>] [B<-X>I<item>] [S<B<--> I<params>>]"
@@ -7037,7 +12072,7 @@ msgstr ""
"l>I<Verzeichnis>] [B<-X>I<Element>] [S<B<--> I<Parameter>>]"
#. type: textblock
-#: dh_shlibdeps:19
+#: dh_shlibdeps:23
msgid ""
"B<dh_shlibdeps> is a debhelper program that is responsible for calculating "
"shared library dependencies for packages."
@@ -7046,7 +12081,7 @@ msgstr ""
"Paketabhängigkeiten von gemeinsam benutzten Bibliotheken zuständig ist."
#. type: textblock
-#: dh_shlibdeps:22
+#: dh_shlibdeps:26
msgid ""
"This program is merely a wrapper around L<dpkg-shlibdeps(1)> that calls it "
"once for each package listed in the F<control> file, passing it a list of "
@@ -7058,7 +12093,7 @@ msgstr ""
"übergibt, die es gefunden hat."
#. type: textblock
-#: dh_shlibdeps:32
+#: dh_shlibdeps:36
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"passed to B<dpkg-shlibdeps>. This will make their dependencies be ignored. "
@@ -7072,31 +12107,31 @@ msgstr ""
"verwenden, um eine Liste auszuschließender Dinge zu erstellen."
#. type: textblock
-#: dh_shlibdeps:39
+#: dh_shlibdeps:43
msgid "Pass I<params> to L<dpkg-shlibdeps(1)>."
msgstr "übergibt I<Parameter> an L<dpkg-shlibdeps(1)>."
#. type: =item
-#: dh_shlibdeps:41
+#: dh_shlibdeps:45
msgid "B<-u>I<params>, B<--dpkg-shlibdeps-params=>I<params>"
msgstr "B<-u>I<Parameter>, B<--dpkg-shlibdeps-params=>I<Parameter>"
#. type: textblock
-#: dh_shlibdeps:43
+#: dh_shlibdeps:47
msgid ""
"This is another way to pass I<params> to L<dpkg-shlibdeps(1)>. It is "
"deprecated; use B<--> instead."
msgstr ""
"Dies ist eine weitere Möglichkeit I<Parameter> an L<dpkg-shlibdeps(1)> zu "
-"übergeben. Sie ist missbilligt; benutzen Sie stattdessen B<-->."
+"übergeben. Sie ist veraltet; benutzen Sie stattdessen B<-->."
#. type: =item
-#: dh_shlibdeps:46
+#: dh_shlibdeps:50
msgid "B<-l>I<directory>[B<:>I<directory> ...]"
msgstr "B<-l>I<Verzeichnis>[B<:>I<Verzeichnis> …]"
#. type: textblock
-#: dh_shlibdeps:48
+#: dh_shlibdeps:52
msgid ""
"With recent versions of B<dpkg-shlibdeps>, this option is generally not "
"needed."
@@ -7105,7 +12140,7 @@ msgstr ""
"Allgemeinen nicht mehr benötigt."
#. type: textblock
-#: dh_shlibdeps:51
+#: dh_shlibdeps:55
msgid ""
"It tells B<dpkg-shlibdeps> (via its B<-l> parameter), to look for private "
"package libraries in the specified directory (or directories -- separate "
@@ -7114,31 +12149,33 @@ msgid ""
"other situations where the library is installed into a directory not on the "
"regular library search path."
msgstr ""
-"Es teilt B<dpkg-shlibdeps> (über seinen Parameter B<-l>) mit, dass es im "
-"angegebenen Verzeichnis (oder durch Doppelpunkte getrennten Verzeichnissen) "
-"nach privaten Paketbibliotheken Ausschau halten soll. Mit aktuellen "
-"Versionen von B<dpkg-shlibdeps> ist dies meist nur für Pakete nützlich, die "
-"mehrere Varianten der gleichen Bibliothek bauen oder in anderen Situationen, "
-"in denen die Bibliothek in einem Verzeichnis installiert wird, das nicht im "
-"regulären Bibliothekssuchpfad liegt."
+"Sie teilt B<dpkg-shlibdeps> (über seinen Parameter B<-l>) mit, dass es im "
+"angegebenen Verzeichnis (oder in durch Doppelpunkte getrennten "
+"Verzeichnissen) nach privaten Paketbibliotheken Ausschau halten soll. Mit "
+"aktuellen Versionen von B<dpkg-shlibdeps> eignet sich dies meist nur für "
+"Pakete, die mehrere Varianten der gleichen Bibliothek bauen, oder in "
+"Situationen, in denen die Bibliothek in einem Verzeichnis installiert wird, "
+"das nicht im regulären Bibliothekssuchpfad liegt."
#. type: =item
-#: dh_shlibdeps:59
+#: dh_shlibdeps:63
msgid "B<-L>I<package>, B<--libpackage=>I<package>"
msgstr "B<-L>I<Paket>, B<--libpackage=>I<Paket>"
#. type: textblock
-#: dh_shlibdeps:61
+#: dh_shlibdeps:65
msgid ""
"With recent versions of B<dpkg-shlibdeps>, this option is generally not "
-"needed, unless your package builds multiple flavors of the same library."
+"needed, unless your package builds multiple flavors of the same library or "
+"is relying on F<debian/shlibs.local> for an internal library."
msgstr ""
"Mit aktuellen Versionen von B<dpkg-shlibdeps> ist diese Option im "
-"Allgemeinen nicht nötig, es sei denn, Ihr Paket baut mehrere "
-"Geschmacksrichtungen der gleichen Bibliothek."
+"Allgemeinen nicht nötig, es sei denn, Ihr Paket baut mehrere Varianten der "
+"gleichen Bibliothek oder vertraut auf F<debian/shlibs.local> für eine "
+"interne Bibliothek."
#. type: textblock
-#: dh_shlibdeps:64
+#: dh_shlibdeps:69
msgid ""
"It tells B<dpkg-shlibdeps> (via its B<-S> parameter) to look first in the "
"package build directory for the specified package, when searching for "
@@ -7149,7 +12186,15 @@ msgstr ""
"Bibliotheken, Symbol- und Shlibs-Dateien gesucht wird."
#. type: textblock
-#: dh_shlibdeps:72
+#: dh_shlibdeps:73
+msgid ""
+"If needed, this can be passed multiple times with different package names."
+msgstr ""
+"Falls nötig, kann dies mehrfach mit unterschiedlichen Paketnamen übergeben "
+"werden."
+
+#. type: textblock
+#: dh_shlibdeps:80
msgid ""
"Suppose that your source package produces libfoo1, libfoo-dev, and libfoo-"
"bin binary packages. libfoo-bin links against libfoo1, and should depend on "
@@ -7161,7 +12206,7 @@ msgstr ""
"B<dh_shlibdeps> aus:"
#. type: verbatim
-#: dh_shlibdeps:76
+#: dh_shlibdeps:84
#, no-wrap
msgid ""
"\tdh_makeshlibs\n"
@@ -7173,30 +12218,30 @@ msgstr ""
"\n"
#. type: textblock
-#: dh_shlibdeps:79
+#: dh_shlibdeps:87
msgid ""
"This will have the effect of generating automatically a shlibs file for "
"libfoo1, and using that file and the libfoo1 library in the F<debian/libfoo1/"
"usr/lib> directory to calculate shared library dependency information."
msgstr ""
-"Dies hat den Effekt, dass eine Shilbs-Datei für libfoo1 automatisch erstellt "
-"wird und dann diese Datei und die libfoo1-Bibliothek im Verzeichnis F<debian/"
-"libfoo1/usr/lib> benutzt wird, um die Abhängigkeitsinformation der gemeinsam "
-"benutzten Bibliothek zu berechnen."
+"Dies hat den Effekt, dass für libfoo1 automatisch eine Shilbs-Datei erstellt "
+"wird und dann diese Datei sowie die libfoo1-Bibliothek im Verzeichnis "
+"F<debian/libfoo1/usr/lib> benutzt werden, um die Abhängigkeitsinformation "
+"der gemeinsam benutzten Bibliothek zu berechnen."
#. type: textblock
-#: dh_shlibdeps:84
+#: dh_shlibdeps:92
msgid ""
"If a libbar1 package is also produced, that is an alternate build of libfoo, "
"and is installed into F</usr/lib/bar/>, you can make libfoo-bin depend on "
"libbar1 as follows:"
msgstr ""
-"Falls außerdem ein libbar1-Paket erstellt wird, das ein alternativ gebautes "
-"libfoo ist, das in F</usr/lib/bar/> installiert ist, können Sie libfoo-bin "
-"wie folgt eine Abhängigkeit von libbar1 erreichen:"
+"Falls außerdem ein libbar1-Paket als ein alternativ gebautes libfoo erstellt "
+"und in F</usr/lib/bar/> installiert wird, können Sie für libfoo-bin wie "
+"folgt eine Abhängigkeit von libbar1 erreichen:"
#. type: verbatim
-#: dh_shlibdeps:88
+#: dh_shlibdeps:96
#, no-wrap
msgid ""
"\tdh_shlibdeps -Llibbar1 -l/usr/lib/bar\n"
@@ -7206,7 +12251,7 @@ msgstr ""
"\t\n"
#. type: textblock
-#: dh_shlibdeps:154
+#: dh_shlibdeps:206
msgid "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
msgstr "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
@@ -7219,7 +12264,7 @@ msgstr ""
"und einigen statischen Bibliotheken"
#. type: textblock
-#: dh_strip:15
+#: dh_strip:18
msgid ""
"B<dh_strip> [S<I<debhelper options>>] [B<-X>I<item>] [B<--dbg-"
"package=>I<package>] [B<--keep-debug>]"
@@ -7228,18 +12273,19 @@ msgstr ""
"package=>I<Paket>] [B<--keep-debug>]"
#. type: textblock
-#: dh_strip:19
+#: dh_strip:22
msgid ""
-"B<dh_strip> is a debhelper program that is responsible for stripping "
-"executables, shared libraries, and static libraries that are not used for "
-"debugging."
+"B<dh_strip> is a debhelper program that is responsible for stripping out "
+"debug symbols in executables, shared libraries, and static libraries that "
+"are not needed during execution."
msgstr ""
"B<dh_strip> ist ein Debhelper-Programm, das für das Entfernen von Symbolen "
-"aus von Programmen, gemeinsam benutzten Bibliotheken und einigen statischen "
-"Bibliotheken, die nicht zur Fehlersuche verwandt werden, zuständig ist."
+"von Programmen, gemeinsam benutzten Bibliotheken und einigen statischen "
+"Bibliotheken, die nicht während der Ausführung verwendet werden, zuständig "
+"ist."
#. type: textblock
-#: dh_strip:23
+#: dh_strip:26
msgid ""
"This program examines your package build directories and works out what to "
"strip on its own. It uses L<file(1)> and file permissions and filenames to "
@@ -7249,175 +12295,236 @@ msgid ""
"libraries.) In general it seems to make very good guesses, and will do the "
"right thing in almost all cases."
msgstr ""
-"Dieses Programm untersucht Ihre Paketbauverzeichnisse und ermittelt alleine, "
-"wovon Symbole entfernt werden müssen. Es verwendet L<file(1)>, "
+"Dieses Programm untersucht Ihre Paketbauverzeichnisse und ermittelt "
+"selbsttätig, wo Symbole entfernt werden müssen. Es verwendet L<file(1)>, "
"Dateizugriffsrechte und Dateinamen, um herauszufinden, welche Dateien "
"gemeinsam benutzte Bibliotheken (F<*.so>), Programme, statische Bibliotheken "
-"(F<lib*.a>) und solche zur Fehlersuche (F<lib*_g.a>, F<debug/*.so>) sind und "
-"entfernt so viele Symbole wie möglich (bei Fehlersuch-Bibliotheken werden "
-"keine Symbole entfernt). Im Allgemeinen scheint es sehr gute Annahmen zu "
-"treffen und in den meisten Fällen das Richtige tun."
+"(F<lib*.a>) und solche zur Fehlersuche (F<lib*_g.a>, F<debug/*.so>) "
+"enthalten und entfernt so viele Symbole wie möglich (bei Fehlersuch-"
+"Bibliotheken werden keine Symbole entfernt). Im Allgemeinen scheint es sehr "
+"gute Annahmen zu treffen und wird in fast allen Fällen das Richtige tun."
#. type: textblock
-#: dh_strip:31
+#: dh_strip:34
msgid ""
"Since it is very hard to automatically guess if a file is a module, and hard "
"to determine how to strip a module, B<dh_strip> does not currently deal with "
"stripping binary modules such as F<.o> files."
msgstr ""
-"Da es sehr schwierig ist, automatisch abzuschätzen, ob eine Datei ein Modul "
-"ist und schwer festzustellen, wie Symbole eines Moduls entfernt werden, "
-"bewältigt B<dh_strip> derzeit nicht das Entfernen von Symbolen binärer "
-"Module, wie etwa F<.o>-Dateien."
-
-#. type: textblock
-#: dh_strip:41
-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 "
-"things to exclude."
-msgstr ""
-"schließt Dateien vom Entfernen der Symbole aus, die irgendwo in ihrem "
-"Dateinamen I<Element> enthalten. Sie können diese Option mehrfach benutzen, "
-"um eine Liste auszuschließender Dinge zu erstellen."
+"Da es sehr schwierig ist, automatisch festzustellen, ob eine Datei ein Modul "
+"enthält und wie die Symbole eines Moduls entfernt werden, bearbeitet "
+"B<dh_strip> derzeit binären Module wie etwa F<.o>-Dateien."
#. type: =item
-#: dh_strip:45
+#: dh_strip:48
msgid "B<--dbg-package=>I<package>"
msgstr "B<--dbg-package=>I<Paket>"
#. type: textblock
-#: dh_strip:47
+#: dh_strip:50 dh_strip:70
+msgid ""
+"B<This option is a now special purpose option that you normally do not "
+"need>. In most cases, there should be little reason to use this option for "
+"new source packages as debhelper automatically generates debug packages "
+"(\"dbgsym packages\"). B<If you have a manual --dbg-package> that you want "
+"to replace with an automatically generated debug symbol package, please see "
+"the B<--dbgsym-migration> option."
+msgstr ""
+"B<Diese Option ist nun eine Option für besondere Zwecke und Sie benötigensie "
+"normalerweise nicht>. In den meisten Fällen sollte es nur wenige Gründe "
+"geben, diese Option für neue Quellpakete zu benutzen, da Debhelper "
+"automatisch Pakete zur Fehlersuche (»Dbgsym-Pakete«) erzeugt. B<Falls Sie "
+"ein manuelles --dbg-package haben,> das Sie durch ein automatisch erzeugtes "
+"Fehlersuch-Symbolpaket ersetzen möchten, sehen Sie sich bitte die Option B<--"
+"dbgsym-migration> an."
+
+#. type: textblock
+#: dh_strip:58
msgid ""
"Causes B<dh_strip> to save debug symbols stripped from the packages it acts "
"on as independent files in the package build directory of the specified "
"debugging package."
msgstr ""
-"veranlasst B<dh_strip> Debug-Symbole als unabhängige Dateien im "
-"Paketbauverzeichnis des angegebenen Fehlersuchpakets zu sichern, die aus den "
-"Paketen, mit denen es arbeitet, entfernt wurden."
+"veranlasst B<dh_strip> die Debug-Symbole, die es aus den bearbeiteten "
+"Paketen entfernt hat, als einzelne Dateien im Paketbauverzeichnis des "
+"angegebenen Fehlersuchpakets zu sichern."
#. type: textblock
-#: dh_strip:51
+#: dh_strip:62
msgid ""
"For example, if your packages are libfoo and foo and you want to include a "
"I<foo-dbg> package with debugging symbols, use B<dh_strip --dbg-"
"package=>I<foo-dbg>."
msgstr ""
-"Falls Ihre Pakete zum Beispiel libfoo und foo sind und Sie ein I<foo-dbg>-"
-"Paket mit Debug-Symbolen einfügen möchten, benutzen Sie B<dh_strip --dbg-"
+"Falls zum Beispiel Ihre Pakete libfoo und foo sind und Sie ein I<foo-dbg>-"
+"Paket mit Debug-Symbolen mitliefern möchten, benutzen Sie B<dh_strip --dbg-"
"package=>I<foo-dbg>."
#. type: textblock
-#: dh_strip:54
+#: dh_strip:65
msgid ""
-"Note that this option behaves significantly different in debhelper "
-"compatibility levels 4 and below. Instead of specifying the name of a debug "
-"package to put symbols in, it specifies a package (or packages) which should "
-"have separated debug symbols, and the separated symbols are placed in "
-"packages with B<-dbg> added to their name."
+"This option implies B<--no-automatic-dbgsym> and I<cannot> be used with B<--"
+"automatic-dbgsym> or B<--dbgsym-migration>."
msgstr ""
-"Beachten Sie, dass sich diese Option in den Debhelper-Kompatibilitätsstufen "
-"4 und darunter erheblich anders verhält. Anstatt den Namen eines Debug-"
-"Pakets anzugeben, in das die Symbole abgelegt werden, gibt sie ein Paket "
-"(oder mehrere Pakete) an, das getrennte Debug-Symbole haben sollte. Die "
-"getrennten Symbole werden in Pakete platziert, deren Name ein B<-dbg> "
-"hinzugefügt wurde."
+"Diese Option impliziert B<--no-automatic-dbgsym> und I<kann nicht> zusammen "
+"mit B<--automatic-dbgsym> oder B<--dbgsym-migration> verwendet werden."
#. type: =item
-#: dh_strip:60
+#: dh_strip:68
msgid "B<-k>, B<--keep-debug>"
msgstr "B<-k>, B<--keep-debug>"
+# FIXME: First sentence does not make sense
#. type: textblock
-#: dh_strip:62
+#: dh_strip:78
msgid ""
"Debug symbols will be retained, but split into an independent file in F<usr/"
"lib/debug/> in the package build directory. B<--dbg-package> is easier to "
"use than this option, but this option is more flexible."
msgstr ""
-"Debug-Symbole werden beibehalten, aber in eine unabhängige Datei in F<usr/"
-"lib/debug/> im Paketbauverzeichnis aufgeteilt. B<--dbg-package> ist "
-"einfacher als diese Option zu benutzen, aber diese Option ist flexibler."
+"Debug-Symbole werden beibehalten, aber in unabhängige Dateien in F<usr/lib/"
+"debug/> im Paketbauverzeichnis aufgeteilt. B<--dbg-package> ist einfacher zu "
+"benutzen als diese Option, aber diese Option ist flexibler."
#. type: textblock
-#: dh_strip:70
+#: dh_strip:82
msgid ""
-"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
-"nothing will be stripped, in accordance with Debian policy (section 10.1 "
-"\"Binaries\")."
+"This option implies B<--no-automatic-dbgsym> and I<cannot> be used with B<--"
+"automatic-dbgsym>."
msgstr ""
-"Falls die Umgebungsvariable B<DEB_BUILD_OPTIONS> B<nostrip> enthält, werden "
-"getreu der Debian-Richlinie (Abschnitt 10.1. »Binaries«) keine Symbole "
-"entfernt."
-
-#. type: textblock
-#: dh_strip:76
-msgid "Debian policy, version 3.0.1"
-msgstr "Debian-Richlinie, Version 3.0.1"
+"Diese Option impliziert B<--no-automatic-dbgsym> und I<kann nicht> zusammen "
+"mit B<--ddeb> verwendet werden."
-#. type: textblock
-#: dh_suidregister:5
-msgid "dh_suidregister - suid registration program (deprecated)"
-msgstr "dh_suidregister - SUID-Registrierungsprogramm (missbilligt)"
+#. type: =item
+#: dh_strip:85
+msgid "B<--dbgsym-migration=>I<package-relation>"
+msgstr "B<--dbgsym-migration=>I<Paketbeziehung>"
#. type: textblock
-#: dh_suidregister:9 dh_undocumented:14
-msgid "Do not run!"
-msgstr "Nicht ausführen!"
+#: dh_strip:87
+msgid ""
+"This option is used to migrate from a manual \"-dbg\" package (created with "
+"B<--dbg-package>) to an automatic generated debug symbol package. This "
+"option should describe a valid B<Replaces>- and B<Breaks>-relation, which "
+"will be added to the debug symbol package to avoid file conflicts with the "
+"(now obsolete) -dbg package."
+msgstr ""
+"Diese Option wird benutzt, um von einem manuellen »-dbg«-Paket (das mit B<--"
+"dbg-package> erstellt wurde) zu einem automatisch erzeugten Fehlersuch-"
+"Symbolpaket zu migrieren. Der Wert dieser Option sollte eine gültige "
+"B<Replaces>- und B<Breaks>-Beziehung beschreiben; diese wird dem Fehlersuch-"
+"Symbolpaket hinzugefügt werden, um Dateikonflikte mit dem (nun veralteten) -"
+"dbg-Paket zu vermeiden."
#. type: textblock
-#: dh_suidregister:13
+#: dh_strip:93
msgid ""
-"This program used to register suid and sgid files with L<suidregister(1)>, "
-"but with the introduction of L<dpkg-statoverride(8)>, registration of files "
-"in this way is unnecessary, and even harmful, so this program is deprecated "
-"and should not be used."
+"This option implies B<--automatic-dbgsym> and I<cannot> be used with B<--"
+"keep-debug>, B<--dbg-package> or B<--no-automatic-dbgsym>."
msgstr ""
-"Dieses Programm wird benutzt, um SUID- und SGID-Dateien mit "
-"L<suidregister(1)> zu registrieren, aber mit der Einführung von L<dpkg-"
-"statoverride(8)> ist das Registrieren von Dateien auf diese Art nicht mehr "
-"nötig und sogar schädlich, daher ist dieses Programm missbilligt und sollte "
-"nicht mehr verwandt werden."
-
-#. type: =head1
-#: dh_suidregister:18
-msgid "CONVERTING TO STATOVERRIDE"
-msgstr "UMWANDLUNG NACH STATOVERRIDE"
+"Diese Option impliziert B<--automatic-dbgsym> und I<kann nicht> zusammen mit "
+"B<--keep-debug>, B<--dbg-package> oder B<--no-automatic-dbgsym> verwendet "
+"werden."
#. type: textblock
-#: dh_suidregister:20
+#: dh_strip:96
+msgid "Examples:"
+msgstr "Beispiele:"
+
+#. type: verbatim
+#: dh_strip:98
+#, no-wrap
msgid ""
-"Converting a package that uses this program to use the new statoverride "
-"mechanism is easy. Just remove the call to B<dh_suidregister> from F<debian/"
-"rules>, and add a versioned conflicts into your F<control> file, as follows:"
+" dh_strip --dbgsym-migration='libfoo-dbg (<< 2.1-3~)'\n"
+"\n"
msgstr ""
-"Es ist einfach, ein Paket, das dieses Programm verwendet, so umzuwandeln, "
-"dass es den neuen Statoverride-Mechanismus benutzt. Entfernen Sie nur den "
-"Aufruf von B<dh_suidregister> aus F<debian/rules> und fügen Sie der Datei "
-"F<control> wie folgt ein »Conflicts« unter Berücksichtigung der Version "
-"hinzu:"
+" dh_strip --dbgsym-migration='libfoo-dbg (<< 2.1-3~)'\n"
+"\n"
#. type: verbatim
-#: dh_suidregister:25
+#: dh_strip:100
#, no-wrap
msgid ""
-" Conflicts: suidmanager (<< 0.50)\n"
+" dh_strip --dbgsym-migration='libfoo-tools-dbg (<< 2.1-3~), libfoo2-dbg (<< 2.1-3~)'\n"
"\n"
msgstr ""
-" Conflicts: suidmanager (<< 0.50)\n"
+" dh_strip --dbgsym-migration='libfoo-tools-dbg (<< 2.1-3~), libfoo2-dbg (<< 2.1-3~)'\n"
"\n"
+#. type: =item
+#: dh_strip:102
+msgid "B<--automatic-dbgsym>, B<--no-automatic-dbgsym>"
+msgstr "B<--automatic-dbgsym>, B<--no-automatic-dbgsym>"
+
#. type: textblock
-#: dh_suidregister:27
+#: dh_strip:104
msgid ""
-"The conflicts is only necessary if your package used to register things with "
-"suidmanager; if it did not, you can just remove the call to this program "
-"from your rules file."
+"Control whether B<dh_strip> should be creating debug symbol packages when "
+"possible."
+msgstr ""
+"steuert, ob B<dh_strip> Fehlersuch-Symbolpakete erstellen soll, wenn möglich."
+
+#. type: textblock
+#: dh_strip:107
+msgid "The default is to create debug symbol packages."
+msgstr "Die Vorgabe ist, Fehlersuch-Symbolpakete zu erstellen."
+
+#. type: =item
+#: dh_strip:109
+msgid "B<--ddebs>, B<--no-ddebs>"
+msgstr "B<--ddebs>, B<--no-ddebs>"
+
+#. type: textblock
+#: dh_strip:111
+msgid "Historical name for B<--automatic-dbgsym> and B<--no-automatic-dbgsym>."
msgstr ""
-"Das »Conflicts« ist nur nötig, falls Ihr Paket benutzt wurde, um Dinge mit "
-"Suidmanager zu registrieren; falls es dies nicht tat, brauchen Sie nur den "
-"Aufruf dieses Programms aus der Datei »rules« zu entfernen."
+"historischer Name für B<--automatic-dbgsym> und B<--no-automatic-dbgsym>"
+
+#. type: =item
+#: dh_strip:113
+msgid "B<--ddeb-migration=>I<package-relation>"
+msgstr "B<--ddeb-migration=>I<Paketbeziehung>"
+
+#. type: textblock
+#: dh_strip:115
+msgid "Historical name for B<--dbgsym-migration>."
+msgstr "historischer Name für B<--dbgsym-migration>"
+
+#. type: textblock
+#: dh_strip:121
+msgid ""
+"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
+"nothing will be stripped, in accordance with Debian policy (section 10.1 "
+"\"Binaries\"). This will also inhibit the automatic creation of debug "
+"symbol packages."
+msgstr ""
+"Falls die Umgebungsvariable B<DEB_BUILD_OPTIONS> B<nostrip> enthält, werden "
+"getreu der Debian-Richlinie (Abschnitt 10.1. »Binaries«) keine Symbole "
+"entfernt. Dies wird auch das Erstellen automatischer Fehlersuch-Symbolpakete "
+"verhindern."
+
+#. type: textblock
+#: dh_strip:126
+msgid ""
+"The automatic creation of debug symbol packages can also be prevented by "
+"adding B<noautodbgsym> to the B<DEB_BUILD_OPTIONS> environment variable. "
+"However, B<dh_strip> will still add debuglinks to ELF binaries when this "
+"flag is set. This is to ensure that the regular deb package will be "
+"identical with and without this flag (assuming it is otherwise \"bit-for-"
+"bit\" reproducible)."
+msgstr ""
+"Das automatische Erzeugen von Symbolpaketen zur Fehlersuche kann außerdem "
+"durch Hinzufügen von B<noautodbgsym> zur Umgebungsvariablen "
+"B<DEB_BUILD_OPTIONS> verhindert werden. B<dh_strip> wird jedoch auch "
+"weiterhin Fehlersuch-Links auf ELF-Binärdateien hinzufügen, wenn dieser "
+"Schalter gesetzt ist. Dies stellt sicher, dass das normale Deb-Paket mit "
+"oder ohne diesen Schalter identisch ist (unter der Annahme, dass es "
+"ansonsten »Bit-für-Bit« reproduzierbar ist)."
+
+#. type: textblock
+#: dh_strip:135
+msgid "Debian policy, version 3.0.1"
+msgstr "Debian-Richlinie, Version 3.0.1"
#. type: textblock
#: dh_testdir:5
@@ -7425,12 +12532,12 @@ msgid "dh_testdir - test directory before building Debian package"
msgstr "dh_testdir - Verzeichnis vor dem Bauen des Debian-Pakets testen"
#. type: textblock
-#: dh_testdir:14
+#: dh_testdir:17
msgid "B<dh_testdir> [S<I<debhelper options>>] [S<I<file> ...>]"
msgstr "B<dh_testdir> [S<I<Debhelper-Optionen>>] [S<I<Datei> …>]"
#. type: textblock
-#: dh_testdir:18
+#: dh_testdir:21
msgid ""
"B<dh_testdir> tries to make sure that you are in the correct directory when "
"building a Debian package. It makes sure that the file F<debian/control> "
@@ -7443,64 +12550,133 @@ msgstr ""
"die Sie angeben. Falls nicht, beendet es sich mit einem Fehler."
#. type: textblock
-#: dh_testdir:29
+#: dh_testdir:32
msgid "Test for the existence of these files too."
msgstr "testet auch, ob diese Dateien existieren."
#. type: textblock
-#: dh_testroot:5
-msgid "dh_testroot - ensure that a package is built as root"
-msgstr "dh_testroot - stellt sicher, dass ein Paket als Root gebaut wird."
+#: dh_testroot:7
+msgid ""
+"dh_testroot - ensure that a package is built with necessary level of root "
+"permissions"
+msgstr ""
+"dh_testroot - stellt sicher, dass ein Paket mit dem notwendigen Umfang an "
+"Root-Rechten gebaut wird."
#. type: textblock
-#: dh_testroot:9
+#: dh_testroot:11
msgid "B<dh_testroot> [S<I<debhelper options>>]"
msgstr "B<dh_testroot> [S<I<Debhelper-Optionen>>]"
#. type: textblock
-#: dh_testroot:13
+#: dh_testroot:15
+msgid ""
+"B<dh_testroot> is used to determine if the target is being run with suffient "
+"access to root(-like) features."
+msgstr ""
+"B<dh_testroot> wird benutzt, um zu bestimmen, ob ein Ziel mit ausreichenden "
+"Zugriffsrechten für root(-ähnliche) Funktionalitäten ausgeführt wird."
+
+#. type: textblock
+#: dh_testroot:18
+msgid ""
+"The definition of sufficient access depends on whether the builder (the tool "
+"invoking the F<debian/rules> target) supports the I<Rules-Requires-Root> "
+"(R³) field. If the builder supports R³, then it will set the environment "
+"variable I<DEB_RULES_REQUIRES_ROOT> and B<dh_testroot> will validate that "
+"the builder followed the minimum requirements for the given value of "
+"I<DEB_RULES_REQUIRES_ROOT>."
+msgstr ""
+"Die Definition ausreichender Zugriffsrechte hängt davon ab, ob das "
+"Bauprogramm (das Werkzeug, das das Ziel F<debian/rules> aufruft) das Feld "
+"I<Rules-Requires-Root> (R³) unterstützt. Falls das Bauprogramm R³ "
+"unterstützt, wird es die Umgebungsvariable I<DEB_RULES_REQUIRES_ROOT> setzen "
+"und B<dh_testroot> wird überprüfen, ob dieses Bauprogramm die minimalen "
+"Anforderungen für den angegebenen Wert von I<DEB_RULES_REQUIRES_ROOT> "
+"erfüllt."
+
+#. type: textblock
+#: dh_testroot:25
msgid ""
-"B<dh_testroot> simply checks to see if you are root. If not, it exits with "
-"an error. Debian packages must be built as root, though you can use "
-"L<fakeroot(1)>"
+"If the builder does not support I<Rules-Requires-Root>, then it will not set "
+"the I<DEB_RULES_REQUIRES_ROOT> environment variable. This will in turn make "
+"B<dh_testroot> (and the rest of debhelper) fall back to assuming that "
+"(fake)root is implied."
msgstr ""
-"B<dh_testroot> prüft nur, ob Sie Root sind. Falls nicht, beendet es sich mit "
-"einem Fehler. Debian-Pakete müssen als Root gebaut werden. Sie können aber "
-"L<fakeroot(1)> benutzen."
+"Falls das Bauprogramm I<Rules-Requires-Root> nicht unterstützt, wird es die "
+"Umgebungsvariable I<DEB_RULES_REQUIRES_ROOT> nicht setzen. Dies wird "
+"wiederum dazu führen, dass B<dh_testroot> (und der Rest von Debhelper) "
+"ersatzweise davon ausgeht, dass (fake)root impliziert wird."
#. type: textblock
-#: dh_undocumented:5
-msgid "dh_undocumented - undocumented.7 symlink program (deprecated no-op)"
+#: dh_testroot:30
+msgid ""
+"The following is a summary of how B<dh_testroot> behaves based on the "
+"I<DEB_RULES_REQUIRES_ROOT> environment variable (leading and trailing "
+"whitespace in the variable is ignored)."
msgstr ""
-"dh_undocumented - Programm für symbolische Verweise zu undocumented.7 "
-"(missbilligt, Leerbefehl)"
+"Das Folgende ist eine Zusammenfassung, wie sich B<dh_testroot> basierend auf "
+"der Umgebungsvariable I<DEB_RULES_REQUIRES_ROOT> verhält (führende und "
+"abschließende Leerräume in der Variable werden ignoriert)."
#. type: textblock
-#: dh_undocumented:18
+#: dh_testroot:38
msgid ""
-"This program used to make symlinks to the F<undocumented.7> man page for man "
-"pages not present in a package. Debian policy now frowns on use of the "
-"F<undocumented.7> man page, and so this program does nothing, and should not "
-"be used."
+"If unset, or set to C<binary-targets>, then B<dh_testroot> asserts that it "
+"is run as root or under L<fakeroot(1)>."
msgstr ""
-"Dieses Programm wurde dazu verwandt, um symbolische Verweise auf die "
-"F<undocumented.7>-Handbuchseite zu erstellen für Handbuchseiten, die es "
-"nicht im Paket gibt. Die Debian-Richtlinie missbilligt nun die Benutzung der "
-"F<undocumented.7>-Handbuchseite, weswegen dieses Programm nichts tut und "
-"nicht verwendet werden sollte."
+"Falls es nicht oder auf C<binary-targets> gesetzt ist, behauptet "
+"B<dh_testroot>, dass es als Root oder unter L<fakeroot(1)> läuft."
#. type: textblock
-#: dh_usrlocal:5
+#: dh_testroot:43
+msgid ""
+"If set to C<no>, then B<dh_testroot> returns successfully (without "
+"performing any additional checks)."
+msgstr ""
+"Falls es auf C<no> gesetzt ist, endet B<dh_testroot> erfolgreich (ohne "
+"zusätzliche Prüfungen durchzuführen)."
+
+#. type: textblock
+#: dh_testroot:48
+msgid ""
+"If set to any other value than the above, then B<dh_testroot> asserts that "
+"it is either run as root (or under L<fakeroot(1)>) or the builder has "
+"provided the B<DEB_GAIN_ROOT_CMD> environment variable (e.g. via dpkg-"
+"buildpackage -r)."
+msgstr ""
+"Falls es auf einen anderen als die oben aufgeführten Werte gesetzt ist, dann "
+"behauptet B<dh_testroot>, dass es entweder als Root (oder unter "
+"L<fakeroot(1)>) läuft oder dass das Bauprogramm die Umgebungsvariable "
+"B<DPKG_GAIN_ROOT_CMD> (z. B. per dpkg-buildpackage -r) bereitgestellt hat."
+
+#. type: textblock
+#: dh_testroot:55
+msgid ""
+"Please note that B<dh_testroot> does I<not> read the I<Rules-Requires-Root> "
+"field. Which implies that B<dh_testroot> may produce incorrect result if "
+"the builder lies in I<DEB_RULES_REQUIRES_ROOT>. On the flip side, it also "
+"enables things like testing for what will happen when "
+"I<DEB_RULES_REQUIRES_ROOT> is set to a given value."
+msgstr ""
+"Bitte beachten Sie, dass B<dh_testroot> das Feld I<Rules-Requires-Root> "
+"I<nicht> liest, was impliziert, dass B<dh_testroot> ein falsches Ergebnis "
+"liefern kann, wenn das Bauprogramm in I<DEB_RULES_REQUIRES_ROOT> lügt. "
+"Andererseits ermöglicht es so etwas wie Tests, was geschieht, wenn "
+"I<DEB_RULES_REQUIRES_ROOT> auf einen angegebenen Wert gesetzt wird."
+
+#. type: textblock
+#: dh_usrlocal:7
msgid "dh_usrlocal - migrate usr/local directories to maintainer scripts"
msgstr "dh_usrlocal - migriert usr/local-Verzeichnisse zu Betreuerskripten"
#. type: textblock
-#: dh_usrlocal:17
+#: dh_usrlocal:21
msgid "B<dh_usrlocal> [S<I<debhelper options>>] [B<-n>]"
msgstr "B<dh_usrlocal> [S<I<Debhelper-Optionen>>] [B<-n>]"
#. type: textblock
-#: dh_usrlocal:21
+#: dh_usrlocal:25
msgid ""
"B<dh_usrlocal> is a debhelper program that can be used for building packages "
"that will provide a subdirectory in F</usr/local> when installed."
@@ -7510,7 +12686,7 @@ msgstr ""
"von F</usr/local> bereitstellen."
#. type: textblock
-#: dh_usrlocal:24
+#: dh_usrlocal:28
msgid ""
"It finds subdirectories of F<usr/local> in the package build directory, and "
"removes them, replacing them with maintainer script snippets (unless B<-n> "
@@ -7521,336 +12697,544 @@ msgid ""
"snippets."
msgstr ""
"Es findet Unterverzeichnisse von F<usr/local> im Paketbauverzeichnis und "
-"entfernt sie, ersetzt sie durch Schnipsel von Betreuerskripten (es sei denn, "
-"B<-n> wird benutzt), um die Verzeichnisse zu Installationszeit zu erstellen "
-"und bei Entfernen des Pakets auf eine Weise zu entfernen, die konform mit "
-"der Debian-Richtlinie ist. Diese Schnipsel werden durch B<dh_installdeb> in "
+"entfernt sie, wobei es sie durch Schnipsel von Betreuerskripten ersetzt (es "
+"sei denn, B<-n> wird benutzt), um die Verzeichnisse zu Installationszeit zu "
+"erstellen und beim Entfernen des Pakets auf eine mit den Debian-Richtlinien "
+"konforme Weise zu löschen. Diese Schnipsel werden durch B<dh_installdeb> in "
"die Betreuerskripte eingefügt. Eine Erläuterung der "
"Betreuerskriptausschnitte finden Sie in L<dh_installdeb(1)>."
#. type: textblock
-#: dh_usrlocal:32
+#: dh_usrlocal:36
+msgid ""
+"When the I<DEB_RULES_REQUIRES_ROOT> environment variable is not "
+"(effectively) I<binary-targets>, the directories in F</usr/local> will be "
+"handled as if they were owned by root:root (see below)."
+msgstr ""
+"Wenn die Umgebungsvariable I<DEB_RULES_REQUIRES_ROOT> nicht (effektiv) "
+"I<binary-targets> ist, werden die Verzeichnisse in F</usr/local> so "
+"gehandhabt, als würden sie root:root gehören (siehe unten)."
+
+#. type: textblock
+#: dh_usrlocal:40
+msgid ""
+"When the I<DEB_RULES_REQUIRES_ROOT> environment variable has an effective "
+"value of I<binary-targets>, the owners, groups and permissions will be "
+"preserved with the sole exception where the directory is owned by root:root."
+msgstr ""
+"Wenn die Umgebungsvariable I<DEB_RULES_REQUIRES_ROOT> einen effektiven Wert "
+"von I<binary-targets> hat, werden die Eigentümer, Gruppen und Rechte "
+"beibehalten. Die einzige Ausnahme ist, wenn das Verzeichnis root:root gehört."
+
+#. type: textblock
+#: dh_usrlocal:44
msgid ""
-"If the directories found in the build tree have unusual owners, groups, or "
-"permissions, then those values will be preserved in the directories made by "
-"the F<postinst> script. However, as a special exception, if a directory is "
-"owned by root.root, it will be treated as if it is owned by root.staff and "
-"is mode 2775. This is useful, since that is the group and mode policy "
-"recommends for directories in F</usr/local>."
+"If a directory is owned by root:root, then ownership will be determined at "
+"install time. The ownership and permission bits will either be root:root "
+"mode 0755 or root:staff mode 02775. The actual choice depends on whether "
+"the system has F</etc/staff-group-for-usr-local> (as documented in the "
+"Debian Policy Manual §9.1.2 since version 4.1.4)"
msgstr ""
-"Falls die im Baubaum gefundenen Verzeichnisse unübliche Besitzer, Gruppen "
-"oder Zugriffsrechte haben, werden diese Werte in den durch das F<postinst>-"
-"Skript erstellten Verzeichnissen aufbewahrt. Falls ein Verzeichnis jedoch "
-"als besondere Ausnahme root.root gehört, wird es als Besitz von root.staff "
-"mit den Rechte-Bits 2775 betrachtet. Dies ist nützlich, da dies die Gruppen- "
-"und die Rechte-Bits sind, die die Richtlinie für Verzeichnisse in F</usr/"
-"local> empfiehlt."
+"Falls ein Verzeichnis root:root gehört, werden die Besitzrechte zur "
+"Installationszeit festgelegt. Die Eigentums- und Zugriffs-Bits werden "
+"entweder root:root mit Modus 0755 oder root:staff mit Modus 02775 sein. Die "
+"tatsächliche Auswahl hängt davon ab, ob das System über F</etc/staff-group-"
+"for-usr-local> verfügt (wie es im Debian-Richtlinienhandbuch §9.1.2 seit "
+"Version 4.1.4 dokumentiert ist)."
#. type: textblock
-#: dh_usrlocal:57
+#: dh_usrlocal:68
msgid "Debian policy, version 2.2"
msgstr "Debian-Richtlinie, Version 2.2"
#. type: textblock
-#: dh_usrlocal:124
+#: dh_usrlocal:144
msgid "Andrew Stribblehill <ads@debian.org>"
msgstr "Andrew Stribblehill <ads@debian.org>"
-#~ msgid "Sets the priority string of the F<rules.d> symlink. Default is 60."
-#~ msgstr ""
-#~ "setzt die Prioritätszeichenkette des symbolischen F<rules.d>-Verweises. "
-#~ "Vorgabe ist 60."
+#. type: textblock
+#: dh_systemd_enable:5
+msgid "dh_systemd_enable - enable/disable systemd unit files"
+msgstr "dh_systemd_enable - aktiviert/deaktiviert Systemd-Unit-Dateien"
-#~ msgid ""
-#~ "dh_python - calculates Python dependencies and adds postinst and prerm "
-#~ "Python scripts (deprecated)"
-#~ msgstr ""
-#~ "dh_python - berechnet Python-Abhängigkeiten und fügt Postinst- und Prerm-"
-#~ "Python-Skripte hinzu (missbilligt)."
+#. type: textblock
+#: dh_systemd_enable:18
+msgid ""
+"B<dh_systemd_enable> [S<I<debhelper options>>] [B<--no-enable>] [B<--"
+"name=>I<name>] [S<I<unit file> ...>]"
+msgstr ""
+"B<dh_systemd_enable> [S<I<Debhelper-Optionen>>] [B<--no-enable>] [B<--"
+"name=>I<Name>] [S<I<Unit-Datei> …>]"
-#~ msgid ""
-#~ "B<dh_python> [S<I<debhelper options>>] [B<-n>] [B<-V> I<version>] "
-#~ "[S<I<module dirs> ...>]"
-#~ msgstr ""
-#~ "B<dh_python> [S<I<Debhelper-Optionen>>] [B<-n>] [B<-V> I<Version>] "
-#~ "[S<I<Modulverzeichnisse> …>]"
+#. type: textblock
+#: dh_systemd_enable:22
+msgid ""
+"B<dh_systemd_enable> is a debhelper program that is responsible for enabling "
+"and disabling systemd unit files."
+msgstr ""
+"B<dh_systemd_enable> ist ein Debhelper-Programm, das für das Aktivieren und "
+"Deaktivieren von Systemd-Unit-Dateien zuständig ist."
-#~ msgid ""
-#~ "Note: This program is deprecated. You should use B<dh_python2> instead. "
-#~ "This program will do nothing if F<debian/pycompat> or a B<Python-Version> "
-#~ "F<control> file field exists."
-#~ msgstr ""
-#~ "Anmerkung: Dieses Programm ist missbilligt. Sie sollten stattdessen "
-#~ "B<dh_python2> benutzen. Dieses Programm wird nichts tun, falls ein "
-#~ "F<debian/pycompat>- oder ein B<Python-Version>-Dateifeld existiert."
+#. type: textblock
+#: dh_systemd_enable:25
+msgid ""
+"In the simple case, it finds all unit files installed by a package (e.g. "
+"bacula-fd.service) and enables them. It is not necessary that the machine "
+"actually runs systemd during package installation time, enabling happens on "
+"all machines in order to be able to switch from sysvinit to systemd and back."
+msgstr ""
+"Im einfachen Fall findet es alle durch ein Paket installierten Unit-Dateien "
+"(z.B. bacula-fd.service) und aktiviert sie. Es ist nicht nötig, dass auf dem "
+"Rechner während der Installation tatsächlich Systemd läuft. Die Aktivierung "
+"findet auf allen Rechnern statt, damit von SysVinit auf Systemd und zurück "
+"gewechselt werden kann."
-#~ msgid ""
-#~ "B<dh_python> is a debhelper program that is responsible for generating "
-#~ "the B<${python:Depends}> substitutions and adding them to substvars "
-#~ "files. It will also add a F<postinst> and a F<prerm> script if required."
-#~ msgstr ""
-#~ "B<dh_python> ist ein Debhelper-Programm, das für das Erzeugen der B<"
-#~ "${python:Depends}>-Ersatzung zuständig ist und um diese dann den "
-#~ "Substvars-Dateien hinzuzufügen. Es wird außerdem ein F<postinst>- und ein "
-#~ "F<prerm>-Skript hinzufügen, falls benötigt."
+#. type: textblock
+#: dh_systemd_enable:30
+msgid ""
+"In the complex case, you can call B<dh_systemd_enable> and "
+"B<dh_systemd_start> manually (by overwriting the debian/rules targets) and "
+"specify flags per unit file. An example is colord, which ships colord."
+"service, a dbus-activated service without an [Install] section. This service "
+"file cannot be enabled or disabled (a state called \"static\" by systemd) "
+"because it has no [Install] section. Therefore, running dh_systemd_enable "
+"does not make sense."
+msgstr ""
+"Bei Komplikationen können Sie B<dh_systemd_enable> und B<dh_systemd_start> "
+"manuell aufrufen (indem Sie die Ziele in debian/rules überschreiben) und die "
+"Schalter per Unit-Datei angeben. Ein Beispiel ist »colord«, das »colord."
+"service« mitbringt, einen von Dbus aktivierten Dienst ohne einen [Install]-"
+"Abschnitt. Diese Dienstdatei kann nicht aktiviert oder deaktiviert werden "
+"(ein Status den Systemd »static« nennt), da er keinen [Install]-Abschnitt "
+"hat. Daher ist es nicht sinnvoll, dh_systemd_enable auszuführen."
-#~ msgid ""
-#~ "The program will look at Python scripts and modules in your package, and "
-#~ "will use this information to generate a dependency on B<python>, with the "
-#~ "current major version, or on B<python>I<X>B<.>I<Y> if your scripts or "
-#~ "modules need a specific B<python> version. The dependency will be "
-#~ "substituted into your package's F<control> file wherever you place the "
-#~ "token B<${python:Depends}>."
-#~ msgstr ""
-#~ "Das Programm wird in Ihrem Paket nach Phyton-Skripten und Modulen suchen "
-#~ "und diese Informationen benutzen, um eine Abhängigkeit zu Python mit der "
-#~ "aktuellen Hauptversion oder zu B<python>I<X>B<.>I<Y> zu erzeugen, falls "
-#~ "Ihre Skripte oder Module eine bestimmte Version von B<python> benötigen. "
-#~ "Die Abhängigkeit wird in der Datei F<control> überall dort ersetzt, wo "
-#~ "Sie die Markierung B<${python:Depends}> platzieren."
+#. type: textblock
+#: dh_systemd_enable:37
+msgid ""
+"For only generating blocks for specific service files, you need to pass them "
+"as arguments, e.g. B<dh_systemd_enable quota.service> and "
+"B<dh_systemd_enable --name=quotarpc quotarpc.service>."
+msgstr ""
+"Um nur Blöcke für spezielle Dienstedateien zu erzeugen, müssen Sie sie als "
+"Argumente übergeben, z. B. B<dh_systemd_enable quota.service> und "
+"B<dh_systemd_enable --name=quotarpc quotarpc.service>."
-#~ msgid ""
-#~ "If some modules need to be byte-compiled at install time, appropriate "
-#~ "F<postinst> and F<prerm> scripts will be generated. If already byte-"
-#~ "compiled modules are found, they are removed."
-#~ msgstr ""
-#~ "Falls einige Module nötig sind, um zur Installationszeit Byte-kompiliert "
-#~ "zu werden, werden geeignete F<postinst>- und F<prerm>-Skripte erzeugt. "
-#~ "Falls bereits Byte-kompilierte Module gefunden werden, werden sie "
-#~ "entfernt."
+#. type: =item
+#: dh_systemd_enable:45
+msgid "debian/I<package>.service, debian/I<package>@.service"
+msgstr "debian/I<Paket>.service, debian/I<Paket>@.service"
-#~ msgid ""
-#~ "If you use this program, your package should build-depend on B<python>."
-#~ msgstr ""
-#~ "Falls Sie dieses Programm benutzen, sollte Ihr Paket eine Bauabhängigkeit "
-#~ "zu B<python> haben."
+#. type: textblock
+#: dh_systemd_enable:47
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"service >> (or F<< lib/systemd/system/I<package>@.service >>) in the package "
+"build directory."
+msgstr ""
+"Falls vorhanden, wird es in F<< lib/systemd/system/I<Paket>.service >> (oder "
+"F<< lib/systemd/system/I<Paket>@.service >>) im Paketbauverzeichnis "
+"installiert."
-#~ msgid "I<module dirs>"
-#~ msgstr "I<Modulverzeichnisse>"
+#. type: textblock
+#: dh_systemd_enable:52
+msgid ""
+"If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in "
+"the package build directory."
+msgstr ""
+"Falls vorhanden, wird es in usr/lib/tmpfiles.d/I<Paket> im "
+"Paketbauverzeichnis installiert."
-#~ msgid ""
-#~ "If your package installs Python modules in non-standard directories, you "
-#~ "can make F<dh_python> check those directories by passing their names on "
-#~ "the command line. By default, it will check F</usr/lib/site-python>, F</"
-#~ "usr/lib/$PACKAGE>, F</usr/share/$PACKAGE>, F</usr/lib/games/$PACKAGE>, F</"
-#~ "usr/share/games/$PACKAGE> and F</usr/lib/python?.?/site-packages>."
-#~ msgstr ""
-#~ "Falls Ihr Paket Python-Module in nicht vorgegebene Verzeichnisse "
-#~ "installiert, können Sie diese von F<dh_python> prüfen lassen, indem Sie "
-#~ "ihre Namen auf der Befehlszeile übergeben. Standardmäßig wird es F</usr/"
-#~ "lib/site-python,> F</usr/lib/$PACKAGE,> F</usr/share/$PACKAGE,> F</usr/"
-#~ "lib/games/$PACKAGE,> F</usr/share/games/$PACKAGE> und F</usr/lib/"
-#~ "python?.?/site-packages> prüfen."
+#. type: =item
+#: dh_systemd_enable:55
+msgid "debian/I<package>.target, debian/I<package>@.target"
+msgstr "debian/I<Paket>.target, debian/I<Paket>@.target"
-#~ msgid ""
-#~ "Note: only F</usr/lib/site-python>, F</usr/lib/python?.?/site-packages> "
-#~ "and the extra names on the command line are searched for binary (F<.so>) "
-#~ "modules."
-#~ msgstr ""
-#~ "Anmerkung: Nur F</usr/lib/site-python>, F</usr/lib/python?.?/site-"
-#~ "packages> und die zusätzlich auf der Befehlszeile eingegebenen Namen "
-#~ "werden nach binären Modulen (F<.so>) durchsucht."
+#. type: textblock
+#: dh_systemd_enable:57
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"target >> (or F<< lib/systemd/system/I<package>@.target >>) in the package "
+"build directory."
+msgstr ""
+"Falls vorhanden, wird es in F<< lib/systemd/system/I<Paket>.target >>(oder "
+"F<< lib/systemd/system/I<Paket>@.target >>) im Paketbauverzeichnis "
+"installiert."
-#~ msgid "B<-V> I<version>"
-#~ msgstr "B<-V> I<Version>"
+#. type: =item
+#: dh_systemd_enable:60
+msgid "debian/I<package>.socket, debian/I<package>@.socket"
+msgstr "debian/I<Paket>.socket, debian/I<Paket>@.socket"
-#~ msgid ""
-#~ "If the F<.py> files your package ships are meant to be used by a specific "
-#~ "B<python>I<X>B<.>I<Y> version, you can use this option to specify the "
-#~ "desired version, such as B<2.3>. Do not use if you ship modules in F</usr/"
-#~ "lib/site-python>."
-#~ msgstr ""
-#~ "Falls die F<.py>-Dateien, die Ihr Paket mitbringt, in einer bestimmten "
-#~ "B<python>I<X>B<.>I<Y>-Version benutzt werden sollen, können Sie diese "
-#~ "Option verwenden, um die gewünschte Version wie etwa B<2.3> anzugeben. "
-#~ "Setzen Sie sie nicht ein, falls Sie Module in F</usr/lib/site-python> "
-#~ "mitliefern."
+#. type: textblock
+#: dh_systemd_enable:62
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"socket >> (or F<< lib/systemd/system/I<package>@.socket >>) in the package "
+"build directory."
+msgstr ""
+"Falls vorhanden, wird es in F<< lib/systemd/system/I<Paket>.socket >> (oder "
+"F<< lib/systemd/system/I<Paket>@.socket >>) im Paketbauverzeichnis "
+"installiert."
-#~ msgid "Debian policy, version 3.5.7"
-#~ msgstr "Debian-Richtlinie, Version 3.5.7"
+#. type: =item
+#: dh_systemd_enable:65
+msgid "debian/I<package>.mount"
+msgstr "debian/I<Paket>.mount"
-#~ msgid "Python policy, version 0.3.7"
-#~ msgstr "Python-Richtlinie, Version 0.3.7"
+#. type: textblock
+#: dh_systemd_enable:67
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.mount "
+">> in the package build directory."
+msgstr ""
+"Falls vorhanden, wird es in F<< lib/systemd/system/I<Paket>.mount >> im "
+"Paketbauverzeichnis installiert."
-#~ msgid "Josselin Mouette <joss@debian.org>"
-#~ msgstr "Josselin Mouette <joss@debian.org>"
+#. type: =item
+#: dh_systemd_enable:70
+msgid "debian/I<package>.path, debian/I<package>@.path"
+msgstr "debian/I<Paket>.path, debian/I<Paket>@.path"
-#~ msgid "most ideas stolen from Brendan O'Dea <bod@debian.org>"
-#~ msgstr ""
-#~ "Die meisten Ideen wurden von Brendan O'Dea <bod@debian.org> geklaut."
+#. type: textblock
+#: dh_systemd_enable:72
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.path "
+">> (or F<< lib/systemd/system/I<package>@.path >>) in the package build "
+"directory."
+msgstr ""
+"Falls vorhanden, wird es in F<< lib/systemd/system/I<Paket>.path >> (oder "
+"F<< lib/systemd/system/I<Paket>@.path >>) im Paketbauverzeichnis installiert."
-#~ msgid ""
-#~ "If there is an upstream F<changelog> file, it will be be installed as "
-#~ "F<usr/share/doc/package/changelog> in the package build directory. If the "
-#~ "changelog is a F<html> file (determined by file extension), it will be "
-#~ "installed as F<usr/share/doc/package/changelog.html> instead, and will be "
-#~ "converted to plain text with B<html2text> to generate F<usr/share/doc/"
-#~ "package/changelog>."
-#~ msgstr ""
-#~ "Falls es dort eine F<changelog>-Datei der Originalautoren gibt, wird sie "
-#~ "als F<usr/share/doc/Paket/changelog> in das Paketbauverzeichnis "
-#~ "installiert. Falls das Änderungsprotokoll eine F<HTML>-Datei ist (durch "
-#~ "die Dateiendung festgelegt), wird sie stattdessen als F<usr/share/doc/"
-#~ "Paket/changelog.html> installiert und mit B<html2text> in einfachen Text "
-#~ "umgewandelt, um F<usr/share/doc/Paket/changelog> zu erzeugen."
+#. type: =item
+#: dh_systemd_enable:75
+msgid "debian/I<package>.timer, debian/I<package>@.timer"
+msgstr "debian/I<Paket>.timer, debian/I<Paket>@.timer"
-#~ msgid "None yet.."
-#~ msgstr "Bisher keine …"
+#. type: textblock
+#: dh_systemd_enable:77
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.timer "
+">> (or F<< lib/systemd/system/I<package>@.timer >>) in the package build "
+"directory."
+msgstr ""
+"Falls vorhanden, wird es in F<< lib/systemd/system/I<Paket>.timer >> (oder "
+"F<< lib/systemd/system/I<Paket>@.timer >>) im Paketbauverzeichnis "
+"installiert."
-#~ msgid ""
-#~ "A versioned Pre-Dependency on dpkg is needed to use L<dpkg-maintscript-"
-#~ "helper(1)>. An appropriate Pre-Dependency is set in ${misc:Pre-Depends} ; "
-#~ "you should make sure to put that token into an appropriate place in your "
-#~ "debian/control file."
-#~ msgstr ""
-#~ "Es wird eine »Pre-Dependency« mit Versionierung benötigt, um L<dpkg-"
-#~ "maintscript-helper(1)> zu benutzen. Eine geeignete »Pre-Dependency« wird "
-#~ "in ${misc:Pre-Depends} gesetzt; Sie sollten sicherstellen, dass diese "
-#~ "Markierung an eine geeignete Stelle in Ihre »debian/control«-Datei "
-#~ "geschrieben wird."
+#. type: textblock
+#: dh_systemd_enable:88
+msgid "Disable the service(s) on purge, but do not enable them on install."
+msgstr ""
+"deaktiviert nur den Dienst oder die Dienste beim vollständigen Löschen, "
+"aktiviert sie aber nicht bei der Installation."
-#~ msgid "debian/I<package>.modules"
-#~ msgstr "debian/I<Paket>.modules"
+#. type: textblock
+#: dh_systemd_enable:90
+msgid ""
+"B<Note> that this option does not affect whether the services are started. "
+"That is controlled by L<dh_systemd_start(1)> (using e.g. its B<--no-start> "
+"option)."
+msgstr ""
+"B<Beachten Sie>, dass diese Option nicht beeinflusst, ob die Dienste "
+"gestartet werden. Dies wird durch L<dh_systemd_start(1)> gesteuert (z. B. "
+"durch seine B<--no-start>-Option)."
-#~ msgid ""
-#~ "These files were installed for use by modutils, but are now not used and "
-#~ "B<dh_installmodules> will warn if these files are present."
-#~ msgstr ""
-#~ "Diese Dateien waren zur Benutzung durch Modutils installiert, werden aber "
-#~ "nicht mehr verwandt und B<dh_installmodules> wird warnen, falls diese "
-#~ "Dateien vorhanden sind."
+#. type: textblock
+#: dh_systemd_enable:96
+msgid ""
+"Install the service file as I<name.service> instead of the default filename, "
+"which is the I<package.service>. When this parameter is used, "
+"B<dh_systemd_enable> looks for and installs files named F<debian/package."
+"name.service> instead of the usual F<debian/package.service>."
+msgstr ""
+"installiert die Dienstdatei als I<Name.service> statt mit dem "
+"Standarddateinamen I<Paket.service>. Wenn dieser Parameter verwendet wird, "
+"sucht und installiert B<dh_installinit> Dateien mit dem Namen F<debian/Paket."
+"Name.service> anstelle der üblichen F<debian/Paket.service>."
-#~ msgid ""
-#~ "If your package needs to register more than one document, you need "
-#~ "multiple doc-base files, and can name them like this."
-#~ msgstr ""
-#~ "Falls Ihr Paket mehr als ein Dokument registrieren muss, benötigen Sie "
-#~ "mehrere doc-base-Dateien und können sie so benennen."
+#. type: textblock
+#: dh_systemd_enable:105 dh_systemd_start:70
+msgid ""
+"Note that 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."
+msgstr ""
+"Beachten Sie, dass dieser Befehl nicht idempotent ist. Zwischen mehreren "
+"Aufrufen dieses Befehls sollte L<dh_prep(1)> (mit den selben Argumenten) "
+"ausgefürt werden. Ansonsten könnte er zur Folge haben, dass den "
+"Betreuerskripten mehrere Instanzen des gleichen Textes hinzugefügt werden."
+
+#. type: textblock
+#: dh_systemd_enable:110
+msgid ""
+"Note that B<dh_systemd_enable> should be run before B<dh_installinit>. The "
+"default sequence in B<dh> does the right thing, this note is only relevant "
+"when you are calling B<dh_systemd_enable> manually."
+msgstr ""
+"Beachten Sie, dass B<dh_systemd_enable> vor B<dh_installinit> ausgeführt "
+"werden sollte. Die Standardsequenz in B<dh> tut bereits das Richtige; dieser "
+"Hinweis ist nur relevant, wenn Sie B<dh_systemd_enable> manuell aufrufen."
+
+#. type: textblock
+#: dh_systemd_enable:282
+msgid "L<dh_systemd_start(1)>, L<debhelper(7)>"
+msgstr "L<dh_systemd_start(1)>, L<debhelper(7)>"
+
+#. type: textblock
+#: dh_systemd_enable:286 dh_systemd_start:286
+msgid "pkg-systemd-maintainers@lists.alioth.debian.org"
+msgstr "pkg-systemd-maintainers@lists.alioth.debian.org"
+
+#. type: textblock
+#: dh_systemd_start:5
+msgid "dh_systemd_start - start/stop/restart systemd unit files"
+msgstr "dh_systemd_start - Start/Stopp/Neustart von Systemd-Unit-Dateien"
+
+#. type: textblock
+#: dh_systemd_start:19
+msgid ""
+"B<dh_systemd_start> [S<I<debhelper options>>] [B<--restart-after-upgrade>] "
+"[B<--no-stop-on-upgrade>] [S<I<unit file> ...>]"
+msgstr ""
+"B<dh_systemd_start> [S<I<Debhelper-Optionen>>] [B<--restart-after-upgrade>] "
+"[B<--no-stop-on-upgrade>] [S<I<Unit-Datei> …>]"
+
+#. type: textblock
+#: dh_systemd_start:23
+msgid ""
+"B<dh_systemd_start> is a debhelper program that is responsible for starting/"
+"stopping or restarting systemd unit files in case no corresponding sysv init "
+"script is available."
+msgstr ""
+"B<dh_systemd_start> ist ein Debhelper-Programm, das für das Starten/Stoppen "
+"oder den Neustart von Systemd-Unit-Dateien zuständig ist, falls kein "
+"passendes SysVinit-Skript verfügbar ist."
+
+#. type: textblock
+#: dh_systemd_start:27
+msgid ""
+"As with B<dh_installinit>, the unit file is stopped before upgrades and "
+"started afterwards (unless B<--restart-after-upgrade> is specified, in which "
+"case it will only be restarted after the upgrade). This logic is not used "
+"when there is a corresponding SysV init script because invoke-rc.d performs "
+"the stop/start/restart in that case."
+msgstr ""
+"Wie bei B<dh_installinit> wird die Unit-Datei vor Upgrades gestoppt und "
+"hinterher wieder gestartet (es sei denn, es wurde B<--restart-after-upgrade> "
+"angegeben, dann wird es nur nach dem Upgrade gestartet). Diese Logik wird "
+"nicht verwendet, wenn es ein passendes SysVinit-Skript gibt, da in diesem "
+"Fall invoke-rc.d das Stoppen/Starten/Neustarten übernimmt."
+
+#. type: =item
+#: dh_systemd_start:37
+msgid "B<--restart-after-upgrade>"
+msgstr "B<--restart-after-upgrade>"
+
+#. type: textblock
+#: dh_systemd_start:39
+msgid ""
+"Do not stop the unit file until after the package upgrade has been "
+"completed. This is the default behaviour in compat 10."
+msgstr ""
+"stoppt die Unit-Datei nicht, bis das Paket-Upgrade komplett durchgeführt "
+"wurde. Dies ist das Standardverhalten in Kompatibilitätsmodus 10."
+
+#. type: textblock
+#: dh_systemd_start:42
+msgid ""
+"In earlier compat levels the default was to stop the unit file in the "
+"F<prerm>, and start it again in the F<postinst>."
+msgstr ""
+"In älteren Kompatibilitätsmodi war es Standardverhalten, dass die Unit-Datei "
+"in F<prerm> gestoppt und in F<postinst> wieder gestartet wird."
+
+#. type: textblock
+#: dh_systemd_start:59
+msgid "Do not stop service on upgrade."
+msgstr "stoppt den Dienst nicht beim Upgrade."
+
+#. type: textblock
+#: dh_systemd_start:63
+msgid ""
+"Do not start the unit file after upgrades and after initial installation "
+"(the latter is only relevant for services without a corresponding init "
+"script)."
+msgstr ""
+"die Unit-Datei nach Upgrades oder nach anfänglicher Installation nicht "
+"starten (Letzteres ist nur für Dienste ohne zugehöriges Init-Skript "
+"relevant)."
+
+#. type: textblock
+#: dh_systemd_start:75
+msgid ""
+"Note that B<dh_systemd_start> should be run after B<dh_installinit> so that "
+"it can detect corresponding SysV init scripts. The default sequence in B<dh> "
+"does the right thing, this note is only relevant when you are calling "
+"B<dh_systemd_start> manually."
+msgstr ""
+"Beachten Sie, dass B<dh_systemd_start> nach B<dh_installinit> ausgeführt "
+"werden sollte, sodass es die zugehörigen SysVinit-Skripte aufspüren kann. "
+"Die Standardsequenz in B<dh> tut bereits das Richtige, dieser Hinweis ist "
+"nur relevant, wenn Sie B<dh_systemd_start> manuell aufrufen."
+
+#. type: textblock
+#: strings-kept-translations.pod:7
+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 ""
-#~ "dh_installinit - install init scripts and/or upstart jobs into package "
-#~ "build directories"
+#~ "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 ""
-#~ "dh_installinit - installiert Init-Skripte und/oder Upstart-Jobs in "
-#~ "Paketbauverzeichnisse."
+#~ "auf B<1> gesetzt, um den Modus mit detailreicher Ausgabe zu aktivieren. "
+#~ "Debhelper wird jeden von ihm ausgeführten Befehl ausgeben. Außerdem wird "
+#~ "die detailreiche Ausgabe von Bauprotokollen für einige Bausysteme wie "
+#~ "Autoconf aktiviert."
-#~ msgid "B<dh_installmime> [S<I<debhelper options>>] [B<-n>]"
-#~ msgstr "B<dh_installmime> [S<I<Debhelper-Optionen>>] [B<-n>]"
+#~ msgid "This value affects most B<dh_auto_*> tools."
+#~ msgstr "Dieser Wert betrifft die meisten B<dh_auto_*>-Werkzeuge."
#~ msgid ""
-#~ "It also automatically generates the F<postinst> and F<postrm> commands "
-#~ "needed to interface with the debian B<mime-support> and B<shared-mime-"
-#~ "info> packages. These commands are inserted into the maintainer scripts "
-#~ "by L<dh_installdeb(1)>."
+#~ "If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf "
+#~ "in the package build directory. (The tmpfiles.d mechanism is currently "
+#~ "only used by systemd.) Only used in compat levels 10 and below."
#~ msgstr ""
-#~ "Außerdem erzeugt es die F<postinst>- und F<postrm>-Befehl, die zum "
-#~ "Verbinden mit den Debian-Paketen B<mime-support> und B<shared-mime-info> "
-#~ "benötigt werden. Diese Befehle werden durch L<dh_installdeb(1)> in die "
-#~ "Betreuerskripte eingefügt."
+#~ "Falls vorhanden, wird es in usr/lib/tmpfiles.d/I<Paket>.conf im "
+#~ "Paketbauverzeichnis installiert. (Der »tmpfiles.d«-Mechanismus wird "
+#~ "derzeit nur von Systemd benutzt.) Wird nur in Kompatibilitätsstufe 10 und "
+#~ "darunter eingesetzt."
#~ msgid ""
-#~ "B<dh_installinit> is a debhelper program that is responsible for "
-#~ "installing upstart job files or init scripts with associated defaults "
-#~ "files into package build directories, and in the former case providing "
-#~ "compatibility handling for non-upstart systems."
+#~ "If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf "
+#~ "in the package build directory. (The tmpfiles.d mechanism is currently "
+#~ "only used by systemd.)"
#~ msgstr ""
-#~ "B<dh_installinit> ist ein Debhelper-Programm, das für die Installation "
-#~ "von Upstart-Job-Dateien oder Init-Skripten mit zugehörigen »defaults«-"
-#~ "Dateien in Paketbauverzeichnisse zuständig ist und im erstgenannten Fall "
-#~ "die Kompatibilität für nicht Upstart-Systeme handhabt."
-
+#~ "Falls vorhanden, wird es in usr/lib/tmpfiles.d/I<Paket>.conf im "
+#~ "Paketbauverzeichnis installiert. (Der »tmpfiles.d«-Mechanismus wird "
+#~ "derzeit nur von Systemd benutzt.)"
+
+#~| msgid ""
+#~| "This can cause issues with running binaries directly from the build "
+#~| "directories as they might now require a manually set "
+#~| "B<LD_LIBRARY_PATH>. If you need to override this change, we recommend "
+#~| "that you try to pass the B<-DCMAKE_SKIP_RPATH=OFF> option first to see "
+#~| "if that fixes the problem (leaving B<BUILD_RPATH_USE_ORIGIN> at its new "
+#~| "default). This should undo the need for B<LD_LIBRARY_PATH> and avoid "
+#~| "the reproducibility issues on Linux, where B<$ORIGIN> is supported by "
+#~| "the runtime linkers."
#~ msgid ""
-#~ "Otherwise, if this exists, it is installed into etc/init.d/I<package> in "
-#~ "the package build directory."
+#~ "This can cause issues with running binaries directly from the build "
+#~ "directories as they might now require a manually set B<LD_LIBRARY_PATH>. "
+#~ "If you need to override this change, we recommend that you try to pass "
+#~ "the B<-DCMAKE_SKIP_RPATH=OFF> option first to see if that fixes the "
+#~ "problem (leaving B<CMAKE_BUILD_RPATH_USE_ORIGIN> at its new default). "
+#~ "This should undo the need for B<LD_LIBRARY_PATH> and avoid the "
+#~ "reproducibility issues on Linux, where B<$ORIGIN> is supported by the "
+#~ "runtime linkers."
#~ msgstr ""
-#~ "Andernfalls, wenn dies existiert, wird es in etc/init.d/I<Paket>.conf im "
-#~ "Paketbauverzeichnis installiert."
+#~ "Daraus können sich Probleme mit Binärdateien ergeben, welche direkt aus "
+#~ "dem Bauverzeichnis heraus aufgeführt werden, weil dafür jetzt ein per "
+#~ "Hand gesetztes B<LD_LIBRARY_PATH> erforderlich sein kann. Wenn Sie diese "
+#~ "Änderung außer Kraft setzen müssen, empfehlen wir, dass Sie zuerst "
+#~ "versuchsweise die B<-DCMAKE_SKIP_RPATH=OFF>-Option übergeben, um zu "
+#~ "sehen, ob sie ausreicht, um das Problem zu lösen (sodass "
+#~ "B<BUILD_RPATH_USE_ORIGIN> seinen neuen Standardwert behalten kann). Auf "
+#~ "diese Weise sollten sich der Bedarf für B<LD_LIBRARY_PATH> erübrigen und "
+#~ "die Reproduzierbarkeitsprobleme unter Linux, woB<$ORIGIN> von den "
+#~ "Laufzeit-Linkern unterstützt wird, vermieden werden."
#~ msgid ""
-#~ "If no upstart job file is installed in the target directory when "
-#~ "B<dh_installinit --onlyscripts> is called, this program will assume that "
-#~ "an init script is being installed and not provide the compatibility "
-#~ "symlinks or upstart dependencies."
+#~ "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 ""
-#~ "Falls keine Upstart-Job-Datei im Zielverzeichnis installiert ist, wenn "
-#~ "B<dh_installinit --onlyscripts> aufgerufen wird, wird dieses Programm "
-#~ "davon ausgehen, dass ein Init-Skript installiert ist und die symbolischen "
-#~ "Kompatibilitätsverweise oder Upstart-Abhängigkeiten nicht bereitstellen."
+#~ "Früher wurde diese Datei benötigt, um Dateien manuell als Conffiles zu "
+#~ "markieren. Allerdings wurde es faktisch überflüssig, seit Debhelper "
+#~ "automatisch berechnet, welche Dateien als Conffiles markiert werden "
+#~ "sollen."
-#~ msgid "The inverse of B<--with>, disables using the given addon."
+#~ msgid ""
+#~ "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 ""
-#~ "das Gegenteil von B<--with>, deaktiviert die Benutzung des angegebenen "
-#~ "Add-ons."
+#~ "Auf Kompatibilitätsstufen 11 und darunter wird diese Steuerdatei im "
+#~ "Verzeichnis F<DEBIAN> installiert. Auf Kompatibilitätsstufe 12 und neuer "
+#~ "wird diese Datei stillschweigend ignoriert."
-#~ msgid "Build depends"
-#~ msgstr "Bauabhängigkeiten"
+#~ msgid ""
+#~ "dh_gconf - install GConf defaults files and register schemas (deprecated)"
+#~ msgstr ""
+#~ "dh_gconf - installiert Standard-GConf-Dateien und registriert Schemata "
+#~ "(missbilligt)"
-#~ msgid "EXAMPLE"
-#~ msgstr "BEISPIEL"
+#~ msgid "B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>]"
+#~ msgstr "B<dh_gconf> [S<I<Debhelper-Optionen>>] [B<--priority=>I<Priorität>]"
#~ msgid ""
-#~ "Suppose your package's upstream F<Makefile> installs a binary, a man "
-#~ "page, and a library into appropriate subdirectories of F<debian/tmp>. You "
-#~ "want to put the library into package libfoo, and the rest into package "
-#~ "foo. Your rules file will run \"B<dh_install --sourcedir=debian/tmp>\". "
-#~ "Make F<debian/foo.install> contain:"
+#~ "B<dh_gconf> is a debhelper program that is responsible for installing "
+#~ "GConf defaults files and registering GConf schemas."
#~ msgstr ""
-#~ "Angenommen, das F<Makefile> der Originalautoren Ihres Pakets installiert "
-#~ "ein Binärpaket, eine Handbuchseite und eine Bibliothek in geeignete "
-#~ "Unterverzeichnisse von F<debian/tmp>. Sie möchten die Bibliothek in das "
-#~ "Paket »libfoo« und den Rest in das Paket »foo« ablegen. Ihre »rules«-"
-#~ "Datei wird »B<dh_install --sourcedir=debian/tmp>« ausführen. Geben Sie "
-#~ "F<debian/foo.install> den Inhalt:"
+#~ "B<dh_gconf> ist ein Debhelper-Programm, das für die Installation der "
+#~ "Standard-GConf-Dateien und das Registrieren der GConf-Schemata zuständig "
+#~ "ist."
#~ msgid ""
-#~ " usr/bin\n"
-#~ " usr/share/man/man1\n"
-#~ "\n"
+#~ "An appropriate dependency on gconf2 will be generated in B<${misc:Depends}"
+#~ ">."
#~ msgstr ""
-#~ " usr/bin\n"
-#~ " usr/share/man/man1\n"
-#~ "\n"
+#~ "Eine geeignete Abhängigkeit zu gconf2 wird in B<${misc:Depends}> erzeugt."
-#~ msgid "While F<debian/libfoo.install> contains:"
-#~ msgstr "F<debian/libfoo.install> enthält indessen Folgendes:"
+#~ msgid "debian/I<package>.gconf-defaults"
+#~ msgstr "debian/I<Paket>.gconf-defaults"
#~ msgid ""
-#~ " usr/lib/libfoo*.so.*\n"
-#~ "\n"
+#~ "Installed into F<usr/share/gconf/defaults/10_package> in the package "
+#~ "build directory, with I<package> replaced by the package name."
#~ msgstr ""
-#~ " usr/lib/libfoo*.so.*\n"
-#~ "\n"
+#~ "installiert in F<usr/share/gconf/defaults/10_package> im Bauverzeichnis "
+#~ "des Pakets, wobei I<Paket> durch den Namen des Pakets ersetzt wird."
+
+#~ msgid "debian/I<package>.gconf-mandatory"
+#~ msgstr "debian/I<Paket>.gconf-mandatory"
#~ msgid ""
-#~ "If you want a libfoo-dev package too, F<debian/libfoo-dev.install> might "
-#~ "contain:"
+#~ "Installed into F<usr/share/gconf/mandatory/10_package> in the package "
+#~ "build directory, with I<package> replaced by the package name."
#~ msgstr ""
-#~ "Falls Sie auch ein »libfoo-dev«-Paket wollen, könnte F<debian/libfoo-dev."
-#~ "install> Folgendes enthalten:"
+#~ "installiert in F<usr/share/gconf/mandatory/10_package> im Bauverzeichnis "
+#~ "des Pakets, wobei I<Paket> durch den Namen des Pakets ersetzt wird."
+
+#~ msgid "B<--priority> I<priority>"
+#~ msgstr "B<--priority> I<Priorität>"
#~ msgid ""
-#~ " usr/include\n"
-#~ " usr/lib/libfoo*.so\n"
-#~ " usr/share/man/man3\n"
-#~ "\n"
+#~ "Use I<priority> (which should be a 2-digit number) as the defaults "
+#~ "priority instead of B<10>. Higher values than ten can be used by derived "
+#~ "distributions (B<20>), CDD distributions (B<50>), or site-specific "
+#~ "packages (B<90>)."
+#~ msgstr ""
+#~ "benutzt I<Priorität> (welche eine zweistellige Zahl sein sollte) als "
+#~ "Standardpriorität an Stelle von B<10>. Höhere Werte als zehn können durch "
+#~ "abgeleitete Distributionen (B<20>), CDD-Distributionen (B<50>) oder Site-"
+#~ "spezifische Pakete (B<90>) verwendet werden."
+
+#~ msgid "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
#~ msgstr ""
-#~ " usr/include\n"
-#~ " usr/lib/libfoo*.so\n"
-#~ " usr/share/man/man3\n"
-#~ "\n"
+#~ "Ross Burton <ross@burtonini.com>, Josselin Mouette <joss@debian.org>"
#~ msgid ""
-#~ "You can also put comments in these files; lines beginning with B<#> are "
-#~ "ignored."
+#~ "B<dh_clean> should be the last debhelper command run in the B<clean> "
+#~ "target in F<debian/rules>."
#~ msgstr ""
-#~ "Sie können außerdem in diesen Dateien Kommentare verwenden; Zeilen, die "
-#~ "mit B<#> beginnen, werden ignoriert."
+#~ "B<dh_clean> sollte der zuletzt ausgeführte Debhelper-Befehl im B<clean>-"
+#~ "Ziel in F<debian/rules> sein."
#~ msgid ""
-#~ "\toverride_dh_installdocs:\n"
-#~ "\t\tdh_installdocs README TODO\n"
-#~ "\n"
+#~ "If there is an upstream F<changelog> file, it will be installed as F<usr/"
+#~ "share/doc/package/changelog> in the package build directory."
#~ msgstr ""
-#~ "\toverride_dh_installdocs:\n"
-#~ "\t\tdh_installdocs README TODO\n"
-#~ "\n"
+#~ "Falls es eine F<changelog>-Datei der Ursprungsautoren gibt, wird sie im "
+#~ "Paketbauverzeichnis als F<usr/share/doc/Paket/changelog> installiert."
diff --git a/man/po4a/po/debhelper.pot b/man/po4a/po/debhelper.pot
index 9a11ced7..aba343b0 100644
--- a/man/po4a/po/debhelper.pot
+++ b/man/po4a/po/debhelper.pot
@@ -7,44 +7,87 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2014-10-03 15:16-0400\n"
+"POT-Creation-Date: 2023-08-14 19:10+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"
"Language: \n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. type: =head1
-#: debhelper.pod:1 dh:3 dh_auto_build:3 dh_auto_clean:3 dh_auto_configure:3 dh_auto_install:3 dh_auto_test:3 dh_bugfiles:3 dh_builddeb:3 dh_clean:3 dh_compress:3 dh_desktop:3 dh_fixperms:3 dh_gconf:3 dh_gencontrol:3 dh_icons:3 dh_install:3 dh_installcatalogs:3 dh_installchangelogs:3 dh_installcron:3 dh_installdeb:3 dh_installdebconf:3 dh_installdirs:3 dh_installdocs:3 dh_installemacsen:3 dh_installexamples:3 dh_installifupdown:3 dh_installinfo:3 dh_installinit:3 dh_installlogcheck:3 dh_installlogrotate:3 dh_installman:3 dh_installmanpages:3 dh_installmenu:3 dh_installmime:3 dh_installmodules:3 dh_installpam:3 dh_installppp:3 dh_installudev:3 dh_installwm:3 dh_installxfonts:3 dh_link:3 dh_lintian:3 dh_listpackages:3 dh_makeshlibs:3 dh_md5sums:3 dh_movefiles:3 dh_perl:3 dh_prep:3 dh_scrollkeeper:3 dh_shlibdeps:3 dh_strip:3 dh_suidregister:3 dh_testdir:3 dh_testroot:3 dh_undocumented:3 dh_usrlocal:3
+#: debhelper.pod:3 debhelper-compat-upgrade-checklist.pod:3
+#: debhelper-obsolete-compat.pod:1 dh:3 dh_auto_build:3 dh_auto_clean:3
+#: dh_auto_configure:3 dh_auto_install:3 dh_auto_test:3 dh_bugfiles:3
+#: dh_builddeb:5 dh_clean:3 dh_compress:3 dh_dwz:3 dh_fixperms:3
+#: dh_gencontrol:3 dh_icons:3 dh_install:3 dh_installcatalogs:3
+#: dh_installchangelogs:3 dh_installcron:3 dh_installdeb:3 dh_installdebconf:3
+#: dh_installdirs:3 dh_installdocs:5 dh_installemacsen:3 dh_installexamples:5
+#: dh_installifupdown:3 dh_installinfo:3 dh_installinit:3 dh_installinitramfs:3
+#: dh_installlogcheck:3 dh_installlogrotate:3 dh_installman:3
+#: dh_installmanpages:3 dh_installmenu:3 dh_installmime:3 dh_installmodules:3
+#: dh_installpam:3 dh_installppp:3 dh_installudev:3 dh_installwm:3
+#: dh_installxfonts:3 dh_link:3 dh_lintian:3 dh_listpackages:3 dh_makeshlibs:3
+#: dh_md5sums:3 dh_movefiles:3 dh_perl:3 dh_prep:3 dh_shlibdeps:3 dh_strip:3
+#: dh_testdir:3 dh_testroot:5 dh_usrlocal:5 dh_systemd_enable:3
+#: dh_systemd_start:3
msgid "NAME"
msgstr ""
#. type: textblock
-#: debhelper.pod:3
+#: debhelper.pod:5
msgid "debhelper - the debhelper tool suite"
msgstr ""
#. type: =head1
-#: debhelper.pod:5 dh:12 dh_auto_build:12 dh_auto_clean:13 dh_auto_configure:12 dh_auto_install:15 dh_auto_test:13 dh_bugfiles:12 dh_builddeb:12 dh_clean:12 dh_compress:13 dh_desktop:12 dh_fixperms:13 dh_gconf:12 dh_gencontrol:12 dh_icons:13 dh_install:13 dh_installcatalogs:14 dh_installchangelogs:12 dh_installcron:12 dh_installdeb:12 dh_installdebconf:12 dh_installdirs:12 dh_installdocs:12 dh_installemacsen:12 dh_installexamples:12 dh_installifupdown:12 dh_installinfo:12 dh_installinit:13 dh_installlogcheck:12 dh_installlogrotate:12 dh_installman:13 dh_installmanpages:13 dh_installmenu:12 dh_installmime:12 dh_installmodules:13 dh_installpam:12 dh_installppp:12 dh_installudev:13 dh_installwm:12 dh_installxfonts:12 dh_link:13 dh_lintian:12 dh_listpackages:12 dh_makeshlibs:12 dh_md5sums:13 dh_movefiles:12 dh_perl:14 dh_prep:12 dh_scrollkeeper:12 dh_shlibdeps:13 dh_strip:13 dh_suidregister:7 dh_testdir:12 dh_testroot:7 dh_undocumented:12 dh_usrlocal:15
+#: debhelper.pod:7 debhelper-compat-upgrade-checklist.pod:7
+#: debhelper-obsolete-compat.pod:5 dh:22 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_gencontrol:16 dh_icons:16 dh_install:15 dh_installcatalogs:17
+#: dh_installchangelogs:16 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:18
+#: 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 ""
#. type: textblock
-#: debhelper.pod:7
+#: debhelper.pod:9
msgid ""
-"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-p>I<package>] "
+"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<--no-act>] [B<-p>I<package>] "
"[B<-N>I<package>] [B<-P>I<tmpdir>]"
msgstr ""
#. type: =head1
-#: debhelper.pod:9 dh:16 dh_auto_build:16 dh_auto_clean:17 dh_auto_configure:16 dh_auto_install:19 dh_auto_test:17 dh_bugfiles:16 dh_builddeb:16 dh_clean:16 dh_compress:17 dh_desktop:16 dh_fixperms:17 dh_gconf:16 dh_gencontrol:16 dh_icons:17 dh_install:17 dh_installcatalogs:18 dh_installchangelogs:16 dh_installcron:16 dh_installdeb:16 dh_installdebconf:16 dh_installdirs:16 dh_installdocs:16 dh_installemacsen:16 dh_installexamples:16 dh_installifupdown:16 dh_installinfo:16 dh_installinit:17 dh_installlogcheck:16 dh_installlogrotate:16 dh_installman:17 dh_installmanpages:17 dh_installmenu:16 dh_installmime:16 dh_installmodules:17 dh_installpam:16 dh_installppp:16 dh_installudev:17 dh_installwm:16 dh_installxfonts:16 dh_link:17 dh_lintian:16 dh_listpackages:16 dh_makeshlibs:16 dh_md5sums:17 dh_movefiles:16 dh_perl:18 dh_prep:16 dh_scrollkeeper:16 dh_shlibdeps:17 dh_strip:17 dh_suidregister:11 dh_testdir:16 dh_testroot:11 dh_undocumented:16 dh_usrlocal:19
+#: debhelper.pod:11 debhelper-compat-upgrade-checklist.pod:17 dh:26
+#: 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_gencontrol:20 dh_icons:20 dh_install:19
+#: dh_installcatalogs:21 dh_installchangelogs:20 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:22
+#: 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 ""
#. type: textblock
-#: debhelper.pod:11
+#: debhelper.pod:13
msgid ""
"Debhelper is used to help you build a Debian package. The philosophy behind "
"debhelper is to provide a collection of small, simple, and easily understood "
@@ -56,7 +99,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:19
+#: debhelper.pod:21
msgid ""
"A typical F<debian/rules> file that uses debhelper will call several "
"debhelper commands in sequence, or use L<dh(1)> to automate this "
@@ -65,7 +108,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:23
+#: debhelper.pod:25
msgid ""
"To create a new Debian package using debhelper, you can just copy one of the "
"sample rules files and edit it by hand. Or you can try the B<dh-make> "
@@ -75,45 +118,54 @@ msgid ""
"debhelper."
msgstr ""
+#. type: textblock
+#: debhelper.pod:31
+msgid ""
+"Except where the tool explicitly denotes otherwise, all of the debhelper "
+"tools assume that they run from the root directory of an unpacked source "
+"package. This is so they can locate find files like F<debian/control> when "
+"needed."
+msgstr ""
+
#. type: =head1
-#: debhelper.pod:29
+#: debhelper.pod:36
msgid "DEBHELPER COMMANDS"
msgstr ""
#. type: textblock
-#: debhelper.pod:31
+#: debhelper.pod:38
msgid ""
"Here is the list of debhelper commands you can use. See their man pages for "
"additional documentation."
msgstr ""
#. type: textblock
-#: debhelper.pod:36
+#: debhelper.pod:43
msgid "#LIST#"
msgstr ""
#. type: =head2
-#: debhelper.pod:40
+#: debhelper.pod:47
msgid "Deprecated Commands"
msgstr ""
#. type: textblock
-#: debhelper.pod:42
+#: debhelper.pod:49
msgid "A few debhelper commands are deprecated and should not be used."
msgstr ""
#. type: textblock
-#: debhelper.pod:46
+#: debhelper.pod:53
msgid "#LIST_DEPRECATED#"
msgstr ""
#. type: =head2
-#: debhelper.pod:50
+#: debhelper.pod:57
msgid "Other Commands"
msgstr ""
#. type: textblock
-#: debhelper.pod:52
+#: debhelper.pod:59
msgid ""
"If a program's name starts with B<dh_>, and the program is not on the above "
"lists, then it is not part of the debhelper package, but it should still "
@@ -121,12 +173,12 @@ msgid ""
msgstr ""
#. type: =head1
-#: debhelper.pod:56
+#: debhelper.pod:63
msgid "DEBHELPER CONFIG FILES"
msgstr ""
#. type: textblock
-#: debhelper.pod:58
+#: debhelper.pod:65
msgid ""
"Many debhelper commands make use of files in F<debian/> to control what they "
"do. Besides the common F<debian/changelog> and F<debian/control>, which are "
@@ -137,7 +189,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:65
+#: debhelper.pod:72
msgid ""
"For example, B<dh_installdocs> uses files named F<debian/package.docs> to "
"list the documentation files it will install. See the man pages of "
@@ -148,14 +200,18 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:72
+#: debhelper.pod:79
msgid ""
"Note for the first (or only) binary package listed in F<debian/control>, "
-"debhelper will use F<debian/foo> when there's no F<debian/package.foo> file."
+"debhelper will use F<debian/foo> when there's no F<debian/I<package>.foo> "
+"file. However, it is often a good idea to keep the F<I<package>.> prefix as "
+"it is more explicit. The primary exception to this are files that debhelper "
+"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 ""
#. type: textblock
-#: debhelper.pod:76
+#: debhelper.pod:87
msgid ""
"In some rare cases, you may want to have different versions of these files "
"for different architectures or OSes. If files named "
@@ -166,7 +222,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:83
+#: debhelper.pod:94
msgid ""
"Mostly, these config files are used to specify lists of various types of "
"files. Documentation or example files to install, files to move, and so on. "
@@ -177,112 +233,393 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:90
+#: debhelper.pod:101
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, "
-"you can make the file executable, and write a program that outputs whatever "
-"content is appropriate for a given situation. When you do so, the output is "
-"not further processed to expand wildcards or strip comments."
+"easy to read, understand, and modify."
+msgstr ""
+
+#. type: =head2
+#: debhelper.pod:104
+msgid "Substitutions in debhelper config files"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:106
+msgid ""
+"In compatibility level 13 and later, it is possible to use simple "
+"substitutions in debhelper config files for the following tools:"
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:111 debhelper.pod:115 debhelper.pod:119 debhelper.pod:123
+#: debhelper.pod:127 debhelper.pod:131 debhelper.pod:135 debhelper.pod:139
+#: debhelper.pod:143 debhelper.pod:147 debhelper.pod:151 debhelper.pod:155
+#: debhelper.pod:159 debhelper.pod:247 debhelper.pod:252
+msgid "*"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:113
+msgid "dh_clean"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:117
+msgid "dh_install"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:121
+msgid "dh_installcatalogs"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:125
+msgid "dh_installdeb"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:129
+msgid "dh_installdirs"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:133
+msgid "dh_installdocs"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:137
+msgid "dh_installexamples"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:141
+msgid "dh_installinfo"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:145
+msgid "dh_installman"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:149
+msgid "dh_installwm"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:153
+msgid "dh_link"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:157
+msgid "dh_missing"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:161
+msgid "dh_ucf"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:165
+msgid ""
+"All substitution variables are of the form I<${foo}> and the braces are "
+"mandatory. Variable names are case-sensitive and consist of alphanumerics "
+"(a-zA-Z0-9), hyphens (-), underscores (_), and colons (:). The first "
+"character must be an alphanumeric."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:170
+msgid ""
+"If you need a literal dollar sign that cannot trigger a substitution, you "
+"can either use the B<${Dollar}> substitution or the sequence B<${}>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:173
+msgid "The following expansions are available:"
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:177
+msgid "B<DEB_HOST_*>, B<DEB_BUILD_*>, B<DEB_TARGET_*>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:179
+msgid ""
+"Expands to the relevant L<dpkg-architecture(1)> value (similar to "
+"I<dpkg-architecture -qVARIABLE_HERE>)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:182
+msgid ""
+"When in doubt, the B<DEB_HOST_*> variant is the one that will work both for "
+"native and cross builds."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:185
+msgid ""
+"For performance reasons, debhelper will attempt to resolve these names from "
+"the environment first before consulting L<dpkg-architecture(1)>. This is "
+"mostly mentioned for completeness as it will not matter for most cases."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:190
+msgid "B<Dollar>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:192
+msgid ""
+"Expands to a single literal B<$>-symbol. This symbol will I<never> be "
+"considered part of a substitution variable. That is:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:195
+#, no-wrap
+msgid ""
+" # Triggers an error\n"
+" ${NO_SUCH_TOKEN}\n"
+" # Expands to the literal value \"${NO_SUCH_TOKEN}\"\n"
+" ${Dollar}{NO_SUCH_TOKEN}\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:200
+msgid ""
+"This variable equivalent to the sequence B<${}> and the two can be used "
+"interchangeably."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:203
+msgid "B<Newline>, B<Space>, B<Tab>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:205
+msgid "Expands to a single ASCII newline, space and tab respectively."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:207
+msgid ""
+"This can be useful if you need to include a literal whitespace character "
+"(e.g. space) where it would otherwise be stripped or used as a separator."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:211
+msgid "B<< env:I<NAME> >>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:213
+msgid ""
+"Expands to the environment variable I<NAME>. The environment variable must "
+"be set (but can be set to the empty string)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:218
+msgid ""
+"Note that all variables must expand to a defined value. As an example, if "
+"debhelper sees I<${env:FOO}>, then it will insist that the environment "
+"variable I<FOO> is set (it can be set to the empty string)."
+msgstr ""
+
+#. type: =head3
+#: debhelper.pod:222
+msgid "Substitution limits"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:224
+msgid ""
+"To avoid infinite loops and resource exhaustion, debhelper will stop with an "
+"error if the text contains many substitution variables (50) or they expand "
+"beyond a certain size (4096 characters or 3x length of the original input - "
+"whichever is bigger)."
+msgstr ""
+
+#. type: =head2
+#: debhelper.pod:229
+msgid "Executable debhelper config files"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:231
+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 ""
+
+#. type: textblock
+#: debhelper.pod:234
+msgid ""
+"To use this feature, simply mark the config file as executable (e.g. B<< "
+"chmod +x debian/I<package>.install >>) and the tool will attempt to execute "
+"it and use the output of the script. In many cases, you can use "
+"L<dh-exec(1)> as interpreter of the config file to retain most of the "
+"original syntax while getting the additional flexibility you need."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:242
+msgid ""
+"When using executable debhelper config files, please be aware of the "
+"following:"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:249
+msgid ""
+"The executable config file B<must> exit with success (i.e. its return code "
+"should indicate success)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:254
+msgid ""
+"In compatibility level 13+, the output will be subject to substitutions (see "
+"L</Substitutions in debhelper config files>) where the tool support these. "
+"Remember to be careful if your generator I<also> provides substitutions as "
+"this can cause unnecessary confusion."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:259
+msgid ""
+"Otherwise, the output will be used exactly as-is. Notably, debhelper will "
+"I<not> expand wildcards or strip comments or strip whitespace in the output."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:265
+msgid ""
+"If you need the package to build on a file system where you cannot disable "
+"the executable bit, then you can use L<dh-exec(1)> and its B<strip-output> "
+"script."
msgstr ""
#. type: =head1
-#: debhelper.pod:96
+#: debhelper.pod:269
msgid "SHARED DEBHELPER OPTIONS"
msgstr ""
#. type: textblock
-#: debhelper.pod:98
+#: debhelper.pod:271
msgid "The following command line options are supported by all debhelper programs."
msgstr ""
#. type: =item
-#: debhelper.pod:102
+#: debhelper.pod:275
msgid "B<-v>, B<--verbose>"
msgstr ""
#. type: textblock
-#: debhelper.pod:104
-msgid "Verbose mode: show all commands that modify the package build directory."
+#: debhelper.pod:277
+msgid "Verbose mode: show commands that modify the package build directory."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:279
+msgid ""
+"Note that verbose mode may also output other \"internal\" commands that do "
+"not directly affect the package build directory."
msgstr ""
#. type: =item
-#: debhelper.pod:106 dh:64
+#: debhelper.pod:282 dh:307
msgid "B<--no-act>"
msgstr ""
#. type: textblock
-#: debhelper.pod:108
+#: debhelper.pod:284
msgid ""
"Do not really do anything. If used with -v, the result is that the command "
"will output what it would have done."
msgstr ""
#. type: =item
-#: debhelper.pod:111
+#: debhelper.pod:287
msgid "B<-a>, B<--arch>"
msgstr ""
#. type: textblock
-#: debhelper.pod:113
+#: debhelper.pod:289
msgid ""
-"Act on architecture dependent packages that should be built for the build "
-"architecture."
+"Act on architecture dependent packages that should be built for the "
+"B<DEB_HOST_ARCH> architecture."
msgstr ""
#. type: =item
-#: debhelper.pod:116
+#: debhelper.pod:292
msgid "B<-i>, B<--indep>"
msgstr ""
#. type: textblock
-#: debhelper.pod:118
+#: debhelper.pod:294
msgid "Act on all architecture independent packages."
msgstr ""
#. type: =item
-#: debhelper.pod:120
+#: debhelper.pod:296
msgid "B<-p>I<package>, B<--package=>I<package>"
msgstr ""
#. type: textblock
-#: debhelper.pod:122
+#: debhelper.pod:298
msgid ""
"Act on the package named I<package>. This option may be specified multiple "
"times to make debhelper operate on a given set of packages."
msgstr ""
#. type: =item
-#: debhelper.pod:125
+#: debhelper.pod:301
msgid "B<-s>, B<--same-arch>"
msgstr ""
#. type: textblock
-#: debhelper.pod:127
-msgid ""
-"This used to be a smarter version of the B<-a> flag, but the B<-a> flag is "
-"now equally smart."
+#: debhelper.pod:303
+msgid "Deprecated alias of B<-a>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:305 dh_install:80 dh_install:89
+msgid "This option is removed in compat 12."
msgstr ""
#. type: =item
-#: debhelper.pod:130
+#: debhelper.pod:307
msgid "B<-N>I<package>, B<--no-package=>I<package>"
msgstr ""
#. type: textblock
-#: debhelper.pod:132
+#: debhelper.pod:309
msgid ""
"Do not act on the specified package even if an B<-a>, B<-i>, or B<-p> option "
"lists the package as one that should be acted on."
msgstr ""
#. type: =item
-#: debhelper.pod:135
+#: debhelper.pod:312
msgid "B<--remaining-packages>"
msgstr ""
#. type: textblock
-#: debhelper.pod:137
+#: debhelper.pod:314
msgid ""
"Do not act on the packages which have already been acted on by this "
"debhelper command earlier (i.e. if the command is present in the package "
@@ -292,43 +629,22 @@ msgid ""
msgstr ""
#. type: =item
-#: debhelper.pod:143
-msgid "B<--ignore=>I<file>"
-msgstr ""
-
-#. type: textblock
-#: debhelper.pod:145
-msgid ""
-"Ignore the specified file. This can be used if F<debian/> contains a "
-"debhelper config file that a debhelper command should not act on. Note that "
-"F<debian/compat>, F<debian/control>, and F<debian/changelog> can't be "
-"ignored, but then, there should never be a reason to ignore those files."
-msgstr ""
-
-#. type: textblock
-#: debhelper.pod:150
-msgid ""
-"For example, if upstream ships a F<debian/init> that you don't want "
-"B<dh_installinit> to install, use B<--ignore=debian/init>"
-msgstr ""
-
-#. type: =item
-#: debhelper.pod:153
+#: debhelper.pod:320
msgid "B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>"
msgstr ""
#. type: textblock
-#: debhelper.pod:155
+#: debhelper.pod:322
msgid "Use I<tmpdir> for package build directory. The default is debian/I<package>"
msgstr ""
#. type: =item
-#: debhelper.pod:157
+#: debhelper.pod:324
msgid "B<--mainpackage=>I<package>"
msgstr ""
#. type: textblock
-#: debhelper.pod:159
+#: debhelper.pod:326
msgid ""
"This little-used option changes the package which debhelper considers the "
"\"main package\", that is, the first one listed in F<debian/control>, and "
@@ -337,12 +653,12 @@ msgid ""
msgstr ""
#. type: =item
-#: debhelper.pod:164
+#: debhelper.pod:331
msgid "B<-O=>I<option>|I<bundle>"
msgstr ""
#. type: textblock
-#: debhelper.pod:166
+#: debhelper.pod:333
msgid ""
"This is used by L<dh(1)> when passing user-specified options to all the "
"commands it runs. If the command supports the specified option or option "
@@ -351,12 +667,12 @@ msgid ""
msgstr ""
#. type: =head1
-#: debhelper.pod:173
+#: debhelper.pod:340
msgid "COMMON DEBHELPER OPTIONS"
msgstr ""
#. type: textblock
-#: debhelper.pod:175
+#: debhelper.pod:342
msgid ""
"The following command line options are supported by some debhelper "
"programs. See the man page of each program for a complete explanation of "
@@ -364,47 +680,51 @@ msgid ""
msgstr ""
#. type: =item
-#: debhelper.pod:181
+#: debhelper.pod:348
msgid "B<-n>"
msgstr ""
#. type: textblock
-#: debhelper.pod:183
+#: debhelper.pod:350
msgid "Do not modify F<postinst>, F<postrm>, etc. scripts."
msgstr ""
#. type: =item
-#: debhelper.pod:185 dh_compress:52 dh_install:81 dh_installchangelogs:71 dh_installdocs:80 dh_installexamples:41 dh_link:62 dh_makeshlibs:81 dh_md5sums:37 dh_shlibdeps:30 dh_strip:39
+#: debhelper.pod:352 dh_compress:56 dh_dwz:56 dh_installchangelogs:89
+#: dh_installdocs:109 dh_installexamples:84 dh_link:78 dh_makeshlibs:154
+#: dh_md5sums:40 dh_shlibdeps:34 dh_strip:42
msgid "B<-X>I<item>, B<--exclude=>I<item>"
msgstr ""
#. type: textblock
-#: debhelper.pod:187
+#: debhelper.pod:354
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."
+"exclude more than one thing. The I<item> is typically part of a filename, "
+"and any file containing the specified text will be excluded."
msgstr ""
#. type: =item
-#: debhelper.pod:191 dh_bugfiles:54 dh_compress:59 dh_installdirs:35 dh_installdocs:75 dh_installexamples:36 dh_installinfo:35 dh_installman:65 dh_link:57
+#: debhelper.pod:358 dh_bugfiles:57 dh_compress:63 dh_installdirs:49
+#: dh_installdocs:104 dh_installexamples:52 dh_installinfo:45 dh_installman:90
+#: dh_installwm:55 dh_link:73
msgid "B<-A>, B<--all>"
msgstr ""
#. type: textblock
-#: debhelper.pod:193
+#: debhelper.pod:360
msgid ""
"Makes files or other items that are specified on the command line take "
"effect in ALL packages acted on, not just the first."
msgstr ""
#. type: =head1
-#: debhelper.pod:198
+#: debhelper.pod:365
msgid "BUILD SYSTEM OPTIONS"
msgstr ""
#. type: textblock
-#: debhelper.pod:200
+#: debhelper.pod:367
msgid ""
"The following command line options are supported by all of the "
"B<dh_auto_>I<*> debhelper programs. These programs support a variety of "
@@ -415,37 +735,56 @@ msgid ""
msgstr ""
#. type: =item
-#: debhelper.pod:209
+#: debhelper.pod:376
msgid "B<-S>I<buildsystem>, B<--buildsystem=>I<buildsystem>"
msgstr ""
#. type: textblock
-#: debhelper.pod:211
+#: debhelper.pod:378
msgid ""
"Force use of the specified I<buildsystem>, instead of trying to auto-select "
"one which might be applicable for the package."
msgstr ""
+#. type: textblock
+#: debhelper.pod:381
+msgid "Pass B<none> as I<buildsystem> to disable auto-selection."
+msgstr ""
+
#. type: =item
-#: debhelper.pod:214
-msgid "B<-D>I<directory>, B<--sourcedirectory=>I<directory>"
+#: debhelper.pod:383
+msgid ""
+"B<-D>I<directory>, B<--sourcedir=>I<directory>, "
+"B<--sourcedirectory=>I<directory>"
msgstr ""
#. type: textblock
-#: debhelper.pod:216
+#: debhelper.pod:385
msgid ""
"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."
msgstr ""
+#. type: textblock
+#: debhelper.pod:389
+msgid ""
+"B<Warning>: The B<--sourcedir> variant matches a similar named option in "
+"B<dh_install> and B<dh_missing> (etc.) for historical reasons. While they "
+"have a similar name, they have very distinct purposes and in some cases it "
+"can cause errors when this variant is passed to B<dh> (when then passes it "
+"on to all tools)."
+msgstr ""
+
#. type: =item
-#: debhelper.pod:220
-msgid "B<-B>[I<directory>], B<--builddirectory=>[I<directory>]"
+#: debhelper.pod:395
+msgid ""
+"B<-B>[I<directory>], B<--builddir>[I<=directory>], "
+"B<--builddirectory>[I<=directory>]"
msgstr ""
#. type: textblock
-#: debhelper.pod:222
+#: debhelper.pod:397
msgid ""
"Enable out of source building and use the specified I<directory> as the "
"build directory. If I<directory> parameter is omitted, a default build "
@@ -453,7 +792,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:226
+#: debhelper.pod:401
msgid ""
"If this option is not specified, building will be done in source by default "
"unless the build system requires or prefers out of source tree building. In "
@@ -462,7 +801,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:231
+#: debhelper.pod:406
msgid ""
"If the build system prefers out of source tree building but still allows in "
"source building, the latter can be re-enabled by passing a build directory "
@@ -470,33 +809,42 @@ msgid ""
msgstr ""
#. type: =item
-#: debhelper.pod:235
-msgid "B<--parallel>"
+#: debhelper.pod:410
+msgid "B<--parallel>, B<--no-parallel>"
msgstr ""
#. type: textblock
-#: debhelper.pod:237
+#: debhelper.pod:412
msgid ""
-"Enable parallel builds if underlying build system supports them. The number "
-"of parallel jobs is controlled by the B<DEB_BUILD_OPTIONS> environment "
-"variable (L<Debian Policy, section 4.9.1>) at build time. It might also be "
-"subject to a build system specific limit."
+"Control whether parallel builds should be used if underlying build system "
+"supports them. The number of parallel jobs is controlled by the "
+"B<DEB_BUILD_OPTIONS> environment variable (L<Debian Policy, section 4.9.1>) "
+"at build time. It might also be subject to a build system specific limit."
msgstr ""
#. type: textblock
-#: debhelper.pod:242
+#: debhelper.pod:418
+msgid ""
+"If neither option is specified, debhelper currently defaults to "
+"B<--parallel> in compat 10 (or later) and B<--no-parallel> otherwise."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:421
msgid ""
-"If this option is not specified, debhelper currently defaults to not "
-"allowing parallel package builds."
+"As an optimization, B<dh> will try to avoid passing these options to "
+"subprocesses, if they are unnecessary 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)."
msgstr ""
#. type: =item
-#: debhelper.pod:245
+#: debhelper.pod:426
msgid "B<--max-parallel=>I<maximum>"
msgstr ""
#. type: textblock
-#: debhelper.pod:247
+#: debhelper.pod:428
msgid ""
"This option implies B<--parallel> and allows further limiting the number of "
"jobs that can be used in a parallel build. If the package build is known to "
@@ -504,13 +852,87 @@ msgid ""
"maximum level that is known to work, or that you wish to support."
msgstr ""
+#. type: textblock
+#: debhelper.pod:433
+msgid ""
+"Notably, setting the maximum to 1 is effectively the same as using "
+"B<--no-parallel>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:436
+msgid "B<--reload-all-buildenv-variables>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:438
+msgid ""
+"By default, L<dh(1)> will compute several environment variables (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:442
+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:449
+#, no-wrap
+msgid ""
+" export DEB_CFLAGS_MAINT_APPEND=-O3\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:451
+#, no-wrap
+msgid ""
+" %:\n"
+" dh $@\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:454
+#, 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:459
+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:464
+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:252 dh:60
+#: debhelper.pod:467 dh:299
msgid "B<--list>, B<-l>"
msgstr ""
#. type: textblock
-#: debhelper.pod:254
+#: debhelper.pod:469
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 "
@@ -519,54 +941,101 @@ msgid ""
msgstr ""
#. type: =head1
-#: debhelper.pod:261
+#: debhelper.pod:476
msgid "COMPATIBILITY LEVELS"
msgstr ""
#. type: textblock
-#: debhelper.pod:263
+#: debhelper.pod:478
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 "
-"tell debhelper which compatibility level it should use, and it modifies its "
-"behavior in various ways."
+"must tell debhelper which compatibility level it should use, and it modifies "
+"its behavior in various ways."
msgstr ""
#. type: textblock
-#: debhelper.pod:270
+#: debhelper.pod:485
msgid ""
-"Tell debhelper what compatibility level to use by writing a number to "
-"F<debian/compat>. For example, to turn on v9 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:273
+#: debhelper.pod:489
#, no-wrap
msgid ""
-" % echo 9 > debian/compat\n"
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
"\n"
msgstr ""
#. type: textblock
-#: debhelper.pod:275
+#: debhelper.pod:491
+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:497
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 9, 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, if only for selected commands, "
+"B<DH_COMPAT>)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:501
+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. To use this method, the F<debian/compat> file 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:279
+#: debhelper.pod:511
#, no-wrap
msgid ""
-" Build-Depends: debhelper (>= 9)\n"
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#~)\n"
"\n"
msgstr ""
#. type: textblock
-#: debhelper.pod:281
+#: debhelper.pod:513
+msgid ""
+"Note that you must use either the build-dependency on debhelper-compat or "
+"the F<debian/compat> file. Whenever possible, the debhelper-compat "
+"build-dependency is recommended."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:517
+msgid ""
+"If needed be, the B<DH_COMPAT> environment variable can be used to override "
+"the compat level for a given command. The feature is mostly useful for "
+"either temporarily upgrading a few commands to a new compat level or keeping "
+"a few commands on a lower compat level. The feature is best used sparingly "
+"as it effectively introduces special-cases into the F<debian/rules> file "
+"that may be surprising to maintainers or reviewers (or, in the long term, to "
+"yourself)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:525
msgid ""
"Unless otherwise indicated, all debhelper documentation assumes that you are "
"using the most recent compatibility level, and in most cases does not "
@@ -576,289 +1045,1900 @@ msgid ""
"levels."
msgstr ""
+#. type: =head2
+#: debhelper.pod:532
+msgid "Supported compatibility levels"
+msgstr ""
+
#. type: textblock
-#: debhelper.pod:288
-msgid "These are the available compatibility levels:"
+#: debhelper.pod:534
+msgid ""
+"The list of supported compatibility levels and the related upgrade check "
+"list has moved to L<debhelper-compat-upgrade-checklist(7)>."
+msgstr ""
+
+#. type: =head1
+#: debhelper.pod:537 dh_auto_test:48 dh_dwz:69 dh_installcatalogs:67
+#: dh_installdocs:202 dh_installemacsen:75 dh_installexamples:96
+#: dh_installinit:204 dh_installinitramfs:60 dh_installman:131
+#: dh_installmodules:57 dh_installudev:50 dh_installwm:66 dh_installxfonts:40
+#: dh_movefiles:67 dh_strip:119 dh_usrlocal:60 dh_systemd_enable:103
+#: dh_systemd_start:68
+msgid "NOTES"
+msgstr ""
+
+#. type: =head2
+#: debhelper.pod:539
+msgid "Multiple binary package support"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:541
+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 "
+"source package happens to generate one architecture dependent package, and "
+"another architecture independent package, this is not the correct behavior, "
+"because you need to generate the architecture dependent packages in the "
+"binary-arch F<debian/rules> target, and the architecture independent "
+"packages in the binary-indep F<debian/rules> target."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:549
+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<-i>, B<-p>, and B<-s> parameters. These parameters are cumulative. If "
+"none are given, debhelper programs default to acting on all packages listed "
+"in the control file, with the exceptions below."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:555
+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, "
+"section 5.6.8>)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:559
+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 "
+"binary package stanzas in B<debian/control>, according to the draft policy "
+"at L<https://wiki.debian.org/BuildProfileSpec>."
+msgstr ""
+
+#. type: =head3
+#: debhelper.pod:564
+msgid "Interaction between package selections and Build-Profiles"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:566
+msgid ""
+"Build-Profiles affect which packages are included in the package selections "
+"mechanisms in debhelper. Generally, the package selections are described "
+"from the assumption that all packages are enabled. This section describes "
+"how the selections react when a package is disabled due to the active "
+"Build-Profiles (or lack of active Build-Profiles)."
msgstr ""
#. type: =item
-#: debhelper.pod:292
-msgid "v1"
+#: debhelper.pod:574
+msgid "-a/--arch, -i/--indep OR no selection options (a raw \"dh_X\" call)"
msgstr ""
#. type: textblock
-#: debhelper.pod:294
+#: debhelper.pod:576
msgid ""
-"This is the original debhelper compatibility level, and so it is the default "
-"one. In this mode, debhelper will use F<debian/tmp> as the package tree "
-"directory for the first binary package listed in the control file, while "
-"using debian/I<package> for all other packages listed in the F<control> "
-"file."
+"The package disabled by Build-Profiles is silently excluded from the "
+"selection."
msgstr ""
#. type: textblock
-#: debhelper.pod:299 debhelper.pod:306 debhelper.pod:329 debhelper.pod:358
-msgid "This mode is deprecated."
+#: debhelper.pod:579
+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 "
+"do the build in the first place."
msgstr ""
#. type: =item
-#: debhelper.pod:301
-msgid "v2"
+#: debhelper.pod:583
+msgid "-N I<package> / --no-package I<package>"
msgstr ""
#. type: textblock
-#: debhelper.pod:303
+#: debhelper.pod:585
+msgid "The option is accepted and effectively does nothing."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:587
+msgid "-p I<package> / --package I<package>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:589
+msgid "The option is accepted, but debhelper will not act on the package."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:593
msgid ""
-"In this mode, debhelper will consistently use debian/I<package> as the "
-"package tree directory for every package that is built."
+"Note that it does not matter whether a package is enabled or disabled by "
+"default."
+msgstr ""
+
+#. type: =head2
+#: debhelper.pod:596
+msgid "Automatic generation of Debian install scripts"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:598
+msgid ""
+"Some debhelper commands will automatically generate parts of Debian "
+"maintainer scripts. If you want these automatically generated things "
+"included in your existing Debian maintainer scripts, then you need to add "
+"B<#DEBHELPER#> to your scripts, in the place the code should be added. "
+"B<#DEBHELPER#> will be replaced by any auto-generated code when you run "
+"B<dh_installdeb>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:605
+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:608
+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:611
+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 "
+"is one way to do that (note that I made sure that $1, $2, etc are set with "
+"the set command):"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:616
+#, no-wrap
+msgid ""
+" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
+" #DEBHELPER#\n"
+" EOF\n"
+" if (system($temp)) {\n"
+" my $exit_code = ($? >> 8) & 0xff;\n"
+" my $signal = $? & 0x7f;\n"
+" if ($exit_code) {\n"
+" die(\"The debhelper script failed with error code: "
+"${exit_code}\");\n"
+" } else {\n"
+" die(\"The debhelper script was killed by signal: ${signal}\");\n"
+" }\n"
+" }\n"
+"\n"
+msgstr ""
+
+#. type: =head2
+#: debhelper.pod:629
+msgid "Automatic generation of miscellaneous dependencies."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:631
+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 "
+"package will generally need to depend on debconf. Or if you use "
+"L<dh_installxfonts(1)>, your package will generally need to depend on a "
+"particular version of xutils. Keeping track of these miscellaneous "
+"dependencies can be annoying since they are dependent on how debhelper does "
+"things, so debhelper offers a way to automate it."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:639
+msgid ""
+"All commands of this type, besides documenting what dependencies may be "
+"needed on their man pages, will automatically generate a substvar called "
+"B<${misc:Depends}>. If you put that token into your F<debian/control> file, "
+"it will be expanded to the dependencies debhelper figures you need."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:644
+msgid ""
+"This is entirely independent of the standard B<${shlibs:Depends}> generated "
+"by L<dh_makeshlibs(1)>, and the B<${perl:Depends}> generated by "
+"L<dh_perl(1)>. You can choose not to use any of these, if debhelper's "
+"guesses don't match reality."
+msgstr ""
+
+#. type: =head2
+#: debhelper.pod:649
+msgid "Package build directories"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:651
+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:654
+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>\", will use B<debian/tmp> as the temporary directory. Note "
+"that if you use B<-P>, the debhelper programs can only be acting on a single "
+"package at a time. So if you have a package that builds many binary "
+"packages, you will need to also use the B<-p> flag to specify which binary "
+"package the debhelper program will act on."
+msgstr ""
+
+#. type: =head2
+#: debhelper.pod:662
+msgid "udebs"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:664
+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>. "
+"Debhelper will try to create udebs that comply with debian-installer policy, "
+"by making the generated package files end in F<.udeb>, not installing any "
+"documentation into a udeb, skipping over F<preinst>, F<postrm>, F<prerm>, "
+"and F<config> scripts, etc."
+msgstr ""
+
+#. type: =head1
+#: debhelper.pod:671
+msgid "ENVIRONMENT"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:673
+msgid ""
+"This section describes some of the environment variables that influences the "
+"behaviour of debhelper or which debhelper interacts with."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:676
+msgid ""
+"It is important to note that these must be actual environment variables in "
+"order to affect the behaviour of debhelper (not simply F<Makefile> "
+"variables). To specify them properly in F<debian/rules>, be sure to "
+"\"B<export>\" them. For example, \"B<export DH_VERBOSE>\"."
msgstr ""
#. type: =item
-#: debhelper.pod:308
-msgid "v3"
+#: debhelper.pod:683
+msgid "B<DH_VERBOSE>"
msgstr ""
#. type: textblock
-#: debhelper.pod:310
-msgid "This mode works like v2, with the following additions:"
+#: debhelper.pod:685
+msgid ""
+"Set to a non-empty value to enable verbose mode. Please see the B<-v> / "
+"B<--verbose> option for details."
msgstr ""
#. type: =item
-#: debhelper.pod:314 debhelper.pod:319 debhelper.pod:323 debhelper.pod:337 debhelper.pod:342 debhelper.pod:347 debhelper.pod:352 debhelper.pod:366 debhelper.pod:370 debhelper.pod:375 debhelper.pod:379 debhelper.pod:391 debhelper.pod:396 debhelper.pod:402 debhelper.pod:408 debhelper.pod:421 debhelper.pod:428 debhelper.pod:432 debhelper.pod:436 debhelper.pod:449 debhelper.pod:453 debhelper.pod:461 debhelper.pod:466 debhelper.pod:480 debhelper.pod:485 debhelper.pod:492 debhelper.pod:497 debhelper.pod:502 debhelper.pod:506 debhelper.pod:512 debhelper.pod:517 debhelper.pod:522 debhelper.pod:535 debhelper.pod:542
-msgid "-"
+#: debhelper.pod:688
+msgid "B<DH_QUIET>"
msgstr ""
#. type: textblock
-#: debhelper.pod:316
+#: debhelper.pod:690
msgid ""
-"Debhelper config files support globbing via B<*> and B<?>, when "
-"appropriate. To turn this off and use those characters raw, just prefix with "
-"a backslash."
+"Set to a non-empty value to enable quiet mode. Debhelper will not output "
+"commands calling the upstream build system nor will dh print which "
+"subcommands are called and depending on the upstream build system might make "
+"that more quiet, too. This makes it easier to spot important messages but "
+"makes the output quite useless as buildd log."
msgstr ""
#. type: textblock
-#: debhelper.pod:321
+#: debhelper.pod:696
+msgid "Ignored if DH_VERBOSE is also set or B<-v> / B<--verbose> is passed."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:698
+msgid "B<DH_COMPAT>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:700
msgid ""
-"B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call "
-"B<ldconfig>."
+"Temporarily specifies what compatibility level debhelper should run at, "
+"overriding any value specified via Build-Depends on debhelper-compat or via "
+"the F<debian/compat> file."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:704
+msgid "B<DH_NO_ACT>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:706
+msgid "Set to B<1> to enable no-act mode."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:708
+msgid "B<DH_OPTIONS>"
msgstr ""
#. type: textblock
-#: debhelper.pod:325
+#: debhelper.pod:710
msgid ""
-"Every file in F<etc/> is automatically flagged as a conffile by "
-"B<dh_installdeb>."
+"All debhelper tools will parse command line arguments listed in this "
+"variable before any command option (as if they had been prepended to the "
+"command line arguments). Unfortunately, some third-party provided tools may "
+"not support this variable and will ignore these command line arguments."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:715
+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:331
-msgid "v4"
+#: debhelper.pod:718
+msgid "B<DH_ALWAYS_EXCLUDE>"
msgstr ""
#. type: textblock
-#: debhelper.pod:333
-msgid "Changes from v3 are:"
+#: debhelper.pod:720
+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 "
+"B<rm -rf> anything that matches the value in your package build tree."
msgstr ""
#. type: textblock
-#: debhelper.pod:339
+#: debhelper.pod:724
msgid ""
-"B<dh_makeshlibs -V> will not include the Debian part of the version number "
-"in the generated dependency line in the shlibs file."
+"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 "
+"sneaking into the package you build. Or, if a package has a source tarball "
+"that (unwisely) includes CVS directories, you might want to export "
+"B<DH_ALWAYS_EXCLUDE=CVS> in F<debian/rules>, to make it take effect wherever "
+"your package is built."
msgstr ""
#. type: textblock
-#: debhelper.pod:344
+#: debhelper.pod:731
msgid ""
-"You are encouraged to put the new B<${misc:Depends}> into F<debian/control> "
-"to supplement the B<${shlibs:Depends}> field."
+"Multiple things to exclude can be separated with colons, as in "
+"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:734
+msgid "B<DH_EXTRA_ADDONS>"
msgstr ""
#. type: textblock
-#: debhelper.pod:349
+#: debhelper.pod:736
msgid ""
-"B<dh_fixperms> will make all files in F<bin/> directories and in "
-"F<etc/init.d> executable."
+"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 "
+"addon to run with the --with flag in the debian/rules file. Any --without "
+"calls specifying an addon in this environment variable will not be run."
msgstr ""
#. type: textblock
-#: debhelper.pod:354
-msgid "B<dh_link> will correct existing links to conform with policy."
+#: debhelper.pod:741
+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 "
+"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."
msgstr ""
#. type: =item
-#: debhelper.pod:360
-msgid "v5"
+#: debhelper.pod:746
+msgid "B<DH_COLORS>, B<DPKG_COLORS>"
msgstr ""
#. type: textblock
-#: debhelper.pod:362
-msgid "Changes from v4 are:"
+#: debhelper.pod:748
+msgid ""
+"These variables can be used to control whether debhelper commands should use "
+"colors in their textual output. Can be set to \"always\", \"auto\" (the "
+"default), or \"never\"."
msgstr ""
#. type: textblock
-#: debhelper.pod:368
-msgid "Comments are ignored in debhelper config files."
+#: debhelper.pod:752
+msgid ""
+"Note that B<DPKG_COLOR> also affects a number of dpkg related tools and "
+"debhelper uses it on the assumption that you want the same color setting for "
+"dpkg and debhelper. In the off-hand chance you want different color setting "
+"for debhelper, you can use B<DH_COLORS> instead or in addition to "
+"B<DPKG_COLORS>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:758
+msgid "B<NO_COLOR>"
msgstr ""
#. type: textblock
-#: debhelper.pod:372
+#: debhelper.pod:760
msgid ""
-"B<dh_strip --dbg-package> now specifies the name of a package to put "
-"debugging symbols in, not the packages to take the symbols from."
+"If no explicit request for color has been given (e.g. B<DH_COLORS> and "
+"B<DPKG_COLORS> are both unset), the presence of this environment variable "
+"cause the default color setting to be \"never\"."
msgstr ""
#. type: textblock
-#: debhelper.pod:377
-msgid "B<dh_installdocs> skips installing empty files."
+#: debhelper.pod:764
+msgid ""
+"The variable is defined according to L<https://no-color.org/>. In this "
+"project, the environment variables (such as B<DH_COLORS>) are considered an "
+"explicit request for color."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:768
+msgid ""
+"B<CFLAGS>, B<CPPFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, "
+"B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS>, B<LDFLAGS>"
msgstr ""
#. type: textblock
-#: debhelper.pod:381
-msgid "B<dh_install> errors out if wildcards expand to nothing."
+#: debhelper.pod:770
+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: =item
-#: debhelper.pod:385
-msgid "v6"
+#: debhelper.pod:777
+msgid "B<HOME>, B<XDG_*>"
msgstr ""
#. type: textblock
-#: debhelper.pod:387
-msgid "Changes from v5 are:"
+#: debhelper.pod:779
+msgid ""
+"In compat 13 and later, these environment variables are reset before "
+"invoking the upstream build system via the B<dh_auto_*> helpers. The "
+"variables B<HOME> (all B<dh_auto_*> helpers) and B<XDG_RUNTIME_DIR> "
+"(B<dh_auto_test> only) will be set to a writable directory. All remaining "
+"variables and B<XDG_RUNTIME_DIR> (except for during B<dh_auto_test>) will be "
+"cleared."
msgstr ""
#. type: textblock
-#: debhelper.pod:393
+#: debhelper.pod:785
msgid ""
-"Commands that generate maintainer script fragments will order the fragments "
-"in reverse order for the F<prerm> and F<postrm> scripts."
+"The B<HOME> directory will be created as an empty directory but it will be "
+"reused between calls to B<dh_auto_*>. Any content will persist until "
+"explicitly deleted or B<dh_clean>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:789
+msgid "B<DEB_BUILD_OPTIONS>"
msgstr ""
#. type: textblock
-#: debhelper.pod:398
+#: debhelper.pod:791
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 directory."
+"Please see L</Supported flags in DEB_BUILD_OPTIONS> for this environment "
+"variable."
msgstr ""
#. type: textblock
-#: debhelper.pod:404
+#: debhelper.pod:794
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."
+"Please note that this variable should I<not> be altered by package "
+"maintainers inside F<debian/rules> to change the behaviour of debhelper. "
+"Instead, where the package maintainer need these features, they should look "
+"disabling the relevant feature directly (e.g. by overriding the concrete "
+"tools)."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:799
+msgid "B<DEB_BUILD_MAINT_OPTIONS>"
msgstr ""
#. type: textblock
-#: debhelper.pod:410
+#: debhelper.pod:801
msgid ""
-"B<dh_installman> allows overwriting existing man pages in the package build "
-"directory. In previous compatibility levels it silently refuses to do this."
+"This is a dpkg specific environment variable (see "
+"e.g. L<dpkg-buildflags(1)>). The debhelper tool suite silently ignores it."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:804
+msgid ""
+"It is documented here because it has a similar name to B<DEB_BUILD_OPTIONS>, "
+"which make some people mistakenly assume that debhelper will also react to "
+"this variable."
+msgstr ""
+
+#. type: =head2
+#: debhelper.pod:810
+msgid "Supported flags in DEB_BUILD_OPTIONS"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:812
+msgid ""
+"The debhelper tool suite reacts to the following flags in "
+"B<DEB_BUILD_OPTIONS>."
msgstr ""
#. type: =item
-#: debhelper.pod:415
-msgid "v7"
+#: debhelper.pod:816
+msgid "B<dherroron=obsolete-compat-levels>"
msgstr ""
#. type: textblock
-#: debhelper.pod:417
-msgid "Changes from v6 are:"
+#: debhelper.pod:818
+msgid "I<This is a debhelper specific value.>"
msgstr ""
#. type: textblock
-#: debhelper.pod:423
+#: debhelper.pod:820
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 "
-"using B<--sourcedir>). This allows B<dh_install> to interoperate with "
-"B<dh_auto_install>, which installs to F<debian/tmp>, without needing any "
-"special parameters."
+"When B<dherroron> is present and set to B<obsolete-compat-levels>, then "
+"debhelper tools will promote deprecation warnings for usage of old soon to "
+"be removed compat levels into errors."
msgstr ""
#. type: textblock
-#: debhelper.pod:430
-msgid "B<dh_clean> will read F<debian/clean> and delete files listed there."
+#: debhelper.pod:824
+msgid ""
+"This is useful for automated checking for code relying on deprecated compat "
+"levels that is scheduled for removal."
msgstr ""
#. type: textblock
-#: debhelper.pod:434
-msgid "B<dh_clean> will delete toplevel F<*-stamp> files."
+#: debhelper.pod:827
+msgid "This option is intended for testing purposes; not production builds."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:829
+msgid "B<nostrip>"
msgstr ""
#. type: textblock
-#: debhelper.pod:438
+#: debhelper.pod:831 debhelper.pod:854 debhelper.pod:868
msgid ""
-"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
-"none is specified."
+"I<This value will change the content of the debs being built. The .deb "
+"packages built when this is set is therefore not bit-for-bit reproducible "
+"with a regular build in the general case.>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:835
+msgid ""
+"This value will cause the official debhelper tools will skip actions and "
+"helpers that either remove, detach or deduplicate debugging symbols in ELF "
+"binaries."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:839
+msgid "This value affects L<dh_dwz(1)> and L<dh_strip(1)>."
msgstr ""
#. type: =item
-#: debhelper.pod:443
-msgid "v8"
+#: debhelper.pod:841
+msgid "B<nocheck>"
msgstr ""
#. type: textblock
-#: debhelper.pod:445
-msgid "Changes from v7 are:"
+#: debhelper.pod:843
+msgid ""
+"This value will cause the official debhelper build systems to skip runs of "
+"upstream test suites."
msgstr ""
#. type: textblock
-#: debhelper.pod:451
-msgid "Commands will fail rather than warning when they are passed unknown options."
+#: debhelper.pod:846
+msgid ""
+"Package maintainers looking to avoid running the upstream tests should "
+"B<not> rely on this. Instead, they can add an empty override target to skip "
+"B<dh_auto_test>."
msgstr ""
#. type: textblock
-#: debhelper.pod:455
+#: debhelper.pod:850
+msgid "This value affects L<dh_auto_test(1)>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:852
+msgid "B<nodoc>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:858
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. "
-"Also, libraries in unusual locations that B<dpkg-gensymbols> would not have "
-"processed before will be passed to it, a behavior change that can cause some "
-"packages to fail to build."
+"This value will cause several debhelper tools to skip installation of "
+"documentation such as manpages or upstream provided documentation. "
+"Additionally, the tools will also ignore if declared documentation is "
+"\"missing\" on the assumption that the documentation has not been built."
msgstr ""
#. type: textblock
-#: debhelper.pod:463
+#: debhelper.pod:863
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 "
-"$@>\"."
+"This value effects tools I<like> L<dh_installdocs(1)>, which I<knows> it is "
+"working with documentation."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:866
+msgid "B<notrimdch>"
msgstr ""
#. type: textblock
-#: debhelper.pod:468
+#: debhelper.pod:872
msgid ""
-"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
-"F<Makefile.PL>."
+"This value will cause L<dh_installchangelogs(1)> to act as if it had been "
+"passed the B<--no-trim> option, forcing it to forgo removing older entries "
+"from changelogs."
msgstr ""
#. type: =item
-#: debhelper.pod:472
-msgid "v9"
+#: debhelper.pod:876
+msgid "B<noautodbgsym>, B<noddebs>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:878
+msgid ""
+"I<The official name is noautodbgsym. The noddebs variant is accepted for "
+"historical reasons.>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:881
+msgid ""
+"This value causes debhelper to skip the generation of automatically "
+"generated debug symbol packages."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:884
+msgid "This value affects L<dh_strip(1)>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:886
+msgid "B<parallel=N>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:888
+msgid ""
+"This value enables debhelper to use up to B<N> threads or processes (subject "
+"to parameters like B<--no-parallel> and B<--max-parallel=M>). Not all "
+"debhelper tools work with parallel tasks and may silently ignore the "
+"request."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:893
+msgid ""
+"This value affects many debhelper tools. Most notably B<dh_auto_*>, which "
+"will attempt to run the underlying upstream build system with that number of "
+"threads."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:897
+msgid "B<terse>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:899
+msgid ""
+"This value will cause the official debhelper build systems to configure "
+"upstream builds to be terse (i.e. reduce verbosity in their output). This "
+"is subject to the upstream and the debhelper build system supporting such "
+"features."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:904
+msgid ""
+"This value affects most B<dh_auto_*> tools directly. For commands provided "
+"by the debhelper package, it also causes the tools to act like the "
+"B<DH_QUIET> environment variable was non-empty."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:910
+msgid "Unknown flags are silently ignored."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:912
+msgid ""
+"Note third-party debhelper-like tools or third-party provided build systems "
+"may or may not react to the above flags. This tends to depend on "
+"implementation details of the tool."
+msgstr ""
+
+#. type: =head1
+#: debhelper.pod:916 debhelper-compat-upgrade-checklist.pod:758
+#: debhelper-obsolete-compat.pod:178 dh:872 dh_auto_build:53 dh_auto_clean:55
+#: dh_auto_configure:58 dh_auto_install:103 dh_auto_test:64 dh_bugfiles:133
+#: dh_builddeb:176 dh_clean:189 dh_compress:243 dh_dwz:163 dh_fixperms:164
+#: dh_gencontrol:208 dh_icons:75 dh_install:377 dh_installcatalogs:128
+#: dh_installchangelogs:365 dh_installcron:80 dh_installdeb:419
+#: dh_installdebconf:233 dh_installdirs:131 dh_installdocs:437
+#: dh_installemacsen:138 dh_installexamples:182 dh_installifupdown:72
+#: dh_installinfo:123 dh_installinit:413 dh_installinitramfs:91
+#: dh_installlogcheck:81 dh_installlogrotate:53 dh_installman:420
+#: dh_installmanpages:198 dh_installmenu:88 dh_installmime:63
+#: dh_installmodules:109 dh_installpam:71 dh_installppp:68 dh_installudev:102
+#: dh_installwm:130 dh_installxfonts:90 dh_link:166 dh_lintian:60
+#: dh_listpackages:34 dh_makeshlibs:456 dh_md5sums:118 dh_movefiles:161
+#: dh_perl:188 dh_prep:70 dh_shlibdeps:204 dh_strip:435 dh_testdir:62
+#: dh_testroot:93 dh_usrlocal:136 dh_systemd_enable:280 dh_systemd_start:280
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:920
+msgid "L<debhelper-compat-upgrade-checklist(7)>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:922
+msgid "List of supported compat levels and an upgrade checklist for each of them."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:924
+msgid "F</usr/share/doc/debhelper/examples/>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:926
+msgid "A set of example F<debian/rules> files that use debhelper."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:928
+msgid "L<http://joeyh.name/code/debhelper/>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:930
+msgid "Debhelper web site."
+msgstr ""
+
+#. type: =head1
+#: debhelper.pod:934 dh:878 dh_auto_build:59 dh_auto_clean:61
+#: dh_auto_configure:64 dh_auto_install:109 dh_auto_test:70 dh_bugfiles:141
+#: dh_builddeb:182 dh_clean:195 dh_compress:249 dh_dwz:169 dh_fixperms:170
+#: dh_gencontrol:214 dh_icons:81 dh_install:383 dh_installcatalogs:134
+#: dh_installchangelogs:371 dh_installcron:86 dh_installdeb:425
+#: dh_installdebconf:239 dh_installdirs:137 dh_installdocs:443
+#: dh_installemacsen:145 dh_installexamples:188 dh_installifupdown:78
+#: dh_installinfo:129 dh_installinitramfs:99 dh_installlogcheck:87
+#: dh_installlogrotate:59 dh_installman:426 dh_installmanpages:204
+#: dh_installmenu:96 dh_installmime:69 dh_installmodules:115 dh_installpam:77
+#: dh_installppp:74 dh_installudev:108 dh_installwm:136 dh_installxfonts:96
+#: dh_link:172 dh_lintian:68 dh_listpackages:40 dh_makeshlibs:462
+#: dh_md5sums:124 dh_movefiles:167 dh_perl:194 dh_prep:76 dh_shlibdeps:210
+#: dh_strip:441 dh_testdir:68 dh_testroot:99 dh_usrlocal:142
+msgid "AUTHOR"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:936 dh:880 dh_auto_build:61 dh_auto_clean:63
+#: dh_auto_configure:66 dh_auto_install:111 dh_auto_test:72 dh_builddeb:184
+#: dh_clean:197 dh_compress:251 dh_fixperms:172 dh_gencontrol:216
+#: dh_install:385 dh_installchangelogs:373 dh_installcron:88 dh_installdeb:427
+#: dh_installdebconf:241 dh_installdirs:139 dh_installdocs:445
+#: dh_installemacsen:147 dh_installexamples:190 dh_installifupdown:80
+#: dh_installinfo:131 dh_installinit:421 dh_installlogrotate:61
+#: dh_installman:428 dh_installmanpages:206 dh_installmenu:98 dh_installmime:71
+#: dh_installmodules:117 dh_installpam:79 dh_installppp:76 dh_installudev:110
+#: dh_installwm:138 dh_installxfonts:98 dh_link:174 dh_listpackages:42
+#: dh_makeshlibs:464 dh_md5sums:126 dh_movefiles:169 dh_prep:78
+#: dh_shlibdeps:212 dh_strip:443 dh_testdir:70 dh_testroot:101
+msgid "Joey Hess <joeyh@debian.org>"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:5
+msgid ""
+"debhelper-compat-upgrade-checklist - Upgrade checklist for supported "
+"debhelper compat levels"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:9
+msgid ""
+"This document is an upgrade checklist of all the supported debhelper compat "
+"levels. It also lists all the support debhelper compat levels."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:12
+msgid ""
+"Information about how to declare the compat level is in "
+"L<debhelper(7)/COMPATIBILITY LEVELS>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:14
+msgid ""
+"If you are upgrading from a (now) obsolete compat level, then please refer "
+"to L<debhelper-obsolete-compat(7)>."
+msgstr ""
+
+#. type: =head2
+#: debhelper-compat-upgrade-checklist.pod:19
+msgid "Upgrade checklist for supported compatibility levels"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:21
+msgid "These are the available compatibility levels:"
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:25
+msgid "v15"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:27
+#: debhelper-compat-upgrade-checklist.pod:51 strings-kept-translations.pod:9
+msgid "This compatibility level is still open for development; use with caution."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:29
+msgid "Changes from v14 are:"
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:33
+#: debhelper-compat-upgrade-checklist.pod:57
+#: debhelper-compat-upgrade-checklist.pod:63
+#: debhelper-compat-upgrade-checklist.pod:68
+#: debhelper-compat-upgrade-checklist.pod:74
+#: debhelper-compat-upgrade-checklist.pod:90
+#: debhelper-compat-upgrade-checklist.pod:95
+#: debhelper-compat-upgrade-checklist.pod:103
+#: debhelper-compat-upgrade-checklist.pod:110
+#: debhelper-compat-upgrade-checklist.pod:125
+#: debhelper-compat-upgrade-checklist.pod:133
+#: debhelper-compat-upgrade-checklist.pod:141
+#: debhelper-compat-upgrade-checklist.pod:150
+#: debhelper-compat-upgrade-checklist.pod:156
+#: debhelper-compat-upgrade-checklist.pod:166
+#: debhelper-compat-upgrade-checklist.pod:174
+#: debhelper-compat-upgrade-checklist.pod:180
+#: debhelper-compat-upgrade-checklist.pod:194
+#: debhelper-compat-upgrade-checklist.pod:205
+#: debhelper-compat-upgrade-checklist.pod:219
+#: debhelper-compat-upgrade-checklist.pod:230
+#: debhelper-compat-upgrade-checklist.pod:246
+#: debhelper-compat-upgrade-checklist.pod:256
+#: debhelper-compat-upgrade-checklist.pod:260
+#: debhelper-compat-upgrade-checklist.pod:265
+#: debhelper-compat-upgrade-checklist.pod:270
+#: debhelper-compat-upgrade-checklist.pod:277
+#: debhelper-compat-upgrade-checklist.pod:283
+#: debhelper-compat-upgrade-checklist.pod:291
+#: debhelper-compat-upgrade-checklist.pod:297
+#: debhelper-compat-upgrade-checklist.pod:301
+#: debhelper-compat-upgrade-checklist.pod:306
+#: debhelper-compat-upgrade-checklist.pod:311
+#: debhelper-compat-upgrade-checklist.pod:320
+#: debhelper-compat-upgrade-checklist.pod:336
+#: debhelper-compat-upgrade-checklist.pod:345
+#: debhelper-compat-upgrade-checklist.pod:361
+#: debhelper-compat-upgrade-checklist.pod:369
+#: debhelper-compat-upgrade-checklist.pod:374
+#: debhelper-compat-upgrade-checklist.pod:396
+#: debhelper-compat-upgrade-checklist.pod:402
+#: debhelper-compat-upgrade-checklist.pod:414
+#: debhelper-compat-upgrade-checklist.pod:422
+#: debhelper-compat-upgrade-checklist.pod:428
+#: debhelper-compat-upgrade-checklist.pod:433
+#: debhelper-compat-upgrade-checklist.pod:438
+#: debhelper-compat-upgrade-checklist.pod:443
+#: debhelper-compat-upgrade-checklist.pod:451
+#: debhelper-compat-upgrade-checklist.pod:461
+#: debhelper-compat-upgrade-checklist.pod:471
+#: debhelper-compat-upgrade-checklist.pod:478
+#: debhelper-compat-upgrade-checklist.pod:490
+#: debhelper-compat-upgrade-checklist.pod:495
+#: debhelper-compat-upgrade-checklist.pod:523
+#: debhelper-compat-upgrade-checklist.pod:540
+#: debhelper-compat-upgrade-checklist.pod:545
+#: debhelper-compat-upgrade-checklist.pod:551
+#: debhelper-compat-upgrade-checklist.pod:557
+#: debhelper-compat-upgrade-checklist.pod:562
+#: debhelper-compat-upgrade-checklist.pod:568
+#: debhelper-compat-upgrade-checklist.pod:577
+#: debhelper-compat-upgrade-checklist.pod:587
+#: debhelper-compat-upgrade-checklist.pod:593
+#: debhelper-compat-upgrade-checklist.pod:616
+#: debhelper-compat-upgrade-checklist.pod:623
+#: debhelper-compat-upgrade-checklist.pod:629
+#: debhelper-compat-upgrade-checklist.pod:635
+#: debhelper-compat-upgrade-checklist.pod:641
+#: debhelper-compat-upgrade-checklist.pod:661
+#: debhelper-compat-upgrade-checklist.pod:666
+#: debhelper-compat-upgrade-checklist.pod:673
+#: debhelper-compat-upgrade-checklist.pod:678
+#: debhelper-compat-upgrade-checklist.pod:683
+#: debhelper-compat-upgrade-checklist.pod:691
+#: debhelper-compat-upgrade-checklist.pod:697
+#: debhelper-compat-upgrade-checklist.pod:702
+#: debhelper-compat-upgrade-checklist.pod:707
+#: debhelper-compat-upgrade-checklist.pod:722
+#: debhelper-compat-upgrade-checklist.pod:726
+#: debhelper-compat-upgrade-checklist.pod:734
+#: debhelper-compat-upgrade-checklist.pod:739 debhelper-obsolete-compat.pod:29
+#: debhelper-obsolete-compat.pod:36 debhelper-obsolete-compat.pod:40
+#: debhelper-obsolete-compat.pod:44 debhelper-obsolete-compat.pod:57
+#: debhelper-obsolete-compat.pod:62 debhelper-obsolete-compat.pod:68
+#: debhelper-obsolete-compat.pod:74 debhelper-obsolete-compat.pod:89
+#: debhelper-obsolete-compat.pod:93 debhelper-obsolete-compat.pod:98
+#: debhelper-obsolete-compat.pod:102 debhelper-obsolete-compat.pod:114
+#: debhelper-obsolete-compat.pod:119 debhelper-obsolete-compat.pod:124
+#: debhelper-obsolete-compat.pod:129 debhelper-obsolete-compat.pod:143
+#: debhelper-obsolete-compat.pod:148 debhelper-obsolete-compat.pod:152
+#: dh_testroot:36 dh_testroot:41 dh_testroot:46
+msgid "-"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:35
+msgid ""
+"The B<dh_auto_install> tool no longer defaults to B<< "
+"--destdir=debian/I<package> >> for source packages only producing a single "
+"binary. If this behaviour is wanted, the package should explicitly activate "
+"the B<single-binary> dh addon (e.g., by adding B<dh-sequence-single-binary> "
+"to B<Build-Depends>) or pass B<--destdir> to B<dh_auto_install>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:41
+#: debhelper-compat-upgrade-checklist.pod:84
+msgid ""
+"The rationale for this change is to avoid \"surprises\" when adding a second "
+"binary package later. Previously, debhelper would silently change behaviour "
+"often resulting in empty binary packages being uploaded to the archive by "
+"mistake. With the new behaviour, the B<single-binary> addon will detect the "
+"mismatch and warn the maintainer of what is about to happen."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:49
+msgid "v14"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:53
+msgid "Changes from v13 are:"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:59
+msgid ""
+"The B<cmake> buildsystem now passes B<-DCMAKE_BUILD_RPATH_USE_ORIGIN=ON> to "
+"L<cmake(1)> to avoid some reproducibility issues."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:65
+msgid ""
+"The tool B<dh_installsysusers> is now included in the default sequence. This "
+"helper tool will process systemd sysusers files."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:70
+msgid ""
+"Use of the B<dh_gconf> command in override and hook targets now causes an "
+"error. The B<dh_gconf> command has been a no-op for years and was removed "
+"in debhelper 13.4."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:76
+msgid ""
+"The B<dh> sequencer will warn if the B<single-binary> addon is implicitly "
+"activated to warn maintainers of the pending compat 15 change in "
+"B<dh_auto_install>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:79
+msgid ""
+"Maintainers are urged to either explicitly activate the B<single-binary> "
+"addon to preserve the existing behaviour (e.g., by adding "
+"B<dh-sequence-single-binary> to Build-Depends), or explicitly passing "
+"B<--destdir> to B<dh_auto_install> if used and then passing B<--without "
+"single-binary> to B<dh> (the latter to silence the warning)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:92
+msgid ""
+"The B<dh_installalternatives> tool will now be run after B<dh_link> rather "
+"than after B<dh_installinitramfs> in the default B<dh> sequence."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:97
+msgid ""
+"The B<dh_installpam> tool will now install PAM configuration files under F<< "
+"/usr/lib/pam.d/I<package> >> instead of F<< /etc/pam.d/I<package> >>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:100
+msgid ""
+"Please consider using the \"rm_conffile\" feature from L<dh_installdeb(1)> "
+"to ensure the proper removal of previous PAM files."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:105
+msgid ""
+"The B<meson+ninja> and B<cmake> build systems now use B<meson install> and "
+"B<cmake --install>, respectively, instead of B<ninja install> and B<make "
+"install> in the L<dh_auto_install(1)> call. Any override of "
+"B<dh_auto_install> that passes extra parameters to the upstream build system "
+"should be reviewed."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:112
+msgid ""
+"The B<cmake> build system passes B<< -DBUILD_TESTING:BOOL=OFF >> to B<cmake> "
+"if B<DEB_BUILD_OPTIONS> contains B<nocheck> thus disabling CTest."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:117
+msgid "v13"
msgstr ""
#. type: textblock
-#: debhelper.pod:474
+#: debhelper-compat-upgrade-checklist.pod:119
msgid "This is the recommended mode of operation."
msgstr ""
#. type: textblock
-#: debhelper.pod:476
+#: debhelper-compat-upgrade-checklist.pod:121
+msgid "Changes from v12 are:"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:127
+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-compat-upgrade-checklist.pod:135
+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-compat-upgrade-checklist.pod:143
+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). If you need them for B<*-indep> targets, you can add an explicit "
+"Build-Depends on B<dh-sequence-elf-tools>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:152
+msgid ""
+"The third-party B<gradle> build system (from B<gradle-debian-helper> "
+"package) now runs the upstream-provided test suite automatically. To "
+"suppress such behavior, override B<dh_auto_test>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:158
+msgid ""
+"The B<dh_installman> tool now aborts if it sees conflicting definitions of a "
+"manpage. This typically happens if the upstream build system is installing "
+"a compressed version and the package lists an uncompressed version of the "
+"manpage in F<< debian/I<package>.manpages >>. Often the easiest fix is to "
+"remove the manpage from F<< debian/I<package>.manpages >> (assuming both "
+"versions are identical)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:168
+msgid ""
+"The B<dh_auto_*> helpers now reset the environment variables B<HOME> and "
+"common B<XDG_*> variable. Please see description of the environment "
+"variables in L</ENVIRONMENT> for how this is handled."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:172
+msgid "I<This feature changed between debhelper 13 and debhelper 13.2.>"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:176
+msgid ""
+"The B<dh> command will now error if an override or hook target for an "
+"obsolete command are present in F<debian/rules> "
+"(e.g. B<override_dh_systemd_enable:>)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:182
+msgid ""
+"The B<dh_missing> command will now default to B<--fail-missing>. This can "
+"be reverted to a non-fatal warning by explicitly passing B<--list-missing> "
+"like it was in compat 12."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:186
+msgid ""
+"If you do not want the warning either, please omit the call to "
+"B<dh_missing>. If you use the B<dh> command sequencer, then you can do this "
+"by inserting an empty override target in the F<debian/rules> file of the "
+"relevant package. As an example:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:191
+#, no-wrap
+msgid ""
+" # Disable dh_missing\n"
+" override_dh_missing:\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:196
+msgid ""
+"The B<dh> command sequencer now runs B<dh_installtmpfiles> in the default "
+"sequence. The B<dh_installtmpfiles> takes over handling of tmpfiles.d "
+"configuration files. Related functionality in B<dh_installsystemd> is now "
+"disabled."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:201
+msgid ""
+"Note that B<dh_installtmpfiles> responds to F<< debian/I<package>.tmpfiles "
+">> where B<dh_installsystemd> used a name without the trailing \"s\"."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:207
+msgid ""
+"Many B<dh_*> tools now support limited variable expansion via the B<${foo}> "
+"syntax. In many cases, this can be used to reference paths that contain "
+"either spaces or L<dpkg-architecture(1)> values. While this can reduce the "
+"need for L<dh-exec(1)> in some cases, it is B<not> a replacement "
+"L<dh-exec(1)> in general. If you need filtering, renaming, etc., the "
+"package will still need L<dh-exec(1)>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:214
+msgid ""
+"Please see L</Substitutions in debhelper config files> for syntax and "
+"available substitution variables. To B<dh_*> tool writers, substitution "
+"expansion occurs as a part of the B<filearray> and B<filedoublearray> "
+"functions."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:221
+msgid ""
+"The B<dh> command sequencer will now skip all hook and override targets for "
+"B<dh_auto_test>, B<dh_dwz> and B<dh_strip> when B<DEB_BUILD_OPTIONS> lists "
+"the relevant B<nocheck> / B<nostrip> options."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:225
+msgid ""
+"Any package relying on these targets to always be run should instead move "
+"relevant logic out of those targets. E.g. non-test related packaging code "
+"from B<override_dh_auto_test> would have to be moved to "
+"B<execute_after_dh_auto_build> or B<execute_before_dh_auto_install>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:232
+msgid ""
+"The B<cmake> buildsystem now passes "
+"B<-DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON> to L<cmake(1)> to speed up "
+"automatic installation process. If for some reason you need previous "
+"behavior, override the flag:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:236
+#, no-wrap
+msgid ""
+" dh_auto_configure -- -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=OFF ...\n"
+"\n"
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:240
+msgid "v12"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:242
+msgid "Changes from v11 are:"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:248
+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>) "
+"is now the default."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:252
+msgid ""
+"If an unversioned dependency in the shlibs file is wanted, this can be "
+"obtained by passing B<-VNone> instead. However, please see "
+"L<dh_makeshlibs(1)> for the caveat of unversioned dependencies."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:258
+msgid ""
+"The B<-s> (B<--same-arch>) option is removed. Please use B<-a> (B<--arch>) "
+"instead."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:262
+msgid ""
+"Invoking B<dh_clean -k> now causes an error instead of a deprecation "
+"warning."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:267
+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-compat-upgrade-checklist.pod:272
+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 "
+"circumstance. This bug is now removed and will cause helpers that rely on "
+"the bug to fail with a \"command not found\"-error."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:279
+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 "
+"also see the files installed by other helpers."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:285
+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 "
+"upstart configuration file. The error is there to remind the package "
+"maintainer to ensure the proper removal of the conffiles shipped in previous "
+"versions of the package (if any)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:293
+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 be invalid."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:299
+msgid "The B<dh_missing> tool will now default to B<--list-missing>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:303
+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-compat-upgrade-checklist.pod:308
+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-compat-upgrade-checklist.pod:313
+msgid ""
+"The standard sequence in B<dh> now includes B<dh_dwz> and "
+"B<dh_installinitramfs> by default. This makes the B<dwz> and "
+"B<installinitramfs> sequences obsolete and they will now fail with an "
+"error. If you want to skip these commands, then please insert an empty "
+"override target for them in F<debian/rules> (e.g. I<override_dh_dwz:>)"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:322
+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 "
+"should be B</usr/libexec> (per FHS 3.0, adopted in Debian Policy 4.1.5)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:327
+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. "
+"via the following example:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:331
+#, no-wrap
+msgid ""
+" override_dh_auto_configure:\n"
+" \tdh_auto_configure -- --libexecdir=/usr/libexec\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:334
+msgid "Note the B<--> before the B<--libexecdir> parameter."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:338
+msgid "B<Retroactively removed in debhelper/13.5>:"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:340
+msgid ""
+"The B<dh_installdeb> tool would no longer installs the maintainer provided "
+"F<conffiles> file as it was deemed unnecessary. However, the "
+"B<remove-on-upgrade> from dpkg/1.20 made the file relevant again and "
+"B<dh_installdeb> now installs it again in compat levels 12+."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:347
+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-compat-upgrade-checklist.pod:352
+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-compat-upgrade-checklist.pod:356
+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-compat-upgrade-checklist.pod:363
+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-compat-upgrade-checklist.pod:371
+msgid ""
+"B<dh_installsystemduser> is now included in the B<dh> standard sequence by "
+"default."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:376
+msgid ""
+"The B<python-distutils> buildsystem is now removed. Please use the "
+"third-party build system B<pybuild> instead."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:381
+msgid "v11"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:383
+msgid "This mode is discouraged."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:385
+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-compat-upgrade-checklist.pod:392
+msgid "Changes from v10 are:"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:398
+msgid ""
+"B<dh_installinit> no longer installs F<service> or F<tmpfile> files, nor "
+"generates maintainer scripts for those files. Please use the new "
+"B<dh_installsystemd> helper."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:404
+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> "
+"sequence for B<dh> has also been removed. If you need to disable the "
+"B<dh_installsystemd> helper tool, please use an empty override target."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:410
+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-compat-upgrade-checklist.pod:416
+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-compat-upgrade-checklist.pod:420
+msgid "The vast majority of all packages will be unaffected by this change."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:424
+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."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:430
+msgid ""
+"The B<autoconf> buildsystem now passes B<--runstatedir=/run> to "
+"F<./configure>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:435
+msgid ""
+"The B<cmake> buildsystem now passes B<-DCMAKE_INSTALL_RUNSTATEDIR=/run> to "
+"L<cmake(1)>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:440
+msgid ""
+"B<dh_installman> will now prefer detecting the language from the path name "
+"rather than the extension."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:445
+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. "
+"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-compat-upgrade-checklist.pod:453
+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 "
+"match anything or reference a path that does not exist."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:457
+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 "
+"specify documentation."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:463
+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 "
+"as B<dh_install>. Furthermore, they now also fall back to F<debian/tmp> like "
+"B<dh_install>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:468
+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-compat-upgrade-checklist.pod:473
+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 "
+"the B<PERL5LIB> environment variable. E.g. by adding B<export PERL5LIB=.> "
+"in their debian/rules file (or similar)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:480
+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 "
+"avoid a lot of packages failing to build at the same time."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:485
+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 "
+"drops support for it, then this variable will be removed retroactively from "
+"existing compat levels as well."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:492
+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-compat-upgrade-checklist.pod:497
+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 "
+"recommendation from Debian policy §12.3 (since version 3.9.7)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:501
+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 "
+"change is not relevant for that source package and you can skip to the next "
+"change."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:506
+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<-doc> package. If they find such a I<doc-main-package>, they will now "
+"install the documentation into the path F<< "
+"/usr/share/doc/I<doc-main-package> >> in the given doc package. I.e. the "
+"path can change but the documentation is still shipped in the I<-doc> "
+"package."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:514
+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 "
+"to diverge from Debian policy recommendation."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:518
+msgid ""
+"Some documentation will not be affected by this change. These exceptions "
+"include the copyright file, changelog files, README.Debian, etc. These "
+"files will still be installed in the path F<< /usr/share/doc/I<package> >>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:525
+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 "
+"for an ELF header to determine if a given file is an shared object or an ELF "
+"executable."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:530
+msgid "This change may cause the tools to process more files than previously."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:534
+msgid "v10"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:536
+msgid "Changes from v9 are:"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:542
+msgid ""
+"B<dh_installinit> will no longer installs a file named debian/I<package> as "
+"an init script."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:547
+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 "
+"binNMUs."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:553
+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-compat-upgrade-checklist.pod:559
+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-compat-upgrade-checklist.pod:564
+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 ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:570
+msgid ""
+"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."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:574
+msgid ""
+"B<Retroactively applied to earlier compat levels>: B<dh> no longer accepts "
+"any of these since debhelper/12.4."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:579
+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 "
+"the \"build\" sequence and skip it if it did."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:583
+msgid "The main effects of this are:"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:589
+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 "
+"full \"clean and rebuild\" cycle)"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:595
+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 "
+"happens in the same override target everything will work as before."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:600
+msgid "Example of where it can go wrong:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:602
+#, no-wrap
+msgid ""
+" override_dh_foo:\n"
+" dh_foo -pmy-pkg\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:605
+#, no-wrap
+msgid ""
+" override_dh_bar:\n"
+" dh_bar\n"
+" dh_foo --remaining\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:609
+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 issue is not limited to B<--remaining>, but also includes B<-a>, B<-i>, "
+"etc."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:618
+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 "
+"work properly and packages have begun to rely on the incomplete shell "
+"escaping (e.g. quoting file names)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:625
+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-upgrade>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:631
+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-compat-upgrade-checklist.pod:637
+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-compat-upgrade-checklist.pod:643
+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-compat-upgrade-checklist.pod:648
+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-compat-upgrade-checklist.pod:655
+msgid "v9"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:657
msgid "Changes from v8 are:"
msgstr ""
#. type: textblock
-#: debhelper.pod:482
+#: debhelper-compat-upgrade-checklist.pod:663
msgid ""
"Multiarch support. In particular, B<dh_auto_configure> passes multiarch "
"directories to autoconf in --libdir and --libexecdir."
msgstr ""
#. type: textblock
-#: debhelper.pod:487
+#: debhelper-compat-upgrade-checklist.pod:668
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 "
@@ -867,380 +2947,406 @@ msgid ""
msgstr ""
#. type: textblock
-#: debhelper.pod:494
+#: debhelper-compat-upgrade-checklist.pod:675
msgid ""
"B<dh_strip> compresses debugging symbol files to reduce the installed size "
"of -dbg packages."
msgstr ""
#. type: textblock
-#: debhelper.pod:499
+#: debhelper-compat-upgrade-checklist.pod:680
msgid ""
"B<dh_auto_configure> does not include the source package name in "
"--libexecdir when using autoconf."
msgstr ""
#. type: textblock
-#: debhelper.pod:504
+#: debhelper-compat-upgrade-checklist.pod:685
msgid "B<dh> does not default to enabling --with=python-support"
msgstr ""
#. type: textblock
-#: debhelper.pod:508
+#: debhelper-compat-upgrade-checklist.pod:687
+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 "
+"regardless of compat level)"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:693
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:514
+#: debhelper-compat-upgrade-checklist.pod:699
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:519
+#: debhelper-compat-upgrade-checklist.pod:704
msgid ""
"B<dh_strip> puts separated debug symbols in a location based on their "
"build-id."
msgstr ""
#. type: textblock
-#: debhelper.pod:524
+#: debhelper-compat-upgrade-checklist.pod:709
msgid ""
"Executable debhelper config files are run and their output used as the "
"configuration."
msgstr ""
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:714
+#: debhelper-compat-upgrade-checklist.pod:745
+#: debhelper-compat-upgrade-checklist.pod:749 debhelper-obsolete-compat.pod:81
+#: debhelper-obsolete-compat.pod:135 debhelper-obsolete-compat.pod:158
+#: debhelper-obsolete-compat.pod:165 debhelper-obsolete-compat.pod:174
+msgid "This mode is deprecated."
+msgstr ""
+
#. type: =item
-#: debhelper.pod:529
-msgid "v10"
+#: debhelper-compat-upgrade-checklist.pod:716
+msgid "v8"
msgstr ""
#. type: textblock
-#: debhelper.pod:531
-msgid "This compatibility level is still open for development; use with caution."
+#: debhelper-compat-upgrade-checklist.pod:718
+msgid "Changes from v7 are:"
msgstr ""
#. type: textblock
-#: debhelper.pod:533
-msgid "Changes from v9 are:"
+#: debhelper-compat-upgrade-checklist.pod:724
+msgid "Commands will fail rather than warning when they are passed unknown options."
msgstr ""
#. type: textblock
-#: debhelper.pod:537
+#: debhelper-compat-upgrade-checklist.pod:728
msgid ""
-"B<dh_installinit> will no longer install a file named debian/I<package> as "
-"an init script."
+"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. "
+"Also, libraries in unusual locations that B<dpkg-gensymbols> would not have "
+"processed before will be passed to it, a behavior change that can cause some "
+"packages to fail to build."
msgstr ""
#. type: textblock
-#: debhelper.pod:544
+#: debhelper-compat-upgrade-checklist.pod:736
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."
+"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 "
+"$@>\"."
msgstr ""
-#. type: =head1
-#: debhelper.pod:553 dh_auto_test:45 dh_installcatalogs:59 dh_installdocs:121 dh_installemacsen:72 dh_installexamples:53 dh_installinit:140 dh_installman:82 dh_installmodules:54 dh_installudev:55 dh_installwm:54 dh_installxfonts:37 dh_movefiles:64 dh_strip:68 dh_usrlocal:49
-msgid "NOTES"
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:741
+msgid ""
+"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
+"F<Makefile.PL>."
msgstr ""
-#. type: =head2
-#: debhelper.pod:555
-msgid "Multiple binary package support"
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:747 debhelper-obsolete-compat.pod:21
+msgid "v7"
msgstr ""
#. type: textblock
-#: debhelper.pod:557
-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 "
-"source package happens to generate one architecture dependent package, and "
-"another architecture independent package, this is not the correct behavior, "
-"because you need to generate the architecture dependent packages in the "
-"binary-arch F<debian/rules> target, and the architecture independent "
-"packages in the binary-indep F<debian/rules> target."
+#: debhelper-compat-upgrade-checklist.pod:751 debhelper-obsolete-compat.pod:23
+msgid "This is the lowest supported compatibility level."
msgstr ""
#. type: textblock
-#: debhelper.pod:565
+#: debhelper-compat-upgrade-checklist.pod:753
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<-i>, B<-p>, and B<-s> parameters. These parameters are cumulative. If "
-"none are given, debhelper programs default to acting on all packages listed "
-"in the control file, with the exceptions below."
+"If you are upgrading from an earlier compatibility level, please review "
+"L<debhelper-obsolete-compat(7)>."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:762
+msgid "L<debhelper-obsolete-compat(7)>"
msgstr ""
#. type: textblock
-#: debhelper.pod:571
+#: debhelper-compat-upgrade-checklist.pod:764
msgid ""
-"First, any package whose B<Architecture> field in B<debian/control> does not "
-"match the build architecture will be excluded (L<Debian Policy, section "
-"5.6.8>)."
+"Upgrading from a (now) obsolete compatibility level? This document covers "
+"the upgrade checklist up to the earliest supported level."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:767 debhelper-obsolete-compat.pod:180
+#: dh:874 dh_auto_build:55 dh_auto_clean:57 dh_auto_configure:60
+#: dh_auto_install:105 dh_auto_test:66 dh_builddeb:178 dh_clean:191
+#: dh_compress:245 dh_dwz:165 dh_fixperms:166 dh_gencontrol:210 dh_install:379
+#: dh_installcatalogs:130 dh_installchangelogs:367 dh_installcron:82
+#: dh_installdeb:421 dh_installdebconf:235 dh_installdirs:133
+#: dh_installdocs:439 dh_installexamples:184 dh_installifupdown:74
+#: dh_installinfo:125 dh_installlogcheck:83 dh_installlogrotate:55
+#: dh_installman:422 dh_installmanpages:200 dh_installmime:65
+#: dh_installmodules:111 dh_installpam:73 dh_installppp:70 dh_installudev:104
+#: dh_installwm:132 dh_installxfonts:92 dh_link:168 dh_listpackages:36
+#: dh_makeshlibs:458 dh_md5sums:120 dh_movefiles:163 dh_perl:190 dh_prep:72
+#: dh_strip:437 dh_testdir:64 dh_testroot:95 dh_usrlocal:138
+#: dh_systemd_start:282
+msgid "L<debhelper(7)>"
msgstr ""
#. type: textblock
-#: debhelper.pod:575
+#: debhelper-compat-upgrade-checklist.pod:769
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 "
-"binary package stanzas in B<debian/control>, according to the draft policy "
-"at L<https://wiki.debian.org/BuildProfileSpec>."
+"General information about the debhelper framework. This document also covers "
+"how to declare your chosen debhelper compat level."
msgstr ""
-#. type: =head2
-#: debhelper.pod:580
-msgid "Automatic generation of Debian install scripts"
+#. type: =head1
+#: debhelper-compat-upgrade-checklist.pod:774 debhelper-obsolete-compat.pod:182
+#: dh_installinit:419 dh_systemd_enable:284 dh_systemd_start:284
+msgid "AUTHORS"
msgstr ""
#. type: textblock
-#: debhelper.pod:582
-msgid ""
-"Some debhelper commands will automatically generate parts of Debian "
-"maintainer scripts. If you want these automatically generated things "
-"included in your existing Debian maintainer scripts, then you need to add "
-"B<#DEBHELPER#> to your scripts, in the place the code should be added. "
-"B<#DEBHELPER#> will be replaced by any auto-generated code when you run "
-"B<dh_installdeb>."
+#: debhelper-compat-upgrade-checklist.pod:776 debhelper-obsolete-compat.pod:184
+#: dh_dwz:171 dh_installinitramfs:101
+msgid "Niels Thykier <niels@thykier.net>"
msgstr ""
#. type: textblock
-#: debhelper.pod:589
-msgid ""
-"If a script does not exist at all and debhelper needs to add something to "
-"it, then debhelper will create the complete script."
+#: debhelper-compat-upgrade-checklist.pod:778 debhelper-obsolete-compat.pod:186
+msgid "Joey Hess"
msgstr ""
#. type: textblock
-#: debhelper.pod:592
-msgid ""
-"All debhelper commands that automatically generate code in this way let it "
-"be disabled by the -n parameter (see above)."
+#: debhelper-obsolete-compat.pod:3
+msgid "debhelper-obsolete-compat - List of no longer supported compat levels"
msgstr ""
#. type: textblock
-#: debhelper.pod:595
+#: debhelper-obsolete-compat.pod:7
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 "
-"is one way to do that (note that I made sure that $1, $2, etc are set with "
-"the set command):"
+"This document contains the upgrade guidelines from all compat levels which "
+"are no longer supported. Accordingly it is mostly for historical purposes "
+"and to assist people upgrading from a non-supported compat level to a "
+"supported level."
msgstr ""
-#. type: verbatim
-#: debhelper.pod:600
-#, no-wrap
-msgid ""
-" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
-" #DEBHELPER#\n"
-" EOF\n"
-" system ($temp) / 256 == 0\n"
-" \tor die \"Problem with debhelper scripts: $!\";\n"
-"\n"
+#. type: textblock
+#: debhelper-obsolete-compat.pod:12
+msgid "For upgrades from supported compat levels, please see L<debhelper(7)>."
msgstr ""
-#. type: =head2
-#: debhelper.pod:606
-msgid "Automatic generation of miscellaneous dependencies."
+#. type: =head1
+#: debhelper-obsolete-compat.pod:14
+msgid "UPGRADE LIST FOR COMPAT LEVELS"
msgstr ""
#. type: textblock
-#: debhelper.pod:608
-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 "
-"package will generally need to depend on debconf. Or if you use "
-"L<dh_installxfonts(1)>, your package will generally need to depend on a "
-"particular version of xutils. Keeping track of these miscellaneous "
-"dependencies can be annoying since they are dependent on how debhelper does "
-"things, so debhelper offers a way to automate it."
+#: debhelper-obsolete-compat.pod:16
+msgid "The following is the list of now obsolete compat levels and their changes."
msgstr ""
#. type: textblock
-#: debhelper.pod:616
-msgid ""
-"All commands of this type, besides documenting what dependencies may be "
-"needed on their man pages, will automatically generate a substvar called "
-"B<${misc:Depends}>. If you put that token into your F<debian/control> file, "
-"it will be expanded to the dependencies debhelper figures you need."
+#: debhelper-obsolete-compat.pod:25
+msgid "Changes from v6 are:"
msgstr ""
#. type: textblock
-#: debhelper.pod:621
+#: debhelper-obsolete-compat.pod:31
msgid ""
-"This is entirely independent of the standard B<${shlibs:Depends}> generated "
-"by L<dh_makeshlibs(1)>, and the B<${perl:Depends}> generated by "
-"L<dh_perl(1)>. You can choose not to use any of these, if debhelper's "
-"guesses don't match reality."
+"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 "
+"using B<--sourcedir>). This allows B<dh_install> to interoperate with "
+"B<dh_auto_install>, which installs to F<debian/tmp>, without needing any "
+"special parameters."
msgstr ""
-#. type: =head2
-#: debhelper.pod:626
-msgid "Package build directories"
+#. type: textblock
+#: debhelper-obsolete-compat.pod:38
+msgid "B<dh_clean> will read F<debian/clean> and delete files listed there."
msgstr ""
#. type: textblock
-#: debhelper.pod:628
-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>."
+#: debhelper-obsolete-compat.pod:42
+msgid "B<dh_clean> will delete toplevel F<*-stamp> files."
msgstr ""
#. type: textblock
-#: debhelper.pod:631
+#: debhelper-obsolete-compat.pod:46
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>\", will use B<debian/tmp> as the temporary directory. Note "
-"that if you use B<-P>, the debhelper programs can only be acting on a single "
-"package at a time. So if you have a package that builds many binary "
-"packages, you will need to also use the B<-p> flag to specify which binary "
-"package the debhelper program will act on."
+"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
+"none is specified."
msgstr ""
-#. type: =head2
-#: debhelper.pod:639
-msgid "udebs"
+#. type: =item
+#: debhelper-obsolete-compat.pod:51
+msgid "v6"
msgstr ""
#. type: textblock
-#: debhelper.pod:641
-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>. "
-"Debhelper will try to create udebs that comply with debian-installer policy, "
-"by making the generated package files end in F<.udeb>, not installing any "
-"documentation into a udeb, skipping over F<preinst>, F<postrm>, F<prerm>, "
-"and F<config> scripts, etc."
-msgstr ""
-
-#. type: =head1
-#: debhelper.pod:648
-msgid "ENVIRONMENT"
+#: debhelper-obsolete-compat.pod:53
+msgid "Changes from v5 are:"
msgstr ""
-#. type: =item
-#: debhelper.pod:652
-msgid "B<DH_VERBOSE>"
+#. type: textblock
+#: debhelper-obsolete-compat.pod:59
+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:654
+#: debhelper-obsolete-compat.pod:64
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."
+"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 directory."
msgstr ""
-#. type: =item
-#: debhelper.pod:657
-msgid "B<DH_COMPAT>"
+#. type: textblock
+#: debhelper-obsolete-compat.pod:70
+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 ""
#. type: textblock
-#: debhelper.pod:659
+#: debhelper-obsolete-compat.pod:76
msgid ""
-"Temporarily specifies what compatibility level debhelper should run at, "
-"overriding any value in F<debian/compat>."
+"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:662
-msgid "B<DH_NO_ACT>"
+#: debhelper-obsolete-compat.pod:83
+msgid "v5"
msgstr ""
#. type: textblock
-#: debhelper.pod:664
-msgid "Set to B<1> to enable no-act mode."
+#: debhelper-obsolete-compat.pod:85
+msgid "Changes from v4 are:"
msgstr ""
-#. type: =item
-#: debhelper.pod:666
-msgid "B<DH_OPTIONS>"
+#. type: textblock
+#: debhelper-obsolete-compat.pod:91
+msgid "Comments are ignored in debhelper config files."
msgstr ""
#. type: textblock
-#: debhelper.pod:668
+#: debhelper-obsolete-compat.pod:95
msgid ""
-"Anything in this variable will be prepended to the command line arguments of "
-"all debhelper commands."
+"B<dh_strip --dbg-package> now specifies the name of a package to put "
+"debugging symbols in, not the packages to take the symbols from."
msgstr ""
#. type: textblock
-#: debhelper.pod:671
-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."
+#: debhelper-obsolete-compat.pod:100
+msgid "B<dh_installdocs> skips installing empty files."
+msgstr ""
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:104
+msgid "B<dh_install> errors out if wildcards expand to nothing."
msgstr ""
#. type: =item
-#: debhelper.pod:674
-msgid "B<DH_ALWAYS_EXCLUDE>"
+#: debhelper-obsolete-compat.pod:108
+msgid "v4"
msgstr ""
#. type: textblock
-#: debhelper.pod:676
+#: debhelper-obsolete-compat.pod:110
+msgid "Changes from v3 are:"
+msgstr ""
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:116
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 "
-"B<rm -rf> anything that matches the value in your package build tree."
+"B<dh_makeshlibs -V> will not include the Debian part of the version number "
+"in the generated dependency line in the shlibs file."
msgstr ""
#. type: textblock
-#: debhelper.pod:680
+#: debhelper-obsolete-compat.pod:121
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 "
-"sneaking into the package you build. Or, if a package has a source tarball "
-"that (unwisely) includes CVS directories, you might want to export "
-"B<DH_ALWAYS_EXCLUDE=CVS> in F<debian/rules>, to make it take effect wherever "
-"your package is built."
+"You are encouraged to put the new B<${misc:Depends}> into F<debian/control> "
+"to supplement the B<${shlibs:Depends}> field."
msgstr ""
#. type: textblock
-#: debhelper.pod:687
+#: debhelper-obsolete-compat.pod:126
msgid ""
-"Multiple things to exclude can be separated with colons, as in "
-"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
+"B<dh_fixperms> will make all files in F<bin/> directories and in "
+"F<etc/init.d> executable."
msgstr ""
-#. type: =head1
-#: debhelper.pod:692 dh:972 dh_auto_build:47 dh_auto_clean:50 dh_auto_configure:52 dh_auto_install:92 dh_auto_test:63 dh_bugfiles:124 dh_builddeb:124 dh_clean:147 dh_compress:210 dh_desktop:31 dh_fixperms:131 dh_gconf:101 dh_gencontrol:78 dh_icons:71 dh_install:260 dh_installcatalogs:122 dh_installchangelogs:241 dh_installcron:79 dh_installdeb:142 dh_installdebconf:128 dh_installdirs:88 dh_installdocs:337 dh_installemacsen:141 dh_installexamples:108 dh_installifupdown:71 dh_installinfo:77 dh_installinit:324 dh_installlogcheck:80 dh_installlogrotate:52 dh_installman:263 dh_installmanpages:197 dh_installmenu:89 dh_installmime:63 dh_installmodules:115 dh_installpam:61 dh_installppp:67 dh_installudev:117 dh_installwm:110 dh_installxfonts:89 dh_link:228 dh_lintian:59 dh_listpackages:30 dh_makeshlibs:264 dh_md5sums:90 dh_movefiles:170 dh_perl:152 dh_prep:60 dh_scrollkeeper:28 dh_shlibdeps:152 dh_strip:242 dh_suidregister:117 dh_testdir:53 dh_testroot:27 dh_undocumented:28 dh_usrlocal:116
-msgid "SEE ALSO"
+#. type: textblock
+#: debhelper-obsolete-compat.pod:131
+msgid "B<dh_link> will correct existing links to conform with policy."
msgstr ""
#. type: =item
-#: debhelper.pod:696
-msgid "F</usr/share/doc/debhelper/examples/>"
+#: debhelper-obsolete-compat.pod:137
+msgid "v3"
msgstr ""
#. type: textblock
-#: debhelper.pod:698
-msgid "A set of example F<debian/rules> files that use debhelper."
+#: debhelper-obsolete-compat.pod:139
+msgid "This mode works like v2, with the following additions:"
+msgstr ""
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:145
+msgid ""
+"Debhelper config files support globbing via B<*> and B<?>, when "
+"appropriate. To turn this off and use those characters raw, just prefix with "
+"a backslash."
+msgstr ""
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:150
+msgid ""
+"B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call "
+"B<ldconfig>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:154
+msgid ""
+"Every file in F<etc/> is automatically flagged as a conffile by "
+"B<dh_installdeb>."
msgstr ""
#. type: =item
-#: debhelper.pod:700
-msgid "L<http://joeyh.name/code/debhelper/>"
+#: debhelper-obsolete-compat.pod:160
+msgid "v2"
msgstr ""
#. type: textblock
-#: debhelper.pod:702
-msgid "Debhelper web site."
+#: debhelper-obsolete-compat.pod:162
+msgid ""
+"In this mode, debhelper will consistently use debian/I<package> as the "
+"package tree directory for every package that is built."
msgstr ""
-#. type: =head1
-#: debhelper.pod:706 dh:978 dh_auto_build:53 dh_auto_clean:56 dh_auto_configure:58 dh_auto_install:98 dh_auto_test:69 dh_bugfiles:132 dh_builddeb:130 dh_clean:153 dh_compress:216 dh_desktop:37 dh_fixperms:137 dh_gconf:107 dh_gencontrol:84 dh_icons:77 dh_install:266 dh_installcatalogs:128 dh_installchangelogs:247 dh_installcron:85 dh_installdeb:148 dh_installdebconf:134 dh_installdirs:94 dh_installdocs:343 dh_installemacsen:148 dh_installexamples:114 dh_installifupdown:77 dh_installinfo:83 dh_installlogcheck:86 dh_installlogrotate:58 dh_installman:269 dh_installmanpages:203 dh_installmenu:97 dh_installmime:69 dh_installmodules:121 dh_installpam:67 dh_installppp:73 dh_installudev:123 dh_installwm:116 dh_installxfonts:95 dh_link:234 dh_lintian:67 dh_listpackages:36 dh_makeshlibs:270 dh_md5sums:96 dh_movefiles:176 dh_perl:158 dh_prep:66 dh_scrollkeeper:34 dh_shlibdeps:158 dh_strip:248 dh_suidregister:123 dh_testdir:59 dh_testroot:33 dh_undocumented:34 dh_usrlocal:122
-msgid "AUTHOR"
+#. type: =item
+#: debhelper-obsolete-compat.pod:167
+msgid "v1"
msgstr ""
#. type: textblock
-#: debhelper.pod:708 dh:980 dh_auto_build:55 dh_auto_clean:58 dh_auto_configure:60 dh_auto_install:100 dh_auto_test:71 dh_builddeb:132 dh_clean:155 dh_compress:218 dh_fixperms:139 dh_gencontrol:86 dh_install:268 dh_installchangelogs:249 dh_installcron:87 dh_installdeb:150 dh_installdebconf:136 dh_installdirs:96 dh_installdocs:345 dh_installemacsen:150 dh_installexamples:116 dh_installifupdown:79 dh_installinfo:85 dh_installinit:332 dh_installlogrotate:60 dh_installman:271 dh_installmanpages:205 dh_installmenu:99 dh_installmime:71 dh_installmodules:123 dh_installpam:69 dh_installppp:75 dh_installudev:125 dh_installwm:118 dh_installxfonts:97 dh_link:236 dh_listpackages:38 dh_makeshlibs:272 dh_md5sums:98 dh_movefiles:178 dh_prep:68 dh_shlibdeps:160 dh_strip:250 dh_suidregister:125 dh_testdir:61 dh_testroot:35 dh_undocumented:36
-msgid "Joey Hess <joeyh@debian.org>"
+#: debhelper-obsolete-compat.pod:169
+msgid ""
+"This is the original debhelper compatibility level, and so it is the default "
+"one. In this mode, debhelper will use F<debian/tmp> as the package tree "
+"directory for the first binary package listed in the control file, while "
+"using debian/I<package> for all other packages listed in the F<control> "
+"file."
msgstr ""
#. type: textblock
@@ -1249,14 +3355,14 @@ msgid "dh - debhelper command sequencer"
msgstr ""
#. type: textblock
-#: dh:14
+#: dh:24
msgid ""
"B<dh> I<sequence> [B<--with> I<addon>[B<,>I<addon> ...]] [B<--list>] "
"[S<I<debhelper options>>]"
msgstr ""
#. type: textblock
-#: dh:18
+#: dh:28
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>, "
@@ -1265,19 +3371,56 @@ msgid ""
msgstr ""
#. type: =head1
-#: dh:23
-msgid "OVERRIDE TARGETS"
+#: dh:33
+msgid "OVERRIDE AND HOOK TARGETS"
msgstr ""
#. type: textblock
-#: dh:25
+#: dh:35
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."
+"any step in a sequence, by defining an override target. It is also possible "
+"to inject a command before or after any step without affecting the step "
+"itself."
+msgstr ""
+
+#. type: =head2
+#: dh:40
+msgid "Injecting commands before or after a step"
msgstr ""
#. type: textblock
-#: dh:28
+#: dh:42
+msgid ""
+"I<Note>: This feature requires debhelper 12.8 or later plus the package must "
+"use compatibility mode 10 or later."
+msgstr ""
+
+#. type: textblock
+#: dh:45
+msgid ""
+"To inject commands before I<dh_command>, add a target named "
+"B<execute_before_>I<dh_command> to the rules files. Similarly, if you want "
+"to inject commands after I<dh_command>, add the target "
+"B<execute_after_>I<dh_command>. Both targets can be used for the same "
+"I<dh_command> and also even if the command is overridden (as described in "
+"L</Overriding a command> below)."
+msgstr ""
+
+#. type: textblock
+#: dh:52
+msgid ""
+"When these targets are defined, B<dh> will call the targets respectively "
+"before or after it would invoke I<dh_command> (or its override target)."
+msgstr ""
+
+#. type: =head2
+#: dh:55
+msgid "Overriding a command"
+msgstr ""
+
+#. type: textblock
+#: dh:57
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 "
@@ -1286,28 +3429,370 @@ msgid ""
"below."
msgstr ""
+#. type: =head2
+#: dh:63
+msgid "Architecture dependent/independent override and hook targets"
+msgstr ""
+
+#. type: textblock
+#: dh:65
+msgid ""
+"The override and hook targets can also be defined to run only when building "
+"architecture dependent or architecture independent packages. Use targets "
+"with names like B<override_>I<dh_command>B<-arch> and "
+"B<execute_after_>I<dh_command>B<-indep>."
+msgstr ""
+
+#. type: textblock
+#: dh:70
+msgid ""
+"This feature is available since debhelper 8.9.7 (for override targets) and "
+"12.8 (for hook targets)."
+msgstr ""
+
+#. type: =head2
+#: dh:73
+msgid "Completely empty targets"
+msgstr ""
+
+#. type: textblock
+#: dh:75
+msgid ""
+"As a special optimization, B<dh> will skip a target if it is completely "
+"empty and does not depend on any other target. This is mostly useful for "
+"override targets, where the command will simply be skipped without the "
+"overhead of invoking a dummy target."
+msgstr ""
+
+#. type: textblock
+#: dh:80
+msgid "Note that the target has to be completely empty for this to work:"
+msgstr ""
+
+#. type: verbatim
+#: dh:82
+#, no-wrap
+msgid ""
+" # Skip dh_bar - the good and optimized way\n"
+" # Some rationale for skipping dh_bar goes here\n"
+" override_dh_bar:\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:87
+#, no-wrap
+msgid ""
+" # Skip dh_foo - the slow way\n"
+" override_dh_foo:\n"
+" # Some rationale for skipping dh_foo goes here\n"
+" # (these comments causes a dummy target to be run)\n"
+"\n"
+msgstr ""
+
+#. type: =head2
+#: dh:92
+msgid "Verifying targets are picked up by dh"
+msgstr ""
+
+#. type: textblock
+#: dh:94
+msgid ""
+"As of debhelper 13.10, you can use L<dh_assistant(1)> to see which override "
+"and hook targets will be seen by B<dh>. Here is an example run of "
+"L<dh_assistant(1)> along with its output:"
+msgstr ""
+
+#. type: verbatim
+#: dh:98
+#, no-wrap
+msgid ""
+" $ dh_assistant detect-hook-targets\n"
+" {\n"
+" \"commands-not-in-path\": [\n"
+" \"dh_foo\"\n"
+" ],\n"
+" \"hook-targets\": [\n"
+" {\n"
+" \"command\": \"dh_strip_nondeterminism\",\n"
+" \"is-empty\": true,\n"
+" \"package-section-param\": null,\n"
+" \"target-name\": \"override_dh_strip_nondeterminism\"\n"
+" },\n"
+" {\n"
+" \"command\": \"dh_foo\",\n"
+" \"is-empty\": false,\n"
+" \"package-section-param\": \"-a\",\n"
+" \"target-name\": \"override_dh_foo-arch\"\n"
+" }\n"
+" ]\n"
+" }\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:119
+msgid ""
+"The B<commands-not-in-path> is useful for spotting mistakes in the hook "
+"target names. A non-empty value implies one of more hook targets are "
+"related to a command that is either not installed or no command with that "
+"name exists at all. It is generally worth double checking these."
+msgstr ""
+
+#. type: textblock
+#: dh:124
+msgid ""
+"Additionally, the B<is-empty> attribute for each hook target can be used for "
+"seeing whether a hook target triggers the L</Completely empty targets> "
+"optimization."
+msgstr ""
+
+#. type: textblock
+#: dh:127
+msgid ""
+"If you are interested in the other attributes, please read the "
+"L<dh_assistant(1)> for the details."
+msgstr ""
+
+#. type: =head3
+#: dh:130
+msgid "Verifying targets are picked up by dh (when debhelper is older than 13.10)"
+msgstr ""
+
+#. type: textblock
+#: dh:134
+msgid ""
+"On older versions of debhelper, you have to use B<dh> with B<--no-act>. You "
+"can use the following command as an example:"
+msgstr ""
+
+#. type: verbatim
+#: dh:137
+#, no-wrap
+msgid ""
+" $ dh binary --no-act | grep dh_install | head -n5\n"
+" dh_installdirs\n"
+" dh_install\n"
+" debian/rules execute_after_dh_install\n"
+" dh_installdocs\n"
+" dh_installchangelogs\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:144
+msgid ""
+"The B<debian/rules execute_after_dh_install> in the output, which signals "
+"that B<dh> registered a B<execute_after_dh_install> target and would run it "
+"directly after L<dh_install(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh:148
+msgid ""
+"Note that L</Completely empty targets> will be omitted in the listing "
+"above. This makes it a bit harder to spot as you are looking for the "
+"omission of a command name. But otherwise, the principle remains the same."
+msgstr ""
+
+#. type: =head2
+#: dh:152
+msgid "Caveats with hook targets and makefile conditionals"
+msgstr ""
+
+#. type: textblock
+#: dh:154
+msgid ""
+"If you choose to wrap a hook target in makefile conditionals, please be "
+"aware that B<dh> computes all the hook targets a head of time and caches the "
+"result for that run. Furthermore, the conditionals will be invoked again "
+"when B<dh> calls the hook target later and will assume the answer did not "
+"change."
+msgstr ""
+
+#. type: textblock
+#: dh:160
+msgid ""
+"The parsing and caching I<often> happens before B<dh> knows whether it will "
+"build arch:any (-a) or/and arch:all (-i) packages, which can produce "
+"confusing results - especially when L<dh_listpackages(1)> is part of the "
+"conditional."
+msgstr ""
+
+#. type: textblock
+#: dh:165
+msgid ""
+"Most of the problems can be avoided by making the hook target unconditional "
+"and then have the \"body\" be partially or completely conditional. As an "
+"example:"
+msgstr ""
+
+#. type: verbatim
+#: dh:169
+#, no-wrap
+msgid ""
+" # SIMPLE: It is well-defined what happens. The hook target\n"
+" # is always considered. The \"maybe run this\" bit is\n"
+" # conditional but dh_foo is definitely skipped.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, \"maybe run this\"\n"
+" # is skipped.\n"
+" override_dh_foo:\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:183
+#, no-wrap
+msgid ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The \"maybe run this\" bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar:\n"
+" : # Dummy command to force the target to always be run\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:198
+#, no-wrap
+msgid ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" # Here, either dh_baz is run normally OR \"maybe run this\" is run\n"
+" # instead.\n"
+" #\n"
+" # And it gets even more complicated to reason about if dh needs to\n"
+" # recurse into debian/rules because you have an \"explicit\"\n"
+" # standard target (e.g. a \"build-arch:\" target separate from "
+"\"%:\").\n"
+" ifneq (...)\n"
+" override_dh_baz:\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+
#. type: textblock
-#: dh:34
+#: dh:212
+msgid ""
+"These recipes are also relevant for conditional dependency targets, which "
+"are often seen in a variant of the following example:"
+msgstr ""
+
+#. type: verbatim
+#: dh:215
+#, no-wrap
+msgid ""
+" COND_TASKS =\n"
+" ifneq (...)\n"
+" COND_TASKS += maybe-run-this\n"
+" endif\n"
+" ...\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:221
+#, no-wrap
msgid ""
-"Override targets can also be defined to run only when building architecture "
-"dependent or architecture independent packages. Use targets with names like "
-"B<override_>I<dh_command>B<-arch> and B<override_>I<dh_command>B<-indep>. "
-"(Note that to use this feature, you should Build-Depend on debhelper 8.9.7 "
-"or above.)"
+" maybe-run-this:\n"
+" ...\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:224
+#, no-wrap
+msgid ""
+" # SIMPLE: It is well-defined what happens. Either the\n"
+" # $(COND_TASKS) are skipped or run.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, $(COND_TASKS)\n"
+" # is skipped.\n"
+" override_dh_foo: $(COND_TASKS)\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:235
+#, no-wrap
+msgid ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The $(COND_TASKS) bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar: $(COND_TASKS)\n"
+" : # Dummy command to force the target to always be run\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:246
+#, no-wrap
+msgid ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" ifneq (...)\n"
+" override_dh_baz: $(COND_TASKS)\n"
+" endif\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:254
+msgid ""
+"When in doubt, pick the relevant B<SIMPLE> case in the examples above that "
+"match your need."
msgstr ""
#. type: =head1
-#: dh:41 dh_auto_build:28 dh_auto_clean:30 dh_auto_configure:31 dh_auto_install:43 dh_auto_test:31 dh_bugfiles:50 dh_builddeb:24 dh_clean:41 dh_compress:48 dh_fixperms:32 dh_gconf:39 dh_gencontrol:26 dh_icons:30 dh_install:59 dh_installcatalogs:49 dh_installchangelogs:59 dh_installcron:40 dh_installdebconf:61 dh_installdirs:31 dh_installdocs:71 dh_installemacsen:53 dh_installexamples:32 dh_installifupdown:39 dh_installinfo:31 dh_installinit:59 dh_installlogcheck:42 dh_installlogrotate:22 dh_installman:61 dh_installmanpages:40 dh_installmenu:41 dh_installmodules:38 dh_installpam:31 dh_installppp:35 dh_installudev:35 dh_installwm:34 dh_link:53 dh_makeshlibs:43 dh_md5sums:28 dh_movefiles:38 dh_perl:31 dh_prep:26 dh_shlibdeps:26 dh_strip:35 dh_testdir:23 dh_usrlocal:39
+#: dh:257 dh_auto_build:32 dh_auto_clean:33 dh_auto_configure:35
+#: dh_auto_install:52 dh_auto_test:34 dh_bugfiles:53 dh_builddeb:34 dh_clean:49
+#: dh_compress:52 dh_dwz:26 dh_fixperms:40 dh_gencontrol:38 dh_icons:33
+#: dh_install:69 dh_installcatalogs:56 dh_installchangelogs:77
+#: dh_installcron:45 dh_installdeb:107 dh_installdebconf:64 dh_installdirs:45
+#: dh_installdocs:100 dh_installemacsen:56 dh_installexamples:48
+#: dh_installifupdown:42 dh_installinfo:41 dh_installinit:77
+#: dh_installinitramfs:43 dh_installlogcheck:45 dh_installlogrotate:25
+#: dh_installman:86 dh_installmanpages:43 dh_installmenu:44
+#: dh_installmodules:41 dh_installpam:38 dh_installppp:38 dh_installudev:34
+#: dh_installwm:41 dh_link:69 dh_makeshlibs:67 dh_md5sums:31 dh_movefiles:41
+#: dh_perl:35 dh_prep:29 dh_shlibdeps:30 dh_strip:38 dh_testdir:26
+#: dh_usrlocal:50 dh_systemd_enable:82 dh_systemd_start:33
msgid "OPTIONS"
msgstr ""
#. type: =item
-#: dh:45
+#: dh:261
msgid "B<--with> I<addon>[B<,>I<addon> ...]"
msgstr ""
#. type: textblock
-#: dh:47
+#: dh:263
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 "
@@ -1317,13 +3802,47 @@ msgid ""
"addon interface."
msgstr ""
+#. type: textblock
+#: dh:270
+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>. 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 "
+"bootstrapping)."
+msgstr ""
+
+#. type: textblock
+#: dh:279
+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:285
+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:54
+#: dh:293
msgid "B<--without> I<addon>"
msgstr ""
#. type: textblock
-#: dh:56
+#: dh:295
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, "
@@ -1331,24 +3850,31 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:62
+#: dh:301
msgid "List all available addons."
msgstr ""
#. type: textblock
-#: dh:66
+#: dh:303
+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:309
msgid "Prints commands that would run for a given sequence, but does not run them."
msgstr ""
#. type: textblock
-#: dh:68
+#: dh:311
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:73
+#: dh:316
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 "
@@ -1356,19 +3882,20 @@ msgid ""
msgstr ""
#. type: =head1
-#: dh:77 dh_installdocs:110 dh_link:75 dh_makeshlibs:97 dh_shlibdeps:70
+#: dh:320 dh_install:332 dh_installdocs:191 dh_installman:117 dh_link:91
+#: dh_makeshlibs:185 dh_shlibdeps:78
msgid "EXAMPLES"
msgstr ""
#. type: textblock
-#: dh:79
+#: dh:322
msgid ""
"To see what commands are included in a sequence, without actually doing "
"anything:"
msgstr ""
#. type: verbatim
-#: dh:82
+#: dh:325
#, no-wrap
msgid ""
"\tdh binary-arch --no-act\n"
@@ -1376,14 +3903,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:84
+#: dh:327
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:87 dh:108 dh:121
+#: dh:330 dh:337 dh:351 dh:364 dh:375 dh:433 dh:444
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -1393,33 +3920,23 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:91
+#: dh:334
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:94 dh:179 dh:190
-#, no-wrap
-msgid ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@\n"
-"\t\n"
-msgstr ""
-
-#. type: verbatim
-#: dh:98
+#: dh:341
#, no-wrap
msgid ""
"\toverride_dh_strip:\n"
"\t\tdh_strip -Xfoo\n"
-"\t\n"
+"\n"
msgstr ""
#. type: verbatim
-#: dh:101
+#: dh:344
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -1428,7 +3945,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:104
+#: dh:347
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 "
@@ -1436,7 +3953,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:112
+#: dh:355
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -1445,7 +3962,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:115
+#: dh:358
#, no-wrap
msgid ""
"\toverride_dh_auto_build:\n"
@@ -1454,51 +3971,49 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:118
+#: dh:361
msgid ""
"Another common case is wanting to do something manually before or after a "
"particular debhelper command is run."
msgstr ""
#. type: verbatim
-#: dh:125
+#: dh:368
#, no-wrap
msgid ""
-"\toverride_dh_fixperms:\n"
-"\t\tdh_fixperms\n"
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
#. type: textblock
-#: dh:129
+#: dh:372
msgid ""
-"If your package uses autotools and you want to freshen F<config.sub> and "
-"F<config.guess> with newer versions from the B<autotools-dev> package at "
-"build time, you can use some commands provided in B<autotools-dev> that "
-"automate it, like this."
+"If you are on an older debhelper or compatibility level, the above example "
+"would have to be written as."
msgstr ""
#. type: verbatim
-#: dh:134
+#: dh:379
#, no-wrap
msgid ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@ --with autotools_dev\n"
+"\t# Older debhelper versions or using compat 9 or lower.\n"
+"\toverride_dh_fixperms:\n"
+"\t\tdh_fixperms\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
#. type: textblock
-#: dh:138
+#: dh:384
msgid ""
"Python tools are not run by dh by default, due to the continual change in "
-"that area. (Before compatibility level v9, dh does run B<dh_pysupport>.) "
-"Here is how to use B<dh_python2>."
+"that area. Here is how to use B<dh_python2>."
msgstr ""
#. type: verbatim
-#: dh:142
+#: dh:387
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -1508,14 +4023,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:146
+#: dh:391
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:150
+#: dh:395
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -1525,7 +4040,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:154
+#: dh:399
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 "
@@ -1533,7 +4048,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:158
+#: dh:403
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -1543,14 +4058,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:162
+#: dh:407
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:165
+#: dh:410
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -1560,14 +4075,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:169
+#: dh:414
msgid ""
-"If your package can be built in parallel, you can support parallel building "
-"as follows. Then B<dpkg-buildpackage -j> will work."
+"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:172
+#: dh:417
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -1577,14 +4092,32 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:176
+#: dh:421
+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:426
+#, no-wrap
+msgid ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --no-parallel\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:430
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:183
+#: dh:437
#, no-wrap
msgid ""
"\t# Commands not to run:\n"
@@ -1593,7 +4126,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:186
+#: dh:440
msgid ""
"A long build process for a separate documentation package can be separated "
"out using architecture independent overrides. These will be skipped when "
@@ -1601,7 +4134,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:194
+#: dh:448
#, no-wrap
msgid ""
"\toverride_dh_auto_build-indep:\n"
@@ -1610,7 +4143,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:197
+#: dh:451
#, no-wrap
msgid ""
"\t# No tests needed for docs\n"
@@ -1619,7 +4152,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:200
+#: dh:454
#, no-wrap
msgid ""
"\toverride_dh_auto_install-indep:\n"
@@ -1628,7 +4161,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh:203
+#: dh:457
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 "
@@ -1636,139 +4169,252 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh:207
+#: dh:461
#, no-wrap
msgid ""
-"\toverride_dh_fixperms-arch:\n"
-"\t\tdh_fixperms\n"
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms-arch:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
#. type: =head1
-#: dh:211
-msgid "INTERNALS"
+#: dh:465
+msgid "DEBHELPER PROVIDED DH ADDONS"
msgstr ""
#. type: textblock
-#: dh:213
+#: dh:467
msgid ""
-"If you're curious about B<dh>'s internals, here's how it works under the "
-"hood."
+"The primary purpose of B<dh> addons is to provide easy integration with "
+"third-party provided features for debhelper. However, debhelper itself also "
+"provide a few sequences that can be useful in some cases. These are "
+"documented in this list:"
+msgstr ""
+
+#. type: =item
+#: dh:474
+msgid "build-stamp"
msgstr ""
#. type: textblock
-#: dh:215
+#: dh:476
msgid ""
-"Each debhelper command will record when it's successfully run in "
-"F<debian/package.debhelper.log>. (Which B<dh_clean> deletes.) So B<dh> can "
-"tell which commands have already been run, for which packages, and skip "
-"running those commands again."
+"A special addon for controlling whether B<dh> (in compat 10 or later) will "
+"create stamp files to tell whether the build target has been run "
+"successfully. See L</INTERNALS> for more details."
msgstr ""
#. type: textblock
-#: dh:220
+#: dh:480
msgid ""
-"Each time B<dh> is run, 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."
+"This addon is active by default but can disabled by using B<dh $@ --without "
+"build-stamp>"
+msgstr ""
+
+#. type: =item
+#: dh:483
+msgid "dwz (obsolete)"
msgstr ""
#. type: textblock
-#: dh:225
+#: dh:485
msgid ""
-"A sequence can also run dependent targets in debian/rules. For example, the "
-"\"binary\" sequence runs the \"install\" target."
+"Adds L<dh_dwz(1)> to the sequence in compat level 11 or below. Obsolete in "
+"compat 12 or later."
+msgstr ""
+
+#. type: =item
+#: dh:488
+msgid "elf-tools"
msgstr ""
#. type: textblock
-#: dh:228
+#: dh:490
msgid ""
-"B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass "
-"information through to debhelper commands that are run inside override "
-"targets. The contents (and indeed, existence) of this environment variable, "
-"as the name might suggest, is subject to change at any time."
+"This addon adds tools related to ELF files to the sequence such as "
+"L<dh_strip(1)> and L<dh_shlibdeps(1)>"
msgstr ""
#. type: textblock
-#: dh:233
+#: dh:493
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 "
-"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."
+"This addon is I<conditionally> active by default for architecture specific "
+"packages - that is, it is skipped for arch:all packages. In the special "
+"case where you need these tools to work on arch:all packages, you can use "
+"B<--with elf-tools> to activate it unconditionally."
msgstr ""
-#. type: =head1
-#: dh:239
-msgid "DEPRECATED OPTIONS"
+#. type: =item
+#: dh:499
+msgid "installinitramfs (obsolete)"
msgstr ""
#. type: textblock
-#: dh:241
+#: dh:501
msgid ""
-"The following options are deprecated. It's much better to use override "
-"targets instead."
+"Adds L<dh_installinitramfs(1)> to the sequence in compat level 11 or below. "
+"Obsolete in compat 12 or later."
msgstr ""
#. type: =item
-#: dh:246
-msgid "B<--until> I<cmd>"
+#: dh:504
+msgid "root-sequence (internal)"
msgstr ""
#. type: textblock
-#: dh:248
-msgid "Run commands in the sequence until and including I<cmd>, then stop."
+#: dh:506
+msgid "This is reserved for internal usage."
msgstr ""
#. type: =item
-#: dh:250
-msgid "B<--before> I<cmd>"
+#: dh:508
+msgid "single-binary"
msgstr ""
#. type: textblock
-#: dh:252
-msgid "Run commands in the sequence before I<cmd>, then stop."
+#: dh:510
+msgid "A special-purpose addon that makes debhelper run in \"single binary\" mode."
msgstr ""
-#. type: =item
-#: dh:254
-msgid "B<--after> I<cmd>"
+#. type: textblock
+#: dh:512
+msgid ""
+"When active, it will pass B<< --destdir=debian/I<package>/ >> to "
+"L<dh_auto_install(1)>. This makes every file \"installed\" by the upstream "
+"build system part of the (only) binary package by default without having to "
+"use other helpers such as L<dh_install(1)>."
msgstr ""
#. type: textblock
-#: dh:256
-msgid "Run commands in the sequence that come after I<cmd>."
+#: dh:517
+msgid ""
+"The addon will refuse to activate when the source package lists 2 or more "
+"binary packages in F<debian/control> as a precaution."
+msgstr ""
+
+#. type: textblock
+#: dh:520
+msgid ""
+"Before compat 15. this behaviour was the default when there was only a "
+"single binary package listed in F<debian/control>. In compat 15 and later, "
+"this addon must explicitly be activated for this feature to work."
+msgstr ""
+
+#. type: textblock
+#: dh:524
+msgid ""
+"The rationale for requiring this as an explicit choice is that if it is "
+"implicit then debhelper will silently change behaviour on adding a new "
+"binary package. This has caused many RC bugs when maintainers renamed a "
+"binary and added transitional packages with the intention of supporting "
+"seamless upgrades. The result would often be two empty binary packages that "
+"were uploaded to archive with users frustrated as their \"upgrade\" removed "
+"their programs."
msgstr ""
#. type: =item
-#: dh:258
-msgid "B<--remaining>"
+#: dh:532
+msgid "systemd (obsolete)"
msgstr ""
#. type: textblock
-#: dh:260
-msgid "Run all commands in the sequence that have yet to be run."
+#: dh:534
+msgid ""
+"Adds L<dh_systemd_enable(1)> and L<dh_systemd_start(1)> to the sequence in "
+"compat level 10 or below. Obsolete in compat 11 or later."
+msgstr ""
+
+#. type: =head1
+#: dh:539
+msgid "INTERNALS"
msgstr ""
#. type: textblock
-#: dh:264
+#: dh:541
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."
+"If you're curious about B<dh>'s internals, here's how it works under the "
+"hood."
msgstr ""
#. type: textblock
-#: dh:974 dh_auto_build:49 dh_auto_clean:52 dh_auto_configure:54 dh_auto_install:94 dh_auto_test:65 dh_builddeb:126 dh_clean:149 dh_compress:212 dh_fixperms:133 dh_gconf:103 dh_gencontrol:80 dh_install:262 dh_installcatalogs:124 dh_installchangelogs:243 dh_installcron:81 dh_installdeb:144 dh_installdebconf:130 dh_installdirs:90 dh_installdocs:339 dh_installexamples:110 dh_installifupdown:73 dh_installinfo:79 dh_installinit:326 dh_installlogcheck:82 dh_installlogrotate:54 dh_installman:265 dh_installmanpages:199 dh_installmime:65 dh_installmodules:117 dh_installpam:63 dh_installppp:69 dh_installudev:119 dh_installwm:112 dh_installxfonts:91 dh_link:230 dh_listpackages:32 dh_makeshlibs:266 dh_md5sums:92 dh_movefiles:172 dh_perl:154 dh_prep:62 dh_strip:244 dh_suidregister:119 dh_testdir:55 dh_testroot:29 dh_undocumented:30 dh_usrlocal:118
-msgid "L<debhelper(7)>"
+#: dh:543
+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 possible to avoid the stamp file by passing "
+"B<--without=build-stamp> to B<dh>. This makes \"no clean\" builds behave "
+"more like what some people expect at the expense of possibly running the "
+"build and test twice (the second time as root or under L<fakeroot(1)>)."
msgstr ""
#. type: textblock
-#: dh:976 dh_auto_build:51 dh_auto_clean:54 dh_auto_configure:56 dh_auto_install:96 dh_auto_test:67 dh_bugfiles:130 dh_builddeb:128 dh_clean:151 dh_compress:214 dh_desktop:35 dh_fixperms:135 dh_gconf:105 dh_gencontrol:82 dh_icons:75 dh_install:264 dh_installchangelogs:245 dh_installcron:83 dh_installdeb:146 dh_installdebconf:132 dh_installdirs:92 dh_installdocs:341 dh_installemacsen:146 dh_installexamples:112 dh_installifupdown:75 dh_installinfo:81 dh_installinit:328 dh_installlogrotate:56 dh_installman:267 dh_installmanpages:201 dh_installmenu:95 dh_installmime:67 dh_installmodules:119 dh_installpam:65 dh_installppp:71 dh_installudev:121 dh_installwm:114 dh_installxfonts:93 dh_link:232 dh_lintian:63 dh_listpackages:34 dh_makeshlibs:268 dh_md5sums:94 dh_movefiles:174 dh_perl:156 dh_prep:64 dh_scrollkeeper:32 dh_shlibdeps:156 dh_strip:246 dh_suidregister:121 dh_testdir:57 dh_testroot:31 dh_undocumented:32 dh_usrlocal:120
+#: dh:551
+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 been run for. These log files are then removed once the "
+"override target is complete."
+msgstr ""
+
+#. type: textblock
+#: dh:556
+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> "
+"deletes.) So B<dh> can tell which commands have already been run, for which "
+"packages, and skip running those commands again."
+msgstr ""
+
+#. type: textblock
+#: dh:561
+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."
+msgstr ""
+
+#. type: textblock
+#: dh:565
+msgid ""
+"A sequence can also run dependent targets in debian/rules. For example, the "
+"\"binary\" sequence runs the \"install\" target."
+msgstr ""
+
+#. type: textblock
+#: dh:568
+msgid ""
+"B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass "
+"information through to debhelper commands that are run inside override "
+"targets. The contents (and indeed, existence) of this environment variable, "
+"as the name might suggest, is subject to change at any time."
+msgstr ""
+
+#. type: textblock
+#: dh:573
+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 "
+"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."
+msgstr ""
+
+#. type: textblock
+#: dh:876 dh_auto_build:57 dh_auto_clean:59 dh_auto_configure:62
+#: dh_auto_install:107 dh_auto_test:68 dh_bugfiles:139 dh_builddeb:180
+#: dh_clean:193 dh_compress:247 dh_dwz:167 dh_fixperms:168 dh_gencontrol:212
+#: dh_icons:79 dh_install:381 dh_installchangelogs:369 dh_installcron:84
+#: dh_installdeb:423 dh_installdebconf:237 dh_installdirs:135
+#: dh_installdocs:441 dh_installemacsen:143 dh_installexamples:186
+#: dh_installifupdown:76 dh_installinfo:127 dh_installinit:417
+#: dh_installinitramfs:97 dh_installlogrotate:57 dh_installman:424
+#: dh_installmanpages:202 dh_installmenu:94 dh_installmime:67
+#: dh_installmodules:113 dh_installpam:75 dh_installppp:72 dh_installudev:106
+#: dh_installwm:134 dh_installxfonts:94 dh_link:170 dh_lintian:64
+#: dh_listpackages:38 dh_makeshlibs:460 dh_md5sums:122 dh_movefiles:165
+#: dh_perl:192 dh_prep:74 dh_shlibdeps:208 dh_strip:439 dh_testdir:66
+#: dh_testroot:97 dh_usrlocal:140
msgid "This program is a part of debhelper."
msgstr ""
@@ -1778,14 +4424,14 @@ msgid "dh_auto_build - automatically builds a package"
msgstr ""
#. type: textblock
-#: dh_auto_build:14
+#: dh_auto_build:18
msgid ""
"B<dh_auto_build> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
msgstr ""
#. type: textblock
-#: dh_auto_build:18
+#: dh_auto_build:22
msgid ""
"B<dh_auto_build> is a debhelper program that tries to automatically build a "
"package. It does so by running the appropriate command for the build system "
@@ -1795,7 +4441,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_auto_build:24
+#: dh_auto_build:28
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, "
"you're encouraged to skip using B<dh_auto_build> at all, and just run the "
@@ -1803,19 +4449,22 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_auto_build:30 dh_auto_clean:32 dh_auto_configure:33 dh_auto_install:45 dh_auto_test:33
+#: dh_auto_build:34 dh_auto_clean:35 dh_auto_configure:37 dh_auto_install:54
+#: dh_auto_test:36
msgid ""
"See L<debhelper(7)/B<BUILD SYSTEM OPTIONS>> for a list of common build "
"system selection and control options."
msgstr ""
#. type: =item
-#: dh_auto_build:35 dh_auto_clean:37 dh_auto_configure:38 dh_auto_install:56 dh_auto_test:38 dh_builddeb:38 dh_gencontrol:30 dh_installdebconf:69 dh_installinit:105 dh_makeshlibs:91 dh_shlibdeps:37
+#: dh_auto_build:39 dh_auto_clean:40 dh_auto_configure:42 dh_auto_install:65
+#: dh_auto_test:41 dh_builddeb:48 dh_dwz:62 dh_gencontrol:42
+#: dh_installdebconf:72 dh_installinit:166 dh_makeshlibs:179 dh_shlibdeps:41
msgid "B<--> I<params>"
msgstr ""
#. type: textblock
-#: dh_auto_build:37
+#: dh_auto_build:41
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_build> usually passes."
@@ -1827,14 +4476,14 @@ msgid "dh_auto_clean - automatically cleans up after a build"
msgstr ""
#. type: textblock
-#: dh_auto_clean:15
+#: dh_auto_clean:18
msgid ""
"B<dh_auto_clean> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
msgstr ""
#. type: textblock
-#: dh_auto_clean:19
+#: dh_auto_clean:22
msgid ""
"B<dh_auto_clean> is a debhelper program that tries to automatically clean up "
"after a package build. It does so by running the appropriate command for the "
@@ -1846,7 +4495,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_auto_clean:26
+#: dh_auto_clean:29
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, or "
"tries to use the wrong clean target, you're encouraged to skip using "
@@ -1854,7 +4503,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_auto_clean:39
+#: dh_auto_clean:42
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_clean> usually passes."
@@ -1866,14 +4515,14 @@ msgid "dh_auto_configure - automatically configure a package prior to building"
msgstr ""
#. type: textblock
-#: dh_auto_configure:14
+#: dh_auto_configure:18
msgid ""
"B<dh_auto_configure> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
msgstr ""
#. type: textblock
-#: dh_auto_configure:18
+#: dh_auto_configure:22
msgid ""
"B<dh_auto_configure> is a debhelper program that tries to automatically "
"configure a package prior to building. It does so by running the appropriate "
@@ -1886,7 +4535,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_auto_configure:27
+#: dh_auto_configure:31
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, "
"you're encouraged to skip using B<dh_auto_configure> at all, and just run "
@@ -1894,14 +4543,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_auto_configure:40
+#: dh_auto_configure:44
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_configure> usually passes. For example:"
msgstr ""
#. type: verbatim
-#: dh_auto_configure:43
+#: dh_auto_configure:47
#, no-wrap
msgid ""
" dh_auto_configure -- --with-foo --enable-bar\n"
@@ -1914,14 +4563,14 @@ msgid "dh_auto_install - automatically runs make install or similar"
msgstr ""
#. type: textblock
-#: dh_auto_install:17
+#: dh_auto_install:20
msgid ""
"B<dh_auto_install> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
msgstr ""
#. type: textblock
-#: dh_auto_install:21
+#: dh_auto_install:24
msgid ""
"B<dh_auto_install> is a debhelper program that tries to automatically "
"install built files. It does so by running the appropriate command for the "
@@ -1934,17 +4583,27 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_auto_install:29
+#: dh_auto_install:32
msgid ""
-"Unless B<--destdir> option is specified, the files are installed into "
-"debian/I<package>/ if there is only one binary package. In the multiple "
-"binary package case, the files are instead installed into F<debian/tmp/>, "
-"and should be moved from there to the appropriate package build directory "
-"using L<dh_install(1)>."
+"In compat 15 or later, B<dh_auto_install> will use F<debian/tmp> as the "
+"default B<--destdir> and should be moved from there to the appropriate "
+"package build directory using L<dh_install(1)> or similar tools. Though if "
+"the B<single-binary> addon for L<dh(1)> is activated, then it will pass an "
+"explicit B<< --destdir=debian/I<package>/ >> to B<dh_auto_install>."
msgstr ""
#. type: textblock
-#: dh_auto_install:35
+#: dh_auto_install:38
+msgid ""
+"For earlier compat levels then unless B<--destdir> option is specified, the "
+"files are installed into debian/I<package>/ if there is only one binary "
+"package. In the multiple binary package case, the files are instead "
+"installed into F<debian/tmp/>, and should be moved from there to the "
+"appropriate package build directory using L<dh_install(1)> or similar tools."
+msgstr ""
+
+#. type: textblock
+#: dh_auto_install:44
msgid ""
"B<DESTDIR> is used to tell make where to install the files. If the Makefile "
"was generated by MakeMaker from a F<Makefile.PL>, it will automatically set "
@@ -1952,7 +4611,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_auto_install:39
+#: dh_auto_install:48
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, or "
"tries to use the wrong install target, you're encouraged to skip using "
@@ -1960,12 +4619,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_auto_install:50 dh_builddeb:28
+#: dh_auto_install:59 dh_builddeb:38
msgid "B<--destdir=>I<directory>"
msgstr ""
#. type: textblock
-#: dh_auto_install:52
+#: dh_auto_install:61
msgid ""
"Install files into the specified I<directory>. If this option is not "
"specified, destination directory is determined automatically as described in "
@@ -1973,7 +4632,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_auto_install:58
+#: dh_auto_install:67
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_install> usually passes."
@@ -1985,14 +4644,14 @@ msgid "dh_auto_test - automatically runs a package's test suites"
msgstr ""
#. type: textblock
-#: dh_auto_test:15
+#: dh_auto_test:18
msgid ""
"B<dh_auto_test> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
msgstr ""
#. type: textblock
-#: dh_auto_test:19
+#: dh_auto_test:22
msgid ""
"B<dh_auto_test> is a debhelper program that tries to automatically run a "
"package's test suite. It does so by running the appropriate command for the "
@@ -2004,7 +4663,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_auto_test:27
+#: dh_auto_test:30
msgid ""
"This is intended to work for about 90% of packages with a test suite. If it "
"doesn't work, you're encouraged to skip using B<dh_auto_test> at all, and "
@@ -2012,27 +4671,20 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_auto_test:40
+#: dh_auto_test:43
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_test> usually passes."
msgstr ""
#. type: textblock
-#: dh_auto_test:47
+#: dh_auto_test:50
msgid ""
"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nocheck>, no "
"tests will be performed."
msgstr ""
#. type: textblock
-#: dh_auto_test:50
-msgid ""
-"dh_auto_test does not run the test suite when a package is being cross "
-"compiled."
-msgstr ""
-
-#. type: textblock
#: dh_bugfiles:5
msgid ""
"dh_bugfiles - install bug reporting customization files into package build "
@@ -2040,12 +4692,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_bugfiles:14
+#: dh_bugfiles:17
msgid "B<dh_bugfiles> [B<-A>] [S<I<debhelper options>>]"
msgstr ""
#. type: textblock
-#: dh_bugfiles:18
+#: dh_bugfiles:21
msgid ""
"B<dh_bugfiles> is a debhelper program that is responsible for installing bug "
"reporting customization files (bug scripts and/or bug control files and/or "
@@ -2053,17 +4705,25 @@ msgid ""
msgstr ""
#. type: =head1
-#: dh_bugfiles:22 dh_clean:31 dh_compress:31 dh_gconf:23 dh_install:38 dh_installcatalogs:35 dh_installchangelogs:35 dh_installcron:21 dh_installdeb:22 dh_installdebconf:34 dh_installdirs:21 dh_installdocs:21 dh_installemacsen:27 dh_installexamples:22 dh_installifupdown:22 dh_installinfo:21 dh_installinit:27 dh_installlogcheck:21 dh_installman:51 dh_installmenu:25 dh_installmime:21 dh_installmodules:28 dh_installpam:21 dh_installppp:21 dh_installudev:25 dh_installwm:24 dh_link:41 dh_lintian:21 dh_makeshlibs:29 dh_movefiles:26
+#: dh_bugfiles:25 dh_clean:33 dh_compress:35 dh_install:40
+#: dh_installcatalogs:39 dh_installchangelogs:53 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 ""
#. type: =item
-#: dh_bugfiles:26
+#: dh_bugfiles:29
msgid "debian/I<package>.bug-script"
msgstr ""
#. type: textblock
-#: dh_bugfiles:28
+#: dh_bugfiles:31
msgid ""
"This is the script to be run by the bug reporting program for generating a "
"bug report template. This file is installed as F<usr/share/bug/package> in "
@@ -2074,12 +4734,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_bugfiles:35
+#: dh_bugfiles:38
msgid "debian/I<package>.bug-control"
msgstr ""
#. type: textblock
-#: dh_bugfiles:37
+#: dh_bugfiles:40
msgid ""
"It is the bug control file containing some directions for the bug reporting "
"tool. This file is installed as F<usr/share/bug/package/control> in the "
@@ -2087,12 +4747,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_bugfiles:41
+#: dh_bugfiles:44
msgid "debian/I<package>.bug-presubj"
msgstr ""
#. type: textblock
-#: dh_bugfiles:43
+#: dh_bugfiles:46
msgid ""
"The contents of this file are displayed to the user by the bug reporting "
"tool before allowing the user to write a bug report on the package to the "
@@ -2101,7 +4761,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_bugfiles:56
+#: dh_bugfiles:59
msgid ""
"Install F<debian/bug-*> files to ALL packages acted on when respective "
"F<debian/package.bug-*> files do not exist. Normally, F<debian/bug-*> will "
@@ -2109,41 +4769,42 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_bugfiles:126
+#: dh_bugfiles:135
msgid "F</usr/share/doc/reportbug/README.developers.gz>"
msgstr ""
#. type: textblock
-#: dh_bugfiles:128 dh_lintian:61
+#: dh_bugfiles:137 dh_lintian:62
msgid "L<debhelper(1)>"
msgstr ""
#. type: textblock
-#: dh_bugfiles:134
+#: dh_bugfiles:143
msgid "Modestas Vainius <modestas@vainius.eu>"
msgstr ""
#. type: textblock
-#: dh_builddeb:5
+#: dh_builddeb:7
msgid "dh_builddeb - build Debian binary packages"
msgstr ""
#. type: textblock
-#: dh_builddeb:14
+#: dh_builddeb:19
msgid ""
"B<dh_builddeb> [S<I<debhelper options>>] [B<--destdir=>I<directory>] "
"[B<--filename=>I<name>] [S<B<--> I<params>>]"
msgstr ""
#. type: textblock
-#: dh_builddeb:18
+#: dh_builddeb:23
msgid ""
"B<dh_builddeb> simply calls L<dpkg-deb(1)> to build a Debian package or "
-"packages."
+"packages. It will also build dbgsym packages when L<dh_strip(1)> and "
+"L<dh_gencontrol(1)> have prepared them."
msgstr ""
#. type: textblock
-#: dh_builddeb:21
+#: dh_builddeb:27
msgid ""
"It supports building multiple binary packages in parallel, when enabled by "
"DEB_BUILD_OPTIONS."
@@ -2152,34 +4813,42 @@ msgstr ""
#. type: textblock
#: dh_builddeb:30
msgid ""
+"When the I<Rules-Requires-Root> field is not (effectively) "
+"I<binary-targets>, B<dh_builddeb> will pass B<--root-owner-group> to "
+"L<dpkg-deb(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh_builddeb:40
+msgid ""
"Use this if you want the generated F<.deb> files to be put in a directory "
"other than the default of \"F<..>\"."
msgstr ""
#. type: =item
-#: dh_builddeb:33
+#: dh_builddeb:43
msgid "B<--filename=>I<name>"
msgstr ""
#. type: textblock
-#: dh_builddeb:35
+#: dh_builddeb:45
msgid ""
"Use this if you want to force the generated .deb file to have a particular "
"file name. Does not work well if more than one .deb is generated!"
msgstr ""
#. type: textblock
-#: dh_builddeb:40
+#: dh_builddeb:50
msgid "Pass I<params> to L<dpkg-deb(1)> when it is used to build the package."
msgstr ""
#. type: =item
-#: dh_builddeb:43
+#: dh_builddeb:53
msgid "B<-u>I<params>"
msgstr ""
#. type: textblock
-#: dh_builddeb:45
+#: dh_builddeb:55
msgid ""
"This is another way to pass I<params> to L<dpkg-deb(1)>. It is deprecated; "
"use B<--> instead."
@@ -2191,82 +4860,100 @@ msgid "dh_clean - clean up package build directories"
msgstr ""
#. type: textblock
-#: dh_clean:14
+#: dh_clean:17
msgid ""
"B<dh_clean> [S<I<debhelper options>>] [B<-k>] [B<-d>] [B<-X>I<item>] "
-"[S<I<file> ...>]"
+"[S<I<path> ...>]"
+msgstr ""
+
+#. type: textblock
+#: dh_clean:21
+msgid ""
+"B<dh_clean> is a debhelper program that is responsible for cleaning up. It "
+"should be the last step of the B<clean> target and other debhelper commands "
+"generally assume that B<dh_clean> will clean up after them."
msgstr ""
#. type: verbatim
-#: dh_clean:18
+#: dh_clean:25
#, no-wrap
msgid ""
-"B<dh_clean> is a debhelper program that is responsible for cleaning up after "
-"a\n"
-"package is built. It removes the package build directories, and removes "
-"some\n"
-"other files including F<debian/files>, and any detritus left behind by "
-"other\n"
-"debhelper commands. It also removes common files that should not appear in "
-"a\n"
-"Debian diff:\n"
+"It removes the package build directories, and removes some other files "
+"including\n"
+"F<debian/files>, and any detritus left behind by other debhelper "
+"commands. It\n"
+"also removes common files that should not appear in a Debian diff:\n"
" #*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp\n"
"\n"
msgstr ""
#. type: textblock
-#: dh_clean:25
+#: dh_clean:30
msgid ""
"It does not run \"make clean\" to clean up after the build process. Use "
"L<dh_auto_clean(1)> to do things like that."
msgstr ""
+#. type: =item
+#: dh_clean:37
+msgid "F<debian/clean>"
+msgstr ""
+
#. type: textblock
-#: dh_clean:28
-msgid ""
-"B<dh_clean> should be the last debhelper command run in the B<clean> target "
-"in F<debian/rules>."
+#: dh_clean:39
+msgid "Can list other paths to be removed."
msgstr ""
-#. type: =item
-#: dh_clean:35
-msgid "F<debian/clean>"
+#. type: textblock
+#: dh_clean:41
+msgid ""
+"Note that directories listed in this file B<must> end with a trailing "
+"slash. Any content in these directories will be removed as well."
msgstr ""
#. type: textblock
-#: dh_clean:37
-msgid "Can list other files to be removed."
+#: dh_clean:44 dh_install:59 dh_installcatalogs:51 dh_installdeb:102
+#: dh_installdirs:40 dh_installdocs:48 dh_installexamples:43 dh_installinfo:36
+#: dh_installman:81 dh_installwm:36 dh_link:64
+msgid ""
+"Supports substitution variables in compat 13 and later as documented in "
+"L<debhelper(7)>."
msgstr ""
#. type: =item
-#: dh_clean:45 dh_installchangelogs:63
+#: dh_clean:53 dh_installchangelogs:81
msgid "B<-k>, B<--keep>"
msgstr ""
#. type: textblock
-#: dh_clean:47
+#: dh_clean:55
msgid "This is deprecated, use L<dh_prep(1)> instead."
msgstr ""
+#. type: textblock
+#: dh_clean:57
+msgid "The option is removed in compat 12."
+msgstr ""
+
#. type: =item
-#: dh_clean:49
+#: dh_clean:59
msgid "B<-d>, B<--dirs-only>"
msgstr ""
#. type: textblock
-#: dh_clean:51
+#: dh_clean:61
msgid ""
"Only clean the package build directories, do not clean up any other files at "
"all."
msgstr ""
#. type: =item
-#: dh_clean:54 dh_prep:30
+#: dh_clean:64 dh_prep:33
msgid "B<-X>I<item> B<--exclude=>I<item>"
msgstr ""
#. type: textblock
-#: dh_clean:56
+#: dh_clean:66
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"deleted, even if they would normally be deleted. You may use this option "
@@ -2274,13 +4961,20 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_clean:60 dh_compress:64 dh_installdocs:103 dh_installexamples:46 dh_installinfo:40 dh_installmanpages:44 dh_movefiles:55 dh_testdir:27
-msgid "I<file> ..."
+#: dh_clean:70
+msgid "I<path> ..."
msgstr ""
#. type: textblock
-#: dh_clean:62
-msgid "Delete these I<file>s too."
+#: dh_clean:72
+msgid "Delete these I<path>s too."
+msgstr ""
+
+#. type: textblock
+#: dh_clean:74
+msgid ""
+"Note that directories passed as arguments B<must> end with a trailing "
+"slash. Any content in these directories will be removed as well."
msgstr ""
#. type: textblock
@@ -2289,14 +4983,14 @@ msgid "dh_compress - compress files and fix symlinks in package build directorie
msgstr ""
#. type: textblock
-#: dh_compress:15
+#: dh_compress:19
msgid ""
"B<dh_compress> [S<I<debhelper options>>] [B<-X>I<item>] [B<-A>] [S<I<file> "
"...>]"
msgstr ""
#. type: textblock
-#: dh_compress:19
+#: dh_compress:23
msgid ""
"B<dh_compress> is a debhelper program that is responsible for compressing "
"the files in package build directories, and makes sure that any symlinks "
@@ -2305,7 +4999,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_compress:24
+#: dh_compress:28
msgid ""
"By default, B<dh_compress> compresses files that Debian policy mandates "
"should be compressed, namely all files in F<usr/share/info>, "
@@ -2317,17 +5011,17 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_compress:35
+#: dh_compress:39
msgid "debian/I<package>.compress"
msgstr ""
#. type: textblock
-#: dh_compress:37
+#: dh_compress:41
msgid "These files are deprecated."
msgstr ""
#. type: textblock
-#: dh_compress:39
+#: dh_compress:43
msgid ""
"If this file exists, the default files are not compressed. Instead, the file "
"is ran as a shell script, and all filenames that the shell script outputs "
@@ -2338,7 +5032,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_compress:54
+#: dh_compress:58
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"compressed. For example, B<-X.tiff> will exclude TIFF files from "
@@ -2347,170 +5041,181 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_compress:61
+#: dh_compress:65
msgid ""
"Compress all files specified by command line parameters in ALL packages "
"acted on."
msgstr ""
+#. type: =item
+#: dh_compress:68 dh_installdocs:184 dh_installexamples:89 dh_installinfo:60
+#: dh_installmanpages:47 dh_movefiles:58 dh_testdir:30
+msgid "I<file> ..."
+msgstr ""
+
#. type: textblock
-#: dh_compress:66
+#: dh_compress:70
msgid "Add these files to the list of files to compress."
msgstr ""
#. type: =head1
-#: dh_compress:70 dh_perl:61 dh_strip:74 dh_usrlocal:55
+#: dh_compress:74 dh_perl:65 dh_strip:133 dh_usrlocal:66
msgid "CONFORMS TO"
msgstr ""
#. type: textblock
-#: dh_compress:72
+#: dh_compress:76
msgid "Debian policy, version 3.0"
msgstr ""
#. type: textblock
-#: dh_desktop:5
-msgid "dh_desktop - deprecated no-op"
+#: dh_dwz:5
+msgid "dh_dwz - optimize DWARF debug information in ELF binaries via dwz"
msgstr ""
#. type: textblock
-#: dh_desktop:14
-msgid "B<dh_desktop> [S<I<debhelper options>>]"
+#: dh_dwz:18
+msgid "B<dh_dwz> [S<I<debhelper options>>] [B<-X>I<item>] [S<B<--> I<params>>]"
msgstr ""
#. type: textblock
-#: dh_desktop:18
+#: dh_dwz:22
msgid ""
-"B<dh_desktop> was a debhelper program that registers F<.desktop> files. "
-"However, it no longer does anything, and is now deprecated."
+"B<dh_dwz> is a debhelper program that will optimize the (uncompressed) size "
+"of the DWARF debug information in ELF binaries. It does so by running "
+"L<dwz(1)> on all the ELF binaries in the package."
msgstr ""
-#. type: textblock
-#: dh_desktop:21
-msgid ""
-"If a package ships F<desktop> files, they just need to be installed in the "
-"correct location (F</usr/share/applications>) and they will be registered by "
-"the appropriate tools for the corresponding desktop environments."
-msgstr ""
-
-#. type: textblock
-#: dh_desktop:33 dh_icons:73 dh_scrollkeeper:30
-msgid "L<debhelper>"
+#. type: =item
+#: dh_dwz:30
+msgid "B<--dwz-multifile>, B<--no-dwz-multifile>"
msgstr ""
#. type: textblock
-#: dh_desktop:39 dh_scrollkeeper:36
-msgid "Ross Burton <ross@burtonini.com>"
+#: dh_dwz:32
+msgid ""
+"Whether L<dwz(1)> should generate a I<multifile> from the ELF binaries 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."
msgstr ""
#. type: textblock
-#: dh_fixperms:5
-msgid "dh_fixperms - fix permissions of files in package build directories"
+#: dh_dwz:37
+msgid ""
+"By default, B<dh_dwz> will attempt to create a multifile but will continue "
+"without if L<dwz(1)> does not 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_fixperms:15
-msgid "B<dh_fixperms> [S<I<debhelper options>>] [B<-X>I<item>]"
+#: 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_fixperms:19
+#: dh_dwz:49
msgid ""
-"B<dh_fixperms> is a debhelper program that is responsible for setting the "
-"permissions of files and directories in package build directories to a sane "
-"state -- a state that complies with Debian policy."
+"The generated multifile will be compressed with B<objcopy "
+"--compress-debug-sections>."
msgstr ""
#. type: textblock
-#: dh_fixperms:23
+#: dh_dwz:52
msgid ""
-"B<dh_fixperms> makes all files in F<usr/share/doc> in the package build "
-"directory (excluding files in the F<examples/> directory) be mode 644. It "
-"also changes the permissions of all man pages to mode 644. It makes all "
-"files be owned by root, and it removes group and other write permission from "
-"all files. It removes execute permissions from any libraries, headers, Perl "
-"modules, or desktop files that have it set. It makes all files in the "
-"standard F<bin> and F<sbin> directories, F<usr/games/> and F<etc/init.d> "
-"executable (since v4). Finally, it removes the setuid and setgid bits from "
-"all files in the package."
-msgstr ""
-
-#. type: =item
-#: dh_fixperms:36
-msgid "B<-X>I<item>, B<--exclude> I<item>"
+"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_fixperms:38
+#: dh_dwz:58 dh_strip:44
msgid ""
-"Exclude files that contain I<item> anywhere in their filename from having "
-"their permissions changed. You may use this option multiple times to build "
-"up a list of things to exclude."
+"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 "
+"things to exclude."
msgstr ""
#. type: textblock
-#: dh_gconf:5
-msgid "dh_gconf - install GConf defaults files and register schemas"
+#: 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_gconf:14
-msgid "B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>]"
+#: 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 "
+"\"Binaries\")."
msgstr ""
#. type: textblock
-#: dh_gconf:18
+#: dh_dwz:75
msgid ""
-"B<dh_gconf> is a debhelper program that is responsible for installing GConf "
-"defaults files and registering GConf schemas."
+"While this tool technically does not remove debug information from binaries, "
+"it is still skipped when the B<DEB_BUILD_OPTIONS> environment variable "
+"contains B<nostrip>. This is because B<nostrip> is often used to optimize "
+"build times (e.g. for \"build and test\"-cycles) rather than optimizing for "
+"size."
msgstr ""
#. type: textblock
-#: dh_gconf:21
-msgid "An appropriate dependency on gconf2 will be generated in B<${misc:Depends}>."
+#: dh_fixperms:5
+msgid "dh_fixperms - fix permissions of files in package build directories"
msgstr ""
-#. type: =item
-#: dh_gconf:27
-msgid "debian/I<package>.gconf-defaults"
+#. type: textblock
+#: dh_fixperms:18
+msgid "B<dh_fixperms> [S<I<debhelper options>>] [B<-X>I<item>]"
msgstr ""
#. type: textblock
-#: dh_gconf:29
+#: dh_fixperms:22
msgid ""
-"Installed into F<usr/share/gconf/defaults/10_package> in the package build "
-"directory, with I<package> replaced by the package name."
+"B<dh_fixperms> is a debhelper program that is responsible for setting the "
+"permissions of files and directories in package build directories to a sane "
+"state -- a state that complies with Debian policy."
msgstr ""
-#. type: =item
-#: dh_gconf:32
-msgid "debian/I<package>.gconf-mandatory"
+#. type: textblock
+#: dh_fixperms:26
+msgid ""
+"B<dh_fixperms> makes all files in F<usr/share/doc> in the package build "
+"directory (excluding files in the F<examples/> directory) be mode 644. It "
+"also changes the permissions of all man pages to mode 644. It removes group "
+"and other write permission from all files. It removes execute permissions "
+"from any libraries, headers, Perl modules, or desktop files that have it "
+"set. It makes all files in the standard F<bin> and F<sbin> directories, "
+"F<usr/games/> and F<etc/init.d> executable (since v4). Finally, it removes "
+"the setuid and setgid bits from all files in the package."
msgstr ""
#. type: textblock
-#: dh_gconf:34
+#: dh_fixperms:36
msgid ""
-"Installed into F<usr/share/gconf/mandatory/10_package> in the package build "
-"directory, with I<package> replaced by the package name."
+"When the I<Rules-Requires-Root> field has the (effective) value of "
+"I<binary-targets>, B<dh_fixperms> will also reset the ownership of all paths "
+"to \"root:root\"."
msgstr ""
#. type: =item
-#: dh_gconf:43
-msgid "B<--priority> I<priority>"
+#: dh_fixperms:44
+msgid "B<-X>I<item>, B<--exclude> I<item>"
msgstr ""
#. type: textblock
-#: dh_gconf:45
+#: dh_fixperms:46
msgid ""
-"Use I<priority> (which should be a 2-digit number) as the defaults priority "
-"instead of B<10>. Higher values than ten can be used by derived "
-"distributions (B<20>), CDD distributions (B<50>), or site-specific packages "
-"(B<90>)."
-msgstr ""
-
-#. type: textblock
-#: dh_gconf:109
-msgid "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
+"Exclude files that contain I<item> anywhere in their filename from having "
+"their permissions changed. You may use this option multiple times to build "
+"up a list of things to exclude."
msgstr ""
#. type: textblock
@@ -2519,12 +5224,12 @@ msgid "dh_gencontrol - generate and install control file"
msgstr ""
#. type: textblock
-#: dh_gencontrol:14
+#: dh_gencontrol:18
msgid "B<dh_gencontrol> [S<I<debhelper options>>] [S<B<--> I<params>>]"
msgstr ""
#. type: textblock
-#: dh_gencontrol:18
+#: dh_gencontrol:22
msgid ""
"B<dh_gencontrol> is a debhelper program that is responsible for generating "
"control files, and installing them into the I<DEBIAN> directory with the "
@@ -2532,25 +5237,36 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_gencontrol:22
+#: dh_gencontrol:26
msgid ""
"This program is merely a wrapper around L<dpkg-gencontrol(1)>, which calls "
-"it once for each package being acted on, and passes in some additional "
-"useful flags."
+"it once for each package being acted on (plus related dbgsym packages), and "
+"passes in some additional useful flags."
msgstr ""
#. type: textblock
-#: dh_gencontrol:32
+#: dh_gencontrol:30
+msgid ""
+"B<Note> that if you use B<dh_gencontrol>, you must also use "
+"L<dh_builddeb(1)> to build the packages. Otherwise, your build may fail to "
+"build as B<dh_gencontrol> (via L<dpkg-gencontrol(1)>) declares which "
+"packages are built. As debhelper automatically generates dbgsym packages, "
+"it some times adds additional packages, which will be built by "
+"L<dh_builddeb(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh_gencontrol:44
msgid "Pass I<params> to L<dpkg-gencontrol(1)>."
msgstr ""
#. type: =item
-#: dh_gencontrol:34
+#: dh_gencontrol:46
msgid "B<-u>I<params>, B<--dpkg-gencontrol-params=>I<params>"
msgstr ""
#. type: textblock
-#: dh_gencontrol:36
+#: dh_gencontrol:48
msgid ""
"This is another way to pass I<params> to L<dpkg-gencontrol(1)>. It is "
"deprecated; use B<--> instead."
@@ -2562,12 +5278,12 @@ msgid "dh_icons - Update caches of Freedesktop icons"
msgstr ""
#. type: textblock
-#: dh_icons:15
+#: dh_icons:18
msgid "B<dh_icons> [S<I<debhelper options>>] [B<-n>]"
msgstr ""
#. type: textblock
-#: dh_icons:19
+#: dh_icons:22
msgid ""
"B<dh_icons> is a debhelper program that updates caches of Freedesktop icons "
"when needed, using the B<update-icon-caches> program provided by GTK+2.12. "
@@ -2577,7 +5293,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_icons:25
+#: dh_icons:28
msgid ""
"It takes care of adding maintainer script fragments to call "
"B<update-icon-caches> for icon directories. (This is not done for gnome and "
@@ -2586,17 +5302,24 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_icons:34 dh_installcatalogs:53 dh_installdebconf:65 dh_installemacsen:57 dh_installinit:63 dh_installmenu:45 dh_installmodules:42 dh_installudev:49 dh_installwm:44 dh_makeshlibs:77 dh_usrlocal:43
-msgid "B<-n>, B<--noscripts>"
+#: dh_icons:37 dh_installcatalogs:60 dh_installdebconf:68 dh_installemacsen:60
+#: dh_installinit:81 dh_installinitramfs:47 dh_installmenu:48
+#: dh_installmodules:45 dh_installwm:51 dh_makeshlibs:147 dh_usrlocal:54
+msgid "B<-n>, B<--no-scripts>"
msgstr ""
#. type: textblock
-#: dh_icons:36
+#: dh_icons:39
msgid "Do not modify maintainer scripts."
msgstr ""
#. type: textblock
-#: dh_icons:79
+#: dh_icons:77
+msgid "L<debhelper>"
+msgstr ""
+
+#. type: textblock
+#: dh_icons:83
msgid ""
"Ross Burton <ross@burtonini.com> Jordi Mallach <jordi@debian.org> Josselin "
"Mouette <joss@debian.org>"
@@ -2608,14 +5331,14 @@ msgid "dh_install - install files into package build directories"
msgstr ""
#. type: textblock
-#: dh_install:15
+#: dh_install:17
msgid ""
"B<dh_install> [B<-X>I<item>] [B<--autodest>] [B<--sourcedir=>I<dir>] "
"[S<I<debhelper options>>] [S<I<file|dir> ... I<destdir>>]"
msgstr ""
#. type: textblock
-#: dh_install:19
+#: dh_install:21
msgid ""
"B<dh_install> is a debhelper program that handles installing files into "
"package build directories. There are many B<dh_install>I<*> commands that "
@@ -2627,7 +5350,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_install:27
+#: dh_install:29
msgid ""
"This program may be used in one of two ways. If you just have a file or two "
"that the upstream Makefile does not install for you, you can run "
@@ -2639,20 +5362,20 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_install:34
+#: dh_install:36
msgid ""
"From debhelper compatibility level 7 on, B<dh_install> will fall back to "
-"looking in F<debian/tmp> for files, if it doesn't find them in the current "
+"looking in F<debian/tmp> for files, if it does not find them in the current "
"directory (or wherever you've told it to look using B<--sourcedir>)."
msgstr ""
#. type: =item
-#: dh_install:42
+#: dh_install:44
msgid "debian/I<package>.install"
msgstr ""
#. type: textblock
-#: dh_install:44
+#: dh_install:46
msgid ""
"List the files to install into each package and the directory they should be "
"installed to. The format is a set of lines, where each line lists a file or "
@@ -2660,11 +5383,11 @@ msgid ""
"be installed in. The name of the files (or directories) to install should be "
"given relative to the current directory, while the installation directory is "
"given relative to the package build directory. You may use wildcards in the "
-"names of the files to install (in v3 mode and above)."
+"names of the files to install."
msgstr ""
#. type: textblock
-#: dh_install:52
+#: dh_install:54
msgid ""
"Note that if you list exactly one filename or wildcard-pattern on a line by "
"itself, with no explicit destination, then B<dh_install> will automatically "
@@ -2673,64 +5396,58 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_install:63
-msgid "B<--list-missing>"
+#: dh_install:62
+msgid "debian/not-installed"
msgstr ""
#. type: textblock
-#: dh_install:65
+#: dh_install:64
msgid ""
-"This option makes B<dh_install> keep track of the files it installs, and "
-"then at the end, compare that list with the files in the source "
-"directory. If any of the files (and symlinks) in the source directory were "
-"not installed to somewhere, it will warn on stderr about that."
+"Used with the deprecated B<--list-missing> and B<--fail-missing> options. "
+"Please refer to L<dh_missing(1)> for the documentation of this file."
msgstr ""
-#. type: textblock
-#: dh_install:70
-msgid ""
-"This may be useful if you have a large package and want to make sure that "
-"you don't miss installing newly added files in new upstream releases."
+#. type: =item
+#: dh_install:73
+msgid "B<--list-missing>"
msgstr ""
#. type: textblock
-#: dh_install:73
+#: dh_install:75
msgid ""
-"Note that files that are excluded from being moved via the B<-X> option are "
-"not warned about."
+"B<Deprecated>: Please use B<dh_missing --list-missing> instead. If you use "
+"this option, B<dh_install> will call B<dh_missing> with that option after it "
+"has processed all the files. Please see L<dh_missing(1)> for the "
+"documentation of this option."
msgstr ""
#. type: =item
-#: dh_install:76
+#: dh_install:82
msgid "B<--fail-missing>"
msgstr ""
#. type: textblock
-#: dh_install:78
+#: dh_install:84
msgid ""
-"This option is like B<--list-missing>, except if a file was missed, it will "
-"not only list the missing files, but also fail with a nonzero exit code."
-msgstr ""
-
-#. type: textblock
-#: dh_install:83 dh_installexamples:43
-msgid ""
-"Exclude files that contain I<item> anywhere in their filename from being "
-"installed."
+"B<Deprecated>: Please use B<dh_missing --fail-missing> instead. If you use "
+"this option, B<dh_install> will call B<dh_missing> with that option after it "
+"has processed all the files. Please see L<dh_missing(1)> for the "
+"documentation of this option."
msgstr ""
#. type: =item
-#: dh_install:86 dh_movefiles:42
+#: dh_install:91 dh_installdirs:62 dh_installdocs:114 dh_installexamples:57
+#: dh_installinfo:50 dh_installman:100 dh_movefiles:45
msgid "B<--sourcedir=>I<dir>"
msgstr ""
#. type: textblock
-#: dh_install:88
+#: dh_install:93
msgid "Look in the specified directory for files to be installed."
msgstr ""
#. type: textblock
-#: dh_install:90
+#: dh_install:95
msgid ""
"Note that this is not the same as the B<--sourcedirectory> option used by "
"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
@@ -2739,12 +5456,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_install:95
+#: dh_install:100
msgid "B<--autodest>"
msgstr ""
#. type: textblock
-#: dh_install:97
+#: dh_install:102
msgid ""
"Guess as the destination directory to install things to. If this is "
"specified, you should not list destination directories in "
@@ -2753,7 +5470,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_install:102
+#: dh_install:107
msgid ""
"Strip off F<debian/tmp> (or the sourcedir if one is given) from the front of "
"the filename, if it is present, and install into the dirname of the "
@@ -2763,30 +5480,113 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_install:108
+#: dh_install:113
msgid "I<file|dir> ... I<destdir>"
msgstr ""
#. type: textblock
-#: dh_install:110
+#: dh_install:115
msgid ""
"Lists files (or directories) to install and where to install them to. The "
"files will be installed into the first package F<dh_install> acts on."
msgstr ""
+#. type: textblock
+#: dh_install:334
+msgid "Here are some small examples of configuration files for dh_install."
+msgstr ""
+
+#. type: verbatim
+#: dh_install:336
+#, no-wrap
+msgid ""
+" # Install my-prog into usr/bin (as \"usr/bin/my-prog\")\n"
+" my-prog usr/bin\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh_install:339
+#, no-wrap
+msgid ""
+" # Install a plugins directory into usr/share/my-prog\n"
+" # (as \"usr/share/my-prog/plugins/\")\n"
+" plugins usr/share/my-prog\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh_install:343
+#, no-wrap
+msgid ""
+" # Install a file with spaces in into usr/share/my-prog/data\n"
+" # (as \"usr/share/my-prog/data/my datafile with spaces.txt\")\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" my${Space}datafile${Space}with${Space}spaces.txt "
+"usr/share/my-prog/data\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh_install:348
+#, no-wrap
+msgid ""
+" # Install a library into the multi-arch lib directory\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" build/output/libfrop*.so.* usr/lib/${DEB_HOST_MULTIARCH}\n"
+"\n"
+msgstr ""
+
#. type: =head1
-#: dh_install:254
+#: dh_install:352
msgid "LIMITATIONS"
msgstr ""
+#. type: textblock
+#: dh_install:354
+msgid ""
+"B<dh_install> cannot rename files or directories, it can only install them "
+"with the names they already have into wherever you want in the package build "
+"tree."
+msgstr ""
+
+#. type: textblock
+#: dh_install:358
+msgid ""
+"However, renaming can be achieved by using B<dh-exec> with compatibility "
+"level 9 or later. An example debian/I<package>.install file using "
+"B<dh-exec> could look like:"
+msgstr ""
+
#. type: verbatim
-#: dh_install:256
+#: dh_install:362
#, no-wrap
msgid ""
-"B<dh_install> cannot rename files or directories, it can only install them\n"
-"with the names they already have into wherever you want in the package\n"
-"build tree.\n"
-" \n"
+" #!/usr/bin/dh-exec\n"
+" debian/default.conf => /etc/my-package/start.conf\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh_install:365
+msgid "Please remember the following three things:"
+msgstr ""
+
+#. type: =item
+#: dh_install:369
+msgid ""
+"* The package must be using compatibility level 9 or later (see "
+"L<debhelper(7)>)"
+msgstr ""
+
+#. type: =item
+#: dh_install:371
+msgid "* The package will need a build-dependency on dh-exec."
+msgstr ""
+
+#. type: =item
+#: dh_install:373
+msgid "* The install file must be marked as executable."
msgstr ""
#. type: textblock
@@ -2795,48 +5595,48 @@ msgid "dh_installcatalogs - install and register SGML Catalogs"
msgstr ""
#. type: textblock
-#: dh_installcatalogs:16
+#: dh_installcatalogs:19
msgid "B<dh_installcatalogs> [S<I<debhelper options>>] [B<-n>]"
msgstr ""
#. type: textblock
-#: dh_installcatalogs:20
+#: dh_installcatalogs:23
msgid ""
"B<dh_installcatalogs> is a debhelper program that installs and registers "
"SGML catalogs. It complies with the Debian XML/SGML policy."
msgstr ""
#. type: textblock
-#: dh_installcatalogs:23
+#: dh_installcatalogs:26
msgid ""
"Catalogs will be registered in a supercatalog, in "
"F</etc/sgml/I<package>.cat>."
msgstr ""
#. type: textblock
-#: dh_installcatalogs:26
+#: dh_installcatalogs:29
msgid ""
"This command automatically adds maintainer script snippets for registering "
"and unregistering the catalogs and supercatalogs (unless B<-n> is "
-"used). These snippets are inserted into the maintainer scripts by "
-"B<dh_installdeb>; see L<dh_installdeb(1)> for an explanation of Debhelper "
-"maintainer script snippets."
+"used). These snippets are inserted into the maintainer scripts and the "
+"B<triggers> file by B<dh_installdeb>; see L<dh_installdeb(1)> for an "
+"explanation of Debhelper maintainer script snippets."
msgstr ""
#. type: textblock
-#: dh_installcatalogs:32
+#: dh_installcatalogs:36
msgid ""
"A dependency on B<sgml-base> will be added to B<${misc:Depends}>, so be sure "
"your package uses that variable in F<debian/control>."
msgstr ""
#. type: =item
-#: dh_installcatalogs:39
+#: dh_installcatalogs:43
msgid "debian/I<package>.sgmlcatalogs"
msgstr ""
#. type: textblock
-#: dh_installcatalogs:41
+#: dh_installcatalogs:45
msgid ""
"Lists the catalogs to be installed per package. Each line in that file "
"should be of the form C<I<source> I<dest>>, where I<source> indicates where "
@@ -2846,12 +5646,15 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installcatalogs:55 dh_installinit:65
-msgid "Do not modify F<postinst>/F<postrm>/F<prerm> scripts."
+#: dh_installcatalogs:62
+msgid ""
+"Do not modify F<postinst>/F<postrm>/F<prerm> scripts nor add an activation "
+"trigger."
msgstr ""
#. type: textblock
-#: dh_installcatalogs:61 dh_installdocs:127 dh_installemacsen:74 dh_installinit:142 dh_installmodules:56 dh_installudev:57 dh_installwm:56 dh_usrlocal:51
+#: dh_installcatalogs:69 dh_installemacsen:77 dh_installinit:206
+#: dh_installmodules:59 dh_installudev:52 dh_installwm:68 dh_usrlocal:62
msgid ""
"Note that this command is not idempotent. L<dh_prep(1)> should be called "
"between invocations of this command. Otherwise, it may cause multiple "
@@ -2859,12 +5662,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installcatalogs:126
+#: dh_installcatalogs:132
msgid "F</usr/share/doc/sgml-base-doc/>"
msgstr ""
#. type: textblock
-#: dh_installcatalogs:130
+#: dh_installcatalogs:136
msgid "Adam Di Carlo <aph@debian.org>"
msgstr ""
@@ -2874,81 +5677,98 @@ msgid "dh_installchangelogs - install changelogs into package build directories"
msgstr ""
#. type: textblock
-#: dh_installchangelogs:14
+#: dh_installchangelogs:18
msgid ""
"B<dh_installchangelogs> [S<I<debhelper options>>] [B<-k>] [B<-X>I<item>] "
-"[I<upstream>]"
+"[B<--no-trim>] [I<upstream>]"
msgstr ""
#. type: textblock
-#: dh_installchangelogs:18
+#: dh_installchangelogs:22
msgid ""
"B<dh_installchangelogs> is a debhelper program that is responsible for "
"installing changelogs into package build directories."
msgstr ""
#. type: textblock
-#: dh_installchangelogs:21
+#: dh_installchangelogs:25
msgid ""
"An upstream F<changelog> file may be specified as an option. If none is "
-"specified, it looks for files with names that seem likely to be changelogs. "
-"(In compatibility level 7 and above.)"
+"specified, B<dh_installchangelogs> may look for files with names that seem "
+"likely to be changelogs as described in the next paragraphs."
msgstr ""
#. type: textblock
-#: dh_installchangelogs:25
+#: dh_installchangelogs:29
msgid ""
-"If there is an upstream F<changelog> file, it will be be installed as "
-"F<usr/share/doc/package/changelog> in the package build directory."
+"In non-native packages, B<dh_installchangelogs> will first look for "
+"changelog files installed by the upstream build system into F<< "
+"usr/share/doc/I<package> >> (of the package build directory) and rename the "
+"most likely candidate (if any) to F<< usr/share/doc/I<package>/changelog "
+">>. Note that B<dh_installchangelogs> does I<not> look into any source "
+"directory (such as F<debian/tmp>). Otherwise, B<dh_installchangelogs> (at "
+"compatibility level 7 or any later) will look for changelog files in the "
+"source directory (e.g. the root or the F<docs> subdirectory). It will look "
+"for F<changelog>, F<changes> and F<history> optionally with common "
+"extensions (such as F<.txt>, F<.md> and F<.rst>)."
msgstr ""
#. type: textblock
-#: dh_installchangelogs:28
+#: dh_installchangelogs:41
msgid ""
-"If the upstream changelog is is a F<html> file (determined by file "
+"If a changelog file is specified and is an F<html> file (determined by file "
"extension), it will be installed as F<usr/share/doc/package/changelog.html> "
"instead. If the html changelog is converted to plain text, that variant can "
-"be specified as a second upstream changelog file. When no plain text variant "
-"is specified, a short F<usr/share/doc/package/changelog> is generated, "
-"pointing readers at the html changelog file."
+"be specified as a second parameter. When no plain text variant is specified, "
+"a short F<usr/share/doc/package/changelog> is generated, pointing readers at "
+"the html changelog file."
+msgstr ""
+
+#. type: textblock
+#: dh_installchangelogs:48
+msgid ""
+"The B<debchange>-style Debian changelogs are trimmed to include only entries "
+"more recent than the release date of I<oldstable>. No trimming will be "
+"performed if the B<--no-trim> option is passed or if the "
+"B<DEB_BUILD_OPTIONS> environment variable contains B<notrimdch>."
msgstr ""
#. type: =item
-#: dh_installchangelogs:39
+#: dh_installchangelogs:57
msgid "F<debian/changelog>"
msgstr ""
#. type: =item
-#: dh_installchangelogs:41
+#: dh_installchangelogs:59
msgid "F<debian/NEWS>"
msgstr ""
#. type: =item
-#: dh_installchangelogs:43
+#: dh_installchangelogs:61
msgid "debian/I<package>.changelog"
msgstr ""
#. type: =item
-#: dh_installchangelogs:45
+#: dh_installchangelogs:63
msgid "debian/I<package>.NEWS"
msgstr ""
#. type: textblock
-#: dh_installchangelogs:47
+#: dh_installchangelogs:65
msgid ""
"Automatically installed into usr/share/doc/I<package>/ in the package build "
"directory."
msgstr ""
#. type: textblock
-#: dh_installchangelogs:50
+#: dh_installchangelogs:68
msgid ""
"Use the package specific name if I<package> needs a different F<NEWS> or "
"F<changelog> file."
msgstr ""
#. type: textblock
-#: dh_installchangelogs:53
+#: dh_installchangelogs:71
msgid ""
"The F<changelog> file is installed with a name of changelog for native "
"packages, and F<changelog.Debian> for non-native packages. The F<NEWS> file "
@@ -2956,7 +5776,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installchangelogs:65
+#: dh_installchangelogs:83
msgid ""
"Keep the original name of the upstream changelog. This will be accomplished "
"by installing the upstream changelog as F<changelog>, and making a symlink "
@@ -2966,19 +5786,36 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installchangelogs:73
+#: dh_installchangelogs:91
msgid ""
"Exclude upstream F<changelog> files that contain I<item> anywhere in their "
"filename from being installed."
msgstr ""
+#. type: textblock
+#: dh_installchangelogs:94
+msgid "Note that directory name of the changelog is also part of the match."
+msgstr ""
+
#. type: =item
-#: dh_installchangelogs:76
+#: dh_installchangelogs:96
+msgid "B<--no-trim>"
+msgstr ""
+
+#. type: textblock
+#: dh_installchangelogs:98
+msgid ""
+"Install the full changelog, not its trimmed version that includes only "
+"recent entries."
+msgstr ""
+
+#. type: =item
+#: dh_installchangelogs:101
msgid "I<upstream>"
msgstr ""
#. type: textblock
-#: dh_installchangelogs:78
+#: dh_installchangelogs:103
msgid "Install this file as the upstream changelog."
msgstr ""
@@ -2988,56 +5825,63 @@ msgid "dh_installcron - install cron scripts into etc/cron.*"
msgstr ""
#. type: textblock
-#: dh_installcron:14
+#: dh_installcron:17
msgid "B<dh_installcron> [S<B<debhelper options>>] [B<--name=>I<name>]"
msgstr ""
#. type: textblock
-#: dh_installcron:18
+#: dh_installcron:21
msgid ""
"B<dh_installcron> is a debhelper program that is responsible for installing "
"cron scripts."
msgstr ""
#. type: =item
-#: dh_installcron:25
+#: dh_installcron:28
msgid "debian/I<package>.cron.daily"
msgstr ""
#. type: =item
-#: dh_installcron:27
+#: dh_installcron:30
msgid "debian/I<package>.cron.weekly"
msgstr ""
#. type: =item
-#: dh_installcron:29
+#: dh_installcron:32
msgid "debian/I<package>.cron.monthly"
msgstr ""
#. type: =item
-#: dh_installcron:31
+#: dh_installcron:34
+msgid "debian/I<package>.cron.yearly"
+msgstr ""
+
+#. type: =item
+#: dh_installcron:36
msgid "debian/I<package>.cron.hourly"
msgstr ""
#. type: =item
-#: dh_installcron:33
+#: dh_installcron:38
msgid "debian/I<package>.cron.d"
msgstr ""
#. type: textblock
-#: dh_installcron:35
+#: dh_installcron:40
msgid ""
"Installed into the appropriate F<etc/cron.*/> directory in the package build "
"directory."
msgstr ""
#. type: =item
-#: dh_installcron:44 dh_installifupdown:43 dh_installinit:110 dh_installlogcheck:46 dh_installlogrotate:26 dh_installmodules:46 dh_installpam:35 dh_installppp:39 dh_installudev:39
+#: dh_installcron:49 dh_installifupdown:46 dh_installinit:174
+#: dh_installlogcheck:49 dh_installlogrotate:29 dh_installmodules:49
+#: dh_installpam:42 dh_installppp:42 dh_installudev:38 dh_systemd_enable:94
msgid "B<--name=>I<name>"
msgstr ""
#. type: textblock
-#: dh_installcron:46
+#: dh_installcron:51
msgid ""
"Look for files named F<debian/package.name.cron.*> and install them as "
"F<etc/cron.*/name>, instead of using the usual files and installing them as "
@@ -3050,12 +5894,12 @@ msgid "dh_installdeb - install files into the DEBIAN directory"
msgstr ""
#. type: textblock
-#: dh_installdeb:14
+#: dh_installdeb:17
msgid "B<dh_installdeb> [S<I<debhelper options>>]"
msgstr ""
#. type: textblock
-#: dh_installdeb:18
+#: dh_installdeb:21
msgid ""
"B<dh_installdeb> is a debhelper program that is responsible for installing "
"files into the F<DEBIAN> directories in package build directories with the "
@@ -3063,83 +5907,355 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_installdeb:26
+#: dh_installdeb:29
msgid "I<package>.postinst"
msgstr ""
#. type: =item
-#: dh_installdeb:28
+#: dh_installdeb:31
msgid "I<package>.preinst"
msgstr ""
#. type: =item
-#: dh_installdeb:30
+#: dh_installdeb:33
msgid "I<package>.postrm"
msgstr ""
#. type: =item
-#: dh_installdeb:32
+#: dh_installdeb:35
msgid "I<package>.prerm"
msgstr ""
#. type: textblock
-#: dh_installdeb:34
+#: dh_installdeb:37
msgid "These maintainer scripts are installed into the F<DEBIAN> directory."
msgstr ""
#. type: textblock
-#: dh_installdeb:36
+#: dh_installdeb:39
+msgid ""
+"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 ""
-"Inside the scripts, the token B<#DEBHELPER#> is replaced with shell script "
-"snippets generated by other debhelper commands."
+"The B<#DEBHELPER#> token should be placed on its own line as it is often "
+"replaced by a multi-line shell script."
msgstr ""
#. type: =item
-#: dh_installdeb:39
+#: dh_installdeb:48
msgid "I<package>.triggers"
msgstr ""
#. type: =item
-#: dh_installdeb:41
+#: dh_installdeb:50
msgid "I<package>.shlibs"
msgstr ""
#. type: textblock
-#: dh_installdeb:43
+#: dh_installdeb:52
msgid "These control files are installed into the F<DEBIAN> directory."
msgstr ""
+#. type: textblock
+#: dh_installdeb:54
+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:45
+#: dh_installdeb:57
msgid "I<package>.conffiles"
msgstr ""
#. type: textblock
-#: dh_installdeb:47
-msgid "This control file will be installed into the F<DEBIAN> directory."
+#: dh_installdeb:59
+msgid ""
+"This file will be installed into the F<DEBIAN> directory. The provided file "
+"will be enriched by debhelper to include all the B<conffiles> auto-detected "
+"by debhelper (the maintainer should not list anything there as debhelper "
+"assumes it should handle that part)."
msgstr ""
#. type: textblock
-#: dh_installdeb:49
+#: 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."
+"This file is primarily useful for using \"special\" entries such as the B<< "
+"remove-on-upgrade >> feature from dpkg."
msgstr ""
#. type: =item
-#: dh_installdeb:53
+#: dh_installdeb:67
msgid "I<package>.maintscript"
msgstr ""
#. type: textblock
-#: dh_installdeb:55
+#: dh_installdeb:69
msgid ""
"Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands and "
-"parameters. Any shell metacharacters will be escaped, so arbitrary shell "
-"code cannot be inserted here. For example, a line such as C<mv_conffile "
-"/etc/oldconffile /etc/newconffile> will insert maintainer script snippets "
-"into all maintainer scripts sufficient to move that conffile."
+"parameters. However, the \"maint-script-parameters\" should I<not> be "
+"included as debhelper will add those automatically."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:73
+msgid "Example:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:75
+#, no-wrap
+msgid ""
+" # Correct\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo\n"
+" # INCORRECT\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo -- \"$@\"\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:80
+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 "
+"C<mv_conffile /etc/oldconffile /etc/newconffile> will insert maintainer "
+"script snippets into all maintainer scripts sufficient to move that "
+"conffile."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:86
+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 "
+"embed arbitrary shell code in earlier compat levels."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:90
+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: textblock
+#: dh_installdeb:95
+msgid ""
+"Where possible, B<dh_installdeb> may choose to rewrite some or all of the "
+"entries into equivalent features supported in dpkg without relying on "
+"maintainer scripts at its sole discretion (examples include rewriting "
+"B<rm_conffile> into dpkg's B<remove-on-upgrade>). The minimum requirement "
+"for activating this feature is that debhelper runs in compat 10 or later."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:111 dh_installdebconf:76
+msgid "B<-D>I<TOKEN=VALUE>, B<--define> I<TOKEN=VALUE>"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:113 dh_installdebconf:78
+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:118 dh_installdebconf:83
+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:123 dh_installdebconf:88
+msgid "An explicit declared token with this parameter will replace built-in tokens."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:126 dh_installdebconf:91
+msgid "Test examples to aid with the understanding:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:128
+#, 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:135 dh_installdebconf:100
+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:138
+msgid ""
+"It is also possible to 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:143 dh_installdebconf:108
+msgid "This can be used as in the following example:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:145
+#, 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:160
+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:164
+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:170 dh_installdebconf:135
+msgid "SUBSTITUTION IN MAINTAINER SCRIPTS"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:172
+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:177
+msgid "#DEBHELPER#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:179
+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:183 dh_installdebconf:142
+msgid "#DEB_HOST_I<NAME>#, #DEB_BUILD_I<NAME>#, #DEB_TARGET_I<NAME>#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:185 dh_installdebconf:144
+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:190 dh_installdebconf:149
+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:193 dh_installdebconf:152
+msgid "#ENV.I<NAME>#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:195 dh_installdebconf:154
+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:200 dh_installdebconf:159
+msgid ""
+"Note that there are limits on which names can be used (see L</Limitations in "
+"token names>)."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:203 dh_installdebconf:162
+msgid "#PACKAGE#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:205 dh_installdebconf:164
+msgid ""
+"This token is by default replaced by the package name, which will contain "
+"the concrete script."
+msgstr ""
+
+#. type: =head2
+#: dh_installdeb:210 dh_installdebconf:169
+msgid "Limitations in token names"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:212 dh_installdebconf:171
+msgid ""
+"All tokens intended to be substituted must match the regex: "
+"#[A-Za-z0-9_.+]+#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:214
+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
@@ -3150,19 +6266,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdebconf:14
+#: dh_installdebconf:17
msgid "B<dh_installdebconf> [S<I<debhelper options>>] [B<-n>] [S<B<--> I<params>>]"
msgstr ""
#. type: textblock
-#: dh_installdebconf:18
+#: dh_installdebconf:21
msgid ""
"B<dh_installdebconf> is a debhelper program that is responsible for "
"installing files used by debconf into package build directories."
msgstr ""
#. type: textblock
-#: dh_installdebconf:21
+#: dh_installdebconf:24
msgid ""
"It also automatically generates the F<postrm> commands needed to interface "
"with debconf. The commands are added to the maintainer scripts by "
@@ -3171,14 +6287,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdebconf:26
+#: dh_installdebconf:29
msgid ""
"Note that if you use debconf, your package probably needs to depend on it "
"(it will be added to B<${misc:Depends}> by this program)."
msgstr ""
#. type: textblock
-#: dh_installdebconf:29
+#: dh_installdebconf:32
msgid ""
"Note that for your config script to be called by B<dpkg>, your F<postinst> "
"needs to source debconf's confmodule. B<dh_installdebconf> does not install "
@@ -3187,43 +6303,43 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_installdebconf:38
+#: dh_installdebconf:41
msgid "debian/I<package>.config"
msgstr ""
#. type: textblock
-#: dh_installdebconf:40
+#: dh_installdebconf:43
msgid ""
"This is the debconf F<config> script, and is installed into the F<DEBIAN> "
"directory in the package build directory."
msgstr ""
#. type: textblock
-#: dh_installdebconf:43
+#: dh_installdebconf:46
msgid ""
"Inside the script, the token B<#DEBHELPER#> is replaced with shell script "
"snippets generated by other debhelper commands."
msgstr ""
#. type: =item
-#: dh_installdebconf:46
+#: dh_installdebconf:49
msgid "debian/I<package>.templates"
msgstr ""
#. type: textblock
-#: dh_installdebconf:48
+#: dh_installdebconf:51
msgid ""
"This is the debconf F<templates> file, and is installed into the F<DEBIAN> "
"directory in the package build directory."
msgstr ""
#. type: =item
-#: dh_installdebconf:51
+#: dh_installdebconf:54
msgid "F<debian/po/>"
msgstr ""
#. type: textblock
-#: dh_installdebconf:53
+#: dh_installdebconf:56
msgid ""
"If this directory is present, this program will automatically use "
"L<po2debconf(1)> to generate merged templates files that include the "
@@ -3231,158 +6347,311 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdebconf:57
+#: dh_installdebconf:60
msgid "For this to work, your package should build-depend on F<po-debconf>."
msgstr ""
#. type: textblock
-#: dh_installdebconf:67
+#: dh_installdebconf:70
msgid "Do not modify F<postrm> script."
msgstr ""
#. type: textblock
-#: dh_installdebconf:71
+#: dh_installdebconf:74
msgid "Pass the params to B<po2debconf>."
msgstr ""
+#. type: verbatim
+#: dh_installdebconf:93
+#, no-wrap
+msgid ""
+"\tcat >> debian/config <<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_installdebconf:103
+msgid ""
+"It is also possible to set package-specific values for a given token. This "
+"is useful when B<dh_installdebconf> 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: verbatim
+#: dh_installdebconf:110
+#, no-wrap
+msgid ""
+"\tcat >> debian/foo.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/bar.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/baz.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+" dh_installdebconf -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_installdebconf:125
+msgid ""
+"In this example, B<#TOKEN#> will expand to B<default> in "
+"F<debian/foo.config>, to B<unique-bar-value> in F<debian/bar.config> and to "
+"B<unique-baz-value> in F<debian/baz.config>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdebconf:129
+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.config> and it "
+"will be replaced by B<unique-bar-value>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdebconf:137
+msgid ""
+"The B<dh_installdebconf> will automatically replace the following tokens "
+"inside a provided maintainer script (if not replaced via B<-D>/B<--define>):"
+msgstr ""
+
+#. type: textblock
+#: dh_installdebconf:173
+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_installdebconf> to reject the command with an error in most "
+"cases."
+msgstr ""
+
#. type: textblock
#: dh_installdirs:5
msgid "dh_installdirs - create subdirectories in package build directories"
msgstr ""
#. type: textblock
-#: dh_installdirs:14
-msgid "B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [S<I<dir> ...>]"
+#: dh_installdirs:17
+msgid ""
+"B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [B<--sourcedir=>I<dir>] "
+"[B<--create-in-sourcedir>] [S<I<dir> ...>]"
msgstr ""
#. type: textblock
-#: dh_installdirs:18
+#: dh_installdirs:21
msgid ""
"B<dh_installdirs> is a debhelper program that is responsible for creating "
"subdirectories in package build directories."
msgstr ""
+#. type: textblock
+#: dh_installdirs:24
+msgid ""
+"Many packages can get away with omitting the call to B<dh_installdirs> "
+"completely. Notably, other B<dh_*> commands are expected to create "
+"directories as needed."
+msgstr ""
+
#. type: =item
-#: dh_installdirs:25
+#: dh_installdirs:32
msgid "debian/I<package>.dirs"
msgstr ""
#. type: textblock
-#: dh_installdirs:27
+#: dh_installdirs:34
msgid "Lists directories to be created in I<package>."
msgstr ""
#. type: textblock
-#: dh_installdirs:37
+#: dh_installdirs:36
+msgid ""
+"Generally, there is no need to list directories created by the upstream "
+"build system or directories needed by other B<debhelper> commands."
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:51
msgid ""
"Create any directories specified by command line parameters in ALL packages "
"acted on, not just the first."
msgstr ""
#. type: =item
-#: dh_installdirs:40
+#: dh_installdirs:54
+msgid "B<--create-in-sourcedir>, B<--no-create-in-sourcedir>"
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:56
+msgid ""
+"Whether to create the specified directories in the source directory (usually "
+"F<debian/tmp>) I<in addition to> in the package build directory (usually F<< "
+"debian/I<package> >>)."
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:60
+msgid "The default is B<--no-create-in-sourcedir>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:64
+msgid ""
+"Consider I<dir> the source directory for the packages acted on instead of "
+"the default (which is usually F<debian/tmp>)."
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:67
+msgid ""
+"Please note that this option is dependent on the B<--create-in-sourcedir> "
+"option (when B<--no-create-in-sourcedir> is in effect, this option does "
+"nothing in B<dh_installdirs>)."
+msgstr ""
+
+#. type: =item
+#: dh_installdirs:71
msgid "I<dir> ..."
msgstr ""
#. type: textblock
-#: dh_installdirs:42
+#: dh_installdirs:73
msgid ""
"Create these directories in the package build directory of the first package "
"acted on. (Or in all packages if B<-A> is specified.)"
msgstr ""
#. type: textblock
-#: dh_installdocs:5
+#: dh_installdocs:7
msgid "dh_installdocs - install documentation into package build directories"
msgstr ""
#. type: textblock
-#: dh_installdocs:14
+#: dh_installdocs:19
msgid ""
"B<dh_installdocs> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
"[S<I<file> ...>]"
msgstr ""
#. type: textblock
-#: dh_installdocs:18
+#: dh_installdocs:23
msgid ""
"B<dh_installdocs> is a debhelper program that is responsible for installing "
"documentation into F<usr/share/doc/package> in package build directories."
msgstr ""
+#. type: textblock
+#: dh_installdocs:26
+msgid ""
+"In compat 10 and earlier, L<dh_install(1)> may be a better tool for handling "
+"the upstream documentation, when upstream's own build system installs all "
+"the desired documentation correctly. In this case, B<dh_installdocs> is "
+"still useful for installing packaging related documentation (e.g. the "
+"F<debian/copyright> file)."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:31 dh_installexamples:27 dh_installinfo:24 dh_installman:69
+msgid ""
+"From debhelper compatibility level 11 on, B<dh_install> will fall back to "
+"looking in F<debian/tmp> for files, if it does not find them in the current "
+"directory (or wherever you've told it to look using B<--sourcedir>)."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:35
+msgid ""
+"In compat 11 and later, B<dh_installdocs> offers many of the features that "
+"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
-#: dh_installdocs:25
+#: dh_installdocs:44
msgid "debian/I<package>.docs"
msgstr ""
#. type: textblock
-#: dh_installdocs:27
+#: dh_installdocs:46
msgid "List documentation files to be installed into I<package>."
msgstr ""
#. type: =item
-#: dh_installdocs:29
+#: dh_installdocs:51
msgid "F<debian/copyright>"
msgstr ""
#. type: textblock
-#: dh_installdocs:31
+#: dh_installdocs:53
msgid ""
"The copyright file is installed into all packages, unless a more specific "
"copyright file is available."
msgstr ""
#. type: =item
-#: dh_installdocs:34
+#: dh_installdocs:56
msgid "debian/I<package>.copyright"
msgstr ""
#. type: =item
-#: dh_installdocs:36
+#: dh_installdocs:58
msgid "debian/I<package>.README.Debian"
msgstr ""
#. type: =item
-#: dh_installdocs:38
+#: dh_installdocs:60
msgid "debian/I<package>.TODO"
msgstr ""
#. type: textblock
-#: dh_installdocs:40
+#: dh_installdocs:62
msgid "Each of these files is automatically installed if present for a I<package>."
msgstr ""
#. type: =item
-#: dh_installdocs:43
+#: dh_installdocs:65
msgid "F<debian/README.Debian>"
msgstr ""
#. type: =item
-#: dh_installdocs:45
+#: dh_installdocs:67
msgid "F<debian/TODO>"
msgstr ""
#. type: textblock
-#: dh_installdocs:47
+#: dh_installdocs:69
msgid ""
"These files are installed into the first binary package listed in "
"debian/control."
msgstr ""
#. type: textblock
-#: dh_installdocs:50
+#: dh_installdocs:72
msgid ""
"Note that F<README.debian> files are also installed as F<README.Debian>, and "
"F<TODO> files will be installed as F<TODO.Debian> in non-native packages."
msgstr ""
#. type: =item
-#: dh_installdocs:53
+#: dh_installdocs:75
msgid "debian/I<package>.doc-base"
msgstr ""
#. type: textblock
-#: dh_installdocs:55
+#: dh_installdocs:77
msgid ""
"Installed as doc-base control files. Note that the doc-id will be determined "
"from the B<Document:> entry in the doc-base control file in question. In the "
@@ -3392,12 +6661,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_installdocs:61
+#: dh_installdocs:83
msgid "debian/I<package>.doc-base.*"
msgstr ""
#. type: textblock
-#: dh_installdocs:63
+#: dh_installdocs:85
msgid ""
"If your package needs to register more than one document, you need multiple "
"doc-base files, and can name them like this. In the event that multiple "
@@ -3407,26 +6676,91 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdocs:77 dh_installinfo:37 dh_installman:67
+#: dh_installdocs:91
+msgid ""
+"Please be aware that this deduplication is currently done in memory only, so "
+"for now it requires B<dh_installdocs> to be called no more than once during "
+"the package build. Calling B<dh_installdocs -p>I<package> in combination "
+"with using F<debian/>I<package>F<.doc-base.*> files can lead to "
+"uninstallable packages. See L<https://bugs.debian.org/980903> for details."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:106 dh_installinfo:47 dh_installman:92
msgid ""
"Install all files specified by command line parameters in ALL packages acted "
"on."
msgstr ""
#. type: textblock
-#: dh_installdocs:82
+#: dh_installdocs:111
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"installed. Note that this includes doc-base files."
msgstr ""
+#. type: textblock
+#: dh_installdocs:116 dh_installexamples:59 dh_installinfo:52 dh_installman:102
+msgid ""
+"Look in the specified directory for files to be installed. This option "
+"requires compat 11 or later (it is silently ignored in compat 10 or "
+"earlier)."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:119 dh_installman:105
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installman> automatically looks for files in F<debian/tmp> in debhelper "
+"compatibility level 11 and above."
+msgstr ""
+
#. type: =item
-#: dh_installdocs:85
+#: dh_installdocs:124 dh_installexamples:67
+msgid "B<--doc-main-package=>I<main-package>"
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:126 dh_installexamples:69
+msgid ""
+"Set the main package for a documentation package. This is used to install "
+"the documentation of the documentation package in F<< "
+"/usr/share/doc/I<main-package> >> as recommended by the Debian policy manual "
+"3.9.7 in §12.3."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:131 dh_installexamples:74
+msgid ""
+"In compat 11 (or later), this option is only useful if debhelper's "
+"auto-detection of the main package is wrong. The option can also be used to "
+"silence a warning from debhelper when the auto-detection fails but the "
+"default happens to be correct."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:136
+msgid ""
+"This option cannot be used when B<dh_installdocs> is instructed to act on "
+"multiple packages. If you need this option, you will generally need to "
+"combine it with B<-p> to ensure exactly one package is acted on."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:141
+msgid ""
+"Please keep in mind that some documentation (the copyright file, "
+"README.Debian, etc.) will be unaffected by this option."
+msgstr ""
+
+#. type: =item
+#: dh_installdocs:144
msgid "B<--link-doc=>I<package>"
msgstr ""
#. type: textblock
-#: dh_installdocs:87
+#: dh_installdocs:146
msgid ""
"Make the documentation directory of all packages acted on be a symlink to "
"the documentation directory of I<package>. This has no effect when acting on "
@@ -3436,7 +6770,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdocs:93
+#: dh_installdocs:152
msgid ""
"debhelper will try to avoid installing files into linked documentation "
"directories that would cause conflicts with the linked package. The B<-A> "
@@ -3446,7 +6780,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdocs:99
+#: dh_installdocs:158
msgid ""
"(An older method to accomplish the same thing, which is still supported, is "
"to make the documentation directory of a package be a dangling symlink, "
@@ -3454,19 +6788,54 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdocs:105
+#: dh_installdocs:162
+msgid ""
+"Please note that this option only applies to the documentation directory for "
+"the package itself. When the package ships documentation for another "
+"package (e.g. see B<--doc-main-package>), it will not use a symlink for the "
+"documentation of the other package."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:168
+msgid ""
+"B<CAVEAT 1>: If a previous version of the package was built without this "
+"option and is now built with it (or vice-versa), it requires a \"dir to "
+"symlink\" (or \"symlink to dir\") migration. Since debhelper has no "
+"knowledge of previous versions, you have to enable this migration itself."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:174
+msgid ""
+"This can be done by providing a \"debian/I<package>.maintscript\" file and "
+"using L<dh_installdeb(1)> to provide the relevant maintainer script "
+"snippets."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:178
+msgid ""
+"B<CAVEAT 2>: The use of B<--link-doc> should only be done when the packages "
+"have same \"architecture\" type. A link from an architecture independent "
+"package to an architecture dependent package (or vice versa) will not work. "
+"Since compat 10, debhelper will actively reject unsupported combinations."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:186
msgid ""
"Install these files as documentation into the first package acted on. (Or in "
"all packages if B<-A> is specified)."
msgstr ""
#. type: textblock
-#: dh_installdocs:112
+#: dh_installdocs:193
msgid "This is an example of a F<debian/package.docs> file:"
msgstr ""
#. type: verbatim
-#: dh_installdocs:114
+#: dh_installdocs:195
#, no-wrap
msgid ""
" README\n"
@@ -3479,7 +6848,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installdocs:123
+#: dh_installdocs:204
msgid ""
"Note that B<dh_installdocs> will happily copy entire directory hierarchies "
"if you ask it to (similar to B<cp -a>). If it is asked to install a "
@@ -3492,14 +6861,14 @@ msgid "dh_installemacsen - register an Emacs add on package"
msgstr ""
#. type: textblock
-#: dh_installemacsen:14
+#: dh_installemacsen:17
msgid ""
"B<dh_installemacsen> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
"[B<--flavor=>I<foo>]"
msgstr ""
#. type: textblock
-#: dh_installemacsen:18
+#: dh_installemacsen:21
msgid ""
"B<dh_installemacsen> is a debhelper program that is responsible for "
"installing files used by the Debian B<emacsen-common> package into package "
@@ -3507,7 +6876,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installemacsen:22
+#: dh_installemacsen:25
msgid ""
"It also automatically generates the F<preinst> F<postinst> and F<prerm> "
"commands needed to register a package as an Emacs add on package. The "
@@ -3516,99 +6885,99 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_installemacsen:31
+#: dh_installemacsen:34
msgid "debian/I<package>.emacsen-compat"
msgstr ""
#. type: textblock
-#: dh_installemacsen:33
+#: dh_installemacsen:36
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/compat/package> in the "
"package build directory."
msgstr ""
#. type: =item
-#: dh_installemacsen:36
+#: dh_installemacsen:39
msgid "debian/I<package>.emacsen-install"
msgstr ""
#. type: textblock
-#: dh_installemacsen:38
+#: dh_installemacsen:41
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/install/package> in the "
"package build directory."
msgstr ""
#. type: =item
-#: dh_installemacsen:41
+#: dh_installemacsen:44
msgid "debian/I<package>.emacsen-remove"
msgstr ""
#. type: textblock
-#: dh_installemacsen:43
+#: dh_installemacsen:46
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/remove/package> in the "
"package build directory."
msgstr ""
#. type: =item
-#: dh_installemacsen:46
+#: dh_installemacsen:49
msgid "debian/I<package>.emacsen-startup"
msgstr ""
#. type: textblock
-#: dh_installemacsen:48
+#: dh_installemacsen:51
msgid ""
"Installed into etc/emacs/site-start.d/50I<package>.el in the package build "
"directory. Use B<--priority> to use a different priority than 50."
msgstr ""
#. type: textblock
-#: dh_installemacsen:59 dh_usrlocal:45
+#: dh_installemacsen:62 dh_usrlocal:56
msgid "Do not modify F<postinst>/F<prerm> scripts."
msgstr ""
#. type: =item
-#: dh_installemacsen:61 dh_installwm:38
+#: dh_installemacsen:64 dh_installwm:45
msgid "B<--priority=>I<n>"
msgstr ""
#. type: textblock
-#: dh_installemacsen:63
+#: dh_installemacsen:66
msgid "Sets the priority number of a F<site-start.d> file. Default is 50."
msgstr ""
#. type: =item
-#: dh_installemacsen:65
+#: dh_installemacsen:68
msgid "B<--flavor=>I<foo>"
msgstr ""
#. type: textblock
-#: dh_installemacsen:67
+#: dh_installemacsen:70
msgid ""
"Sets the flavor a F<site-start.d> file will be installed in. Default is "
"B<emacs>, alternatives include B<xemacs> and B<emacs20>."
msgstr ""
#. type: textblock
-#: dh_installemacsen:143
+#: dh_installemacsen:140
msgid "L<debhelper(7)> L</usr/share/doc/emacsen-common/debian-emacs-policy.gz>"
msgstr ""
#. type: textblock
-#: dh_installexamples:5
+#: dh_installexamples:7
msgid "dh_installexamples - install example files into package build directories"
msgstr ""
#. type: textblock
-#: dh_installexamples:14
+#: dh_installexamples:19
msgid ""
"B<dh_installexamples> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
"[S<I<file> ...>]"
msgstr ""
#. type: textblock
-#: dh_installexamples:18
+#: dh_installexamples:23
msgid ""
"B<dh_installexamples> is a debhelper program that is responsible for "
"installing examples into F<usr/share/doc/package/examples> in package build "
@@ -3616,31 +6985,64 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_installexamples:26
+#: dh_installexamples:35
msgid "debian/I<package>.examples"
msgstr ""
#. type: textblock
-#: dh_installexamples:28
+#: dh_installexamples:37
msgid "Lists example files or directories to be installed."
msgstr ""
#. type: textblock
-#: dh_installexamples:38
+#: dh_installexamples:39
+msgid ""
+"If upstream provides an F<examples> directory, you will often want to use "
+"B<examples/*> rather than B<examples> in this file. The latter would create "
+"F<< /usr/share/doc/I<package>/examples/examples >>, which is rarely what you "
+"want."
+msgstr ""
+
+#. type: textblock
+#: dh_installexamples:54
msgid ""
"Install any files specified by command line parameters in ALL packages acted "
"on."
msgstr ""
#. type: textblock
-#: dh_installexamples:48
+#: dh_installexamples:62
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installexamples> automatically looks for files in F<debian/tmp> in "
+"debhelper compatibility level 11 and above."
+msgstr ""
+
+#. type: textblock
+#: dh_installexamples:79
+msgid ""
+"This option cannot be used when B<dh_installexamples> is instructed to act "
+"on multiple packages. If you need this option, you will generally need to "
+"combine it with B<-p> to ensure exactly one package is acted on."
+msgstr ""
+
+#. type: textblock
+#: dh_installexamples:86
+msgid ""
+"Exclude files that contain I<item> anywhere in their filename from being "
+"installed."
+msgstr ""
+
+#. type: textblock
+#: dh_installexamples:91
msgid ""
"Install these files (or directories) as examples into the first package "
"acted on. (Or into all packages if B<-A> is specified.)"
msgstr ""
#. type: textblock
-#: dh_installexamples:55
+#: dh_installexamples:98
msgid ""
"Note that B<dh_installexamples> will happily copy entire directory "
"hierarchies if you ask it to (similar to B<cp -a>). If it is asked to "
@@ -3653,12 +7055,12 @@ msgid "dh_installifupdown - install if-up and if-down hooks"
msgstr ""
#. type: textblock
-#: dh_installifupdown:14
+#: dh_installifupdown:17
msgid "B<dh_installifupdown> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr ""
#. type: textblock
-#: dh_installifupdown:18
+#: dh_installifupdown:21
msgid ""
"B<dh_installifupdown> is a debhelper program that is responsible for "
"installing F<if-up>, F<if-down>, F<if-pre-up>, and F<if-post-down> hook "
@@ -3666,34 +7068,34 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_installifupdown:26
+#: dh_installifupdown:29
msgid "debian/I<package>.if-up"
msgstr ""
#. type: =item
-#: dh_installifupdown:28
+#: dh_installifupdown:31
msgid "debian/I<package>.if-down"
msgstr ""
#. type: =item
-#: dh_installifupdown:30
+#: dh_installifupdown:33
msgid "debian/I<package>.if-pre-up"
msgstr ""
#. type: =item
-#: dh_installifupdown:32
+#: dh_installifupdown:35
msgid "debian/I<package>.if-post-down"
msgstr ""
#. type: textblock
-#: dh_installifupdown:34
+#: dh_installifupdown:37
msgid ""
"These files are installed into etc/network/if-*.d/I<package> in the package "
"build directory."
msgstr ""
#. type: textblock
-#: dh_installifupdown:45
+#: dh_installifupdown:48
msgid ""
"Look for files named F<debian/package.name.if-*> and install them as "
"F<etc/network/if-*/name>, instead of using the usual files and installing "
@@ -3706,29 +7108,38 @@ msgid "dh_installinfo - install info files"
msgstr ""
#. type: textblock
-#: dh_installinfo:14
+#: dh_installinfo:17
msgid "B<dh_installinfo> [S<I<debhelper options>>] [B<-A>] [S<I<file> ...>]"
msgstr ""
#. type: textblock
-#: dh_installinfo:18
+#: dh_installinfo:21
msgid ""
"B<dh_installinfo> is a debhelper program that is responsible for installing "
"info files into F<usr/share/info> in the package build directory."
msgstr ""
#. type: =item
-#: dh_installinfo:25
+#: dh_installinfo:32
msgid "debian/I<package>.info"
msgstr ""
#. type: textblock
-#: dh_installinfo:27
+#: dh_installinfo:34
msgid "List info files to be installed."
msgstr ""
#. type: textblock
-#: dh_installinfo:42
+#: dh_installinfo:55
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installinfo> automatically looks for files in F<debian/tmp> in "
+"debhelper compatibility level 11 and above."
+msgstr ""
+
+#. type: textblock
+#: dh_installinfo:62
msgid ""
"Install these info files into the first package acted on. (Or in all "
"packages if B<-A> is specified)."
@@ -3740,96 +7151,124 @@ msgid "dh_installinit - install service init files into package build directorie
msgstr ""
#. type: textblock
-#: dh_installinit:15
+#: dh_installinit:18
msgid ""
"B<dh_installinit> [S<I<debhelper options>>] [B<--name=>I<name>] [B<-n>] "
"[B<-R>] [B<-r>] [B<-d>] [S<B<--> I<params>>]"
msgstr ""
#. type: textblock
-#: dh_installinit:19
+#: dh_installinit:22
msgid ""
"B<dh_installinit> is a debhelper program that is responsible for installing "
-"init scripts with associated defaults files, as well as upstart job files, "
-"and systemd service files into package build directories."
+"init scripts with associated defaults files. In compatibility levels up to "
+"and including 10, B<dh_installinit> will also install some systemd related "
+"files provided by the debian packaging (see the L</FILES> section below). "
+"In compatibility levels up to and including 11, B<dh_installinit> will also "
+"handle upstart jobs provided in the debian packaging (see the L</FILES> for "
+"more information on this as well)."
msgstr ""
#. type: textblock
-#: dh_installinit:23
+#: dh_installinit:31
msgid ""
"It also automatically generates the F<postinst> and F<postrm> and F<prerm> "
"commands needed to set up the symlinks in F</etc/rc*.d/> to start and stop "
"the init scripts."
msgstr ""
+#. type: textblock
+#: dh_installinit:35
+msgid ""
+"In compat 10 or earlier: If a package only ships a systemd service file and "
+"no sysvinit script is provided, you may want to exclude the call to "
+"dh_installinit for that package (e.g. via B<-N>). Otherwise, you may get "
+"warnings from lintian about init.d scripts not being included in the "
+"package."
+msgstr ""
+
#. type: =item
-#: dh_installinit:31
+#: dh_installinit:45
msgid "debian/I<package>.init"
msgstr ""
#. type: textblock
-#: dh_installinit:33
+#: dh_installinit:47
msgid ""
"If this exists, it is installed into etc/init.d/I<package> in the package "
"build directory."
msgstr ""
#. type: =item
-#: dh_installinit:36
+#: dh_installinit:50
msgid "debian/I<package>.default"
msgstr ""
#. type: textblock
-#: dh_installinit:38
+#: dh_installinit:52
msgid ""
"If this exists, it is installed into etc/default/I<package> in the package "
"build directory."
msgstr ""
#. type: =item
-#: dh_installinit:41
+#: dh_installinit:55
msgid "debian/I<package>.upstart"
msgstr ""
#. type: textblock
-#: dh_installinit:43
+#: dh_installinit:57
msgid ""
-"If this exists, it is installed into etc/init/I<package>.conf in the package "
-"build directory."
+"In compatibility level 11, this file will trigger an error with a reminder "
+"about ensuring the proper removal of the upstart file in the previous "
+"package version. Please consider using the \"rm_conffile\" feature from "
+"L<dh_installdeb(1)> to ensure the proper removal of previous upstart files."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:62
+msgid ""
+"In compatibility level 10, if this file exists, it is installed into "
+"etc/init/I<package>.conf in the package build directory."
msgstr ""
#. type: =item
-#: dh_installinit:46
+#: dh_installinit:65
msgid "debian/I<package>.service"
msgstr ""
#. type: textblock
-#: dh_installinit:48
+#: dh_installinit:67
msgid ""
-"If this exists, it is installed into lib/systemd/system/I<package>.service "
-"in the package build directory."
+"If this exists, it is installed into F<< "
+"lib/systemd/system/I<package>.service >> in the package build "
+"directory. Only used in compat levels 10 and below."
msgstr ""
#. type: =item
-#: dh_installinit:51
+#: dh_installinit:70 dh_systemd_enable:50
msgid "debian/I<package>.tmpfile"
msgstr ""
#. type: textblock
-#: dh_installinit:53
+#: dh_installinit:72
msgid ""
"If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in "
-"the package build directory. (The tmpfiles.d mechanism is currently only "
-"used by systemd.)"
+"the package build directory. Only used in compat levels 10 and below."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:83
+msgid "Do not modify F<postinst>/F<postrm>/F<prerm> scripts."
msgstr ""
#. type: =item
-#: dh_installinit:67
-msgid "B<-o>, B<--onlyscripts>"
+#: dh_installinit:85
+msgid "B<-o>, B<--only-scripts>"
msgstr ""
#. type: textblock
-#: dh_installinit:69
+#: dh_installinit:87
msgid ""
"Only modify F<postinst>/F<postrm>/F<prerm> scripts, do not actually install "
"any init script, default files, upstart job or systemd service file. May be "
@@ -3837,21 +7276,45 @@ msgid ""
"doesn't make it easy to let B<dh_installinit> find it."
msgstr ""
+#. type: textblock
+#: dh_installinit:92
+msgid ""
+"B<Caveat>: This will bypass all the regular checks and I<unconditionally> "
+"modify the scripts. You will almost certainly want to use this with B<-p> "
+"to limit, which packages are affected by the call. Example:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installinit:97
+#, no-wrap
+msgid ""
+" override_dh_installinit:\n"
+"\tdh_installinit -pfoo --only-scripts\n"
+"\tdh_installinit --remaining\n"
+"\n"
+msgstr ""
+
#. type: =item
-#: dh_installinit:74
+#: dh_installinit:101
msgid "B<-R>, B<--restart-after-upgrade>"
msgstr ""
#. type: textblock
-#: dh_installinit:76
+#: dh_installinit:103
msgid ""
"Do not stop the init script until after the package upgrade has been "
-"completed. This is different than the default behavior, which stops the "
-"script in the F<prerm>, and starts it again in the F<postinst>."
+"completed. This is the default behaviour in compat 10."
msgstr ""
#. type: textblock
-#: dh_installinit:80
+#: dh_installinit:106
+msgid ""
+"In early compat levels, the default was to stop the script in the F<prerm>, "
+"and starts it again in the F<postinst>."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:109 dh_systemd_start:45
msgid ""
"This can be useful for daemons that should not have a possibly long downtime "
"during upgrade. But you should make sure that the daemon will not get "
@@ -3860,57 +7323,125 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_installinit:85
-msgid "B<-r>, B<--no-restart-on-upgrade>"
+#: dh_installinit:114 dh_systemd_start:50
+msgid "B<--no-restart-after-upgrade>"
msgstr ""
#. type: textblock
-#: dh_installinit:87
-msgid "Do not stop init script on upgrade."
+#: dh_installinit:116 dh_systemd_start:52
+msgid ""
+"Undo a previous B<--restart-after-upgrade> (or the default of compat 10). "
+"If no other options are given, this will cause the service to be stopped in "
+"the F<prerm> script and started again in the F<postinst> script."
msgstr ""
#. type: =item
-#: dh_installinit:89
+#: dh_installinit:121 dh_systemd_start:57
+msgid "B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>"
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:123
+msgid ""
+"Do not stop init script on upgrade. This has the side-effect of not "
+"restarting the service as a part of the upgrade."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:126
+msgid ""
+"If you want to restart the service with minimal downtime, please use "
+"B<--restart-after-upgrade> (default in compat 10 or later). If you want the "
+"service to be restarted but be stopped during the upgrade, then please use "
+"B<--no-restart-after-upgrade> (note the \"after-upgrade\")."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:131
+msgid ""
+"Note that the B<--no-restart-on-upgrade> alias is deprecated and will be "
+"removed in compat 12. This is to avoid confusion with the "
+"B<--no-restart-after-upgrade> option. The B<--no-stop-on-upgrade> variant "
+"was introduced in debhelper 10.2 (included in Debian stretch)."
+msgstr ""
+
+#. type: =item
+#: dh_installinit:136 dh_systemd_start:61
msgid "B<--no-start>"
msgstr ""
#. type: textblock
-#: dh_installinit:91
+#: dh_installinit:138
msgid ""
"Do not start the init script on install or upgrade, or stop it on removal. "
"Only call B<update-rc.d>. Useful for rcS scripts."
msgstr ""
#. type: =item
-#: dh_installinit:94
+#: dh_installinit:141 dh_systemd_enable:86
+msgid "B<--no-enable>"
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:143
+msgid ""
+"Disable the init script on purge, but do not enable them on install. This "
+"implies a versioned dependency on B<< init-system-helpers (E<gt>= 1.51) >> "
+"as it is the first (functional) version that supports B<< update-rc.d "
+"E<lt>scriptE<gt> defaults-disabled >>."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:148
+msgid ""
+"B<Note> that this option does not affect whether the services are started. "
+"Please remember to also use B<--no-start> if the service should not be "
+"started."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:152
+msgid ""
+"Cannot be combined with B<-u>I<params>, B<--update-rcd-params=>I<params>, or "
+"B<--> I<params>."
+msgstr ""
+
+#. type: =item
+#: dh_installinit:155
msgid "B<-d>, B<--remove-d>"
msgstr ""
#. type: textblock
-#: dh_installinit:96
+#: dh_installinit:157
msgid ""
"Remove trailing B<d> from the name of the package, and use the result for "
"the filename the upstart job file is installed as in F<etc/init/> , and for "
"the filename the init script is installed as in etc/init.d and the default "
-"file is installed as in F<etc/default/> . This may be useful for daemons "
-"with names ending in B<d>. (Note: this takes precedence over the "
-"B<--init-script> parameter described below.)"
+"file is installed as in F<etc/default/>. This may be useful for daemons with "
+"names ending in B<d>. (Note: this takes precedence over the B<--init-script> "
+"parameter described below.)"
msgstr ""
#. type: =item
-#: dh_installinit:103
+#: dh_installinit:164
msgid "B<-u>I<params> B<--update-rcd-params=>I<params>"
msgstr ""
#. type: textblock
-#: dh_installinit:107
+#: dh_installinit:168
msgid ""
-"Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> will be "
-"passed to L<update-rc.d(8)>."
+"Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> (or "
+"B<defaults-disabled> with B<--no-enable>) will be passed to "
+"L<update-rc.d(8)>."
msgstr ""
#. type: textblock
-#: dh_installinit:112
+#: dh_installinit:172
+msgid "Cannot be combined with B<--no-enable>."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:176
msgid ""
"Install the init script (and default file) as well as upstart job file using "
"the filename I<name> instead of the default filename, which is the package "
@@ -3921,12 +7452,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_installinit:120
+#: dh_installinit:184
msgid "B<--init-script=>I<scriptname>"
msgstr ""
#. type: textblock
-#: dh_installinit:122
+#: dh_installinit:186
msgid ""
"Use I<scriptname> as the filename the init script is installed as in "
"F<etc/init.d/> (and also use it as the filename for the defaults file, if it "
@@ -3937,96 +7468,166 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installinit:129
+#: dh_installinit:193
msgid ""
"This parameter is deprecated, use the B<--name> parameter instead. This "
"parameter is incompatible with the use of upstart jobs."
msgstr ""
#. type: =item
-#: dh_installinit:132
+#: dh_installinit:196
msgid "B<--error-handler=>I<function>"
msgstr ""
#. type: textblock
-#: dh_installinit:134
+#: dh_installinit:198
msgid ""
"Call the named shell I<function> if running the init script fails. The "
"function should be provided in the F<prerm> and F<postinst> scripts, before "
"the B<#DEBHELPER#> token."
msgstr ""
-#. type: =head1
-#: dh_installinit:330
-msgid "AUTHORS"
+#. type: textblock
+#: dh_installinit:415
+msgid "L<debhelper(7)>, L<dh_installsystemd(1)>"
msgstr ""
#. type: textblock
-#: dh_installinit:334
+#: dh_installinit:423
msgid "Steve Langasek <steve.langasek@canonical.com>"
msgstr ""
#. type: textblock
-#: dh_installinit:336
+#: dh_installinit:425
msgid "Michael Stapelberg <stapelberg@debian.org>"
msgstr ""
#. type: textblock
+#: dh_installinitramfs:5
+msgid "dh_installinitramfs - install initramfs hooks and setup maintscripts"
+msgstr ""
+
+#. type: textblock
+#: dh_installinitramfs:17
+msgid "B<dh_installinitramfs> [S<B<debhelper options>>] [B<-n>]"
+msgstr ""
+
+#. type: textblock
+#: dh_installinitramfs:21
+msgid ""
+"B<dh_installinitramfs> is a debhelper program that is responsible for "
+"installing Debian package provided initramfs hooks."
+msgstr ""
+
+#. type: textblock
+#: dh_installinitramfs:24
+msgid ""
+"If B<dh_installinitramfs> installs or detects one or more initramfs hooks in "
+"the package, then it also automatically generates the noawait trigger "
+"B<update-initframfs> command needed to interface with the Debian initramfs "
+"system. This trigger is inserted into the packaging by L<dh_installdeb(1)>."
+msgstr ""
+
+#. type: =item
+#: dh_installinitramfs:34
+msgid "debian/I<package>.initramfs-hook"
+msgstr ""
+
+#. type: textblock
+#: dh_installinitramfs:36
+msgid ""
+"Assumed to be an initramfs hook that will be installed into F<< "
+"usr/share/initramfs-tools/hooks/I<package> >> in the package build "
+"directory. See B<HOOK SCRIPTS> in L<initramfs-tools(8)> for more information "
+"about initramfs hooks."
+msgstr ""
+
+#. type: textblock
+#: dh_installinitramfs:49
+msgid ""
+"Do not add the B<update-initramfs> trigger even if it seems like the package "
+"might need it. The option is called B<--no-scripts> for historical reasons "
+"as B<dh_installinitramfs> would previously generate maintainer scripts that "
+"called B<update-initramfs -u>."
+msgstr ""
+
+#. type: textblock
+#: dh_installinitramfs:54
+msgid ""
+"Use this option, if you need to interface with the B<update-initramfs> "
+"system that is not satisfied by the noawait trigger (e.g. because you need "
+"the extra guarantees and head-aches of a await trigger)."
+msgstr ""
+
+#. type: textblock
+#: dh_installinitramfs:62
+msgid ""
+"Note that this command is not idempotent. L<dh_prep(1)> should be called "
+"between invocations of this command. Otherwise, it may cause multiple "
+"instances of the same text to be added to triggers file."
+msgstr ""
+
+#. type: textblock
+#: dh_installinitramfs:93
+msgid "L<debhelper(7)> L<update-initramfs(8)> L<initramfs-tools(8)>"
+msgstr ""
+
+#. type: textblock
#: dh_installlogcheck:5
msgid "dh_installlogcheck - install logcheck rulefiles into etc/logcheck/"
msgstr ""
#. type: textblock
-#: dh_installlogcheck:14
+#: dh_installlogcheck:17
msgid "B<dh_installlogcheck> [S<I<debhelper options>>]"
msgstr ""
#. type: textblock
-#: dh_installlogcheck:18
+#: dh_installlogcheck:21
msgid ""
"B<dh_installlogcheck> is a debhelper program that is responsible for "
"installing logcheck rule files."
msgstr ""
#. type: =item
-#: dh_installlogcheck:25
+#: dh_installlogcheck:28
msgid "debian/I<package>.logcheck.cracking"
msgstr ""
#. type: =item
-#: dh_installlogcheck:27
+#: dh_installlogcheck:30
msgid "debian/I<package>.logcheck.violations"
msgstr ""
#. type: =item
-#: dh_installlogcheck:29
+#: dh_installlogcheck:32
msgid "debian/I<package>.logcheck.violations.ignore"
msgstr ""
#. type: =item
-#: dh_installlogcheck:31
+#: dh_installlogcheck:34
msgid "debian/I<package>.logcheck.ignore.workstation"
msgstr ""
#. type: =item
-#: dh_installlogcheck:33
+#: dh_installlogcheck:36
msgid "debian/I<package>.logcheck.ignore.server"
msgstr ""
#. type: =item
-#: dh_installlogcheck:35
+#: dh_installlogcheck:38
msgid "debian/I<package>.logcheck.ignore.paranoid"
msgstr ""
#. type: textblock
-#: dh_installlogcheck:37
+#: dh_installlogcheck:40
msgid ""
"Each of these files, if present, are installed into corresponding "
"subdirectories of F<etc/logcheck/> in package build directories."
msgstr ""
#. type: textblock
-#: dh_installlogcheck:48
+#: dh_installlogcheck:51
msgid ""
"Look for files named F<debian/package.name.logcheck.*> and install them into "
"the corresponding subdirectories of F<etc/logcheck/>, but use the specified "
@@ -4034,7 +7635,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh_installlogcheck:84
+#: dh_installlogcheck:85
#, no-wrap
msgid ""
"This program is a part of debhelper.\n"
@@ -4042,7 +7643,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installlogcheck:88
+#: dh_installlogcheck:89
msgid "Jon Middleton <jjm@debian.org>"
msgstr ""
@@ -4052,12 +7653,12 @@ msgid "dh_installlogrotate - install logrotate config files"
msgstr ""
#. type: textblock
-#: dh_installlogrotate:14
+#: dh_installlogrotate:17
msgid "B<dh_installlogrotate> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr ""
#. type: textblock
-#: dh_installlogrotate:18
+#: dh_installlogrotate:21
msgid ""
"B<dh_installlogrotate> is a debhelper program that is responsible for "
"installing logrotate config files into F<etc/logrotate.d> in package build "
@@ -4065,7 +7666,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installlogrotate:28
+#: dh_installlogrotate:31
msgid ""
"Look for files named F<debian/package.name.logrotate> and install them as "
"F<etc/logrotate.d/name>, instead of using the usual files and installing "
@@ -4078,33 +7679,59 @@ msgid "dh_installman - install man pages into package build directories"
msgstr ""
#. type: textblock
-#: dh_installman:15
+#: dh_installman:18
msgid "B<dh_installman> [S<I<debhelper options>>] [S<I<manpage> ...>]"
msgstr ""
#. type: textblock
-#: dh_installman:19
+#: dh_installman:22
msgid ""
"B<dh_installman> is a debhelper program that handles installing man pages "
-"into the correct locations in package build directories. You tell it what "
-"man pages go in your packages, and it figures out where to install them "
-"based on the section field in their B<.TH> or B<.Dt> line. If you have a "
-"properly formatted B<.TH> or B<.Dt> line, your man page will be installed "
-"into the right directory, with the right name (this includes proper handling "
-"of pages with a subsection, like B<3perl>, which are placed in F<man3>, and "
-"given an extension of F<.3perl>). If your B<.TH> or B<.Dt> line is incorrect "
-"or missing, the program may guess wrong based on the file extension."
+"into the correct locations in package build directories."
+msgstr ""
+
+#. type: textblock
+#: dh_installman:25
+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 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
+#: dh_installman:32
+msgid ""
+"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 to "
+"UTF-8 and for converting F<.so> links (as described below). However, that "
+"part happens automatically without any explicit configuration."
msgstr ""
#. type: textblock
-#: dh_installman:29
+#: dh_installman:38
+msgid ""
+"You tell B<dh_installman> what man pages go in your packages, and it figures "
+"out where to install them based on the section field in their B<.TH> or "
+"B<.Dt> line. If you have a properly formatted B<.TH> or B<.Dt> line, your "
+"man page will be installed into the right directory, with the right name "
+"(this includes proper handling of pages with a subsection, like B<3perl>, "
+"which are placed in F<man3>, and given an extension of F<.3perl>). If your "
+"B<.TH> or B<.Dt> line is incorrect or missing, the program may guess wrong "
+"based on the file extension."
+msgstr ""
+
+#. type: textblock
+#: dh_installman:47
msgid ""
"It also supports translated man pages, by looking for extensions like "
"F<.ll.8> and F<.ll_LL.8>, or by use of the B<--language> switch."
msgstr ""
#. type: textblock
-#: dh_installman:32
+#: dh_installman:50
msgid ""
"If B<dh_installman> seems to install a man page into the wrong section or "
"with the wrong extension, this is because the man page has the wrong section "
@@ -4118,7 +7745,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installman:42
+#: dh_installman:60
msgid ""
"After the man page installation step, B<dh_installman> will check to see if "
"any of the man pages in the temporary directories of any of the packages it "
@@ -4126,7 +7753,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installman:46
+#: dh_installman:64
msgid ""
"Also, B<dh_installman> will use man to guess the character encoding of each "
"manual page and convert it to UTF-8. If the guesswork fails for some reason, "
@@ -4135,41 +7762,62 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_installman:55
+#: dh_installman:77
msgid "debian/I<package>.manpages"
msgstr ""
#. type: textblock
-#: dh_installman:57
+#: dh_installman:79
msgid "Lists man pages to be installed."
msgstr ""
#. type: =item
-#: dh_installman:70
+#: dh_installman:95
msgid "B<--language=>I<ll>"
msgstr ""
#. type: textblock
-#: dh_installman:72
+#: dh_installman:97
msgid ""
"Use this to specify that the man pages being acted on are written in the "
"specified language."
msgstr ""
#. type: =item
-#: dh_installman:75
+#: dh_installman:110
msgid "I<manpage> ..."
msgstr ""
#. type: textblock
-#: dh_installman:77
+#: dh_installman:112
msgid ""
"Install these man pages into the first package acted on. (Or in all packages "
"if B<-A> is specified)."
msgstr ""
#. type: textblock
-#: dh_installman:84
+#: dh_installman:119
+msgid "An example F<debian/manpages> file could look like this:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installman:121
+#, no-wrap
+msgid ""
+" doc/man/foo.1\n"
+" # Translations\n"
+" doc/man/foo.da.1\n"
+" doc/man/foo.de.1\n"
+" doc/man/foo.fr.1\n"
+" # NB: The following line is considered a polish translation\n"
+" # of \"foo.1\" (and not a manpage written in perl called \"foo.pl\")\n"
+" doc/man/foo.pl.1\n"
+" # ...\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh_installman:133
msgid ""
"An older version of this program, L<dh_installmanpages(1)>, is still used by "
"some packages, and so is still included in debhelper. It is, however, "
@@ -4183,12 +7831,12 @@ msgid "dh_installmanpages - old-style man page installer (deprecated)"
msgstr ""
#. type: textblock
-#: dh_installmanpages:15
+#: dh_installmanpages:18
msgid "B<dh_installmanpages> [S<I<debhelper options>>] [S<I<file> ...>]"
msgstr ""
#. type: textblock
-#: dh_installmanpages:19
+#: dh_installmanpages:22
msgid ""
"B<dh_installmanpages> is a debhelper program that is responsible for "
"automatically installing man pages into F<usr/share/man/> in package build "
@@ -4196,7 +7844,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installmanpages:23
+#: dh_installmanpages:26
msgid ""
"This is a DWIM-style program, with an interface unlike the rest of "
"debhelper. It is deprecated, and you are encouraged to use "
@@ -4204,7 +7852,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installmanpages:27
+#: dh_installmanpages:30
msgid ""
"B<dh_installmanpages> scans the current directory and all subdirectories for "
"filenames that look like man pages. (Note that only real files are looked "
@@ -4214,7 +7862,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installmanpages:33
+#: dh_installmanpages:36
msgid ""
"All filenames specified as parameters will be skipped by "
"B<dh_installmanpages>. This is useful if by default it installs some man "
@@ -4222,7 +7870,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installmanpages:37
+#: dh_installmanpages:40
msgid ""
"After the man page installation step, B<dh_installmanpages> will check to "
"see if any of the man pages are F<.so> links. If so, it changes them to "
@@ -4230,19 +7878,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installmanpages:46
+#: dh_installmanpages:49
msgid ""
"Do not install these files as man pages, even if they look like valid man "
"pages."
msgstr ""
#. type: =head1
-#: dh_installmanpages:51
+#: dh_installmanpages:54
msgid "BUGS"
msgstr ""
#. type: textblock
-#: dh_installmanpages:53
+#: dh_installmanpages:56
msgid ""
"B<dh_installmanpages> will install the man pages it finds into B<all> "
"packages you tell it to act on, since it can't tell what package the man "
@@ -4252,12 +7900,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installmanpages:58
+#: dh_installmanpages:61
msgid "Files ending in F<.man> will be ignored."
msgstr ""
#. type: textblock
-#: dh_installmanpages:60
+#: dh_installmanpages:63
msgid ""
"Files specified as parameters that contain spaces in their filenames will "
"not be processed properly."
@@ -4269,19 +7917,19 @@ msgid "dh_installmenu - install Debian menu files into package build directories
msgstr ""
#. type: textblock
-#: dh_installmenu:14
+#: dh_installmenu:17
msgid "B<dh_installmenu> [S<B<debhelper options>>] [B<-n>]"
msgstr ""
#. type: textblock
-#: dh_installmenu:18
+#: dh_installmenu:21
msgid ""
"B<dh_installmenu> is a debhelper program that is responsible for installing "
"files used by the Debian B<menu> package into package build directories."
msgstr ""
#. type: textblock
-#: dh_installmenu:21
+#: dh_installmenu:24
msgid ""
"It also automatically generates the F<postinst> and F<postrm> commands "
"needed to interface with the Debian B<menu> package. These commands are "
@@ -4289,36 +7937,36 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_installmenu:29
+#: dh_installmenu:32
msgid "debian/I<package>.menu"
msgstr ""
#. type: textblock
-#: dh_installmenu:31
+#: dh_installmenu:34
msgid ""
"Debian menu files, installed into usr/share/menu/I<package> in the package "
"build directory. See L<menufile(5)> for its format."
msgstr ""
#. type: =item
-#: dh_installmenu:34
+#: dh_installmenu:37
msgid "debian/I<package>.menu-method"
msgstr ""
#. type: textblock
-#: dh_installmenu:36
+#: dh_installmenu:39
msgid ""
"Debian menu method files, installed into etc/menu-methods/I<package> in the "
"package build directory."
msgstr ""
#. type: textblock
-#: dh_installmenu:47 dh_makeshlibs:79
+#: dh_installmenu:50
msgid "Do not modify F<postinst>/F<postrm> scripts."
msgstr ""
#. type: textblock
-#: dh_installmenu:91
+#: dh_installmenu:90
msgid "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
msgstr ""
@@ -4328,36 +7976,36 @@ msgid "dh_installmime - install mime files into package build directories"
msgstr ""
#. type: textblock
-#: dh_installmime:14
+#: dh_installmime:17
msgid "B<dh_installmime> [S<I<debhelper options>>]"
msgstr ""
#. type: textblock
-#: dh_installmime:18
+#: dh_installmime:21
msgid ""
"B<dh_installmime> is a debhelper program that is responsible for installing "
"mime files into package build directories."
msgstr ""
#. type: =item
-#: dh_installmime:25
+#: dh_installmime:28
msgid "debian/I<package>.mime"
msgstr ""
#. type: textblock
-#: dh_installmime:27
+#: dh_installmime:30
msgid ""
"Installed into usr/lib/mime/packages/I<package> in the package build "
"directory."
msgstr ""
#. type: =item
-#: dh_installmime:30
+#: dh_installmime:33
msgid "debian/I<package>.sharedmimeinfo"
msgstr ""
#. type: textblock
-#: dh_installmime:32
+#: dh_installmime:35
msgid ""
"Installed into /usr/share/mime/packages/I<package>.xml in the package build "
"directory."
@@ -4369,19 +8017,19 @@ msgid "dh_installmodules - register kernel modules"
msgstr ""
#. type: textblock
-#: dh_installmodules:15
+#: dh_installmodules:18
msgid "B<dh_installmodules> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>]"
msgstr ""
#. type: textblock
-#: dh_installmodules:19
+#: dh_installmodules:22
msgid ""
"B<dh_installmodules> is a debhelper program that is responsible for "
"registering kernel modules."
msgstr ""
#. type: textblock
-#: dh_installmodules:22
+#: dh_installmodules:25
msgid ""
"Kernel modules are searched for in the package build directory and if found, "
"F<preinst>, F<postinst> and F<postrm> commands are automatically generated "
@@ -4391,22 +8039,22 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_installmodules:32
+#: dh_installmodules:35
msgid "debian/I<package>.modprobe"
msgstr ""
#. type: textblock
-#: dh_installmodules:34
+#: dh_installmodules:37
msgid "Installed to etc/modprobe.d/I<package>.conf in the package build directory."
msgstr ""
#. type: textblock
-#: dh_installmodules:44
+#: dh_installmodules:47
msgid "Do not modify F<preinst>/F<postinst>/F<postrm> scripts."
msgstr ""
#. type: textblock
-#: dh_installmodules:48
+#: dh_installmodules:51
msgid ""
"When this parameter is used, B<dh_installmodules> looks for and installs "
"files named debian/I<package>.I<name>.modprobe instead of the usual "
@@ -4419,32 +8067,40 @@ msgid "dh_installpam - install pam support files"
msgstr ""
#. type: textblock
-#: dh_installpam:14
+#: dh_installpam:17
msgid "B<dh_installpam> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr ""
#. type: textblock
-#: dh_installpam:18
+#: dh_installpam:21
msgid ""
"B<dh_installpam> is a debhelper program that is responsible for installing "
"files used by PAM into package build directories."
msgstr ""
#. type: =item
-#: dh_installpam:25
+#: dh_installpam:28
msgid "debian/I<package>.pam"
msgstr ""
#. type: textblock
-#: dh_installpam:27
-msgid "Installed into etc/pam.d/I<package> in the package build directory."
+#: dh_installpam:30
+msgid "Installed into usr/lib/pam.d/I<package> in the package build directory."
+msgstr ""
+
+#. type: textblock
+#: dh_installpam:32
+msgid ""
+"Until compatibility level 14 this file was installed under "
+"etc/pam.d/I<package>. Please consider using the \"rm_conffile\" feature from "
+"L<dh_installdeb(1)> to ensure the proper removal of previous PAM files."
msgstr ""
#. type: textblock
-#: dh_installpam:37
+#: dh_installpam:44
msgid ""
"Look for files named debian/I<package>.I<name>.pam and install them as "
-"etc/pam.d/I<name>, instead of using the usual files and installing them "
+"usr/lib/pam.d/I<name>, instead of using the usual files and installing them "
"using the package name."
msgstr ""
@@ -4454,39 +8110,39 @@ msgid "dh_installppp - install ppp ip-up and ip-down files"
msgstr ""
#. type: textblock
-#: dh_installppp:14
+#: dh_installppp:17
msgid "B<dh_installppp> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr ""
#. type: textblock
-#: dh_installppp:18
+#: dh_installppp:21
msgid ""
"B<dh_installppp> is a debhelper program that is responsible for installing "
"ppp ip-up and ip-down scripts into package build directories."
msgstr ""
#. type: =item
-#: dh_installppp:25
+#: dh_installppp:28
msgid "debian/I<package>.ppp.ip-up"
msgstr ""
#. type: textblock
-#: dh_installppp:27
+#: dh_installppp:30
msgid "Installed into etc/ppp/ip-up.d/I<package> in the package build directory."
msgstr ""
#. type: =item
-#: dh_installppp:29
+#: dh_installppp:32
msgid "debian/I<package>.ppp.ip-down"
msgstr ""
#. type: textblock
-#: dh_installppp:31
+#: dh_installppp:34
msgid "Installed into etc/ppp/ip-down.d/I<package> in the package build directory."
msgstr ""
#. type: textblock
-#: dh_installppp:41
+#: dh_installppp:44
msgid ""
"Look for files named F<debian/package.name.ppp.ip-*> and install them as "
"F<etc/ppp/ip-*/name>, instead of using the usual files and installing them "
@@ -4499,38 +8155,31 @@ msgid "dh_installudev - install udev rules files"
msgstr ""
#. type: textblock
-#: dh_installudev:15
+#: dh_installudev:17
msgid ""
"B<dh_installudev> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>] "
"[B<--priority=>I<priority>]"
msgstr ""
#. type: textblock
-#: dh_installudev:19
+#: dh_installudev:21
msgid ""
"B<dh_installudev> is a debhelper program that is responsible for installing "
"B<udev> rules files."
msgstr ""
-#. type: textblock
-#: dh_installudev:22
-msgid ""
-"Code is added to the F<preinst> and F<postinst> to handle the upgrade from "
-"the old B<udev> rules file location."
-msgstr ""
-
#. type: =item
-#: dh_installudev:29
+#: dh_installudev:28
msgid "debian/I<package>.udev"
msgstr ""
#. type: textblock
-#: dh_installudev:31
+#: dh_installudev:30
msgid "Installed into F<lib/udev/rules.d/> in the package build directory."
msgstr ""
#. type: textblock
-#: dh_installudev:41
+#: dh_installudev:40
msgid ""
"When this parameter is used, B<dh_installudev> looks for and installs files "
"named debian/I<package>.I<name>.udev instead of the usual "
@@ -4538,54 +8187,50 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_installudev:45
+#: dh_installudev:44
msgid "B<--priority=>I<priority>"
msgstr ""
#. type: textblock
-#: dh_installudev:47
+#: dh_installudev:46
msgid "Sets the priority the file. Default is 60."
msgstr ""
#. type: textblock
-#: dh_installudev:51
-msgid "Do not modify F<preinst>/F<postinst> scripts."
-msgstr ""
-
-#. type: textblock
#: dh_installwm:5
msgid "dh_installwm - register a window manager"
msgstr ""
#. type: textblock
-#: dh_installwm:14
+#: dh_installwm:17
msgid ""
"B<dh_installwm> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
"[S<I<wm> ...>]"
msgstr ""
#. type: textblock
-#: dh_installwm:18
+#: dh_installwm:21
msgid ""
"B<dh_installwm> is a debhelper program that is responsible for generating "
"the F<postinst> and F<prerm> commands that register a window manager with "
"L<update-alternatives(8)>. The window manager's man page is also registered "
-"as a slave symlink (in v6 mode and up), if it is found in "
-"F<usr/share/man/man1/> in the package build directory."
+"as a slave symlink (in v6 mode and up). It must be installed in "
+"F<usr/share/man/man1/> in the package build directory prior to calling "
+"B<dh_installwm>. In compat 9 and earlier, the manpage was optional."
msgstr ""
#. type: =item
-#: dh_installwm:28
+#: dh_installwm:32
msgid "debian/I<package>.wm"
msgstr ""
#. type: textblock
-#: dh_installwm:30
+#: dh_installwm:34
msgid "List window manager programs to register."
msgstr ""
#. type: textblock
-#: dh_installwm:40
+#: dh_installwm:47
msgid ""
"Set the priority of the window manager. Default is 20, which is too low for "
"most window managers; see the Debian Policy document for instructions on "
@@ -4593,17 +8238,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installwm:46
+#: dh_installwm:53
msgid "Do not modify F<postinst>/F<prerm> scripts. Turns this command into a no-op."
msgstr ""
+#. type: textblock
+#: dh_installwm:57
+msgid ""
+"Modify scripts for window managers specified by command line parameters in "
+"ALL packages acted on, not just the first."
+msgstr ""
+
#. type: =item
-#: dh_installwm:48
+#: dh_installwm:60
msgid "I<wm> ..."
msgstr ""
#. type: textblock
-#: dh_installwm:50
+#: dh_installwm:62
msgid "Window manager programs to register."
msgstr ""
@@ -4613,12 +8265,12 @@ msgid "dh_installxfonts - register X fonts"
msgstr ""
#. type: textblock
-#: dh_installxfonts:14
+#: dh_installxfonts:17
msgid "B<dh_installxfonts> [S<I<debhelper options>>]"
msgstr ""
#. type: textblock
-#: dh_installxfonts:18
+#: dh_installxfonts:21
msgid ""
"B<dh_installxfonts> is a debhelper program that is responsible for "
"registering X fonts, so their corresponding F<fonts.dir>, F<fonts.alias>, "
@@ -4626,7 +8278,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installxfonts:22
+#: dh_installxfonts:25
msgid ""
"Before calling this program, you should have installed any X fonts provided "
"by your package into the appropriate location in the package build "
@@ -4636,7 +8288,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installxfonts:28
+#: dh_installxfonts:31
msgid ""
"Your package should depend on B<xfonts-utils> so that the "
"B<update-fonts->I<*> commands are available. (This program adds that "
@@ -4644,7 +8296,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installxfonts:32
+#: dh_installxfonts:35
msgid ""
"This program automatically generates the F<postinst> and F<postrm> commands "
"needed to register X fonts. These commands are inserted into the maintainer "
@@ -4653,14 +8305,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_installxfonts:39
+#: dh_installxfonts:42
msgid ""
"See L<update-fonts-alias(8)>, L<update-fonts-scale(8)>, and "
"L<update-fonts-dir(8)> for more information about X font installation."
msgstr ""
#. type: textblock
-#: dh_installxfonts:42
+#: dh_installxfonts:45
msgid ""
"See Debian policy, section 11.8.5. for details about doing fonts the Debian "
"way."
@@ -4672,64 +8324,65 @@ msgid "dh_link - create symlinks in package build directories"
msgstr ""
#. type: textblock
-#: dh_link:15
+#: dh_link:18
msgid ""
"B<dh_link> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<source "
"destination> ...>]"
msgstr ""
#. type: textblock
-#: dh_link:19
+#: dh_link:22
msgid ""
"B<dh_link> is a debhelper program that creates symlinks in package build "
"directories."
msgstr ""
#. type: textblock
-#: dh_link:22
+#: dh_link:25
msgid ""
"B<dh_link> accepts a list of pairs of source and destination files. The "
-"source files are the already existing files that will be symlinked from. The "
-"destination files are the symlinks that will be created. There B<must> be an "
-"equal number of source and destination files specified."
+"source files are the already existing files that will be symlinked from "
+"(called B<target> by L<ln(1)>). The destination files are the symlinks that "
+"will be created (called B<link name> by L<ln(1)>). There B<must> be an equal "
+"number of source and destination files specified."
msgstr ""
#. type: textblock
-#: dh_link:27
+#: dh_link:32
msgid ""
-"Be sure you B<do> specify the full filename to both the source and "
+"Be sure you B<do> specify the absolute path to both the source and "
"destination files (unlike you would do if you were using something like "
-"L<ln(1)>)."
+"L<ln(1)>). Please note that the leading slash is optional."
msgstr ""
#. type: textblock
-#: dh_link:31
+#: dh_link:36
msgid ""
"B<dh_link> will generate symlinks that comply with Debian policy - absolute "
"when policy says they should be absolute, and relative links with as short a "
-"path as possible. It will also create any subdirectories it needs to to put "
-"the symlinks in."
+"path as possible. It will also create any subdirectories it needs to put the "
+"symlinks in."
msgstr ""
#. type: textblock
-#: dh_link:36
+#: dh_link:41
msgid "Any pre-existing destination files will be replaced with symlinks."
msgstr ""
#. type: textblock
-#: dh_link:38
+#: dh_link:43
msgid ""
"B<dh_link> also scans the package build tree for existing symlinks which do "
"not conform to Debian policy, and corrects them (v4 or later)."
msgstr ""
#. type: =item
-#: dh_link:45
+#: dh_link:50
msgid "debian/I<package>.links"
msgstr ""
#. type: textblock
-#: dh_link:47
+#: dh_link:52
msgid ""
"Lists pairs of source and destination files to be symlinked. Each pair "
"should be put on its own line, with the source and destination separated by "
@@ -4737,26 +8390,42 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_link:59
+#: dh_link:56
+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 given in the same "
+"order as they would be given to L<ln(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh_link:61
+msgid ""
+"In contrast to L<ln(1)>, source and destination paths must be absolute (the "
+"leading slash is optional)."
+msgstr ""
+
+#. type: textblock
+#: dh_link:75
msgid ""
"Create any links specified by command line parameters in ALL packages acted "
"on, not just the first."
msgstr ""
#. type: textblock
-#: dh_link:64
+#: dh_link:80
msgid ""
"Exclude symlinks that contain I<item> anywhere in their filename from being "
"corrected to comply with Debian policy."
msgstr ""
#. type: =item
-#: dh_link:67
+#: dh_link:83
msgid "I<source destination> ..."
msgstr ""
#. type: textblock
-#: dh_link:69
+#: dh_link:85
msgid ""
"Create a file named I<destination> as a link to a file named I<source>. Do "
"this in the package build directory of the first package acted on. (Or in "
@@ -4764,7 +8433,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh_link:77
+#: dh_link:93
#, no-wrap
msgid ""
" dh_link usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
@@ -4772,12 +8441,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_link:79
+#: dh_link:95
msgid "Make F<bar.1> be a symlink to F<foo.1>"
msgstr ""
#. type: verbatim
-#: dh_link:81
+#: dh_link:97
#, no-wrap
msgid ""
" dh_link var/lib/foo usr/lib/foo \\\n"
@@ -4786,60 +8455,74 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_link:84
+#: dh_link:100
msgid ""
"Make F</usr/lib/foo/> be a link to F</var/lib/foo/>, and F<bar.1> be a "
"symlink to the F<foo.1>"
msgstr ""
+#. type: verbatim
+#: dh_link:103
+#, no-wrap
+msgid ""
+" var/lib/foo usr/lib/foo\n"
+" usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh_link:106
+msgid "Same as above but as content for a debian/I<package>.links file."
+msgstr ""
+
#. type: textblock
#: dh_lintian:5
msgid "dh_lintian - install lintian override files into package build directories"
msgstr ""
#. type: textblock
-#: dh_lintian:14
+#: dh_lintian:17
msgid "B<dh_lintian> [S<I<debhelper options>>]"
msgstr ""
#. type: textblock
-#: dh_lintian:18
+#: dh_lintian:21
msgid ""
"B<dh_lintian> is a debhelper program that is responsible for installing "
"override files used by lintian into package build directories."
msgstr ""
#. type: =item
-#: dh_lintian:25
+#: dh_lintian:28
msgid "debian/I<package>.lintian-overrides"
msgstr ""
#. type: textblock
-#: dh_lintian:27
+#: dh_lintian:30
msgid ""
"Installed into usr/share/lintian/overrides/I<package> in the package build "
"directory. This file is used to suppress erroneous lintian diagnostics."
msgstr ""
#. type: =item
-#: dh_lintian:31
+#: dh_lintian:34
msgid "F<debian/source/lintian-overrides>"
msgstr ""
#. type: textblock
-#: dh_lintian:33
+#: dh_lintian:36
msgid ""
"These files are not installed, but will be scanned by lintian to provide "
"overrides for the source package."
msgstr ""
#. type: textblock
-#: dh_lintian:65
+#: dh_lintian:66
msgid "L<lintian(1)>"
msgstr ""
#. type: textblock
-#: dh_lintian:69
+#: dh_lintian:70
msgid "Steve Robbins <smr@debian.org>"
msgstr ""
@@ -4849,12 +8532,12 @@ msgid "dh_listpackages - list binary packages debhelper will act on"
msgstr ""
#. type: textblock
-#: dh_listpackages:14
+#: dh_listpackages:17
msgid "B<dh_listpackages> [S<I<debhelper options>>]"
msgstr ""
#. type: textblock
-#: dh_listpackages:18
+#: dh_listpackages:21
msgid ""
"B<dh_listpackages> is a debhelper program that outputs a list of all binary "
"packages debhelper commands will act on. If you pass it some options, it "
@@ -4863,52 +8546,92 @@ msgid ""
msgstr ""
#. type: textblock
+#: dh_listpackages:26
+msgid "Packages are listed in the order they appear in F<debian/control>."
+msgstr ""
+
+#. type: textblock
#: dh_makeshlibs:5
msgid "dh_makeshlibs - automatically create shlibs file and call dpkg-gensymbols"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:14
+#: dh_makeshlibs:17
msgid ""
"B<dh_makeshlibs> [S<I<debhelper options>>] [B<-m>I<major>] "
"[B<-V>I<[dependencies]>] [B<-n>] [B<-X>I<item>] [S<B<--> I<params>>]"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:18
+#: dh_makeshlibs:21
msgid ""
"B<dh_makeshlibs> is a debhelper program that automatically scans for shared "
"libraries, and generates a shlibs file for the libraries it finds."
msgstr ""
#. type: textblock
-#: dh_makeshlibs:21
+#: dh_makeshlibs:24
msgid ""
-"It also adds a call to ldconfig in the F<postinst> and F<postrm> scripts (in "
-"v3 mode and above only) to any packages in which it finds shared libraries."
+"It will also ensure that ldconfig is invoked during install and removal when "
+"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."
msgstr ""
#. type: textblock
-#: dh_makeshlibs:24
+#: 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 are considering to migrate to using "
+"the 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:48
+msgid "debian/I<package>.shlibs"
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"any libraries."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:54
msgid ""
-"Packages that support multiarch are detected, and a Pre-Dependency on "
-"multiarch-support is set in ${misc:Pre-Depends} ; you should make sure to "
-"put that token into an appropriate place in your debian/control file for "
-"packages supporting multiarch."
+"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:33
+#: dh_makeshlibs:57
msgid "debian/I<package>.symbols"
msgstr ""
#. type: =item
-#: dh_makeshlibs:35
+#: dh_makeshlibs:59
msgid "debian/I<package>.symbols.I<arch>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:37
+#: 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 "
@@ -4916,12 +8639,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_makeshlibs:47
+#: dh_makeshlibs:71
msgid "B<-m>I<major>, B<--major=>I<major>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:49
+#: 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 "
@@ -4930,55 +8653,157 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_makeshlibs:54
+#: dh_makeshlibs:78
msgid "B<-V>, B<-V>I<dependencies>"
msgstr ""
#. type: =item
-#: dh_makeshlibs:56
+#: dh_makeshlibs:80
msgid "B<--version-info>, B<--version-info=>I<dependencies>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:58
+#: 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:85
msgid ""
-"By default, the shlibs file generated by this program does not make packages "
-"depend on any particular version of the package containing the shared "
-"library. It may be necessary for you to add some version dependency "
-"information to the shlibs file. If B<-V> is specified with no dependency "
-"information, the current upstream version of the package is plugged into a "
-"dependency that looks like \"I<packagename> B<(E<gt>>= "
-"I<packageversion>B<)>\". Note that in debhelper compatibility levels before "
-"v4, the Debian part of the package version number is also included. If B<-V> "
-"is specified with parameters, the parameters can be used to specify the "
-"exact dependency information needed (be sure to include the package name)."
+"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:88
+msgid "The B<dh_makeshlibs> tool can generate dependencies in three variants:"
+msgstr ""
+
+#. type: =item
+#: dh_makeshlibs:92
+msgid "B<-VUpstream-Version>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:69
+#: dh_makeshlibs:94
msgid ""
-"Beware of using B<-V> without any parameters; 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 your library is prone to changing "
-"ABI without updating the upstream version number), so that if the maintainer "
-"screws up then they won't break. The flip side is that packages might end up "
-"with dependencies that are too tight and so find it harder to be upgraded."
+"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 "
+"as shown here."
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 "
+"the library is prone to changing ABI without updating the upstream version "
+"number)."
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"often of minor temporary inconvenience and usually a lot better than the "
+"fall out caused by forgetting to bump the dependency information."
+msgstr ""
+
+#. type: textblock
+#: 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 works)"
+msgstr ""
+
+#. type: =item
+#: dh_makeshlibs:113
+msgid "B<-VNone>"
+msgstr ""
+
+#. type: textblock
+#: 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: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 "
+"interfaces over time and packagers are recommended to use "
+"B<-VUpstream-Version> (or one of the other forms of B<-V>I<dependencies>)."
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"packages. Note that symbols are not supported for udeb packages, which "
+"solely relies on shlibs for dependency handling."
+msgstr ""
+
+#. type: =item
+#: dh_makeshlibs:128
+msgid "B<-V>I<package-relation>"
+msgstr ""
+
+#. type: textblock
+#: 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-package-name> B<(E<gt>>= I<some-package-version>B<)>\". Remember "
+"to include the package name."
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"dependency on a different package than the one containing the library."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:142
+msgid ""
+"When choosing a value for this option, please keep mind that if the package "
+"provides a symbols file, then that this is generally preferred over the "
+"shlibs file for regular .deb packages. See L<dpkg-shlibdeps(1)> for more "
+"information on this topic."
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"B<dh_makeshlibs> would previously generate maintainer scripts that called "
+"B<ldconfig>."
+msgstr ""
+
+#. type: textblock
+#: 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:86
+#: dh_makeshlibs:159
msgid "B<--add-udeb=>I<udeb>"
msgstr ""
#. type: textblock
-#: dh_makeshlibs:88
+#: 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 "
@@ -4986,17 +8811,47 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_makeshlibs:93
+#: dh_makeshlibs:164
+msgid ""
+"This 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:101
-msgid "B<dh_makeshlibs>"
+#: dh_makeshlibs:189
+msgid "B<dh_makeshlibs -VNone>"
msgstr ""
#. type: verbatim
-#: dh_makeshlibs:103
+#: dh_makeshlibs:191
#, no-wrap
msgid ""
"Assuming this is a package named F<libfoobar1>, generates a shlibs file "
@@ -5007,12 +8862,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_makeshlibs:107
-msgid "B<dh_makeshlibs -V>"
+#: dh_makeshlibs:195
+msgid "B<dh_makeshlibs -VUpstream-Version>"
msgstr ""
#. type: verbatim
-#: dh_makeshlibs:109
+#: dh_makeshlibs:197
#, no-wrap
msgid ""
"Assuming the current version of the package is 1.1-3, generates a shlibs\n"
@@ -5022,12 +8877,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_makeshlibs:113
+#: dh_makeshlibs:201
msgid "B<dh_makeshlibs -V 'libfoobar1 (E<gt>= 1.0)'>"
msgstr ""
#. type: verbatim
-#: dh_makeshlibs:115
+#: dh_makeshlibs:203
#, no-wrap
msgid ""
"Generates a shlibs file that looks something like:\n"
@@ -5041,46 +8896,48 @@ msgid "dh_md5sums - generate DEBIAN/md5sums file"
msgstr ""
#. type: textblock
-#: dh_md5sums:15
+#: dh_md5sums:18
msgid ""
"B<dh_md5sums> [S<I<debhelper options>>] [B<-x>] [B<-X>I<item>] "
"[B<--include-conffiles>]"
msgstr ""
#. type: textblock
-#: dh_md5sums:19
+#: dh_md5sums:22
msgid ""
"B<dh_md5sums> is a debhelper program that is responsible for generating a "
"F<DEBIAN/md5sums> file, which lists the md5sums of each file in the "
-"package. These files are used by the B<debsums> package."
+"package. These files are used by B<dpkg --verify> or the L<debsums(1)> "
+"program."
msgstr ""
#. type: textblock
-#: dh_md5sums:23
+#: dh_md5sums:26
msgid ""
"All files in F<DEBIAN/> are omitted from the F<md5sums> file, as are all "
"conffiles (unless you use the B<--include-conffiles> switch)."
msgstr ""
#. type: textblock
-#: dh_md5sums:26
+#: dh_md5sums:29
msgid "The md5sums file is installed with proper permissions and ownerships."
msgstr ""
#. type: =item
-#: dh_md5sums:32
+#: dh_md5sums:35
msgid "B<-x>, B<--include-conffiles>"
msgstr ""
#. type: textblock
-#: dh_md5sums:34
+#: dh_md5sums:37
msgid ""
"Include conffiles in the md5sums list. Note that this information is "
-"redundant since it is included elsewhere in Debian packages."
+"redundant since it is included in F</var/lib/dpkg/status> in Debian "
+"packages."
msgstr ""
#. type: textblock
-#: dh_md5sums:39
+#: dh_md5sums:42
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"listed in the md5sums file."
@@ -5092,14 +8949,14 @@ msgid "dh_movefiles - move files out of debian/tmp into subpackages"
msgstr ""
#. type: textblock
-#: dh_movefiles:14
+#: dh_movefiles:17
msgid ""
"B<dh_movefiles> [S<I<debhelper options>>] [B<--sourcedir=>I<dir>] "
"[B<-X>I<item>] [S<I<file> ...>]"
msgstr ""
#. type: textblock
-#: dh_movefiles:18
+#: dh_movefiles:21
msgid ""
"B<dh_movefiles> is a debhelper program that is responsible for moving files "
"out of F<debian/tmp> or some other directory and into other package build "
@@ -5109,19 +8966,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_movefiles:23
+#: dh_movefiles:26
msgid ""
"Note: B<dh_install> is a much better program, and you are recommended to use "
"it instead of B<dh_movefiles>."
msgstr ""
#. type: =item
-#: dh_movefiles:30
+#: dh_movefiles:33
msgid "debian/I<package>.files"
msgstr ""
#. type: textblock
-#: dh_movefiles:32
+#: dh_movefiles:35
msgid ""
"Lists the files to be moved into a package, separated by whitespace. The "
"filenames listed should be relative to F<debian/tmp/>. You can also list "
@@ -5129,7 +8986,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_movefiles:44
+#: dh_movefiles:47
msgid ""
"Instead of moving files out of F<debian/tmp> (the default), this option "
"makes it move files out of some other directory. Since the entire contents "
@@ -5139,19 +8996,19 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_movefiles:50
+#: dh_movefiles:53
msgid "B<-Xitem>, B<--exclude=item>"
msgstr ""
#. type: textblock
-#: dh_movefiles:52
+#: dh_movefiles:55
msgid ""
"Exclude files that contain B<item> anywhere in their filename from being "
"installed."
msgstr ""
#. type: textblock
-#: dh_movefiles:57
+#: dh_movefiles:60
msgid ""
"Lists files to move. The filenames listed should be relative to "
"F<debian/tmp/>. You can also list directory names, and the whole directory "
@@ -5160,7 +9017,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_movefiles:66
+#: dh_movefiles:69
msgid ""
"Note that files are always moved out of F<debian/tmp> by default (even if "
"you have instructed debhelper to use a compatibility level higher than one, "
@@ -5177,19 +9034,19 @@ msgid "dh_perl - calculates Perl dependencies and cleans up after MakeMaker"
msgstr ""
#. type: textblock
-#: dh_perl:16
+#: dh_perl:20
msgid "B<dh_perl> [S<I<debhelper options>>] [B<-d>] [S<I<library dirs> ...>]"
msgstr ""
#. type: textblock
-#: dh_perl:20
+#: dh_perl:24
msgid ""
"B<dh_perl> is a debhelper program that is responsible for generating the "
"B<${perl:Depends}> substitutions and adding them to substvars files."
msgstr ""
#. type: textblock
-#: dh_perl:23
+#: dh_perl:27
msgid ""
"The program will look at Perl scripts and modules in your package, and will "
"use this information to generate a dependency on B<perl> or B<perlapi>. The "
@@ -5198,19 +9055,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_perl:28
+#: dh_perl:32
msgid ""
"B<dh_perl> also cleans up empty directories that MakeMaker can generate when "
"installing Perl modules."
msgstr ""
#. type: =item
-#: dh_perl:35
+#: dh_perl:39
msgid "B<-d>"
msgstr ""
#. type: textblock
-#: dh_perl:37
+#: dh_perl:41
msgid ""
"In some specific cases you may want to depend on B<perl-base> rather than "
"the full B<perl> package. If so, you can pass the -d option to make "
@@ -5219,7 +9076,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_perl:42
+#: dh_perl:46
msgid ""
"Note that this flag may cause no dependency on B<perl-base> to be generated "
"at all. B<perl-base> is Essential, so its dependency can be left out, unless "
@@ -5227,12 +9084,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_perl:46
+#: dh_perl:50
msgid "B<-V>"
msgstr ""
#. type: textblock
-#: dh_perl:48
+#: dh_perl:52
msgid ""
"By default, scripts and architecture independent modules don't depend on any "
"specific version of B<perl>. The B<-V> option causes the current version of "
@@ -5240,12 +9097,12 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_perl:52
+#: dh_perl:56
msgid "I<library dirs>"
msgstr ""
#. type: textblock
-#: dh_perl:54
+#: dh_perl:58
msgid ""
"If your package installs Perl modules in non-standard directories, you can "
"make B<dh_perl> check those directories by passing their names on the "
@@ -5254,17 +9111,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_perl:63
+#: dh_perl:67
msgid "Debian policy, version 3.8.3"
msgstr ""
#. type: textblock
-#: dh_perl:65
+#: dh_perl:69
msgid "Perl policy, version 1.20"
msgstr ""
#. type: textblock
-#: dh_perl:160
+#: dh_perl:196
msgid "Brendan O'Dea <bod@debian.org>"
msgstr ""
@@ -5274,12 +9131,12 @@ msgid "dh_prep - perform cleanups in preparation for building a binary package"
msgstr ""
#. type: textblock
-#: dh_prep:14
+#: dh_prep:17
msgid "B<dh_prep> [S<I<debhelper options>>] [B<-X>I<item>]"
msgstr ""
#. type: textblock
-#: dh_prep:18
+#: dh_prep:21
msgid ""
"B<dh_prep> is a debhelper program that performs some file cleanups in "
"preparation for building a binary package. (This is what B<dh_clean -k> used "
@@ -5288,14 +9145,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_prep:23
+#: dh_prep:26
msgid ""
"It is typically run at the top of the B<binary-arch> and B<binary-indep> "
"targets, or at the top of a target such as install that they depend on."
msgstr ""
#. type: textblock
-#: dh_prep:32
+#: dh_prep:35
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"deleted, even if they would normally be deleted. You may use this option "
@@ -5303,44 +9160,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_scrollkeeper:5
-msgid "dh_scrollkeeper - deprecated no-op"
-msgstr ""
-
-#. type: textblock
-#: dh_scrollkeeper:14
-msgid "B<dh_scrollkeeper> [S<I<debhelper options>>] [B<-n>] [S<I<directory>>]"
-msgstr ""
-
-#. type: textblock
-#: dh_scrollkeeper:18
-msgid ""
-"B<dh_scrollkeeper> was a debhelper program that handled registering OMF "
-"files for ScrollKeeper. However, it no longer does anything, and is now "
-"deprecated."
-msgstr ""
-
-#. type: textblock
#: dh_shlibdeps:5
msgid "dh_shlibdeps - calculate shared library dependencies"
msgstr ""
#. type: textblock
-#: dh_shlibdeps:15
+#: dh_shlibdeps:19
msgid ""
"B<dh_shlibdeps> [S<I<debhelper options>>] [B<-L>I<package>] "
"[B<-l>I<directory>] [B<-X>I<item>] [S<B<--> I<params>>]"
msgstr ""
#. type: textblock
-#: dh_shlibdeps:19
+#: dh_shlibdeps:23
msgid ""
"B<dh_shlibdeps> is a debhelper program that is responsible for calculating "
"shared library dependencies for packages."
msgstr ""
#. type: textblock
-#: dh_shlibdeps:22
+#: dh_shlibdeps:26
msgid ""
"This program is merely a wrapper around L<dpkg-shlibdeps(1)> that calls it "
"once for each package listed in the F<control> file, passing it a list of "
@@ -5348,7 +9187,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_shlibdeps:32
+#: dh_shlibdeps:36
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"passed to B<dpkg-shlibdeps>. This will make their dependencies be ignored. "
@@ -5357,36 +9196,36 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_shlibdeps:39
+#: dh_shlibdeps:43
msgid "Pass I<params> to L<dpkg-shlibdeps(1)>."
msgstr ""
#. type: =item
-#: dh_shlibdeps:41
+#: dh_shlibdeps:45
msgid "B<-u>I<params>, B<--dpkg-shlibdeps-params=>I<params>"
msgstr ""
#. type: textblock
-#: dh_shlibdeps:43
+#: dh_shlibdeps:47
msgid ""
"This is another way to pass I<params> to L<dpkg-shlibdeps(1)>. It is "
"deprecated; use B<--> instead."
msgstr ""
#. type: =item
-#: dh_shlibdeps:46
+#: dh_shlibdeps:50
msgid "B<-l>I<directory>[B<:>I<directory> ...]"
msgstr ""
#. type: textblock
-#: dh_shlibdeps:48
+#: dh_shlibdeps:52
msgid ""
"With recent versions of B<dpkg-shlibdeps>, this option is generally not "
"needed."
msgstr ""
#. type: textblock
-#: dh_shlibdeps:51
+#: dh_shlibdeps:55
msgid ""
"It tells B<dpkg-shlibdeps> (via its B<-l> parameter), to look for private "
"package libraries in the specified directory (or directories -- separate "
@@ -5397,19 +9236,20 @@ msgid ""
msgstr ""
#. type: =item
-#: dh_shlibdeps:59
+#: dh_shlibdeps:63
msgid "B<-L>I<package>, B<--libpackage=>I<package>"
msgstr ""
#. type: textblock
-#: dh_shlibdeps:61
+#: dh_shlibdeps:65
msgid ""
"With recent versions of B<dpkg-shlibdeps>, this option is generally not "
-"needed, unless your package builds multiple flavors of the same library."
+"needed, unless your package builds multiple flavors of the same library or "
+"is relying on F<debian/shlibs.local> for an internal library."
msgstr ""
#. type: textblock
-#: dh_shlibdeps:64
+#: dh_shlibdeps:69
msgid ""
"It tells B<dpkg-shlibdeps> (via its B<-S> parameter) to look first in the "
"package build directory for the specified package, when searching for "
@@ -5417,7 +9257,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_shlibdeps:72
+#: dh_shlibdeps:73
+msgid "If needed, this can be passed multiple times with different package names."
+msgstr ""
+
+#. type: textblock
+#: dh_shlibdeps:80
msgid ""
"Suppose that your source package produces libfoo1, libfoo-dev, and "
"libfoo-bin binary packages. libfoo-bin links against libfoo1, and should "
@@ -5426,7 +9271,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh_shlibdeps:76
+#: dh_shlibdeps:84
#, no-wrap
msgid ""
"\tdh_makeshlibs\n"
@@ -5435,7 +9280,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_shlibdeps:79
+#: dh_shlibdeps:87
msgid ""
"This will have the effect of generating automatically a shlibs file for "
"libfoo1, and using that file and the libfoo1 library in the "
@@ -5444,7 +9289,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_shlibdeps:84
+#: dh_shlibdeps:92
msgid ""
"If a libbar1 package is also produced, that is an alternate build of libfoo, "
"and is installed into F</usr/lib/bar/>, you can make libfoo-bin depend on "
@@ -5452,7 +9297,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: dh_shlibdeps:88
+#: dh_shlibdeps:96
#, no-wrap
msgid ""
"\tdh_shlibdeps -Llibbar1 -l/usr/lib/bar\n"
@@ -5460,7 +9305,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_shlibdeps:154
+#: dh_shlibdeps:206
msgid "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
msgstr ""
@@ -5470,22 +9315,22 @@ msgid "dh_strip - strip executables, shared libraries, and some static libraries
msgstr ""
#. type: textblock
-#: dh_strip:15
+#: dh_strip:18
msgid ""
"B<dh_strip> [S<I<debhelper options>>] [B<-X>I<item>] "
"[B<--dbg-package=>I<package>] [B<--keep-debug>]"
msgstr ""
#. type: textblock
-#: dh_strip:19
+#: dh_strip:22
msgid ""
-"B<dh_strip> is a debhelper program that is responsible for stripping "
-"executables, shared libraries, and static libraries that are not used for "
-"debugging."
+"B<dh_strip> is a debhelper program that is responsible for stripping out "
+"debug symbols in executables, shared libraries, and static libraries that "
+"are not needed during execution."
msgstr ""
#. type: textblock
-#: dh_strip:23
+#: dh_strip:26
msgid ""
"This program examines your package build directories and works out what to "
"strip on its own. It uses L<file(1)> and file permissions and filenames to "
@@ -5497,28 +9342,31 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_strip:31
+#: dh_strip:34
msgid ""
"Since it is very hard to automatically guess if a file is a module, and hard "
"to determine how to strip a module, B<dh_strip> does not currently deal with "
"stripping binary modules such as F<.o> files."
msgstr ""
-#. type: textblock
-#: dh_strip:41
-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 "
-"things to exclude."
-msgstr ""
-
#. type: =item
-#: dh_strip:45
+#: dh_strip:48
msgid "B<--dbg-package=>I<package>"
msgstr ""
#. type: textblock
-#: dh_strip:47
+#: dh_strip:50 dh_strip:70
+msgid ""
+"B<This option is a now special purpose option that you normally do not "
+"need>. In most cases, there should be little reason to use this option for "
+"new source packages as debhelper automatically generates debug packages "
+"(\"dbgsym packages\"). B<If you have a manual --dbg-package> that you want "
+"to replace with an automatically generated debug symbol package, please see "
+"the B<--dbgsym-migration> option."
+msgstr ""
+
+#. type: textblock
+#: dh_strip:58
msgid ""
"Causes B<dh_strip> to save debug symbols stripped from the packages it acts "
"on as independent files in the package build directory of the specified "
@@ -5526,7 +9374,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_strip:51
+#: dh_strip:62
msgid ""
"For example, if your packages are libfoo and foo and you want to include a "
"I<foo-dbg> package with debugging symbols, use B<dh_strip "
@@ -5534,22 +9382,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_strip:54
+#: dh_strip:65
msgid ""
-"Note that this option behaves significantly different in debhelper "
-"compatibility levels 4 and below. Instead of specifying the name of a debug "
-"package to put symbols in, it specifies a package (or packages) which should "
-"have separated debug symbols, and the separated symbols are placed in "
-"packages with B<-dbg> added to their name."
+"This option implies B<--no-automatic-dbgsym> and I<cannot> be used with "
+"B<--automatic-dbgsym> or B<--dbgsym-migration>."
msgstr ""
#. type: =item
-#: dh_strip:60
+#: dh_strip:68
msgid "B<-k>, B<--keep-debug>"
msgstr ""
#. type: textblock
-#: dh_strip:62
+#: dh_strip:78
msgid ""
"Debug symbols will be retained, but split into an independent file in "
"F<usr/lib/debug/> in the package build directory. B<--dbg-package> is easier "
@@ -5557,65 +9402,116 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_strip:70
+#: dh_strip:82
msgid ""
-"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
-"nothing will be stripped, in accordance with Debian policy (section 10.1 "
-"\"Binaries\")."
+"This option implies B<--no-automatic-dbgsym> and I<cannot> be used with "
+"B<--automatic-dbgsym>."
msgstr ""
-#. type: textblock
-#: dh_strip:76
-msgid "Debian policy, version 3.0.1"
+#. type: =item
+#: dh_strip:85
+msgid "B<--dbgsym-migration=>I<package-relation>"
msgstr ""
#. type: textblock
-#: dh_suidregister:5
-msgid "dh_suidregister - suid registration program (deprecated)"
+#: dh_strip:87
+msgid ""
+"This option is used to migrate from a manual \"-dbg\" package (created with "
+"B<--dbg-package>) to an automatic generated debug symbol package. This "
+"option should describe a valid B<Replaces>- and B<Breaks>-relation, which "
+"will be added to the debug symbol package to avoid file conflicts with the "
+"(now obsolete) -dbg package."
msgstr ""
#. type: textblock
-#: dh_suidregister:9 dh_undocumented:14
-msgid "Do not run!"
+#: dh_strip:93
+msgid ""
+"This option implies B<--automatic-dbgsym> and I<cannot> be used with "
+"B<--keep-debug>, B<--dbg-package> or B<--no-automatic-dbgsym>."
msgstr ""
#. type: textblock
-#: dh_suidregister:13
+#: dh_strip:96
+msgid "Examples:"
+msgstr ""
+
+#. type: verbatim
+#: dh_strip:98
+#, no-wrap
msgid ""
-"This program used to register suid and sgid files with L<suidregister(1)>, "
-"but with the introduction of L<dpkg-statoverride(8)>, registration of files "
-"in this way is unnecessary, and even harmful, so this program is deprecated "
-"and should not be used."
+" dh_strip --dbgsym-migration='libfoo-dbg (<< 2.1-3~)'\n"
+"\n"
msgstr ""
-#. type: =head1
-#: dh_suidregister:18
-msgid "CONVERTING TO STATOVERRIDE"
+#. type: verbatim
+#: dh_strip:100
+#, no-wrap
+msgid ""
+" dh_strip --dbgsym-migration='libfoo-tools-dbg (<< 2.1-3~), libfoo2-dbg (<< "
+"2.1-3~)'\n"
+"\n"
+msgstr ""
+
+#. type: =item
+#: dh_strip:102
+msgid "B<--automatic-dbgsym>, B<--no-automatic-dbgsym>"
msgstr ""
#. type: textblock
-#: dh_suidregister:20
+#: dh_strip:104
msgid ""
-"Converting a package that uses this program to use the new statoverride "
-"mechanism is easy. Just remove the call to B<dh_suidregister> from "
-"F<debian/rules>, and add a versioned conflicts into your F<control> file, as "
-"follows:"
+"Control whether B<dh_strip> should be creating debug symbol packages when "
+"possible."
msgstr ""
-#. type: verbatim
-#: dh_suidregister:25
-#, no-wrap
+#. type: textblock
+#: dh_strip:107
+msgid "The default is to create debug symbol packages."
+msgstr ""
+
+#. type: =item
+#: dh_strip:109
+msgid "B<--ddebs>, B<--no-ddebs>"
+msgstr ""
+
+#. type: textblock
+#: dh_strip:111
+msgid "Historical name for B<--automatic-dbgsym> and B<--no-automatic-dbgsym>."
+msgstr ""
+
+#. type: =item
+#: dh_strip:113
+msgid "B<--ddeb-migration=>I<package-relation>"
+msgstr ""
+
+#. type: textblock
+#: dh_strip:115
+msgid "Historical name for B<--dbgsym-migration>."
+msgstr ""
+
+#. type: textblock
+#: dh_strip:121
msgid ""
-" Conflicts: suidmanager (<< 0.50)\n"
-"\n"
+"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
+"nothing will be stripped, in accordance with Debian policy (section 10.1 "
+"\"Binaries\"). This will also inhibit the automatic creation of debug "
+"symbol packages."
msgstr ""
#. type: textblock
-#: dh_suidregister:27
+#: dh_strip:126
msgid ""
-"The conflicts is only necessary if your package used to register things with "
-"suidmanager; if it did not, you can just remove the call to this program "
-"from your rules file."
+"The automatic creation of debug symbol packages can also be prevented by "
+"adding B<noautodbgsym> to the B<DEB_BUILD_OPTIONS> environment variable. "
+"However, B<dh_strip> will still add debuglinks to ELF binaries when this "
+"flag is set. This is to ensure that the regular deb package will be "
+"identical with and without this flag (assuming it is otherwise "
+"\"bit-for-bit\" reproducible)."
+msgstr ""
+
+#. type: textblock
+#: dh_strip:135
+msgid "Debian policy, version 3.0.1"
msgstr ""
#. type: textblock
@@ -5624,12 +9520,12 @@ msgid "dh_testdir - test directory before building Debian package"
msgstr ""
#. type: textblock
-#: dh_testdir:14
+#: dh_testdir:17
msgid "B<dh_testdir> [S<I<debhelper options>>] [S<I<file> ...>]"
msgstr ""
#. type: textblock
-#: dh_testdir:18
+#: dh_testdir:21
msgid ""
"B<dh_testdir> tries to make sure that you are in the correct directory when "
"building a Debian package. It makes sure that the file F<debian/control> "
@@ -5638,61 +9534,109 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_testdir:29
+#: dh_testdir:32
msgid "Test for the existence of these files too."
msgstr ""
#. type: textblock
-#: dh_testroot:5
-msgid "dh_testroot - ensure that a package is built as root"
+#: dh_testroot:7
+msgid ""
+"dh_testroot - ensure that a package is built with necessary level of root "
+"permissions"
msgstr ""
#. type: textblock
-#: dh_testroot:9
+#: dh_testroot:11
msgid "B<dh_testroot> [S<I<debhelper options>>]"
msgstr ""
#. type: textblock
-#: dh_testroot:13
+#: dh_testroot:15
+msgid ""
+"B<dh_testroot> is used to determine if the target is being run with suffient "
+"access to root(-like) features."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:18
+msgid ""
+"The definition of sufficient access depends on whether the builder (the tool "
+"invoking the F<debian/rules> target) supports the I<Rules-Requires-Root> "
+"(R³) field. If the builder supports R³, then it will set the environment "
+"variable I<DEB_RULES_REQUIRES_ROOT> and B<dh_testroot> will validate that "
+"the builder followed the minimum requirements for the given value of "
+"I<DEB_RULES_REQUIRES_ROOT>."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:25
+msgid ""
+"If the builder does not support I<Rules-Requires-Root>, then it will not set "
+"the I<DEB_RULES_REQUIRES_ROOT> environment variable. This will in turn make "
+"B<dh_testroot> (and the rest of debhelper) fall back to assuming that "
+"(fake)root is implied."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:30
+msgid ""
+"The following is a summary of how B<dh_testroot> behaves based on the "
+"I<DEB_RULES_REQUIRES_ROOT> environment variable (leading and trailing "
+"whitespace in the variable is ignored)."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:38
+msgid ""
+"If unset, or set to C<binary-targets>, then B<dh_testroot> asserts that it "
+"is run as root or under L<fakeroot(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:43
msgid ""
-"B<dh_testroot> simply checks to see if you are root. If not, it exits with "
-"an error. Debian packages must be built as root, though you can use "
-"L<fakeroot(1)>"
+"If set to C<no>, then B<dh_testroot> returns successfully (without "
+"performing any additional checks)."
msgstr ""
#. type: textblock
-#: dh_undocumented:5
-msgid "dh_undocumented - undocumented.7 symlink program (deprecated no-op)"
+#: dh_testroot:48
+msgid ""
+"If set to any other value than the above, then B<dh_testroot> asserts that "
+"it is either run as root (or under L<fakeroot(1)>) or the builder has "
+"provided the B<DEB_GAIN_ROOT_CMD> environment variable (e.g. via "
+"dpkg-buildpackage -r)."
msgstr ""
#. type: textblock
-#: dh_undocumented:18
+#: dh_testroot:55
msgid ""
-"This program used to make symlinks to the F<undocumented.7> man page for man "
-"pages not present in a package. Debian policy now frowns on use of the "
-"F<undocumented.7> man page, and so this program does nothing, and should not "
-"be used."
+"Please note that B<dh_testroot> does I<not> read the I<Rules-Requires-Root> "
+"field. Which implies that B<dh_testroot> may produce incorrect result if "
+"the builder lies in I<DEB_RULES_REQUIRES_ROOT>. On the flip side, it also "
+"enables things like testing for what will happen when "
+"I<DEB_RULES_REQUIRES_ROOT> is set to a given value."
msgstr ""
#. type: textblock
-#: dh_usrlocal:5
+#: dh_usrlocal:7
msgid "dh_usrlocal - migrate usr/local directories to maintainer scripts"
msgstr ""
#. type: textblock
-#: dh_usrlocal:17
+#: dh_usrlocal:21
msgid "B<dh_usrlocal> [S<I<debhelper options>>] [B<-n>]"
msgstr ""
#. type: textblock
-#: dh_usrlocal:21
+#: dh_usrlocal:25
msgid ""
"B<dh_usrlocal> is a debhelper program that can be used for building packages "
"that will provide a subdirectory in F</usr/local> when installed."
msgstr ""
#. type: textblock
-#: dh_usrlocal:24
+#: dh_usrlocal:28
msgid ""
"It finds subdirectories of F<usr/local> in the package build directory, and "
"removes them, replacing them with maintainer script snippets (unless B<-n> "
@@ -5704,22 +9648,296 @@ msgid ""
msgstr ""
#. type: textblock
-#: dh_usrlocal:32
+#: dh_usrlocal:36
msgid ""
-"If the directories found in the build tree have unusual owners, groups, or "
-"permissions, then those values will be preserved in the directories made by "
-"the F<postinst> script. However, as a special exception, if a directory is "
-"owned by root.root, it will be treated as if it is owned by root.staff and "
-"is mode 2775. This is useful, since that is the group and mode policy "
-"recommends for directories in F</usr/local>."
+"When the I<DEB_RULES_REQUIRES_ROOT> environment variable is not "
+"(effectively) I<binary-targets>, the directories in F</usr/local> will be "
+"handled as if they were owned by root:root (see below)."
msgstr ""
#. type: textblock
-#: dh_usrlocal:57
+#: dh_usrlocal:40
+msgid ""
+"When the I<DEB_RULES_REQUIRES_ROOT> environment variable has an effective "
+"value of I<binary-targets>, the owners, groups and permissions will be "
+"preserved with the sole exception where the directory is owned by root:root."
+msgstr ""
+
+#. type: textblock
+#: dh_usrlocal:44
+msgid ""
+"If a directory is owned by root:root, then ownership will be determined at "
+"install time. The ownership and permission bits will either be root:root "
+"mode 0755 or root:staff mode 02775. The actual choice depends on whether "
+"the system has F</etc/staff-group-for-usr-local> (as documented in the "
+"Debian Policy Manual §9.1.2 since version 4.1.4)"
+msgstr ""
+
+#. type: textblock
+#: dh_usrlocal:68
msgid "Debian policy, version 2.2"
msgstr ""
#. type: textblock
-#: dh_usrlocal:124
+#: dh_usrlocal:144
msgid "Andrew Stribblehill <ads@debian.org>"
msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:5
+msgid "dh_systemd_enable - enable/disable systemd unit files"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:18
+msgid ""
+"B<dh_systemd_enable> [S<I<debhelper options>>] [B<--no-enable>] "
+"[B<--name=>I<name>] [S<I<unit file> ...>]"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:22
+msgid ""
+"B<dh_systemd_enable> is a debhelper program that is responsible for enabling "
+"and disabling systemd unit files."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:25
+msgid ""
+"In the simple case, it finds all unit files installed by a package (e.g. "
+"bacula-fd.service) and enables them. It is not necessary that the machine "
+"actually runs systemd during package installation time, enabling happens on "
+"all machines in order to be able to switch from sysvinit to systemd and "
+"back."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:30
+msgid ""
+"In the complex case, you can call B<dh_systemd_enable> and "
+"B<dh_systemd_start> manually (by overwriting the debian/rules targets) and "
+"specify flags per unit file. An example is colord, which ships "
+"colord.service, a dbus-activated service without an [Install] section. This "
+"service file cannot be enabled or disabled (a state called \"static\" by "
+"systemd) because it has no [Install] section. Therefore, running "
+"dh_systemd_enable does not make sense."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:37
+msgid ""
+"For only generating blocks for specific service files, you need to pass them "
+"as arguments, e.g. B<dh_systemd_enable quota.service> and "
+"B<dh_systemd_enable --name=quotarpc quotarpc.service>."
+msgstr ""
+
+#. type: =item
+#: dh_systemd_enable:45
+msgid "debian/I<package>.service, debian/I<package>@.service"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:47
+msgid ""
+"If this exists, it is installed into F<< "
+"lib/systemd/system/I<package>.service >> (or F<< "
+"lib/systemd/system/I<package>@.service >>) in the package build directory."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:52
+msgid ""
+"If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in "
+"the package build directory."
+msgstr ""
+
+#. type: =item
+#: dh_systemd_enable:55
+msgid "debian/I<package>.target, debian/I<package>@.target"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:57
+msgid ""
+"If this exists, it is installed into F<< "
+"lib/systemd/system/I<package>.target >> (or F<< "
+"lib/systemd/system/I<package>@.target >>) in the package build directory."
+msgstr ""
+
+#. type: =item
+#: dh_systemd_enable:60
+msgid "debian/I<package>.socket, debian/I<package>@.socket"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:62
+msgid ""
+"If this exists, it is installed into F<< "
+"lib/systemd/system/I<package>.socket >> (or F<< "
+"lib/systemd/system/I<package>@.socket >>) in the package build directory."
+msgstr ""
+
+#. type: =item
+#: dh_systemd_enable:65
+msgid "debian/I<package>.mount"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:67
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.mount "
+">> in the package build directory."
+msgstr ""
+
+#. type: =item
+#: dh_systemd_enable:70
+msgid "debian/I<package>.path, debian/I<package>@.path"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:72
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.path "
+">> (or F<< lib/systemd/system/I<package>@.path >>) in the package build "
+"directory."
+msgstr ""
+
+#. type: =item
+#: dh_systemd_enable:75
+msgid "debian/I<package>.timer, debian/I<package>@.timer"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:77
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.timer "
+">> (or F<< lib/systemd/system/I<package>@.timer >>) in the package build "
+"directory."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:88
+msgid "Disable the service(s) on purge, but do not enable them on install."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:90
+msgid ""
+"B<Note> that this option does not affect whether the services are started. "
+"That is controlled by L<dh_systemd_start(1)> (using e.g. its B<--no-start> "
+"option)."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:96
+msgid ""
+"Install the service file as I<name.service> instead of the default filename, "
+"which is the I<package.service>. When this parameter is used, "
+"B<dh_systemd_enable> looks for and installs files named "
+"F<debian/package.name.service> instead of the usual "
+"F<debian/package.service>."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:105 dh_systemd_start:70
+msgid ""
+"Note that 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."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:110
+msgid ""
+"Note that B<dh_systemd_enable> should be run before B<dh_installinit>. The "
+"default sequence in B<dh> does the right thing, this note is only relevant "
+"when you are calling B<dh_systemd_enable> manually."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:282
+msgid "L<dh_systemd_start(1)>, L<debhelper(7)>"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:286 dh_systemd_start:286
+msgid "pkg-systemd-maintainers@lists.alioth.debian.org"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_start:5
+msgid "dh_systemd_start - start/stop/restart systemd unit files"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_start:19
+msgid ""
+"B<dh_systemd_start> [S<I<debhelper options>>] [B<--restart-after-upgrade>] "
+"[B<--no-stop-on-upgrade>] [S<I<unit file> ...>]"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_start:23
+msgid ""
+"B<dh_systemd_start> is a debhelper program that is responsible for "
+"starting/stopping or restarting systemd unit files in case no corresponding "
+"sysv init script is available."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_start:27
+msgid ""
+"As with B<dh_installinit>, the unit file is stopped before upgrades and "
+"started afterwards (unless B<--restart-after-upgrade> is specified, in which "
+"case it will only be restarted after the upgrade). This logic is not used "
+"when there is a corresponding SysV init script because invoke-rc.d performs "
+"the stop/start/restart in that case."
+msgstr ""
+
+#. type: =item
+#: dh_systemd_start:37
+msgid "B<--restart-after-upgrade>"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_start:39
+msgid ""
+"Do not stop the unit file until after the package upgrade has been "
+"completed. This is the default behaviour in compat 10."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_start:42
+msgid ""
+"In earlier compat levels the default was to stop the unit file in the "
+"F<prerm>, and start it again in the F<postinst>."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_start:59
+msgid "Do not stop service on upgrade."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_start:63
+msgid ""
+"Do not start the unit file after upgrades and after initial installation "
+"(the latter is only relevant for services without a corresponding init "
+"script)."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_start:75
+msgid ""
+"Note that B<dh_systemd_start> should be run after B<dh_installinit> so that "
+"it can detect corresponding SysV init scripts. The default sequence in B<dh> "
+"does the right thing, this note is only relevant when you are calling "
+"B<dh_systemd_start> manually."
+msgstr ""
+
+#. type: textblock
+#: strings-kept-translations.pod:7
+msgid "This compatibility level is open for beta testing; changes may occur."
+msgstr ""
diff --git a/man/po4a/po/es.po b/man/po4a/po/es.po
index bf07836a..633c7d69 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: 2014-10-03 15:16-0400\n"
+"POT-Creation-Date: 2023-08-14 19:10+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"
@@ -44,81 +44,88 @@ msgstr ""
# type: =head1
#. type: =head1
-#: debhelper.pod:1 dh:3 dh_auto_build:3 dh_auto_clean:3 dh_auto_configure:3
-#: dh_auto_install:3 dh_auto_test:3 dh_bugfiles:3 dh_builddeb:3 dh_clean:3
-#: dh_compress:3 dh_desktop:3 dh_fixperms:3 dh_gconf:3 dh_gencontrol:3
-#: dh_icons:3 dh_install:3 dh_installcatalogs:3 dh_installchangelogs:3
-#: dh_installcron:3 dh_installdeb:3 dh_installdebconf:3 dh_installdirs:3
-#: dh_installdocs:3 dh_installemacsen:3 dh_installexamples:3
-#: dh_installifupdown:3 dh_installinfo:3 dh_installinit:3 dh_installlogcheck:3
-#: dh_installlogrotate:3 dh_installman:3 dh_installmanpages:3 dh_installmenu:3
-#: dh_installmime:3 dh_installmodules:3 dh_installpam:3 dh_installppp:3
-#: dh_installudev:3 dh_installwm:3 dh_installxfonts:3 dh_link:3 dh_lintian:3
-#: dh_listpackages:3 dh_makeshlibs:3 dh_md5sums:3 dh_movefiles:3 dh_perl:3
-#: dh_prep:3 dh_scrollkeeper:3 dh_shlibdeps:3 dh_strip:3 dh_suidregister:3
-#: dh_testdir:3 dh_testroot:3 dh_undocumented:3 dh_usrlocal:3
+#: debhelper.pod:3 debhelper-compat-upgrade-checklist.pod:3
+#: debhelper-obsolete-compat.pod:1 dh:3 dh_auto_build:3 dh_auto_clean:3
+#: dh_auto_configure:3 dh_auto_install:3 dh_auto_test:3 dh_bugfiles:3
+#: dh_builddeb:5 dh_clean:3 dh_compress:3 dh_dwz:3 dh_fixperms:3
+#: dh_gencontrol:3 dh_icons:3 dh_install:3 dh_installcatalogs:3
+#: dh_installchangelogs:3 dh_installcron:3 dh_installdeb:3 dh_installdebconf:3
+#: dh_installdirs:3 dh_installdocs:5 dh_installemacsen:3 dh_installexamples:5
+#: dh_installifupdown:3 dh_installinfo:3 dh_installinit:3 dh_installinitramfs:3
+#: dh_installlogcheck:3 dh_installlogrotate:3 dh_installman:3
+#: dh_installmanpages:3 dh_installmenu:3 dh_installmime:3 dh_installmodules:3
+#: dh_installpam:3 dh_installppp:3 dh_installudev:3 dh_installwm:3
+#: dh_installxfonts:3 dh_link:3 dh_lintian:3 dh_listpackages:3 dh_makeshlibs:3
+#: dh_md5sums:3 dh_movefiles:3 dh_perl:3 dh_prep:3 dh_shlibdeps:3 dh_strip:3
+#: dh_testdir:3 dh_testroot:5 dh_usrlocal:5 dh_systemd_enable:3
+#: dh_systemd_start:3
msgid "NAME"
msgstr "NOMBRE"
# type: textblock
#. type: textblock
-#: debhelper.pod:3
+#: debhelper.pod:5
msgid "debhelper - the debhelper tool suite"
msgstr "debhelper - El conjunto de herramientas debhelper"
# type: =head1
#. type: =head1
-#: debhelper.pod:5 dh:12 dh_auto_build:12 dh_auto_clean:13
-#: dh_auto_configure:12 dh_auto_install:15 dh_auto_test:13 dh_bugfiles:12
-#: dh_builddeb:12 dh_clean:12 dh_compress:13 dh_desktop:12 dh_fixperms:13
-#: dh_gconf:12 dh_gencontrol:12 dh_icons:13 dh_install:13
-#: dh_installcatalogs:14 dh_installchangelogs:12 dh_installcron:12
-#: dh_installdeb:12 dh_installdebconf:12 dh_installdirs:12 dh_installdocs:12
-#: dh_installemacsen:12 dh_installexamples:12 dh_installifupdown:12
-#: dh_installinfo:12 dh_installinit:13 dh_installlogcheck:12
-#: dh_installlogrotate:12 dh_installman:13 dh_installmanpages:13
-#: dh_installmenu:12 dh_installmime:12 dh_installmodules:13 dh_installpam:12
-#: dh_installppp:12 dh_installudev:13 dh_installwm:12 dh_installxfonts:12
-#: dh_link:13 dh_lintian:12 dh_listpackages:12 dh_makeshlibs:12 dh_md5sums:13
-#: dh_movefiles:12 dh_perl:14 dh_prep:12 dh_scrollkeeper:12 dh_shlibdeps:13
-#: dh_strip:13 dh_suidregister:7 dh_testdir:12 dh_testroot:7
-#: dh_undocumented:12 dh_usrlocal:15
+#: debhelper.pod:7 debhelper-compat-upgrade-checklist.pod:7
+#: debhelper-obsolete-compat.pod:5 dh:22 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_gencontrol:16 dh_icons:16 dh_install:15 dh_installcatalogs:17
+#: dh_installchangelogs:16 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:18
+#: 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 "SINOPSIS"
# type: textblock
#. type: textblock
-#: debhelper.pod:7
+#: debhelper.pod:9
+#, fuzzy
+#| msgid ""
+#| "B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-"
+#| "p>I<package>] [B<-N>I<package>] [B<-P>I<tmpdir>]"
msgid ""
-"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-p>I<package>] "
-"[B<-N>I<package>] [B<-P>I<tmpdir>]"
+"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<--no-act>] [B<-p>I<package>] [B<-"
+"N>I<package>] [B<-P>I<tmpdir>]"
msgstr ""
"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-p>I<paquete>] "
"[B<-N>I<paquete>] [B<-P>I<directorio-temporal>]"
# type: =head1
#. type: =head1
-#: debhelper.pod:9 dh:16 dh_auto_build:16 dh_auto_clean:17
-#: dh_auto_configure:16 dh_auto_install:19 dh_auto_test:17 dh_bugfiles:16
-#: dh_builddeb:16 dh_clean:16 dh_compress:17 dh_desktop:16 dh_fixperms:17
-#: dh_gconf:16 dh_gencontrol:16 dh_icons:17 dh_install:17
-#: dh_installcatalogs:18 dh_installchangelogs:16 dh_installcron:16
-#: dh_installdeb:16 dh_installdebconf:16 dh_installdirs:16 dh_installdocs:16
-#: dh_installemacsen:16 dh_installexamples:16 dh_installifupdown:16
-#: dh_installinfo:16 dh_installinit:17 dh_installlogcheck:16
-#: dh_installlogrotate:16 dh_installman:17 dh_installmanpages:17
-#: dh_installmenu:16 dh_installmime:16 dh_installmodules:17 dh_installpam:16
-#: dh_installppp:16 dh_installudev:17 dh_installwm:16 dh_installxfonts:16
-#: dh_link:17 dh_lintian:16 dh_listpackages:16 dh_makeshlibs:16 dh_md5sums:17
-#: dh_movefiles:16 dh_perl:18 dh_prep:16 dh_scrollkeeper:16 dh_shlibdeps:17
-#: dh_strip:17 dh_suidregister:11 dh_testdir:16 dh_testroot:11
-#: dh_undocumented:16 dh_usrlocal:19
+#: debhelper.pod:11 debhelper-compat-upgrade-checklist.pod:17 dh:26
+#: 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_gencontrol:20 dh_icons:20 dh_install:19
+#: dh_installcatalogs:21 dh_installchangelogs:20 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:22
+#: 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 "DESCRIPCIÓN"
# type: textblock
#. type: textblock
-#: debhelper.pod:11
+#: debhelper.pod:13
msgid ""
"Debhelper is used to help you build a Debian package. The philosophy behind "
"debhelper is to provide a collection of small, simple, and easily understood "
@@ -138,7 +145,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:19
+#: debhelper.pod:21
msgid ""
"A typical F<debian/rules> file that uses debhelper will call several "
"debhelper commands in sequence, or use L<dh(1)> to automate this process. "
@@ -152,7 +159,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:23
+#: debhelper.pod:25
msgid ""
"To create a new Debian package using debhelper, you can just copy one of the "
"sample rules files and edit it by hand. Or you can try the B<dh-make> "
@@ -169,15 +176,24 @@ msgstr ""
"paquete que utiliza debhelper (N. del T. existe una versión traducida al "
"castellano en el paquete B<maint-guide-es>)."
+#. type: textblock
+#: debhelper.pod:31
+msgid ""
+"Except where the tool explicitly denotes otherwise, all of the debhelper "
+"tools assume that they run from the root directory of an unpacked source "
+"package. This is so they can locate find files like F<debian/control> when "
+"needed."
+msgstr ""
+
# type: =head1
#. type: =head1
-#: debhelper.pod:29
+#: debhelper.pod:36
msgid "DEBHELPER COMMANDS"
msgstr "ÓRDENES DE DEBHELPER"
# type: textblock
#. type: textblock
-#: debhelper.pod:31
+#: debhelper.pod:38
msgid ""
"Here is the list of debhelper commands you can use. See their man pages for "
"additional documentation."
@@ -187,36 +203,36 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:36
+#: debhelper.pod:43
msgid "#LIST#"
msgstr "#LIST#"
#. type: =head2
-#: debhelper.pod:40
+#: debhelper.pod:47
msgid "Deprecated Commands"
msgstr "Órdenes obsoletas"
#. type: textblock
-#: debhelper.pod:42
+#: debhelper.pod:49
msgid "A few debhelper commands are deprecated and should not be used."
msgstr ""
"Existe un conjunto de órdenes de debhelper que han quedado obsoletas y que "
"no se deberían utilizar."
#. type: textblock
-#: debhelper.pod:46
+#: debhelper.pod:53
msgid "#LIST_DEPRECATED#"
msgstr "#LIST_DEPRECATED#"
# type: =head2
#. type: =head2
-#: debhelper.pod:50
+#: debhelper.pod:57
msgid "Other Commands"
msgstr "Otras órdenes"
# type: textblock
#. type: textblock
-#: debhelper.pod:52
+#: debhelper.pod:59
msgid ""
"If a program's name starts with B<dh_>, and the program is not on the above "
"lists, then it is not part of the debhelper package, but it should still "
@@ -228,13 +244,13 @@ msgstr ""
# type: =head1
#. type: =head1
-#: debhelper.pod:56
+#: debhelper.pod:63
msgid "DEBHELPER CONFIG FILES"
msgstr "FICHEROS DE CONFIGURACIÓN DE DEBHELPER"
# type: textblock
#. type: textblock
-#: debhelper.pod:58
+#: debhelper.pod:65
msgid ""
"Many debhelper commands make use of files in F<debian/> to control what they "
"do. Besides the common F<debian/changelog> and F<debian/control>, which are "
@@ -253,7 +269,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:65
+#: debhelper.pod:72
msgid ""
"For example, B<dh_installdocs> uses files named F<debian/package.docs> to "
"list the documentation files it will install. See the man pages of "
@@ -270,20 +286,20 @@ msgstr ""
"programas de debhelper utilizan parejas de ficheros y destinos o algún "
"formato un poco más complicado."
-# type: textblock
#. type: textblock
-#: debhelper.pod:72
+#: debhelper.pod:79
msgid ""
"Note for the first (or only) binary package listed in F<debian/control>, "
-"debhelper will use F<debian/foo> when there's no F<debian/package.foo> file."
+"debhelper will use F<debian/foo> when there's no F<debian/I<package>.foo> "
+"file. However, it is often a good idea to keep the F<I<package>.> prefix as "
+"it is more explicit. The primary exception to this are files that debhelper "
+"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 ""
-"Tenga en cuenta que si un paquete es el primero (o el único) paquete binario "
-"listado en F<debian/control>, debhelper utiliza F<debian/tal> si no existe "
-"un fichero F<debian/paquete.tal>."
# type: textblock
#. type: textblock
-#: debhelper.pod:76
+#: debhelper.pod:87
msgid ""
"In some rare cases, you may want to have different versions of these files "
"for different architectures or OSes. If files named debian/I<package>.foo."
@@ -301,7 +317,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:83
+#: debhelper.pod:94
msgid ""
"Mostly, these config files are used to specify lists of various types of "
"files. Documentation or example files to install, files to move, and so on. "
@@ -318,29 +334,303 @@ msgstr ""
"en estos ficheros; se ignoran las líneas que empiezan con B<#>."
#. type: textblock
-#: debhelper.pod:90
+#: debhelper.pod:101
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, "
-"you can make the file executable, and write a program that outputs whatever "
-"content is appropriate for a given situation. When you do so, the output is "
-"not further processed to expand wildcards or strip comments."
+"easy to read, understand, and modify."
+msgstr ""
+
+# type: textblock
+#. type: =head2
+#: debhelper.pod:104
+#, fuzzy
+#| msgid "Comments are ignored in debhelper config files."
+msgid "Substitutions in debhelper config files"
+msgstr ""
+"Se ignoran los comentarios en los ficheros de configuración de debhelper."
+
+#. type: textblock
+#: debhelper.pod:106
+msgid ""
+"In compatibility level 13 and later, it is possible to use simple "
+"substitutions in debhelper config files for the following tools:"
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:111 debhelper.pod:115 debhelper.pod:119 debhelper.pod:123
+#: debhelper.pod:127 debhelper.pod:131 debhelper.pod:135 debhelper.pod:139
+#: debhelper.pod:143 debhelper.pod:147 debhelper.pod:151 debhelper.pod:155
+#: debhelper.pod:159 debhelper.pod:247 debhelper.pod:252
+msgid "*"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:113
+msgid "dh_clean"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:117
+msgid "dh_install"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:121
+msgid "dh_installcatalogs"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:125
+msgid "dh_installdeb"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:129
+msgid "dh_installdirs"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:133
+msgid "dh_installdocs"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:137
+msgid "dh_installexamples"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:141
+msgid "dh_installinfo"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:145
+msgid "dh_installman"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:149
+msgid "dh_installwm"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:153
+msgid "dh_link"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:157
+msgid "dh_missing"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:161
+msgid "dh_ucf"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:165
+msgid ""
+"All substitution variables are of the form I<${foo}> and the braces are "
+"mandatory. Variable names are case-sensitive and consist of alphanumerics "
+"(a-zA-Z0-9), hyphens (-), underscores (_), and colons (:). The first "
+"character must be an alphanumeric."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:170
+msgid ""
+"If you need a literal dollar sign that cannot trigger a substitution, you "
+"can either use the B<${Dollar}> substitution or the sequence B<${}>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:173
+msgid "The following expansions are available:"
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:177
+msgid "B<DEB_HOST_*>, B<DEB_BUILD_*>, B<DEB_TARGET_*>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:179
+msgid ""
+"Expands to the relevant L<dpkg-architecture(1)> value (similar to I<dpkg-"
+"architecture -qVARIABLE_HERE>)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:182
+msgid ""
+"When in doubt, the B<DEB_HOST_*> variant is the one that will work both for "
+"native and cross builds."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:185
+msgid ""
+"For performance reasons, debhelper will attempt to resolve these names from "
+"the environment first before consulting L<dpkg-architecture(1)>. This is "
+"mostly mentioned for completeness as it will not matter for most cases."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:190
+msgid "B<Dollar>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:192
+msgid ""
+"Expands to a single literal B<$>-symbol. This symbol will I<never> be "
+"considered part of a substitution variable. That is:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:195
+#, no-wrap
+msgid ""
+" # Triggers an error\n"
+" ${NO_SUCH_TOKEN}\n"
+" # Expands to the literal value \"${NO_SUCH_TOKEN}\"\n"
+" ${Dollar}{NO_SUCH_TOKEN}\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:200
+msgid ""
+"This variable equivalent to the sequence B<${}> and the two can be used "
+"interchangeably."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:203
+msgid "B<Newline>, B<Space>, B<Tab>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:205
+msgid "Expands to a single ASCII newline, space and tab respectively."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:207
+msgid ""
+"This can be useful if you need to include a literal whitespace character (e."
+"g. space) where it would otherwise be stripped or used as a separator."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:211
+msgid "B<< env:I<NAME> >>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:213
+msgid ""
+"Expands to the environment variable I<NAME>. The environment variable must "
+"be set (but can be set to the empty string)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:218
+msgid ""
+"Note that all variables must expand to a defined value. As an example, if "
+"debhelper sees I<${env:FOO}>, then it will insist that the environment "
+"variable I<FOO> is set (it can be set to the empty string)."
+msgstr ""
+
+#. type: =head3
+#: debhelper.pod:222
+msgid "Substitution limits"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:224
+msgid ""
+"To avoid infinite loops and resource exhaustion, debhelper will stop with an "
+"error if the text contains many substitution variables (50) or they expand "
+"beyond a certain size (4096 characters or 3x length of the original input - "
+"whichever is bigger)."
+msgstr ""
+
+# type: textblock
+#. type: =head2
+#: debhelper.pod:229
+#, fuzzy
+#| msgid "Comments are ignored in debhelper config files."
+msgid "Executable debhelper config files"
+msgstr ""
+"Se ignoran los comentarios en los ficheros de configuración de debhelper."
+
+#. type: textblock
+#: debhelper.pod:231
+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 ""
+
+#. type: textblock
+#: debhelper.pod:234
+msgid ""
+"To use this feature, simply mark the config file as executable (e.g. B<< "
+"chmod +x debian/I<package>.install >>) and the tool will attempt to execute "
+"it and use the output of the script. In many cases, you can use L<dh-"
+"exec(1)> as interpreter of the config file to retain most of the original "
+"syntax while getting the additional flexibility you need."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:242
+msgid ""
+"When using executable debhelper config files, please be aware of the "
+"following:"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:249
+msgid ""
+"The executable config file B<must> exit with success (i.e. its return code "
+"should indicate success)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:254
+msgid ""
+"In compatibility level 13+, the output will be subject to substitutions (see "
+"L</Substitutions in debhelper config files>) where the tool support these. "
+"Remember to be careful if your generator I<also> provides substitutions as "
+"this can cause unnecessary confusion."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:259
+msgid ""
+"Otherwise, the output will be used exactly as-is. Notably, debhelper will "
+"I<not> expand wildcards or strip comments or strip whitespace in the output."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:265
+msgid ""
+"If you need the package to build on a file system where you cannot disable "
+"the executable bit, then you can use L<dh-exec(1)> and its B<strip-output> "
+"script."
msgstr ""
-"La sintaxis de estos ficheros es intencionadamente sencilla para facilitar "
-"la lectura, la comprensión y la modificación. Si prefiere potencia y "
-"complejidad, puede dar al fichero permisos de ejecución, y crear un programa "
-"que muestra un contenido adecuado para la situación dada. Si lo hace, la "
-"salida no se proceso para expandir comodines o eliminar comentarios."
# type: =head1
#. type: =head1
-#: debhelper.pod:96
+#: debhelper.pod:269
msgid "SHARED DEBHELPER OPTIONS"
msgstr "OPCIONES COMPARTIDAS DE DEBHELPER"
# type: textblock
#. type: textblock
-#: debhelper.pod:98
+#: debhelper.pod:271
msgid ""
"The following command line options are supported by all debhelper programs."
msgstr ""
@@ -349,28 +639,43 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:102
+#: debhelper.pod:275
msgid "B<-v>, B<--verbose>"
msgstr "B<-v>, B<--verbose>"
# type: textblock
#. type: textblock
-#: debhelper.pod:104
+#: debhelper.pod:277
+#, fuzzy
+#| msgid ""
+#| "Verbose mode: show all commands that modify the package build directory."
+msgid "Verbose mode: show commands that modify the package build directory."
+msgstr ""
+"Modo explicativo: muestra todas las órdenes que modifican el directorio de "
+"construcción del paquete."
+
+# type: textblock
+#. type: textblock
+#: debhelper.pod:279
+#, fuzzy
+#| msgid ""
+#| "Verbose mode: show all commands that modify the package build directory."
msgid ""
-"Verbose mode: show all commands that modify the package build directory."
+"Note that verbose mode may also output other \"internal\" commands that do "
+"not directly affect the package build directory."
msgstr ""
"Modo explicativo: muestra todas las órdenes que modifican el directorio de "
"construcción del paquete."
# type: =item
#. type: =item
-#: debhelper.pod:106 dh:64
+#: debhelper.pod:282 dh:307
msgid "B<--no-act>"
msgstr "B<--no-act>"
# type: textblock
#. type: textblock
-#: debhelper.pod:108
+#: debhelper.pod:284
msgid ""
"Do not really do anything. If used with -v, the result is that the command "
"will output what it would have done."
@@ -380,41 +685,45 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:111
+#: debhelper.pod:287
msgid "B<-a>, B<--arch>"
msgstr "B<-a>, B<--arch>"
# type: textblock
#. type: textblock
-#: debhelper.pod:113
+#: debhelper.pod:289
+#, fuzzy
+#| msgid ""
+#| "Act on architecture dependent packages that should be built for the build "
+#| "architecture."
msgid ""
-"Act on architecture dependent packages that should be built for the build "
-"architecture."
+"Act on architecture dependent packages that should be built for the "
+"B<DEB_HOST_ARCH> architecture."
msgstr ""
"Actúa sobre todos los paquetes dependientes de la arquitectura que se "
"deberían construir para la arquitectura de construcción."
# type: =item
#. type: =item
-#: debhelper.pod:116
+#: debhelper.pod:292
msgid "B<-i>, B<--indep>"
msgstr "B<-i>, B<--indep>"
# type: textblock
#. type: textblock
-#: debhelper.pod:118
+#: debhelper.pod:294
msgid "Act on all architecture independent packages."
msgstr "Actúa en todos los paquetes independientes de la arquitectura."
# type: =item
#. type: =item
-#: debhelper.pod:120
+#: debhelper.pod:296
msgid "B<-p>I<package>, B<--package=>I<package>"
msgstr "B<-p>I<paquete>, B<--package=>I<paquete>"
# type: textblock
#. type: textblock
-#: debhelper.pod:122
+#: debhelper.pod:298
msgid ""
"Act on the package named I<package>. This option may be specified multiple "
"times to make debhelper operate on a given set of packages."
@@ -425,28 +734,29 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:125
+#: debhelper.pod:301
msgid "B<-s>, B<--same-arch>"
msgstr "B<-s>, B<--same-arch>"
#. type: textblock
-#: debhelper.pod:127
-msgid ""
-"This used to be a smarter version of the B<-a> flag, but the B<-a> flag is "
-"now equally smart."
+#: debhelper.pod:303
+msgid "Deprecated alias of B<-a>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:305 dh_install:80 dh_install:89
+msgid "This option is removed in compat 12."
msgstr ""
-"Solía ser una versión más inteligente de la opción B<-a>, pero actualmente "
-"la opción B<-a> es igual de inteligente."
# type: =item
#. type: =item
-#: debhelper.pod:130
+#: debhelper.pod:307
msgid "B<-N>I<package>, B<--no-package=>I<package>"
msgstr "B<-N>I<paquete>, B<--no-package=>I<paquete>"
# type: textblock
#. type: textblock
-#: debhelper.pod:132
+#: debhelper.pod:309
msgid ""
"Do not act on the specified package even if an B<-a>, B<-i>, or B<-p> option "
"lists the package as one that should be acted on."
@@ -456,12 +766,12 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:135
+#: debhelper.pod:312
msgid "B<--remaining-packages>"
msgstr "B<--remaining-packages>"
#. type: textblock
-#: debhelper.pod:137
+#: debhelper.pod:314
msgid ""
"Do not act on the packages which have already been acted on by this "
"debhelper command earlier (i.e. if the command is present in the package "
@@ -478,44 +788,13 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:143
-msgid "B<--ignore=>I<file>"
-msgstr "B<--ignore=>I<fichero>"
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:145
-msgid ""
-"Ignore the specified file. This can be used if F<debian/> contains a "
-"debhelper config file that a debhelper command should not act on. Note that "
-"F<debian/compat>, F<debian/control>, and F<debian/changelog> can't be "
-"ignored, but then, there should never be a reason to ignore those files."
-msgstr ""
-"Ignora el fichero dado. Se puede utilizar si F<debian/> contiene un fichero "
-"de configuración de debhelper sobre el que una orden de debhelper no debería "
-"actuar. Tenga en cuenta que no puede ignorar F<debian/compat>, F<debian/"
-"control> y F<debian/changelog>, aunque nunca debería existir una razón para "
-"ignorar esos ficheros."
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:150
-msgid ""
-"For example, if upstream ships a F<debian/init> that you don't want "
-"B<dh_installinit> to install, use B<--ignore=debian/init>"
-msgstr ""
-"Por ejemplo, si la fuente original distribuye un fichero F<debian/init> que "
-"no desea que B<dh_installinit> instale, use B<--ignore=debian/init>."
-
-# type: =item
-#. type: =item
-#: debhelper.pod:153
+#: debhelper.pod:320
msgid "B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>"
msgstr "B<-P>I<directorio_temporal>, B<--tmpdir=>I<directorio_temporal>"
# type: textblock
#. type: textblock
-#: debhelper.pod:155
+#: debhelper.pod:322
msgid ""
"Use I<tmpdir> for package build directory. The default is debian/I<package>"
msgstr ""
@@ -524,13 +803,13 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:157
+#: debhelper.pod:324
msgid "B<--mainpackage=>I<package>"
msgstr "B<--mainpackage=>I<paquete>"
# type: textblock
#. type: textblock
-#: debhelper.pod:159
+#: debhelper.pod:326
msgid ""
"This little-used option changes the package which debhelper considers the "
"\"main package\", that is, the first one listed in F<debian/control>, and "
@@ -543,12 +822,12 @@ msgstr ""
"usuales F<debian/package.tal>."
#. type: =item
-#: debhelper.pod:164
+#: debhelper.pod:331
msgid "B<-O=>I<option>|I<bundle>"
msgstr "B<-O=>I<opción>|I<fichero>"
#. type: textblock
-#: debhelper.pod:166
+#: debhelper.pod:333
msgid ""
"This is used by L<dh(1)> when passing user-specified options to all the "
"commands it runs. If the command supports the specified option or option "
@@ -562,13 +841,13 @@ msgstr ""
# type: =head1
#. type: =head1
-#: debhelper.pod:173
+#: debhelper.pod:340
msgid "COMMON DEBHELPER OPTIONS"
msgstr "OPCIONES COMUNES DE DEBHELPER"
# type: textblock
#. type: textblock
-#: debhelper.pod:175
+#: debhelper.pod:342
msgid ""
"The following command line options are supported by some debhelper "
"programs. See the man page of each program for a complete explanation of "
@@ -580,50 +859,50 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:181
+#: debhelper.pod:348
msgid "B<-n>"
msgstr "B<-n>"
# type: textblock
#. type: textblock
-#: debhelper.pod:183
+#: debhelper.pod:350
msgid "Do not modify F<postinst>, F<postrm>, etc. scripts."
msgstr "No modifica los scripts F<postinst>, F<postrm>, etc."
# type: =item
#. type: =item
-#: debhelper.pod:185 dh_compress:52 dh_install:81 dh_installchangelogs:71
-#: dh_installdocs:80 dh_installexamples:41 dh_link:62 dh_makeshlibs:81
-#: dh_md5sums:37 dh_shlibdeps:30 dh_strip:39
+#: debhelper.pod:352 dh_compress:56 dh_dwz:56 dh_installchangelogs:89
+#: dh_installdocs:109 dh_installexamples:84 dh_link:78 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>"
# type: textblock
#. type: textblock
-#: debhelper.pod:187
+#: debhelper.pod:354
#, fuzzy
#| msgid ""
#| "Exclude an item from processing. This option may be used multiple times, "
#| "to exclude more than one thing."
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."
+"exclude more than one thing. The I<item> is typically part of a filename, "
+"and any file containing the specified text will be excluded."
msgstr ""
"No procesa un elemento. Esta opción se puede utilizar varias veces para "
"excluir distintos elementos."
# type: =item
#. type: =item
-#: debhelper.pod:191 dh_bugfiles:54 dh_compress:59 dh_installdirs:35
-#: dh_installdocs:75 dh_installexamples:36 dh_installinfo:35 dh_installman:65
-#: dh_link:57
+#: debhelper.pod:358 dh_bugfiles:57 dh_compress:63 dh_installdirs:49
+#: dh_installdocs:104 dh_installexamples:52 dh_installinfo:45 dh_installman:90
+#: dh_installwm:55 dh_link:73
msgid "B<-A>, B<--all>"
msgstr "B<-A>, B<--all>"
# type: textblock
#. type: textblock
-#: debhelper.pod:193
+#: debhelper.pod:360
msgid ""
"Makes files or other items that are specified on the command line take "
"effect in ALL packages acted on, not just the first."
@@ -632,12 +911,12 @@ msgstr ""
"tengan efecto en TODOS los paquetes sobre los que actúa, no sólo el primero."
#. type: =head1
-#: debhelper.pod:198
+#: debhelper.pod:365
msgid "BUILD SYSTEM OPTIONS"
msgstr "OPCIONES DEL SISTEMA DE CONSTRUCCIÓN"
#. type: textblock
-#: debhelper.pod:200
+#: debhelper.pod:367
msgid ""
"The following command line options are supported by all of the "
"B<dh_auto_>I<*> debhelper programs. These programs support a variety of "
@@ -655,13 +934,13 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:209
+#: debhelper.pod:376
msgid "B<-S>I<buildsystem>, B<--buildsystem=>I<buildsystem>"
msgstr ""
"B<-S>I<sistema-de-construcción>, B<--buildsystem=>I<sistema-de-construcción>"
#. type: textblock
-#: debhelper.pod:211
+#: debhelper.pod:378
msgid ""
"Force use of the specified I<buildsystem>, instead of trying to auto-select "
"one which might be applicable for the package."
@@ -669,14 +948,23 @@ msgstr ""
"Fuerza el uso del I<sistema-de-construcción> definido, en lugar de intentar "
"seleccionar uno de forma automática que podría ser adecuado para el paquete."
+#. type: textblock
+#: debhelper.pod:381
+msgid "Pass B<none> as I<buildsystem> to disable auto-selection."
+msgstr ""
+
# type: =item
#. type: =item
-#: debhelper.pod:214
-msgid "B<-D>I<directory>, B<--sourcedirectory=>I<directory>"
+#: debhelper.pod:383
+#, 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
-#: debhelper.pod:216
+#: debhelper.pod:385
msgid ""
"Assume that the original package source tree is at the specified "
"I<directory> rather than the top level directory of the Debian source "
@@ -686,14 +974,28 @@ msgstr ""
"I<directorio> definido, en lugar del directorio de nivel superior del árbol "
"del paquete fuente de Debian."
+#. type: textblock
+#: debhelper.pod:389
+msgid ""
+"B<Warning>: The B<--sourcedir> variant matches a similar named option in "
+"B<dh_install> and B<dh_missing> (etc.) for historical reasons. While they "
+"have a similar name, they have very distinct purposes and in some cases it "
+"can cause errors when this variant is passed to B<dh> (when then passes it "
+"on to all tools)."
+msgstr ""
+
# type: =item
#. type: =item
-#: debhelper.pod:220
-msgid "B<-B>[I<directory>], B<--builddirectory=>[I<directory>]"
+#: debhelper.pod:395
+#, 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
-#: debhelper.pod:222
+#: debhelper.pod:397
#, fuzzy
#| msgid ""
#| "Enable out of source building and use the specified I<directory> as the "
@@ -709,7 +1011,7 @@ msgstr ""
"de construcción predeterminado si se omite el parámetro I<directorio>."
#. type: textblock
-#: debhelper.pod:226
+#: debhelper.pod:401
msgid ""
"If this option is not specified, building will be done in source by default "
"unless the build system requires or prefers out of source tree building. In "
@@ -723,7 +1025,7 @@ msgstr ""
"define B<--builddirectory>."
#. type: textblock
-#: debhelper.pod:231
+#: debhelper.pod:406
msgid ""
"If the build system prefers out of source tree building but still allows in "
"source building, the latter can be re-enabled by passing a build directory "
@@ -736,17 +1038,25 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:235
-msgid "B<--parallel>"
-msgstr "B<--parallel>"
+#: debhelper.pod:410
+#, fuzzy
+#| msgid "B<-A>, B<--all>"
+msgid "B<--parallel>, B<--no-parallel>"
+msgstr "B<-A>, B<--all>"
#. type: textblock
-#: debhelper.pod:237
+#: debhelper.pod:412
+#, fuzzy
+#| msgid ""
+#| "Enable parallel builds if underlying build system supports them. The "
+#| "number of parallel jobs is controlled by the B<DEB_BUILD_OPTIONS> "
+#| "environment variable (L<Debian Policy, section 4.9.1>) at build time. It "
+#| "might also be subject to a build system specific limit."
msgid ""
-"Enable parallel builds if underlying build system supports them. The number "
-"of parallel jobs is controlled by the B<DEB_BUILD_OPTIONS> environment "
-"variable (L<Debian Policy, section 4.9.1>) at build time. It might also be "
-"subject to a build system specific limit."
+"Control whether parallel builds should be used if underlying build system "
+"supports them. The number of parallel jobs is controlled by the "
+"B<DEB_BUILD_OPTIONS> environment variable (L<Debian Policy, section 4.9.1>) "
+"at build time. It might also be subject to a build system specific limit."
msgstr ""
"Activa construcciones paralelas si el sistema de construcción subyacente lo "
"permite. El número de tareas paralelas se controla mediante la variable de "
@@ -755,21 +1065,34 @@ msgstr ""
"sistema de construcción."
#. type: textblock
-#: debhelper.pod:242
+#: debhelper.pod:418
+#, fuzzy
+#| msgid ""
+#| "If this option is not specified, debhelper currently defaults to not "
+#| "allowing parallel package builds."
msgid ""
-"If this option is not specified, debhelper currently defaults to not "
-"allowing parallel package builds."
+"If neither option is specified, debhelper currently defaults to B<--"
+"parallel> in compat 10 (or later) and B<--no-parallel> otherwise."
msgstr ""
"Si no se define esta opción, debhelper no permitirá la construcción en "
"paralelo de paquetes de forma predeterminada."
+#. type: textblock
+#: debhelper.pod:421
+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 "
+"this happens when B<DEB_BUILD_OPTIONS> does not have a I<parallel> parameter "
+"(or its value is 1)."
+msgstr ""
+
#. type: =item
-#: debhelper.pod:245
+#: debhelper.pod:426
msgid "B<--max-parallel=>I<maximum>"
msgstr "B<--max-parallel=>I<máximo>"
#. type: textblock
-#: debhelper.pod:247
+#: debhelper.pod:428
msgid ""
"This option implies B<--parallel> and allows further limiting the number of "
"jobs that can be used in a parallel build. If the package build is known to "
@@ -782,613 +1105,281 @@ msgstr ""
"puede definir esto con el nivel máximo conocido con el que funciona, o que "
"desea permitir."
-# type: =item
-#. type: =item
-#: debhelper.pod:252 dh:60
-msgid "B<--list>, B<-l>"
-msgstr "B<--list>, B<-l>"
-
#. type: textblock
-#: debhelper.pod:254
+#: debhelper.pod:433
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."
+"Notably, setting the maximum to 1 is effectively the same as using B<--no-"
+"parallel>."
msgstr ""
-"Lista todos los sistemas construcción en el sistema que debhelper acepta. La "
-"lista incluye sistemas de construcción de terceras fuentes (marcadas como "
-"tal) y la predeterminada. También muestra el sistema de construcción que se "
-"seleccionará automáticamente, o cuál está definido mediante la opción B<--"
-"buildsystem>."
-#. type: =head1
-#: debhelper.pod:261
-msgid "COMPATIBILITY LEVELS"
-msgstr "NIVELES DE COMPATIBILIDAD"
+#. type: =item
+#: debhelper.pod:436
+msgid "B<--reload-all-buildenv-variables>"
+msgstr ""
-# type: textblock
#. type: textblock
-#: debhelper.pod:263
+#: debhelper.pod:438
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 "
-"tell debhelper which compatibility level it should use, and it modifies its "
-"behavior in various ways."
+"By default, L<dh(1)> will compute several environment variables (e.g. by "
+"using L<dpkg-buildflags(1)>) and cache them to avoid having all B<dh_auto_*> "
+"tool recompute them."
msgstr ""
-"Cada cierto tiempo, debhelper necesita cambios que lo pueden hacer "
-"incompatible con versiones anteriores para así continuar con un buen y "
-"limpio diseño a medida que las necesidades cambian y que su autor gana más "
-"experiencia. Los niveles de compatibilidad de debhelper se crearon para "
-"impedir que estos cambios estropeen algún paquete. Según el nivel de "
-"compatibilidad que se especifique debhelper se comporta de diferentes "
-"maneras."
-# type: textblock
#. type: textblock
-#: debhelper.pod:270
+#: debhelper.pod:442
msgid ""
-"Tell debhelper what compatibility level to use by writing a number to "
-"F<debian/compat>. For example, to turn on v9 mode:"
+"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 ""
-"Para especificar a debhelper qué nivel de compatibilidad debe utilizar, "
-"escriba un número en F<debian/compat>. Por ejemplo, para activar el modo v9:"
-# type: verbatim
#. type: verbatim
-#: debhelper.pod:273
+#: debhelper.pod:449
#, no-wrap
msgid ""
-" % echo 9 > debian/compat\n"
+" export DEB_CFLAGS_MAINT_APPEND=-O3\n"
"\n"
msgstr ""
-" % echo 9 > debian/compat\n"
-"\n"
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:275
-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 9, 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 9, compruebe que «debian/control» "
-"contiene lo siguiente:"
-# type: verbatim
#. type: verbatim
-#: debhelper.pod:279
+#: debhelper.pod:451
#, no-wrap
msgid ""
-" Build-Depends: debhelper (>= 9)\n"
+" %:\n"
+" dh $@\n"
"\n"
msgstr ""
-" Build-Depends: debhelper (>= 9)\n"
-"\n"
-# type: textblock
-#. type: textblock
-#: debhelper.pod:281
+#. type: verbatim
+#: debhelper.pod:454
+#, no-wrap
msgid ""
-"Unless otherwise indicated, all debhelper documentation assumes that you are "
-"using the most recent compatibility level, and in most cases does not "
-"indicate if the behavior is different in an earlier compatibility level, so "
-"if you are not using the most recent compatibility level, you're advised to "
-"read below for notes about what is different in earlier compatibility levels."
+" 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 ""
-"A menos que se indique lo contrario, toda la documentación de debhelper "
-"supone que utiliza el nivel de compatibilidad más reciente, y en la mayoría "
-"de los casos no indica si el comportamiento de debhelper es distinto bajo "
-"otro nivel de compatibilidad. Por ello, si no está utilizando el nivel de "
-"compatibilidad más reciente, recomendamos que lea a continuación las notas "
-"acerca de las diferencias con anteriores niveles de compatibilidad."
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:288
-msgid "These are the available compatibility levels:"
-msgstr "Los niveles de compatibilidad disponibles son:"
-#. type: =item
-#: debhelper.pod:292
-msgid "v1"
-msgstr "v1"
-
-# type: textblock
#. type: textblock
-#: debhelper.pod:294
+#: debhelper.pod:459
msgid ""
-"This is the original debhelper compatibility level, and so it is the default "
-"one. In this mode, debhelper will use F<debian/tmp> as the package tree "
-"directory for the first binary package listed in the control file, while "
-"using debian/I<package> for all other packages listed in the F<control> file."
+"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 ""
-"Este es el nivel de compatibilidad original de debhelper, y por tanto es el "
-"nivel predeterminado. En este modo, debhelper utiliza F<debian/tmp> como el "
-"árbol de directorios del paquete, y «debian/I<paquete>» para el resto de "
-"paquetes listados en el fichero F<control>."
-# type: textblock
#. type: textblock
-#: debhelper.pod:299 debhelper.pod:306 debhelper.pod:329 debhelper.pod:358
-msgid "This mode is deprecated."
-msgstr "Este modo está obsoleto."
-
-#. type: =item
-#: debhelper.pod:301
-msgid "v2"
-msgstr "v2"
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:303
+#: debhelper.pod:464
msgid ""
-"In this mode, debhelper will consistently use debian/I<package> as the "
-"package tree directory for every package that is built."
+"This option is only available with B<< debhelper (>= 12.7~) >> when the "
+"package uses compatibility level 9 or later."
msgstr ""
-"En este modo, debhelper utilizará «debian/I<paquete>» de forma consistente "
-"como el árbol de directorios para cada paquete que se construya."
-
-#. type: =item
-#: debhelper.pod:308
-msgid "v3"
-msgstr "v3"
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:310
-msgid "This mode works like v2, with the following additions:"
-msgstr "Este modo funciona como v2, con los siguientes añadidos:"
# type: =item
#. type: =item
-#: debhelper.pod:314 debhelper.pod:319 debhelper.pod:323 debhelper.pod:337
-#: debhelper.pod:342 debhelper.pod:347 debhelper.pod:352 debhelper.pod:366
-#: debhelper.pod:370 debhelper.pod:375 debhelper.pod:379 debhelper.pod:391
-#: debhelper.pod:396 debhelper.pod:402 debhelper.pod:408 debhelper.pod:421
-#: debhelper.pod:428 debhelper.pod:432 debhelper.pod:436 debhelper.pod:449
-#: debhelper.pod:453 debhelper.pod:461 debhelper.pod:466 debhelper.pod:480
-#: debhelper.pod:485 debhelper.pod:492 debhelper.pod:497 debhelper.pod:502
-#: debhelper.pod:506 debhelper.pod:512 debhelper.pod:517 debhelper.pod:522
-#: debhelper.pod:535 debhelper.pod:542
-msgid "-"
-msgstr "-"
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:316
-msgid ""
-"Debhelper config files support globbing via B<*> and B<?>, when appropriate. "
-"To turn this off and use those characters raw, just prefix with a backslash."
-msgstr ""
-"Los ficheros de configuración de Debhelper aceptan comodines globales "
-"mediante B<*> y B<?> cuando sea apropiado. Para utilizar «*» y «?» como "
-"caracteres simplemente debe insertar como prefijo una barra invertida."
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:321
-msgid ""
-"B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call "
-"B<ldconfig>."
-msgstr ""
-"B<dh_makeshlibs> hace que los scripts F<postinst> y F<postrm> ejecuten "
-"ldconfig."
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:325
-msgid ""
-"Every file in F<etc/> is automatically flagged as a conffile by "
-"B<dh_installdeb>."
-msgstr ""
-"B<dh_installdeb> marca automáticamente todos los ficheros en F<etc/> como "
-"conffiles."
-
-#. type: =item
-#: debhelper.pod:331
-msgid "v4"
-msgstr "v4"
-
-#. type: textblock
-#: debhelper.pod:333
-msgid "Changes from v3 are:"
-msgstr "Los cambios desde el nivel v3 son:"
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:339
-msgid ""
-"B<dh_makeshlibs -V> will not include the Debian part of the version number "
-"in the generated dependency line in the shlibs file."
-msgstr ""
-"B<dh_makeshlibs -V> no incluirá la parte de Debian en el numero de versión "
-"generado en la línea de dependencias del fichero «shlibs»."
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:344
-msgid ""
-"You are encouraged to put the new B<${misc:Depends}> into F<debian/control> "
-"to supplement the B<${shlibs:Depends}> field."
-msgstr ""
-"Se aconseja que use el nuevo B<${misc:Depends}> en F<debian/control> para "
-"reemplazar el campo B<${shlibs:Depends}>."
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:349
-msgid ""
-"B<dh_fixperms> will make all files in F<bin/> directories and in F<etc/init."
-"d> executable."
-msgstr ""
-"B<dh_fixperms> hará ejecutables todos los ficheros en los directorios F<bin/"
-"> y F<etc/init.d>."
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:354
-msgid "B<dh_link> will correct existing links to conform with policy."
-msgstr ""
-"B<dh_link> corregirá los enlaces existentes para ajustarse a las normas de "
-"Debian."
-
-#. type: =item
-#: debhelper.pod:360
-msgid "v5"
-msgstr "v5"
-
-#. type: textblock
-#: debhelper.pod:362
-msgid "Changes from v4 are:"
-msgstr "Los cambios desde el nivel v4 son:"
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:368
-msgid "Comments are ignored in debhelper config files."
-msgstr ""
-"Se ignoran los comentarios en los ficheros de configuración de debhelper."
+#: debhelper.pod:467 dh:299
+msgid "B<--list>, B<-l>"
+msgstr "B<--list>, B<-l>"
-# type: textblock
#. type: textblock
-#: debhelper.pod:372
+#: debhelper.pod:469
msgid ""
-"B<dh_strip --dbg-package> now specifies the name of a package to put "
-"debugging symbols in, not the packages to take the symbols from."
-msgstr ""
-"B<dh_strip --dbg-package> ahora especifica el nombre del paquete en el que "
-"se colocan los símbolos de depuración, no los paquetes desde los que obtener "
-"los símbolos."
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:377
-msgid "B<dh_installdocs> skips installing empty files."
-msgstr "B<dh_installdocs> omite la instalación de ficheros vacíos."
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:381
-msgid "B<dh_install> errors out if wildcards expand to nothing."
+"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 ""
-"B<dh_install> devuelve un error si los comodines se expanden a un valor "
-"vacío."
-
-#. type: =item
-#: debhelper.pod:385
-msgid "v6"
-msgstr "v6"
-
-#. type: textblock
-#: debhelper.pod:387
-msgid "Changes from v5 are:"
-msgstr "Los cambios desde el nivel v5 son:"
+"Lista todos los sistemas construcción en el sistema que debhelper acepta. La "
+"lista incluye sistemas de construcción de terceras fuentes (marcadas como "
+"tal) y la predeterminada. También muestra el sistema de construcción que se "
+"seleccionará automáticamente, o cuál está definido mediante la opción B<--"
+"buildsystem>."
-# type: textblock
-#. type: textblock
-#: debhelper.pod:393
-msgid ""
-"Commands that generate maintainer script fragments will order the fragments "
-"in reverse order for the F<prerm> and F<postrm> scripts."
-msgstr ""
-"Las órdenes que generan segmentos de scripts de desarrollador ordenarán "
-"estos segmentos en orden inverso para los scripts F<prerm> y F<postrm>."
+#. type: =head1
+#: debhelper.pod:476
+msgid "COMPATIBILITY LEVELS"
+msgstr "NIVELES DE COMPATIBILIDAD"
# type: textblock
#. type: textblock
-#: debhelper.pod:398
+#: debhelper.pod:478
+#, 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 tell debhelper which compatibility level it should use, "
+#| "and it modifies its behavior in various ways."
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 "
-"directory."
+"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."
msgstr ""
-"B<dh_installwm> instalará un enlace esclavo a la página de manual F<x-window-"
-"manager.1.gz> en caso de encontrar la página de manual en F<usr/share/man/"
-"man1> dentro del directorio de construcción del paquete."
+"Cada cierto tiempo, debhelper necesita cambios que lo pueden hacer "
+"incompatible con versiones anteriores para así continuar con un buen y "
+"limpio diseño a medida que las necesidades cambian y que su autor gana más "
+"experiencia. Los niveles de compatibilidad de debhelper se crearon para "
+"impedir que estos cambios estropeen algún paquete. Según el nivel de "
+"compatibilidad que se especifique debhelper se comporta de diferentes "
+"maneras."
# type: textblock
#. type: textblock
-#: debhelper.pod:404
+#: debhelper.pod:485
+#, 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 ""
-"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."
+"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 ""
-"Anteriormente, B<dh_builddeb> no eliminaba todo aquello que coincidiese con "
-"B<DH_ALWAYS_EXCLUDE>, si es que se definía con una lista de elementos a "
-"excluir, como por ejemplo B<CVS:.svn:.git>. Ahora sí lo hace."
+"Para especificar a debhelper qué nivel de compatibilidad debe utilizar, "
+"escriba un número en F<debian/compat>. Por ejemplo, para activar el modo "
+"v#RECOMMENDED_COMPAT#:"
-# type: textblock
-#. type: textblock
-#: debhelper.pod:410
+# type: verbatim
+#. type: verbatim
+#: debhelper.pod:489
+#, fuzzy, no-wrap
+#| msgid ""
+#| " Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
+#| "\n"
msgid ""
-"B<dh_installman> allows overwriting existing man pages in the package build "
-"directory. In previous compatibility levels it silently refuses to do this."
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
+"\n"
msgstr ""
-"B<dh_installman> permite sobreescribir páginas de manual existentes en el "
-"directorio de construcción del paquete. Bajo los niveles de compatibilidad "
-"anteriores simplemente rechazaba hacerlo, de forma silenciosa."
-
-#. type: =item
-#: debhelper.pod:415
-msgid "v7"
-msgstr "v7"
-
-#. type: textblock
-#: debhelper.pod:417
-msgid "Changes from v6 are:"
-msgstr "Los cambios desde el nivel v6 son:"
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
+"\n"
-# type: textblock
#. type: textblock
-#: debhelper.pod:423
+#: debhelper.pod:491
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 "
-"using B<--sourcedir>). This allows B<dh_install> to interoperate with "
-"B<dh_auto_install>, which installs to F<debian/tmp>, without needing any "
-"special parameters."
+"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 ""
-"B<dh_install> buscará ficheros en F<debian/tmp> de forma predeterminada si "
-"no los encuentra en el directorio actual (o dónde indicó hacerlo mediante "
-"B<--sourcedir>). Esto permite la interoperabilidad entre B<dh_install> y "
-"B<dh_auto_install>, que instala en F<debian/tmp>, sin necesidad de "
-"parámetros especiales."
-# type: textblock
#. type: textblock
-#: debhelper.pod:430
-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:434
-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:438
+#: debhelper.pod:497
msgid ""
-"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
-"none is specified."
+"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, if only for selected commands, "
+"B<DH_COMPAT>)."
msgstr ""
-"B<dh_installchangelogs> intentará averiguar el fichero de registro de "
-"cambios de la fuente original si no se especifica ninguno."
-
-#. type: =item
-#: debhelper.pod:443
-msgid "v8"
-msgstr "v8"
-
-#. type: textblock
-#: debhelper.pod:445
-msgid "Changes from v7 are:"
-msgstr "Los cambios desde el nivel v7 son:"
#. type: textblock
-#: debhelper.pod:451
+#: debhelper.pod:501
msgid ""
-"Commands will fail rather than warning when they are passed unknown options."
+"Prior versions of debhelper required specifying the compatibility level in "
+"the file F<debian/compat>, and current debhelper still supports this for "
+"backward compatibility. To use this method, the F<debian/compat> file 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 ""
-"Las órdenes fallarán, en lugar de emitir un aviso, cuando se les introduzcan "
-"opciones desconocidas."
-#. type: textblock
-#: debhelper.pod:455
+# type: verbatim
+#. type: verbatim
+#: debhelper.pod:511
+#, fuzzy, no-wrap
+#| msgid ""
+#| " Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
+#| "\n"
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. "
-"Also, libraries in unusual locations that B<dpkg-gensymbols> would not have "
-"processed before will be passed to it, a behavior change that can cause some "
-"packages to fail to build."
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#~)\n"
+"\n"
msgstr ""
-"B<dh_makeshlibs> ejecutará B<dpkg-gensymbols> sobre todas las bibliotecas "
-"compartidas para las que genera ficheros «shlibs». Por ello, puede utilizar "
-"B<-X> para excluir bibliotecas. Así mismo, se introducirán a B<dpkg-"
-"gensymbols> bibliotecas en ubicaciones inusuales que antes no procesaba, un "
-"cambio de comportamiento que puede impedir la construcción de algunos "
-"paquetes."
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
+"\n"
#. type: textblock
-#: debhelper.pod:463
+#: debhelper.pod:513
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 $@>"
-"\"."
+"Note that you must use either the build-dependency on debhelper-compat or "
+"the F<debian/compat> file. Whenever possible, the debhelper-compat build-"
+"dependency is recommended."
msgstr ""
-"B<dh> requiere que la secuencia a ejecutar se defina como el primer "
-"parámetro, y que las opciones aparezcan a continuación. Por ejemplo, use "
-"B<dh $@ --foo>, no B<dh --foo $@>."
#. type: textblock
-#: debhelper.pod:468
+#: debhelper.pod:517
msgid ""
-"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
-"F<Makefile.PL>."
+"If needed be, the B<DH_COMPAT> environment variable can be used to override "
+"the compat level for a given command. The feature is mostly useful for "
+"either temporarily upgrading a few commands to a new compat level or keeping "
+"a few commands on a lower compat level. The feature is best used sparingly "
+"as it effectively introduces special-cases into the F<debian/rules> file "
+"that may be surprising to maintainers or reviewers (or, in the long term, to "
+"yourself)."
msgstr ""
-"B<dh_auto_>I<*> prefiere utilizar el módulo de Perl B<Module::Build> con "
-"preferencia a un fichero F<Makefile.PL>."
-
-#. type: =item
-#: debhelper.pod:472
-msgid "v9"
-msgstr "v9"
# type: textblock
#. type: textblock
-#: debhelper.pod:474
-msgid "This is the recommended mode of operation."
-msgstr "Este es el modo de operación aconsejado."
-
-#. type: textblock
-#: debhelper.pod:476
-msgid "Changes from v8 are:"
-msgstr "Los cambios desde el nivel v8 son:"
-
-#. type: textblock
-#: debhelper.pod:482
-msgid ""
-"Multiarch support. In particular, B<dh_auto_configure> passes multiarch "
-"directories to autoconf in --libdir and --libexecdir."
-msgstr ""
-"Compatibilidad multiarquitectura, B<dh_auto_configure> introduce directorios "
-"multiarquitectura a autoconf en «--libdir» y «--libexecdir»."
-
-#. type: textblock
-#: debhelper.pod:487
-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 "
-"targets that exist in the rules file. There's no need to define an explicit "
-"binary target with explicit dependencies on the other targets."
-msgstr ""
-"dh es consciente de las dependencias habituales entre objetivos en «debian/"
-"rules». Por ello, «dh binary» ejecuta cualquier objetivo build, build-arch, "
-"build-indep e install que se encuentre en el fichero «rules». No es "
-"necesario definir un objetivo binario explícito con dependencias explícitas "
-"sobre otros objetivos."
-
-#. type: textblock
-#: debhelper.pod:494
+#: debhelper.pod:525
msgid ""
-"B<dh_strip> compresses debugging symbol files to reduce the installed size "
-"of -dbg packages."
-msgstr ""
-"B<dh_strip> comprime ficheros de símbolos de depuración de fallos para "
-"reducir el tamaño de los paquetes -dbg."
-
-#. type: textblock
-#: debhelper.pod:499
-msgid ""
-"B<dh_auto_configure> does not include the source package name in --"
-"libexecdir when using autoconf."
-msgstr ""
-"B<dh_auto_configure> no incluye el nombre de paquete fuente en «--"
-"libexecdir» al utilizar autoconf."
-
-#. type: textblock
-#: debhelper.pod:504
-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:508
-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 ""
-"Todos los programas de debhelper B<dh_auto_>I<*> definen variables de "
-"entorno listados en B<dpkg-buildflags>, a menos que ya estén definidas."
-
-#. type: textblock
-#: debhelper.pod:514
-msgid ""
-"B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and LDFLAGS "
-"to perl F<Makefile.PL> and F<Build.PL>"
-msgstr ""
-"B<dh_auto_configure> introduce B<dpkg-buildflags> CFLAGS, CPPFLAGS, y "
-"LDFLAGS a ficheros de Perl F<Makefile.PL> y F<Build.PL>"
-
-#. type: textblock
-#: debhelper.pod:519
-msgid ""
-"B<dh_strip> puts separated debug symbols in a location based on their build-"
-"id."
-msgstr ""
-"B<dh_strip> ubica símbolos de depuración separados en una ubicación según su "
-"build-id."
-
-#. type: textblock
-#: debhelper.pod:524
-msgid ""
-"Executable debhelper config files are run and their output used as the "
-"configuration."
-msgstr ""
-"Se utilizan como configuración los ficheros de configuración ejecutables de "
-"debhelper y su salida."
-
-#. type: =item
-#: debhelper.pod:529
-msgid "v10"
-msgstr "v10"
-
-#. type: textblock
-#: debhelper.pod:531
-msgid ""
-"This compatibility level is still open for development; use with caution."
+"Unless otherwise indicated, all debhelper documentation assumes that you are "
+"using the most recent compatibility level, and in most cases does not "
+"indicate if the behavior is different in an earlier compatibility level, so "
+"if you are not using the most recent compatibility level, you're advised to "
+"read below for notes about what is different in earlier compatibility levels."
msgstr ""
-"Este nivel de compatibilidad aún está en desarrollo, utilícelo con "
-"precaución."
-
-#. type: textblock
-#: debhelper.pod:533
-msgid "Changes from v9 are:"
-msgstr "Los cambios desde el nivel v9 son:"
+"A menos que se indique lo contrario, toda la documentación de debhelper "
+"supone que utiliza el nivel de compatibilidad más reciente, y en la mayoría "
+"de los casos no indica si el comportamiento de debhelper es distinto bajo "
+"otro nivel de compatibilidad. Por ello, si no está utilizando el nivel de "
+"compatibilidad más reciente, recomendamos que lea a continuación las notas "
+"acerca de las diferencias con anteriores niveles de compatibilidad."
-#. type: textblock
-#: debhelper.pod:537
-msgid ""
-"B<dh_installinit> will no longer install a file named debian/I<package> as "
-"an init script."
-msgstr ""
+# type: =head2
+#. type: =head2
+#: debhelper.pod:532
+#, fuzzy
+#| msgid "Debhelper compatibility levels"
+msgid "Supported compatibility levels"
+msgstr "Niveles de compatibilidad de debhelper"
#. type: textblock
-#: debhelper.pod:544
+#: debhelper.pod:534
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."
+"The list of supported compatibility levels and the related upgrade check "
+"list has moved to L<debhelper-compat-upgrade-checklist(7)>."
msgstr ""
# type: =head1
#. type: =head1
-#: debhelper.pod:553 dh_auto_test:45 dh_installcatalogs:59 dh_installdocs:121
-#: dh_installemacsen:72 dh_installexamples:53 dh_installinit:140
-#: dh_installman:82 dh_installmodules:54 dh_installudev:55 dh_installwm:54
-#: dh_installxfonts:37 dh_movefiles:64 dh_strip:68 dh_usrlocal:49
+#: debhelper.pod:537 dh_auto_test:48 dh_dwz:69 dh_installcatalogs:67
+#: dh_installdocs:202 dh_installemacsen:75 dh_installexamples:96
+#: dh_installinit:204 dh_installinitramfs:60 dh_installman:131
+#: dh_installmodules:57 dh_installudev:50 dh_installwm:66 dh_installxfonts:40
+#: dh_movefiles:67 dh_strip:119 dh_usrlocal:60 dh_systemd_enable:103
+#: dh_systemd_start:68
msgid "NOTES"
msgstr "NOTAS"
# type: =head2
#. type: =head2
-#: debhelper.pod:555
+#: debhelper.pod:539
msgid "Multiple binary package support"
msgstr "Compatibilidad con varios paquetes binarios"
# type: textblock
#. type: textblock
-#: debhelper.pod:557
+#: debhelper.pod:541
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 "
@@ -1409,7 +1400,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:565
+#: debhelper.pod:549
#, fuzzy
#| msgid ""
#| "To facilitate this, as well as give you more control over which packages "
@@ -1431,15 +1422,15 @@ msgstr ""
"los paquetes listados en el fichero de control."
#. type: textblock
-#: debhelper.pod:571
+#: debhelper.pod:555
msgid ""
"First, any package whose B<Architecture> field in B<debian/control> does not "
-"match the build architecture will be excluded (L<Debian Policy, section "
-"5.6.8>)."
+"match the B<DEB_HOST_ARCH> architecture will be excluded (L<Debian Policy, "
+"section 5.6.8>)."
msgstr ""
#. type: textblock
-#: debhelper.pod:575
+#: debhelper.pod:559
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 "
@@ -1447,15 +1438,83 @@ msgid ""
"at L<https://wiki.debian.org/BuildProfileSpec>."
msgstr ""
+#. type: =head3
+#: debhelper.pod:564
+msgid "Interaction between package selections and Build-Profiles"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:566
+msgid ""
+"Build-Profiles affect which packages are included in the package selections "
+"mechanisms in debhelper. Generally, the package selections are described "
+"from the assumption that all packages are enabled. This section describes "
+"how the selections react when a package is disabled due to the active Build-"
+"Profiles (or lack of active Build-Profiles)."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:574
+msgid "-a/--arch, -i/--indep OR no selection options (a raw \"dh_X\" call)"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:576
+msgid ""
+"The package disabled by Build-Profiles is silently excluded from the "
+"selection."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:579
+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 "
+"do the build in the first place."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: debhelper.pod:583
+#, 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:585
+msgid "The option is accepted and effectively does nothing."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: debhelper.pod:587
+#, 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:589
+msgid "The option is accepted, but debhelper will not act on the package."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:593
+msgid ""
+"Note that it does not matter whether a package is enabled or disabled by "
+"default."
+msgstr ""
+
# type: =head2
#. type: =head2
-#: debhelper.pod:580
+#: debhelper.pod:596
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:582
+#: debhelper.pod:598
msgid ""
"Some debhelper commands will automatically generate parts of Debian "
"maintainer scripts. If you want these automatically generated things "
@@ -1473,7 +1532,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:589
+#: debhelper.pod:605
msgid ""
"If a script does not exist at all and debhelper needs to add something to "
"it, then debhelper will create the complete script."
@@ -1483,7 +1542,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:592
+#: debhelper.pod:608
msgid ""
"All debhelper commands that automatically generate code in this way let it "
"be disabled by the -n parameter (see above)."
@@ -1493,7 +1552,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:595
+#: debhelper.pod:611
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 "
@@ -1505,33 +1564,33 @@ msgstr ""
"script de Perl, hágalo de la siguiente forma (tenga en cuenta que en este "
"caso comprobé que $1, $2, etc se definen con la orden «set»):"
-# type: verbatim
#. type: verbatim
-#: debhelper.pod:600
+#: debhelper.pod:616
#, no-wrap
msgid ""
" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
" #DEBHELPER#\n"
" EOF\n"
-" system ($temp) / 256 == 0\n"
-" \tor die \"Problem with debhelper scripts: $!\";\n"
+" if (system($temp)) {\n"
+" my $exit_code = ($? >> 8) & 0xff;\n"
+" my $signal = $? & 0x7f;\n"
+" if ($exit_code) {\n"
+" die(\"The debhelper script failed with error code: ${exit_code}\");\n"
+" } else {\n"
+" die(\"The debhelper script was killed by signal: ${signal}\");\n"
+" }\n"
+" }\n"
"\n"
msgstr ""
-" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
-" #DEBHELPER#\n"
-" EOF\n"
-" system ($temp) / 256 == 0\n"
-" \tor die \"Problema con los scripts de debhelper: $!\";\n"
-"\n"
# type: =head2
#. type: =head2
-#: debhelper.pod:606
+#: debhelper.pod:629
msgid "Automatic generation of miscellaneous dependencies."
msgstr "Generación automática de diversas dependencias."
#. type: textblock
-#: debhelper.pod:608
+#: debhelper.pod:631
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 "
@@ -1551,12 +1610,12 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:616
+#: debhelper.pod:639
msgid ""
"All commands of this type, besides documenting what dependencies may be "
-"needed on their man pages, will automatically generate a substvar called B<"
-"${misc:Depends}>. If you put that token into your F<debian/control> file, it "
-"will be expanded to the dependencies debhelper figures you need."
+"needed on their man pages, will automatically generate a substvar called "
+"B<${misc:Depends}>. If you put that token into your F<debian/control> file, "
+"it will be expanded to the dependencies debhelper figures you need."
msgstr ""
"Todas las órdenes de este tipo, además de documentar qué dependencias pueden "
"ser necesarias en sus páginas de manual, generarán automáticamente una "
@@ -1566,7 +1625,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:621
+#: debhelper.pod:644
msgid ""
"This is entirely independent of the standard B<${shlibs:Depends}> generated "
"by L<dh_makeshlibs(1)>, and the B<${perl:Depends}> generated by "
@@ -1580,13 +1639,13 @@ msgstr ""
# type: =head2
#. type: =head2
-#: debhelper.pod:626
+#: debhelper.pod:649
msgid "Package build directories"
msgstr "Directorios de construcción del paquete"
# type: textblock
#. type: textblock
-#: debhelper.pod:628
+#: debhelper.pod:651
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>."
@@ -1597,13 +1656,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:631
+#: debhelper.pod:654
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>"
-"\", will use B<debian/tmp> as the temporary directory. Note that if you use "
-"B<-P>, the debhelper programs can only be acting on a single package at a "
-"time. So if you have a package that builds many binary packages, you will "
+"supported by the B<-P> flag. For example, \"B<dh_installdocs -Pdebian/"
+"tmp>\", will use B<debian/tmp> as the temporary directory. Note that if you "
+"use B<-P>, the debhelper programs can only be acting on a single package at "
+"a time. So if you have a package that builds many binary packages, you will "
"need to also use the B<-p> flag to specify which binary package the "
"debhelper program will act on."
msgstr ""
@@ -1617,13 +1676,13 @@ msgstr ""
# type: =head2
#. type: =head2
-#: debhelper.pod:639
+#: debhelper.pod:662
msgid "udebs"
msgstr "udebs"
# type: textblock
#. type: textblock
-#: debhelper.pod:641
+#: debhelper.pod:664
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>. "
@@ -1642,77 +1701,112 @@ msgstr ""
# type: =head1
#. type: =head1
-#: debhelper.pod:648
+#: debhelper.pod:671
msgid "ENVIRONMENT"
msgstr "ENTORNO"
+#. type: textblock
+#: debhelper.pod:673
+msgid ""
+"This section describes some of the environment variables that influences the "
+"behaviour of debhelper or which debhelper interacts with."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:676
+msgid ""
+"It is important to note that these must be actual environment variables in "
+"order to affect the behaviour of debhelper (not simply F<Makefile> "
+"variables). To specify them properly in F<debian/rules>, be sure to "
+"\"B<export>\" them. For example, \"B<export DH_VERBOSE>\"."
+msgstr ""
+
# type: =item
#. type: =item
-#: debhelper.pod:652
+#: debhelper.pod:683
msgid "B<DH_VERBOSE>"
msgstr "B<DH_VERBOSE>"
-# type: textblock
#. type: textblock
-#: debhelper.pod:654
+#: debhelper.pod:685
+msgid ""
+"Set to a non-empty value to enable verbose mode. Please see the B<-v> / B<--"
+"verbose> option for details."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: debhelper.pod:688
#, fuzzy
-#| msgid ""
-#| "Set to B<1> to enable verbose mode. Debhelper will output every command "
-#| "it runs that modifies files on the build system."
+#| msgid "B<DH_COMPAT>"
+msgid "B<DH_QUIET>"
+msgstr "B<DH_COMPAT>"
+
+#. type: textblock
+#: debhelper.pod:690
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."
+"Set to a non-empty value to enable quiet mode. Debhelper will not output "
+"commands calling the upstream build system nor will dh print which "
+"subcommands are called and depending on the upstream build system might make "
+"that more quiet, too. This makes it easier to spot important messages but "
+"makes the output quite useless as buildd log."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:696
+msgid "Ignored if DH_VERBOSE is also set or B<-v> / B<--verbose> is passed."
msgstr ""
-"Defina como B<1> para activar el modo explicativo. Debhelper mostrará todas "
-"las órdenes utilizadas que modifiquen ficheros en el sistema en el que se "
-"hace la construcción."
# type: =item
#. type: =item
-#: debhelper.pod:657
+#: debhelper.pod:698
msgid "B<DH_COMPAT>"
msgstr "B<DH_COMPAT>"
# type: textblock
#. type: textblock
-#: debhelper.pod:659
+#: debhelper.pod:700
+#, 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:662
+#: debhelper.pod:704
msgid "B<DH_NO_ACT>"
msgstr "B<DH_NO_ACT>"
# type: textblock
#. type: textblock
-#: debhelper.pod:664
+#: debhelper.pod:706
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:666
+#: debhelper.pod:708
msgid "B<DH_OPTIONS>"
msgstr "B<DH_OPTIONS>"
-# type: textblock
#. type: textblock
-#: debhelper.pod:668
+#: debhelper.pod:710
msgid ""
-"Anything in this variable will be prepended to the command line arguments of "
-"all debhelper commands."
+"All debhelper tools will parse command line arguments listed in this "
+"variable before any command option (as if they had been prepended to the "
+"command line arguments). Unfortunately, some third-party provided tools may "
+"not support this variable and will ignore these command line arguments."
msgstr ""
-"Cualquier dato contenido en esta variable se añade a los argumentos de línea "
-"de órdenes de todas las órdenes de debhelper."
#. type: textblock
-#: debhelper.pod:671
+#: debhelper.pod:715
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."
@@ -1722,13 +1816,13 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:674
+#: debhelper.pod:718
msgid "B<DH_ALWAYS_EXCLUDE>"
msgstr "B<DH_ALWAYS_EXCLUDE>"
# type: textblock
#. type: textblock
-#: debhelper.pod:676
+#: debhelper.pod:720
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 "
@@ -1740,7 +1834,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:680
+#: debhelper.pod:724
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 "
@@ -1758,7 +1852,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:687
+#: debhelper.pod:731
msgid ""
"Multiple things to exclude can be separated with colons, as in "
"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
@@ -1766,42 +1860,426 @@ msgstr ""
"Puede separar varias cosas a excluir mediante dos puntos, por ejemplo: "
"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
+# type: =item
+#. type: =item
+#: debhelper.pod:734
+#, fuzzy
+#| msgid "B<DH_OPTIONS>"
+msgid "B<DH_EXTRA_ADDONS>"
+msgstr "B<DH_OPTIONS>"
+
+#. type: textblock
+#: debhelper.pod:736
+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 "
+"addon to run with the --with flag in the debian/rules file. Any --without "
+"calls specifying an addon in this environment variable will not be run."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:741
+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 "
+"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."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:746
+msgid "B<DH_COLORS>, B<DPKG_COLORS>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:748
+msgid ""
+"These variables can be used to control whether debhelper commands should use "
+"colors in their textual output. Can be set to \"always\", \"auto\" (the "
+"default), or \"never\"."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:752
+msgid ""
+"Note that B<DPKG_COLOR> also affects a number of dpkg related tools and "
+"debhelper uses it on the assumption that you want the same color setting for "
+"dpkg and debhelper. In the off-hand chance you want different color setting "
+"for debhelper, you can use B<DH_COLORS> instead or in addition to "
+"B<DPKG_COLORS>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:758
+msgid "B<NO_COLOR>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:760
+msgid ""
+"If no explicit request for color has been given (e.g. B<DH_COLORS> and "
+"B<DPKG_COLORS> are both unset), the presence of this environment variable "
+"cause the default color setting to be \"never\"."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:764
+msgid ""
+"The variable is defined according to L<https://no-color.org/>. In this "
+"project, the environment variables (such as B<DH_COLORS>) are considered an "
+"explicit request for color."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:768
+msgid ""
+"B<CFLAGS>, B<CPPFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, "
+"B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS>, B<LDFLAGS>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:770
+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: =item
+#: debhelper.pod:777
+msgid "B<HOME>, B<XDG_*>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:779
+msgid ""
+"In compat 13 and later, these environment variables are reset before "
+"invoking the upstream build system via the B<dh_auto_*> helpers. The "
+"variables B<HOME> (all B<dh_auto_*> helpers) and B<XDG_RUNTIME_DIR> "
+"(B<dh_auto_test> only) will be set to a writable directory. All remaining "
+"variables and B<XDG_RUNTIME_DIR> (except for during B<dh_auto_test>) will be "
+"cleared."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:785
+msgid ""
+"The B<HOME> directory will be created as an empty directory but it will be "
+"reused between calls to B<dh_auto_*>. Any content will persist until "
+"explicitly deleted or B<dh_clean>."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: debhelper.pod:789
+#, fuzzy
+#| msgid "B<DH_OPTIONS>"
+msgid "B<DEB_BUILD_OPTIONS>"
+msgstr "B<DH_OPTIONS>"
+
+#. type: textblock
+#: debhelper.pod:791
+msgid ""
+"Please see L</Supported flags in DEB_BUILD_OPTIONS> for this environment "
+"variable."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:794
+msgid ""
+"Please note that this variable should I<not> be altered by package "
+"maintainers inside F<debian/rules> to change the behaviour of debhelper. "
+"Instead, where the package maintainer need these features, they should look "
+"disabling the relevant feature directly (e.g. by overriding the concrete "
+"tools)."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: debhelper.pod:799
+#, fuzzy
+#| msgid "B<DH_OPTIONS>"
+msgid "B<DEB_BUILD_MAINT_OPTIONS>"
+msgstr "B<DH_OPTIONS>"
+
+#. type: textblock
+#: debhelper.pod:801
+msgid ""
+"This is a dpkg specific environment variable (see e.g. L<dpkg-"
+"buildflags(1)>). The debhelper tool suite silently ignores it."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:804
+msgid ""
+"It is documented here because it has a similar name to B<DEB_BUILD_OPTIONS>, "
+"which make some people mistakenly assume that debhelper will also react to "
+"this variable."
+msgstr ""
+
+#. type: =head2
+#: debhelper.pod:810
+msgid "Supported flags in DEB_BUILD_OPTIONS"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:812
+msgid ""
+"The debhelper tool suite reacts to the following flags in "
+"B<DEB_BUILD_OPTIONS>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:816
+msgid "B<dherroron=obsolete-compat-levels>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:818
+msgid "I<This is a debhelper specific value.>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:820
+msgid ""
+"When B<dherroron> is present and set to B<obsolete-compat-levels>, then "
+"debhelper tools will promote deprecation warnings for usage of old soon to "
+"be removed compat levels into errors."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:824
+msgid ""
+"This is useful for automated checking for code relying on deprecated compat "
+"levels that is scheduled for removal."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:827
+msgid "This option is intended for testing purposes; not production builds."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:829
+msgid "B<nostrip>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:831 debhelper.pod:854 debhelper.pod:868
+msgid ""
+"I<This value will change the content of the debs being built. The .deb "
+"packages built when this is set is therefore not bit-for-bit reproducible "
+"with a regular build in the general case.>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:835
+msgid ""
+"This value will cause the official debhelper tools will skip actions and "
+"helpers that either remove, detach or deduplicate debugging symbols in ELF "
+"binaries."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:839
+msgid "This value affects L<dh_dwz(1)> and L<dh_strip(1)>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:841
+msgid "B<nocheck>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:843
+msgid ""
+"This value will cause the official debhelper build systems to skip runs of "
+"upstream test suites."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:846
+msgid ""
+"Package maintainers looking to avoid running the upstream tests should "
+"B<not> rely on this. Instead, they can add an empty override target to skip "
+"B<dh_auto_test>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:850
+msgid "This value affects L<dh_auto_test(1)>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:852
+msgid "B<nodoc>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:858
+msgid ""
+"This value will cause several debhelper tools to skip installation of "
+"documentation such as manpages or upstream provided documentation. "
+"Additionally, the tools will also ignore if declared documentation is "
+"\"missing\" on the assumption that the documentation has not been built."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:863
+msgid ""
+"This value effects tools I<like> L<dh_installdocs(1)>, which I<knows> it is "
+"working with documentation."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:866
+msgid "B<notrimdch>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:872
+msgid ""
+"This value will cause L<dh_installchangelogs(1)> to act as if it had been "
+"passed the B<--no-trim> option, forcing it to forgo removing older entries "
+"from changelogs."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: debhelper.pod:876
+#, fuzzy
+#| msgid "B<-i>, B<--indep>"
+msgid "B<noautodbgsym>, B<noddebs>"
+msgstr "B<-i>, B<--indep>"
+
+#. type: textblock
+#: debhelper.pod:878
+msgid ""
+"I<The official name is noautodbgsym. The noddebs variant is accepted for "
+"historical reasons.>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:881
+msgid ""
+"This value causes debhelper to skip the generation of automatically "
+"generated debug symbol packages."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:884
+msgid "This value affects L<dh_strip(1)>."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: debhelper.pod:886
+#, fuzzy
+#| msgid "B<--parallel>"
+msgid "B<parallel=N>"
+msgstr "B<--parallel>"
+
+#. type: textblock
+#: debhelper.pod:888
+msgid ""
+"This value enables debhelper to use up to B<N> threads or processes (subject "
+"to parameters like B<--no-parallel> and B<--max-parallel=M>). Not all "
+"debhelper tools work with parallel tasks and may silently ignore the request."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:893
+msgid ""
+"This value affects many debhelper tools. Most notably B<dh_auto_*>, which "
+"will attempt to run the underlying upstream build system with that number of "
+"threads."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:897
+msgid "B<terse>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:899
+msgid ""
+"This value will cause the official debhelper build systems to configure "
+"upstream builds to be terse (i.e. reduce verbosity in their output). This "
+"is subject to the upstream and the debhelper build system supporting such "
+"features."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:904
+msgid ""
+"This value affects most B<dh_auto_*> tools directly. For commands provided "
+"by the debhelper package, it also causes the tools to act like the "
+"B<DH_QUIET> environment variable was non-empty."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:910
+msgid "Unknown flags are silently ignored."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:912
+msgid ""
+"Note third-party debhelper-like tools or third-party provided build systems "
+"may or may not react to the above flags. This tends to depend on "
+"implementation details of the tool."
+msgstr ""
+
# type: =head1
#. type: =head1
-#: debhelper.pod:692 dh:972 dh_auto_build:47 dh_auto_clean:50
-#: dh_auto_configure:52 dh_auto_install:92 dh_auto_test:63 dh_bugfiles:124
-#: dh_builddeb:124 dh_clean:147 dh_compress:210 dh_desktop:31 dh_fixperms:131
-#: dh_gconf:101 dh_gencontrol:78 dh_icons:71 dh_install:260
-#: dh_installcatalogs:122 dh_installchangelogs:241 dh_installcron:79
-#: dh_installdeb:142 dh_installdebconf:128 dh_installdirs:88
-#: dh_installdocs:337 dh_installemacsen:141 dh_installexamples:108
-#: dh_installifupdown:71 dh_installinfo:77 dh_installinit:324
-#: dh_installlogcheck:80 dh_installlogrotate:52 dh_installman:263
-#: dh_installmanpages:197 dh_installmenu:89 dh_installmime:63
-#: dh_installmodules:115 dh_installpam:61 dh_installppp:67 dh_installudev:117
-#: dh_installwm:110 dh_installxfonts:89 dh_link:228 dh_lintian:59
-#: dh_listpackages:30 dh_makeshlibs:264 dh_md5sums:90 dh_movefiles:170
-#: dh_perl:152 dh_prep:60 dh_scrollkeeper:28 dh_shlibdeps:152 dh_strip:242
-#: dh_suidregister:117 dh_testdir:53 dh_testroot:27 dh_undocumented:28
-#: dh_usrlocal:116
+#: debhelper.pod:916 debhelper-compat-upgrade-checklist.pod:758
+#: debhelper-obsolete-compat.pod:178 dh:872 dh_auto_build:53 dh_auto_clean:55
+#: dh_auto_configure:58 dh_auto_install:103 dh_auto_test:64 dh_bugfiles:133
+#: dh_builddeb:176 dh_clean:189 dh_compress:243 dh_dwz:163 dh_fixperms:164
+#: dh_gencontrol:208 dh_icons:75 dh_install:377 dh_installcatalogs:128
+#: dh_installchangelogs:365 dh_installcron:80 dh_installdeb:419
+#: dh_installdebconf:233 dh_installdirs:131 dh_installdocs:437
+#: dh_installemacsen:138 dh_installexamples:182 dh_installifupdown:72
+#: dh_installinfo:123 dh_installinit:413 dh_installinitramfs:91
+#: dh_installlogcheck:81 dh_installlogrotate:53 dh_installman:420
+#: dh_installmanpages:198 dh_installmenu:88 dh_installmime:63
+#: dh_installmodules:109 dh_installpam:71 dh_installppp:68 dh_installudev:102
+#: dh_installwm:130 dh_installxfonts:90 dh_link:166 dh_lintian:60
+#: dh_listpackages:34 dh_makeshlibs:456 dh_md5sums:118 dh_movefiles:161
+#: dh_perl:188 dh_prep:70 dh_shlibdeps:204 dh_strip:435 dh_testdir:62
+#: dh_testroot:93 dh_usrlocal:136 dh_systemd_enable:280 dh_systemd_start:280
msgid "SEE ALSO"
msgstr "VÉASE TAMBIÉN"
+#. type: =item
+#: debhelper.pod:920
+msgid "L<debhelper-compat-upgrade-checklist(7)>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:922
+msgid ""
+"List of supported compat levels and an upgrade checklist for each of them."
+msgstr ""
+
# type: =item
#. type: =item
-#: debhelper.pod:696
+#: debhelper.pod:924
msgid "F</usr/share/doc/debhelper/examples/>"
msgstr "F</usr/share/doc/debhelper/examples/>"
# type: textblock
#. type: textblock
-#: debhelper.pod:698
+#: debhelper.pod:926
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:700
+#: debhelper.pod:928
#, fuzzy
#| msgid "L<http://kitenet.net/~joey/code/debhelper/>"
msgid "L<http://joeyh.name/code/debhelper/>"
@@ -1809,55 +2287,1675 @@ msgstr "L<http://kitenet.net/~joey/code/debhelper/>"
# type: textblock
#. type: textblock
-#: debhelper.pod:702
+#: debhelper.pod:930
msgid "Debhelper web site."
msgstr "Sitio web de Debhelper."
# type: =head1
#. type: =head1
-#: debhelper.pod:706 dh:978 dh_auto_build:53 dh_auto_clean:56
-#: dh_auto_configure:58 dh_auto_install:98 dh_auto_test:69 dh_bugfiles:132
-#: dh_builddeb:130 dh_clean:153 dh_compress:216 dh_desktop:37 dh_fixperms:137
-#: dh_gconf:107 dh_gencontrol:84 dh_icons:77 dh_install:266
-#: dh_installcatalogs:128 dh_installchangelogs:247 dh_installcron:85
-#: dh_installdeb:148 dh_installdebconf:134 dh_installdirs:94
-#: dh_installdocs:343 dh_installemacsen:148 dh_installexamples:114
-#: dh_installifupdown:77 dh_installinfo:83 dh_installlogcheck:86
-#: dh_installlogrotate:58 dh_installman:269 dh_installmanpages:203
-#: dh_installmenu:97 dh_installmime:69 dh_installmodules:121 dh_installpam:67
-#: dh_installppp:73 dh_installudev:123 dh_installwm:116 dh_installxfonts:95
-#: dh_link:234 dh_lintian:67 dh_listpackages:36 dh_makeshlibs:270
-#: dh_md5sums:96 dh_movefiles:176 dh_perl:158 dh_prep:66 dh_scrollkeeper:34
-#: dh_shlibdeps:158 dh_strip:248 dh_suidregister:123 dh_testdir:59
-#: dh_testroot:33 dh_undocumented:34 dh_usrlocal:122
+#: debhelper.pod:934 dh:878 dh_auto_build:59 dh_auto_clean:61
+#: dh_auto_configure:64 dh_auto_install:109 dh_auto_test:70 dh_bugfiles:141
+#: dh_builddeb:182 dh_clean:195 dh_compress:249 dh_dwz:169 dh_fixperms:170
+#: dh_gencontrol:214 dh_icons:81 dh_install:383 dh_installcatalogs:134
+#: dh_installchangelogs:371 dh_installcron:86 dh_installdeb:425
+#: dh_installdebconf:239 dh_installdirs:137 dh_installdocs:443
+#: dh_installemacsen:145 dh_installexamples:188 dh_installifupdown:78
+#: dh_installinfo:129 dh_installinitramfs:99 dh_installlogcheck:87
+#: dh_installlogrotate:59 dh_installman:426 dh_installmanpages:204
+#: dh_installmenu:96 dh_installmime:69 dh_installmodules:115 dh_installpam:77
+#: dh_installppp:74 dh_installudev:108 dh_installwm:136 dh_installxfonts:96
+#: dh_link:172 dh_lintian:68 dh_listpackages:40 dh_makeshlibs:462
+#: dh_md5sums:124 dh_movefiles:167 dh_perl:194 dh_prep:76 dh_shlibdeps:210
+#: dh_strip:441 dh_testdir:68 dh_testroot:99 dh_usrlocal:142
msgid "AUTHOR"
msgstr "AUTOR"
# type: textblock
#. type: textblock
-#: debhelper.pod:708 dh:980 dh_auto_build:55 dh_auto_clean:58
-#: dh_auto_configure:60 dh_auto_install:100 dh_auto_test:71 dh_builddeb:132
-#: dh_clean:155 dh_compress:218 dh_fixperms:139 dh_gencontrol:86
-#: dh_install:268 dh_installchangelogs:249 dh_installcron:87 dh_installdeb:150
-#: dh_installdebconf:136 dh_installdirs:96 dh_installdocs:345
-#: dh_installemacsen:150 dh_installexamples:116 dh_installifupdown:79
-#: dh_installinfo:85 dh_installinit:332 dh_installlogrotate:60
-#: dh_installman:271 dh_installmanpages:205 dh_installmenu:99
-#: dh_installmime:71 dh_installmodules:123 dh_installpam:69 dh_installppp:75
-#: dh_installudev:125 dh_installwm:118 dh_installxfonts:97 dh_link:236
-#: dh_listpackages:38 dh_makeshlibs:272 dh_md5sums:98 dh_movefiles:178
-#: dh_prep:68 dh_shlibdeps:160 dh_strip:250 dh_suidregister:125 dh_testdir:61
-#: dh_testroot:35 dh_undocumented:36
+#: debhelper.pod:936 dh:880 dh_auto_build:61 dh_auto_clean:63
+#: dh_auto_configure:66 dh_auto_install:111 dh_auto_test:72 dh_builddeb:184
+#: dh_clean:197 dh_compress:251 dh_fixperms:172 dh_gencontrol:216
+#: dh_install:385 dh_installchangelogs:373 dh_installcron:88 dh_installdeb:427
+#: dh_installdebconf:241 dh_installdirs:139 dh_installdocs:445
+#: dh_installemacsen:147 dh_installexamples:190 dh_installifupdown:80
+#: dh_installinfo:131 dh_installinit:421 dh_installlogrotate:61
+#: dh_installman:428 dh_installmanpages:206 dh_installmenu:98 dh_installmime:71
+#: dh_installmodules:117 dh_installpam:79 dh_installppp:76 dh_installudev:110
+#: dh_installwm:138 dh_installxfonts:98 dh_link:174 dh_listpackages:42
+#: dh_makeshlibs:464 dh_md5sums:126 dh_movefiles:169 dh_prep:78
+#: dh_shlibdeps:212 dh_strip:443 dh_testdir:70 dh_testroot:101
msgid "Joey Hess <joeyh@debian.org>"
msgstr "Joey Hess <joeyh@debian.org>"
#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:5
+msgid ""
+"debhelper-compat-upgrade-checklist - Upgrade checklist for supported "
+"debhelper compat levels"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:9
+msgid ""
+"This document is an upgrade checklist of all the supported debhelper compat "
+"levels. It also lists all the support debhelper compat levels."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:12
+msgid ""
+"Information about how to declare the compat level is in L<debhelper(7)/"
+"COMPATIBILITY LEVELS>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:14
+msgid ""
+"If you are upgrading from a (now) obsolete compat level, then please refer "
+"to L<debhelper-obsolete-compat(7)>."
+msgstr ""
+
+# type: textblock
+#. type: =head2
+#: debhelper-compat-upgrade-checklist.pod:19
+#, fuzzy
+#| msgid "These are the available compatibility levels:"
+msgid "Upgrade checklist for supported compatibility levels"
+msgstr "Los niveles de compatibilidad disponibles son:"
+
+# type: textblock
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:21
+msgid "These are the available compatibility levels:"
+msgstr "Los niveles de compatibilidad disponibles son:"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:25
+#, fuzzy
+#| msgid "v5"
+msgid "v15"
+msgstr "v5"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:27
+#: debhelper-compat-upgrade-checklist.pod:51 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-compat-upgrade-checklist.pod:29
+#, fuzzy
+#| msgid "Changes from v4 are:"
+msgid "Changes from v14 are:"
+msgstr "Los cambios desde el nivel v4 son:"
+
+# type: =item
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:33
+#: debhelper-compat-upgrade-checklist.pod:57
+#: debhelper-compat-upgrade-checklist.pod:63
+#: debhelper-compat-upgrade-checklist.pod:68
+#: debhelper-compat-upgrade-checklist.pod:74
+#: debhelper-compat-upgrade-checklist.pod:90
+#: debhelper-compat-upgrade-checklist.pod:95
+#: debhelper-compat-upgrade-checklist.pod:103
+#: debhelper-compat-upgrade-checklist.pod:110
+#: debhelper-compat-upgrade-checklist.pod:125
+#: debhelper-compat-upgrade-checklist.pod:133
+#: debhelper-compat-upgrade-checklist.pod:141
+#: debhelper-compat-upgrade-checklist.pod:150
+#: debhelper-compat-upgrade-checklist.pod:156
+#: debhelper-compat-upgrade-checklist.pod:166
+#: debhelper-compat-upgrade-checklist.pod:174
+#: debhelper-compat-upgrade-checklist.pod:180
+#: debhelper-compat-upgrade-checklist.pod:194
+#: debhelper-compat-upgrade-checklist.pod:205
+#: debhelper-compat-upgrade-checklist.pod:219
+#: debhelper-compat-upgrade-checklist.pod:230
+#: debhelper-compat-upgrade-checklist.pod:246
+#: debhelper-compat-upgrade-checklist.pod:256
+#: debhelper-compat-upgrade-checklist.pod:260
+#: debhelper-compat-upgrade-checklist.pod:265
+#: debhelper-compat-upgrade-checklist.pod:270
+#: debhelper-compat-upgrade-checklist.pod:277
+#: debhelper-compat-upgrade-checklist.pod:283
+#: debhelper-compat-upgrade-checklist.pod:291
+#: debhelper-compat-upgrade-checklist.pod:297
+#: debhelper-compat-upgrade-checklist.pod:301
+#: debhelper-compat-upgrade-checklist.pod:306
+#: debhelper-compat-upgrade-checklist.pod:311
+#: debhelper-compat-upgrade-checklist.pod:320
+#: debhelper-compat-upgrade-checklist.pod:336
+#: debhelper-compat-upgrade-checklist.pod:345
+#: debhelper-compat-upgrade-checklist.pod:361
+#: debhelper-compat-upgrade-checklist.pod:369
+#: debhelper-compat-upgrade-checklist.pod:374
+#: debhelper-compat-upgrade-checklist.pod:396
+#: debhelper-compat-upgrade-checklist.pod:402
+#: debhelper-compat-upgrade-checklist.pod:414
+#: debhelper-compat-upgrade-checklist.pod:422
+#: debhelper-compat-upgrade-checklist.pod:428
+#: debhelper-compat-upgrade-checklist.pod:433
+#: debhelper-compat-upgrade-checklist.pod:438
+#: debhelper-compat-upgrade-checklist.pod:443
+#: debhelper-compat-upgrade-checklist.pod:451
+#: debhelper-compat-upgrade-checklist.pod:461
+#: debhelper-compat-upgrade-checklist.pod:471
+#: debhelper-compat-upgrade-checklist.pod:478
+#: debhelper-compat-upgrade-checklist.pod:490
+#: debhelper-compat-upgrade-checklist.pod:495
+#: debhelper-compat-upgrade-checklist.pod:523
+#: debhelper-compat-upgrade-checklist.pod:540
+#: debhelper-compat-upgrade-checklist.pod:545
+#: debhelper-compat-upgrade-checklist.pod:551
+#: debhelper-compat-upgrade-checklist.pod:557
+#: debhelper-compat-upgrade-checklist.pod:562
+#: debhelper-compat-upgrade-checklist.pod:568
+#: debhelper-compat-upgrade-checklist.pod:577
+#: debhelper-compat-upgrade-checklist.pod:587
+#: debhelper-compat-upgrade-checklist.pod:593
+#: debhelper-compat-upgrade-checklist.pod:616
+#: debhelper-compat-upgrade-checklist.pod:623
+#: debhelper-compat-upgrade-checklist.pod:629
+#: debhelper-compat-upgrade-checklist.pod:635
+#: debhelper-compat-upgrade-checklist.pod:641
+#: debhelper-compat-upgrade-checklist.pod:661
+#: debhelper-compat-upgrade-checklist.pod:666
+#: debhelper-compat-upgrade-checklist.pod:673
+#: debhelper-compat-upgrade-checklist.pod:678
+#: debhelper-compat-upgrade-checklist.pod:683
+#: debhelper-compat-upgrade-checklist.pod:691
+#: debhelper-compat-upgrade-checklist.pod:697
+#: debhelper-compat-upgrade-checklist.pod:702
+#: debhelper-compat-upgrade-checklist.pod:707
+#: debhelper-compat-upgrade-checklist.pod:722
+#: debhelper-compat-upgrade-checklist.pod:726
+#: debhelper-compat-upgrade-checklist.pod:734
+#: debhelper-compat-upgrade-checklist.pod:739 debhelper-obsolete-compat.pod:29
+#: debhelper-obsolete-compat.pod:36 debhelper-obsolete-compat.pod:40
+#: debhelper-obsolete-compat.pod:44 debhelper-obsolete-compat.pod:57
+#: debhelper-obsolete-compat.pod:62 debhelper-obsolete-compat.pod:68
+#: debhelper-obsolete-compat.pod:74 debhelper-obsolete-compat.pod:89
+#: debhelper-obsolete-compat.pod:93 debhelper-obsolete-compat.pod:98
+#: debhelper-obsolete-compat.pod:102 debhelper-obsolete-compat.pod:114
+#: debhelper-obsolete-compat.pod:119 debhelper-obsolete-compat.pod:124
+#: debhelper-obsolete-compat.pod:129 debhelper-obsolete-compat.pod:143
+#: debhelper-obsolete-compat.pod:148 debhelper-obsolete-compat.pod:152
+#: dh_testroot:36 dh_testroot:41 dh_testroot:46
+msgid "-"
+msgstr "-"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:35
+msgid ""
+"The B<dh_auto_install> tool no longer defaults to B<< --destdir=debian/"
+"I<package> >> for source packages only producing a single binary. If this "
+"behaviour is wanted, the package should explicitly activate the B<single-"
+"binary> dh addon (e.g., by adding B<dh-sequence-single-binary> to B<Build-"
+"Depends>) or pass B<--destdir> to B<dh_auto_install>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:41
+#: debhelper-compat-upgrade-checklist.pod:84
+msgid ""
+"The rationale for this change is to avoid \"surprises\" when adding a second "
+"binary package later. Previously, debhelper would silently change behaviour "
+"often resulting in empty binary packages being uploaded to the archive by "
+"mistake. With the new behaviour, the B<single-binary> addon will detect the "
+"mismatch and warn the maintainer of what is about to happen."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:49
+#, fuzzy
+#| msgid "v10"
+msgid "v14"
+msgstr "v10"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:53
+#, fuzzy
+#| msgid "Changes from v5 are:"
+msgid "Changes from v13 are:"
+msgstr "Los cambios desde el nivel v5 son:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:59
+msgid ""
+"The B<cmake> buildsystem now passes B<-DCMAKE_BUILD_RPATH_USE_ORIGIN=ON> to "
+"L<cmake(1)> to avoid some reproducibility issues."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:65
+msgid ""
+"The tool B<dh_installsysusers> is now included in the default sequence. This "
+"helper tool will process systemd sysusers files."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:70
+msgid ""
+"Use of the B<dh_gconf> command in override and hook targets now causes an "
+"error. The B<dh_gconf> command has been a no-op for years and was removed "
+"in debhelper 13.4."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:76
+msgid ""
+"The B<dh> sequencer will warn if the B<single-binary> addon is implicitly "
+"activated to warn maintainers of the pending compat 15 change in "
+"B<dh_auto_install>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:79
+msgid ""
+"Maintainers are urged to either explicitly activate the B<single-binary> "
+"addon to preserve the existing behaviour (e.g., by adding B<dh-sequence-"
+"single-binary> to Build-Depends), or explicitly passing B<--destdir> to "
+"B<dh_auto_install> if used and then passing B<--without single-binary> to "
+"B<dh> (the latter to silence the warning)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:92
+msgid ""
+"The B<dh_installalternatives> tool will now be run after B<dh_link> rather "
+"than after B<dh_installinitramfs> in the default B<dh> sequence."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:97
+msgid ""
+"The B<dh_installpam> tool will now install PAM configuration files under "
+"F<< /usr/lib/pam.d/I<package> >> instead of F<< /etc/pam.d/I<package> >>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:100
+msgid ""
+"Please consider using the \"rm_conffile\" feature from L<dh_installdeb(1)> "
+"to ensure the proper removal of previous PAM files."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:105
+msgid ""
+"The B<meson+ninja> and B<cmake> build systems now use B<meson install> and "
+"B<cmake --install>, respectively, instead of B<ninja install> and B<make "
+"install> in the L<dh_auto_install(1)> call. Any override of "
+"B<dh_auto_install> that passes extra parameters to the upstream build system "
+"should be reviewed."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:112
+msgid ""
+"The B<cmake> build system passes B<< -DBUILD_TESTING:BOOL=OFF >> to B<cmake> "
+"if B<DEB_BUILD_OPTIONS> contains B<nocheck> thus disabling CTest."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:117
+#, fuzzy
+#| msgid "v10"
+msgid "v13"
+msgstr "v10"
+
+# type: textblock
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:119
+msgid "This is the recommended mode of operation."
+msgstr "Este es el modo de operación aconsejado."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:121
+#, fuzzy
+#| msgid "Changes from v3 are:"
+msgid "Changes from v12 are:"
+msgstr "Los cambios desde el nivel v3 son:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:127
+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-compat-upgrade-checklist.pod:135
+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-compat-upgrade-checklist.pod:143
+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). If you need them for B<*-indep> targets, you can add an explicit "
+"Build-Depends on B<dh-sequence-elf-tools>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:152
+msgid ""
+"The third-party B<gradle> build system (from B<gradle-debian-helper> "
+"package) now runs the upstream-provided test suite automatically. To "
+"suppress such behavior, override B<dh_auto_test>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:158
+msgid ""
+"The B<dh_installman> tool now aborts if it sees conflicting definitions of a "
+"manpage. This typically happens if the upstream build system is installing "
+"a compressed version and the package lists an uncompressed version of the "
+"manpage in F<< debian/I<package>.manpages >>. Often the easiest fix is to "
+"remove the manpage from F<< debian/I<package>.manpages >> (assuming both "
+"versions are identical)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:168
+msgid ""
+"The B<dh_auto_*> helpers now reset the environment variables B<HOME> and "
+"common B<XDG_*> variable. Please see description of the environment "
+"variables in L</ENVIRONMENT> for how this is handled."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:172
+msgid "I<This feature changed between debhelper 13 and debhelper 13.2.>"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:176
+msgid ""
+"The B<dh> command will now error if an override or hook target for an "
+"obsolete command are present in F<debian/rules> (e.g. "
+"B<override_dh_systemd_enable:>)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:182
+msgid ""
+"The B<dh_missing> command will now default to B<--fail-missing>. This can "
+"be reverted to a non-fatal warning by explicitly passing B<--list-missing> "
+"like it was in compat 12."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:186
+msgid ""
+"If you do not want the warning either, please omit the call to "
+"B<dh_missing>. If you use the B<dh> command sequencer, then you can do this "
+"by inserting an empty override target in the F<debian/rules> file of the "
+"relevant package. As an example:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:191
+#, no-wrap
+msgid ""
+" # Disable dh_missing\n"
+" override_dh_missing:\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:196
+msgid ""
+"The B<dh> command sequencer now runs B<dh_installtmpfiles> in the default "
+"sequence. The B<dh_installtmpfiles> takes over handling of tmpfiles.d "
+"configuration files. Related functionality in B<dh_installsystemd> is now "
+"disabled."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:201
+msgid ""
+"Note that B<dh_installtmpfiles> responds to F<< debian/I<package>.tmpfiles "
+">> where B<dh_installsystemd> used a name without the trailing \"s\"."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:207
+msgid ""
+"Many B<dh_*> tools now support limited variable expansion via the B<${foo}> "
+"syntax. In many cases, this can be used to reference paths that contain "
+"either spaces or L<dpkg-architecture(1)> values. While this can reduce the "
+"need for L<dh-exec(1)> in some cases, it is B<not> a replacement L<dh-"
+"exec(1)> in general. If you need filtering, renaming, etc., the package "
+"will still need L<dh-exec(1)>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:214
+msgid ""
+"Please see L</Substitutions in debhelper config files> for syntax and "
+"available substitution variables. To B<dh_*> tool writers, substitution "
+"expansion occurs as a part of the B<filearray> and B<filedoublearray> "
+"functions."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:221
+msgid ""
+"The B<dh> command sequencer will now skip all hook and override targets for "
+"B<dh_auto_test>, B<dh_dwz> and B<dh_strip> when B<DEB_BUILD_OPTIONS> lists "
+"the relevant B<nocheck> / B<nostrip> options."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:225
+msgid ""
+"Any package relying on these targets to always be run should instead move "
+"relevant logic out of those targets. E.g. non-test related packaging code "
+"from B<override_dh_auto_test> would have to be moved to "
+"B<execute_after_dh_auto_build> or B<execute_before_dh_auto_install>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:232
+msgid ""
+"The B<cmake> buildsystem now passes B<-"
+"DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON> to L<cmake(1)> to speed up automatic "
+"installation process. If for some reason you need previous behavior, "
+"override the flag:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:236
+#, no-wrap
+msgid ""
+" dh_auto_configure -- -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=OFF ...\n"
+"\n"
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:240
+#, fuzzy
+#| msgid "v10"
+msgid "v12"
+msgstr "v10"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:242
+#, fuzzy
+#| msgid "Changes from v3 are:"
+msgid "Changes from v11 are:"
+msgstr "Los cambios desde el nivel v3 son:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:248
+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>) "
+"is now the default."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:252
+msgid ""
+"If an unversioned dependency in the shlibs file is wanted, this can be "
+"obtained by passing B<-VNone> instead. However, please see "
+"L<dh_makeshlibs(1)> for the caveat of unversioned dependencies."
+msgstr ""
+
+# type: =item
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:258
+#, fuzzy
+#| msgid "B<-s>, B<--same-arch>"
+msgid ""
+"The B<-s> (B<--same-arch>) option is removed. Please use B<-a> (B<--arch>) "
+"instead."
+msgstr "B<-s>, B<--same-arch>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:262
+msgid ""
+"Invoking B<dh_clean -k> now causes an error instead of a deprecation warning."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:267
+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-compat-upgrade-checklist.pod:272
+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 "
+"circumstance. This bug is now removed and will cause helpers that rely on "
+"the bug to fail with a \"command not found\"-error."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:279
+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 "
+"also see the files installed by other helpers."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:285
+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 "
+"upstart configuration file. The error is there to remind the package "
+"maintainer to ensure the proper removal of the conffiles shipped in previous "
+"versions of the package (if any)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:293
+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 "
+"be invalid."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:299
+msgid "The B<dh_missing> tool will now default to B<--list-missing>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:303
+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-compat-upgrade-checklist.pod:308
+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-compat-upgrade-checklist.pod:313
+msgid ""
+"The standard sequence in B<dh> now includes B<dh_dwz> and "
+"B<dh_installinitramfs> by default. This makes the B<dwz> and "
+"B<installinitramfs> sequences obsolete and they will now fail with an "
+"error. If you want to skip these commands, then please insert an empty "
+"override target for them in F<debian/rules> (e.g. I<override_dh_dwz:>)"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:322
+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 "
+"should be B</usr/libexec> (per FHS 3.0, adopted in Debian Policy 4.1.5)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:327
+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. "
+"via the following example:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:331
+#, fuzzy, no-wrap
+#| msgid ""
+#| "\toverride_dh_auto_configure:\n"
+#| "\t\tdh_auto_configure -- --with-foo --disable-bar\n"
+#| "\n"
+msgid ""
+" override_dh_auto_configure:\n"
+" \tdh_auto_configure -- --libexecdir=/usr/libexec\n"
+"\n"
+msgstr ""
+"\toverride_dh_auto_configure:\n"
+"\t\tdh_auto_configure -- --with-foo --disable-bar\n"
+"\n"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:334
+msgid "Note the B<--> before the B<--libexecdir> parameter."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:338
+msgid "B<Retroactively removed in debhelper/13.5>:"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:340
+msgid ""
+"The B<dh_installdeb> tool would no longer installs the maintainer provided "
+"F<conffiles> file as it was deemed unnecessary. However, the B<remove-on-"
+"upgrade> from dpkg/1.20 made the file relevant again and B<dh_installdeb> "
+"now installs it again in compat levels 12+."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:347
+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-compat-upgrade-checklist.pod:352
+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-compat-upgrade-checklist.pod:356
+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-compat-upgrade-checklist.pod:363
+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-compat-upgrade-checklist.pod:371
+msgid ""
+"B<dh_installsystemduser> is now included in the B<dh> standard sequence by "
+"default."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:376
+msgid ""
+"The B<python-distutils> buildsystem is now removed. Please use the third-"
+"party build system B<pybuild> instead."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:381
+#, fuzzy
+#| msgid "v1"
+msgid "v11"
+msgstr "v1"
+
+# type: textblock
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:383
+#, fuzzy
+#| msgid "This mode is deprecated."
+msgid "This mode is discouraged."
+msgstr "Este modo está obsoleto."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:385
+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-compat-upgrade-checklist.pod:392
+#, fuzzy
+#| msgid "Changes from v3 are:"
+msgid "Changes from v10 are:"
+msgstr "Los cambios desde el nivel v3 son:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:398
+msgid ""
+"B<dh_installinit> no longer installs F<service> or F<tmpfile> files, nor "
+"generates maintainer scripts for those files. Please use the new "
+"B<dh_installsystemd> helper."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:404
+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> "
+"sequence for B<dh> has also been removed. If you need to disable the "
+"B<dh_installsystemd> helper tool, please use an empty override target."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:410
+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-compat-upgrade-checklist.pod:416
+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-compat-upgrade-checklist.pod:420
+msgid "The vast majority of all packages will be unaffected by this change."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:424
+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."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:430
+msgid ""
+"The B<autoconf> buildsystem now passes B<--runstatedir=/run> to F<./"
+"configure>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:435
+msgid ""
+"The B<cmake> buildsystem now passes B<-DCMAKE_INSTALL_RUNSTATEDIR=/run> to "
+"L<cmake(1)>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:440
+msgid ""
+"B<dh_installman> will now prefer detecting the language from the path name "
+"rather than the extension."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:445
+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. "
+"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-compat-upgrade-checklist.pod:453
+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 "
+"match anything or reference a path that does not exist."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:457
+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 "
+"specify documentation."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:463
+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 "
+"as B<dh_install>. Furthermore, they now also fall back to F<debian/tmp> like "
+"B<dh_install>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:468
+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-compat-upgrade-checklist.pod:473
+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 "
+"the B<PERL5LIB> environment variable. E.g. by adding B<export PERL5LIB=.> "
+"in their debian/rules file (or similar)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:480
+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 "
+"avoid a lot of packages failing to build at the same time."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:485
+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 "
+"drops support for it, then this variable will be removed retroactively from "
+"existing compat levels as well."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:492
+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-compat-upgrade-checklist.pod:497
+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 "
+"recommendation from Debian policy §12.3 (since version 3.9.7)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:501
+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 "
+"change is not relevant for that source package and you can skip to the next "
+"change."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:506
+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<-"
+"doc> package. If they find such a I<doc-main-package>, they will now "
+"install the documentation into the path F<< /usr/share/doc/I<doc-main-"
+"package> >> in the given doc package. I.e. the path can change but the "
+"documentation is still shipped in the I<-doc> package."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:514
+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 "
+"to diverge from Debian policy recommendation."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:518
+msgid ""
+"Some documentation will not be affected by this change. These exceptions "
+"include the copyright file, changelog files, README.Debian, etc. These "
+"files will still be installed in the path F<< /usr/share/doc/I<package> >>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:525
+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 "
+"for an ELF header to determine if a given file is an shared object or an ELF "
+"executable."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:530
+msgid "This change may cause the tools to process more files than previously."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:534
+msgid "v10"
+msgstr "v10"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:536
+msgid "Changes from v9 are:"
+msgstr "Los cambios desde el nivel v9 son:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:542
+msgid ""
+"B<dh_installinit> will no longer installs a file named debian/I<package> as "
+"an init script."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:547
+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 "
+"binNMUs."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:553
+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-compat-upgrade-checklist.pod:559
+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-compat-upgrade-checklist.pod:564
+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 ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:570
+msgid ""
+"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."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:574
+msgid ""
+"B<Retroactively applied to earlier compat levels>: B<dh> no longer accepts "
+"any of these since debhelper/12.4."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:579
+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 "
+"the \"build\" sequence and skip it if it did."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:583
+msgid "The main effects of this are:"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:589
+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 "
+"full \"clean and rebuild\" cycle)"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:595
+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 "
+"happens in the same override target everything will work as before."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:600
+msgid "Example of where it can go wrong:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:602
+#, no-wrap
+msgid ""
+" override_dh_foo:\n"
+" dh_foo -pmy-pkg\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:605
+#, no-wrap
+msgid ""
+" override_dh_bar:\n"
+" dh_bar\n"
+" dh_foo --remaining\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:609
+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 "
+"issue is not limited to B<--remaining>, but also includes B<-a>, B<-i>, etc."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:618
+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 "
+"work properly and packages have begun to rely on the incomplete shell "
+"escaping (e.g. quoting file names)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:625
+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-"
+"upgrade>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:631
+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-compat-upgrade-checklist.pod:637
+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-compat-upgrade-checklist.pod:643
+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-compat-upgrade-checklist.pod:648
+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-compat-upgrade-checklist.pod:655
+msgid "v9"
+msgstr "v9"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:657
+msgid "Changes from v8 are:"
+msgstr "Los cambios desde el nivel v8 son:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:663
+msgid ""
+"Multiarch support. In particular, B<dh_auto_configure> passes multiarch "
+"directories to autoconf in --libdir and --libexecdir."
+msgstr ""
+"Compatibilidad multiarquitectura, B<dh_auto_configure> introduce directorios "
+"multiarquitectura a autoconf en «--libdir» y «--libexecdir»."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:668
+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 "
+"targets that exist in the rules file. There's no need to define an explicit "
+"binary target with explicit dependencies on the other targets."
+msgstr ""
+"dh es consciente de las dependencias habituales entre objetivos en «debian/"
+"rules». Por ello, «dh binary» ejecuta cualquier objetivo build, build-arch, "
+"build-indep e install que se encuentre en el fichero «rules». No es "
+"necesario definir un objetivo binario explícito con dependencias explícitas "
+"sobre otros objetivos."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:675
+msgid ""
+"B<dh_strip> compresses debugging symbol files to reduce the installed size "
+"of -dbg packages."
+msgstr ""
+"B<dh_strip> comprime ficheros de símbolos de depuración de fallos para "
+"reducir el tamaño de los paquetes -dbg."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:680
+msgid ""
+"B<dh_auto_configure> does not include the source package name in --"
+"libexecdir when using autoconf."
+msgstr ""
+"B<dh_auto_configure> no incluye el nombre de paquete fuente en «--"
+"libexecdir» al utilizar autoconf."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:685
+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-compat-upgrade-checklist.pod:687
+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 "
+"regardless of compat level)"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:693
+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 ""
+"Todos los programas de debhelper B<dh_auto_>I<*> definen variables de "
+"entorno listados en B<dpkg-buildflags>, a menos que ya estén definidas."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:699
+msgid ""
+"B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and LDFLAGS "
+"to perl F<Makefile.PL> and F<Build.PL>"
+msgstr ""
+"B<dh_auto_configure> introduce B<dpkg-buildflags> CFLAGS, CPPFLAGS, y "
+"LDFLAGS a ficheros de Perl F<Makefile.PL> y F<Build.PL>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:704
+msgid ""
+"B<dh_strip> puts separated debug symbols in a location based on their build-"
+"id."
+msgstr ""
+"B<dh_strip> ubica símbolos de depuración separados en una ubicación según su "
+"build-id."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:709
+msgid ""
+"Executable debhelper config files are run and their output used as the "
+"configuration."
+msgstr ""
+"Se utilizan como configuración los ficheros de configuración ejecutables de "
+"debhelper y su salida."
+
+# type: textblock
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:714
+#: debhelper-compat-upgrade-checklist.pod:745
+#: debhelper-compat-upgrade-checklist.pod:749 debhelper-obsolete-compat.pod:81
+#: debhelper-obsolete-compat.pod:135 debhelper-obsolete-compat.pod:158
+#: debhelper-obsolete-compat.pod:165 debhelper-obsolete-compat.pod:174
+msgid "This mode is deprecated."
+msgstr "Este modo está obsoleto."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:716
+msgid "v8"
+msgstr "v8"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:718
+msgid "Changes from v7 are:"
+msgstr "Los cambios desde el nivel v7 son:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:724
+msgid ""
+"Commands will fail rather than warning when they are passed unknown options."
+msgstr ""
+"Las órdenes fallarán, en lugar de emitir un aviso, cuando se les introduzcan "
+"opciones desconocidas."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:728
+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. "
+"Also, libraries in unusual locations that B<dpkg-gensymbols> would not have "
+"processed before will be passed to it, a behavior change that can cause some "
+"packages to fail to build."
+msgstr ""
+"B<dh_makeshlibs> ejecutará B<dpkg-gensymbols> sobre todas las bibliotecas "
+"compartidas para las que genera ficheros «shlibs». Por ello, puede utilizar "
+"B<-X> para excluir bibliotecas. Así mismo, se introducirán a B<dpkg-"
+"gensymbols> bibliotecas en ubicaciones inusuales que antes no procesaba, un "
+"cambio de comportamiento que puede impedir la construcción de algunos "
+"paquetes."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:736
+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 "
+"$@>\"."
+msgstr ""
+"B<dh> requiere que la secuencia a ejecutar se defina como el primer "
+"parámetro, y que las opciones aparezcan a continuación. Por ejemplo, use "
+"B<dh $@ --foo>, no B<dh --foo $@>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:741
+msgid ""
+"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
+"F<Makefile.PL>."
+msgstr ""
+"B<dh_auto_>I<*> prefiere utilizar el módulo de Perl B<Module::Build> con "
+"preferencia a un fichero F<Makefile.PL>."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:747 debhelper-obsolete-compat.pod:21
+msgid "v7"
+msgstr "v7"
+
+# type: textblock
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:751 debhelper-obsolete-compat.pod:23
+#, 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-compat-upgrade-checklist.pod:753
+msgid ""
+"If you are upgrading from an earlier compatibility level, please review "
+"L<debhelper-obsolete-compat(7)>."
+msgstr ""
+
+# type: textblock
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:762
+#, fuzzy
+#| msgid "L<debhelper(7)>"
+msgid "L<debhelper-obsolete-compat(7)>"
+msgstr "L<debhelper(7)>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:764
+msgid ""
+"Upgrading from a (now) obsolete compatibility level? This document covers "
+"the upgrade checklist up to the earliest supported level."
+msgstr ""
+
+# type: textblock
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:767 debhelper-obsolete-compat.pod:180
+#: dh:874 dh_auto_build:55 dh_auto_clean:57 dh_auto_configure:60
+#: dh_auto_install:105 dh_auto_test:66 dh_builddeb:178 dh_clean:191
+#: dh_compress:245 dh_dwz:165 dh_fixperms:166 dh_gencontrol:210 dh_install:379
+#: dh_installcatalogs:130 dh_installchangelogs:367 dh_installcron:82
+#: dh_installdeb:421 dh_installdebconf:235 dh_installdirs:133
+#: dh_installdocs:439 dh_installexamples:184 dh_installifupdown:74
+#: dh_installinfo:125 dh_installlogcheck:83 dh_installlogrotate:55
+#: dh_installman:422 dh_installmanpages:200 dh_installmime:65
+#: dh_installmodules:111 dh_installpam:73 dh_installppp:70 dh_installudev:104
+#: dh_installwm:132 dh_installxfonts:92 dh_link:168 dh_listpackages:36
+#: dh_makeshlibs:458 dh_md5sums:120 dh_movefiles:163 dh_perl:190 dh_prep:72
+#: dh_strip:437 dh_testdir:64 dh_testroot:95 dh_usrlocal:138
+#: dh_systemd_start:282
+msgid "L<debhelper(7)>"
+msgstr "L<debhelper(7)>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:769
+msgid ""
+"General information about the debhelper framework. This document also covers "
+"how to declare your chosen debhelper compat level."
+msgstr ""
+
+# type: =head1
+#. type: =head1
+#: debhelper-compat-upgrade-checklist.pod:774 debhelper-obsolete-compat.pod:182
+#: dh_installinit:419 dh_systemd_enable:284 dh_systemd_start:284
+msgid "AUTHORS"
+msgstr "AUTORES"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:776 debhelper-obsolete-compat.pod:184
+#: dh_dwz:171 dh_installinitramfs:101
+msgid "Niels Thykier <niels@thykier.net>"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:778 debhelper-obsolete-compat.pod:186
+msgid "Joey Hess"
+msgstr ""
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:3
+msgid "debhelper-obsolete-compat - List of no longer supported compat levels"
+msgstr ""
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:7
+msgid ""
+"This document contains the upgrade guidelines from all compat levels which "
+"are no longer supported. Accordingly it is mostly for historical purposes "
+"and to assist people upgrading from a non-supported compat level to a "
+"supported level."
+msgstr ""
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:12
+msgid "For upgrades from supported compat levels, please see L<debhelper(7)>."
+msgstr ""
+
+#. type: =head1
+#: debhelper-obsolete-compat.pod:14
+msgid "UPGRADE LIST FOR COMPAT LEVELS"
+msgstr ""
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:16
+msgid ""
+"The following is the list of now obsolete compat levels and their changes."
+msgstr ""
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:25
+msgid "Changes from v6 are:"
+msgstr "Los cambios desde el nivel v6 son:"
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:31
+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 "
+"using B<--sourcedir>). This allows B<dh_install> to interoperate with "
+"B<dh_auto_install>, which installs to F<debian/tmp>, without needing any "
+"special parameters."
+msgstr ""
+"B<dh_install> buscará ficheros en F<debian/tmp> de forma predeterminada si "
+"no los encuentra en el directorio actual (o dónde indicó hacerlo mediante "
+"B<--sourcedir>). Esto permite la interoperabilidad entre B<dh_install> y "
+"B<dh_auto_install>, que instala en F<debian/tmp>, sin necesidad de "
+"parámetros especiales."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:38
+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-obsolete-compat.pod:42
+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-obsolete-compat.pod:46
+msgid ""
+"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
+"none is specified."
+msgstr ""
+"B<dh_installchangelogs> intentará averiguar el fichero de registro de "
+"cambios de la fuente original si no se especifica ninguno."
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:51
+msgid "v6"
+msgstr "v6"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:53
+msgid "Changes from v5 are:"
+msgstr "Los cambios desde el nivel v5 son:"
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:59
+msgid ""
+"Commands that generate maintainer script fragments will order the fragments "
+"in reverse order for the F<prerm> and F<postrm> scripts."
+msgstr ""
+"Las órdenes que generan segmentos de scripts de desarrollador ordenarán "
+"estos segmentos en orden inverso para los scripts F<prerm> y F<postrm>."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:64
+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 "
+"directory."
+msgstr ""
+"B<dh_installwm> instalará un enlace esclavo a la página de manual F<x-window-"
+"manager.1.gz> en caso de encontrar la página de manual en F<usr/share/man/"
+"man1> dentro del directorio de construcción del paquete."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:70
+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 ""
+"Anteriormente, B<dh_builddeb> no eliminaba todo aquello que coincidiese con "
+"B<DH_ALWAYS_EXCLUDE>, si es que se definía con una lista de elementos a "
+"excluir, como por ejemplo B<CVS:.svn:.git>. Ahora sí lo hace."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:76
+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> permite sobreescribir páginas de manual existentes en el "
+"directorio de construcción del paquete. Bajo los niveles de compatibilidad "
+"anteriores simplemente rechazaba hacerlo, de forma silenciosa."
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:83
+msgid "v5"
+msgstr "v5"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:85
+msgid "Changes from v4 are:"
+msgstr "Los cambios desde el nivel v4 son:"
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:91
+msgid "Comments are ignored in debhelper config files."
+msgstr ""
+"Se ignoran los comentarios en los ficheros de configuración de debhelper."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:95
+msgid ""
+"B<dh_strip --dbg-package> now specifies the name of a package to put "
+"debugging symbols in, not the packages to take the symbols from."
+msgstr ""
+"B<dh_strip --dbg-package> ahora especifica el nombre del paquete en el que "
+"se colocan los símbolos de depuración, no los paquetes desde los que obtener "
+"los símbolos."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:100
+msgid "B<dh_installdocs> skips installing empty files."
+msgstr "B<dh_installdocs> omite la instalación de ficheros vacíos."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:104
+msgid "B<dh_install> errors out if wildcards expand to nothing."
+msgstr ""
+"B<dh_install> devuelve un error si los comodines se expanden a un valor "
+"vacío."
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:108
+msgid "v4"
+msgstr "v4"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:110
+#, fuzzy
+#| msgid "Changes from v5 are:"
+msgid "Changes from v3 are:"
+msgstr "Los cambios desde el nivel v5 son:"
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:116
+msgid ""
+"B<dh_makeshlibs -V> will not include the Debian part of the version number "
+"in the generated dependency line in the shlibs file."
+msgstr ""
+"B<dh_makeshlibs -V> no incluirá la parte de Debian en el numero de versión "
+"generado en la línea de dependencias del fichero «shlibs»."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:121
+msgid ""
+"You are encouraged to put the new B<${misc:Depends}> into F<debian/control> "
+"to supplement the B<${shlibs:Depends}> field."
+msgstr ""
+"Se aconseja que use el nuevo B<${misc:Depends}> en F<debian/control> para "
+"reemplazar el campo B<${shlibs:Depends}>."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:126
+msgid ""
+"B<dh_fixperms> will make all files in F<bin/> directories and in F<etc/init."
+"d> executable."
+msgstr ""
+"B<dh_fixperms> hará ejecutables todos los ficheros en los directorios F<bin/"
+"> y F<etc/init.d>."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:131
+msgid "B<dh_link> will correct existing links to conform with policy."
+msgstr ""
+"B<dh_link> corregirá los enlaces existentes para ajustarse a las normas de "
+"Debian."
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:137
+msgid "v3"
+msgstr "v3"
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:139
+msgid "This mode works like v2, with the following additions:"
+msgstr "Este modo funciona como v2, con los siguientes añadidos:"
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:145
+msgid ""
+"Debhelper config files support globbing via B<*> and B<?>, when appropriate. "
+"To turn this off and use those characters raw, just prefix with a backslash."
+msgstr ""
+"Los ficheros de configuración de Debhelper aceptan comodines globales "
+"mediante B<*> y B<?> cuando sea apropiado. Para utilizar «*» y «?» como "
+"caracteres simplemente debe insertar como prefijo una barra invertida."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:150
+msgid ""
+"B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call "
+"B<ldconfig>."
+msgstr ""
+"B<dh_makeshlibs> hace que los scripts F<postinst> y F<postrm> ejecuten "
+"ldconfig."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:154
+msgid ""
+"Every file in F<etc/> is automatically flagged as a conffile by "
+"B<dh_installdeb>."
+msgstr ""
+"B<dh_installdeb> marca automáticamente todos los ficheros en F<etc/> como "
+"conffiles."
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:160
+msgid "v2"
+msgstr "v2"
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:162
+msgid ""
+"In this mode, debhelper will consistently use debian/I<package> as the "
+"package tree directory for every package that is built."
+msgstr ""
+"En este modo, debhelper utilizará «debian/I<paquete>» de forma consistente "
+"como el árbol de directorios para cada paquete que se construya."
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:167
+#, fuzzy
+#| msgid "v10"
+msgid "v1"
+msgstr "v10"
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:169
+msgid ""
+"This is the original debhelper compatibility level, and so it is the default "
+"one. In this mode, debhelper will use F<debian/tmp> as the package tree "
+"directory for the first binary package listed in the control file, while "
+"using debian/I<package> for all other packages listed in the F<control> file."
+msgstr ""
+"Este es el nivel de compatibilidad original de debhelper, y por tanto es el "
+"nivel predeterminado. En este modo, debhelper utiliza F<debian/tmp> como el "
+"árbol de directorios del paquete, y «debian/I<paquete>» para el resto de "
+"paquetes listados en el fichero F<control>."
+
+#. type: textblock
#: dh:5
msgid "dh - debhelper command sequencer"
msgstr "dh - Secuenciador de órdenes de debhelper"
#. type: textblock
-#: dh:14
+#: dh:24
msgid ""
"B<dh> I<sequence> [B<--with> I<addon>[B<,>I<addon> ...]] [B<--list>] "
"[S<I<debhelper options>>]"
@@ -1866,7 +3964,7 @@ msgstr ""
"[S<I<opciones-de-debhelper>>]"
#. type: textblock
-#: dh:18
+#: dh:28
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-"
@@ -1879,22 +3977,65 @@ msgstr ""
"B<install-arch>, B<install>, B<binary-arch>, B<binary-indep>, y B<binary>."
#. type: =head1
-#: dh:23
-msgid "OVERRIDE TARGETS"
+#: dh:33
+#, fuzzy
+#| msgid "OVERRIDE TARGETS"
+msgid "OVERRIDE AND HOOK TARGETS"
msgstr "OBJETIVOS «OVERRIDE»"
#. type: textblock
-#: dh:25
+#: dh:35
+#, fuzzy
+#| 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."
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."
+"any step in a sequence, by defining an override target. It is also possible "
+"to inject a command before or after any step without affecting the step "
+"itself."
msgstr ""
"Un fichero F<debian/rules> que utiliza B<dh> puede sustituir la orden que se "
"ejecuta en cualquier punto de una secuencia, definiendo un objetivo "
"«override»."
+#. type: =head2
+#: dh:40
+msgid "Injecting commands before or after a step"
+msgstr ""
+
#. type: textblock
-#: dh:28
+#: dh:42
+msgid ""
+"I<Note>: This feature requires debhelper 12.8 or later plus the package must "
+"use compatibility mode 10 or later."
+msgstr ""
+
+#. type: textblock
+#: dh:45
+msgid ""
+"To inject commands before I<dh_command>, add a target named "
+"B<execute_before_>I<dh_command> to the rules files. Similarly, if you want "
+"to inject commands after I<dh_command>, add the target "
+"B<execute_after_>I<dh_command>. Both targets can be used for the same "
+"I<dh_command> and also even if the command is overridden (as described in L</"
+"Overriding a command> below)."
+msgstr ""
+
+#. type: textblock
+#: dh:52
+msgid ""
+"When these targets are defined, B<dh> will call the targets respectively "
+"before or after it would invoke I<dh_command> (or its override target)."
+msgstr ""
+
+#. type: =head2
+#: dh:55
+msgid "Overriding a command"
+msgstr ""
+
+#. type: textblock
+#: dh:57
#, fuzzy
#| msgid ""
#| "To override I<dh_command>, add a target named B<override_>I<dh_command> "
@@ -1918,14 +4059,25 @@ msgstr ""
"funcionalidad, el paquete debe tener una dependencia de construcción sobre "
"la versión 7.0.50 o superior de debhelper."
+#. type: =head2
+#: dh:63
+msgid "Architecture dependent/independent override and hook targets"
+msgstr ""
+
#. type: textblock
-#: dh:34
+#: dh:65
+#, fuzzy
+#| msgid ""
+#| "Override targets can also be defined to run only when building "
+#| "architecture dependent or architecture independent packages. Use targets "
+#| "with names like B<override_>I<dh_command>B<-arch> and "
+#| "B<override_>I<dh_command>B<-indep>. (Note that to use this feature, you "
+#| "should Build-Depend on debhelper 8.9.7 or above.)"
msgid ""
-"Override targets can also be defined to run only when building architecture "
-"dependent or architecture independent packages. Use targets with names like "
-"B<override_>I<dh_command>B<-arch> and B<override_>I<dh_command>B<-indep>. "
-"(Note that to use this feature, you should Build-Depend on debhelper 8.9.7 "
-"or above.)"
+"The override and hook targets can also be defined to run only when building "
+"architecture dependent or architecture independent packages. Use targets "
+"with names like B<override_>I<dh_command>B<-arch> and "
+"B<execute_after_>I<dh_command>B<-indep>."
msgstr ""
"Los objetivos «override» también se pueden definir para que se ejecuten solo "
"al consuitr paquetes dependientes o independientes de la arquitectura. "
@@ -1934,30 +4086,357 @@ msgstr ""
"funcionalidad, el paquete debe tener una dependencia de construcción sobre "
"la versión 7.0.50 o superior de debhelper."
+#. type: textblock
+#: dh:70
+msgid ""
+"This feature is available since debhelper 8.9.7 (for override targets) and "
+"12.8 (for hook targets)."
+msgstr ""
+
+#. type: =head2
+#: dh:73
+msgid "Completely empty targets"
+msgstr ""
+
+#. type: textblock
+#: dh:75
+msgid ""
+"As a special optimization, B<dh> will skip a target if it is completely "
+"empty and does not depend on any other target. This is mostly useful for "
+"override targets, where the command will simply be skipped without the "
+"overhead of invoking a dummy target."
+msgstr ""
+
+#. type: textblock
+#: dh:80
+msgid "Note that the target has to be completely empty for this to work:"
+msgstr ""
+
+#. type: verbatim
+#: dh:82
+#, no-wrap
+msgid ""
+" # Skip dh_bar - the good and optimized way\n"
+" # Some rationale for skipping dh_bar goes here\n"
+" override_dh_bar:\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:87
+#, no-wrap
+msgid ""
+" # Skip dh_foo - the slow way\n"
+" override_dh_foo:\n"
+" # Some rationale for skipping dh_foo goes here\n"
+" # (these comments causes a dummy target to be run)\n"
+"\n"
+msgstr ""
+
+#. type: =head2
+#: dh:92
+msgid "Verifying targets are picked up by dh"
+msgstr ""
+
+#. type: textblock
+#: dh:94
+msgid ""
+"As of debhelper 13.10, you can use L<dh_assistant(1)> to see which override "
+"and hook targets will be seen by B<dh>. Here is an example run of "
+"L<dh_assistant(1)> along with its output:"
+msgstr ""
+
+#. type: verbatim
+#: dh:98
+#, no-wrap
+msgid ""
+" $ dh_assistant detect-hook-targets\n"
+" {\n"
+" \"commands-not-in-path\": [\n"
+" \"dh_foo\"\n"
+" ],\n"
+" \"hook-targets\": [\n"
+" {\n"
+" \"command\": \"dh_strip_nondeterminism\",\n"
+" \"is-empty\": true,\n"
+" \"package-section-param\": null,\n"
+" \"target-name\": \"override_dh_strip_nondeterminism\"\n"
+" },\n"
+" {\n"
+" \"command\": \"dh_foo\",\n"
+" \"is-empty\": false,\n"
+" \"package-section-param\": \"-a\",\n"
+" \"target-name\": \"override_dh_foo-arch\"\n"
+" }\n"
+" ]\n"
+" }\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:119
+msgid ""
+"The B<commands-not-in-path> is useful for spotting mistakes in the hook "
+"target names. A non-empty value implies one of more hook targets are "
+"related to a command that is either not installed or no command with that "
+"name exists at all. It is generally worth double checking these."
+msgstr ""
+
+#. type: textblock
+#: dh:124
+msgid ""
+"Additionally, the B<is-empty> attribute for each hook target can be used for "
+"seeing whether a hook target triggers the L</Completely empty targets> "
+"optimization."
+msgstr ""
+
+#. type: textblock
+#: dh:127
+msgid ""
+"If you are interested in the other attributes, please read the "
+"L<dh_assistant(1)> for the details."
+msgstr ""
+
+#. type: =head3
+#: dh:130
+msgid ""
+"Verifying targets are picked up by dh (when debhelper is older than 13.10)"
+msgstr ""
+
+#. type: textblock
+#: dh:134
+msgid ""
+"On older versions of debhelper, you have to use B<dh> with B<--no-act>. You "
+"can use the following command as an example:"
+msgstr ""
+
+#. type: verbatim
+#: dh:137
+#, no-wrap
+msgid ""
+" $ dh binary --no-act | grep dh_install | head -n5\n"
+" dh_installdirs\n"
+" dh_install\n"
+" debian/rules execute_after_dh_install\n"
+" dh_installdocs\n"
+" dh_installchangelogs\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:144
+msgid ""
+"The B<debian/rules execute_after_dh_install> in the output, which signals "
+"that B<dh> registered a B<execute_after_dh_install> target and would run it "
+"directly after L<dh_install(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh:148
+msgid ""
+"Note that L</Completely empty targets> will be omitted in the listing "
+"above. This makes it a bit harder to spot as you are looking for the "
+"omission of a command name. But otherwise, the principle remains the same."
+msgstr ""
+
+#. type: =head2
+#: dh:152
+msgid "Caveats with hook targets and makefile conditionals"
+msgstr ""
+
+#. type: textblock
+#: dh:154
+msgid ""
+"If you choose to wrap a hook target in makefile conditionals, please be "
+"aware that B<dh> computes all the hook targets a head of time and caches the "
+"result for that run. Furthermore, the conditionals will be invoked again "
+"when B<dh> calls the hook target later and will assume the answer did not "
+"change."
+msgstr ""
+
+#. type: textblock
+#: dh:160
+msgid ""
+"The parsing and caching I<often> happens before B<dh> knows whether it will "
+"build arch:any (-a) or/and arch:all (-i) packages, which can produce "
+"confusing results - especially when L<dh_listpackages(1)> is part of the "
+"conditional."
+msgstr ""
+
+#. type: textblock
+#: dh:165
+msgid ""
+"Most of the problems can be avoided by making the hook target unconditional "
+"and then have the \"body\" be partially or completely conditional. As an "
+"example:"
+msgstr ""
+
+#. type: verbatim
+#: dh:169
+#, no-wrap
+msgid ""
+" # SIMPLE: It is well-defined what happens. The hook target\n"
+" # is always considered. The \"maybe run this\" bit is\n"
+" # conditional but dh_foo is definitely skipped.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, \"maybe run this\"\n"
+" # is skipped.\n"
+" override_dh_foo:\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:183
+#, no-wrap
+msgid ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The \"maybe run this\" bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar:\n"
+" : # Dummy command to force the target to always be run\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:198
+#, no-wrap
+msgid ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" # Here, either dh_baz is run normally OR \"maybe run this\" is run\n"
+" # instead.\n"
+" #\n"
+" # And it gets even more complicated to reason about if dh needs to\n"
+" # recurse into debian/rules because you have an \"explicit\"\n"
+" # standard target (e.g. a \"build-arch:\" target separate from \"%:\").\n"
+" ifneq (...)\n"
+" override_dh_baz:\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:212
+msgid ""
+"These recipes are also relevant for conditional dependency targets, which "
+"are often seen in a variant of the following example:"
+msgstr ""
+
+#. type: verbatim
+#: dh:215
+#, no-wrap
+msgid ""
+" COND_TASKS =\n"
+" ifneq (...)\n"
+" COND_TASKS += maybe-run-this\n"
+" endif\n"
+" ...\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:221
+#, no-wrap
+msgid ""
+" maybe-run-this:\n"
+" ...\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:224
+#, no-wrap
+msgid ""
+" # SIMPLE: It is well-defined what happens. Either the\n"
+" # $(COND_TASKS) are skipped or run.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, $(COND_TASKS)\n"
+" # is skipped.\n"
+" override_dh_foo: $(COND_TASKS)\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:235
+#, no-wrap
+msgid ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The $(COND_TASKS) bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar: $(COND_TASKS)\n"
+" : # Dummy command to force the target to always be run\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:246
+#, no-wrap
+msgid ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" ifneq (...)\n"
+" override_dh_baz: $(COND_TASKS)\n"
+" endif\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:254
+msgid ""
+"When in doubt, pick the relevant B<SIMPLE> case in the examples above that "
+"match your need."
+msgstr ""
+
# type: =head1
#. type: =head1
-#: dh:41 dh_auto_build:28 dh_auto_clean:30 dh_auto_configure:31
-#: dh_auto_install:43 dh_auto_test:31 dh_bugfiles:50 dh_builddeb:24
-#: dh_clean:41 dh_compress:48 dh_fixperms:32 dh_gconf:39 dh_gencontrol:26
-#: dh_icons:30 dh_install:59 dh_installcatalogs:49 dh_installchangelogs:59
-#: dh_installcron:40 dh_installdebconf:61 dh_installdirs:31 dh_installdocs:71
-#: dh_installemacsen:53 dh_installexamples:32 dh_installifupdown:39
-#: dh_installinfo:31 dh_installinit:59 dh_installlogcheck:42
-#: dh_installlogrotate:22 dh_installman:61 dh_installmanpages:40
-#: dh_installmenu:41 dh_installmodules:38 dh_installpam:31 dh_installppp:35
-#: dh_installudev:35 dh_installwm:34 dh_link:53 dh_makeshlibs:43 dh_md5sums:28
-#: dh_movefiles:38 dh_perl:31 dh_prep:26 dh_shlibdeps:26 dh_strip:35
-#: dh_testdir:23 dh_usrlocal:39
+#: dh:257 dh_auto_build:32 dh_auto_clean:33 dh_auto_configure:35
+#: dh_auto_install:52 dh_auto_test:34 dh_bugfiles:53 dh_builddeb:34 dh_clean:49
+#: dh_compress:52 dh_dwz:26 dh_fixperms:40 dh_gencontrol:38 dh_icons:33
+#: dh_install:69 dh_installcatalogs:56 dh_installchangelogs:77
+#: dh_installcron:45 dh_installdeb:107 dh_installdebconf:64 dh_installdirs:45
+#: dh_installdocs:100 dh_installemacsen:56 dh_installexamples:48
+#: dh_installifupdown:42 dh_installinfo:41 dh_installinit:77
+#: dh_installinitramfs:43 dh_installlogcheck:45 dh_installlogrotate:25
+#: dh_installman:86 dh_installmanpages:43 dh_installmenu:44
+#: dh_installmodules:41 dh_installpam:38 dh_installppp:38 dh_installudev:34
+#: dh_installwm:41 dh_link:69 dh_makeshlibs:67 dh_md5sums:31 dh_movefiles:41
+#: dh_perl:35 dh_prep:29 dh_shlibdeps:30 dh_strip:38 dh_testdir:26
+#: dh_usrlocal:50 dh_systemd_enable:82 dh_systemd_start:33
msgid "OPTIONS"
msgstr "OPCIONES"
#. type: =item
-#: dh:45
+#: dh:261
msgid "B<--with> I<addon>[B<,>I<addon> ...]"
msgstr "B<--with> I<extensión>[B<,>I<extensión>,...]"
#. type: textblock
-#: dh:47
+#: dh:263
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 "
@@ -1973,14 +4452,46 @@ msgstr ""
"órdenes de debhelper. Para más documentación sobre la interfaz de extensión "
"de secuencia consulte el fichero F<PROGRAMMING>."
+#. type: textblock
+#: dh:270
+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>. 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 "
+"bootstrapping)."
+msgstr ""
+
+#. type: textblock
+#: dh:279
+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:285
+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:54
+#: dh:293
msgid "B<--without> I<addon>"
msgstr "B<--without> I<extensión>"
#. type: textblock
-#: dh:56
+#: dh:295
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, "
@@ -1991,12 +4502,19 @@ msgstr ""
"extensiones que desactivar."
#. type: textblock
-#: dh:62
+#: dh:301
msgid "List all available addons."
msgstr "Lista todas las extensiones disponibles."
#. type: textblock
-#: dh:66
+#: dh:303
+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:309
msgid ""
"Prints commands that would run for a given sequence, but does not run them."
msgstr ""
@@ -2004,14 +4522,14 @@ msgstr ""
"ejecuta."
#. type: textblock
-#: dh:68
+#: dh:311
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:73
+#: dh:316
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 "
@@ -2023,12 +4541,13 @@ msgstr ""
# type: =head1
#. type: =head1
-#: dh:77 dh_installdocs:110 dh_link:75 dh_makeshlibs:97 dh_shlibdeps:70
+#: dh:320 dh_install:332 dh_installdocs:191 dh_installman:117 dh_link:91
+#: dh_makeshlibs:185 dh_shlibdeps:78
msgid "EXAMPLES"
msgstr "EJEMPLOS"
#. type: textblock
-#: dh:79
+#: dh:322
msgid ""
"To see what commands are included in a sequence, without actually doing "
"anything:"
@@ -2037,7 +4556,7 @@ msgstr ""
"realidad:"
#. type: verbatim
-#: dh:82
+#: dh:325
#, no-wrap
msgid ""
"\tdh binary-arch --no-act\n"
@@ -2047,7 +4566,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:84
+#: dh:327
msgid ""
"This is a very simple rules file, for packages where the default sequences "
"of commands work with no additional options."
@@ -2056,7 +4575,7 @@ msgstr ""
"predeterminadas de órdenes funcionan sin opciones adicionales."
#. type: verbatim
-#: dh:87 dh:108 dh:121
+#: dh:330 dh:337 dh:351 dh:364 dh:375 dh:433 dh:444
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2070,7 +4589,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:91
+#: dh:334
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."
@@ -2080,33 +4599,23 @@ msgstr ""
"para esa orden."
#. type: verbatim
-#: dh:94 dh:179 dh:190
-#, 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:98
-#, no-wrap
+#: dh:341
+#, 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:101
+#: dh:344
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -2118,7 +4627,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:104
+#: dh:347
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 "
@@ -2130,7 +4639,7 @@ msgstr ""
"ejecutar sus propias órdenes."
#. type: verbatim
-#: dh:112
+#: dh:355
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -2142,7 +4651,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:115
+#: dh:358
#, no-wrap
msgid ""
"\toverride_dh_auto_build:\n"
@@ -2154,7 +4663,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:118
+#: dh:361
msgid ""
"Another common case is wanting to do something manually before or after a "
"particular debhelper command is run."
@@ -2163,11 +4672,16 @@ msgstr ""
"se ejecute una orden en particular de debhelper."
#. type: verbatim
-#: dh:125
-#, no-wrap
+#: dh:368
+#, fuzzy, no-wrap
+#| msgid ""
+#| "\toverride_dh_fixperms:\n"
+#| "\t\tdh_fixperms\n"
+#| "\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+#| "\n"
msgid ""
-"\toverride_dh_fixperms:\n"
-"\t\tdh_fixperms\n"
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
@@ -2177,38 +4691,42 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:129
+#: dh:372
msgid ""
-"If your package uses autotools and you want to freshen F<config.sub> and "
-"F<config.guess> with newer versions from the B<autotools-dev> package at "
-"build time, you can use some commands provided in B<autotools-dev> that "
-"automate it, like this."
+"If you are on an older debhelper or compatibility level, the above example "
+"would have to be written as."
msgstr ""
-"Si su paquete utiliza Autotools y desea actualizar F<config.sub> y F<config."
-"guess> con nuevas versiones del paquete B<autotools-dev> en tiempo de "
-"ejecución, puede utilizar algunas órdenes proporcionadas por B<autotools-"
-"dev> que automatizan esta tarea, como puede ver a continuación."
#. type: verbatim
-#: dh:134
-#, no-wrap
+#: dh:379
+#, fuzzy, no-wrap
+#| msgid ""
+#| "\toverride_dh_fixperms:\n"
+#| "\t\tdh_fixperms\n"
+#| "\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+#| "\n"
msgid ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@ --with autotools_dev\n"
+"\t# Older debhelper versions or using compat 9 or lower.\n"
+"\toverride_dh_fixperms:\n"
+"\t\tdh_fixperms\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@ --with autotools_dev\n"
+"\toverride_dh_fixperms:\n"
+"\t\tdh_fixperms\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
#. type: textblock
-#: dh:138
+#: dh:384
+#, fuzzy
+#| msgid ""
+#| "Python tools are not run by dh by default, due to the continual change in "
+#| "that area. (Before compatibility level v9, dh does run B<dh_pysupport>.) "
+#| "Here is how to use B<dh_python2>."
msgid ""
"Python tools are not run by dh by default, due to the continual change in "
-"that area. (Before compatibility level v9, dh does run B<dh_pysupport>.) "
-"Here is how to use B<dh_python2>."
+"that area. Here is how to use B<dh_python2>."
msgstr ""
"dh no ejecuta las herramientas de Python de forma predeterminada debido al "
"cambio continuo de ese campo. (dh ejecuta B<dh_pysupport> en un nivel de "
@@ -2216,7 +4734,7 @@ msgstr ""
"B<dh_python2>."
#. type: verbatim
-#: dh:142
+#: dh:387
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2230,7 +4748,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:146
+#: dh:391
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."
@@ -2240,7 +4758,7 @@ msgstr ""
"detecta erróneamente que el paquete utiliza MakeMaker."
#. type: verbatim
-#: dh:150
+#: dh:395
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2254,7 +4772,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:154
+#: dh:399
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 "
@@ -2265,7 +4783,7 @@ msgstr ""
"en el que las fuentes se ubican en un subdirectorio."
#. type: verbatim
-#: dh:158
+#: dh:403
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2279,7 +4797,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:162
+#: dh:407
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>."
@@ -2289,7 +4807,7 @@ msgstr ""
"B<clean>."
#. type: verbatim
-#: dh:165
+#: dh:410
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2303,17 +4821,21 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:169
+#: dh:414
+#, fuzzy
+#| msgid ""
+#| "If your package can be built in parallel, you can support parallel "
+#| "building as follows. Then B<dpkg-buildpackage -j> will work."
msgid ""
-"If your package can be built in parallel, you can support parallel building "
-"as follows. Then B<dpkg-buildpackage -j> will work."
+"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 ""
"Si su paquete se puede construir en paralelo, puede permitir la construcción "
"en paralelo de la siguiente manera. Por ello, la orden B<dpkg-buildpackage -"
"j> funcionará."
#. type: verbatim
-#: dh:172
+#: dh:417
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2327,7 +4849,33 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:176
+#: dh:421
+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:426
+#, fuzzy, no-wrap
+#| msgid ""
+#| "\t#!/usr/bin/make -f\n"
+#| "\t%:\n"
+#| "\t\tdh $@ --parallel\n"
+#| "\n"
+msgid ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --no-parallel\n"
+"\n"
+msgstr ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --parallel\n"
+"\n"
+
+#. type: textblock
+#: dh:430
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."
@@ -2337,7 +4885,7 @@ msgstr ""
"cada orden."
#. type: verbatim
-#: dh:183
+#: dh:437
#, no-wrap
msgid ""
"\t# Commands not to run:\n"
@@ -2349,7 +4897,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:186
+#: dh:440
msgid ""
"A long build process for a separate documentation package can be separated "
"out using architecture independent overrides. These will be skipped when "
@@ -2360,7 +4908,7 @@ msgstr ""
"omiten al ejecutar las secuencias build-arch y binary-arch."
#. type: verbatim
-#: dh:194
+#: dh:448
#, no-wrap
msgid ""
"\toverride_dh_auto_build-indep:\n"
@@ -2372,7 +4920,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:197
+#: dh:451
#, no-wrap
msgid ""
"\t# No tests needed for docs\n"
@@ -2384,7 +4932,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:200
+#: dh:454
#, no-wrap
msgid ""
"\toverride_dh_auto_install-indep:\n"
@@ -2396,7 +4944,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:203
+#: dh:457
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 "
@@ -2407,26 +4955,182 @@ msgstr ""
"arquitectura, ya que no está presente cuando solo se construye documentación."
#. type: verbatim
-#: dh:207
-#, no-wrap
+#: dh:461
+#, fuzzy, no-wrap
+#| msgid ""
+#| "\toverride_dh_fixperms:\n"
+#| "\t\tdh_fixperms\n"
+#| "\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+#| "\n"
msgid ""
-"\toverride_dh_fixperms-arch:\n"
-"\t\tdh_fixperms\n"
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms-arch:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
-"\toverride_dh_fixperms-arch:\n"
+"\toverride_dh_fixperms:\n"
"\t\tdh_fixperms\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
+# type: =head1
+#. type: =head1
+#: dh:465
+#, fuzzy
+#| msgid "DEBHELPER COMMANDS"
+msgid "DEBHELPER PROVIDED DH ADDONS"
+msgstr "ÓRDENES DE DEBHELPER"
+
+#. type: textblock
+#: dh:467
+msgid ""
+"The primary purpose of B<dh> addons is to provide easy integration with "
+"third-party provided features for debhelper. However, debhelper itself also "
+"provide a few sequences that can be useful in some cases. These are "
+"documented in this list:"
+msgstr ""
+
+#. type: =item
+#: dh:474
+msgid "build-stamp"
+msgstr ""
+
+#. type: textblock
+#: dh:476
+msgid ""
+"A special addon for controlling whether B<dh> (in compat 10 or later) will "
+"create stamp files to tell whether the build target has been run "
+"successfully. See L</INTERNALS> for more details."
+msgstr ""
+
+#. type: textblock
+#: dh:480
+msgid ""
+"This addon is active by default but can disabled by using B<dh $@ --without "
+"build-stamp>"
+msgstr ""
+
+#. type: =item
+#: dh:483
+msgid "dwz (obsolete)"
+msgstr ""
+
+#. type: textblock
+#: dh:485
+msgid ""
+"Adds L<dh_dwz(1)> to the sequence in compat level 11 or below. Obsolete in "
+"compat 12 or later."
+msgstr ""
+
+#. type: =item
+#: dh:488
+msgid "elf-tools"
+msgstr ""
+
+#. type: textblock
+#: dh:490
+msgid ""
+"This addon adds tools related to ELF files to the sequence such as "
+"L<dh_strip(1)> and L<dh_shlibdeps(1)>"
+msgstr ""
+
+#. type: textblock
+#: dh:493
+msgid ""
+"This addon is I<conditionally> active by default for architecture specific "
+"packages - that is, it is skipped for arch:all packages. In the special "
+"case where you need these tools to work on arch:all packages, you can use "
+"B<--with elf-tools> to activate it unconditionally."
+msgstr ""
+
+#. type: =item
+#: dh:499
+msgid "installinitramfs (obsolete)"
+msgstr ""
+
+#. type: textblock
+#: dh:501
+msgid ""
+"Adds L<dh_installinitramfs(1)> to the sequence in compat level 11 or below. "
+"Obsolete in compat 12 or later."
+msgstr ""
+
+#. type: =item
+#: dh:504
+msgid "root-sequence (internal)"
+msgstr ""
+
+#. type: textblock
+#: dh:506
+msgid "This is reserved for internal usage."
+msgstr ""
+
+#. type: =item
+#: dh:508
+msgid "single-binary"
+msgstr ""
+
+#. type: textblock
+#: dh:510
+msgid ""
+"A special-purpose addon that makes debhelper run in \"single binary\" mode."
+msgstr ""
+
+#. type: textblock
+#: dh:512
+msgid ""
+"When active, it will pass B<< --destdir=debian/I<package>/ >> to "
+"L<dh_auto_install(1)>. This makes every file \"installed\" by the upstream "
+"build system part of the (only) binary package by default without having to "
+"use other helpers such as L<dh_install(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh:517
+msgid ""
+"The addon will refuse to activate when the source package lists 2 or more "
+"binary packages in F<debian/control> as a precaution."
+msgstr ""
+
+#. type: textblock
+#: dh:520
+msgid ""
+"Before compat 15. this behaviour was the default when there was only a "
+"single binary package listed in F<debian/control>. In compat 15 and later, "
+"this addon must explicitly be activated for this feature to work."
+msgstr ""
+
+#. type: textblock
+#: dh:524
+msgid ""
+"The rationale for requiring this as an explicit choice is that if it is "
+"implicit then debhelper will silently change behaviour on adding a new "
+"binary package. This has caused many RC bugs when maintainers renamed a "
+"binary and added transitional packages with the intention of supporting "
+"seamless upgrades. The result would often be two empty binary packages that "
+"were uploaded to archive with users frustrated as their \"upgrade\" removed "
+"their programs."
+msgstr ""
+
+#. type: =item
+#: dh:532
+msgid "systemd (obsolete)"
+msgstr ""
+
+#. type: textblock
+#: dh:534
+msgid ""
+"Adds L<dh_systemd_enable(1)> and L<dh_systemd_start(1)> to the sequence in "
+"compat level 10 or below. Obsolete in compat 11 or later."
+msgstr ""
+
#. type: =head1
-#: dh:211
+#: dh:539
msgid "INTERNALS"
msgstr "FUNCIONAMIENTO INTERNO"
#. type: textblock
-#: dh:213
+#: dh:541
msgid ""
"If you're curious about B<dh>'s internals, here's how it works under the "
"hood."
@@ -2435,12 +5139,38 @@ msgstr ""
"puede ver como funciona por dentro."
#. type: textblock
-#: dh:215
+#: dh:543
+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 "
+"possible to avoid the stamp file by passing B<--without=build-stamp> to "
+"B<dh>. This makes \"no clean\" builds behave more like what some people "
+"expect at the expense of possibly running the build and test twice (the "
+"second time as root or under L<fakeroot(1)>)."
+msgstr ""
+
+#. type: textblock
+#: dh:551
+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 "
+"been run for. These log files are then removed once the override target is "
+"complete."
+msgstr ""
+
+#. type: textblock
+#: dh:556
+#, fuzzy
+#| msgid ""
+#| "Each debhelper command will record when it's successfully run in F<debian/"
+#| "package.debhelper.log>. (Which B<dh_clean> deletes.) So B<dh> can tell "
+#| "which commands have already been run, for which packages, and skip "
+#| "running those commands again."
msgid ""
-"Each debhelper command will record when it's successfully run in F<debian/"
-"package.debhelper.log>. (Which B<dh_clean> deletes.) So B<dh> can tell which "
-"commands have already been run, for which packages, and skip running those "
-"commands again."
+"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> "
+"deletes.) So B<dh> can tell which commands have already been run, for which "
+"packages, and skip running those commands again."
msgstr ""
"Cada orden de debhelper registra una ejecución exitosa en F<debian/package."
"debhelper.log>. (que B<dh_clean> elimina). Gracias a ello, B<dh> puede "
@@ -2448,12 +5178,17 @@ msgstr ""
"esas órdenes otra vez."
#. type: textblock
-#: dh:220
+#: dh:561
+#, fuzzy
+#| msgid ""
+#| "Each time B<dh> is run, 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."
msgid ""
-"Each time B<dh> is run, 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."
+"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."
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 "
@@ -2461,7 +5196,7 @@ msgstr ""
"before>, B<--after> y B<--remaining> pueden anular este comportamiento."
#. type: textblock
-#: dh:225
+#: dh:565
msgid ""
"A sequence can also run dependent targets in debian/rules. For example, the "
"\"binary\" sequence runs the \"install\" target."
@@ -2471,7 +5206,7 @@ msgstr ""
"ejecuta el objeto «install»."
#. type: textblock
-#: dh:228
+#: dh:568
msgid ""
"B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass "
"information through to debhelper commands that are run inside override "
@@ -2484,7 +5219,7 @@ msgstr ""
"entorno, como el nombre sugiere, está sujeto a cambios en cualquier momento."
#. type: textblock
-#: dh:233
+#: dh:573
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 "
@@ -2499,113 +5234,22 @@ msgstr ""
"B<binary-arch> para asegurar que sólo actúan sobre paquetes dependientes de "
"la arquitectura."
-#. type: =head1
-#: dh:239
-msgid "DEPRECATED OPTIONS"
-msgstr "OPCIONES OBSOLETAS"
-
-#. type: textblock
-#: dh:241
-msgid ""
-"The following options are deprecated. It's much better to use override "
-"targets instead."
-msgstr ""
-"Las siguientes opciones están obsoletas. Se recomienda utilizar en su lugar "
-"objetivos «override»."
-
-# type: =item
-#. type: =item
-#: dh:246
-msgid "B<--until> I<cmd>"
-msgstr "B<--until> I<orden>"
-
-#. type: textblock
-#: dh:248
-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:250
-msgid "B<--before> I<cmd>"
-msgstr "B<--before> I<orden>"
-
-#. type: textblock
-#: dh:252
-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:254
-msgid "B<--after> I<cmd>"
-msgstr "B<--after> I<orden>"
-
-#. type: textblock
-#: dh:256
-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:258
-msgid "B<--remaining>"
-msgstr "B<--remaining>"
-
-#. type: textblock
-#: dh:260
-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:264
-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:974 dh_auto_build:49 dh_auto_clean:52 dh_auto_configure:54
-#: dh_auto_install:94 dh_auto_test:65 dh_builddeb:126 dh_clean:149
-#: dh_compress:212 dh_fixperms:133 dh_gconf:103 dh_gencontrol:80
-#: dh_install:262 dh_installcatalogs:124 dh_installchangelogs:243
-#: dh_installcron:81 dh_installdeb:144 dh_installdebconf:130 dh_installdirs:90
-#: dh_installdocs:339 dh_installexamples:110 dh_installifupdown:73
-#: dh_installinfo:79 dh_installinit:326 dh_installlogcheck:82
-#: dh_installlogrotate:54 dh_installman:265 dh_installmanpages:199
-#: dh_installmime:65 dh_installmodules:117 dh_installpam:63 dh_installppp:69
-#: dh_installudev:119 dh_installwm:112 dh_installxfonts:91 dh_link:230
-#: dh_listpackages:32 dh_makeshlibs:266 dh_md5sums:92 dh_movefiles:172
-#: dh_perl:154 dh_prep:62 dh_strip:244 dh_suidregister:119 dh_testdir:55
-#: dh_testroot:29 dh_undocumented:30 dh_usrlocal:118
-msgid "L<debhelper(7)>"
-msgstr "L<debhelper(7)>"
-
-# type: textblock
-#. type: textblock
-#: dh:976 dh_auto_build:51 dh_auto_clean:54 dh_auto_configure:56
-#: dh_auto_install:96 dh_auto_test:67 dh_bugfiles:130 dh_builddeb:128
-#: dh_clean:151 dh_compress:214 dh_desktop:35 dh_fixperms:135 dh_gconf:105
-#: dh_gencontrol:82 dh_icons:75 dh_install:264 dh_installchangelogs:245
-#: dh_installcron:83 dh_installdeb:146 dh_installdebconf:132 dh_installdirs:92
-#: dh_installdocs:341 dh_installemacsen:146 dh_installexamples:112
-#: dh_installifupdown:75 dh_installinfo:81 dh_installinit:328
-#: dh_installlogrotate:56 dh_installman:267 dh_installmanpages:201
-#: dh_installmenu:95 dh_installmime:67 dh_installmodules:119 dh_installpam:65
-#: dh_installppp:71 dh_installudev:121 dh_installwm:114 dh_installxfonts:93
-#: dh_link:232 dh_lintian:63 dh_listpackages:34 dh_makeshlibs:268
-#: dh_md5sums:94 dh_movefiles:174 dh_perl:156 dh_prep:64 dh_scrollkeeper:32
-#: dh_shlibdeps:156 dh_strip:246 dh_suidregister:121 dh_testdir:57
-#: dh_testroot:31 dh_undocumented:32 dh_usrlocal:120
+#: dh:876 dh_auto_build:57 dh_auto_clean:59 dh_auto_configure:62
+#: dh_auto_install:107 dh_auto_test:68 dh_bugfiles:139 dh_builddeb:180
+#: dh_clean:193 dh_compress:247 dh_dwz:167 dh_fixperms:168 dh_gencontrol:212
+#: dh_icons:79 dh_install:381 dh_installchangelogs:369 dh_installcron:84
+#: dh_installdeb:423 dh_installdebconf:237 dh_installdirs:135
+#: dh_installdocs:441 dh_installemacsen:143 dh_installexamples:186
+#: dh_installifupdown:76 dh_installinfo:127 dh_installinit:417
+#: dh_installinitramfs:97 dh_installlogrotate:57 dh_installman:424
+#: dh_installmanpages:202 dh_installmenu:94 dh_installmime:67
+#: dh_installmodules:113 dh_installpam:75 dh_installppp:72 dh_installudev:106
+#: dh_installwm:134 dh_installxfonts:94 dh_link:170 dh_lintian:64
+#: dh_listpackages:38 dh_makeshlibs:460 dh_md5sums:122 dh_movefiles:165
+#: dh_perl:192 dh_prep:74 dh_shlibdeps:208 dh_strip:439 dh_testdir:66
+#: dh_testroot:97 dh_usrlocal:140
msgid "This program is a part of debhelper."
msgstr "Este programa es parte de debhelper."
@@ -2617,7 +5261,7 @@ msgstr "dh_auto_build - Construye un paquete de forma automática"
# type: textblock
#. type: textblock
-#: dh_auto_build:14
+#: dh_auto_build:18
msgid ""
"B<dh_auto_build> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2626,7 +5270,7 @@ msgstr ""
"debhelper>>] [S<B<--> I<parámetros>>]"
#. type: textblock
-#: dh_auto_build:18
+#: dh_auto_build:22
msgid ""
"B<dh_auto_build> is a debhelper program that tries to automatically build a "
"package. It does so by running the appropriate command for the build system "
@@ -2642,7 +5286,7 @@ msgstr ""
"para construir el paquete."
#. type: textblock
-#: dh_auto_build:24
+#: dh_auto_build:28
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, "
"you're encouraged to skip using B<dh_auto_build> at all, and just run the "
@@ -2653,8 +5297,8 @@ msgstr ""
"construcción manualmente."
#. type: textblock
-#: dh_auto_build:30 dh_auto_clean:32 dh_auto_configure:33 dh_auto_install:45
-#: dh_auto_test:33
+#: dh_auto_build:34 dh_auto_clean:35 dh_auto_configure:37 dh_auto_install:54
+#: dh_auto_test:36
msgid ""
"See L<debhelper(7)/B<BUILD SYSTEM OPTIONS>> for a list of common build "
"system selection and control options."
@@ -2664,14 +5308,14 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_auto_build:35 dh_auto_clean:37 dh_auto_configure:38 dh_auto_install:56
-#: dh_auto_test:38 dh_builddeb:38 dh_gencontrol:30 dh_installdebconf:69
-#: dh_installinit:105 dh_makeshlibs:91 dh_shlibdeps:37
+#: dh_auto_build:39 dh_auto_clean:40 dh_auto_configure:42 dh_auto_install:65
+#: dh_auto_test:41 dh_builddeb:48 dh_dwz:62 dh_gencontrol:42
+#: dh_installdebconf:72 dh_installinit:166 dh_makeshlibs:179 dh_shlibdeps:41
msgid "B<--> I<params>"
msgstr "B<--> I<parámetros>"
#. type: textblock
-#: dh_auto_build:37
+#: dh_auto_build:41
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_build> usually passes."
@@ -2686,7 +5330,7 @@ msgstr "dh_auto_clean - Limpia automáticamente después de una construcción"
# type: textblock
#. type: textblock
-#: dh_auto_clean:15
+#: dh_auto_clean:18
msgid ""
"B<dh_auto_clean> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2695,7 +5339,7 @@ msgstr ""
"debhelper>>] [S<B<--> I<parámetros>>]"
#. type: textblock
-#: dh_auto_clean:19
+#: dh_auto_clean:22
msgid ""
"B<dh_auto_clean> is a debhelper program that tries to automatically clean up "
"after a package build. It does so by running the appropriate command for the "
@@ -2714,7 +5358,7 @@ msgstr ""
"PL>, se ejecuta para limpiar el paquete."
#. type: textblock
-#: dh_auto_clean:26
+#: dh_auto_clean:29
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, or "
"tries to use the wrong clean target, you're encouraged to skip using "
@@ -2725,7 +5369,7 @@ msgstr ""
"B<dh_auto_clean>, y que simplemente ejecute B<make clean> manualmente."
#. type: textblock
-#: dh_auto_clean:39
+#: dh_auto_clean:42
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_clean> usually passes."
@@ -2742,7 +5386,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_auto_configure:14
+#: dh_auto_configure:18
msgid ""
"B<dh_auto_configure> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2751,7 +5395,7 @@ msgstr ""
"de-debhelper>>] [S<B<--> I<parámetros>>]"
#. type: textblock
-#: dh_auto_configure:18
+#: dh_auto_configure:22
msgid ""
"B<dh_auto_configure> is a debhelper program that tries to automatically "
"configure a package prior to building. It does so by running the appropriate "
@@ -2772,7 +5416,7 @@ msgstr ""
"cerrará sin hacer nada."
#. type: textblock
-#: dh_auto_configure:27
+#: dh_auto_configure:31
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, "
"you're encouraged to skip using B<dh_auto_configure> at all, and just run "
@@ -2783,7 +5427,7 @@ msgstr ""
"configure>, o su equivalente, manualmente."
#. type: textblock
-#: dh_auto_configure:40
+#: dh_auto_configure:44
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_configure> usually passes. For example:"
@@ -2792,7 +5436,7 @@ msgstr ""
"parámetros que habitualmente introduce B<dh_auto_configure> Por ejemplo:"
#. type: verbatim
-#: dh_auto_configure:43
+#: dh_auto_configure:47
#, no-wrap
msgid ""
" dh_auto_configure -- --with-foo --enable-bar\n"
@@ -2808,7 +5452,7 @@ msgstr "dh_auto_install - Ejecuta «make install» o similar automáticamente"
# type: textblock
#. type: textblock
-#: dh_auto_install:17
+#: dh_auto_install:20
msgid ""
"B<dh_auto_install> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2817,7 +5461,7 @@ msgstr ""
"debhelper>>] [S<B<--> I<parámetros>>]"
#. type: textblock
-#: dh_auto_install:21
+#: dh_auto_install:24
msgid ""
"B<dh_auto_install> is a debhelper program that tries to automatically "
"install built files. It does so by running the appropriate command for the "
@@ -2838,13 +5482,30 @@ msgstr ""
"B<dh_auto_install> no instalará ficheros construidos mediante Ant."
#. type: textblock
-#: dh_auto_install:29
+#: dh_auto_install:32
msgid ""
-"Unless B<--destdir> option is specified, the files are installed into debian/"
-"I<package>/ if there is only one binary package. In the multiple binary "
-"package case, the files are instead installed into F<debian/tmp/>, and "
-"should be moved from there to the appropriate package build directory using "
-"L<dh_install(1)>."
+"In compat 15 or later, B<dh_auto_install> will use F<debian/tmp> as the "
+"default B<--destdir> and should be moved from there to the appropriate "
+"package build directory using L<dh_install(1)> or similar tools. Though if "
+"the B<single-binary> addon for L<dh(1)> is activated, then it will pass an "
+"explicit B<< --destdir=debian/I<package>/ >> to B<dh_auto_install>."
+msgstr ""
+
+#. type: textblock
+#: dh_auto_install:38
+#, fuzzy
+#| msgid ""
+#| "Unless B<--destdir> option is specified, the files are installed into "
+#| "debian/I<package>/ if there is only one binary package. In the multiple "
+#| "binary package case, the files are instead installed into F<debian/tmp/>, "
+#| "and should be moved from there to the appropriate package build directory "
+#| "using L<dh_install(1)>."
+msgid ""
+"For earlier compat levels then unless B<--destdir> option is specified, the "
+"files are installed into debian/I<package>/ if there is only one binary "
+"package. In the multiple binary package case, the files are instead "
+"installed into F<debian/tmp/>, and should be moved from there to the "
+"appropriate package build directory using L<dh_install(1)> or similar tools."
msgstr ""
"A menos que se defina la opción B<--destdir>, los ficheros se instalan en "
"«debian/I<paquete>/» si sólo hay un paquete binario. En el caso de varios "
@@ -2853,7 +5514,7 @@ msgstr ""
"L<dh_install(1)>."
#. type: textblock
-#: dh_auto_install:35
+#: dh_auto_install:44
msgid ""
"B<DESTDIR> is used to tell make where to install the files. If the Makefile "
"was generated by MakeMaker from a F<Makefile.PL>, it will automatically set "
@@ -2865,7 +5526,7 @@ msgstr ""
"ficheros F<Makefile>."
#. type: textblock
-#: dh_auto_install:39
+#: dh_auto_install:48
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, or "
"tries to use the wrong install target, you're encouraged to skip using "
@@ -2878,12 +5539,12 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_auto_install:50 dh_builddeb:28
+#: dh_auto_install:59 dh_builddeb:38
msgid "B<--destdir=>I<directory>"
msgstr "B<--destdir=>I<directorio>"
#. type: textblock
-#: dh_auto_install:52
+#: dh_auto_install:61
msgid ""
"Install files into the specified I<directory>. If this option is not "
"specified, destination directory is determined automatically as described in "
@@ -2894,7 +5555,7 @@ msgstr ""
"describe en la sección L</B<DESCRIPCIÓN>>."
#. type: textblock
-#: dh_auto_install:58
+#: dh_auto_install:67
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_install> usually passes."
@@ -2910,7 +5571,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_auto_test:15
+#: dh_auto_test:18
msgid ""
"B<dh_auto_test> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2919,7 +5580,7 @@ msgstr ""
"debhelper>>] [S<B<--> I<parámetros>>]"
#. type: textblock
-#: dh_auto_test:19
+#: dh_auto_test:22
msgid ""
"B<dh_auto_test> is a debhelper program that tries to automatically run a "
"package's test suite. It does so by running the appropriate command for the "
@@ -2939,7 +5600,7 @@ msgstr ""
"cero sin hacer nada."
#. type: textblock
-#: dh_auto_test:27
+#: dh_auto_test:30
msgid ""
"This is intended to work for about 90% of packages with a test suite. If it "
"doesn't work, you're encouraged to skip using B<dh_auto_test> at all, and "
@@ -2950,7 +5611,7 @@ msgstr ""
"simplemente ejecute el conjunto de pruebas manualmente."
#. type: textblock
-#: dh_auto_test:40
+#: dh_auto_test:43
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_test> usually passes."
@@ -2960,7 +5621,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_auto_test:47
+#: dh_auto_test:50
msgid ""
"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nocheck>, no "
"tests will be performed."
@@ -2968,13 +5629,6 @@ msgstr ""
"No se realizará ninguna prueba si la variable de entorno "
"B<DEB_BUILD_OPTIONS> contiene B<nocheck>."
-#. type: textblock
-#: dh_auto_test:50
-msgid ""
-"dh_auto_test does not run the test suite when a package is being cross "
-"compiled."
-msgstr ""
-
# type: textblock
#. type: textblock
#: dh_bugfiles:5
@@ -2987,13 +5641,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_bugfiles:14
+#: dh_bugfiles:17
msgid "B<dh_bugfiles> [B<-A>] [S<I<debhelper options>>]"
msgstr "B<dh_bugfiles> [B<-A>] [S<I<opciones-de-debhelper>>]"
# type: textblock
#. type: textblock
-#: dh_bugfiles:18
+#: dh_bugfiles:21
msgid ""
"B<dh_bugfiles> is a debhelper program that is responsible for installing bug "
"reporting customization files (bug scripts and/or bug control files and/or "
@@ -3005,24 +5659,25 @@ msgstr ""
"construcción del paquete."
#. type: =head1
-#: dh_bugfiles:22 dh_clean:31 dh_compress:31 dh_gconf:23 dh_install:38
-#: dh_installcatalogs:35 dh_installchangelogs:35 dh_installcron:21
-#: dh_installdeb:22 dh_installdebconf:34 dh_installdirs:21 dh_installdocs:21
-#: dh_installemacsen:27 dh_installexamples:22 dh_installifupdown:22
-#: dh_installinfo:21 dh_installinit:27 dh_installlogcheck:21 dh_installman:51
-#: dh_installmenu:25 dh_installmime:21 dh_installmodules:28 dh_installpam:21
-#: dh_installppp:21 dh_installudev:25 dh_installwm:24 dh_link:41 dh_lintian:21
-#: dh_makeshlibs:29 dh_movefiles:26
+#: dh_bugfiles:25 dh_clean:33 dh_compress:35 dh_install:40
+#: dh_installcatalogs:39 dh_installchangelogs:53 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 "FICHEROS"
#. type: =item
-#: dh_bugfiles:26
+#: dh_bugfiles:29
msgid "debian/I<package>.bug-script"
msgstr "debian/I<paquete>.bug-script"
#. type: textblock
-#: dh_bugfiles:28
+#: dh_bugfiles:31
msgid ""
"This is the script to be run by the bug reporting program for generating a "
"bug report template. This file is installed as F<usr/share/bug/package> in "
@@ -3040,12 +5695,12 @@ msgstr ""
"instalado."
#. type: =item
-#: dh_bugfiles:35
+#: dh_bugfiles:38
msgid "debian/I<package>.bug-control"
msgstr "debian/I<paquete>.bug-control"
#. type: textblock
-#: dh_bugfiles:37
+#: dh_bugfiles:40
msgid ""
"It is the bug control file containing some directions for the bug reporting "
"tool. This file is installed as F<usr/share/bug/package/control> in the "
@@ -3056,12 +5711,12 @@ msgstr ""
"bug/package/control> en el directorio de construcción del paquete."
#. type: =item
-#: dh_bugfiles:41
+#: dh_bugfiles:44
msgid "debian/I<package>.bug-presubj"
msgstr "debian/I<paquete>.bug-presubj"
#. type: textblock
-#: dh_bugfiles:43
+#: dh_bugfiles:46
msgid ""
"The contents of this file are displayed to the user by the bug reporting "
"tool before allowing the user to write a bug report on the package to the "
@@ -3075,7 +5730,7 @@ msgstr ""
"paquete."
#. type: textblock
-#: dh_bugfiles:56
+#: dh_bugfiles:59
msgid ""
"Install F<debian/bug-*> files to ALL packages acted on when respective "
"F<debian/package.bug-*> files do not exist. Normally, F<debian/bug-*> will "
@@ -3087,30 +5742,34 @@ msgstr ""
# type: =item
#. type: textblock
-#: dh_bugfiles:126
+#: dh_bugfiles:135
msgid "F</usr/share/doc/reportbug/README.developers.gz>"
msgstr "F</usr/share/doc/reportbug/README.developers.gz>"
# type: textblock
#. type: textblock
-#: dh_bugfiles:128 dh_lintian:61
+#: dh_bugfiles:137 dh_lintian:62
msgid "L<debhelper(1)>"
msgstr "L<debhelper(1)>"
#. type: textblock
-#: dh_bugfiles:134
+#: dh_bugfiles:143
msgid "Modestas Vainius <modestas@vainius.eu>"
msgstr "Modestas Vainius <modestas@vainius.eu>"
# type: textblock
#. type: textblock
-#: dh_builddeb:5
+#: dh_builddeb:7
msgid "dh_builddeb - build Debian binary packages"
msgstr "dh_builddeb - Construye paquetes binarios de Debian"
# type: textblock
#. type: textblock
-#: dh_builddeb:14
+#: 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>>]"
@@ -3120,16 +5779,21 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_builddeb:18
+#: dh_builddeb:23
+#, fuzzy
+#| msgid ""
+#| "B<dh_builddeb> simply calls L<dpkg-deb(1)> to build a Debian package or "
+#| "packages."
msgid ""
"B<dh_builddeb> simply calls L<dpkg-deb(1)> to build a Debian package or "
-"packages."
+"packages. It will also build dbgsym packages when L<dh_strip(1)> and "
+"L<dh_gencontrol(1)> have prepared them."
msgstr ""
"B<dh_builddeb> simplemente invoca L<dpkg-deb(1)> para construir uno o varios "
"paquetes de Debian."
#. type: textblock
-#: dh_builddeb:21
+#: dh_builddeb:27
msgid ""
"It supports building multiple binary packages in parallel, when enabled by "
"DEB_BUILD_OPTIONS."
@@ -3137,10 +5801,17 @@ msgstr ""
"Permite la construcción simultánea de varios paquetes binarios, cuando se "
"activa mediante «DEB_BUILD_OPTIONS»."
-# type: textblock
#. type: textblock
#: dh_builddeb:30
msgid ""
+"When the I<Rules-Requires-Root> field is not (effectively) I<binary-"
+"targets>, B<dh_builddeb> will pass B<--root-owner-group> to L<dpkg-deb(1)>."
+msgstr ""
+
+# type: textblock
+#. type: textblock
+#: dh_builddeb:40
+msgid ""
"Use this if you want the generated F<.deb> files to be put in a directory "
"other than the default of \"F<..>\"."
msgstr ""
@@ -3149,13 +5820,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_builddeb:33
+#: dh_builddeb:43
msgid "B<--filename=>I<name>"
msgstr "B<--filename=>I<nombre>"
# type: textblock
#. type: textblock
-#: dh_builddeb:35
+#: dh_builddeb:45
msgid ""
"Use this if you want to force the generated .deb file to have a particular "
"file name. Does not work well if more than one .deb is generated!"
@@ -3165,19 +5836,19 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_builddeb:40
+#: dh_builddeb:50
msgid "Pass I<params> to L<dpkg-deb(1)> when it is used to build the package."
msgstr ""
"Introduce los I<parámetros> a L<dpkg-deb(1)> cuando se construye el paquete."
# type: =item
#. type: =item
-#: dh_builddeb:43
+#: dh_builddeb:53
msgid "B<-u>I<params>"
msgstr "B<-u>I<parámetros>"
#. type: textblock
-#: dh_builddeb:45
+#: dh_builddeb:55
msgid ""
"This is another way to pass I<params> to L<dpkg-deb(1)>. It is deprecated; "
"use B<--> instead."
@@ -3193,24 +5864,42 @@ msgstr "dh_clean - Limpia los directorios de construcción de paquete"
# type: textblock
#. type: textblock
-#: dh_clean:14
+#: dh_clean:17
+#, fuzzy
+#| msgid ""
+#| "B<dh_clean> [S<I<debhelper options>>] [B<-k>] [B<-d>] [B<-X>I<item>] "
+#| "[S<I<file> ...>]"
msgid ""
"B<dh_clean> [S<I<debhelper options>>] [B<-k>] [B<-d>] [B<-X>I<item>] "
-"[S<I<file> ...>]"
+"[S<I<path> ...>]"
msgstr ""
"B<dh_clean> [S<I<debhelper opciones>>] [B<-k>] [B<-d>] [B<-X>I<elemento>] "
"[S<I<fichero> ...>]"
+#. type: textblock
+#: dh_clean:21
+msgid ""
+"B<dh_clean> is a debhelper program that is responsible for cleaning up. It "
+"should be the last step of the B<clean> target and other debhelper commands "
+"generally assume that B<dh_clean> will clean up after them."
+msgstr ""
+
# type: verbatim
#. type: verbatim
-#: dh_clean:18
-#, no-wrap
-msgid ""
-"B<dh_clean> is a debhelper program that is responsible for cleaning up after a\n"
-"package is built. It removes the package build directories, and removes some\n"
-"other files including F<debian/files>, and any detritus left behind by other\n"
-"debhelper commands. It also removes common files that should not appear in a\n"
-"Debian diff:\n"
+#: dh_clean:25
+#, fuzzy, no-wrap
+#| msgid ""
+#| "B<dh_clean> is a debhelper program that is responsible for cleaning up after a\n"
+#| "package is built. It removes the package build directories, and removes some\n"
+#| "other files including F<debian/files>, and any detritus left behind by other\n"
+#| "debhelper commands. It also removes common files that should not appear in a\n"
+#| "Debian diff:\n"
+#| " #*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp\n"
+#| "\n"
+msgid ""
+"It removes the package build directories, and removes some other files including\n"
+"F<debian/files>, and any detritus left behind by other debhelper commands. It\n"
+"also removes common files that should not appear in a Debian diff:\n"
" #*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp\n"
"\n"
msgstr ""
@@ -3224,7 +5913,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh_clean:25
+#: dh_clean:30
msgid ""
"It does not run \"make clean\" to clean up after the build process. Use "
"L<dh_auto_clean(1)> to do things like that."
@@ -3232,52 +5921,61 @@ msgstr ""
"No ejecuta «make clean» para limpiar después del proceso de construcción. "
"Para ello use L<dh_auto_clean(1)>."
-# type: textblock
-#. type: textblock
-#: dh_clean:28
-#, fuzzy
-#| msgid ""
-#| "B<dh_clean> (or \"B<dh clean>\") should be the last debhelper command run "
-#| "in the B<clean> target in F<debian/rules>."
-msgid ""
-"B<dh_clean> should be the last debhelper command run in the B<clean> target "
-"in F<debian/rules>."
-msgstr ""
-"B<dh_clean> (o B<dh clean>) debería ser la última orden de debhelper a "
-"ejecutar en el objetivo B<clean> en F<debian/rules>."
-
#. type: =item
-#: dh_clean:35
+#: dh_clean:37
msgid "F<debian/clean>"
msgstr "F<debian/clean>"
# type: textblock
#. type: textblock
-#: dh_clean:37
-msgid "Can list other files to be removed."
+#: dh_clean:39
+#, fuzzy
+#| msgid "Can list other files to be removed."
+msgid "Can list other paths to be removed."
msgstr "Puede listar otros ficheros que desea eliminar."
+#. type: textblock
+#: dh_clean:41
+msgid ""
+"Note that directories listed in this file B<must> end with a trailing "
+"slash. Any content in these directories will be removed as well."
+msgstr ""
+
+#. type: textblock
+#: dh_clean:44 dh_install:59 dh_installcatalogs:51 dh_installdeb:102
+#: dh_installdirs:40 dh_installdocs:48 dh_installexamples:43 dh_installinfo:36
+#: dh_installman:81 dh_installwm:36 dh_link:64
+msgid ""
+"Supports substitution variables in compat 13 and later as documented in "
+"L<debhelper(7)>."
+msgstr ""
+
# type: =item
#. type: =item
-#: dh_clean:45 dh_installchangelogs:63
+#: dh_clean:53 dh_installchangelogs:81
msgid "B<-k>, B<--keep>"
msgstr "B<-k>, B<--keep>"
# type: textblock
#. type: textblock
-#: dh_clean:47
+#: dh_clean:55
msgid "This is deprecated, use L<dh_prep(1)> instead."
msgstr "Está obsoleta, use L<dh_prep(1)> en su lugar."
+#. type: textblock
+#: dh_clean:57
+msgid "The option is removed in compat 12."
+msgstr ""
+
# type: =item
#. type: =item
-#: dh_clean:49
+#: dh_clean:59
msgid "B<-d>, B<--dirs-only>"
msgstr "B<-d>, B<--dirs-only>"
# type: textblock
#. type: textblock
-#: dh_clean:51
+#: dh_clean:61
msgid ""
"Only clean the package build directories, do not clean up any other files at "
"all."
@@ -3287,13 +5985,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_clean:54 dh_prep:30
+#: dh_clean:64 dh_prep:33
msgid "B<-X>I<item> B<--exclude=>I<item>"
msgstr "B<-X>I<elemento> B<--exclude=>I<elemento>"
# type: textblock
#. type: textblock
-#: dh_clean:56
+#: dh_clean:66
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"deleted, even if they would normally be deleted. You may use this option "
@@ -3305,17 +6003,27 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_clean:60 dh_compress:64 dh_installdocs:103 dh_installexamples:46
-#: dh_installinfo:40 dh_installmanpages:44 dh_movefiles:55 dh_testdir:27
-msgid "I<file> ..."
-msgstr "I<fichero> ..."
+#: dh_clean:70
+#, fuzzy
+#| msgid "I<manpage> ..."
+msgid "I<path> ..."
+msgstr "I<página-de-manual> ..."
# type: textblock
#. type: textblock
-#: dh_clean:62
-msgid "Delete these I<file>s too."
+#: dh_clean:72
+#, fuzzy
+#| msgid "Delete these I<file>s too."
+msgid "Delete these I<path>s too."
msgstr "Borra también estos I<ficheros>."
+#. type: textblock
+#: dh_clean:74
+msgid ""
+"Note that directories passed as arguments B<must> end with a trailing "
+"slash. Any content in these directories will be removed as well."
+msgstr ""
+
# type: textblock
#. type: textblock
#: dh_compress:5
@@ -3327,7 +6035,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_compress:15
+#: dh_compress:19
msgid ""
"B<dh_compress> [S<I<debhelper options>>] [B<-X>I<item>] [B<-A>] "
"[S<I<file> ...>]"
@@ -3337,7 +6045,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_compress:19
+#: dh_compress:23
msgid ""
"B<dh_compress> is a debhelper program that is responsible for compressing "
"the files in package build directories, and makes sure that any symlinks "
@@ -3351,7 +6059,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_compress:24
+#: dh_compress:28
msgid ""
"By default, B<dh_compress> compresses files that Debian policy mandates "
"should be compressed, namely all files in F<usr/share/info>, F<usr/share/"
@@ -3369,19 +6077,19 @@ msgstr ""
"share/fonts/X11/>."
#. type: =item
-#: dh_compress:35
+#: dh_compress:39
msgid "debian/I<package>.compress"
msgstr "debian/I<paquete>.compress"
# type: textblock
#. type: textblock
-#: dh_compress:37
+#: dh_compress:41
msgid "These files are deprecated."
msgstr "Estos ficheros están obsoletos."
# type: textblock
#. type: textblock
-#: dh_compress:39
+#: dh_compress:43
msgid ""
"If this file exists, the default files are not compressed. Instead, the file "
"is ran as a shell script, and all filenames that the shell script outputs "
@@ -3400,7 +6108,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_compress:54
+#: dh_compress:58
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"compressed. For example, B<-X.tiff> will exclude TIFF files from "
@@ -3413,7 +6121,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_compress:61
+#: dh_compress:65
msgid ""
"Compress all files specified by command line parameters in ALL packages "
"acted on."
@@ -3421,66 +6129,147 @@ msgstr ""
"Comprime todos los ficheros especificados en los parámetros de la línea de "
"órdenes en TODOS los paquetes sobre los que se actúa."
+# type: =item
+#. type: =item
+#: dh_compress:68 dh_installdocs:184 dh_installexamples:89 dh_installinfo:60
+#: dh_installmanpages:47 dh_movefiles:58 dh_testdir:30
+msgid "I<file> ..."
+msgstr "I<fichero> ..."
+
# type: textblock
#. type: textblock
-#: dh_compress:66
+#: dh_compress:70
msgid "Add these files to the list of files to compress."
msgstr "Añade estos ficheros a la lista de ficheros a comprimir."
# type: =head1
#. type: =head1
-#: dh_compress:70 dh_perl:61 dh_strip:74 dh_usrlocal:55
+#: dh_compress:74 dh_perl:65 dh_strip:133 dh_usrlocal:66
msgid "CONFORMS TO"
msgstr "CONFORME A"
# type: textblock
#. type: textblock
-#: dh_compress:72
+#: dh_compress:76
msgid "Debian policy, version 3.0"
msgstr "Normas de Debian, versión 3.0"
#. type: textblock
-#: dh_desktop:5
-msgid "dh_desktop - deprecated no-op"
-msgstr "dh_desktop - Orden obsoleta sin efecto"
+#: dh_dwz:5
+msgid "dh_dwz - optimize DWARF debug information in ELF binaries via dwz"
+msgstr ""
# type: textblock
#. type: textblock
-#: dh_desktop:14
-msgid "B<dh_desktop> [S<I<debhelper options>>]"
-msgstr "B<dh_desktop> [S<I<opciones-de-debhelper>>]"
+#: dh_dwz:18
+#, fuzzy
+#| msgid ""
+#| "B<dh_installdebconf> [S<I<debhelper options>>] [B<-n>] [S<B<--> "
+#| "I<params>>]"
+msgid "B<dh_dwz> [S<I<debhelper options>>] [B<-X>I<item>] [S<B<--> I<params>>]"
+msgstr ""
+"B<dh_installdebconf> [S<I<opciones-de-debhelper>>] [B<-n>] [S<B<--> "
+"I<parámetros>>]"
+
+#. type: textblock
+#: dh_dwz:22
+msgid ""
+"B<dh_dwz> is a debhelper program that will optimize the (uncompressed) size "
+"of the DWARF debug information in ELF binaries. It does so by running "
+"L<dwz(1)> on all the ELF binaries in the package."
+msgstr ""
+
+#. type: =item
+#: dh_dwz:30
+msgid "B<--dwz-multifile>, B<--no-dwz-multifile>"
+msgstr ""
+
+#. type: textblock
+#: dh_dwz:32
+msgid ""
+"Whether L<dwz(1)> should generate a I<multifile> from the ELF binaries 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."
+msgstr ""
#. type: textblock
-#: dh_desktop:18
+#: dh_dwz:37
msgid ""
-"B<dh_desktop> was a debhelper program that registers F<.desktop> files. "
-"However, it no longer does anything, and is now deprecated."
+"By default, B<dh_dwz> will attempt to create a multifile but will continue "
+"without if L<dwz(1)> does not 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 ""
-"B<dh_desktop> es un programa de debhelper que registra ficheros F<.desktop>. "
-"Sin embargo, ya no hace nada y ha quedado obsoleto."
#. type: textblock
-#: dh_desktop:21
+#: dh_dwz:45
msgid ""
-"If a package ships F<desktop> files, they just need to be installed in the "
-"correct location (F</usr/share/applications>) and they will be registered by "
-"the appropriate tools for the corresponding desktop environments."
+"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: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 ""
-"Si un paquete proporciona ficheros F<desktop>, sólo se tienen que instalar "
-"en la ubicación correcta (F</usr/share/applications>), y se registrarán "
-"mediante las herramientas apropiadas a cada entorno de escritorio."
# type: textblock
#. type: textblock
-#: dh_desktop:33 dh_icons:73 dh_scrollkeeper:30
-msgid "L<debhelper>"
-msgstr "L<debhelper>"
+#: 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 "
+"things to exclude."
+msgstr ""
+"No elimina los ficheros que contienen I<elemento> en cualquier lugar de su "
+"nombres. Puede utilizar esta opción muchas veces para construir una lista de "
+"cosas a excluir."
+
+#. type: textblock
+#: 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
#. type: textblock
-#: dh_desktop:39 dh_scrollkeeper:36
-msgid "Ross Burton <ross@burtonini.com>"
-msgstr "Ross Burton <ross@burtonini.com>"
+#: dh_dwz:71
+#, fuzzy
+#| msgid ""
+#| "If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
+#| "nothing will be stripped, in accordance with Debian policy (section 10.1 "
+#| "\"Binaries\")."
+msgid ""
+"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
+"nothing will be stripped, in accordance with Debian policy (section 10.1 "
+"\"Binaries\")."
+msgstr ""
+"Si la variable de entorno B<DEB_BUILD_OPTIONS> contiene B<nostrip>, no se "
+"eliminará nada, conforme a las normas de Debian (sección 10.1 «Binarios»)."
+
+#. type: textblock
+#: 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 "
+"contains B<nostrip>. This is because B<nostrip> is often used to optimize "
+"build times (e.g. for \"build and test\"-cycles) rather than optimizing for "
+"size."
+msgstr ""
# type: textblock
#. type: textblock
@@ -3492,13 +6281,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_fixperms:15
+#: dh_fixperms:18
msgid "B<dh_fixperms> [S<I<debhelper options>>] [B<-X>I<item>]"
msgstr "B<dh_fixperms> [S<I<opciones-de-debhelper>>] [B<-X>I<elemento>]"
# type: textblock
#. type: textblock
-#: dh_fixperms:19
+#: dh_fixperms:22
msgid ""
"B<dh_fixperms> is a debhelper program that is responsible for setting the "
"permissions of files and directories in package build directories to a sane "
@@ -3510,17 +6299,27 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_fixperms:23
+#: dh_fixperms:26
+#, fuzzy
+#| msgid ""
+#| "B<dh_fixperms> makes all files in F<usr/share/doc> in the package build "
+#| "directory (excluding files in the F<examples/> directory) be mode 644. It "
+#| "also changes the permissions of all man pages to mode 644. It makes all "
+#| "files be owned by root, and it removes group and other write permission "
+#| "from all files. It removes execute permissions from any libraries, "
+#| "headers, Perl modules, or desktop files that have it set. It makes all "
+#| "files in the standard F<bin> and F<sbin> directories, F<usr/games/> and "
+#| "F<etc/init.d> executable (since v4). Finally, it removes the setuid and "
+#| "setgid bits from all files in the package."
msgid ""
"B<dh_fixperms> makes all files in F<usr/share/doc> in the package build "
"directory (excluding files in the F<examples/> directory) be mode 644. It "
-"also changes the permissions of all man pages to mode 644. It makes all "
-"files be owned by root, and it removes group and other write permission from "
-"all files. It removes execute permissions from any libraries, headers, Perl "
-"modules, or desktop files that have it set. It makes all files in the "
-"standard F<bin> and F<sbin> directories, F<usr/games/> and F<etc/init.d> "
-"executable (since v4). Finally, it removes the setuid and setgid bits from "
-"all files in the package."
+"also changes the permissions of all man pages to mode 644. It removes group "
+"and other write permission from all files. It removes execute permissions "
+"from any libraries, headers, Perl modules, or desktop files that have it "
+"set. It makes all files in the standard F<bin> and F<sbin> directories, "
+"F<usr/games/> and F<etc/init.d> executable (since v4). Finally, it removes "
+"the setuid and setgid bits from all files in the package."
msgstr ""
"B<dh_fixperms> hace que el modo de todos los ficheros en F<usr/share/doc> en "
"el directorio de construcción del paquete (excluyendo los ficheros en el "
@@ -3533,15 +6332,23 @@ msgstr ""
"F<sbin/>, F</usr/games/> y F<etc/init.d> (a partir de v4). Finalmente, "
"elimina los bit setuid y setgid de todos los ficheros en el paquete."
+#. type: textblock
+#: dh_fixperms:36
+msgid ""
+"When the I<Rules-Requires-Root> field has the (effective) value of I<binary-"
+"targets>, B<dh_fixperms> will also reset the ownership of all paths to "
+"\"root:root\"."
+msgstr ""
+
# type: =item
#. type: =item
-#: dh_fixperms:36
+#: dh_fixperms:44
msgid "B<-X>I<item>, B<--exclude> I<item>"
msgstr "B<-X>I<elemento>, B<--exclude> I<elemento>"
# type: textblock
#. type: textblock
-#: dh_fixperms:38
+#: dh_fixperms:46
msgid ""
"Exclude files that contain I<item> anywhere in their filename from having "
"their permissions changed. You may use this option multiple times to build "
@@ -3553,109 +6360,20 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_gconf:5
-msgid "dh_gconf - install GConf defaults files and register schemas"
-msgstr ""
-"dh_gconf - Instala ficheros de valores predeterminados de GConf y registra "
-"esquemas"
-
-# type: textblock
-#. type: textblock
-#: dh_gconf:14
-msgid "B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>]"
-msgstr "B<dh_gconf> [S<I<opciones-de-debhelper>>] [B<--priority=>I<número>]"
-
-# type: textblock
-#. type: textblock
-#: dh_gconf:18
-msgid ""
-"B<dh_gconf> is a debhelper program that is responsible for installing GConf "
-"defaults files and registering GConf schemas."
-msgstr ""
-"B<dh_gconf> es un programa de debhelper responsable de la instalación de "
-"ficheros de valores predeterminados de GConf («defaults») y de registrar "
-"esquemas de GConf."
-
-#. type: textblock
-#: dh_gconf:21
-msgid ""
-"An appropriate dependency on gconf2 will be generated in B<${misc:Depends}>."
-msgstr ""
-"Se generará una dependencia apropiada sobre gconf2 en B<${misc:Depends}>."
-
-#. type: =item
-#: dh_gconf:27
-msgid "debian/I<package>.gconf-defaults"
-msgstr "debian/I<paquete>.gconf-defaults"
-
-# type: textblock
-#. type: textblock
-#: dh_gconf:29
-msgid ""
-"Installed into F<usr/share/gconf/defaults/10_package> in the package build "
-"directory, with I<package> replaced by the package name."
-msgstr ""
-"Se instala en F<usr/share/gconf/defaults/10_paquete> en el directorio de "
-"construcción del paquete, reemplazando I<paquete> por el nombre del paquete."
-
-#. type: =item
-#: dh_gconf:32
-msgid "debian/I<package>.gconf-mandatory"
-msgstr "debian/I<paquete>.gconf-mandatory"
-
-# type: textblock
-#. type: textblock
-#: dh_gconf:34
-msgid ""
-"Installed into F<usr/share/gconf/mandatory/10_package> in the package build "
-"directory, with I<package> replaced by the package name."
-msgstr ""
-"Se instala en F<usr/share/gconf/mandatory/10_paquete> en el directorio de "
-"construcción del paquete, reemplazando I<paquete> por el nombre del paquete."
-
-# type: =item
-#. type: =item
-#: dh_gconf:43
-msgid "B<--priority> I<priority>"
-msgstr "B<--priority> I<prioridad>"
-
-# type: textblock
-#. type: textblock
-#: dh_gconf:45
-msgid ""
-"Use I<priority> (which should be a 2-digit number) as the defaults priority "
-"instead of B<10>. Higher values than ten can be used by derived "
-"distributions (B<20>), CDD distributions (B<50>), or site-specific packages "
-"(B<90>)."
-msgstr ""
-"Utiliza I<prioridad> (que debería ser un número de dos dígitos) como la "
-"prioridad predeterminada, en lugar de 10. Otros pueden utilizar valores "
-"superiores a B<10>, como las distribuciones derivadas (B<20>), "
-"distribuciones de Debian personalizadas CDD (B<50>) y paquetes de sitios web "
-"específicos (B<90>)."
-
-# type: textblock
-#. type: textblock
-#: dh_gconf:109
-msgid "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
-msgstr "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
-
-# type: textblock
-#. type: textblock
#: dh_gencontrol:5
msgid "dh_gencontrol - generate and install control file"
msgstr "dh_gencontrol - Genera e instala el fichero de control"
# type: textblock
#. type: textblock
-#: dh_gencontrol:14
+#: dh_gencontrol:18
msgid "B<dh_gencontrol> [S<I<debhelper options>>] [S<B<--> I<params>>]"
msgstr ""
"B<dh_gencontrol> [S<I<opciones-de-debhelper>>] [S<B<--> I<parámetros>>]"
# type: textblock
#. type: textblock
-#: dh_gencontrol:18
+#: dh_gencontrol:22
msgid ""
"B<dh_gencontrol> is a debhelper program that is responsible for generating "
"control files, and installing them into the I<DEBIAN> directory with the "
@@ -3666,30 +6384,46 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_gencontrol:22
+#: dh_gencontrol:26
+#, fuzzy
+#| msgid ""
+#| "This program is merely a wrapper around L<dpkg-gencontrol(1)>, which "
+#| "calls it once for each package being acted on, and passes in some "
+#| "additional useful flags."
msgid ""
"This program is merely a wrapper around L<dpkg-gencontrol(1)>, which calls "
-"it once for each package being acted on, and passes in some additional "
-"useful flags."
+"it once for each package being acted on (plus related dbgsym packages), and "
+"passes in some additional useful flags."
msgstr ""
"El programa es simplemente una interfaz para L<dpkg-gencontrol(1)>, al que "
"invoca una vez por cada paquete sobre el que actúa, introduciendo algunas "
"opciones adicionales útiles."
+#. type: textblock
+#: dh_gencontrol:30
+msgid ""
+"B<Note> that if you use B<dh_gencontrol>, you must also use "
+"L<dh_builddeb(1)> to build the packages. Otherwise, your build may fail to "
+"build as B<dh_gencontrol> (via L<dpkg-gencontrol(1)>) declares which "
+"packages are built. As debhelper automatically generates dbgsym packages, "
+"it some times adds additional packages, which will be built by "
+"L<dh_builddeb(1)>."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_gencontrol:32
+#: dh_gencontrol:44
msgid "Pass I<params> to L<dpkg-gencontrol(1)>."
msgstr "Introduce los I<parámetros> a L<dpkg-gencontrol(1)>."
# type: =item
#. type: =item
-#: dh_gencontrol:34
+#: dh_gencontrol:46
msgid "B<-u>I<params>, B<--dpkg-gencontrol-params=>I<params>"
msgstr "B<-u>I<parámetros>, B<--dpkg-gencontrol-params=>I<parámetros>"
#. type: textblock
-#: dh_gencontrol:36
+#: dh_gencontrol:48
msgid ""
"This is another way to pass I<params> to L<dpkg-gencontrol(1)>. It is "
"deprecated; use B<--> instead."
@@ -3706,20 +6440,20 @@ msgstr "dh_icons - Actualiza el almacén de iconos de Freedesktop"
# type: textblock
#. type: textblock
-#: dh_icons:15
+#: dh_icons:18
msgid "B<dh_icons> [S<I<debhelper options>>] [B<-n>]"
msgstr "B<dh_icons> [S<I<opciones-de-debhelper>>] [B<-n>]"
# type: textblock
#. type: textblock
-#: dh_icons:19
+#: dh_icons:22
#, fuzzy
#| msgid ""
#| "B<dh_icons> is a debhelper program that updates Freedesktop icon caches "
-#| "when needed, using the B<update-icon-caches> program provided by GTK"
-#| "+2.12. Currently this program does not handle installation of the files, "
-#| "though it may do so at a later date. It takes care of adding maintainer "
-#| "script fragments to call B<update-icon-caches>."
+#| "when needed, using the B<update-icon-caches> program provided by "
+#| "GTK+2.12. Currently this program does not handle installation of the "
+#| "files, though it may do so at a later date. It takes care of adding "
+#| "maintainer script fragments to call B<update-icon-caches>."
msgid ""
"B<dh_icons> is a debhelper program that updates caches of Freedesktop icons "
"when needed, using the B<update-icon-caches> program provided by GTK+2.12. "
@@ -3736,7 +6470,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_icons:25
+#: dh_icons:28
#, fuzzy
#| msgid ""
#| "It also automatically generates the F<postinst> and F<postrm> commands "
@@ -3755,21 +6489,27 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_icons:34 dh_installcatalogs:53 dh_installdebconf:65 dh_installemacsen:57
-#: dh_installinit:63 dh_installmenu:45 dh_installmodules:42 dh_installudev:49
-#: dh_installwm:44 dh_makeshlibs:77 dh_usrlocal:43
-msgid "B<-n>, B<--noscripts>"
-msgstr "B<-n>, B<--noscripts>"
+#: dh_icons:37 dh_installcatalogs:60 dh_installdebconf:68 dh_installemacsen:60
+#: dh_installinit:81 dh_installinitramfs:47 dh_installmenu:48
+#: dh_installmodules:45 dh_installwm:51 dh_makeshlibs:147 dh_usrlocal:54
+msgid "B<-n>, B<--no-scripts>"
+msgstr "B<-n>, B<--no-scripts>"
# type: textblock
#. type: textblock
-#: dh_icons:36
+#: dh_icons:39
msgid "Do not modify maintainer scripts."
msgstr "No modifica los scripts del desarrollador."
# type: textblock
#. type: textblock
-#: dh_icons:79
+#: dh_icons:77
+msgid "L<debhelper>"
+msgstr "L<debhelper>"
+
+# type: textblock
+#. type: textblock
+#: dh_icons:83
msgid ""
"Ross Burton <ross@burtonini.com> Jordi Mallach <jordi@debian.org> Josselin "
"Mouette <joss@debian.org>"
@@ -3786,7 +6526,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_install:15
+#: dh_install:17
msgid ""
"B<dh_install> [B<-X>I<item>] [B<--autodest>] [B<--sourcedir=>I<dir>] "
"[S<I<debhelper options>>] [S<I<file|dir> ... I<destdir>>]"
@@ -3797,7 +6537,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_install:19
+#: dh_install:21
msgid ""
"B<dh_install> is a debhelper program that handles installing files into "
"package build directories. There are many B<dh_install>I<*> commands that "
@@ -3818,7 +6558,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_install:27
+#: dh_install:29
msgid ""
"This program may be used in one of two ways. If you just have a file or two "
"that the upstream Makefile does not install for you, you can run "
@@ -3838,7 +6578,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_install:34
+#: dh_install:36
#, fuzzy
#| msgid ""
#| "From debhelper compatibility level 7 on, B<dh_install> will fall back to "
@@ -3847,7 +6587,7 @@ msgstr ""
#| "sourcedir>)."
msgid ""
"From debhelper compatibility level 7 on, B<dh_install> will fall back to "
-"looking in F<debian/tmp> for files, if it doesn't find them in the current "
+"looking in F<debian/tmp> for files, if it does not find them in the current "
"directory (or wherever you've told it to look using B<--sourcedir>)."
msgstr ""
"A partir del nivel 7 de compatibilidad de debhelper en adelante, "
@@ -3856,13 +6596,23 @@ msgstr ""
"utilizando B<--sourcedir>)."
#. type: =item
-#: dh_install:42
+#: dh_install:44
msgid "debian/I<package>.install"
msgstr "debian/I<paquete>.install"
# type: textblock
#. type: textblock
-#: dh_install:44
+#: dh_install:46
+#, fuzzy
+#| msgid ""
+#| "List the files to install into each package and the directory they should "
+#| "be installed to. The format is a set of lines, where each line lists a "
+#| "file or files to install, and at the end of the line tells the directory "
+#| "it should be installed in. The name of the files (or directories) to "
+#| "install should be given relative to the current directory, while the "
+#| "installation directory is given relative to the package build directory. "
+#| "You may use wildcards in the names of the files to install (in v3 mode "
+#| "and above)."
msgid ""
"List the files to install into each package and the directory they should be "
"installed to. The format is a set of lines, where each line lists a file or "
@@ -3870,7 +6620,7 @@ msgid ""
"be installed in. The name of the files (or directories) to install should be "
"given relative to the current directory, while the installation directory is "
"given relative to the package build directory. You may use wildcards in the "
-"names of the files to install (in v3 mode and above)."
+"names of the files to install."
msgstr ""
"Los ficheros «debian/paquete.install» listan los ficheros a instalar en cada "
"paquete y el directorio donde se deben instalar. El formato es un conjunto "
@@ -3883,7 +6633,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_install:52
+#: dh_install:54
msgid ""
"Note that if you list exactly one filename or wildcard-pattern on a line by "
"itself, with no explicit destination, then B<dh_install> will automatically "
@@ -3894,87 +6644,64 @@ msgstr ""
"averiguará automáticamente el destino, al igual que si se utiliza la opción "
"«--autodest»."
-# type: =item
#. type: =item
-#: dh_install:63
-msgid "B<--list-missing>"
-msgstr "B<--list-missing>"
+#: dh_install:62
+#, fuzzy
+#| msgid "debian/I<package>.install"
+msgid "debian/not-installed"
+msgstr "debian/I<paquete>.install"
-# type: textblock
#. type: textblock
-#: dh_install:65
+#: dh_install:64
msgid ""
-"This option makes B<dh_install> keep track of the files it installs, and "
-"then at the end, compare that list with the files in the source directory. "
-"If any of the files (and symlinks) in the source directory were not "
-"installed to somewhere, it will warn on stderr about that."
+"Used with the deprecated B<--list-missing> and B<--fail-missing> options. "
+"Please refer to L<dh_missing(1)> for the documentation of this file."
msgstr ""
-"Esta opción hace que B<dh_install> registre los ficheros que instala y, al "
-"final, compare esa lista con los ficheros en el directorio fuente. Si alguno "
-"de los ficheros (o enlaces simbólicos) en el directorio fuente no se "
-"instalaron en algún lugar, dará un aviso a través de la salida de error "
-"estándar."
-# type: textblock
-#. type: textblock
-#: dh_install:70
-msgid ""
-"This may be useful if you have a large package and want to make sure that "
-"you don't miss installing newly added files in new upstream releases."
-msgstr ""
-"Puede ser útil si tiene un paquete grande y quiere comprobar que no olvida "
-"instalar ningún fichero nuevo añadido en una nueva versión del programa."
+# type: =item
+#. type: =item
+#: dh_install:73
+msgid "B<--list-missing>"
+msgstr "B<--list-missing>"
-# type: textblock
#. type: textblock
-#: dh_install:73
+#: dh_install:75
msgid ""
-"Note that files that are excluded from being moved via the B<-X> option are "
-"not warned about."
+"B<Deprecated>: Please use B<dh_missing --list-missing> instead. If you use "
+"this option, B<dh_install> will call B<dh_missing> with that option after it "
+"has processed all the files. Please see L<dh_missing(1)> for the "
+"documentation of this option."
msgstr ""
-"Tenga en cuenta de que no avisa de los ficheros excluidos mediante la opción "
-"B<-X>."
# type: =item
#. type: =item
-#: dh_install:76
+#: dh_install:82
msgid "B<--fail-missing>"
msgstr "B<--fail-missing>"
-# type: textblock
#. type: textblock
-#: dh_install:78
+#: dh_install:84
msgid ""
-"This option is like B<--list-missing>, except if a file was missed, it will "
-"not only list the missing files, but also fail with a nonzero exit code."
+"B<Deprecated>: Please use B<dh_missing --fail-missing> instead. If you use "
+"this option, B<dh_install> will call B<dh_missing> with that option after it "
+"has processed all the files. Please see L<dh_missing(1)> for the "
+"documentation of this option."
msgstr ""
-"Esta opción es como B<--list-missing>, excepto que si olvida un fichero, no "
-"sólo se listarán los ficheros olvidados, sino que además se devolverá un "
-"código de salida distinto de cero."
-
-# type: textblock
-#. type: textblock
-#: dh_install:83 dh_installexamples:43
-msgid ""
-"Exclude files that contain I<item> anywhere in their filename from being "
-"installed."
-msgstr ""
-"No instala ficheros que contienen I<elemento> en cualquier parte de su "
-"nombre."
# type: =item
#. type: =item
-#: dh_install:86 dh_movefiles:42
+#: dh_install:91 dh_installdirs:62 dh_installdocs:114 dh_installexamples:57
+#: dh_installinfo:50 dh_installman:100 dh_movefiles:45
msgid "B<--sourcedir=>I<dir>"
msgstr "B<--sourcedir=>I<directorio>"
#. type: textblock
-#: dh_install:88
+#: dh_install:93
msgid "Look in the specified directory for files to be installed."
msgstr "Busca en el directorio especificado los ficheros a instalar."
#. type: textblock
-#: dh_install:90
+#: dh_install:95
msgid ""
"Note that this is not the same as the B<--sourcedirectory> option used by "
"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
@@ -3988,13 +6715,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_install:95
+#: dh_install:100
msgid "B<--autodest>"
msgstr "B<--autodest>"
# type: textblock
#. type: textblock
-#: dh_install:97
+#: dh_install:102
msgid ""
"Guess as the destination directory to install things to. If this is "
"specified, you should not list destination directories in F<debian/package."
@@ -4008,7 +6735,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_install:102
+#: dh_install:107
msgid ""
"Strip off F<debian/tmp> (or the sourcedir if one is given) from the front of "
"the filename, if it is present, and install into the dirname of the "
@@ -4025,13 +6752,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_install:108
+#: dh_install:113
msgid "I<file|dir> ... I<destdir>"
msgstr "I<fichero|destino> ... I<directorio-de-destino>"
# type: textblock
#. type: textblock
-#: dh_install:110
+#: dh_install:115
msgid ""
"Lists files (or directories) to install and where to install them to. The "
"files will be installed into the first package F<dh_install> acts on."
@@ -4040,27 +6767,116 @@ msgstr ""
"instalarán. Los ficheros se instalarán en el primer paquete sobre el que "
"actúe B<dh_install>."
+#. type: textblock
+#: dh_install:334
+msgid "Here are some small examples of configuration files for dh_install."
+msgstr ""
+
+#. type: verbatim
+#: dh_install:336
+#, no-wrap
+msgid ""
+" # Install my-prog into usr/bin (as \"usr/bin/my-prog\")\n"
+" my-prog usr/bin\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh_install:339
+#, no-wrap
+msgid ""
+" # Install a plugins directory into usr/share/my-prog\n"
+" # (as \"usr/share/my-prog/plugins/\")\n"
+" plugins usr/share/my-prog\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh_install:343
+#, no-wrap
+msgid ""
+" # Install a file with spaces in into usr/share/my-prog/data\n"
+" # (as \"usr/share/my-prog/data/my datafile with spaces.txt\")\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" my${Space}datafile${Space}with${Space}spaces.txt usr/share/my-prog/data\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh_install:348
+#, no-wrap
+msgid ""
+" # Install a library into the multi-arch lib directory\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" build/output/libfrop*.so.* usr/lib/${DEB_HOST_MULTIARCH}\n"
+"\n"
+msgstr ""
+
# type: =head1
#. type: =head1
-#: dh_install:254
+#: dh_install:352
msgid "LIMITATIONS"
msgstr "LIMITACIONES"
# type: verbatim
-#. type: verbatim
-#: dh_install:256
-#, no-wrap
+#. type: textblock
+#: dh_install:354
+#, fuzzy
+#| msgid ""
+#| "B<dh_install> cannot rename files or directories, it can only install "
+#| "them\n"
+#| "with the names they already have into wherever you want in the package\n"
+#| "build tree.\n"
+#| " \n"
msgid ""
-"B<dh_install> cannot rename files or directories, it can only install them\n"
-"with the names they already have into wherever you want in the package\n"
-"build tree.\n"
-" \n"
+"B<dh_install> cannot rename files or directories, it can only install them "
+"with the names they already have into wherever you want in the package build "
+"tree."
msgstr ""
"B<dh_install> no puede renombrar ficheros o directorios, sólo puede\n"
"instalarlos con los nombres que ya tengan en el lugar que desee en el árbol\n"
"de construcción del paquete.\n"
" \n"
+#. type: textblock
+#: dh_install:358
+msgid ""
+"However, renaming can be achieved by using B<dh-exec> with compatibility "
+"level 9 or later. An example debian/I<package>.install file using B<dh-"
+"exec> could look like:"
+msgstr ""
+
+#. type: verbatim
+#: dh_install:362
+#, no-wrap
+msgid ""
+" #!/usr/bin/dh-exec\n"
+" debian/default.conf => /etc/my-package/start.conf\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh_install:365
+msgid "Please remember the following three things:"
+msgstr ""
+
+#. type: =item
+#: dh_install:369
+msgid ""
+"* The package must be using compatibility level 9 or later (see "
+"L<debhelper(7)>)"
+msgstr ""
+
+#. type: =item
+#: dh_install:371
+msgid "* The package will need a build-dependency on dh-exec."
+msgstr ""
+
+#. type: =item
+#: dh_install:373
+msgid "* The install file must be marked as executable."
+msgstr ""
+
# type: textblock
#. type: textblock
#: dh_installcatalogs:5
@@ -4069,13 +6885,13 @@ msgstr "dh_installcatalogs - Instala y registra catálogos SGML"
# type: textblock
#. type: textblock
-#: dh_installcatalogs:16
+#: dh_installcatalogs:19
msgid "B<dh_installcatalogs> [S<I<debhelper options>>] [B<-n>]"
msgstr "B<dh_installcatalogs> [S<I<opciones-de-debhelper>>] [B<-n>]"
# type: textblock
#. type: textblock
-#: dh_installcatalogs:20
+#: dh_installcatalogs:23
msgid ""
"B<dh_installcatalogs> is a debhelper program that installs and registers "
"SGML catalogs. It complies with the Debian XML/SGML policy."
@@ -4086,7 +6902,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installcatalogs:23
+#: dh_installcatalogs:26
msgid ""
"Catalogs will be registered in a supercatalog, in F</etc/sgml/I<package>."
"cat>."
@@ -4096,13 +6912,20 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installcatalogs:26
+#: dh_installcatalogs:29
+#, fuzzy
+#| msgid ""
+#| "This command automatically adds maintainer script snippets for "
+#| "registering and unregistering the catalogs and supercatalogs (unless B<-"
+#| "n> is used). These snippets are inserted into the maintainer scripts by "
+#| "B<dh_installdeb>; see L<dh_installdeb(1)> for an explanation of Debhelper "
+#| "maintainer script snippets."
msgid ""
"This command automatically adds maintainer script snippets for registering "
"and unregistering the catalogs and supercatalogs (unless B<-n> is used). "
-"These snippets are inserted into the maintainer scripts by B<dh_installdeb>; "
-"see L<dh_installdeb(1)> for an explanation of Debhelper maintainer script "
-"snippets."
+"These snippets are inserted into the maintainer scripts and the B<triggers> "
+"file by B<dh_installdeb>; see L<dh_installdeb(1)> for an explanation of "
+"Debhelper maintainer script snippets."
msgstr ""
"Esta orden añade automáticamente la parte necesaria a los scripts del "
"desarrollador para registrar y borrar del registro los catálogos y los "
@@ -4113,7 +6936,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installcatalogs:32
+#: dh_installcatalogs:36
msgid ""
"A dependency on B<sgml-base> will be added to B<${misc:Depends}>, so be sure "
"your package uses that variable in F<debian/control>."
@@ -4122,13 +6945,13 @@ msgstr ""
"compruebe que el paquete utiliza tal variable en F<debian/control>."
#. type: =item
-#: dh_installcatalogs:39
+#: dh_installcatalogs:43
msgid "debian/I<package>.sgmlcatalogs"
msgstr "debian/I<paquete>.sgmlcatalogs"
# type: textblock
#. type: textblock
-#: dh_installcatalogs:41
+#: dh_installcatalogs:45
msgid ""
"Lists the catalogs to be installed per package. Each line in that file "
"should be of the form C<I<source> I<dest>>, where I<source> indicates where "
@@ -4144,15 +6967,18 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installcatalogs:55 dh_installinit:65
-msgid "Do not modify F<postinst>/F<postrm>/F<prerm> scripts."
+#: dh_installcatalogs:62
+#, fuzzy
+#| msgid "Do not modify F<postinst>/F<postrm>/F<prerm> scripts."
+msgid ""
+"Do not modify F<postinst>/F<postrm>/F<prerm> scripts nor add an activation "
+"trigger."
msgstr "No modifica los scripts F<postinst>/F<postrm>/F<prerm>."
# type: textblock
#. type: textblock
-#: dh_installcatalogs:61 dh_installdocs:127 dh_installemacsen:74
-#: dh_installinit:142 dh_installmodules:56 dh_installudev:57 dh_installwm:56
-#: dh_usrlocal:51
+#: dh_installcatalogs:69 dh_installemacsen:77 dh_installinit:206
+#: dh_installmodules:59 dh_installudev:52 dh_installwm:68 dh_usrlocal:62
msgid ""
"Note that this command is not idempotent. L<dh_prep(1)> should be called "
"between invocations of this command. Otherwise, it may cause multiple "
@@ -4164,13 +6990,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installcatalogs:126
+#: dh_installcatalogs:132
msgid "F</usr/share/doc/sgml-base-doc/>"
msgstr "F</usr/share/doc/sgml-base-doc/>"
# type: textblock
#. type: textblock
-#: dh_installcatalogs:130
+#: dh_installcatalogs:136
msgid "Adam Di Carlo <aph@debian.org>"
msgstr "Adam Di Carlo <aph@debian.org>"
@@ -4185,17 +7011,21 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installchangelogs:14
+#: dh_installchangelogs:18
+#, fuzzy
+#| msgid ""
+#| "B<dh_installchangelogs> [S<I<debhelper options>>] [B<-k>] [B<-X>I<item>] "
+#| "[I<upstream>]"
msgid ""
"B<dh_installchangelogs> [S<I<debhelper options>>] [B<-k>] [B<-X>I<item>] "
-"[I<upstream>]"
+"[B<--no-trim>] [I<upstream>]"
msgstr ""
"B<dh_installchangelogs> [S<I<opciones-de-debhelper>>] [B<-k>] [B<-"
"X>I<elemento>] [I<fuente-original-de-software>]"
# type: textblock
#. type: textblock
-#: dh_installchangelogs:18
+#: dh_installchangelogs:22
msgid ""
"B<dh_installchangelogs> is a debhelper program that is responsible for "
"installing changelogs into package build directories."
@@ -4205,65 +7035,95 @@ msgstr ""
"construcción del paquete."
#. type: textblock
-#: dh_installchangelogs:21
+#: dh_installchangelogs:25
+#, fuzzy
+#| msgid ""
+#| "An upstream F<changelog> file may be specified as an option. If none is "
+#| "specified, it looks for files with names that seem likely to be "
+#| "changelogs. (In compatibility level 7 and above.)"
msgid ""
"An upstream F<changelog> file may be specified as an option. If none is "
-"specified, it looks for files with names that seem likely to be changelogs. "
-"(In compatibility level 7 and above.)"
+"specified, B<dh_installchangelogs> may look for files with names that seem "
+"likely to be changelogs as described in the next paragraphs."
msgstr ""
"De forma opcional, puede definir un fichero F<changelog> de la fuente de "
"software original. Si no se define, busca ficheros con nombres que indican "
"la posibilidad de que sean ficheros de cambios (a partir del nivel 7 de "
"compatibilidad y superior)."
+#. type: textblock
+#: dh_installchangelogs:29
+msgid ""
+"In non-native packages, B<dh_installchangelogs> will first look for "
+"changelog files installed by the upstream build system into F<< usr/share/"
+"doc/I<package> >> (of the package build directory) and rename the most "
+"likely candidate (if any) to F<< usr/share/doc/I<package>/changelog >>. "
+"Note that B<dh_installchangelogs> does I<not> look into any source directory "
+"(such as F<debian/tmp>). Otherwise, B<dh_installchangelogs> (at "
+"compatibility level 7 or any later) will look for changelog files in the "
+"source directory (e.g. the root or the F<docs> subdirectory). It will look "
+"for F<changelog>, F<changes> and F<history> optionally with common "
+"extensions (such as F<.txt>, F<.md> and F<.rst>)."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_installchangelogs:25
+#: dh_installchangelogs:41
#, fuzzy
#| msgid ""
-#| "Automatically installed into usr/share/doc/I<package>/ in the package "
-#| "build directory."
-msgid ""
-"If there is an upstream F<changelog> file, it will be be installed as F<usr/"
-"share/doc/package/changelog> in the package build directory."
+#| "If there is an upstream F<changelog> file, it will be be installed as "
+#| "F<usr/share/doc/package/changelog> in the package build directory. If the "
+#| "changelog is a F<html> file (determined by file extension), it will be "
+#| "installed as F<usr/share/doc/package/changelog.html> instead, and will be "
+#| "converted to plain text with B<html2text> to generate F<usr/share/doc/"
+#| "package/changelog>."
+msgid ""
+"If a changelog file is specified and is an F<html> file (determined by file "
+"extension), it will be installed as F<usr/share/doc/package/changelog.html> "
+"instead. If the html changelog is converted to plain text, that variant can "
+"be specified as a second parameter. When no plain text variant is specified, "
+"a short F<usr/share/doc/package/changelog> is generated, pointing readers at "
+"the html changelog file."
msgstr ""
-"Automáticamente instalado en «usr/share/doc/I<package>/» en el directorio de "
-"construcción del paquete."
+"Si existe, el fichero F<changelog> del desarrollador original se instalará "
+"en F<usr/share/doc/paquete/changelog> en el directorio de construcción del "
+"paquete. Si el fichero de cambios es un fichero F<HTML> (determinado por la "
+"extensión), se instalará en F<usr/share/doc/package/changelog.html>, y será "
+"convertido a texto simple utilizando B<html2text> para generar F<usr/share/"
+"doc/paquete/changelog>."
#. type: textblock
-#: dh_installchangelogs:28
+#: dh_installchangelogs:48
msgid ""
-"If the upstream changelog is is a F<html> file (determined by file "
-"extension), it will be installed as F<usr/share/doc/package/changelog.html> "
-"instead. If the html changelog is converted to plain text, that variant can "
-"be specified as a second upstream changelog file. When no plain text variant "
-"is specified, a short F<usr/share/doc/package/changelog> is generated, "
-"pointing readers at the html changelog file."
+"The B<debchange>-style Debian changelogs are trimmed to include only entries "
+"more recent than the release date of I<oldstable>. No trimming will be "
+"performed if the B<--no-trim> option is passed or if the "
+"B<DEB_BUILD_OPTIONS> environment variable contains B<notrimdch>."
msgstr ""
#. type: =item
-#: dh_installchangelogs:39
+#: dh_installchangelogs:57
msgid "F<debian/changelog>"
msgstr "F<debian/changelog>"
#. type: =item
-#: dh_installchangelogs:41
+#: dh_installchangelogs:59
msgid "F<debian/NEWS>"
msgstr "F<debian/NEWS>"
#. type: =item
-#: dh_installchangelogs:43
+#: dh_installchangelogs:61
msgid "debian/I<package>.changelog"
msgstr "debian/I<paquete>.changelog"
#. type: =item
-#: dh_installchangelogs:45
+#: dh_installchangelogs:63
msgid "debian/I<package>.NEWS"
msgstr "debian/I<paquete>.NEWS"
# type: textblock
#. type: textblock
-#: dh_installchangelogs:47
+#: dh_installchangelogs:65
msgid ""
"Automatically installed into usr/share/doc/I<package>/ in the package build "
"directory."
@@ -4272,7 +7132,7 @@ msgstr ""
"construcción del paquete."
#. type: textblock
-#: dh_installchangelogs:50
+#: dh_installchangelogs:68
msgid ""
"Use the package specific name if I<package> needs a different F<NEWS> or "
"F<changelog> file."
@@ -4281,7 +7141,7 @@ msgstr ""
"F<changelog> o F<NEWS> diferente."
#. type: textblock
-#: dh_installchangelogs:53
+#: dh_installchangelogs:71
msgid ""
"The F<changelog> file is installed with a name of changelog for native "
"packages, and F<changelog.Debian> for non-native packages. The F<NEWS> file "
@@ -4293,7 +7153,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installchangelogs:65
+#: dh_installchangelogs:83
msgid ""
"Keep the original name of the upstream changelog. This will be accomplished "
"by installing the upstream changelog as F<changelog>, and making a symlink "
@@ -4310,7 +7170,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installchangelogs:73
+#: dh_installchangelogs:91
msgid ""
"Exclude upstream F<changelog> files that contain I<item> anywhere in their "
"filename from being installed."
@@ -4318,15 +7178,35 @@ msgstr ""
"No se instalarán los ficheros de registro de cambios del desarrollador "
"principal que contengan I<elemento> en alguna parte de su nombre."
+#. type: textblock
+#: dh_installchangelogs:94
+msgid "Note that directory name of the changelog is also part of the match."
+msgstr ""
+
# type: =item
#. type: =item
-#: dh_installchangelogs:76
+#: dh_installchangelogs:96
+#, fuzzy
+#| msgid "B<--no-start>"
+msgid "B<--no-trim>"
+msgstr "B<--no-start>"
+
+#. type: textblock
+#: dh_installchangelogs:98
+msgid ""
+"Install the full changelog, not its trimmed version that includes only "
+"recent entries."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: dh_installchangelogs:101
msgid "I<upstream>"
msgstr "I<upstream>"
# type: textblock
#. type: textblock
-#: dh_installchangelogs:78
+#: dh_installchangelogs:103
msgid "Install this file as the upstream changelog."
msgstr ""
"Instala este fichero como el fichero de cambios del desarrollador principal."
@@ -4339,13 +7219,13 @@ msgstr "dh_installcron - Instala scripts para cron en etc/cron.*"
# type: textblock
#. type: textblock
-#: dh_installcron:14
+#: dh_installcron:17
msgid "B<dh_installcron> [S<B<debhelper options>>] [B<--name=>I<name>]"
msgstr "B<dh_installcron> [S<B<opciones-de-debhelper>>] [B<--name=>I<nombre>]"
# type: textblock
#. type: textblock
-#: dh_installcron:18
+#: dh_installcron:21
msgid ""
"B<dh_installcron> is a debhelper program that is responsible for installing "
"cron scripts."
@@ -4354,33 +7234,40 @@ msgstr ""
"scripts para cron."
#. type: =item
-#: dh_installcron:25
+#: dh_installcron:28
msgid "debian/I<package>.cron.daily"
msgstr "debian/I<paquete>.cron.daily"
#. type: =item
-#: dh_installcron:27
+#: dh_installcron:30
msgid "debian/I<package>.cron.weekly"
msgstr "debian/I<paquete>.cron.weekly"
#. type: =item
-#: dh_installcron:29
+#: dh_installcron:32
msgid "debian/I<package>.cron.monthly"
msgstr "debian/I<paquete>.cron.monthly"
#. type: =item
-#: dh_installcron:31
+#: dh_installcron:34
+#, fuzzy
+#| msgid "debian/I<package>.cron.daily"
+msgid "debian/I<package>.cron.yearly"
+msgstr "debian/I<paquete>.cron.daily"
+
+#. type: =item
+#: dh_installcron:36
msgid "debian/I<package>.cron.hourly"
msgstr "debian/I<paquete>.cron.hourly"
#. type: =item
-#: dh_installcron:33
+#: dh_installcron:38
msgid "debian/I<package>.cron.d"
msgstr "debian/I<paquete>.cron.d"
# type: textblock
#. type: textblock
-#: dh_installcron:35
+#: dh_installcron:40
msgid ""
"Installed into the appropriate F<etc/cron.*/> directory in the package build "
"directory."
@@ -4390,15 +7277,15 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installcron:44 dh_installifupdown:43 dh_installinit:110
-#: dh_installlogcheck:46 dh_installlogrotate:26 dh_installmodules:46
-#: dh_installpam:35 dh_installppp:39 dh_installudev:39
+#: dh_installcron:49 dh_installifupdown:46 dh_installinit:174
+#: dh_installlogcheck:49 dh_installlogrotate:29 dh_installmodules:49
+#: dh_installpam:42 dh_installppp:42 dh_installudev:38 dh_systemd_enable:94
msgid "B<--name=>I<name>"
msgstr "B<--name=>I<nombre>"
# type: textblock
#. type: textblock
-#: dh_installcron:46
+#: dh_installcron:51
msgid ""
"Look for files named F<debian/package.name.cron.*> and install them as F<etc/"
"cron.*/name>, instead of using the usual files and installing them as the "
@@ -4416,13 +7303,13 @@ msgstr "dh_installdeb - Instala ficheros en el directorio DEBIAN"
# type: textblock
#. type: textblock
-#: dh_installdeb:14
+#: dh_installdeb:17
msgid "B<dh_installdeb> [S<I<debhelper options>>]"
msgstr "B<dh_installdeb> [S<I<opciones-de-debhelper>>]"
# type: textblock
#. type: textblock
-#: dh_installdeb:18
+#: dh_installdeb:21
msgid ""
"B<dh_installdeb> is a debhelper program that is responsible for installing "
"files into the F<DEBIAN> directories in package build directories with the "
@@ -4433,93 +7320,136 @@ msgstr ""
"directorios de construcción del paquete."
#. type: =item
-#: dh_installdeb:26
+#: dh_installdeb:29
msgid "I<package>.postinst"
msgstr "I<paquete>.postinst"
#. type: =item
-#: dh_installdeb:28
+#: dh_installdeb:31
msgid "I<package>.preinst"
msgstr "I<paquete>.preinst"
#. type: =item
-#: dh_installdeb:30
+#: dh_installdeb:33
msgid "I<package>.postrm"
msgstr "I<paquete>.postrm"
#. type: =item
-#: dh_installdeb:32
+#: dh_installdeb:35
msgid "I<package>.prerm"
msgstr "I<paquete>.prerm"
# type: textblock
#. type: textblock
-#: dh_installdeb:34
+#: dh_installdeb:37
msgid "These maintainer scripts are installed into the F<DEBIAN> directory."
msgstr "Estos scripts de desarrollador se instalan en el directorio F<DEBIAN>."
#. type: textblock
-#: dh_installdeb:36
+#: 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 ""
+"The B<#DEBHELPER#> token should be placed on its own line as it is often "
+"replaced by a multi-line shell script."
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:39
+#: dh_installdeb:48
msgid "I<package>.triggers"
msgstr "I<paquete>.triggers"
# type: =item
#. type: =item
-#: dh_installdeb:41
+#: dh_installdeb:50
msgid "I<package>.shlibs"
msgstr "I<paquete>.shlibs"
# type: textblock
#. type: textblock
-#: dh_installdeb:43
+#: dh_installdeb:52
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:54
+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:45
+#: dh_installdeb:57
msgid "I<package>.conffiles"
msgstr "I<paquete>.conffiles"
-# type: textblock
#. type: textblock
-#: dh_installdeb:47
-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:59
+msgid ""
+"This file will be installed into the F<DEBIAN> directory. The provided file "
+"will be enriched by debhelper to include all the B<conffiles> auto-detected "
+"by debhelper (the maintainer should not list anything there as debhelper "
+"assumes it should handle that part)."
+msgstr ""
-# type: textblock
#. type: textblock
-#: dh_installdeb:49
+#: 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."
+"This file is primarily useful for using \"special\" entries such as the B<< "
+"remove-on-upgrade >> feature from dpkg."
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:53
+#: dh_installdeb:67
msgid "I<package>.maintscript"
msgstr "I<paquete>.maintscript"
#. type: textblock
-#: dh_installdeb:55
+#: dh_installdeb:69
msgid ""
"Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands and "
-"parameters. Any shell metacharacters will be escaped, so arbitrary shell "
-"code cannot be inserted here. For example, a line such as C<mv_conffile /"
-"etc/oldconffile /etc/newconffile> will insert maintainer script snippets "
-"into all maintainer scripts sufficient to move that conffile."
+"parameters. However, the \"maint-script-parameters\" should I<not> be "
+"included as debhelper will add those automatically."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:73
+msgid "Example:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:75
+#, no-wrap
+msgid ""
+" # Correct\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo\n"
+" # INCORRECT\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo -- \"$@\"\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:80
+#, fuzzy
+#| msgid ""
+#| "Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands "
+#| "and parameters. Any shell metacharacters will be escaped, so arbitrary "
+#| "shell code cannot be inserted here. For example, a line such as "
+#| "C<mv_conffile /etc/oldconffile /etc/newconffile> will insert maintainer "
+#| "script snippets into all maintainer scripts sufficient to move that "
+#| "conffile."
+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 "
+"C<mv_conffile /etc/oldconffile /etc/newconffile> will insert maintainer "
+"script snippets into all maintainer scripts sufficient to move that conffile."
msgstr ""
"Las líneas en este fichero se corresponden con órdenes y parámetros de "
"L<dpkg-maintscript-helper(1)>. Se escapará cualquier metacarácter de "
@@ -4528,6 +7458,237 @@ msgstr ""
"newconffile> insertará secciones de script de mantenedor en todos los "
"scripts de mantenedor necesario, para así poder mover ese «conffile»."
+#. type: textblock
+#: dh_installdeb:86
+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 "
+"embed arbitrary shell code in earlier compat levels."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:90
+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: textblock
+#: dh_installdeb:95
+msgid ""
+"Where possible, B<dh_installdeb> may choose to rewrite some or all of the "
+"entries into equivalent features supported in dpkg without relying on "
+"maintainer scripts at its sole discretion (examples include rewriting "
+"B<rm_conffile> into dpkg's B<remove-on-upgrade>). The minimum requirement "
+"for activating this feature is that debhelper runs in compat 10 or later."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:111 dh_installdebconf:76
+msgid "B<-D>I<TOKEN=VALUE>, B<--define> I<TOKEN=VALUE>"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:113 dh_installdebconf:78
+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:118 dh_installdebconf:83
+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:123 dh_installdebconf:88
+msgid ""
+"An explicit declared token with this parameter will replace built-in tokens."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:126 dh_installdebconf:91
+msgid "Test examples to aid with the understanding:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:128
+#, 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:135 dh_installdebconf:100
+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:138
+msgid ""
+"It is also possible to 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:143 dh_installdebconf:108
+msgid "This can be used as in the following example:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:145
+#, 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:160
+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:164
+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:170 dh_installdebconf:135
+msgid "SUBSTITUTION IN MAINTAINER SCRIPTS"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:172
+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:177
+#, fuzzy
+#| msgid "DEBHELPER COMMANDS"
+msgid "#DEBHELPER#"
+msgstr "ÓRDENES DE DEBHELPER"
+
+#. type: textblock
+#: dh_installdeb:179
+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:183 dh_installdebconf:142
+msgid "#DEB_HOST_I<NAME>#, #DEB_BUILD_I<NAME>#, #DEB_TARGET_I<NAME>#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:185 dh_installdebconf:144
+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:190 dh_installdebconf:149
+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:193 dh_installdebconf:152
+msgid "#ENV.I<NAME>#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:195 dh_installdebconf:154
+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:200 dh_installdebconf:159
+msgid ""
+"Note that there are limits on which names can be used (see L</Limitations in "
+"token names>)."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:203 dh_installdebconf:162
+msgid "#PACKAGE#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:205 dh_installdebconf:164
+msgid ""
+"This token is by default replaced by the package name, which will contain "
+"the concrete script."
+msgstr ""
+
+#. type: =head2
+#: dh_installdeb:210 dh_installdebconf:169
+msgid "Limitations in token names"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:212 dh_installdebconf:171
+msgid ""
+"All tokens intended to be substituted must match the regex: #[A-Za-z0-9_.+]+#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:214
+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
@@ -4540,7 +7701,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdebconf:14
+#: dh_installdebconf:17
msgid ""
"B<dh_installdebconf> [S<I<debhelper options>>] [B<-n>] [S<B<--> I<params>>]"
msgstr ""
@@ -4549,7 +7710,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdebconf:18
+#: dh_installdebconf:21
msgid ""
"B<dh_installdebconf> is a debhelper program that is responsible for "
"installing files used by debconf into package build directories."
@@ -4560,7 +7721,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdebconf:21
+#: dh_installdebconf:24
msgid ""
"It also automatically generates the F<postrm> commands needed to interface "
"with debconf. The commands are added to the maintainer scripts by "
@@ -4574,7 +7735,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdebconf:26
+#: dh_installdebconf:29
msgid ""
"Note that if you use debconf, your package probably needs to depend on it "
"(it will be added to B<${misc:Depends}> by this program)."
@@ -4584,7 +7745,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdebconf:29
+#: dh_installdebconf:32
msgid ""
"Note that for your config script to be called by B<dpkg>, your F<postinst> "
"needs to source debconf's confmodule. B<dh_installdebconf> does not install "
@@ -4597,13 +7758,13 @@ msgstr ""
"F<postinst> porque es demasiado difícil hacerlo bien."
#. type: =item
-#: dh_installdebconf:38
+#: dh_installdebconf:41
msgid "debian/I<package>.config"
msgstr "debian/I<paquete>.config"
# type: textblock
#. type: textblock
-#: dh_installdebconf:40
+#: dh_installdebconf:43
msgid ""
"This is the debconf F<config> script, and is installed into the F<DEBIAN> "
"directory in the package build directory."
@@ -4612,7 +7773,7 @@ msgstr ""
"F<DEBIAN> en el directorio de construcción del paquete."
#. type: textblock
-#: dh_installdebconf:43
+#: dh_installdebconf:46
msgid ""
"Inside the script, the token B<#DEBHELPER#> is replaced with shell script "
"snippets generated by other debhelper commands."
@@ -4621,13 +7782,13 @@ msgstr ""
"de scripts de consola generados por otras órdenes de debhelper."
#. type: =item
-#: dh_installdebconf:46
+#: dh_installdebconf:49
msgid "debian/I<package>.templates"
msgstr "debian/I<paquete>.templates"
# type: textblock
#. type: textblock
-#: dh_installdebconf:48
+#: dh_installdebconf:51
msgid ""
"This is the debconf F<templates> file, and is installed into the F<DEBIAN> "
"directory in the package build directory."
@@ -4636,12 +7797,12 @@ msgstr ""
"F<DEBIAN> en el directorio de construcción del paquete."
#. type: =item
-#: dh_installdebconf:51
+#: dh_installdebconf:54
msgid "F<debian/po/>"
msgstr "F<debian/po/>"
#. type: textblock
-#: dh_installdebconf:53
+#: dh_installdebconf:56
msgid ""
"If this directory is present, this program will automatically use "
"L<po2debconf(1)> to generate merged templates files that include the "
@@ -4653,7 +7814,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdebconf:57
+#: dh_installdebconf:60
msgid "For this to work, your package should build-depend on F<po-debconf>."
msgstr ""
"Para que esto funcione, su paquete debe tener una dependencia de "
@@ -4661,16 +7822,90 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdebconf:67
+#: dh_installdebconf:70
msgid "Do not modify F<postrm> script."
msgstr "No modifica el script F<postrm>."
# type: textblock
#. type: textblock
-#: dh_installdebconf:71
+#: dh_installdebconf:74
msgid "Pass the params to B<po2debconf>."
msgstr "Introduce los «parámetros» a B<po2debconf>."
+#. type: verbatim
+#: dh_installdebconf:93
+#, no-wrap
+msgid ""
+"\tcat >> debian/config <<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_installdebconf:103
+msgid ""
+"It is also possible to set package-specific values for a given token. This "
+"is useful when B<dh_installdebconf> 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: verbatim
+#: dh_installdebconf:110
+#, no-wrap
+msgid ""
+"\tcat >> debian/foo.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/bar.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/baz.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+" dh_installdebconf -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_installdebconf:125
+msgid ""
+"In this example, B<#TOKEN#> will expand to B<default> in F<debian/foo."
+"config>, to B<unique-bar-value> in F<debian/bar.config> and to B<unique-baz-"
+"value> in F<debian/baz.config>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdebconf:129
+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.config> and it "
+"will be replaced by B<unique-bar-value>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdebconf:137
+msgid ""
+"The B<dh_installdebconf> will automatically replace the following tokens "
+"inside a provided maintainer script (if not replaced via B<-D>/B<--define>):"
+msgstr ""
+
+#. type: textblock
+#: dh_installdebconf:173
+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_installdebconf> to reject the command with an error in most cases."
+msgstr ""
+
# type: textblock
#. type: textblock
#: dh_installdirs:5
@@ -4681,15 +7916,21 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdirs:14
-msgid "B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [S<I<dir> ...>]"
+#: dh_installdirs:17
+#, fuzzy
+#| msgid ""
+#| "B<dh_movefiles> [S<I<debhelper options>>] [B<--sourcedir=>I<dir>] [B<-"
+#| "X>I<item>] S<I<file> ...>]"
+msgid ""
+"B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [B<--sourcedir=>I<dir>] "
+"[B<--create-in-sourcedir>] [S<I<dir> ...>]"
msgstr ""
-"B<dh_installdirs> [S<I<opciones-de-debhelper>>] [B<-A>] [S<I<directorio> ..."
-">]"
+"B<dh_movefiles> [S<I<opciones-de-debhelper>>] [B<--sourcedir=>I<dir>] [B<-"
+"X>I<elemento>] S<I<fichero> ...>]"
# type: textblock
#. type: textblock
-#: dh_installdirs:18
+#: dh_installdirs:21
msgid ""
"B<dh_installdirs> is a debhelper program that is responsible for creating "
"subdirectories in package build directories."
@@ -4697,19 +7938,34 @@ msgstr ""
"B<dh_installdirs> es un programa de debhelper responsable de crear "
"subdirectorios en los directorios de construcción del paquete."
+#. type: textblock
+#: dh_installdirs:24
+msgid ""
+"Many packages can get away with omitting the call to B<dh_installdirs> "
+"completely. Notably, other B<dh_*> commands are expected to create "
+"directories as needed."
+msgstr ""
+
#. type: =item
-#: dh_installdirs:25
+#: dh_installdirs:32
msgid "debian/I<package>.dirs"
msgstr "debian/I<paquete>.dirs"
#. type: textblock
-#: dh_installdirs:27
+#: dh_installdirs:34
msgid "Lists directories to be created in I<package>."
msgstr "Lista los directorios a crear en I<paquete>."
+#. type: textblock
+#: dh_installdirs:36
+msgid ""
+"Generally, there is no need to list directories created by the upstream "
+"build system or directories needed by other B<debhelper> commands."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_installdirs:37
+#: dh_installdirs:51
msgid ""
"Create any directories specified by command line parameters in ALL packages "
"acted on, not just the first."
@@ -4717,15 +7973,48 @@ msgstr ""
"Crea cualquier directorio especificado mediante los parámetros de la línea "
"de órdenes en TODOS los paquetes sobre los que actúa, no sólo en el primero."
+#. type: =item
+#: dh_installdirs:54
+msgid "B<--create-in-sourcedir>, B<--no-create-in-sourcedir>"
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:56
+msgid ""
+"Whether to create the specified directories in the source directory (usually "
+"F<debian/tmp>) I<in addition to> in the package build directory (usually F<< "
+"debian/I<package> >>)."
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:60
+msgid "The default is B<--no-create-in-sourcedir>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:64
+msgid ""
+"Consider I<dir> the source directory for the packages acted on instead of "
+"the default (which is usually F<debian/tmp>)."
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:67
+msgid ""
+"Please note that this option is dependent on the B<--create-in-sourcedir> "
+"option (when B<--no-create-in-sourcedir> is in effect, this option does "
+"nothing in B<dh_installdirs>)."
+msgstr ""
+
# type: =item
#. type: =item
-#: dh_installdirs:40
+#: dh_installdirs:71
msgid "I<dir> ..."
msgstr "I<directorio> ..."
# type: textblock
#. type: textblock
-#: dh_installdirs:42
+#: dh_installdirs:73
msgid ""
"Create these directories in the package build directory of the first package "
"acted on. (Or in all packages if B<-A> is specified.)"
@@ -4735,7 +8024,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdocs:5
+#: dh_installdocs:7
msgid "dh_installdocs - install documentation into package build directories"
msgstr ""
"dh_installdocs - Instala documentación en los directorios de construcción "
@@ -4743,7 +8032,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdocs:14
+#: dh_installdocs:19
msgid ""
"B<dh_installdocs> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
"[S<I<file> ...>]"
@@ -4753,7 +8042,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdocs:18
+#: dh_installdocs:23
msgid ""
"B<dh_installdocs> is a debhelper program that is responsible for installing "
"documentation into F<usr/share/doc/package> in package build directories."
@@ -4762,23 +8051,60 @@ msgstr ""
"documentación en F<usr/share/doc/paquete> en los directorios de construcción "
"del paquete."
+#. type: textblock
+#: dh_installdocs:26
+msgid ""
+"In compat 10 and earlier, L<dh_install(1)> may be a better tool for handling "
+"the upstream documentation, when upstream's own build system installs all "
+"the desired documentation correctly. In this case, B<dh_installdocs> is "
+"still useful for installing packaging related documentation (e.g. the "
+"F<debian/copyright> file)."
+msgstr ""
+
+# type: textblock
+#. type: textblock
+#: dh_installdocs:31 dh_installexamples:27 dh_installinfo:24 dh_installman:69
+#, fuzzy
+#| msgid ""
+#| "From debhelper compatibility level 7 on, B<dh_install> will fall back to "
+#| "looking in F<debian/tmp> for files, if it doesn't find them in the "
+#| "current directory (or whereever you've told it to look using B<--"
+#| "sourcedir>)."
+msgid ""
+"From debhelper compatibility level 11 on, B<dh_install> will fall back to "
+"looking in F<debian/tmp> for files, if it does not find them in the current "
+"directory (or wherever you've told it to look using B<--sourcedir>)."
+msgstr ""
+"A partir del nivel 7 de compatibilidad de debhelper en adelante, "
+"B<dh_install> buscará por omisión ficheros en F<debian/tmp>, si no los "
+"encuentra en el directorio actual (o en la ubicación donde indicó que mirase "
+"utilizando B<--sourcedir>)."
+
+#. type: textblock
+#: dh_installdocs:35
+msgid ""
+"In compat 11 and later, B<dh_installdocs> offers many of the features that "
+"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
-#: dh_installdocs:25
+#: dh_installdocs:44
msgid "debian/I<package>.docs"
msgstr "debian/I<paquete>.docs"
#. type: textblock
-#: dh_installdocs:27
+#: dh_installdocs:46
msgid "List documentation files to be installed into I<package>."
msgstr "Lista los ficheros de documentación a instalar en el I<package>."
#. type: =item
-#: dh_installdocs:29
+#: dh_installdocs:51
msgid "F<debian/copyright>"
msgstr "F<debian/copyright>"
#. type: textblock
-#: dh_installdocs:31
+#: dh_installdocs:53
msgid ""
"The copyright file is installed into all packages, unless a more specific "
"copyright file is available."
@@ -4787,22 +8113,22 @@ msgstr ""
"disponga de un fichero «copyright» más específico."
#. type: =item
-#: dh_installdocs:34
+#: dh_installdocs:56
msgid "debian/I<package>.copyright"
msgstr "debian/I<paquete>.copyright"
#. type: =item
-#: dh_installdocs:36
+#: dh_installdocs:58
msgid "debian/I<package>.README.Debian"
msgstr "debian/I<paquete>.README.Debian"
#. type: =item
-#: dh_installdocs:38
+#: dh_installdocs:60
msgid "debian/I<package>.TODO"
msgstr "debian/I<paquete>.TODO"
#. type: textblock
-#: dh_installdocs:40
+#: dh_installdocs:62
msgid ""
"Each of these files is automatically installed if present for a I<package>."
msgstr ""
@@ -4810,18 +8136,18 @@ msgstr ""
"para el I<paquete>."
#. type: =item
-#: dh_installdocs:43
+#: dh_installdocs:65
msgid "F<debian/README.Debian>"
msgstr "F<debian/README.Debian>"
#. type: =item
-#: dh_installdocs:45
+#: dh_installdocs:67
msgid "F<debian/TODO>"
msgstr "F<debian/TODO>"
# type: textblock
#. type: textblock
-#: dh_installdocs:47
+#: dh_installdocs:69
msgid ""
"These files are installed into the first binary package listed in debian/"
"control."
@@ -4830,7 +8156,7 @@ msgstr ""
"control»."
#. type: textblock
-#: dh_installdocs:50
+#: dh_installdocs:72
msgid ""
"Note that F<README.debian> files are also installed as F<README.Debian>, and "
"F<TODO> files will be installed as F<TODO.Debian> in non-native packages."
@@ -4840,13 +8166,13 @@ msgstr ""
"nativos."
#. type: =item
-#: dh_installdocs:53
+#: dh_installdocs:75
msgid "debian/I<package>.doc-base"
msgstr "debian/I<paquete>.doc-base"
# type: textblock
#. type: textblock
-#: dh_installdocs:55
+#: dh_installdocs:77
#, fuzzy
#| msgid ""
#| "Installed as doc-base control files. Note that the doc-id will be "
@@ -4864,12 +8190,12 @@ msgstr ""
"> en el fichero de control de doc-base en cuestión."
#. type: =item
-#: dh_installdocs:61
+#: dh_installdocs:83
msgid "debian/I<package>.doc-base.*"
msgstr "debian/I<paquete>.doc-base.*"
#. type: textblock
-#: dh_installdocs:63
+#: dh_installdocs:85
msgid ""
"If your package needs to register more than one document, you need multiple "
"doc-base files, and can name them like this. In the event that multiple doc-"
@@ -4878,9 +8204,19 @@ msgid ""
"doc-base/doc-id."
msgstr ""
+#. type: textblock
+#: dh_installdocs:91
+msgid ""
+"Please be aware that this deduplication is currently done in memory only, so "
+"for now it requires B<dh_installdocs> to be called no more than once during "
+"the package build. Calling B<dh_installdocs -p>I<package> in combination "
+"with using F<debian/>I<package>F<.doc-base.*> files can lead to "
+"uninstallable packages. See L<https://bugs.debian.org/980903> for details."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_installdocs:77 dh_installinfo:37 dh_installman:67
+#: dh_installdocs:106 dh_installinfo:47 dh_installman:92
msgid ""
"Install all files specified by command line parameters in ALL packages acted "
"on."
@@ -4890,7 +8226,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdocs:82
+#: dh_installdocs:111
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"installed. Note that this includes doc-base files."
@@ -4898,14 +8234,80 @@ msgstr ""
"No instala ficheros que contienen I<elemento> en cualquier lugar de su "
"nombre. Tenga en cuenta que esto incluye ficheros de doc-base."
+#. type: textblock
+#: dh_installdocs:116 dh_installexamples:59 dh_installinfo:52 dh_installman:102
+msgid ""
+"Look in the specified directory for files to be installed. This option "
+"requires compat 11 or later (it is silently ignored in compat 10 or earlier)."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:119 dh_installman:105
+#, fuzzy
+#| msgid ""
+#| "Note that this is not the same as the B<--sourcedirectory> option used by "
+#| "the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+#| "B<dh_install> automatically looks for files in F<debian/tmp> in debhelper "
+#| "compatibility level 7 and above."
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installman> automatically looks for files in F<debian/tmp> in debhelper "
+"compatibility level 11 and above."
+msgstr ""
+"Tenga en cuenta que no es igual que la opción B<--sourcedirectory> utilizada "
+"por las órdenes B<dh_auto_>I<*>. Rara vez utilizará esta opción, ya que "
+"B<dh_install> busca ficheros de forma automática en F<debian/tmp> con el "
+"nivel de compatibilidad 7 y posterior."
+
# type: =item
#. type: =item
-#: dh_installdocs:85
+#: dh_installdocs:124 dh_installexamples:67
+#, fuzzy
+#| msgid "B<--mainpackage=>I<package>"
+msgid "B<--doc-main-package=>I<main-package>"
+msgstr "B<--mainpackage=>I<paquete>"
+
+#. type: textblock
+#: dh_installdocs:126 dh_installexamples:69
+msgid ""
+"Set the main package for a documentation package. This is used to install "
+"the documentation of the documentation package in F<< /usr/share/doc/I<main-"
+"package> >> as recommended by the Debian policy manual 3.9.7 in §12.3."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:131 dh_installexamples:74
+msgid ""
+"In compat 11 (or later), this option is only useful if debhelper's auto-"
+"detection of the main package is wrong. The option can also be used to "
+"silence a warning from debhelper when the auto-detection fails but the "
+"default happens to be correct."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:136
+msgid ""
+"This option cannot be used when B<dh_installdocs> is instructed to act on "
+"multiple packages. If you need this option, you will generally need to "
+"combine it with B<-p> to ensure exactly one package is acted on."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:141
+msgid ""
+"Please keep in mind that some documentation (the copyright file, README."
+"Debian, etc.) will be unaffected by this option."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: dh_installdocs:144
msgid "B<--link-doc=>I<package>"
msgstr "B<--link-doc=>I<paquete>"
#. type: textblock
-#: dh_installdocs:87
+#: dh_installdocs:146
msgid ""
"Make the documentation directory of all packages acted on be a symlink to "
"the documentation directory of I<package>. This has no effect when acting on "
@@ -4921,7 +8323,7 @@ msgstr ""
"paquete binario que se origina del mismo paquete fuente."
#. type: textblock
-#: dh_installdocs:93
+#: dh_installdocs:152
msgid ""
"debhelper will try to avoid installing files into linked documentation "
"directories that would cause conflicts with the linked package. The B<-A> "
@@ -4936,7 +8338,7 @@ msgstr ""
"F<README.Debian> y F<TODO>."
#. type: textblock
-#: dh_installdocs:99
+#: dh_installdocs:158
msgid ""
"(An older method to accomplish the same thing, which is still supported, is "
"to make the documentation directory of a package be a dangling symlink, "
@@ -4945,9 +8347,43 @@ msgstr ""
"(Otro método, aún permitido, es hacer del directorio de documentación un "
"enlace simbólico colgante, «dangling», antes de invocar B<dh_installdocs>.)"
+#. type: textblock
+#: dh_installdocs:162
+msgid ""
+"Please note that this option only applies to the documentation directory for "
+"the package itself. When the package ships documentation for another "
+"package (e.g. see B<--doc-main-package>), it will not use a symlink for the "
+"documentation of the other package."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:168
+msgid ""
+"B<CAVEAT 1>: If a previous version of the package was built without this "
+"option and is now built with it (or vice-versa), it requires a \"dir to "
+"symlink\" (or \"symlink to dir\") migration. Since debhelper has no "
+"knowledge of previous versions, you have to enable this migration itself."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:174
+msgid ""
+"This can be done by providing a \"debian/I<package>.maintscript\" file and "
+"using L<dh_installdeb(1)> to provide the relevant maintainer script snippets."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:178
+msgid ""
+"B<CAVEAT 2>: The use of B<--link-doc> should only be done when the packages "
+"have same \"architecture\" type. A link from an architecture independent "
+"package to an architecture dependent package (or vice versa) will not work. "
+"Since compat 10, debhelper will actively reject unsupported combinations."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_installdocs:105
+#: dh_installdocs:186
msgid ""
"Install these files as documentation into the first package acted on. (Or in "
"all packages if B<-A> is specified)."
@@ -4957,14 +8393,14 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdocs:112
+#: dh_installdocs:193
msgid "This is an example of a F<debian/package.docs> file:"
msgstr ""
"A continuación se muestra un ejemplo de un fichero F<debian/paquete.docs>:"
# type: verbatim
#. type: verbatim
-#: dh_installdocs:114
+#: dh_installdocs:195
#, no-wrap
msgid ""
" README\n"
@@ -4985,7 +8421,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdocs:123
+#: dh_installdocs:204
msgid ""
"Note that B<dh_installdocs> will happily copy entire directory hierarchies "
"if you ask it to (similar to B<cp -a>). If it is asked to install a "
@@ -5003,7 +8439,7 @@ msgstr "dh_installemacsen - Registra un paquete de extensión de Emacs"
# type: textblock
#. type: textblock
-#: dh_installemacsen:14
+#: dh_installemacsen:17
msgid ""
"B<dh_installemacsen> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
"[B<--flavor=>I<foo>]"
@@ -5013,7 +8449,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installemacsen:18
+#: dh_installemacsen:21
msgid ""
"B<dh_installemacsen> is a debhelper program that is responsible for "
"installing files used by the Debian B<emacsen-common> package into package "
@@ -5025,7 +8461,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installemacsen:22
+#: dh_installemacsen:25
#, fuzzy
#| msgid ""
#| "It also automatically generates the F<postinst> and F<prerm> commands "
@@ -5045,14 +8481,14 @@ msgstr ""
"de su funcionamiento."
#. type: =item
-#: dh_installemacsen:31
+#: dh_installemacsen:34
#, fuzzy
#| msgid "debian/I<package>.emacsen-startup"
msgid "debian/I<package>.emacsen-compat"
msgstr "debian/I<paquete>.emacsen-startup"
#. type: textblock
-#: dh_installemacsen:33
+#: dh_installemacsen:36
#, fuzzy
#| msgid ""
#| "Installed into F<usr/lib/emacsen-common/packages/remove/package> in the "
@@ -5065,13 +8501,13 @@ msgstr ""
"directorio de construcción del paquete."
#. type: =item
-#: dh_installemacsen:36
+#: dh_installemacsen:39
msgid "debian/I<package>.emacsen-install"
msgstr "debian/I<paquete>.emacsen-install"
# type: textblock
#. type: textblock
-#: dh_installemacsen:38
+#: dh_installemacsen:41
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/install/package> in the "
"package build directory."
@@ -5080,12 +8516,12 @@ msgstr ""
"directorio de construcción del paquete."
#. type: =item
-#: dh_installemacsen:41
+#: dh_installemacsen:44
msgid "debian/I<package>.emacsen-remove"
msgstr "debian/I<paquete>.emacsen-remove"
#. type: textblock
-#: dh_installemacsen:43
+#: dh_installemacsen:46
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/remove/package> in the "
"package build directory."
@@ -5094,12 +8530,12 @@ msgstr ""
"directorio de construcción del paquete."
#. type: =item
-#: dh_installemacsen:46
+#: dh_installemacsen:49
msgid "debian/I<package>.emacsen-startup"
msgstr "debian/I<paquete>.emacsen-startup"
#. type: textblock
-#: dh_installemacsen:48
+#: dh_installemacsen:51
msgid ""
"Installed into etc/emacs/site-start.d/50I<package>.el in the package build "
"directory. Use B<--priority> to use a different priority than 50."
@@ -5110,19 +8546,19 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installemacsen:59 dh_usrlocal:45
+#: dh_installemacsen:62 dh_usrlocal:56
msgid "Do not modify F<postinst>/F<prerm> scripts."
msgstr "No modifica los scripts F<postinst>/F<prerm>."
# type: =item
#. type: =item
-#: dh_installemacsen:61 dh_installwm:38
+#: dh_installemacsen:64 dh_installwm:45
msgid "B<--priority=>I<n>"
msgstr "B<--priority=>I<n>"
# type: textblock
#. type: textblock
-#: dh_installemacsen:63
+#: dh_installemacsen:66
msgid "Sets the priority number of a F<site-start.d> file. Default is 50."
msgstr ""
"Define el número de prioridad de un fichero F<site-start.d>. El número "
@@ -5130,13 +8566,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installemacsen:65
+#: dh_installemacsen:68
msgid "B<--flavor=>I<foo>"
msgstr "B<--flavor=>I<foo>"
# type: textblock
#. type: textblock
-#: dh_installemacsen:67
+#: dh_installemacsen:70
msgid ""
"Sets the flavor a F<site-start.d> file will be installed in. Default is "
"B<emacs>, alternatives include B<xemacs> and B<emacs20>."
@@ -5145,13 +8581,13 @@ msgstr ""
"omisión es B<emacs>, las alternativas son B<xemacs> y B<emacs20>."
#. type: textblock
-#: dh_installemacsen:143
+#: dh_installemacsen:140
msgid "L<debhelper(7)> L</usr/share/doc/emacsen-common/debian-emacs-policy.gz>"
msgstr ""
# type: textblock
#. type: textblock
-#: dh_installexamples:5
+#: dh_installexamples:7
msgid ""
"dh_installexamples - install example files into package build directories"
msgstr ""
@@ -5160,7 +8596,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installexamples:14
+#: dh_installexamples:19
msgid ""
"B<dh_installexamples> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
"[S<I<file> ...>]"
@@ -5170,7 +8606,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installexamples:18
+#: dh_installexamples:23
msgid ""
"B<dh_installexamples> is a debhelper program that is responsible for "
"installing examples into F<usr/share/doc/package/examples> in package build "
@@ -5181,19 +8617,28 @@ msgstr ""
"construcción del paquete."
#. type: =item
-#: dh_installexamples:26
+#: dh_installexamples:35
msgid "debian/I<package>.examples"
msgstr "debian/I<paquete>.examples"
# type: textblock
#. type: textblock
-#: dh_installexamples:28
+#: dh_installexamples:37
msgid "Lists example files or directories to be installed."
msgstr "Lista ficheros de ejemplo o directorios a instalar."
+#. type: textblock
+#: dh_installexamples:39
+msgid ""
+"If upstream provides an F<examples> directory, you will often want to use "
+"B<examples/*> rather than B<examples> in this file. The latter would create "
+"F<< /usr/share/doc/I<package>/examples/examples >>, which is rarely what you "
+"want."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_installexamples:38
+#: dh_installexamples:54
msgid ""
"Install any files specified by command line parameters in ALL packages acted "
"on."
@@ -5201,9 +8646,46 @@ msgstr ""
"Instala todos los ficheros especificados en los parámetros de la línea de "
"órdenes en TODOS los paquetes sobre los que actúa."
+#. type: textblock
+#: dh_installexamples:62
+#, fuzzy
+#| msgid ""
+#| "Note that this is not the same as the B<--sourcedirectory> option used by "
+#| "the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+#| "B<dh_install> automatically looks for files in F<debian/tmp> in debhelper "
+#| "compatibility level 7 and above."
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installexamples> automatically looks for files in F<debian/tmp> in "
+"debhelper compatibility level 11 and above."
+msgstr ""
+"Tenga en cuenta que no es igual que la opción B<--sourcedirectory> utilizada "
+"por las órdenes B<dh_auto_>I<*>. Rara vez utilizará esta opción, ya que "
+"B<dh_install> busca ficheros de forma automática en F<debian/tmp> con el "
+"nivel de compatibilidad 7 y posterior."
+
+#. type: textblock
+#: dh_installexamples:79
+msgid ""
+"This option cannot be used when B<dh_installexamples> is instructed to act "
+"on multiple packages. If you need this option, you will generally need to "
+"combine it with B<-p> to ensure exactly one package is acted on."
+msgstr ""
+
+# type: textblock
+#. type: textblock
+#: dh_installexamples:86
+msgid ""
+"Exclude files that contain I<item> anywhere in their filename from being "
+"installed."
+msgstr ""
+"No instala ficheros que contienen I<elemento> en cualquier parte de su "
+"nombre."
+
# type: textblock
#. type: textblock
-#: dh_installexamples:48
+#: dh_installexamples:91
msgid ""
"Install these files (or directories) as examples into the first package "
"acted on. (Or into all packages if B<-A> is specified.)"
@@ -5213,7 +8695,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installexamples:55
+#: dh_installexamples:98
msgid ""
"Note that B<dh_installexamples> will happily copy entire directory "
"hierarchies if you ask it to (similar to B<cp -a>). If it is asked to "
@@ -5231,14 +8713,14 @@ msgstr "dh_installifupdown - Instala «hooks» para if-up e if-down"
# type: textblock
#. type: textblock
-#: dh_installifupdown:14
+#: dh_installifupdown:17
msgid "B<dh_installifupdown> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr ""
"B<dh_installifupdown> [S<I<opciones-de-debhelper>>] [B<--name=>I<nombre>]"
# type: textblock
#. type: textblock
-#: dh_installifupdown:18
+#: dh_installifupdown:21
msgid ""
"B<dh_installifupdown> is a debhelper program that is responsible for "
"installing F<if-up>, F<if-down>, F<if-pre-up>, and F<if-post-down> hook "
@@ -5250,28 +8732,28 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installifupdown:26
+#: dh_installifupdown:29
msgid "debian/I<package>.if-up"
msgstr "debian/I<paquete>.if-up"
#. type: =item
-#: dh_installifupdown:28
+#: dh_installifupdown:31
msgid "debian/I<package>.if-down"
msgstr "debian/I<paquete>.if-down"
#. type: =item
-#: dh_installifupdown:30
+#: dh_installifupdown:33
msgid "debian/I<package>.if-pre-up"
msgstr "debian/I<paquete>.if-pre-up"
#. type: =item
-#: dh_installifupdown:32
+#: dh_installifupdown:35
msgid "debian/I<package>.if-post-down"
msgstr "debian/I<paquete>.if-post-down"
# type: textblock
#. type: textblock
-#: dh_installifupdown:34
+#: dh_installifupdown:37
msgid ""
"These files are installed into etc/network/if-*.d/I<package> in the package "
"build directory."
@@ -5281,7 +8763,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installifupdown:45
+#: dh_installifupdown:48
msgid ""
"Look for files named F<debian/package.name.if-*> and install them as F<etc/"
"network/if-*/name>, instead of using the usual files and installing them as "
@@ -5299,14 +8781,14 @@ msgstr "dh_installinfo - Instala ficheros info"
# type: textblock
#. type: textblock
-#: dh_installinfo:14
+#: dh_installinfo:17
msgid "B<dh_installinfo> [S<I<debhelper options>>] [B<-A>] [S<I<file> ...>]"
msgstr ""
"B<dh_installinfo> [S<I<opciones-de-debhelper>>] [B<-A>] [S<I<fichero> ...>]"
# type: textblock
#. type: textblock
-#: dh_installinfo:18
+#: dh_installinfo:21
msgid ""
"B<dh_installinfo> is a debhelper program that is responsible for installing "
"info files into F<usr/share/info> in the package build directory."
@@ -5316,18 +8798,37 @@ msgstr ""
"paquete."
#. type: =item
-#: dh_installinfo:25
+#: dh_installinfo:32
msgid "debian/I<package>.info"
msgstr "debian/I<paquete>.info"
#. type: textblock
-#: dh_installinfo:27
+#: dh_installinfo:34
msgid "List info files to be installed."
msgstr "Lista los ficheros info a instalar."
+#. type: textblock
+#: dh_installinfo:55
+#, fuzzy
+#| msgid ""
+#| "Note that this is not the same as the B<--sourcedirectory> option used by "
+#| "the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+#| "B<dh_install> automatically looks for files in F<debian/tmp> in debhelper "
+#| "compatibility level 7 and above."
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installinfo> automatically looks for files in F<debian/tmp> in "
+"debhelper compatibility level 11 and above."
+msgstr ""
+"Tenga en cuenta que no es igual que la opción B<--sourcedirectory> utilizada "
+"por las órdenes B<dh_auto_>I<*>. Rara vez utilizará esta opción, ya que "
+"B<dh_install> busca ficheros de forma automática en F<debian/tmp> con el "
+"nivel de compatibilidad 7 y posterior."
+
# type: textblock
#. type: textblock
-#: dh_installinfo:42
+#: dh_installinfo:62
msgid ""
"Install these info files into the first package acted on. (Or in all "
"packages if B<-A> is specified)."
@@ -5348,7 +8849,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installinit:15
+#: dh_installinit:18
msgid ""
"B<dh_installinit> [S<I<debhelper options>>] [B<--name=>I<name>] [B<-n>] [B<-"
"R>] [B<-r>] [B<-d>] [S<B<--> I<params>>]"
@@ -5358,7 +8859,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installinit:19
+#: dh_installinit:22
#, fuzzy
#| msgid ""
#| "B<dh_installinit> is a debhelper program that is responsible for "
@@ -5366,8 +8867,12 @@ msgstr ""
#| "upstart job files into package build directories."
msgid ""
"B<dh_installinit> is a debhelper program that is responsible for installing "
-"init scripts with associated defaults files, as well as upstart job files, "
-"and systemd service files into package build directories."
+"init scripts with associated defaults files. In compatibility levels up to "
+"and including 10, B<dh_installinit> will also install some systemd related "
+"files provided by the debian packaging (see the L</FILES> section below). "
+"In compatibility levels up to and including 11, B<dh_installinit> will also "
+"handle upstart jobs provided in the debian packaging (see the L</FILES> for "
+"more information on this as well)."
msgstr ""
"B<dh_installmime> es un programa de debhelper responsable de instalar "
"scripts de init, y sus ficheros «default» correspondientes, así como "
@@ -5375,7 +8880,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installinit:23
+#: dh_installinit:31
msgid ""
"It also automatically generates the F<postinst> and F<postrm> and F<prerm> "
"commands needed to set up the symlinks in F</etc/rc*.d/> to start and stop "
@@ -5385,14 +8890,23 @@ msgstr ""
"F<prerm> necesarias para crear los enlaces simbólicos en F</etc/rc*.d/> para "
"iniciar y detener los scripts de init."
+#. type: textblock
+#: dh_installinit:35
+msgid ""
+"In compat 10 or earlier: If a package only ships a systemd service file and "
+"no sysvinit script is provided, you may want to exclude the call to "
+"dh_installinit for that package (e.g. via B<-N>). Otherwise, you may get "
+"warnings from lintian about init.d scripts not being included in the package."
+msgstr ""
+
#. type: =item
-#: dh_installinit:31
+#: dh_installinit:45
msgid "debian/I<package>.init"
msgstr "debian/I<paquete>.init"
# type: textblock
#. type: textblock
-#: dh_installinit:33
+#: dh_installinit:47
msgid ""
"If this exists, it is installed into etc/init.d/I<package> in the package "
"build directory."
@@ -5401,13 +8915,13 @@ msgstr ""
"construcción del paquete."
#. type: =item
-#: dh_installinit:36
+#: dh_installinit:50
msgid "debian/I<package>.default"
msgstr "debian/I<paquete>.default"
# type: textblock
#. type: textblock
-#: dh_installinit:38
+#: dh_installinit:52
msgid ""
"If this exists, it is installed into etc/default/I<package> in the package "
"build directory."
@@ -5416,22 +8930,35 @@ msgstr ""
"construcción del paquete."
#. type: =item
-#: dh_installinit:41
+#: dh_installinit:55
msgid "debian/I<package>.upstart"
msgstr "debian/I<paquete>.upstart"
+#. type: textblock
+#: dh_installinit:57
+msgid ""
+"In compatibility level 11, this file will trigger an error with a reminder "
+"about ensuring the proper removal of the upstart file in the previous "
+"package version. Please consider using the \"rm_conffile\" feature from "
+"L<dh_installdeb(1)> to ensure the proper removal of previous upstart files."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_installinit:43
+#: dh_installinit:62
+#, fuzzy
+#| msgid ""
+#| "If this exists, it is installed into etc/init/I<package>.conf in the "
+#| "package build directory."
msgid ""
-"If this exists, it is installed into etc/init/I<package>.conf in the package "
-"build directory."
+"In compatibility level 10, if this file exists, it is installed into etc/"
+"init/I<package>.conf in the package build directory."
msgstr ""
"Si existe, se instala en «etc/init/I<paquete>.conf» en el directorio de "
"construcción del paquete."
#. type: =item
-#: dh_installinit:46
+#: dh_installinit:65
#, fuzzy
#| msgid "debian/I<package>.mime"
msgid "debian/I<package>.service"
@@ -5439,20 +8966,21 @@ msgstr "debian/I<paquete>.mime"
# type: textblock
#. type: textblock
-#: dh_installinit:48
+#: dh_installinit:67
#, fuzzy
#| msgid ""
#| "If this exists, it is installed into etc/init/I<package>.conf in the "
#| "package build directory."
msgid ""
-"If this exists, it is installed into lib/systemd/system/I<package>.service "
-"in the package build directory."
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"service >> in the package build directory. Only used in compat levels 10 and "
+"below."
msgstr ""
"Si existe, se instala en «etc/init/I<paquete>.conf» en el directorio de "
"construcción del paquete."
#. type: =item
-#: dh_installinit:51
+#: dh_installinit:70 dh_systemd_enable:50
#, fuzzy
#| msgid "debian/I<package>.files"
msgid "debian/I<package>.tmpfile"
@@ -5460,27 +8988,32 @@ msgstr "debian/I<paquete>.files"
# type: textblock
#. type: textblock
-#: dh_installinit:53
+#: dh_installinit:72
#, fuzzy
#| msgid ""
#| "If this exists, it is installed into etc/init/I<package>.conf in the "
#| "package build directory."
msgid ""
"If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in "
-"the package build directory. (The tmpfiles.d mechanism is currently only "
-"used by systemd.)"
+"the package build directory. Only used in compat levels 10 and below."
msgstr ""
"Si existe, se instala en «etc/init/I<paquete>.conf» en el directorio de "
"construcción del paquete."
+# type: textblock
+#. type: textblock
+#: dh_installinit:83
+msgid "Do not modify F<postinst>/F<postrm>/F<prerm> scripts."
+msgstr "No modifica los scripts F<postinst>/F<postrm>/F<prerm>."
+
# type: =item
#. type: =item
-#: dh_installinit:67
-msgid "B<-o>, B<--onlyscripts>"
-msgstr "B<-o>, B<--onlyscripts>"
+#: dh_installinit:85
+msgid "B<-o>, B<--only-scripts>"
+msgstr "B<-o>, B<--only-scripts>"
#. type: textblock
-#: dh_installinit:69
+#: dh_installinit:87
#, fuzzy
#| msgid ""
#| "Only modify F<postinst>/F<postrm>/F<prerm> scripts, do not actually "
@@ -5499,19 +9032,57 @@ msgstr ""
"original de software de una manera que dificulta que B<dh_installinit> lo "
"encuentre."
+#. type: textblock
+#: dh_installinit:92
+msgid ""
+"B<Caveat>: This will bypass all the regular checks and I<unconditionally> "
+"modify the scripts. You will almost certainly want to use this with B<-p> "
+"to limit, which packages are affected by the call. Example:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installinit:97
+#, no-wrap
+msgid ""
+" override_dh_installinit:\n"
+"\tdh_installinit -pfoo --only-scripts\n"
+"\tdh_installinit --remaining\n"
+"\n"
+msgstr ""
+
# type: =item
#. type: =item
-#: dh_installinit:74
+#: dh_installinit:101
msgid "B<-R>, B<--restart-after-upgrade>"
msgstr "B<-R>, B<--restart-after-upgrade>"
# type: textblock
#. type: textblock
-#: dh_installinit:76
+#: dh_installinit:103
+#, fuzzy
+#| msgid ""
+#| "Do not stop the init script until after the package upgrade has been "
+#| "completed. This is different than the default behavior, which stops the "
+#| "script in the F<prerm>, and starts it again in the F<postinst>."
msgid ""
"Do not stop the init script until after the package upgrade has been "
-"completed. This is different than the default behavior, which stops the "
-"script in the F<prerm>, and starts it again in the F<postinst>."
+"completed. This is the default behaviour in compat 10."
+msgstr ""
+"No detiene el script de init hasta que se complete la actualización del "
+"paquete. Es diferente del comportamiento predeterminado, que detiene el "
+"script mediante, F<prerm> y lo reinicia mediante F<postinst>."
+
+# type: textblock
+#. type: textblock
+#: dh_installinit:106
+#, fuzzy
+#| msgid ""
+#| "Do not stop the init script until after the package upgrade has been "
+#| "completed. This is different than the default behavior, which stops the "
+#| "script in the F<prerm>, and starts it again in the F<postinst>."
+msgid ""
+"In early compat levels, the default was to stop the script in the F<prerm>, "
+"and starts it again in the F<postinst>."
msgstr ""
"No detiene el script de init hasta que se complete la actualización del "
"paquete. Es diferente del comportamiento predeterminado, que detiene el "
@@ -5519,7 +9090,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installinit:80
+#: dh_installinit:109 dh_systemd_start:45
msgid ""
"This can be useful for daemons that should not have a possibly long downtime "
"during upgrade. But you should make sure that the daemon will not get "
@@ -5533,25 +9104,60 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installinit:85
-msgid "B<-r>, B<--no-restart-on-upgrade>"
-msgstr "B<-r>, B<--no-restart-on-upgrade>"
+#: dh_installinit:114 dh_systemd_start:50
+#, fuzzy
+#| msgid "B<-R>, B<--restart-after-upgrade>"
+msgid "B<--no-restart-after-upgrade>"
+msgstr "B<-R>, B<--restart-after-upgrade>"
-# type: textblock
#. type: textblock
-#: dh_installinit:87
-msgid "Do not stop init script on upgrade."
-msgstr "No detiene el script de init durante una actualización."
+#: dh_installinit:116 dh_systemd_start:52
+msgid ""
+"Undo a previous B<--restart-after-upgrade> (or the default of compat 10). "
+"If no other options are given, this will cause the service to be stopped in "
+"the F<prerm> script and started again in the F<postinst> script."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: dh_installinit:121 dh_systemd_start:57
+msgid "B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>"
+msgstr "B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>"
+
+#. type: textblock
+#: dh_installinit:123
+msgid ""
+"Do not stop init script on upgrade. This has the side-effect of not "
+"restarting the service as a part of the upgrade."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:126
+msgid ""
+"If you want to restart the service with minimal downtime, please use B<--"
+"restart-after-upgrade> (default in compat 10 or later). If you want the "
+"service to be restarted but be stopped during the upgrade, then please use "
+"B<--no-restart-after-upgrade> (note the \"after-upgrade\")."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:131
+msgid ""
+"Note that the B<--no-restart-on-upgrade> alias is deprecated and will be "
+"removed in compat 12. This is to avoid confusion with the B<--no-restart-"
+"after-upgrade> option. The B<--no-stop-on-upgrade> variant was introduced "
+"in debhelper 10.2 (included in Debian stretch)."
+msgstr ""
# type: =item
#. type: =item
-#: dh_installinit:89
+#: dh_installinit:136 dh_systemd_start:61
msgid "B<--no-start>"
msgstr "B<--no-start>"
# type: textblock
#. type: textblock
-#: dh_installinit:91
+#: dh_installinit:138
msgid ""
"Do not start the init script on install or upgrade, or stop it on removal. "
"Only call B<update-rc.d>. Useful for rcS scripts."
@@ -5562,20 +9168,55 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installinit:94
+#: dh_installinit:141 dh_systemd_enable:86
+#, fuzzy
+#| msgid "B<--no-act>"
+msgid "B<--no-enable>"
+msgstr "B<--no-act>"
+
+#. type: textblock
+#: dh_installinit:143
+msgid ""
+"Disable the init script on purge, but do not enable them on install. This "
+"implies a versioned dependency on B<< init-system-helpers (E<gt>= 1.51) >> "
+"as it is the first (functional) version that supports B<< update-rc.d "
+"E<lt>scriptE<gt> defaults-disabled >>."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:148
+msgid ""
+"B<Note> that this option does not affect whether the services are started. "
+"Please remember to also use B<--no-start> if the service should not be "
+"started."
+msgstr ""
+
+# type: =item
+#. type: textblock
+#: dh_installinit:152
+#, fuzzy
+#| msgid "B<-u>I<params> B<--update-rcd-params=>I<params>"
+msgid ""
+"Cannot be combined with B<-u>I<params>, B<--update-rcd-params=>I<params>, or "
+"B<--> I<params>."
+msgstr "B<-u>I<parámetros> B<--update-rcd-params=>I<parámetros>"
+
+# type: =item
+#. type: =item
+#: dh_installinit:155
msgid "B<-d>, B<--remove-d>"
msgstr "B<-d>, B<--remove-d>"
# type: textblock
#. type: textblock
-#: dh_installinit:96
+#: dh_installinit:157
msgid ""
"Remove trailing B<d> from the name of the package, and use the result for "
"the filename the upstart job file is installed as in F<etc/init/> , and for "
"the filename the init script is installed as in etc/init.d and the default "
-"file is installed as in F<etc/default/> . This may be useful for daemons "
-"with names ending in B<d>. (Note: this takes precedence over the B<--init-"
-"script> parameter described below.)"
+"file is installed as in F<etc/default/>. This may be useful for daemons with "
+"names ending in B<d>. (Note: this takes precedence over the B<--init-script> "
+"parameter described below.)"
msgstr ""
"Elimina la B<d> final del nombre del paquete, y utiliza el resultado para el "
"nombre del fichero de tarea de upstart que se instalará en F<etc/init/>, y "
@@ -5586,23 +9227,33 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installinit:103
+#: dh_installinit:164
msgid "B<-u>I<params> B<--update-rcd-params=>I<params>"
msgstr "B<-u>I<parámetros> B<--update-rcd-params=>I<parámetros>"
# type: textblock
#. type: textblock
-#: dh_installinit:107
+#: dh_installinit:168
+#, fuzzy
+#| msgid ""
+#| "Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> will "
+#| "be passed to L<update-rc.d(8)>."
msgid ""
-"Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> will be "
-"passed to L<update-rc.d(8)>."
+"Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> (or "
+"B<defaults-disabled> with B<--no-enable>) will be passed to L<update-rc."
+"d(8)>."
msgstr ""
"Introduce los I<parámetros> a L<update-rc.d(8)>. Si no se especifica, se "
"introduce B<defaults> a L<update-rc.d(8)>."
+#. type: textblock
+#: dh_installinit:172
+msgid "Cannot be combined with B<--no-enable>."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_installinit:112
+#: dh_installinit:176
msgid ""
"Install the init script (and default file) as well as upstart job file using "
"the filename I<name> instead of the default filename, which is the package "
@@ -5621,13 +9272,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installinit:120
+#: dh_installinit:184
msgid "B<--init-script=>I<scriptname>"
msgstr "B<--init-script=>I<nombre-script>"
# type: textblock
#. type: textblock
-#: dh_installinit:122
+#: dh_installinit:186
msgid ""
"Use I<scriptname> as the filename the init script is installed as in F<etc/"
"init.d/> (and also use it as the filename for the defaults file, if it is "
@@ -5646,7 +9297,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installinit:129
+#: dh_installinit:193
msgid ""
"This parameter is deprecated, use the B<--name> parameter instead. This "
"parameter is incompatible with the use of upstart jobs."
@@ -5656,13 +9307,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installinit:132
+#: dh_installinit:196
msgid "B<--error-handler=>I<function>"
msgstr "B<--error-handler=>I<función>"
# type: textblock
#. type: textblock
-#: dh_installinit:134
+#: dh_installinit:198
msgid ""
"Call the named shell I<function> if running the init script fails. The "
"function should be provided in the F<prerm> and F<postinst> scripts, before "
@@ -5672,24 +9323,135 @@ msgstr ""
"La función se debe proporcionar en los scripts F<prerm> y F<postinst>, antes "
"del comodín B<#DEBHELPER#>."
-# type: =head1
-#. type: =head1
-#: dh_installinit:330
-msgid "AUTHORS"
-msgstr "AUTORES"
+# type: textblock
+#. type: textblock
+#: dh_installinit:415
+#, 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:334
+#: dh_installinit:423
msgid "Steve Langasek <steve.langasek@canonical.com>"
msgstr "Steve Langasek <steve.langasek@canonical.com>"
#. type: textblock
-#: dh_installinit:336
+#: dh_installinit:425
msgid "Michael Stapelberg <stapelberg@debian.org>"
msgstr ""
# type: textblock
#. type: textblock
+#: dh_installinitramfs:5
+#, fuzzy
+#| msgid "dh_installmime - install mime files into package build directories"
+msgid "dh_installinitramfs - install initramfs hooks and setup maintscripts"
+msgstr ""
+"dh_installmime - Instala ficheros mime en los directorios de construcción "
+"del paquete"
+
+# type: textblock
+#. type: textblock
+#: dh_installinitramfs:17
+#, fuzzy
+#| msgid "B<dh_installmenu> [S<B<debhelper options>>] [B<-n>]"
+msgid "B<dh_installinitramfs> [S<B<debhelper options>>] [B<-n>]"
+msgstr "B<dh_installmenu> [S<B<opciones-de-debhelper>>] [B<-n>]"
+
+# type: textblock
+#. type: textblock
+#: dh_installinitramfs:21
+#, fuzzy
+#| msgid ""
+#| "B<dh_installmime> is a debhelper program that is responsible for "
+#| "installing mime files into package build directories."
+msgid ""
+"B<dh_installinitramfs> is a debhelper program that is responsible for "
+"installing Debian package provided initramfs hooks."
+msgstr ""
+"B<dh_installmime> es un programa de debhelper responsable de instalar "
+"ficheros mime en los directorios de construcción del paquete."
+
+# type: textblock
+#. type: textblock
+#: dh_installinitramfs:24
+#, fuzzy
+#| msgid ""
+#| "It also automatically generates the F<postinst> and F<postrm> commands "
+#| "needed to interface with the Debian B<menu> package. These commands are "
+#| "inserted into the maintainer scripts by L<dh_installdeb(1)>."
+msgid ""
+"If B<dh_installinitramfs> installs or detects one or more initramfs hooks in "
+"the package, then it also automatically generates the noawait trigger "
+"B<update-initframfs> command needed to interface with the Debian initramfs "
+"system. This trigger is inserted into the packaging by L<dh_installdeb(1)>."
+msgstr ""
+"Además, genera automáticamente las órdenes de F<postinst> y F<postrm> "
+"necesarias para interactuar con el paquete del B<menú> de Debian. Estas "
+"órdenes se insertan en los scripts del desarrollador mediante "
+"L<dh_installdeb(1)>."
+
+#. type: =item
+#: dh_installinitramfs:34
+#, fuzzy
+#| msgid "debian/I<package>.init"
+msgid "debian/I<package>.initramfs-hook"
+msgstr "debian/I<paquete>.init"
+
+#. type: textblock
+#: dh_installinitramfs:36
+msgid ""
+"Assumed to be an initramfs hook that will be installed into F<< usr/share/"
+"initramfs-tools/hooks/I<package> >> in the package build directory. See "
+"B<HOOK SCRIPTS> in L<initramfs-tools(8)> for more information about "
+"initramfs hooks."
+msgstr ""
+
+#. type: textblock
+#: dh_installinitramfs:49
+msgid ""
+"Do not add the B<update-initramfs> trigger even if it seems like the package "
+"might need it. The option is called B<--no-scripts> for historical reasons "
+"as B<dh_installinitramfs> would previously generate maintainer scripts that "
+"called B<update-initramfs -u>."
+msgstr ""
+
+#. type: textblock
+#: dh_installinitramfs:54
+msgid ""
+"Use this option, if you need to interface with the B<update-initramfs> "
+"system that is not satisfied by the noawait trigger (e.g. because you need "
+"the extra guarantees and head-aches of a await trigger)."
+msgstr ""
+
+# type: textblock
+#. type: textblock
+#: dh_installinitramfs:62
+#, fuzzy
+#| msgid ""
+#| "Note that this command is not idempotent. L<dh_prep(1)> should be called "
+#| "between invocations of this command. Otherwise, it may cause multiple "
+#| "instances of the same text to be added to maintainer scripts."
+msgid ""
+"Note that this command is not idempotent. L<dh_prep(1)> should be called "
+"between invocations of this command. Otherwise, it may cause multiple "
+"instances of the same text to be added to triggers file."
+msgstr ""
+"Esta orden no es idempotente. Debería invocar L<dh_prep(1)> entre cada "
+"invocación de esta orden. De otro modo, puede causar que los scripts del "
+"desarrollador contengan partes duplicadas."
+
+# type: textblock
+#. type: textblock
+#: dh_installinitramfs:93
+#, fuzzy
+#| msgid "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
+msgid "L<debhelper(7)> L<update-initramfs(8)> L<initramfs-tools(8)>"
+msgstr "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
+
+# type: textblock
+#. type: textblock
#: dh_installlogcheck:5
msgid "dh_installlogcheck - install logcheck rulefiles into etc/logcheck/"
msgstr ""
@@ -5698,13 +9460,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installlogcheck:14
+#: dh_installlogcheck:17
msgid "B<dh_installlogcheck> [S<I<debhelper options>>]"
msgstr "B<dh_installlogcheck> [S<I<opciones-de-debhelper>>]"
# type: textblock
#. type: textblock
-#: dh_installlogcheck:18
+#: dh_installlogcheck:21
msgid ""
"B<dh_installlogcheck> is a debhelper program that is responsible for "
"installing logcheck rule files."
@@ -5713,37 +9475,37 @@ msgstr ""
"ficheros de reglas de logcheck"
#. type: =item
-#: dh_installlogcheck:25
+#: dh_installlogcheck:28
msgid "debian/I<package>.logcheck.cracking"
msgstr "debian/I<paquete>.logcheck.cracking"
#. type: =item
-#: dh_installlogcheck:27
+#: dh_installlogcheck:30
msgid "debian/I<package>.logcheck.violations"
msgstr "debian/I<paquete>.logcheck.violations"
#. type: =item
-#: dh_installlogcheck:29
+#: dh_installlogcheck:32
msgid "debian/I<package>.logcheck.violations.ignore"
msgstr "debian/I<paquete>.logcheck.violations.ignore"
#. type: =item
-#: dh_installlogcheck:31
+#: dh_installlogcheck:34
msgid "debian/I<package>.logcheck.ignore.workstation"
msgstr "debian/I<paquete>.logcheck.ignore.workstation"
#. type: =item
-#: dh_installlogcheck:33
+#: dh_installlogcheck:36
msgid "debian/I<package>.logcheck.ignore.server"
msgstr "debian/I<paquete>.logcheck.ignore.server"
#. type: =item
-#: dh_installlogcheck:35
+#: dh_installlogcheck:38
msgid "debian/I<package>.logcheck.ignore.paranoid"
msgstr "debian/I<paquete>.logcheck.ignore.paranoid"
#. type: textblock
-#: dh_installlogcheck:37
+#: dh_installlogcheck:40
msgid ""
"Each of these files, if present, are installed into corresponding "
"subdirectories of F<etc/logcheck/> in package build directories."
@@ -5754,7 +9516,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installlogcheck:48
+#: dh_installlogcheck:51
msgid ""
"Look for files named F<debian/package.name.logcheck.*> and install them into "
"the corresponding subdirectories of F<etc/logcheck/>, but use the specified "
@@ -5766,7 +9528,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh_installlogcheck:84
+#: dh_installlogcheck:85
#, no-wrap
msgid ""
"This program is a part of debhelper.\n"
@@ -5777,7 +9539,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installlogcheck:88
+#: dh_installlogcheck:89
msgid "Jon Middleton <jjm@debian.org>"
msgstr "Jon Middleton <jjm@debian.org>"
@@ -5789,14 +9551,14 @@ msgstr "dh_installlogrotate - Instala ficheros de configuración de logrotate"
# type: textblock
#. type: textblock
-#: dh_installlogrotate:14
+#: dh_installlogrotate:17
msgid "B<dh_installlogrotate> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr ""
"B<dh_installlogrotate> [S<I<opciones-de-debhelper>>] [B<--name=>I<nombre>]"
# type: textblock
#. type: textblock
-#: dh_installlogrotate:18
+#: dh_installlogrotate:21
msgid ""
"B<dh_installlogrotate> is a debhelper program that is responsible for "
"installing logrotate config files into F<etc/logrotate.d> in package build "
@@ -5809,7 +9571,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installlogrotate:28
+#: dh_installlogrotate:31
msgid ""
"Look for files named F<debian/package.name.logrotate> and install them as "
"F<etc/logrotate.d/name>, instead of using the usual files and installing "
@@ -5829,24 +9591,71 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installman:15
+#: dh_installman:18
msgid "B<dh_installman> [S<I<debhelper options>>] [S<I<manpage> ...>]"
msgstr ""
"B<dh_installman> [S<I<opciones-de-debhelper>>] [S<I<página-de-manual> ...>]"
# type: textblock
#. type: textblock
-#: dh_installman:19
+#: dh_installman:22
+#, fuzzy
+#| msgid ""
+#| "B<dh_installmanpages> is a debhelper program that is responsible for "
+#| "automatically installing man pages into F<usr/share/man/> in package "
+#| "build directories."
msgid ""
"B<dh_installman> is a debhelper program that handles installing man pages "
-"into the correct locations in package build directories. You tell it what "
-"man pages go in your packages, and it figures out where to install them "
-"based on the section field in their B<.TH> or B<.Dt> line. If you have a "
-"properly formatted B<.TH> or B<.Dt> line, your man page will be installed "
-"into the right directory, with the right name (this includes proper handling "
-"of pages with a subsection, like B<3perl>, which are placed in F<man3>, and "
-"given an extension of F<.3perl>). If your B<.TH> or B<.Dt> line is incorrect "
-"or missing, the program may guess wrong based on the file extension."
+"into the correct locations in package build directories."
+msgstr ""
+"B<dh_installmanpages> es un programa de debhelper responsable de instalar "
+"automáticamente las páginas de manual en F<usr/share/man/> en los "
+"directorios de construcción del paquete."
+
+#. type: textblock
+#: dh_installman:25
+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 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
+#: dh_installman:32
+msgid ""
+"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 to "
+"UTF-8 and for converting F<.so> links (as described below). However, that "
+"part happens automatically without any explicit configuration."
+msgstr ""
+
+# type: textblock
+#. type: textblock
+#: dh_installman:38
+#, fuzzy
+#| msgid ""
+#| "B<dh_installman> is a debhelper program that handles installing man pages "
+#| "into the correct locations in package build directories. You tell it what "
+#| "man pages go in your packages, and it figures out where to install them "
+#| "based on the section field in their B<.TH> or B<.Dt> line. If you have a "
+#| "properly formatted B<.TH> or B<.Dt> line, your man page will be installed "
+#| "into the right directory, with the right name (this includes proper "
+#| "handling of pages with a subsection, like B<3perl>, which are placed in "
+#| "F<man3>, and given an extension of F<.3perl>). If your B<.TH> or B<.Dt> "
+#| "line is incorrect or missing, the program may guess wrong based on the "
+#| "file extension."
+msgid ""
+"You tell B<dh_installman> what man pages go in your packages, and it figures "
+"out where to install them based on the section field in their B<.TH> or B<."
+"Dt> line. If you have a properly formatted B<.TH> or B<.Dt> line, your man "
+"page will be installed into the right directory, with the right name (this "
+"includes proper handling of pages with a subsection, like B<3perl>, which "
+"are placed in F<man3>, and given an extension of F<.3perl>). If your B<.TH> "
+"or B<.Dt> line is incorrect or missing, the program may guess wrong based on "
+"the file extension."
msgstr ""
"B<dh_installman> es un programa de debhelper que instala páginas de manual "
"en los lugares correctos de los directorios de construcción del paquete. "
@@ -5861,7 +9670,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installman:29
+#: dh_installman:47
msgid ""
"It also supports translated man pages, by looking for extensions like F<."
"ll.8> and F<.ll_LL.8>, or by use of the B<--language> switch."
@@ -5871,7 +9680,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installman:32
+#: dh_installman:50
msgid ""
"If B<dh_installman> seems to install a man page into the wrong section or "
"with the wrong extension, this is because the man page has the wrong section "
@@ -5896,7 +9705,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installman:42
+#: dh_installman:60
msgid ""
"After the man page installation step, B<dh_installman> will check to see if "
"any of the man pages in the temporary directories of any of the packages it "
@@ -5909,7 +9718,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installman:46
+#: dh_installman:64
msgid ""
"Also, B<dh_installman> will use man to guess the character encoding of each "
"manual page and convert it to UTF-8. If the guesswork fails for some reason, "
@@ -5922,24 +9731,24 @@ msgstr ""
"codificación. Para más detalles consulte L<manconv(1)>."
#. type: =item
-#: dh_installman:55
+#: dh_installman:77
msgid "debian/I<package>.manpages"
msgstr "debian/I<paquete>.manpages"
#. type: textblock
-#: dh_installman:57
+#: dh_installman:79
msgid "Lists man pages to be installed."
msgstr "Lista las páginas de manual a instalar."
# type: =item
#. type: =item
-#: dh_installman:70
+#: dh_installman:95
msgid "B<--language=>I<ll>"
msgstr "B<--language=>I<ll>"
# type: textblock
#. type: textblock
-#: dh_installman:72
+#: dh_installman:97
msgid ""
"Use this to specify that the man pages being acted on are written in the "
"specified language."
@@ -5949,13 +9758,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installman:75
+#: dh_installman:110
msgid "I<manpage> ..."
msgstr "I<página-de-manual> ..."
# type: textblock
#. type: textblock
-#: dh_installman:77
+#: dh_installman:112
msgid ""
"Install these man pages into the first package acted on. (Or in all packages "
"if B<-A> is specified)."
@@ -5963,9 +9772,30 @@ msgstr ""
"Instala estas páginas de manual en el primer paquete sobre el que actúe (o "
"en todos si se define B<-A>)."
+#. type: textblock
+#: dh_installman:119
+msgid "An example F<debian/manpages> file could look like this:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installman:121
+#, no-wrap
+msgid ""
+" doc/man/foo.1\n"
+" # Translations\n"
+" doc/man/foo.da.1\n"
+" doc/man/foo.de.1\n"
+" doc/man/foo.fr.1\n"
+" # NB: The following line is considered a polish translation\n"
+" # of \"foo.1\" (and not a manpage written in perl called \"foo.pl\")\n"
+" doc/man/foo.pl.1\n"
+" # ...\n"
+"\n"
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_installman:84
+#: dh_installman:133
msgid ""
"An older version of this program, L<dh_installmanpages(1)>, is still used by "
"some packages, and so is still included in debhelper. It is, however, "
@@ -5987,14 +9817,14 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmanpages:15
+#: dh_installmanpages:18
msgid "B<dh_installmanpages> [S<I<debhelper options>>] [S<I<file> ...>]"
msgstr ""
"B<dh_installmanpages> [S<I<opciones-de-debhelper>>] [S<I<fichero> ...>]"
# type: textblock
#. type: textblock
-#: dh_installmanpages:19
+#: dh_installmanpages:22
msgid ""
"B<dh_installmanpages> is a debhelper program that is responsible for "
"automatically installing man pages into F<usr/share/man/> in package build "
@@ -6006,7 +9836,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmanpages:23
+#: dh_installmanpages:26
msgid ""
"This is a DWIM-style program, with an interface unlike the rest of "
"debhelper. It is deprecated, and you are encouraged to use "
@@ -6019,7 +9849,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmanpages:27
+#: dh_installmanpages:30
msgid ""
"B<dh_installmanpages> scans the current directory and all subdirectories for "
"filenames that look like man pages. (Note that only real files are looked "
@@ -6036,7 +9866,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmanpages:33
+#: dh_installmanpages:36
msgid ""
"All filenames specified as parameters will be skipped by "
"B<dh_installmanpages>. This is useful if by default it installs some man "
@@ -6048,7 +9878,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmanpages:37
+#: dh_installmanpages:40
msgid ""
"After the man page installation step, B<dh_installmanpages> will check to "
"see if any of the man pages are F<.so> links. If so, it changes them to "
@@ -6060,7 +9890,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmanpages:46
+#: dh_installmanpages:49
msgid ""
"Do not install these files as man pages, even if they look like valid man "
"pages."
@@ -6070,13 +9900,13 @@ msgstr ""
# type: =head1
#. type: =head1
-#: dh_installmanpages:51
+#: dh_installmanpages:54
msgid "BUGS"
msgstr "FALLOS"
# type: textblock
#. type: textblock
-#: dh_installmanpages:53
+#: dh_installmanpages:56
msgid ""
"B<dh_installmanpages> will install the man pages it finds into B<all> "
"packages you tell it to act on, since it can't tell what package the man "
@@ -6092,13 +9922,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmanpages:58
+#: dh_installmanpages:61
msgid "Files ending in F<.man> will be ignored."
msgstr "Se ignorarán ficheros que terminen con F<.man>."
# type: textblock
#. type: textblock
-#: dh_installmanpages:60
+#: dh_installmanpages:63
msgid ""
"Files specified as parameters that contain spaces in their filenames will "
"not be processed properly."
@@ -6117,13 +9947,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmenu:14
+#: dh_installmenu:17
msgid "B<dh_installmenu> [S<B<debhelper options>>] [B<-n>]"
msgstr "B<dh_installmenu> [S<B<opciones-de-debhelper>>] [B<-n>]"
# type: textblock
#. type: textblock
-#: dh_installmenu:18
+#: dh_installmenu:21
msgid ""
"B<dh_installmenu> is a debhelper program that is responsible for installing "
"files used by the Debian B<menu> package into package build directories."
@@ -6134,7 +9964,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmenu:21
+#: dh_installmenu:24
msgid ""
"It also automatically generates the F<postinst> and F<postrm> commands "
"needed to interface with the Debian B<menu> package. These commands are "
@@ -6146,13 +9976,13 @@ msgstr ""
"L<dh_installdeb(1)>."
#. type: =item
-#: dh_installmenu:29
+#: dh_installmenu:32
msgid "debian/I<package>.menu"
msgstr "debian/I<paquete>.menu"
# type: textblock
#. type: textblock
-#: dh_installmenu:31
+#: dh_installmenu:34
msgid ""
"Debian menu files, installed into usr/share/menu/I<package> in the package "
"build directory. See L<menufile(5)> for its format."
@@ -6162,13 +9992,13 @@ msgstr ""
"detalles acerca del formato."
#. type: =item
-#: dh_installmenu:34
+#: dh_installmenu:37
msgid "debian/I<package>.menu-method"
msgstr "debian/I<paquete>.menu-method"
# type: textblock
#. type: textblock
-#: dh_installmenu:36
+#: dh_installmenu:39
msgid ""
"Debian menu method files, installed into etc/menu-methods/I<package> in the "
"package build directory."
@@ -6178,13 +10008,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmenu:47 dh_makeshlibs:79
+#: dh_installmenu:50
msgid "Do not modify F<postinst>/F<postrm> scripts."
msgstr "No modifica los scripts F<postinst>/F<postrm>."
# type: textblock
#. type: textblock
-#: dh_installmenu:91
+#: dh_installmenu:90
msgid "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
msgstr "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
@@ -6198,7 +10028,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmime:14
+#: dh_installmime:17
#, fuzzy
#| msgid "B<dh_installdeb> [S<I<debhelper options>>]"
msgid "B<dh_installmime> [S<I<debhelper options>>]"
@@ -6206,7 +10036,7 @@ msgstr "B<dh_installdeb> [S<I<opciones-de-debhelper>>]"
# type: textblock
#. type: textblock
-#: dh_installmime:18
+#: dh_installmime:21
msgid ""
"B<dh_installmime> is a debhelper program that is responsible for installing "
"mime files into package build directories."
@@ -6215,13 +10045,13 @@ msgstr ""
"ficheros mime en los directorios de construcción del paquete."
#. type: =item
-#: dh_installmime:25
+#: dh_installmime:28
msgid "debian/I<package>.mime"
msgstr "debian/I<paquete>.mime"
# type: textblock
#. type: textblock
-#: dh_installmime:27
+#: dh_installmime:30
msgid ""
"Installed into usr/lib/mime/packages/I<package> in the package build "
"directory."
@@ -6230,12 +10060,12 @@ msgstr ""
"construcción del paquete."
#. type: =item
-#: dh_installmime:30
+#: dh_installmime:33
msgid "debian/I<package>.sharedmimeinfo"
msgstr "debian/I<paquete>.sharedmimeinfo"
#. type: textblock
-#: dh_installmime:32
+#: dh_installmime:35
msgid ""
"Installed into /usr/share/mime/packages/I<package>.xml in the package build "
"directory."
@@ -6253,7 +10083,7 @@ msgstr "dh_installmodules - Registra módulos con modutils"
# type: textblock
#. type: textblock
-#: dh_installmodules:15
+#: dh_installmodules:18
msgid ""
"B<dh_installmodules> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>]"
msgstr ""
@@ -6262,7 +10092,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmodules:19
+#: dh_installmodules:22
msgid ""
"B<dh_installmodules> is a debhelper program that is responsible for "
"registering kernel modules."
@@ -6272,7 +10102,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmodules:22
+#: dh_installmodules:25
msgid ""
"Kernel modules are searched for in the package build directory and if found, "
"F<preinst>, F<postinst> and F<postrm> commands are automatically generated "
@@ -6287,13 +10117,13 @@ msgstr ""
"desarrollador mediante L<dh_installdeb(1)>."
#. type: =item
-#: dh_installmodules:32
+#: dh_installmodules:35
msgid "debian/I<package>.modprobe"
msgstr "debian/I<paquete>.modprobe"
# type: textblock
#. type: textblock
-#: dh_installmodules:34
+#: dh_installmodules:37
msgid ""
"Installed to etc/modprobe.d/I<package>.conf in the package build directory."
msgstr ""
@@ -6302,13 +10132,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmodules:44
+#: dh_installmodules:47
msgid "Do not modify F<preinst>/F<postinst>/F<postrm> scripts."
msgstr "No modifica los scripts F<preinst>/F<postinst>/F<postrm>."
# type: textblock
#. type: textblock
-#: dh_installmodules:48
+#: dh_installmodules:51
msgid ""
"When this parameter is used, B<dh_installmodules> looks for and installs "
"files named debian/I<package>.I<name>.modprobe instead of the usual debian/"
@@ -6326,14 +10156,14 @@ msgstr "dh_installpam - Instala ficheros de compatibilidad de pam"
# type: textblock
#. type: textblock
-#: dh_installpam:14
+#: dh_installpam:17
msgid "B<dh_installpam> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr ""
"B<dh_installpam> [S<I<opciones-de-debhelper>>] [B<-n>] [B<--name=>I<nombre>]"
# type: textblock
#. type: textblock
-#: dh_installpam:18
+#: dh_installpam:21
msgid ""
"B<dh_installpam> is a debhelper program that is responsible for installing "
"files used by PAM into package build directories."
@@ -6342,25 +10172,40 @@ msgstr ""
"ficheros utilizados por PAM en los directorios de construcción del paquete."
#. type: =item
-#: dh_installpam:25
+#: dh_installpam:28
msgid "debian/I<package>.pam"
msgstr "debian/I<paquete>.pam"
# type: textblock
#. type: textblock
-#: dh_installpam:27
-msgid "Installed into etc/pam.d/I<package> in the package build directory."
+#: dh_installpam:30
+#, fuzzy
+#| msgid "Installed into etc/pam.d/I<package> in the package build directory."
+msgid "Installed into usr/lib/pam.d/I<package> in the package build directory."
msgstr ""
"Instalado en «etc/pam.d/I<paquete>» en el directorio de construcción del "
"paquete."
+#. type: textblock
+#: dh_installpam:32
+msgid ""
+"Until compatibility level 14 this file was installed under etc/pam.d/"
+"I<package>. Please consider using the \"rm_conffile\" feature from "
+"L<dh_installdeb(1)> to ensure the proper removal of previous PAM files."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_installpam:37
+#: dh_installpam:44
+#, fuzzy
+#| msgid ""
+#| "Look for files named debian/I<package>.I<name>.pam and install them as "
+#| "etc/pam.d/I<name>, instead of using the usual files and installing them "
+#| "using the package name."
msgid ""
-"Look for files named debian/I<package>.I<name>.pam and install them as etc/"
-"pam.d/I<name>, instead of using the usual files and installing them using "
-"the package name."
+"Look for files named debian/I<package>.I<name>.pam and install them as usr/"
+"lib/pam.d/I<name>, instead of using the usual files and installing them "
+"using the package name."
msgstr ""
"Busca ficheros con el nombre «debian/I<nombre>.I<paquete>.pam» y los instala "
"como «etc/pam.d/I<nombre>», en vez de utilizar los ficheros habituales e "
@@ -6374,13 +10219,13 @@ msgstr "dh_installppp - Instala los ficheros ip-up e ip-down de ppp"
# type: textblock
#. type: textblock
-#: dh_installppp:14
+#: dh_installppp:17
msgid "B<dh_installppp> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr "B<dh_installppp> [S<I<opciones-de-debhelper>>] [B<--name=>I<nombre>]"
# type: textblock
#. type: textblock
-#: dh_installppp:18
+#: dh_installppp:21
msgid ""
"B<dh_installppp> is a debhelper program that is responsible for installing "
"ppp ip-up and ip-down scripts into package build directories."
@@ -6390,13 +10235,13 @@ msgstr ""
"paquete."
#. type: =item
-#: dh_installppp:25
+#: dh_installppp:28
msgid "debian/I<package>.ppp.ip-up"
msgstr "debian/I<paquete>.ppp.ip-up"
# type: textblock
#. type: textblock
-#: dh_installppp:27
+#: dh_installppp:30
msgid ""
"Installed into etc/ppp/ip-up.d/I<package> in the package build directory."
msgstr ""
@@ -6404,13 +10249,13 @@ msgstr ""
"del paquete."
#. type: =item
-#: dh_installppp:29
+#: dh_installppp:32
msgid "debian/I<package>.ppp.ip-down"
msgstr "debian/I<paquete>.ppp.ip-down"
# type: textblock
#. type: textblock
-#: dh_installppp:31
+#: dh_installppp:34
msgid ""
"Installed into etc/ppp/ip-down.d/I<package> in the package build directory."
msgstr ""
@@ -6419,7 +10264,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installppp:41
+#: dh_installppp:44
msgid ""
"Look for files named F<debian/package.name.ppp.ip-*> and install them as "
"F<etc/ppp/ip-*/name>, instead of using the usual files and installing them "
@@ -6437,7 +10282,7 @@ msgstr "dh_installinfo - Instala ficheros de reglas de udev"
# type: textblock
#. type: textblock
-#: dh_installudev:15
+#: dh_installudev:17
msgid ""
"B<dh_installudev> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>] [B<--"
"priority=>I<priority>]"
@@ -6447,7 +10292,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installudev:19
+#: dh_installudev:21
msgid ""
"B<dh_installudev> is a debhelper program that is responsible for installing "
"B<udev> rules files."
@@ -6455,23 +10300,14 @@ msgstr ""
"B<dh_installudev> es un programa de debhelper responsable de instalar "
"ficheros de reglas de B<udev>."
-#. type: textblock
-#: dh_installudev:22
-msgid ""
-"Code is added to the F<preinst> and F<postinst> to handle the upgrade from "
-"the old B<udev> rules file location."
-msgstr ""
-"El código se añade a los scripts F<preinst> y F<postinst> para gestionar la "
-"actualización desde la ubicación antigua de ficheros de reglas de udev."
-
#. type: =item
-#: dh_installudev:29
+#: dh_installudev:28
msgid "debian/I<package>.udev"
msgstr "debian/I<paquete>.udev"
# type: textblock
#. type: textblock
-#: dh_installudev:31
+#: dh_installudev:30
msgid "Installed into F<lib/udev/rules.d/> in the package build directory."
msgstr ""
"Se instala en F<lib/udev/rules.d/> en el directorio de construcción del "
@@ -6479,7 +10315,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installudev:41
+#: dh_installudev:40
msgid ""
"When this parameter is used, B<dh_installudev> looks for and installs files "
"named debian/I<package>.I<name>.udev instead of the usual debian/I<package>."
@@ -6491,13 +10327,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installudev:45
+#: dh_installudev:44
msgid "B<--priority=>I<priority>"
msgstr "B<--priority=>I<prioridad>"
# type: textblock
#. type: textblock
-#: dh_installudev:47
+#: dh_installudev:46
#, fuzzy
#| msgid "Sets the priority number of a F<site-start.d> file. Default is 50."
msgid "Sets the priority the file. Default is 60."
@@ -6507,19 +10343,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installudev:51
-msgid "Do not modify F<preinst>/F<postinst> scripts."
-msgstr "No modifica los scripts F<preinst>/F<postinst>."
-
-# type: textblock
-#. type: textblock
#: dh_installwm:5
msgid "dh_installwm - register a window manager"
msgstr "dh_installwm - Registra un gestor de ventanas"
# type: textblock
#. type: textblock
-#: dh_installwm:14
+#: dh_installwm:17
msgid ""
"B<dh_installwm> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
"[S<I<wm> ...>]"
@@ -6529,13 +10359,21 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installwm:18
+#: dh_installwm:21
+#, fuzzy
+#| msgid ""
+#| "B<dh_installwm> is a debhelper program that is responsible for generating "
+#| "the F<postinst> and F<prerm> commands that register a window manager with "
+#| "L<update-alternatives(8)>. The window manager's man page is also "
+#| "registered as a slave symlink (in v6 mode and up), if it is found in "
+#| "F<usr/share/man/man1/> in the package build directory."
msgid ""
"B<dh_installwm> is a debhelper program that is responsible for generating "
"the F<postinst> and F<prerm> commands that register a window manager with "
"L<update-alternatives(8)>. The window manager's man page is also registered "
-"as a slave symlink (in v6 mode and up), if it is found in F<usr/share/man/"
-"man1/> in the package build directory."
+"as a slave symlink (in v6 mode and up). It must be installed in F<usr/share/"
+"man/man1/> in the package build directory prior to calling B<dh_installwm>. "
+"In compat 9 and earlier, the manpage was optional."
msgstr ""
"B<dh_installwm> es un programa de debhelper responsable de generar las "
"órdenes de F<postinst> y F<prerm> que registran un gestor de ventanas con "
@@ -6545,19 +10383,19 @@ msgstr ""
"construcción del paquete."
#. type: =item
-#: dh_installwm:28
+#: dh_installwm:32
msgid "debian/I<package>.wm"
msgstr "debian/I<paquete>.wm"
# type: textblock
#. type: textblock
-#: dh_installwm:30
+#: dh_installwm:34
msgid "List window manager programs to register."
msgstr "Lista los programas del gestor de ventanas a registrar."
# type: textblock
#. type: textblock
-#: dh_installwm:40
+#: dh_installwm:47
msgid ""
"Set the priority of the window manager. Default is 20, which is too low for "
"most window managers; see the Debian Policy document for instructions on "
@@ -6570,21 +10408,35 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installwm:46
+#: dh_installwm:53
msgid ""
"Do not modify F<postinst>/F<prerm> scripts. Turns this command into a no-op."
msgstr ""
"No modifica los scripts F<postinst>/F<prerm>. Si se especifica esta orden, "
"no hará nada."
+# type: textblock
+#. type: textblock
+#: dh_installwm:57
+#, fuzzy
+#| msgid ""
+#| "Create any links specified by command line parameters in ALL packages "
+#| "acted on, not just the first."
+msgid ""
+"Modify scripts for window managers specified by command line parameters in "
+"ALL packages acted on, not just the first."
+msgstr ""
+"Crea cualquier enlace especificado por los parámetros de la linea de órdenes "
+"en TODOS los paquetes sobre los que se actúa, no solamente en el primero."
+
# type: =item
#. type: =item
-#: dh_installwm:48
+#: dh_installwm:60
msgid "I<wm> ..."
msgstr "I<gestor> ..."
#. type: textblock
-#: dh_installwm:50
+#: dh_installwm:62
msgid "Window manager programs to register."
msgstr "Programas del gestor de ventanas a registrar."
@@ -6596,13 +10448,13 @@ msgstr "dh_installxfonts - Registra tipos de letra para X"
# type: textblock
#. type: textblock
-#: dh_installxfonts:14
+#: dh_installxfonts:17
msgid "B<dh_installxfonts> [S<I<debhelper options>>]"
msgstr "B<dh_installxfonts> [S<I<opciones-de-debhelper>>]"
# type: textblock
#. type: textblock
-#: dh_installxfonts:18
+#: dh_installxfonts:21
msgid ""
"B<dh_installxfonts> is a debhelper program that is responsible for "
"registering X fonts, so their corresponding F<fonts.dir>, F<fonts.alias>, "
@@ -6615,7 +10467,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installxfonts:22
+#: dh_installxfonts:25
msgid ""
"Before calling this program, you should have installed any X fonts provided "
"by your package into the appropriate location in the package build "
@@ -6631,19 +10483,19 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installxfonts:28
+#: dh_installxfonts:31
msgid ""
"Your package should depend on B<xfonts-utils> so that the B<update-fonts-"
">I<*> commands are available. (This program adds that dependency to B<${misc:"
"Depends}>.)"
msgstr ""
"Su paquete debe depender de B<xfonts-utils> para que las órdenes B<update-"
-"fonts->I<*> estén disponibles. (Este programa añade la dependencia a B<"
-"${misc:Depends}>.)"
+"fonts->I<*> estén disponibles. (Este programa añade la dependencia a "
+"B<${misc:Depends}>.)"
# type: textblock
#. type: textblock
-#: dh_installxfonts:32
+#: dh_installxfonts:35
msgid ""
"This program automatically generates the F<postinst> and F<postrm> commands "
"needed to register X fonts. These commands are inserted into the maintainer "
@@ -6657,7 +10509,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installxfonts:39
+#: dh_installxfonts:42
msgid ""
"See L<update-fonts-alias(8)>, L<update-fonts-scale(8)>, and L<update-fonts-"
"dir(8)> for more information about X font installation."
@@ -6668,7 +10520,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installxfonts:42
+#: dh_installxfonts:45
msgid ""
"See Debian policy, section 11.8.5. for details about doing fonts the Debian "
"way."
@@ -6686,7 +10538,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_link:15
+#: dh_link:18
msgid ""
"B<dh_link> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<source "
"destination> ...>]"
@@ -6696,7 +10548,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_link:19
+#: dh_link:22
msgid ""
"B<dh_link> is a debhelper program that creates symlinks in package build "
"directories."
@@ -6706,12 +10558,19 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_link:22
+#: dh_link:25
+#, fuzzy
+#| msgid ""
+#| "B<dh_link> accepts a list of pairs of source and destination files. The "
+#| "source files are the already existing files that will be symlinked from. "
+#| "The destination files are the symlinks that will be created. There "
+#| "B<must> be an equal number of source and destination files specified."
msgid ""
"B<dh_link> accepts a list of pairs of source and destination files. The "
-"source files are the already existing files that will be symlinked from. The "
-"destination files are the symlinks that will be created. There B<must> be an "
-"equal number of source and destination files specified."
+"source files are the already existing files that will be symlinked from "
+"(called B<target> by L<ln(1)>). The destination files are the symlinks that "
+"will be created (called B<link name> by L<ln(1)>). There B<must> be an equal "
+"number of source and destination files specified."
msgstr ""
"B<dh_link> acepta una lista de pares de ficheros origen y destino. Los "
"ficheros origen son ficheros ya existentes, los cuales serán enlazados. Los "
@@ -6720,11 +10579,16 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_link:27
+#: dh_link:32
+#, fuzzy
+#| msgid ""
+#| "Be sure you B<do> specify the full filename to both the source and "
+#| "destination files (unlike you would do if you were using something like "
+#| "L<ln(1)>)."
msgid ""
-"Be sure you B<do> specify the full filename to both the source and "
+"Be sure you B<do> specify the absolute path to both the source and "
"destination files (unlike you would do if you were using something like "
-"L<ln(1)>)."
+"L<ln(1)>). Please note that the leading slash is optional."
msgstr ""
"Compruebe que B<ha> definido el nombre completo del fichero para ambos "
"ficheros, origen y destino (distinto a lo que haría si estuviese utilizando "
@@ -6732,12 +10596,18 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_link:31
+#: dh_link:36
+#, fuzzy
+#| msgid ""
+#| "B<dh_link> will generate symlinks that comply with Debian policy - "
+#| "absolute when policy says they should be absolute, and relative links "
+#| "with as short a path as possible. It will also create any subdirectories "
+#| "it needs to to put the symlinks in."
msgid ""
"B<dh_link> will generate symlinks that comply with Debian policy - absolute "
"when policy says they should be absolute, and relative links with as short a "
-"path as possible. It will also create any subdirectories it needs to to put "
-"the symlinks in."
+"path as possible. It will also create any subdirectories it needs to put the "
+"symlinks in."
msgstr ""
"B<dh_link> genera los enlaces simbólicos compatibles con las normas de "
"Debian; absolutos cuando las normas dicen que deben serlo, y enlaces "
@@ -6745,7 +10615,7 @@ msgstr ""
"que sea necesario para ubicar los enlaces."
#. type: textblock
-#: dh_link:36
+#: dh_link:41
msgid "Any pre-existing destination files will be replaced with symlinks."
msgstr ""
"Todos los ficheros de destino preexistente se sustituirá con enlaces "
@@ -6753,7 +10623,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_link:38
+#: dh_link:43
msgid ""
"B<dh_link> also scans the package build tree for existing symlinks which do "
"not conform to Debian policy, and corrects them (v4 or later)."
@@ -6763,12 +10633,12 @@ msgstr ""
"corrige (v4 y posterior)."
#. type: =item
-#: dh_link:45
+#: dh_link:50
msgid "debian/I<package>.links"
msgstr "debian/I<paquete>.links"
#. type: textblock
-#: dh_link:47
+#: dh_link:52
msgid ""
"Lists pairs of source and destination files to be symlinked. Each pair "
"should be put on its own line, with the source and destination separated by "
@@ -6778,9 +10648,25 @@ msgstr ""
"aparecer en una única línea, con el origen y el destino separados por un "
"espacio en blanco."
+#. type: textblock
+#: dh_link:56
+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 given in the same "
+"order as they would be given to L<ln(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh_link:61
+msgid ""
+"In contrast to L<ln(1)>, source and destination paths must be absolute (the "
+"leading slash is optional)."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_link:59
+#: dh_link:75
msgid ""
"Create any links specified by command line parameters in ALL packages acted "
"on, not just the first."
@@ -6790,7 +10676,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_link:64
+#: dh_link:80
msgid ""
"Exclude symlinks that contain I<item> anywhere in their filename from being "
"corrected to comply with Debian policy."
@@ -6801,13 +10687,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_link:67
+#: dh_link:83
msgid "I<source destination> ..."
msgstr "I<origen destino > ..."
# type: textblock
#. type: textblock
-#: dh_link:69
+#: dh_link:85
msgid ""
"Create a file named I<destination> as a link to a file named I<source>. Do "
"this in the package build directory of the first package acted on. (Or in "
@@ -6819,7 +10705,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh_link:77
+#: dh_link:93
#, no-wrap
msgid ""
" dh_link usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
@@ -6830,13 +10716,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_link:79
+#: dh_link:95
msgid "Make F<bar.1> be a symlink to F<foo.1>"
msgstr "Hace de F<bar.1> un enlace simbólico a F<foo.1>"
# type: verbatim
#. type: verbatim
-#: dh_link:81
+#: dh_link:97
#, no-wrap
msgid ""
" dh_link var/lib/foo usr/lib/foo \\\n"
@@ -6849,7 +10735,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_link:84
+#: dh_link:100
msgid ""
"Make F</usr/lib/foo/> be a link to F</var/lib/foo/>, and F<bar.1> be a "
"symlink to the F<foo.1>"
@@ -6857,6 +10743,28 @@ msgstr ""
"Hace de F</usr/lib/foo/> un enlace a F</var/lib/foo/>, y de F<bar.1> un "
"enlace simbólico a la página de manual F<foo.1>"
+# type: verbatim
+#. type: verbatim
+#: dh_link:103
+#, fuzzy, no-wrap
+#| msgid ""
+#| " dh_link var/lib/foo usr/lib/foo \\\n"
+#| " usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+#| "\n"
+msgid ""
+" var/lib/foo usr/lib/foo\n"
+" usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+msgstr ""
+" dh_link var/lib/foo usr/lib/foo \\\n"
+" usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+
+#. type: textblock
+#: dh_link:106
+msgid "Same as above but as content for a debian/I<package>.links file."
+msgstr ""
+
# type: textblock
#. type: textblock
#: dh_lintian:5
@@ -6868,13 +10776,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_lintian:14
+#: dh_lintian:17
msgid "B<dh_lintian> [S<I<debhelper options>>]"
msgstr "B<dh_lintian> [S<I<opciones-de-debhelper>>]"
# type: textblock
#. type: textblock
-#: dh_lintian:18
+#: dh_lintian:21
msgid ""
"B<dh_lintian> is a debhelper program that is responsible for installing "
"override files used by lintian into package build directories."
@@ -6884,13 +10792,13 @@ msgstr ""
"paquete."
#. type: =item
-#: dh_lintian:25
+#: dh_lintian:28
msgid "debian/I<package>.lintian-overrides"
msgstr "debian/I<paquete>.lintian-overrides"
# type: textblock
#. type: textblock
-#: dh_lintian:27
+#: dh_lintian:30
msgid ""
"Installed into usr/share/lintian/overrides/I<package> in the package build "
"directory. This file is used to suppress erroneous lintian diagnostics."
@@ -6900,12 +10808,12 @@ msgstr ""
"erróneos de lintian."
#. type: =item
-#: dh_lintian:31
+#: dh_lintian:34
msgid "F<debian/source/lintian-overrides>"
msgstr "F<debian/source/lintian-overrides>"
#. type: textblock
-#: dh_lintian:33
+#: dh_lintian:36
msgid ""
"These files are not installed, but will be scanned by lintian to provide "
"overrides for the source package."
@@ -6914,13 +10822,13 @@ msgstr ""
"anulaciones («overrides») para el paquete fuente."
#. type: textblock
-#: dh_lintian:65
+#: dh_lintian:66
msgid "L<lintian(1)>"
msgstr "L<lintian(1)>"
# type: textblock
#. type: textblock
-#: dh_lintian:69
+#: dh_lintian:70
msgid "Steve Robbins <smr@debian.org>"
msgstr "Steve Robbins <smr@debian.org>"
@@ -6933,13 +10841,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_listpackages:14
+#: dh_listpackages:17
msgid "B<dh_listpackages> [S<I<debhelper options>>]"
msgstr "B<dh_listpackages> [S<I<opciones-de-debhelper>>]"
# type: textblock
#. type: textblock
-#: dh_listpackages:18
+#: dh_listpackages:21
msgid ""
"B<dh_listpackages> is a debhelper program that outputs a list of all binary "
"packages debhelper commands will act on. If you pass it some options, it "
@@ -6954,6 +10862,18 @@ msgstr ""
# type: textblock
#. type: textblock
+#: dh_listpackages:26
+#, fuzzy
+#| msgid ""
+#| "These files are installed into the first binary package listed in debian/"
+#| "control."
+msgid "Packages are listed in the order they appear in F<debian/control>."
+msgstr ""
+"Estos ficheros se instalan en el primer paquete binario listado en «debian/"
+"control»."
+
+# type: textblock
+#. type: textblock
#: dh_makeshlibs:5
msgid ""
"dh_makeshlibs - automatically create shlibs file and call dpkg-gensymbols"
@@ -6963,7 +10883,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_makeshlibs:14
+#: dh_makeshlibs:17
msgid ""
"B<dh_makeshlibs> [S<I<debhelper options>>] [B<-m>I<major>] [B<-"
"V>I<[dependencies]>] [B<-n>] [B<-X>I<item>] [S<B<--> I<params>>]"
@@ -6973,7 +10893,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_makeshlibs:18
+#: dh_makeshlibs:21
msgid ""
"B<dh_makeshlibs> is a debhelper program that automatically scans for shared "
"libraries, and generates a shlibs file for the libraries it finds."
@@ -6982,42 +10902,71 @@ msgstr ""
"bibliotecas compartidas, y genera un fichero de bibliotecas compartidas "
"«shlibs» para las bibliotecas que encuentra."
-# type: textblock
#. type: textblock
-#: dh_makeshlibs:21
+#: dh_makeshlibs:24
msgid ""
-"It also adds a call to ldconfig in the F<postinst> and F<postrm> scripts (in "
-"v3 mode and above only) to any packages in which it finds shared libraries."
+"It will also ensure that ldconfig is invoked during install and removal when "
+"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."
msgstr ""
-"También añade una invocación a ldconfig en los scripts F<postinst> y "
-"F<postrm> (sólo en el modo v3 y superiores) de cualquier paquete en el que "
-"encuentra bibliotecas compartidas."
#. type: textblock
-#: dh_makeshlibs:24
+#: dh_makeshlibs:29
msgid ""
-"Packages that support multiarch are detected, and a Pre-Dependency on "
-"multiarch-support is set in ${misc:Pre-Depends} ; you should make sure to "
-"put that token into an appropriate place in your debian/control file for "
-"packages supporting multiarch."
+"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 are considering to migrate to using "
+"the 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 ""
-"Se detectan los paquetes que permiten multiarquitectura, y se define una "
-"predependencia sobre multiarch-support en ${misc:Pre-Depends}; debería "
-"asegurar que inserta ese comodín en el lugar apropiado dentro del fichero "
-"«debian/control» para aquellos paquetes que utilizan multiarquitectura."
#. 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: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 "
+"any libraries."
+msgstr ""
+
+#. type: textblock
+#: 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:57
msgid "debian/I<package>.symbols"
msgstr "debian/I<paquete>.symbols"
#. type: =item
-#: dh_makeshlibs:35
+#: dh_makeshlibs:59
msgid "debian/I<package>.symbols.I<arch>"
msgstr "debian/I<paquete>.symbols.I<arquitectura>"
#. type: textblock
-#: dh_makeshlibs:37
+#: 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 "
@@ -7030,13 +10979,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:47
+#: 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:49
+#: 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 "
@@ -7051,53 +11000,65 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:54
+#: dh_makeshlibs:78
msgid "B<-V>, B<-V>I<dependencies>"
msgstr "B<-V>, B<-V>I<dependencias>"
# type: =item
#. type: =item
-#: dh_makeshlibs:56
+#: 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:58
+#: dh_makeshlibs:82
msgid ""
-"By default, the shlibs file generated by this program does not make packages "
-"depend on any particular version of the package containing the shared "
-"library. It may be necessary for you to add some version dependency "
-"information to the shlibs file. If B<-V> is specified with no dependency "
-"information, the current upstream version of the package is plugged into a "
-"dependency that looks like \"I<packagename> B<(E<gt>>= I<packageversion>B<)>"
-"\". Note that in debhelper compatibility levels before v4, the Debian part "
-"of the package version number is also included. If B<-V> is specified with "
-"parameters, the parameters can be used to specify the exact dependency "
-"information needed (be sure to include the package name)."
+"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: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:88
+msgid "The B<dh_makeshlibs> tool can generate dependencies in three variants:"
+msgstr ""
+
+#. type: =item
+#: dh_makeshlibs:92
+msgid "B<-VUpstream-Version>"
msgstr ""
-"Por omisión, el fichero «shlibs» generado por este programa no hace que los "
-"paquetes dependan de alguna versión particular del paquete que contiene la "
-"biblioteca compartida. Podría ser necesario que añada alguna información de "
-"dependencia de versión al fichero «shlibs». Si especifica B<-V> sin "
-"información de dependencia, la versión actual del desarrollador principal "
-"del paquete es conectada con una dependencia de la forma "
-"I<nombre_de_paquete> B<(E<gt>>= I<versión_de_paquete>B<)>. Tenga en cuenta "
-"que en los niveles de compatibilidad de debhelper anteriores a v4 también se "
-"incluye la parte de Debian del número de versión del paquete. Si especifica "
-"B<-V> con parámetros, los parámetros se pueden utilizar para especificar la "
-"información de dependencia exacta requerida (asegúrese de incluir el nombre "
-"del paquete)."
-# type: textblock
#. type: textblock
-#: dh_makeshlibs:69
+#: dh_makeshlibs:94
msgid ""
-"Beware of using B<-V> without any parameters; 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 your library is prone to changing "
-"ABI without updating the upstream version number), so that if the maintainer "
-"screws up then they won't break. The flip side is that packages might end up "
-"with dependencies that are too tight and so find it harder to be upgraded."
+"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 "
+"as shown here."
+msgstr ""
+
+# type: textblock
+#. type: textblock
+#: dh_makeshlibs:98
+#, fuzzy
+#| msgid ""
+#| "Beware of using B<-V> without any parameters; 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 your "
+#| "library is prone to changing ABI without updating the upstream version "
+#| "number), so that if the maintainer screws up then they won't break. The "
+#| "flip side is that packages might end up with dependencies that are too "
+#| "tight and so find it harder to be upgraded."
+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 "
+"the library is prone to changing ABI without updating the upstream version "
+"number)."
msgstr ""
"Tenga cuidado al utilizar B<-V> sin ningún parámetro; ésta es una "
"configuración conservadora que siempre asegura que las dependencias de "
@@ -7108,9 +11069,102 @@ msgstr ""
"paquetes podrían terminar con dependencias muy rigurosas que harían difícil "
"su actualización."
+#. type: textblock
+#: 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 "
+"often of minor temporary inconvenience and usually a lot better than the "
+"fall out caused by forgetting to bump the dependency information."
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"works)"
+msgstr ""
+
+# type: =item
+#. type: =item
+#: dh_makeshlibs:113
+#, fuzzy
+#| msgid "B<-V>"
+msgid "B<-VNone>"
+msgstr "B<-V>"
+
+#. type: textblock
+#: 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: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 "
+"interfaces over time and packagers are recommended to use B<-VUpstream-"
+"Version> (or one of the other forms of B<-V>I<dependencies>)."
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"packages. Note that symbols are not supported for udeb packages, which "
+"solely relies on shlibs for dependency handling."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: 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: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-"
+"package-name> B<(E<gt>>= I<some-package-version>B<)>\". Remember to include "
+"the package name."
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"dependency on a different package than the one containing the library."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:142
+msgid ""
+"When choosing a value for this option, please keep mind that if the package "
+"provides a symbols file, then that this is generally preferred over the "
+"shlibs file for regular .deb packages. See L<dpkg-shlibdeps(1)> for more "
+"information on this topic."
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"B<dh_makeshlibs> would previously generate maintainer scripts that called "
+"B<ldconfig>."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_makeshlibs:83
+#: dh_makeshlibs:156
msgid ""
"Exclude files that contain I<item> anywhere in their filename or directory "
"from being treated as shared libraries."
@@ -7120,13 +11174,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:86
+#: dh_makeshlibs:159
msgid "B<--add-udeb=>I<udeb>"
msgstr "B<--add-udeb=>I<udeb>"
# type: textblock
#. type: textblock
-#: dh_makeshlibs:88
+#: 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 "
@@ -7136,21 +11190,56 @@ 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 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:93
+#: 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:101
-msgid "B<dh_makeshlibs>"
-msgstr "B<dh_makeshlibs>"
+#: dh_makeshlibs:189
+#, fuzzy
+#| msgid "B<dh_makeshlibs -V>"
+msgid "B<dh_makeshlibs -VNone>"
+msgstr "B<dh_makeshlibs -V>"
# type: verbatim
#. type: verbatim
-#: dh_makeshlibs:103
+#: dh_makeshlibs:191
#, no-wrap
msgid ""
"Assuming this is a package named F<libfoobar1>, generates a shlibs file that\n"
@@ -7165,13 +11254,15 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:107
-msgid "B<dh_makeshlibs -V>"
+#: dh_makeshlibs:195
+#, fuzzy
+#| msgid "B<dh_makeshlibs -V>"
+msgid "B<dh_makeshlibs -VUpstream-Version>"
msgstr "B<dh_makeshlibs -V>"
# type: verbatim
#. type: verbatim
-#: dh_makeshlibs:109
+#: dh_makeshlibs:197
#, no-wrap
msgid ""
"Assuming the current version of the package is 1.1-3, generates a shlibs\n"
@@ -7186,13 +11277,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:113
+#: 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:115
+#: dh_makeshlibs:203
#, no-wrap
msgid ""
"Generates a shlibs file that looks something like:\n"
@@ -7211,7 +11302,7 @@ msgstr "dh_md5sums - Genera el fichero DEBIAN/md5sums"
# type: textblock
#. type: textblock
-#: dh_md5sums:15
+#: dh_md5sums:18
msgid ""
"B<dh_md5sums> [S<I<debhelper options>>] [B<-x>] [B<-X>I<item>] [B<--include-"
"conffiles>]"
@@ -7221,11 +11312,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_md5sums:19
+#: dh_md5sums:22
+#, fuzzy
+#| msgid ""
+#| "B<dh_md5sums> is a debhelper program that is responsible for generating a "
+#| "F<DEBIAN/md5sums> file, which lists the md5sums of each file in the "
+#| "package. These files are used by the B<debsums> package."
msgid ""
"B<dh_md5sums> is a debhelper program that is responsible for generating a "
"F<DEBIAN/md5sums> file, which lists the md5sums of each file in the "
-"package. These files are used by the B<debsums> package."
+"package. These files are used by B<dpkg --verify> or the L<debsums(1)> "
+"program."
msgstr ""
"B<dh_md5sums> es un programa de debhelper responsable de generar un fichero "
"F<DEBIAN/md5sums>, el cual lista las sumas de control md5 de cada fichero en "
@@ -7233,7 +11330,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_md5sums:23
+#: dh_md5sums:26
msgid ""
"All files in F<DEBIAN/> are omitted from the F<md5sums> file, as are all "
"conffiles (unless you use the B<--include-conffiles> switch)."
@@ -7244,30 +11341,34 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_md5sums:26
+#: dh_md5sums:29
msgid "The md5sums file is installed with proper permissions and ownerships."
msgstr ""
"El fichero «md5sums» se instala con los permisos y propietarios adecuados."
# type: =item
#. type: =item
-#: dh_md5sums:32
+#: dh_md5sums:35
msgid "B<-x>, B<--include-conffiles>"
msgstr "B<-x>, B<--include-conffiles>"
# type: textblock
#. type: textblock
-#: dh_md5sums:34
+#: dh_md5sums:37
+#, fuzzy
+#| msgid ""
+#| "Include conffiles in the md5sums list. Note that this information is "
+#| "redundant since it is included elsewhere in Debian packages."
msgid ""
"Include conffiles in the md5sums list. Note that this information is "
-"redundant since it is included elsewhere in Debian packages."
+"redundant since it is included in F</var/lib/dpkg/status> in Debian packages."
msgstr ""
"Incluye conffiles en la lista «md5sums». Note que esta información es "
"redundante puesto que está incluida en otro lugar de los paquetes de Debian."
# type: textblock
#. type: textblock
-#: dh_md5sums:39
+#: dh_md5sums:42
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"listed in the md5sums file."
@@ -7283,7 +11384,7 @@ msgstr "dh_movefiles - Mueve ficheros desde debian/tmp a subpaquetes"
# type: textblock
#. type: textblock
-#: dh_movefiles:14
+#: dh_movefiles:17
#, fuzzy
#| msgid ""
#| "B<dh_movefiles> [S<I<debhelper options>>] [B<--sourcedir=>I<dir>] [B<-"
@@ -7297,7 +11398,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_movefiles:18
+#: dh_movefiles:21
msgid ""
"B<dh_movefiles> is a debhelper program that is responsible for moving files "
"out of F<debian/tmp> or some other directory and into other package build "
@@ -7313,7 +11414,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_movefiles:23
+#: dh_movefiles:26
msgid ""
"Note: B<dh_install> is a much better program, and you are recommended to use "
"it instead of B<dh_movefiles>."
@@ -7322,13 +11423,13 @@ msgstr ""
"lugar de B<dh_movefiles>."
#. type: =item
-#: dh_movefiles:30
+#: dh_movefiles:33
msgid "debian/I<package>.files"
msgstr "debian/I<paquete>.files"
# type: textblock
#. type: textblock
-#: dh_movefiles:32
+#: dh_movefiles:35
msgid ""
"Lists the files to be moved into a package, separated by whitespace. The "
"filenames listed should be relative to F<debian/tmp/>. You can also list "
@@ -7341,7 +11442,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_movefiles:44
+#: dh_movefiles:47
msgid ""
"Instead of moving files out of F<debian/tmp> (the default), this option "
"makes it move files out of some other directory. Since the entire contents "
@@ -7357,13 +11458,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_movefiles:50
+#: dh_movefiles:53
msgid "B<-Xitem>, B<--exclude=item>"
msgstr "B<-Xelemento>, B<--exclude=elemento>"
# type: textblock
#. type: textblock
-#: dh_movefiles:52
+#: dh_movefiles:55
msgid ""
"Exclude files that contain B<item> anywhere in their filename from being "
"installed."
@@ -7373,7 +11474,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_movefiles:57
+#: dh_movefiles:60
msgid ""
"Lists files to move. The filenames listed should be relative to F<debian/tmp/"
">. You can also list directory names, and the whole directory will be moved. "
@@ -7388,7 +11489,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_movefiles:66
+#: dh_movefiles:69
msgid ""
"Note that files are always moved out of F<debian/tmp> by default (even if "
"you have instructed debhelper to use a compatibility level higher than one, "
@@ -7414,7 +11515,7 @@ msgstr "dh_perl - Calcula dependencias de Perl y limpia después de MakeMaker"
# type: textblock
#. type: textblock
-#: dh_perl:16
+#: dh_perl:20
msgid "B<dh_perl> [S<I<debhelper options>>] [B<-d>] [S<I<library dirs> ...>]"
msgstr ""
"B<dh_perl> [S<I<opciones-de-debhelper>>] [B<-d>] [S<I<directorios-"
@@ -7422,17 +11523,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_perl:20
+#: dh_perl:24
msgid ""
-"B<dh_perl> is a debhelper program that is responsible for generating the B<"
-"${perl:Depends}> substitutions and adding them to substvars files."
+"B<dh_perl> is a debhelper program that is responsible for generating the "
+"B<${perl:Depends}> substitutions and adding them to substvars files."
msgstr ""
"B<dh_perl> es un programa de debhelper que se encarga de generar las "
"sustituciones en B<${perl:Depends}> y añadirlas a los ficheros «substvars»."
# type: textblock
#. type: textblock
-#: dh_perl:23
+#: dh_perl:27
msgid ""
"The program will look at Perl scripts and modules in your package, and will "
"use this information to generate a dependency on B<perl> or B<perlapi>. The "
@@ -7446,7 +11547,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_perl:28
+#: dh_perl:32
msgid ""
"B<dh_perl> also cleans up empty directories that MakeMaker can generate when "
"installing Perl modules."
@@ -7456,13 +11557,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_perl:35
+#: dh_perl:39
msgid "B<-d>"
msgstr "B<-d>"
# type: textblock
#. type: textblock
-#: dh_perl:37
+#: dh_perl:41
msgid ""
"In some specific cases you may want to depend on B<perl-base> rather than "
"the full B<perl> package. If so, you can pass the -d option to make "
@@ -7477,7 +11578,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_perl:42
+#: dh_perl:46
msgid ""
"Note that this flag may cause no dependency on B<perl-base> to be generated "
"at all. B<perl-base> is Essential, so its dependency can be left out, unless "
@@ -7490,13 +11591,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_perl:46
+#: dh_perl:50
msgid "B<-V>"
msgstr "B<-V>"
# type: textblock
#. type: textblock
-#: dh_perl:48
+#: dh_perl:52
msgid ""
"By default, scripts and architecture independent modules don't depend on any "
"specific version of B<perl>. The B<-V> option causes the current version of "
@@ -7508,13 +11609,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_perl:52
+#: dh_perl:56
msgid "I<library dirs>"
msgstr "I<directorios-de-biblioteca>"
# type: textblock
#. type: textblock
-#: dh_perl:54
+#: dh_perl:58
msgid ""
"If your package installs Perl modules in non-standard directories, you can "
"make B<dh_perl> check those directories by passing their names on the "
@@ -7528,19 +11629,19 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_perl:63
+#: dh_perl:67
msgid "Debian policy, version 3.8.3"
msgstr "Normas de Debian, versión 3.8.3"
# type: textblock
#. type: textblock
-#: dh_perl:65
+#: dh_perl:69
msgid "Perl policy, version 1.20"
msgstr "Normas de Perl, versión 1.20"
# type: textblock
#. type: textblock
-#: dh_perl:160
+#: dh_perl:196
msgid "Brendan O'Dea <bod@debian.org>"
msgstr "Brendan O'Dea <bod@debian.org>"
@@ -7554,12 +11655,12 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_prep:14
+#: dh_prep:17
msgid "B<dh_prep> [S<I<debhelper options>>] [B<-X>I<item>]"
msgstr "B<dh_prep> [S<I<opciones-de-debhelper>>] [B<-X>I<elemento>]"
#. type: textblock
-#: dh_prep:18
+#: dh_prep:21
msgid ""
"B<dh_prep> is a debhelper program that performs some file cleanups in "
"preparation for building a binary package. (This is what B<dh_clean -k> used "
@@ -7573,7 +11674,7 @@ msgstr ""
"paquete binario."
#. type: textblock
-#: dh_prep:23
+#: dh_prep:26
msgid ""
"It is typically run at the top of the B<binary-arch> and B<binary-indep> "
"targets, or at the top of a target such as install that they depend on."
@@ -7584,7 +11685,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_prep:32
+#: dh_prep:35
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"deleted, even if they would normally be deleted. You may use this option "
@@ -7594,30 +11695,6 @@ msgstr ""
"nombre, incluso si se habrían borrado en condiciones normales. Puede "
"utilizar esta opción varias veces para crear una lista de ficheros a excluir."
-#. type: textblock
-#: dh_scrollkeeper:5
-msgid "dh_scrollkeeper - deprecated no-op"
-msgstr "dh_scrollkeeper - Orden obsoleta sin efecto"
-
-# type: textblock
-#. type: textblock
-#: dh_scrollkeeper:14
-msgid "B<dh_scrollkeeper> [S<I<debhelper options>>] [B<-n>] [S<I<directory>>]"
-msgstr ""
-"B<dh_scrollkeeper> [S<I<opciones-de-debhelper>>] [B<-n>] [S<I<directorio>>]"
-
-# type: textblock
-#. type: textblock
-#: dh_scrollkeeper:18
-msgid ""
-"B<dh_scrollkeeper> was a debhelper program that handled registering OMF "
-"files for ScrollKeeper. However, it no longer does anything, and is now "
-"deprecated."
-msgstr ""
-"Bdh_scrollkeeper> era un programa de debhelper que manipulaba el registro de "
-"ficheros OMF para ScrollKeeper. Por otra parte, ya no tiene efecto, y ahora "
-"está obsoleto."
-
# type: textblock
#. type: textblock
#: dh_shlibdeps:5
@@ -7626,7 +11703,7 @@ msgstr "dh_shlibdeps - Calcula dependencias sobre bibliotecas compartidas"
# type: textblock
#. type: textblock
-#: dh_shlibdeps:15
+#: dh_shlibdeps:19
msgid ""
"B<dh_shlibdeps> [S<I<debhelper options>>] [B<-L>I<package>] [B<-"
"l>I<directory>] [B<-X>I<item>] [S<B<--> I<params>>]"
@@ -7636,7 +11713,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:19
+#: dh_shlibdeps:23
msgid ""
"B<dh_shlibdeps> is a debhelper program that is responsible for calculating "
"shared library dependencies for packages."
@@ -7646,7 +11723,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:22
+#: dh_shlibdeps:26
msgid ""
"This program is merely a wrapper around L<dpkg-shlibdeps(1)> that calls it "
"once for each package listed in the F<control> file, passing it a list of "
@@ -7658,7 +11735,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:32
+#: dh_shlibdeps:36
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"passed to B<dpkg-shlibdeps>. This will make their dependencies be ignored. "
@@ -7672,18 +11749,18 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:39
+#: dh_shlibdeps:43
msgid "Pass I<params> to L<dpkg-shlibdeps(1)>."
msgstr "Introduce los I<parámetros> a L<dpkg-shlibdeps(1)>."
# type: =item
#. type: =item
-#: dh_shlibdeps:41
+#: dh_shlibdeps:45
msgid "B<-u>I<params>, B<--dpkg-shlibdeps-params=>I<params>"
msgstr "B<-u>I<parámetros>, B<--dpkg-shlibdeps-params=>I<parámetros>"
#. type: textblock
-#: dh_shlibdeps:43
+#: dh_shlibdeps:47
msgid ""
"This is another way to pass I<params> to L<dpkg-shlibdeps(1)>. It is "
"deprecated; use B<--> instead."
@@ -7693,13 +11770,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_shlibdeps:46
+#: dh_shlibdeps:50
msgid "B<-l>I<directory>[B<:>I<directory> ...]"
msgstr "B<-l>I<directorio>[B<:>I<directorio> ...]"
# type: textblock
#. type: textblock
-#: dh_shlibdeps:48
+#: dh_shlibdeps:52
msgid ""
"With recent versions of B<dpkg-shlibdeps>, this option is generally not "
"needed."
@@ -7709,7 +11786,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:51
+#: dh_shlibdeps:55
#, fuzzy
#| msgid ""
#| "Before B<dpkg-shlibdeps> is run, B<LD_LIBRARY_PATH> will have added to it "
@@ -7735,16 +11812,21 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_shlibdeps:59
+#: dh_shlibdeps:63
msgid "B<-L>I<package>, B<--libpackage=>I<package>"
msgstr "B<-L>I<paquete>, B<--libpackage=>I<paquete>"
# type: textblock
#. type: textblock
-#: dh_shlibdeps:61
+#: dh_shlibdeps:65
+#, fuzzy
+#| msgid ""
+#| "With recent versions of B<dpkg-shlibdeps>, this option is generally not "
+#| "needed, unless your package builds multiple flavors of the same library."
msgid ""
"With recent versions of B<dpkg-shlibdeps>, this option is generally not "
-"needed, unless your package builds multiple flavors of the same library."
+"needed, unless your package builds multiple flavors of the same library or "
+"is relying on F<debian/shlibs.local> for an internal library."
msgstr ""
"Habitualmente, esta opción no es necesaria con las últimas versiones de "
"B<dpkg-shlibdeps>, a menos que su paquete construya diferentes variantes de "
@@ -7752,7 +11834,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:64
+#: dh_shlibdeps:69
msgid ""
"It tells B<dpkg-shlibdeps> (via its B<-S> parameter) to look first in the "
"package build directory for the specified package, when searching for "
@@ -7762,9 +11844,15 @@ msgstr ""
"en el directorio de construcción del paquete del paquete especificado cuando "
"busque bibliotecas, ficheros «symbols» y «shlibs»."
+#. type: textblock
+#: dh_shlibdeps:73
+msgid ""
+"If needed, this can be passed multiple times with different package names."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_shlibdeps:72
+#: dh_shlibdeps:80
msgid ""
"Suppose that your source package produces libfoo1, libfoo-dev, and libfoo-"
"bin binary packages. libfoo-bin links against libfoo1, and should depend on "
@@ -7777,7 +11865,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh_shlibdeps:76
+#: dh_shlibdeps:84
#, no-wrap
msgid ""
"\tdh_makeshlibs\n"
@@ -7790,7 +11878,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:79
+#: dh_shlibdeps:87
msgid ""
"This will have the effect of generating automatically a shlibs file for "
"libfoo1, and using that file and the libfoo1 library in the F<debian/libfoo1/"
@@ -7803,7 +11891,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:84
+#: dh_shlibdeps:92
msgid ""
"If a libbar1 package is also produced, that is an alternate build of libfoo, "
"and is installed into F</usr/lib/bar/>, you can make libfoo-bin depend on "
@@ -7815,7 +11903,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh_shlibdeps:88
+#: dh_shlibdeps:96
#, no-wrap
msgid ""
"\tdh_shlibdeps -Llibbar1 -l/usr/lib/bar\n"
@@ -7826,7 +11914,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:154
+#: dh_shlibdeps:206
msgid "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
msgstr "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
@@ -7841,7 +11929,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_strip:15
+#: dh_strip:18
msgid ""
"B<dh_strip> [S<I<debhelper options>>] [B<-X>I<item>] [B<--dbg-"
"package=>I<package>] [B<--keep-debug>]"
@@ -7851,11 +11939,16 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_strip:19
+#: dh_strip:22
+#, fuzzy
+#| msgid ""
+#| "B<dh_strip> is a debhelper program that is responsible for stripping "
+#| "executables, shared libraries, and static libraries that are not used for "
+#| "debugging."
msgid ""
-"B<dh_strip> is a debhelper program that is responsible for stripping "
-"executables, shared libraries, and static libraries that are not used for "
-"debugging."
+"B<dh_strip> is a debhelper program that is responsible for stripping out "
+"debug symbols in executables, shared libraries, and static libraries that "
+"are not needed during execution."
msgstr ""
"B<dh_strip> es un programa de debhelper responsable de eliminar los símbolos "
"de los ejecutables, bibliotecas compartidas y estáticas que no se utilizan "
@@ -7863,7 +11956,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_strip:23
+#: dh_strip:26
msgid ""
"This program examines your package build directories and works out what to "
"strip on its own. It uses L<file(1)> and file permissions and filenames to "
@@ -7883,7 +11976,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_strip:31
+#: dh_strip:34
msgid ""
"Since it is very hard to automatically guess if a file is a module, and hard "
"to determine how to strip a module, B<dh_strip> does not currently deal with "
@@ -7893,27 +11986,26 @@ msgstr ""
"módulo, y determinar cómo eliminar un módulo, B<dh_strip> actualmente no "
"trata de eliminar los símbolos de módulos binarios, como los ficheros F<.o>."
-# type: textblock
-#. type: textblock
-#: dh_strip:41
-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 "
-"things to exclude."
-msgstr ""
-"No elimina los ficheros que contienen I<elemento> en cualquier lugar de su "
-"nombres. Puede utilizar esta opción muchas veces para construir una lista de "
-"cosas a excluir."
-
# type: =item
#. type: =item
-#: dh_strip:45
+#: dh_strip:48
msgid "B<--dbg-package=>I<package>"
msgstr "B<--dbg-package=>I<paquete>"
+#. type: textblock
+#: dh_strip:50 dh_strip:70
+msgid ""
+"B<This option is a now special purpose option that you normally do not "
+"need>. In most cases, there should be little reason to use this option for "
+"new source packages as debhelper automatically generates debug packages "
+"(\"dbgsym packages\"). B<If you have a manual --dbg-package> that you want "
+"to replace with an automatically generated debug symbol package, please see "
+"the B<--dbgsym-migration> option."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_strip:47
+#: dh_strip:58
msgid ""
"Causes B<dh_strip> to save debug symbols stripped from the packages it acts "
"on as independent files in the package build directory of the specified "
@@ -7926,7 +12018,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_strip:51
+#: dh_strip:62
msgid ""
"For example, if your packages are libfoo and foo and you want to include a "
"I<foo-dbg> package with debugging symbols, use B<dh_strip --dbg-"
@@ -7936,32 +12028,22 @@ msgstr ""
"I<foo-dbg> con símbolos de depuración, use B<dh_strip --dbg-package=>I<foo-"
"dbg>."
-# type: textblock
#. type: textblock
-#: dh_strip:54
+#: dh_strip:65
msgid ""
-"Note that this option behaves significantly different in debhelper "
-"compatibility levels 4 and below. Instead of specifying the name of a debug "
-"package to put symbols in, it specifies a package (or packages) which should "
-"have separated debug symbols, and the separated symbols are placed in "
-"packages with B<-dbg> added to their name."
+"This option implies B<--no-automatic-dbgsym> and I<cannot> be used with B<--"
+"automatic-dbgsym> or B<--dbgsym-migration>."
msgstr ""
-"Tenga en cuenta que esta opción se comporta de forma significativamente "
-"distinta en los niveles de compatibilidad de debhelper 4 o inferior. En "
-"lugar de especificar el nombre de un paquete de depuración en el que poner "
-"los símbolos, especifica un paquete (o paquetes) que deben tener símbolos de "
-"depuración separados, y los símbolos separados se colocan en paquetes "
-"añadiendo B<-dbg> al final de su nombre."
# type: =item
#. type: =item
-#: dh_strip:60
+#: dh_strip:68
msgid "B<-k>, B<--keep-debug>"
msgstr "B<-k>, B<--keep-debug>"
# type: textblock
#. type: textblock
-#: dh_strip:62
+#: dh_strip:78
msgid ""
"Debug symbols will be retained, but split into an independent file in F<usr/"
"lib/debug/> in the package build directory. B<--dbg-package> is easier to "
@@ -7972,90 +12054,141 @@ msgstr ""
"paquete. B<--dbg-package> es más fácil de utilizar que esta opción, pero "
"esta opción es más flexible."
-# type: textblock
#. type: textblock
-#: dh_strip:70
+#: dh_strip:82
msgid ""
-"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
-"nothing will be stripped, in accordance with Debian policy (section 10.1 "
-"\"Binaries\")."
+"This option implies B<--no-automatic-dbgsym> and I<cannot> be used with B<--"
+"automatic-dbgsym>."
msgstr ""
-"Si la variable de entorno B<DEB_BUILD_OPTIONS> contiene B<nostrip>, no se "
-"eliminará nada, conforme a las normas de Debian (sección 10.1 «Binarios»)."
-# type: textblock
-#. type: textblock
-#: dh_strip:76
-msgid "Debian policy, version 3.0.1"
-msgstr "Normas de Debian, versión 3.0.1"
-
-# type: textblock
-#. type: textblock
-#: dh_suidregister:5
-msgid "dh_suidregister - suid registration program (deprecated)"
-msgstr "dh_suidregister - Programa de registro suid (obsoleto)"
+# type: =item
+#. type: =item
+#: dh_strip:85
+#, fuzzy
+#| msgid "B<--dbg-package=>I<package>"
+msgid "B<--dbgsym-migration=>I<package-relation>"
+msgstr "B<--dbg-package=>I<paquete>"
-# type: textblock
#. type: textblock
-#: dh_suidregister:9 dh_undocumented:14
-msgid "Do not run!"
-msgstr "¡No lo ejecute!"
+#: dh_strip:87
+msgid ""
+"This option is used to migrate from a manual \"-dbg\" package (created with "
+"B<--dbg-package>) to an automatic generated debug symbol package. This "
+"option should describe a valid B<Replaces>- and B<Breaks>-relation, which "
+"will be added to the debug symbol package to avoid file conflicts with the "
+"(now obsolete) -dbg package."
+msgstr ""
-# type: textblock
#. type: textblock
-#: dh_suidregister:13
+#: dh_strip:93
msgid ""
-"This program used to register suid and sgid files with L<suidregister(1)>, "
-"but with the introduction of L<dpkg-statoverride(8)>, registration of files "
-"in this way is unnecessary, and even harmful, so this program is deprecated "
-"and should not be used."
+"This option implies B<--automatic-dbgsym> and I<cannot> be used with B<--"
+"keep-debug>, B<--dbg-package> or B<--no-automatic-dbgsym>."
msgstr ""
-"Este programa se utilizaba para registrar ficheros suid y sgid con "
-"L<suidregister(1)>, pero con la introducción de L<dpkg-statoverrride(8)>, el "
-"registro de ficheros de esta forma es innecesaria e incluso peligrosa, por "
-"lo que este programa está obsoleto y no se debería utilizar."
-
-# type: =head1
-#. type: =head1
-#: dh_suidregister:18
-msgid "CONVERTING TO STATOVERRIDE"
-msgstr "MIGRAR A STATOVERRIDE"
-# type: textblock
#. type: textblock
-#: dh_suidregister:20
-msgid ""
-"Converting a package that uses this program to use the new statoverride "
-"mechanism is easy. Just remove the call to B<dh_suidregister> from F<debian/"
-"rules>, and add a versioned conflicts into your F<control> file, as follows:"
+#: dh_strip:96
+msgid "Examples:"
msgstr ""
-"El mecanismo para adaptar un paquete que utiliza este programa al nuevo "
-"mecanismo statoverride es sencillo. Sólo elimine la invocación a "
-"B<dh_suidregister> en F<debian/rules>, y añada un conflicto de versión en su "
-"fichero de control, como sigue:"
-# type: verbatim
#. type: verbatim
-#: dh_suidregister:25
+#: dh_strip:98
#, no-wrap
msgid ""
-" Conflicts: suidmanager (<< 0.50)\n"
+" dh_strip --dbgsym-migration='libfoo-dbg (<< 2.1-3~)'\n"
"\n"
msgstr ""
-" Conflicts: suidmanager (<< 0.50)\n"
+
+#. type: verbatim
+#: dh_strip:100
+#, no-wrap
+msgid ""
+" dh_strip --dbgsym-migration='libfoo-tools-dbg (<< 2.1-3~), libfoo2-dbg (<< 2.1-3~)'\n"
"\n"
+msgstr ""
+
+# type: =item
+#. type: =item
+#: dh_strip:102
+#, fuzzy
+#| msgid "B<-i>, B<--indep>"
+msgid "B<--automatic-dbgsym>, B<--no-automatic-dbgsym>"
+msgstr "B<-i>, B<--indep>"
+
+#. type: textblock
+#: dh_strip:104
+msgid ""
+"Control whether B<dh_strip> should be creating debug symbol packages when "
+"possible."
+msgstr ""
+
+#. type: textblock
+#: dh_strip:107
+msgid "The default is to create debug symbol packages."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: dh_strip:109
+#, fuzzy
+#| msgid "B<-i>, B<--indep>"
+msgid "B<--ddebs>, B<--no-ddebs>"
+msgstr "B<-i>, B<--indep>"
+
+# type: =item
+#. type: textblock
+#: dh_strip:111
+#, fuzzy
+#| msgid "B<-i>, B<--indep>"
+msgid "Historical name for B<--automatic-dbgsym> and B<--no-automatic-dbgsym>."
+msgstr "B<-i>, B<--indep>"
+
+# type: =item
+#. type: =item
+#: dh_strip:113
+#, fuzzy
+#| msgid "B<--dbg-package=>I<package>"
+msgid "B<--ddeb-migration=>I<package-relation>"
+msgstr "B<--dbg-package=>I<paquete>"
+
+#. type: textblock
+#: dh_strip:115
+msgid "Historical name for B<--dbgsym-migration>."
+msgstr ""
# type: textblock
#. type: textblock
-#: dh_suidregister:27
+#: dh_strip:121
+#, fuzzy
+#| msgid ""
+#| "If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
+#| "nothing will be stripped, in accordance with Debian policy (section 10.1 "
+#| "\"Binaries\")."
msgid ""
-"The conflicts is only necessary if your package used to register things with "
-"suidmanager; if it did not, you can just remove the call to this program "
-"from your rules file."
+"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
+"nothing will be stripped, in accordance with Debian policy (section 10.1 "
+"\"Binaries\"). This will also inhibit the automatic creation of debug "
+"symbol packages."
+msgstr ""
+"Si la variable de entorno B<DEB_BUILD_OPTIONS> contiene B<nostrip>, no se "
+"eliminará nada, conforme a las normas de Debian (sección 10.1 «Binarios»)."
+
+#. type: textblock
+#: dh_strip:126
+msgid ""
+"The automatic creation of debug symbol packages can also be prevented by "
+"adding B<noautodbgsym> to the B<DEB_BUILD_OPTIONS> environment variable. "
+"However, B<dh_strip> will still add debuglinks to ELF binaries when this "
+"flag is set. This is to ensure that the regular deb package will be "
+"identical with and without this flag (assuming it is otherwise \"bit-for-"
+"bit\" reproducible)."
msgstr ""
-"El conflicto solamente es necesario si su paquete registraba cosas con "
-"suidmanager; en caso contrario, puede simplemente eliminar la invocación a "
-"este programa de su fichero «rules»."
+
+# type: textblock
+#. type: textblock
+#: dh_strip:135
+msgid "Debian policy, version 3.0.1"
+msgstr "Normas de Debian, versión 3.0.1"
# type: textblock
#. type: textblock
@@ -8066,13 +12199,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_testdir:14
+#: dh_testdir:17
msgid "B<dh_testdir> [S<I<debhelper options>>] [S<I<file> ...>]"
msgstr "B<dh_testdir> [S<I<opciones-de-debhelper>>] [S<I<fichero> ...>]"
# type: textblock
#. type: textblock
-#: dh_testdir:18
+#: dh_testdir:21
msgid ""
"B<dh_testdir> tries to make sure that you are in the correct directory when "
"building a Debian package. It makes sure that the file F<debian/control> "
@@ -8086,74 +12219,111 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_testdir:29
+#: dh_testdir:32
msgid "Test for the existence of these files too."
msgstr "Comprueba también la existencia de estos ficheros."
# type: textblock
#. type: textblock
-#: dh_testroot:5
-msgid "dh_testroot - ensure that a package is built as root"
+#: dh_testroot:7
+#, fuzzy
+#| msgid "dh_testroot - ensure that a package is built as root"
+msgid ""
+"dh_testroot - ensure that a package is built with necessary level of root "
+"permissions"
msgstr ""
"dh_testroot - Compruebe que el paquete se construye como usuario «root»"
# type: textblock
#. type: textblock
-#: dh_testroot:9
+#: dh_testroot:11
msgid "B<dh_testroot> [S<I<debhelper options>>]"
msgstr "B<dh_testroot> [S<I<opciones-de-debhelper>>]"
-# type: textblock
#. type: textblock
-#: dh_testroot:13
+#: dh_testroot:15
msgid ""
-"B<dh_testroot> simply checks to see if you are root. If not, it exits with "
-"an error. Debian packages must be built as root, though you can use "
-"L<fakeroot(1)>"
+"B<dh_testroot> is used to determine if the target is being run with suffient "
+"access to root(-like) features."
msgstr ""
-"B<dh_testroot> simplemente comprueba si el usuario es el usuario «root». De "
-"no ser así, finaliza con un error. Los paquetes de Debian se deben construir "
-"como el usuario «root», aunque puede utilizar L<fakeroot(1)>"
-# type: textblock
#. type: textblock
-#: dh_undocumented:5
-msgid "dh_undocumented - undocumented.7 symlink program (deprecated no-op)"
+#: dh_testroot:18
+msgid ""
+"The definition of sufficient access depends on whether the builder (the tool "
+"invoking the F<debian/rules> target) supports the I<Rules-Requires-Root> "
+"(R³) field. If the builder supports R³, then it will set the environment "
+"variable I<DEB_RULES_REQUIRES_ROOT> and B<dh_testroot> will validate that "
+"the builder followed the minimum requirements for the given value of "
+"I<DEB_RULES_REQUIRES_ROOT>."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:25
+msgid ""
+"If the builder does not support I<Rules-Requires-Root>, then it will not set "
+"the I<DEB_RULES_REQUIRES_ROOT> environment variable. This will in turn make "
+"B<dh_testroot> (and the rest of debhelper) fall back to assuming that "
+"(fake)root is implied."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:30
+msgid ""
+"The following is a summary of how B<dh_testroot> behaves based on the "
+"I<DEB_RULES_REQUIRES_ROOT> environment variable (leading and trailing "
+"whitespace in the variable is ignored)."
msgstr ""
-"dh_undocumented - Programa de enlace simbólico a undocumented.7 (orden "
-"obsoleta sin efecto)"
-# type: textblock
#. type: textblock
-#: dh_undocumented:18
+#: dh_testroot:38
msgid ""
-"This program used to make symlinks to the F<undocumented.7> man page for man "
-"pages not present in a package. Debian policy now frowns on use of the "
-"F<undocumented.7> man page, and so this program does nothing, and should not "
-"be used."
+"If unset, or set to C<binary-targets>, then B<dh_testroot> asserts that it "
+"is run as root or under L<fakeroot(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:43
+msgid ""
+"If set to C<no>, then B<dh_testroot> returns successfully (without "
+"performing any additional checks)."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:48
+msgid ""
+"If set to any other value than the above, then B<dh_testroot> asserts that "
+"it is either run as root (or under L<fakeroot(1)>) or the builder has "
+"provided the B<DEB_GAIN_ROOT_CMD> environment variable (e.g. via dpkg-"
+"buildpackage -r)."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:55
+msgid ""
+"Please note that B<dh_testroot> does I<not> read the I<Rules-Requires-Root> "
+"field. Which implies that B<dh_testroot> may produce incorrect result if "
+"the builder lies in I<DEB_RULES_REQUIRES_ROOT>. On the flip side, it also "
+"enables things like testing for what will happen when "
+"I<DEB_RULES_REQUIRES_ROOT> is set to a given value."
msgstr ""
-"Este programa se utilizaba para crear enlaces simbólicos a la página de "
-"manual F<undocumented.7> para páginas de manual no presentes en un paquete. "
-"Las normas de Debian ahora desaprueban el uso de la página de manual "
-"F<undocumented.7>, y debido a ello este programa no hace nada y no se debe "
-"utilizar."
# type: textblock
#. type: textblock
-#: dh_usrlocal:5
+#: dh_usrlocal:7
msgid "dh_usrlocal - migrate usr/local directories to maintainer scripts"
msgstr ""
"dh_usrlocal - Migra directorios «usr/local» a scripts del desarrollador"
# type: textblock
#. type: textblock
-#: dh_usrlocal:17
+#: dh_usrlocal:21
msgid "B<dh_usrlocal> [S<I<debhelper options>>] [B<-n>]"
msgstr "B<dh_usrlocal> [S<I<opciones-de-debhelper>>] [B<-n>]"
# type: textblock
#. type: textblock
-#: dh_usrlocal:21
+#: dh_usrlocal:25
msgid ""
"B<dh_usrlocal> is a debhelper program that can be used for building packages "
"that will provide a subdirectory in F</usr/local> when installed."
@@ -8163,7 +12333,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_usrlocal:24
+#: dh_usrlocal:28
msgid ""
"It finds subdirectories of F<usr/local> in the package build directory, and "
"removes them, replacing them with maintainer script snippets (unless B<-n> "
@@ -8181,37 +12351,1132 @@ msgstr ""
"B<dh_installdeb>. Para una explicación de los fragmentos de scripts de "
"desarrollador de Debhelper consulte L<dh_installdeb(1)>."
-# type: textblock
#. type: textblock
-#: dh_usrlocal:32
+#: dh_usrlocal:36
msgid ""
-"If the directories found in the build tree have unusual owners, groups, or "
-"permissions, then those values will be preserved in the directories made by "
-"the F<postinst> script. However, as a special exception, if a directory is "
-"owned by root.root, it will be treated as if it is owned by root.staff and "
-"is mode 2775. This is useful, since that is the group and mode policy "
-"recommends for directories in F</usr/local>."
+"When the I<DEB_RULES_REQUIRES_ROOT> environment variable is not "
+"(effectively) I<binary-targets>, the directories in F</usr/local> will be "
+"handled as if they were owned by root:root (see below)."
+msgstr ""
+
+#. type: textblock
+#: dh_usrlocal:40
+msgid ""
+"When the I<DEB_RULES_REQUIRES_ROOT> environment variable has an effective "
+"value of I<binary-targets>, the owners, groups and permissions will be "
+"preserved with the sole exception where the directory is owned by root:root."
+msgstr ""
+
+#. type: textblock
+#: dh_usrlocal:44
+msgid ""
+"If a directory is owned by root:root, then ownership will be determined at "
+"install time. The ownership and permission bits will either be root:root "
+"mode 0755 or root:staff mode 02775. The actual choice depends on whether "
+"the system has F</etc/staff-group-for-usr-local> (as documented in the "
+"Debian Policy Manual §9.1.2 since version 4.1.4)"
msgstr ""
-"Si los directorios encontrados en el árbol de construcción tienen "
-"propietarios, grupos o permisos inusuales, estos valores serán preservados "
-"en los directorios hechos por el script F<postinst>. Sin embargo, como una "
-"excepción especial, si un directorio tiene como propietario root.root, se "
-"tratará como si tuviese como dueño root.staff y en modo 2775. Esto último es "
-"útil, puesto que esa es la norma recomendada para el grupo y modo de los "
-"directorios en F</usr/local>."
# type: textblock
#. type: textblock
-#: dh_usrlocal:57
+#: dh_usrlocal:68
msgid "Debian policy, version 2.2"
msgstr "Normas de Debian, versión 2.2"
# type: textblock
#. type: textblock
-#: dh_usrlocal:124
+#: dh_usrlocal:144
msgid "Andrew Stribblehill <ads@debian.org>"
msgstr "Andrew Stribblehill <ads@debian.org>"
+#. type: textblock
+#: dh_systemd_enable:5
+msgid "dh_systemd_enable - enable/disable systemd unit files"
+msgstr ""
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:18
+#, fuzzy
+#| msgid ""
+#| "B<dh_installexamples> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
+#| "[S<I<file> ...>]"
+msgid ""
+"B<dh_systemd_enable> [S<I<debhelper options>>] [B<--no-enable>] [B<--"
+"name=>I<name>] [S<I<unit file> ...>]"
+msgstr ""
+"B<dh_installexamples> [S<I<opciones-de-debhelper>>] [B<-A>] [B<-"
+"X>I<elemento>] [S<I<fichero> ...>]"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:22
+#, fuzzy
+#| msgid ""
+#| "B<dh_installudev> is a debhelper program that is responsible for "
+#| "installing B<udev> rules files."
+msgid ""
+"B<dh_systemd_enable> is a debhelper program that is responsible for enabling "
+"and disabling systemd unit files."
+msgstr ""
+"B<dh_installudev> es un programa de debhelper responsable de instalar "
+"ficheros de reglas de B<udev>."
+
+#. type: textblock
+#: dh_systemd_enable:25
+msgid ""
+"In the simple case, it finds all unit files installed by a package (e.g. "
+"bacula-fd.service) and enables them. It is not necessary that the machine "
+"actually runs systemd during package installation time, enabling happens on "
+"all machines in order to be able to switch from sysvinit to systemd and back."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:30
+msgid ""
+"In the complex case, you can call B<dh_systemd_enable> and "
+"B<dh_systemd_start> manually (by overwriting the debian/rules targets) and "
+"specify flags per unit file. An example is colord, which ships colord."
+"service, a dbus-activated service without an [Install] section. This service "
+"file cannot be enabled or disabled (a state called \"static\" by systemd) "
+"because it has no [Install] section. Therefore, running dh_systemd_enable "
+"does not make sense."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:37
+msgid ""
+"For only generating blocks for specific service files, you need to pass them "
+"as arguments, e.g. B<dh_systemd_enable quota.service> and "
+"B<dh_systemd_enable --name=quotarpc quotarpc.service>."
+msgstr ""
+
+#. type: =item
+#: dh_systemd_enable:45
+#, fuzzy
+#| msgid "debian/I<package>.logcheck.ignore.server"
+msgid "debian/I<package>.service, debian/I<package>@.service"
+msgstr "debian/I<paquete>.logcheck.ignore.server"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:47
+#, fuzzy
+#| msgid ""
+#| "If this exists, it is installed into etc/init/I<package>.conf in the "
+#| "package build directory."
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"service >> (or F<< lib/systemd/system/I<package>@.service >>) in the package "
+"build directory."
+msgstr ""
+"Si existe, se instala en «etc/init/I<paquete>.conf» en el directorio de "
+"construcción del paquete."
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:52
+#, fuzzy
+#| msgid ""
+#| "If this exists, it is installed into etc/init.d/I<package> in the package "
+#| "build directory."
+msgid ""
+"If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in "
+"the package build directory."
+msgstr ""
+"Si existe, se instala en «etc/init/I<paquete>» en el directorio de "
+"construcción del paquete."
+
+#. type: =item
+#: dh_systemd_enable:55
+#, fuzzy
+#| msgid "debian/I<package>.manpages"
+msgid "debian/I<package>.target, debian/I<package>@.target"
+msgstr "debian/I<paquete>.manpages"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:57
+#, fuzzy
+#| msgid ""
+#| "If this exists, it is installed into etc/init/I<package>.conf in the "
+#| "package build directory."
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"target >> (or F<< lib/systemd/system/I<package>@.target >>) in the package "
+"build directory."
+msgstr ""
+"Si existe, se instala en «etc/init/I<paquete>.conf» en el directorio de "
+"construcción del paquete."
+
+#. type: =item
+#: dh_systemd_enable:60
+#, fuzzy
+#| msgid "debian/I<package>.manpages"
+msgid "debian/I<package>.socket, debian/I<package>@.socket"
+msgstr "debian/I<paquete>.manpages"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:62
+#, fuzzy
+#| msgid ""
+#| "If this exists, it is installed into etc/init/I<package>.conf in the "
+#| "package build directory."
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"socket >> (or F<< lib/systemd/system/I<package>@.socket >>) in the package "
+"build directory."
+msgstr ""
+"Si existe, se instala en «etc/init/I<paquete>.conf» en el directorio de "
+"construcción del paquete."
+
+#. type: =item
+#: dh_systemd_enable:65
+#, fuzzy
+#| msgid "debian/I<package>.menu"
+msgid "debian/I<package>.mount"
+msgstr "debian/I<paquete>.menu"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:67
+#, fuzzy
+#| msgid ""
+#| "If this exists, it is installed into etc/init/I<package>.conf in the "
+#| "package build directory."
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.mount "
+">> in the package build directory."
+msgstr ""
+"Si existe, se instala en «etc/init/I<paquete>.conf» en el directorio de "
+"construcción del paquete."
+
+#. type: =item
+#: dh_systemd_enable:70
+#, fuzzy
+#| msgid "debian/I<package>.manpages"
+msgid "debian/I<package>.path, debian/I<package>@.path"
+msgstr "debian/I<paquete>.manpages"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:72
+#, fuzzy
+#| msgid ""
+#| "If this exists, it is installed into etc/init/I<package>.conf in the "
+#| "package build directory."
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.path "
+">> (or F<< lib/systemd/system/I<package>@.path >>) in the package build "
+"directory."
+msgstr ""
+"Si existe, se instala en «etc/init/I<paquete>.conf» en el directorio de "
+"construcción del paquete."
+
+#. type: =item
+#: dh_systemd_enable:75
+#, fuzzy
+#| msgid "debian/I<package>.manpages"
+msgid "debian/I<package>.timer, debian/I<package>@.timer"
+msgstr "debian/I<paquete>.manpages"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:77
+#, fuzzy
+#| msgid ""
+#| "If this exists, it is installed into etc/init/I<package>.conf in the "
+#| "package build directory."
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.timer "
+">> (or F<< lib/systemd/system/I<package>@.timer >>) in the package build "
+"directory."
+msgstr ""
+"Si existe, se instala en «etc/init/I<paquete>.conf» en el directorio de "
+"construcción del paquete."
+
+#. type: textblock
+#: dh_systemd_enable:88
+msgid "Disable the service(s) on purge, but do not enable them on install."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:90
+msgid ""
+"B<Note> that this option does not affect whether the services are started. "
+"That is controlled by L<dh_systemd_start(1)> (using e.g. its B<--no-start> "
+"option)."
+msgstr ""
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:96
+#, fuzzy
+#| msgid ""
+#| "Install the init script (and default file) as well as upstart job file "
+#| "using the filename I<name> instead of the default filename, which is the "
+#| "package name. When this parameter is used, B<dh_installinit> looks for "
+#| "and installs files named F<debian/package.name.init>, F<debian/package."
+#| "name.default> and F<debian/package.name.upstart> instead of the usual "
+#| "F<debian/package.init>, F<debian/package.default> and F<debian/package."
+#| "upstart>."
+msgid ""
+"Install the service file as I<name.service> instead of the default filename, "
+"which is the I<package.service>. When this parameter is used, "
+"B<dh_systemd_enable> looks for and installs files named F<debian/package."
+"name.service> instead of the usual F<debian/package.service>."
+msgstr ""
+"Instala el script de init (y el fichero de valores predeterminados) así como "
+"la tarea de upstart utilizando el nombre de fichero I<nombre> en vez del "
+"nombre predeterminado, que es el nombre del paquete. Cuando se utiliza este "
+"parámetro, B<dh_installinit> busca e instala ficheros que se llamen F<debian/"
+"paquete.nombre.init>, F<debian/paquete.nombre.default> y F<debian/paquete."
+"nombre.upstart>, en vez de los usuales F<debian/paquete.init>, F<debian/"
+"paquete.default> y F<debian/paquete.upstart>."
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:105 dh_systemd_start:70
+#, fuzzy
+#| msgid ""
+#| "Note that this command is not idempotent. L<dh_prep(1)> should be called "
+#| "between invocations of this command. Otherwise, it may cause multiple "
+#| "instances of the same text to be added to maintainer scripts."
+msgid ""
+"Note that 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."
+msgstr ""
+"Esta orden no es idempotente. Debería invocar L<dh_prep(1)> entre cada "
+"invocación de esta orden. De otro modo, puede causar que los scripts del "
+"desarrollador contengan partes duplicadas."
+
+#. type: textblock
+#: dh_systemd_enable:110
+msgid ""
+"Note that B<dh_systemd_enable> should be run before B<dh_installinit>. The "
+"default sequence in B<dh> does the right thing, this note is only relevant "
+"when you are calling B<dh_systemd_enable> manually."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:282
+msgid "L<dh_systemd_start(1)>, L<debhelper(7)>"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:286 dh_systemd_start:286
+msgid "pkg-systemd-maintainers@lists.alioth.debian.org"
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_start:5
+msgid "dh_systemd_start - start/stop/restart systemd unit files"
+msgstr ""
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_start:19
+#, fuzzy
+#| msgid ""
+#| "B<dh_installdocs> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
+#| "[S<I<file> ...>]"
+msgid ""
+"B<dh_systemd_start> [S<I<debhelper options>>] [B<--restart-after-upgrade>] "
+"[B<--no-stop-on-upgrade>] [S<I<unit file> ...>]"
+msgstr ""
+"B<dh_installdocs> [S<I<opciones-de-debhelper>>] [B<-A>] [B<-X>I<elemento>] "
+"[S<I<fichero> ...>]"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_start:23
+#, fuzzy
+#| msgid ""
+#| "B<dh_gconf> is a debhelper program that is responsible for installing "
+#| "GConf defaults files and registering GConf schemas."
+msgid ""
+"B<dh_systemd_start> is a debhelper program that is responsible for starting/"
+"stopping or restarting systemd unit files in case no corresponding sysv init "
+"script is available."
+msgstr ""
+"B<dh_gconf> es un programa de debhelper responsable de la instalación de "
+"ficheros de valores predeterminados de GConf («defaults») y de registrar "
+"esquemas de GConf."
+
+#. type: textblock
+#: dh_systemd_start:27
+msgid ""
+"As with B<dh_installinit>, the unit file is stopped before upgrades and "
+"started afterwards (unless B<--restart-after-upgrade> is specified, in which "
+"case it will only be restarted after the upgrade). This logic is not used "
+"when there is a corresponding SysV init script because invoke-rc.d performs "
+"the stop/start/restart in that case."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: dh_systemd_start:37
+#, fuzzy
+#| msgid "B<-R>, B<--restart-after-upgrade>"
+msgid "B<--restart-after-upgrade>"
+msgstr "B<-R>, B<--restart-after-upgrade>"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_start:39
+#, fuzzy
+#| msgid ""
+#| "Do not stop the init script until after the package upgrade has been "
+#| "completed. This is different than the default behavior, which stops the "
+#| "script in the F<prerm>, and starts it again in the F<postinst>."
+msgid ""
+"Do not stop the unit file until after the package upgrade has been "
+"completed. This is the default behaviour in compat 10."
+msgstr ""
+"No detiene el script de init hasta que se complete la actualización del "
+"paquete. Es diferente del comportamiento predeterminado, que detiene el "
+"script mediante, F<prerm> y lo reinicia mediante F<postinst>."
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_start:42
+#, fuzzy
+#| msgid ""
+#| "Do not stop the init script until after the package upgrade has been "
+#| "completed. This is different than the default behavior, which stops the "
+#| "script in the F<prerm>, and starts it again in the F<postinst>."
+msgid ""
+"In earlier compat levels the default was to stop the unit file in the "
+"F<prerm>, and start it again in the F<postinst>."
+msgstr ""
+"No detiene el script de init hasta que se complete la actualización del "
+"paquete. Es diferente del comportamiento predeterminado, que detiene el "
+"script mediante, F<prerm> y lo reinicia mediante F<postinst>."
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_start:59
+#, fuzzy
+#| msgid "Do not stop init script on upgrade."
+msgid "Do not stop service on upgrade."
+msgstr "No detiene el script de init durante una actualización."
+
+#. type: textblock
+#: dh_systemd_start:63
+msgid ""
+"Do not start the unit file after upgrades and after initial installation "
+"(the latter is only relevant for services without a corresponding init "
+"script)."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_start:75
+msgid ""
+"Note that B<dh_systemd_start> should be run after B<dh_installinit> so that "
+"it can detect corresponding SysV init scripts. The default sequence in B<dh> "
+"does the right thing, this note is only relevant when you are calling "
+"B<dh_systemd_start> manually."
+msgstr ""
+
+#. type: textblock
+#: strings-kept-translations.pod:7
+#, fuzzy
+#| msgid ""
+#| "This compatibility level is still open for development; use with caution."
+msgid "This compatibility level is open for beta testing; changes may occur."
+msgstr ""
+"Este nivel de compatibilidad aún está en desarrollo, utilícelo con "
+"precaución."
+
+# type: textblock
+#, fuzzy
+#~| msgid ""
+#~| "Set to B<1> to enable verbose mode. Debhelper will output every command "
+#~| "it runs that modifies files on the build system."
+#~ 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 ""
+#~ "Defina como B<1> para activar el modo explicativo. Debhelper mostrará "
+#~ "todas las órdenes utilizadas que modifiquen ficheros en el sistema en el "
+#~ "que se hace la construcción."
+
+# type: textblock
+#, fuzzy
+#~| msgid ""
+#~| "If this exists, it is installed into etc/init/I<package>.conf in the "
+#~| "package build directory."
+#~ msgid ""
+#~ "If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf "
+#~ "in the package build directory. (The tmpfiles.d mechanism is currently "
+#~ "only used by systemd.) Only used in compat levels 10 and below."
+#~ msgstr ""
+#~ "Si existe, se instala en «etc/init/I<paquete>.conf» en el directorio de "
+#~ "construcción del paquete."
+
+# type: textblock
+#, fuzzy
+#~| msgid ""
+#~| "If this exists, it is installed into etc/init/I<package>.conf in the "
+#~| "package build directory."
+#~ msgid ""
+#~ "If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf "
+#~ "in the package build directory. (The tmpfiles.d mechanism is currently "
+#~ "only used by systemd.)"
+#~ msgstr ""
+#~ "Si existe, se instala en «etc/init/I<paquete>.conf» en el directorio de "
+#~ "construcción del paquete."
+
+# type: textblock
+#, 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"
+
+# type: textblock
+#~ msgid "B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>]"
+#~ msgstr "B<dh_gconf> [S<I<opciones-de-debhelper>>] [B<--priority=>I<número>]"
+
+# type: textblock
+#~ msgid ""
+#~ "B<dh_gconf> is a debhelper program that is responsible for installing "
+#~ "GConf defaults files and registering GConf schemas."
+#~ msgstr ""
+#~ "B<dh_gconf> es un programa de debhelper responsable de la instalación de "
+#~ "ficheros de valores predeterminados de GConf («defaults») y de registrar "
+#~ "esquemas de GConf."
+
+#~ msgid ""
+#~ "An appropriate dependency on gconf2 will be generated in B<${misc:Depends}"
+#~ ">."
+#~ msgstr ""
+#~ "Se generará una dependencia apropiada sobre gconf2 en B<${misc:Depends}>."
+
+#~ msgid "debian/I<package>.gconf-defaults"
+#~ msgstr "debian/I<paquete>.gconf-defaults"
+
+# type: textblock
+#~ msgid ""
+#~ "Installed into F<usr/share/gconf/defaults/10_package> in the package "
+#~ "build directory, with I<package> replaced by the package name."
+#~ msgstr ""
+#~ "Se instala en F<usr/share/gconf/defaults/10_paquete> en el directorio de "
+#~ "construcción del paquete, reemplazando I<paquete> por el nombre del "
+#~ "paquete."
+
+#~ msgid "debian/I<package>.gconf-mandatory"
+#~ msgstr "debian/I<paquete>.gconf-mandatory"
+
+# type: textblock
+#~ msgid ""
+#~ "Installed into F<usr/share/gconf/mandatory/10_package> in the package "
+#~ "build directory, with I<package> replaced by the package name."
+#~ msgstr ""
+#~ "Se instala en F<usr/share/gconf/mandatory/10_paquete> en el directorio de "
+#~ "construcción del paquete, reemplazando I<paquete> por el nombre del "
+#~ "paquete."
+
+# type: =item
+#~ msgid "B<--priority> I<priority>"
+#~ msgstr "B<--priority> I<prioridad>"
+
+# type: textblock
+#~ msgid ""
+#~ "Use I<priority> (which should be a 2-digit number) as the defaults "
+#~ "priority instead of B<10>. Higher values than ten can be used by derived "
+#~ "distributions (B<20>), CDD distributions (B<50>), or site-specific "
+#~ "packages (B<90>)."
+#~ msgstr ""
+#~ "Utiliza I<prioridad> (que debería ser un número de dos dígitos) como la "
+#~ "prioridad predeterminada, en lugar de 10. Otros pueden utilizar valores "
+#~ "superiores a B<10>, como las distribuciones derivadas (B<20>), "
+#~ "distribuciones de Debian personalizadas CDD (B<50>) y paquetes de sitios "
+#~ "web específicos (B<90>)."
+
+# type: textblock
+#~ msgid "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
+#~ msgstr "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
+
+# type: textblock
+#, fuzzy
+#~| msgid ""
+#~| "B<dh_clean> (or \"B<dh clean>\") should be the last debhelper command "
+#~| "run in the B<clean> target in F<debian/rules>."
+#~ msgid ""
+#~ "B<dh_clean> should be the last debhelper command run in the B<clean> "
+#~ "target in F<debian/rules>."
+#~ msgstr ""
+#~ "B<dh_clean> (o B<dh clean>) debería ser la última orden de debhelper a "
+#~ "ejecutar en el objetivo B<clean> en F<debian/rules>."
+
+# type: textblock
+#, fuzzy
+#~| msgid ""
+#~| "Automatically installed into usr/share/doc/I<package>/ in the package "
+#~| "build directory."
+#~ msgid ""
+#~ "If there is an upstream F<changelog> file, it will be installed as F<usr/"
+#~ "share/doc/package/changelog> in the package build directory."
+#~ msgstr ""
+#~ "Automáticamente instalado en «usr/share/doc/I<package>/» en el directorio "
+#~ "de construcción del paquete."
+
+# type: =item
+#~ msgid "B<--ignore=>I<file>"
+#~ msgstr "B<--ignore=>I<fichero>"
+
+# type: textblock
+#~ msgid ""
+#~ "Ignore the specified file. This can be used if F<debian/> contains a "
+#~ "debhelper config file that a debhelper command should not act on. Note "
+#~ "that F<debian/compat>, F<debian/control>, and F<debian/changelog> can't "
+#~ "be ignored, but then, there should never be a reason to ignore those "
+#~ "files."
+#~ msgstr ""
+#~ "Ignora el fichero dado. Se puede utilizar si F<debian/> contiene un "
+#~ "fichero de configuración de debhelper sobre el que una orden de debhelper "
+#~ "no debería actuar. Tenga en cuenta que no puede ignorar F<debian/compat>, "
+#~ "F<debian/control> y F<debian/changelog>, aunque nunca debería existir una "
+#~ "razón para ignorar esos ficheros."
+
+# type: textblock
+#~ msgid ""
+#~ "For example, if upstream ships a F<debian/init> that you don't want "
+#~ "B<dh_installinit> to install, use B<--ignore=debian/init>"
+#~ msgstr ""
+#~ "Por ejemplo, si la fuente original distribuye un fichero F<debian/init> "
+#~ "que no desea que B<dh_installinit> instale, use B<--ignore=debian/init>."
+
+# type: textblock
+#~ msgid ""
+#~ "Anything in this variable will be prepended to the command line arguments "
+#~ "of all debhelper commands."
+#~ msgstr ""
+#~ "Cualquier dato contenido en esta variable se añade a los argumentos de "
+#~ "línea de órdenes de todas las órdenes de debhelper."
+
+#~ msgid ""
+#~ "\toverride_dh_fixperms-arch:\n"
+#~ "\t\tdh_fixperms\n"
+#~ "\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\toverride_dh_fixperms-arch:\n"
+#~ "\t\tdh_fixperms\n"
+#~ "\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+#~ "\n"
+
+#, 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."
+
+#~ 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, "
+#~ "you can make the file executable, and write a program that outputs "
+#~ "whatever content is appropriate for a given situation. When you do so, "
+#~ "the output is not further processed to expand wildcards or strip comments."
+#~ msgstr ""
+#~ "La sintaxis de estos ficheros es intencionadamente sencilla para "
+#~ "facilitar la lectura, la comprensión y la modificación. Si prefiere "
+#~ "potencia y complejidad, puede dar al fichero permisos de ejecución, y "
+#~ "crear un programa que muestra un contenido adecuado para la situación "
+#~ "dada. Si lo hace, la salida no se proceso para expandir comodines o "
+#~ "eliminar comentarios."
+
+# type: textblock
+#~ msgid "B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [S<I<dir> ...>]"
+#~ msgstr ""
+#~ "B<dh_installdirs> [S<I<opciones-de-debhelper>>] [B<-A>] "
+#~ "[S<I<directorio> ...>]"
+
+#~ msgid ""
+#~ "By default, the shlibs file generated by this program does not make "
+#~ "packages depend on any particular version of the package containing the "
+#~ "shared library. It may be necessary for you to add some version "
+#~ "dependency information to the shlibs file. If B<-V> is specified with no "
+#~ "dependency information, the current upstream version of the package is "
+#~ "plugged into a dependency that looks like \"I<packagename> B<(E<gt>>= "
+#~ "I<packageversion>B<)>\". Note that in debhelper compatibility levels "
+#~ "before v4, the Debian part of the package version number is also "
+#~ "included. If B<-V> is specified with parameters, the parameters can be "
+#~ "used to specify the exact dependency information needed (be sure to "
+#~ "include the package name)."
+#~ msgstr ""
+#~ "Por omisión, el fichero «shlibs» generado por este programa no hace que "
+#~ "los paquetes dependan de alguna versión particular del paquete que "
+#~ "contiene la biblioteca compartida. Podría ser necesario que añada alguna "
+#~ "información de dependencia de versión al fichero «shlibs». Si especifica "
+#~ "B<-V> sin información de dependencia, la versión actual del desarrollador "
+#~ "principal del paquete es conectada con una dependencia de la forma "
+#~ "I<nombre_de_paquete> B<(E<gt>>= I<versión_de_paquete>B<)>. Tenga en "
+#~ "cuenta que en los niveles de compatibilidad de debhelper anteriores a v4 "
+#~ "también se incluye la parte de Debian del número de versión del paquete. "
+#~ "Si especifica B<-V> con parámetros, los parámetros se pueden utilizar "
+#~ "para especificar la información de dependencia exacta requerida "
+#~ "(asegúrese de incluir el nombre del paquete)."
+
+# type: =item
+#~ msgid "B<dh_makeshlibs>"
+#~ msgstr "B<dh_makeshlibs>"
+
+# type: textblock
+#~ msgid ""
+#~ "Note for the first (or only) binary package listed in F<debian/control>, "
+#~ "debhelper will use F<debian/foo> when there's no F<debian/package.foo> "
+#~ "file."
+#~ msgstr ""
+#~ "Tenga en cuenta que si un paquete es el primero (o el único) paquete "
+#~ "binario listado en F<debian/control>, debhelper utiliza F<debian/tal> si "
+#~ "no existe un fichero F<debian/paquete.tal>."
+
+# type: textblock
+#, fuzzy
+#~| msgid ""
+#~| "If the directories found in the build tree have unusual owners, groups, "
+#~| "or permissions, then those values will be preserved in the directories "
+#~| "made by the F<postinst> script. However, as a special exception, if a "
+#~| "directory is owned by root.root, it will be treated as if it is owned by "
+#~| "root.staff and is mode 2775. This is useful, since that is the group and "
+#~| "mode policy recommends for directories in F</usr/local>."
+#~ msgid ""
+#~ "When I<Rules-Requires-Root> has an effective value of I<binary-targets>, "
+#~ "the owners, groups and permissions will be preserved with one exception. "
+#~ "If the directory is owned by root:root, then ownership will be reset to "
+#~ "root:staff and mode will be reset to 02775. This is useful, since that is "
+#~ "the group and mode policy recommends for directories in F</usr/local>."
+#~ msgstr ""
+#~ "Si los directorios encontrados en el árbol de construcción tienen "
+#~ "propietarios, grupos o permisos inusuales, estos valores serán "
+#~ "preservados en los directorios hechos por el script F<postinst>. Sin "
+#~ "embargo, como una excepción especial, si un directorio tiene como "
+#~ "propietario root.root, se tratará como si tuviese como dueño root.staff y "
+#~ "en modo 2775. Esto último es útil, puesto que esa es la norma recomendada "
+#~ "para el grupo y modo de los directorios en F</usr/local>."
+
+# type: textblock
+#~ msgid ""
+#~ "This option makes B<dh_install> keep track of the files it installs, and "
+#~ "then at the end, compare that list with the files in the source "
+#~ "directory. If any of the files (and symlinks) in the source directory "
+#~ "were not installed to somewhere, it will warn on stderr about that."
+#~ msgstr ""
+#~ "Esta opción hace que B<dh_install> registre los ficheros que instala y, "
+#~ "al final, compare esa lista con los ficheros en el directorio fuente. Si "
+#~ "alguno de los ficheros (o enlaces simbólicos) en el directorio fuente no "
+#~ "se instalaron en algún lugar, dará un aviso a través de la salida de "
+#~ "error estándar."
+
+# type: textblock
+#~ msgid ""
+#~ "This may be useful if you have a large package and want to make sure that "
+#~ "you don't miss installing newly added files in new upstream releases."
+#~ msgstr ""
+#~ "Puede ser útil si tiene un paquete grande y quiere comprobar que no "
+#~ "olvida instalar ningún fichero nuevo añadido en una nueva versión del "
+#~ "programa."
+
+# type: textblock
+#~ msgid ""
+#~ "Note that files that are excluded from being moved via the B<-X> option "
+#~ "are not warned about."
+#~ msgstr ""
+#~ "Tenga en cuenta de que no avisa de los ficheros excluidos mediante la "
+#~ "opción B<-X>."
+
+# type: textblock
+#~ msgid ""
+#~ "This option is like B<--list-missing>, except if a file was missed, it "
+#~ "will not only list the missing files, but also fail with a nonzero exit "
+#~ "code."
+#~ msgstr ""
+#~ "Esta opción es como B<--list-missing>, excepto que si olvida un fichero, "
+#~ "no sólo se listarán los ficheros olvidados, sino que además se devolverá "
+#~ "un código de salida distinto de cero."
+
+# type: verbatim
+#, fuzzy
+#~| msgid ""
+#~| " % echo #RECOMMENDED_COMPAT# > debian/compat\n"
+#~| "\n"
+#~ msgid ""
+#~ " % echo beta-tester > debian/compat\n"
+#~ "\n"
+#~ msgstr ""
+#~ " % echo #RECOMMENDED_COMPAT# > debian/compat\n"
+#~ "\n"
+
+# type: verbatim
+#, fuzzy
+#~| msgid ""
+#~| " Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
+#~| "\n"
+#~ msgid ""
+#~ " Build-Depends: debhelper (>= 9.20160815~)\n"
+#~ "\n"
+#~ msgstr ""
+#~ " Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
+#~ "\n"
+
+# type: textblock
+#, fuzzy
+#~| msgid "This is an example of a F<debian/package.docs> file:"
+#~ msgid "This can be used without a F<debian/compat> file."
+#~ msgstr ""
+#~ "A continuación se muestra un ejemplo de un fichero F<debian/paquete.docs>:"
+
+# type: textblock
+#~ msgid ""
+#~ "B<dh_testroot> simply checks to see if you are root. If not, it exits "
+#~ "with an error. Debian packages must be built as root, though you can use "
+#~ "L<fakeroot(1)>"
+#~ msgstr ""
+#~ "B<dh_testroot> simplemente comprueba si el usuario es el usuario «root». "
+#~ "De no ser así, finaliza con un error. Los paquetes de Debian se deben "
+#~ "construir como el usuario «root», aunque puede utilizar L<fakeroot(1)>"
+
+# type: textblock
+#~ msgid "Do not stop init script on upgrade."
+#~ msgstr "No detiene el script de init durante una actualización."
+
+#~ msgid ""
+#~ "This used to be a smarter version of the B<-a> flag, but the B<-a> flag "
+#~ "is now equally smart."
+#~ msgstr ""
+#~ "Solía ser una versión más inteligente de la opción B<-a>, pero "
+#~ "actualmente la opción B<-a> es igual de inteligente."
+
+#~ msgid ""
+#~ "If your package uses autotools and you want to freshen F<config.sub> and "
+#~ "F<config.guess> with newer versions from the B<autotools-dev> package at "
+#~ "build time, you can use some commands provided in B<autotools-dev> that "
+#~ "automate it, like this."
+#~ msgstr ""
+#~ "Si su paquete utiliza Autotools y desea actualizar F<config.sub> y "
+#~ "F<config.guess> con nuevas versiones del paquete B<autotools-dev> en "
+#~ "tiempo de ejecución, puede utilizar algunas órdenes proporcionadas por "
+#~ "B<autotools-dev> que automatizan esta tarea, como puede ver a "
+#~ "continuación."
+
+#~ msgid ""
+#~ "\t#!/usr/bin/make -f\n"
+#~ "\t%:\n"
+#~ "\t\tdh $@ --with autotools_dev\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\t#!/usr/bin/make -f\n"
+#~ "\t%:\n"
+#~ "\t\tdh $@ --with autotools_dev\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Code is added to the F<preinst> and F<postinst> to handle the upgrade "
+#~ "from the old B<udev> rules file location."
+#~ msgstr ""
+#~ "El código se añade a los scripts F<preinst> y F<postinst> para gestionar "
+#~ "la actualización desde la ubicación antigua de ficheros de reglas de udev."
+
+# type: textblock
+#~ msgid "Do not modify F<preinst>/F<postinst> scripts."
+#~ msgstr "No modifica los scripts F<preinst>/F<postinst>."
+
+# type: textblock
+#~ msgid ""
+#~ "Note that this option behaves significantly different in debhelper "
+#~ "compatibility levels 4 and below. Instead of specifying the name of a "
+#~ "debug package to put symbols in, it specifies a package (or packages) "
+#~ "which should have separated debug symbols, and the separated symbols are "
+#~ "placed in packages with B<-dbg> added to their name."
+#~ msgstr ""
+#~ "Tenga en cuenta que esta opción se comporta de forma significativamente "
+#~ "distinta en los niveles de compatibilidad de debhelper 4 o inferior. En "
+#~ "lugar de especificar el nombre de un paquete de depuración en el que "
+#~ "poner los símbolos, especifica un paquete (o paquetes) que deben tener "
+#~ "símbolos de depuración separados, y los símbolos separados se colocan en "
+#~ "paquetes añadiendo B<-dbg> al final de su nombre."
+
+#~ msgid "dh_desktop - deprecated no-op"
+#~ msgstr "dh_desktop - Orden obsoleta sin efecto"
+
+# type: textblock
+#~ msgid "B<dh_desktop> [S<I<debhelper options>>]"
+#~ msgstr "B<dh_desktop> [S<I<opciones-de-debhelper>>]"
+
+#~ msgid ""
+#~ "B<dh_desktop> was a debhelper program that registers F<.desktop> files. "
+#~ "However, it no longer does anything, and is now deprecated."
+#~ msgstr ""
+#~ "B<dh_desktop> es un programa de debhelper que registra ficheros F<."
+#~ "desktop>. Sin embargo, ya no hace nada y ha quedado obsoleto."
+
+#~ msgid ""
+#~ "If a package ships F<desktop> files, they just need to be installed in "
+#~ "the correct location (F</usr/share/applications>) and they will be "
+#~ "registered by the appropriate tools for the corresponding desktop "
+#~ "environments."
+#~ msgstr ""
+#~ "Si un paquete proporciona ficheros F<desktop>, sólo se tienen que "
+#~ "instalar en la ubicación correcta (F</usr/share/applications>), y se "
+#~ "registrarán mediante las herramientas apropiadas a cada entorno de "
+#~ "escritorio."
+
+# type: textblock
+#~ msgid "Ross Burton <ross@burtonini.com>"
+#~ msgstr "Ross Burton <ross@burtonini.com>"
+
+# type: textblock
+#~ msgid "dh_undocumented - undocumented.7 symlink program (deprecated no-op)"
+#~ msgstr ""
+#~ "dh_undocumented - Programa de enlace simbólico a undocumented.7 (orden "
+#~ "obsoleta sin efecto)"
+
+# type: textblock
+#~ msgid "Do not run!"
+#~ msgstr "¡No lo ejecute!"
+
+# type: textblock
+#~ msgid ""
+#~ "This program used to make symlinks to the F<undocumented.7> man page for "
+#~ "man pages not present in a package. Debian policy now frowns on use of "
+#~ "the F<undocumented.7> man page, and so this program does nothing, and "
+#~ "should not be used."
+#~ msgstr ""
+#~ "Este programa se utilizaba para crear enlaces simbólicos a la página de "
+#~ "manual F<undocumented.7> para páginas de manual no presentes en un "
+#~ "paquete. Las normas de Debian ahora desaprueban el uso de la página de "
+#~ "manual F<undocumented.7>, y debido a ello este programa no hace nada y no "
+#~ "se debe utilizar."
+
+# type: textblock
+#~ msgid ""
+#~ "It also adds a call to ldconfig in the F<postinst> and F<postrm> scripts "
+#~ "(in v3 mode and above only) to any packages in which it finds shared "
+#~ "libraries."
+#~ msgstr ""
+#~ "También añade una invocación a ldconfig en los scripts F<postinst> y "
+#~ "F<postrm> (sólo en el modo v3 y superiores) de cualquier paquete en el "
+#~ "que encuentra bibliotecas compartidas."
+
+#~ msgid "dh_scrollkeeper - deprecated no-op"
+#~ msgstr "dh_scrollkeeper - Orden obsoleta sin efecto"
+
+# type: textblock
+#~ msgid ""
+#~ "B<dh_scrollkeeper> [S<I<debhelper options>>] [B<-n>] [S<I<directory>>]"
+#~ msgstr ""
+#~ "B<dh_scrollkeeper> [S<I<opciones-de-debhelper>>] [B<-n>] "
+#~ "[S<I<directorio>>]"
+
+# type: textblock
+#~ msgid ""
+#~ "B<dh_scrollkeeper> was a debhelper program that handled registering OMF "
+#~ "files for ScrollKeeper. However, it no longer does anything, and is now "
+#~ "deprecated."
+#~ msgstr ""
+#~ "Bdh_scrollkeeper> era un programa de debhelper que manipulaba el registro "
+#~ "de ficheros OMF para ScrollKeeper. Por otra parte, ya no tiene efecto, y "
+#~ "ahora está obsoleto."
+
+# type: textblock
+#~ msgid "dh_suidregister - suid registration program (deprecated)"
+#~ msgstr "dh_suidregister - Programa de registro suid (obsoleto)"
+
+# type: textblock
+#~ msgid ""
+#~ "This program used to register suid and sgid files with "
+#~ "L<suidregister(1)>, but with the introduction of L<dpkg-statoverride(8)>, "
+#~ "registration of files in this way is unnecessary, and even harmful, so "
+#~ "this program is deprecated and should not be used."
+#~ msgstr ""
+#~ "Este programa se utilizaba para registrar ficheros suid y sgid con "
+#~ "L<suidregister(1)>, pero con la introducción de L<dpkg-statoverrride(8)>, "
+#~ "el registro de ficheros de esta forma es innecesaria e incluso peligrosa, "
+#~ "por lo que este programa está obsoleto y no se debería utilizar."
+
+# type: =head1
+#~ msgid "CONVERTING TO STATOVERRIDE"
+#~ msgstr "MIGRAR A STATOVERRIDE"
+
+# type: textblock
+#~ msgid ""
+#~ "Converting a package that uses this program to use the new statoverride "
+#~ "mechanism is easy. Just remove the call to B<dh_suidregister> from "
+#~ "F<debian/rules>, and add a versioned conflicts into your F<control> file, "
+#~ "as follows:"
+#~ msgstr ""
+#~ "El mecanismo para adaptar un paquete que utiliza este programa al nuevo "
+#~ "mecanismo statoverride es sencillo. Sólo elimine la invocación a "
+#~ "B<dh_suidregister> en F<debian/rules>, y añada un conflicto de versión en "
+#~ "su fichero de control, como sigue:"
+
+# type: verbatim
+#~ msgid ""
+#~ " Conflicts: suidmanager (<< 0.50)\n"
+#~ "\n"
+#~ msgstr ""
+#~ " Conflicts: suidmanager (<< 0.50)\n"
+#~ "\n"
+
+# type: textblock
+#~ msgid ""
+#~ "The conflicts is only necessary if your package used to register things "
+#~ "with suidmanager; if it did not, you can just remove the call to this "
+#~ "program from your rules file."
+#~ msgstr ""
+#~ "El conflicto solamente es necesario si su paquete registraba cosas con "
+#~ "suidmanager; en caso contrario, puede simplemente eliminar la invocación "
+#~ "a este programa de su fichero «rules»."
+
+# type: verbatim
+#~ msgid ""
+#~ " my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
+#~ " #DEBHELPER#\n"
+#~ " EOF\n"
+#~ " system ($temp) / 256 == 0\n"
+#~ " \tor die \"Problem with debhelper scripts: $!\";\n"
+#~ "\n"
+#~ msgstr ""
+#~ " my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
+#~ " #DEBHELPER#\n"
+#~ " EOF\n"
+#~ " system ($temp) / 256 == 0\n"
+#~ " \tor die \"Problema con los scripts de debhelper: $!\";\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Packages that support multiarch are detected, and a Pre-Dependency on "
+#~ "multiarch-support is set in ${misc:Pre-Depends} ; you should make sure to "
+#~ "put that token into an appropriate place in your debian/control file for "
+#~ "packages supporting multiarch."
+#~ msgstr ""
+#~ "Se detectan los paquetes que permiten multiarquitectura, y se define una "
+#~ "predependencia sobre multiarch-support en ${misc:Pre-Depends}; debería "
+#~ "asegurar que inserta ese comodín en el lugar apropiado dentro del fichero "
+#~ "«debian/control» para aquellos paquetes que utilizan multiarquitectura."
+
# type: textblock
#~ msgid "Sets the priority string of the F<rules.d> symlink. Default is 60."
#~ msgstr ""
@@ -8347,22 +13612,6 @@ msgstr "Andrew Stribblehill <ads@debian.org>"
#~ msgid "most ideas stolen from Brendan O'Dea <bod@debian.org>"
#~ msgstr "muchas de las ideas tomadas de Brendan O'Dea <bod@debian.org>"
-# type: textblock
-#~ msgid ""
-#~ "If there is an upstream F<changelog> file, it will be be installed as "
-#~ "F<usr/share/doc/package/changelog> in the package build directory. If the "
-#~ "changelog is a F<html> file (determined by file extension), it will be "
-#~ "installed as F<usr/share/doc/package/changelog.html> instead, and will be "
-#~ "converted to plain text with B<html2text> to generate F<usr/share/doc/"
-#~ "package/changelog>."
-#~ msgstr ""
-#~ "Si existe, el fichero F<changelog> del desarrollador original se "
-#~ "instalará en F<usr/share/doc/paquete/changelog> en el directorio de "
-#~ "construcción del paquete. Si el fichero de cambios es un fichero F<HTML> "
-#~ "(determinado por la extensión), se instalará en F<usr/share/doc/package/"
-#~ "changelog.html>, y será convertido a texto simple utilizando B<html2text> "
-#~ "para generar F<usr/share/doc/paquete/changelog>."
-
#~ msgid "None yet.."
#~ msgstr "Ninguno hasta ahora.."
@@ -8443,14 +13692,14 @@ msgstr "Andrew Stribblehill <ads@debian.org>"
#~ msgid ""
#~ "If no upstart job file is installed in the target directory when "
-#~ "B<dh_installinit --onlyscripts> is called, this program will assume that "
+#~ "B<dh_installinit --only-scripts> is called, this program will assume that "
#~ "an init script is being installed and not provide the compatibility "
#~ "symlinks or upstart dependencies."
#~ msgstr ""
#~ "Si no se instala ninguna tarea de upstart en el directorio destino al "
-#~ "invocar B<dh_installinit --onlyscripts>, el programa supondrá que se está "
-#~ "instalando un script de init, y no ofrecerá los enlaces simbólicos de "
-#~ "compatibilidad o dependencias de upstart."
+#~ "invocar B<dh_installinit --only-scripts>, el programa supondrá que se "
+#~ "está instalando un script de init, y no ofrecerá los enlaces simbólicos "
+#~ "de compatibilidad o dependencias de upstart."
#~ msgid "The inverse of B<--with>, disables using the given addon."
#~ msgstr "Lo contrario de B<--with>, desactiva la extensión dada."
@@ -8626,10 +13875,10 @@ msgstr "Andrew Stribblehill <ads@debian.org>"
#~ "\n"
#~ msgid ""
-#~ "Note that in the example above, dh will arrange for \"debian/rules build"
-#~ "\" to call your build-indep and build-arch targets. You do not need to "
-#~ "explicitly define those dependencies in the rules file when using dh with "
-#~ "compatibility level v9. This example would be more complicated with "
+#~ "Note that in the example above, dh will arrange for \"debian/rules "
+#~ "build\" to call your build-indep and build-arch targets. You do no need "
+#~ "to explicitly define those dependencies in the rules file when using dh "
+#~ "with compatibility level v9. This example would be more complicated with "
#~ "earlier compatibility levels."
#~ msgstr ""
#~ "Tenga en cuenta que en el ejemplo anterior, dh hace que «debian/rules "
@@ -8653,10 +13902,10 @@ msgstr "Andrew Stribblehill <ads@debian.org>"
#~ "definir manualmente las dependencias entre objetivos de ese fichero."
#~ msgid ""
-#~ "Note that in the example above, dh will arrange for \"debian/rules build"
-#~ "\" to call your build-indep and build-arch targets. You do not need to "
-#~ "explicitly define the dependencies in the rules file when using dh with "
-#~ "compatibility level v9. This example would be more complicated with "
+#~ "Note that in the example above, dh will arrange for \"debian/rules "
+#~ "build\" to call your build-indep and build-arch targets. You do no need "
+#~ "to explicitly define the dependencies in the rules file when using dh "
+#~ "with compatibility level v9. This example would be more complicated with "
#~ "earlier compatibility levels."
#~ msgstr ""
#~ "Tenga en cuenta que en el ejemplo anterior, dh hace que «debian/rules "
@@ -8692,10 +13941,6 @@ msgstr "Andrew Stribblehill <ads@debian.org>"
#~ "porque dependen de cómo debhelper haga las cosas, y por ello debhelper "
#~ "ofrece una manera de automatizarlo."
-# type: =head2
-#~ msgid "Debhelper compatibility levels"
-#~ msgstr "Niveles de compatibilidad de debhelper"
-
#~ msgid ""
#~ "<dh_auto_configure> does not include the source package name in --"
#~ "libexecdir when using autoconf."
diff --git a/man/po4a/po/fr.po b/man/po4a/po/fr.po
index 62b4460a..851a732c 100644
--- a/man/po4a/po/fr.po
+++ b/man/po4a/po/fr.po
@@ -1,97 +1,102 @@
# Translation of debhelper manpages to French
# Valery Perrin <valery.perrin.debian@free.fr>, 2005, 2006, 2010, 2011.
-# David Prévot <david@tilapin.org>, 2012.
+# David Prévot <david@tilapin.org>, 2012-2014.
+# Baptiste Jammet <baptiste@mailoo.org>, 2015-2017, 2019.
+# Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>, 2021.
msgid ""
msgstr ""
"Project-Id-Version: debhelper manpages\n"
-"POT-Creation-Date: 2014-10-03 15:16-0400\n"
-"PO-Revision-Date: 2012-11-03 11:13-0400\n"
-"Last-Translator: Valery Perrin <valery.perrin.debian@free.fr>\n"
+"POT-Creation-Date: 2023-08-14 19:10+0000\n"
+"PO-Revision-Date: 2021-02-13 10:02+0100\n"
+"Last-Translator: Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.4\n"
+"X-Generator: Lokalize 2.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
# type: =head1
#. type: =head1
-#: debhelper.pod:1 dh:3 dh_auto_build:3 dh_auto_clean:3 dh_auto_configure:3
-#: dh_auto_install:3 dh_auto_test:3 dh_bugfiles:3 dh_builddeb:3 dh_clean:3
-#: dh_compress:3 dh_desktop:3 dh_fixperms:3 dh_gconf:3 dh_gencontrol:3
-#: dh_icons:3 dh_install:3 dh_installcatalogs:3 dh_installchangelogs:3
-#: dh_installcron:3 dh_installdeb:3 dh_installdebconf:3 dh_installdirs:3
-#: dh_installdocs:3 dh_installemacsen:3 dh_installexamples:3
-#: dh_installifupdown:3 dh_installinfo:3 dh_installinit:3 dh_installlogcheck:3
-#: dh_installlogrotate:3 dh_installman:3 dh_installmanpages:3 dh_installmenu:3
-#: dh_installmime:3 dh_installmodules:3 dh_installpam:3 dh_installppp:3
-#: dh_installudev:3 dh_installwm:3 dh_installxfonts:3 dh_link:3 dh_lintian:3
-#: dh_listpackages:3 dh_makeshlibs:3 dh_md5sums:3 dh_movefiles:3 dh_perl:3
-#: dh_prep:3 dh_scrollkeeper:3 dh_shlibdeps:3 dh_strip:3 dh_suidregister:3
-#: dh_testdir:3 dh_testroot:3 dh_undocumented:3 dh_usrlocal:3
+#: debhelper.pod:3 debhelper-compat-upgrade-checklist.pod:3
+#: debhelper-obsolete-compat.pod:1 dh:3 dh_auto_build:3 dh_auto_clean:3
+#: dh_auto_configure:3 dh_auto_install:3 dh_auto_test:3 dh_bugfiles:3
+#: dh_builddeb:5 dh_clean:3 dh_compress:3 dh_dwz:3 dh_fixperms:3
+#: dh_gencontrol:3 dh_icons:3 dh_install:3 dh_installcatalogs:3
+#: dh_installchangelogs:3 dh_installcron:3 dh_installdeb:3 dh_installdebconf:3
+#: dh_installdirs:3 dh_installdocs:5 dh_installemacsen:3 dh_installexamples:5
+#: dh_installifupdown:3 dh_installinfo:3 dh_installinit:3 dh_installinitramfs:3
+#: dh_installlogcheck:3 dh_installlogrotate:3 dh_installman:3
+#: dh_installmanpages:3 dh_installmenu:3 dh_installmime:3 dh_installmodules:3
+#: dh_installpam:3 dh_installppp:3 dh_installudev:3 dh_installwm:3
+#: dh_installxfonts:3 dh_link:3 dh_lintian:3 dh_listpackages:3 dh_makeshlibs:3
+#: dh_md5sums:3 dh_movefiles:3 dh_perl:3 dh_prep:3 dh_shlibdeps:3 dh_strip:3
+#: dh_testdir:3 dh_testroot:5 dh_usrlocal:5 dh_systemd_enable:3
+#: dh_systemd_start:3
msgid "NAME"
msgstr "NOM"
# type: textblock
#. type: textblock
-#: debhelper.pod:3
+#: debhelper.pod:5
msgid "debhelper - the debhelper tool suite"
msgstr "debhelper - Ensemble d'outils regroupés sous le nom de debhelper"
# type: =head1
#. type: =head1
-#: debhelper.pod:5 dh:12 dh_auto_build:12 dh_auto_clean:13
-#: dh_auto_configure:12 dh_auto_install:15 dh_auto_test:13 dh_bugfiles:12
-#: dh_builddeb:12 dh_clean:12 dh_compress:13 dh_desktop:12 dh_fixperms:13
-#: dh_gconf:12 dh_gencontrol:12 dh_icons:13 dh_install:13
-#: dh_installcatalogs:14 dh_installchangelogs:12 dh_installcron:12
-#: dh_installdeb:12 dh_installdebconf:12 dh_installdirs:12 dh_installdocs:12
-#: dh_installemacsen:12 dh_installexamples:12 dh_installifupdown:12
-#: dh_installinfo:12 dh_installinit:13 dh_installlogcheck:12
-#: dh_installlogrotate:12 dh_installman:13 dh_installmanpages:13
-#: dh_installmenu:12 dh_installmime:12 dh_installmodules:13 dh_installpam:12
-#: dh_installppp:12 dh_installudev:13 dh_installwm:12 dh_installxfonts:12
-#: dh_link:13 dh_lintian:12 dh_listpackages:12 dh_makeshlibs:12 dh_md5sums:13
-#: dh_movefiles:12 dh_perl:14 dh_prep:12 dh_scrollkeeper:12 dh_shlibdeps:13
-#: dh_strip:13 dh_suidregister:7 dh_testdir:12 dh_testroot:7
-#: dh_undocumented:12 dh_usrlocal:15
+#: debhelper.pod:7 debhelper-compat-upgrade-checklist.pod:7
+#: debhelper-obsolete-compat.pod:5 dh:22 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_gencontrol:16 dh_icons:16 dh_install:15 dh_installcatalogs:17
+#: dh_installchangelogs:16 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:18
+#: 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 "SYNOPSIS"
# type: textblock
#. type: textblock
-#: debhelper.pod:7
+#: debhelper.pod:9
msgid ""
-"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-p>I<package>] "
-"[B<-N>I<package>] [B<-P>I<tmpdir>]"
+"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<--no-act>] [B<-p>I<package>] [B<-"
+"N>I<package>] [B<-P>I<tmpdir>]"
msgstr ""
-"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-p>I<paquet>] "
-"[B<-N>I<paquet>] [B<-P>I<tmpdir>]"
+"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<--no-act>] [B<-p>I<paquet>] [B<-"
+"N>I<paquet>] [B<-P>I<tmpdir>]"
# type: =head1
#. type: =head1
-#: debhelper.pod:9 dh:16 dh_auto_build:16 dh_auto_clean:17
-#: dh_auto_configure:16 dh_auto_install:19 dh_auto_test:17 dh_bugfiles:16
-#: dh_builddeb:16 dh_clean:16 dh_compress:17 dh_desktop:16 dh_fixperms:17
-#: dh_gconf:16 dh_gencontrol:16 dh_icons:17 dh_install:17
-#: dh_installcatalogs:18 dh_installchangelogs:16 dh_installcron:16
-#: dh_installdeb:16 dh_installdebconf:16 dh_installdirs:16 dh_installdocs:16
-#: dh_installemacsen:16 dh_installexamples:16 dh_installifupdown:16
-#: dh_installinfo:16 dh_installinit:17 dh_installlogcheck:16
-#: dh_installlogrotate:16 dh_installman:17 dh_installmanpages:17
-#: dh_installmenu:16 dh_installmime:16 dh_installmodules:17 dh_installpam:16
-#: dh_installppp:16 dh_installudev:17 dh_installwm:16 dh_installxfonts:16
-#: dh_link:17 dh_lintian:16 dh_listpackages:16 dh_makeshlibs:16 dh_md5sums:17
-#: dh_movefiles:16 dh_perl:18 dh_prep:16 dh_scrollkeeper:16 dh_shlibdeps:17
-#: dh_strip:17 dh_suidregister:11 dh_testdir:16 dh_testroot:11
-#: dh_undocumented:16 dh_usrlocal:19
+#: debhelper.pod:11 debhelper-compat-upgrade-checklist.pod:17 dh:26
+#: 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_gencontrol:20 dh_icons:20 dh_install:19
+#: dh_installcatalogs:21 dh_installchangelogs:20 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:22
+#: 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 "DESCRIPTION"
# type: textblock
#. type: textblock
-#: debhelper.pod:11
+#: debhelper.pod:13
msgid ""
"Debhelper is used to help you build a Debian package. The philosophy behind "
"debhelper is to provide a collection of small, simple, and easily understood "
@@ -107,13 +112,13 @@ 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."
# type: textblock
#. type: textblock
-#: debhelper.pod:19
+#: debhelper.pod:21
msgid ""
"A typical F<debian/rules> file that uses debhelper will call several "
"debhelper commands in sequence, or use L<dh(1)> to automate this process. "
@@ -128,7 +133,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:23
+#: debhelper.pod:25
msgid ""
"To create a new Debian package using debhelper, you can just copy one of the "
"sample rules files and edit it by hand. Or you can try the B<dh-make> "
@@ -144,54 +149,66 @@ msgstr ""
"familiariser avec ces concepts, le paquet Debian B<maint-guide> contient un "
"cours sur la construction d'un premier paquet avec debhelper."
+#. type: textblock
+#: debhelper.pod:31
+msgid ""
+"Except where the tool explicitly denotes otherwise, all of the debhelper "
+"tools assume that they run from the root directory of an unpacked source "
+"package. 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>."
+
# type: =head1
#. type: =head1
-#: debhelper.pod:29
+#: debhelper.pod:36
msgid "DEBHELPER COMMANDS"
msgstr "COMMANDES DE DEBHELPER"
# type: textblock
#. type: textblock
-#: debhelper.pod:31
+#: debhelper.pod:38
msgid ""
"Here is the list of debhelper commands you can use. See their man pages for "
"additional documentation."
msgstr ""
-"Voici la liste des commandes debhelper disponibles. Consulter leurs pages de "
-"manuel respectives pour obtenir des informations complémentaires."
+"Voici la liste des commandes de debhelper disponibles. Consulter leurs pages "
+"de manuel respectives pour obtenir des informations complémentaires."
# type: textblock
#. type: textblock
-#: debhelper.pod:36
+#: debhelper.pod:43
msgid "#LIST#"
msgstr "#LIST#"
#. type: =head2
-#: debhelper.pod:40
+#: debhelper.pod:47
msgid "Deprecated Commands"
msgstr "Commandes obsolètes"
#. type: textblock
-#: debhelper.pod:42
+#: debhelper.pod:49
msgid "A few debhelper commands are deprecated and should not be used."
msgstr ""
-"Quelques commandes debhelper sont obsolètes et ne devraient plus être "
+"Quelques commandes de debhelper sont obsolètes et ne devraient plus être "
"utilisées."
#. type: textblock
-#: debhelper.pod:46
+#: debhelper.pod:53
msgid "#LIST_DEPRECATED#"
msgstr "#LIST_DEPRECATED#"
# type: =head2
#. type: =head2
-#: debhelper.pod:50
+#: debhelper.pod:57
msgid "Other Commands"
msgstr "Autres commandes"
# type: textblock
#. type: textblock
-#: debhelper.pod:52
+#: debhelper.pod:59
msgid ""
"If a program's name starts with B<dh_>, and the program is not on the above "
"lists, then it is not part of the debhelper package, but it should still "
@@ -204,13 +221,13 @@ msgstr ""
# type: =head1
#. type: =head1
-#: debhelper.pod:56
+#: debhelper.pod:63
msgid "DEBHELPER CONFIG FILES"
msgstr "FICHIERS DE CONFIGURATION DE DEBHELPER"
# type: textblock
#. type: textblock
-#: debhelper.pod:58
+#: debhelper.pod:65
msgid ""
"Many debhelper commands make use of files in F<debian/> to control what they "
"do. Besides the common F<debian/changelog> and F<debian/control>, which are "
@@ -229,7 +246,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: debhelper.pod:65
+#: debhelper.pod:72
msgid ""
"For example, B<dh_installdocs> uses files named F<debian/package.docs> to "
"list the documentation files it will install. See the man pages of "
@@ -247,20 +264,27 @@ msgstr ""
"debhelper emploient des paires fichier/destination voire des formats "
"légèrement plus compliqués."
-# type: textblock
#. type: textblock
-#: debhelper.pod:72
+#: debhelper.pod:79
msgid ""
"Note for the first (or only) binary package listed in F<debian/control>, "
-"debhelper will use F<debian/foo> when there's no F<debian/package.foo> file."
+"debhelper will use F<debian/foo> when there's no F<debian/I<package>.foo> "
+"file. However, it is often a good idea to keep the F<I<package>.> prefix as "
+"it is more explicit. The primary exception to this are files that debhelper "
+"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 ""
-"Nota : pour le premier (ou le seul) paquet binaire énuméré dans le fichier "
-"F<debian/control>, debhelper exploitera F<debian/toto> quand aucun fichier "
-"F<debian/paquet.toto> n'est présent."
+"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
-#: debhelper.pod:76
+#: debhelper.pod:87
msgid ""
"In some rare cases, you may want to have different versions of these files "
"for different architectures or OSes. If files named debian/I<package>.foo."
@@ -273,13 +297,13 @@ msgstr ""
"de ces fichiers pour des architectures ou des systèmes d'exploitation "
"différents. S'il existe des fichiers appelés debian/I<paquet>.toto.I<ARCH> "
"ou debian/I<paquet>.toto.I<OS>, dans lesquels I<ARCH> et I<OS> correspondent "
-"respectivement au résultat de « B<dpkg-architecture -qDEB_HOST_ARCH> » ou de "
-"« B<dpkg-architecture -qDEB_HOST_ARCH_OS> », alors ils seront utilisés de "
+"respectivement au résultat de « B<dpkg-architecture -qDEB_HOST_ARCH> » ou de "
+"« B<dpkg-architecture -qDEB_HOST_ARCH_OS> », alors ils seront utilisés de "
"préférence aux autres fichiers plus généraux."
# type: textblock
#. type: textblock
-#: debhelper.pod:83
+#: debhelper.pod:94
msgid ""
"Mostly, these config files are used to specify lists of various types of "
"files. Documentation or example files to install, files to move, and so on. "
@@ -289,141 +313,495 @@ msgid ""
"are ignored."
msgstr ""
"En général, ces fichiers de configuration sont employés pour indiquer des "
-"listes de divers types de fichiers. Documentation, fichiers d'exemples à "
+"listes de divers types de fichiers : documentation, fichiers d'exemple à "
"installer, fichiers à déplacer et ainsi de suite. Lorsque cela se justifie, "
"dans des cas comme ceux-ci, il est possible d'employer, dans ces fichiers, "
-"les jokers (wildcard) standard de l'interpréteur de commandes (shell) (B<?> "
+"les jokers (wildcard) standards de l'interpréteur de commandes (shell) (B<?> "
"et B<*> et B<[>I<..>B<]>). Des commentaires peuvent être ajoutés dans ces "
"fichiers : les lignes commençant par B<#> sont ignorées."
#. type: textblock
-#: debhelper.pod:90
+#: debhelper.pod:101
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, "
-"you can make the file executable, and write a program that outputs whatever "
-"content is appropriate for a given situation. When you do so, the output is "
-"not further processed to expand wildcards or strip comments."
-msgstr ""
-"La syntaxe de ces fichiers est volontairement gardée très simple pour les "
-"rendre faciles à lire, comprendre et modifier. Si vous préférez la puissance "
-"et la complexité, vous pouvez rendre le fichier exécutable, et écrire un "
-"programme qui affiche n'importe quel contenu approprié à la situation. Dans "
-"ce cas, la sortie n'est plus traitée pour développer les jokers (wildcards) "
-"ou supprimer les commentaires."
+"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
+msgid "Substitutions in debhelper config files"
+msgstr "Substitutions dans les fichiers de configuration de debhelper"
+
+#. type: textblock
+#: debhelper.pod:106
+msgid ""
+"In compatibility level 13 and later, it is possible to use simple "
+"substitutions in debhelper config files for the following tools:"
+msgstr ""
+"À partir du niveau de compatibilité 13, il est possible d'utiliser des "
+"substitutions simples dans les fichiers de configuration de debhelper pour "
+"les outils suivants :"
+
+#. type: =item
+#: debhelper.pod:111 debhelper.pod:115 debhelper.pod:119 debhelper.pod:123
+#: debhelper.pod:127 debhelper.pod:131 debhelper.pod:135 debhelper.pod:139
+#: debhelper.pod:143 debhelper.pod:147 debhelper.pod:151 debhelper.pod:155
+#: debhelper.pod:159 debhelper.pod:247 debhelper.pod:252
+msgid "*"
+msgstr "*"
+
+#. type: textblock
+#: debhelper.pod:113
+msgid "dh_clean"
+msgstr "dh_clean"
+
+#. type: textblock
+#: debhelper.pod:117
+msgid "dh_install"
+msgstr "dh_install"
+
+#. type: textblock
+#: debhelper.pod:121
+msgid "dh_installcatalogs"
+msgstr "dh_installcatalogs"
+
+#. type: textblock
+#: debhelper.pod:125
+msgid "dh_installdeb"
+msgstr "dh_installdeb"
+
+#. type: textblock
+#: debhelper.pod:129
+msgid "dh_installdirs"
+msgstr "dh_installdirs"
+
+#. type: textblock
+#: debhelper.pod:133
+msgid "dh_installdocs"
+msgstr "dh_installdocs"
+
+#. type: textblock
+#: debhelper.pod:137
+msgid "dh_installexamples"
+msgstr "dh_installexamples"
+
+#. type: textblock
+#: debhelper.pod:141
+msgid "dh_installinfo"
+msgstr "dh_installinfo"
+
+#. type: textblock
+#: debhelper.pod:145
+msgid "dh_installman"
+msgstr "dh_installman"
+
+#. type: textblock
+#: debhelper.pod:149
+msgid "dh_installwm"
+msgstr "dh_installwm"
+
+#. type: textblock
+#: debhelper.pod:153
+msgid "dh_link"
+msgstr "dh_link"
+
+#. type: textblock
+#: debhelper.pod:157
+msgid "dh_missing"
+msgstr "dh_missing"
+
+#. type: textblock
+#: debhelper.pod:161
+msgid "dh_ucf"
+msgstr "dh_ucf"
+
+#. type: textblock
+#: debhelper.pod:165
+msgid ""
+"All substitution variables are of the form I<${foo}> and the braces are "
+"mandatory. Variable names are case-sensitive and consist of alphanumerics "
+"(a-zA-Z0-9), hyphens (-), underscores (_), and colons (:). The first "
+"character must be an alphanumeric."
+msgstr ""
+"Toutes les variables de substitution sont de la forme I<${toto}> et les "
+"accolades sont obligatoires. Les noms de variable sont sensibles à la casse "
+"et sont constitués de caractères alphanumériques (a-zA-Z0-9), tirets (-), "
+"tirets bas (_) et deux points (:). Le premier caractère doit être "
+"alphanumérique."
+
+#. type: textblock
+#: debhelper.pod:170
+msgid ""
+"If you need a literal dollar sign that cannot trigger a substitution, you "
+"can either use the B<${Dollar}> substitution or the sequence B<${}>."
+msgstr ""
+"Si vous avez besoin d'un dollar littéral qui ne déclenche pas une "
+"substitution, il est possible d'utiliser soit la substitution B<${Dollar}> "
+"soit la séquence B<${}>."
+
+#. type: textblock
+#: debhelper.pod:173
+msgid "The following expansions are available:"
+msgstr "Les développements suivants sont disponibles :"
+
+#. type: =item
+#: debhelper.pod:177
+msgid "B<DEB_HOST_*>, B<DEB_BUILD_*>, B<DEB_TARGET_*>"
+msgstr "B<DEB_HOST_*>, B<DEB_BUILD_*>, B<DEB_TARGET_*>"
+
+#. type: textblock
+#: debhelper.pod:179
+msgid ""
+"Expands to the relevant L<dpkg-architecture(1)> value (similar to I<dpkg-"
+"architecture -qVARIABLE_HERE>)."
+msgstr ""
+"Se développent à la valeur L<dpkg-architecture(1)> adéquate (comme I<dpkg-"
+"architecture -qVARIABLE_HERE>)."
+
+#. type: textblock
+#: debhelper.pod:182
+msgid ""
+"When in doubt, the B<DEB_HOST_*> variant is the one that will work both for "
+"native and cross builds."
+msgstr ""
+"En cas de doute, la variante B<DEB_HOST_*> est celle qui fonctionnera à la "
+"fois pour les constructions natives et croisées"
+
+#. type: textblock
+#: debhelper.pod:185
+msgid ""
+"For performance reasons, debhelper will attempt to resolve these names from "
+"the environment first before consulting L<dpkg-architecture(1)>. This is "
+"mostly mentioned for completeness as it will not matter for most cases."
+msgstr ""
+"Pour des raisons de performance, debhelper tentera de résoudre d'abord ces "
+"noms à partir de l'environnement avant de consulter L<dpkg-architecture(1)>. "
+"Celà est mentionné principalement dans un esprit de complétude, car cela n'a "
+"pas d'importance dans la plupart des cas."
+
+#. type: =item
+#: debhelper.pod:190
+msgid "B<Dollar>"
+msgstr "B<Dollar>"
+
+#. type: textblock
+#: debhelper.pod:192
+msgid ""
+"Expands to a single literal B<$>-symbol. This symbol will I<never> be "
+"considered part of a substitution variable. That is:"
+msgstr ""
+"Se développe en un symbole B<$> littéral unique. Ce symbole ne sera "
+"B<jamais> considéré comme faisant partie d'une variable de substitution. "
+"C'est-à-dire :"
+
+#. type: verbatim
+#: debhelper.pod:195
+#, no-wrap
+msgid ""
+" # Triggers an error\n"
+" ${NO_SUCH_TOKEN}\n"
+" # Expands to the literal value \"${NO_SUCH_TOKEN}\"\n"
+" ${Dollar}{NO_SUCH_TOKEN}\n"
+"\n"
+msgstr ""
+" # Déclenche une erreurr\n"
+" ${NO_SUCH_TOKEN}\n"
+" # Se développe à la valeur littérale « ${NO_SUCH_TOKEN} »\n"
+" ${Dollar}{NO_SUCH_TOKEN}\n"
+"\n"
+
+#. type: textblock
+#: debhelper.pod:200
+msgid ""
+"This variable equivalent to the sequence B<${}> and the two can be used "
+"interchangeably."
+msgstr ""
+"Cette variante est l'équivalent de la séquence B<${}> et les deux sont "
+"interchangeables."
+
+#. type: =item
+#: debhelper.pod:203
+msgid "B<Newline>, B<Space>, B<Tab>"
+msgstr "B<Newline>, B<Space>, B<Tab>"
+
+#. type: textblock
+#: debhelper.pod:205
+msgid "Expands to a single ASCII newline, space and tab respectively."
+msgstr ""
+"Se développent respectivement en un caractère ASCII saut de ligne, espace et "
+"tabulation."
+
+#. type: textblock
+#: debhelper.pod:207
+msgid ""
+"This can be useful if you need to include a literal whitespace character (e."
+"g. space) where it would otherwise be stripped or used as a separator."
+msgstr ""
+"Cela peut être utile s'il est nécessaire d'inclure un caractère d'espacement "
+"littéral (par exemple une espace) là où il serait autrement dépouillé ou "
+"utilisé comme un séparateur."
+
+#. type: =item
+#: debhelper.pod:211
+msgid "B<< env:I<NAME> >>"
+msgstr "B<< env:I<NOM> >>"
+
+#. type: textblock
+#: debhelper.pod:213
+msgid ""
+"Expands to the environment variable I<NAME>. The environment variable must "
+"be set (but can be set to the empty string)."
+msgstr ""
+"Se développe en la variable d'environnement I<NOM>. La variable "
+"d'environnement doit être réglée (mais elle peut être réglée à une chaîne "
+"vide)."
+
+#. type: textblock
+#: debhelper.pod:218
+msgid ""
+"Note that all variables must expand to a defined value. As an example, if "
+"debhelper sees I<${env:FOO}>, then it will insist that the environment "
+"variable I<FOO> is set (it can be set to the empty string)."
+msgstr ""
+"Notez que toutes les variables doivent se développer à une valeur définie. "
+"Par exemple, si debhelper voit I<${env:TOTO}>, alors, il affirme que la "
+"variable d'environnement I<TOTO> est réglée (elle peut être réglée à une "
+"chaîne vide)."
+
+#. type: =head3
+#: debhelper.pod:222
+msgid "Substitution limits"
+msgstr "Contraintes des substitutions"
+
+#. type: textblock
+#: debhelper.pod:224
+msgid ""
+"To avoid infinite loops and resource exhaustion, debhelper will stop with an "
+"error if the text contains many substitution variables (50) or they expand "
+"beyond a certain size (4096 characters or 3x length of the original input - "
+"whichever is bigger)."
+msgstr ""
+"Pour éviter des boucles infinies et un épuisement de ressources, debhelper "
+"s’arrêtera avec une erreur si le texte renferme de nombreuses variables de "
+"substitution (50) ou si elles se développent au-delà d'une certaine taille "
+"(4096 caractères ou trois fois la longueur de l'entrée originale – peu "
+"importe laquelle est la plus grande)."
+
+# type: textblock
+#. type: =head2
+#: debhelper.pod:229
+msgid "Executable debhelper config files"
+msgstr "Fichiers de configuration de l'exécutable debhelper."
+
+#. type: textblock
+#: debhelper.pod:231
+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:234
+msgid ""
+"To use this feature, simply mark the config file as executable (e.g. B<< "
+"chmod +x debian/I<package>.install >>) and the tool will attempt to execute "
+"it and use the output of the script. In many cases, you can use L<dh-"
+"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:242
+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: textblock
+#: debhelper.pod:249
+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:254
+msgid ""
+"In compatibility level 13+, the output will be subject to substitutions (see "
+"L</Substitutions in debhelper config files>) where the tool support these. "
+"Remember to be careful if your generator I<also> provides substitutions as "
+"this can cause unnecessary confusion."
+msgstr ""
+"À partir du niveau de compatibilité 13, la sortie sera sujette à des "
+"substitutions (voir L</Substitutions dans les fichiers de configuration de "
+"debhelper>) lorsque l'outil les prend en charge. N'oubliez d'être prudent si "
+"votre générateur fournit aussi des substitutions parce que cela peut "
+"provoquer des confusions inutiles."
+
+#. type: textblock
+#: debhelper.pod:259
+msgid ""
+"Otherwise, the output will be used exactly as-is. Notably, debhelper will "
+"I<not> expand wildcards or strip comments or strip whitespace in the output."
+msgstr ""
+"Autrement, la sortie sera utilisée exactement telle quelle. En particulier, "
+"debhelper ne développera B<pas> les jokers, ni ne supprimera les "
+"commentaires ou les espaces de la sortie."
+
+#. type: textblock
+#: debhelper.pod:265
+msgid ""
+"If you need the package to build on a file system where you cannot disable "
+"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
-#: debhelper.pod:96
+#: debhelper.pod:269
msgid "SHARED DEBHELPER OPTIONS"
msgstr "OPTIONS PARTAGÉES DE DEBHELPER"
# type: textblock
#. type: textblock
-#: debhelper.pod:98
+#: debhelper.pod:271
msgid ""
"The following command line options are supported by all debhelper programs."
msgstr "Tous les programmes de debhelper acceptent les options suivantes."
# type: =item
#. type: =item
-#: debhelper.pod:102
+#: debhelper.pod:275
msgid "B<-v>, B<--verbose>"
msgstr "B<-v>, B<--verbose>"
# type: textblock
#. type: textblock
-#: debhelper.pod:104
+#: debhelper.pod:277
+#, fuzzy
+#| msgid ""
+#| "Verbose mode: show all commands that modify the package build directory."
+msgid "Verbose mode: show commands that modify the package build directory."
+msgstr ""
+"Mode verbeux : affiche toutes les commandes qui modifient le répertoire de "
+"construction du paquet."
+
+# type: textblock
+#. type: textblock
+#: debhelper.pod:279
+#, fuzzy
+#| msgid ""
+#| "Verbose mode: show all commands that modify the package build directory."
msgid ""
-"Verbose mode: show all commands that modify the package build directory."
+"Note that verbose mode may also output other \"internal\" commands that do "
+"not directly affect the package build directory."
msgstr ""
"Mode verbeux : affiche toutes les commandes qui modifient le répertoire de "
"construction du paquet."
# type: =item
#. type: =item
-#: debhelper.pod:106 dh:64
+#: debhelper.pod:282 dh:307
msgid "B<--no-act>"
msgstr "B<--no-act>"
# type: textblock
#. type: textblock
-#: debhelper.pod:108
+#: debhelper.pod:284
msgid ""
"Do not really do anything. If used with -v, the result is that the command "
"will output what it would have done."
msgstr ""
"Empêche la construction de s'effectuer réellement. Si cette option est "
-"utilisée avec -v, le résultat sera l'affichage de ce que la commande aurait "
-"fait."
+"utilisée avec B<-v>, le résultat sera l'affichage de ce que la commande "
+"aurait fait."
# type: =item
#. type: =item
-#: debhelper.pod:111
+#: debhelper.pod:287
msgid "B<-a>, B<--arch>"
msgstr "B<-a>, B<--arch>"
# type: textblock
#. type: textblock
-#: debhelper.pod:113
+#: debhelper.pod:289
msgid ""
-"Act on architecture dependent packages that should be built for the build "
-"architecture."
-msgstr "Construit tous les paquets dépendants de l'architecture."
+"Act on architecture dependent packages that should be built for the "
+"B<DEB_HOST_ARCH> architecture."
+msgstr ""
+"Construit tous les paquets dépendants de l'architecture B<DEB_HOST_ARCH>."
# type: =item
#. type: =item
-#: debhelper.pod:116
+#: debhelper.pod:292
msgid "B<-i>, B<--indep>"
msgstr "B<-i>, B<--indep>"
# type: textblock
#. type: textblock
-#: debhelper.pod:118
+#: debhelper.pod:294
msgid "Act on all architecture independent packages."
msgstr "Construit tous les paquets indépendants de l'architecture."
# type: =item
#. type: =item
-#: debhelper.pod:120
+#: debhelper.pod:296
msgid "B<-p>I<package>, B<--package=>I<package>"
msgstr "B<-p>I<paquet>, B<--package=>I<paquet>"
# type: textblock
#. type: textblock
-#: debhelper.pod:122
+#: debhelper.pod:298
msgid ""
"Act on the package named I<package>. This option may be specified multiple "
"times to make debhelper operate on a given set of packages."
msgstr ""
-"Construit le paquet nommé « paquet ». Cette option peut être répétée afin de "
+"Construit le paquet nommé I<paquet>. Cette option peut être répétée afin de "
"faire agir debhelper sur plusieurs paquets."
# type: =item
#. type: =item
-#: debhelper.pod:125
+#: debhelper.pod:301
msgid "B<-s>, B<--same-arch>"
msgstr "B<-s>, B<--same-arch>"
-# type: textblock
#. type: textblock
-#: debhelper.pod:127
-msgid ""
-"This used to be a smarter version of the B<-a> flag, but the B<-a> flag is "
-"now equally smart."
-msgstr ""
-"Cette option était plus intelligente que l'option B<-a>, mais l'option B<-a> "
-"est maintenant tout aussi intelligente."
+#: debhelper.pod:303
+msgid "Deprecated alias of B<-a>."
+msgstr "Alias obsolète pour B<-a>."
+
+#. type: textblock
+#: debhelper.pod:305 dh_install:80 dh_install:89
+msgid "This option is removed in compat 12."
+msgstr "Cette option est supprimée dans le niveau de compatibilité 12."
# type: =item
#. type: =item
-#: debhelper.pod:130
+#: debhelper.pod:307
msgid "B<-N>I<package>, B<--no-package=>I<package>"
msgstr "B<-N>I<paquet>, B<--no-package=>I<paquet>"
# type: textblock
#. type: textblock
-#: debhelper.pod:132
+#: debhelper.pod:309
msgid ""
"Do not act on the specified package even if an B<-a>, B<-i>, or B<-p> option "
"lists the package as one that should be acted on."
@@ -433,12 +811,12 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:135
+#: debhelper.pod:312
msgid "B<--remaining-packages>"
msgstr "B<--remaining-packages>"
#. type: textblock
-#: debhelper.pod:137
+#: debhelper.pod:314
msgid ""
"Do not act on the packages which have already been acted on by this "
"debhelper command earlier (i.e. if the command is present in the package "
@@ -456,79 +834,47 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:143
-msgid "B<--ignore=>I<file>"
-msgstr "B<--ignore=>I<fichier>"
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:145
-msgid ""
-"Ignore the specified file. This can be used if F<debian/> contains a "
-"debhelper config file that a debhelper command should not act on. Note that "
-"F<debian/compat>, F<debian/control>, and F<debian/changelog> can't be "
-"ignored, but then, there should never be a reason to ignore those files."
-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 "
-"pris 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."
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:150
-msgid ""
-"For example, if upstream ships a F<debian/init> that you don't want "
-"B<dh_installinit> to install, use B<--ignore=debian/init>"
-msgstr ""
-"Par exemple, si vous récupérez en amont un fichier F<debian/init> que vous "
-"ne voulez pas que B<dh_installinit> installe, utilisez B<--ignore=debian/"
-"init>"
-
-# type: =item
-#. type: =item
-#: debhelper.pod:153
+#: debhelper.pod:320
msgid "B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>"
msgstr "B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>"
# type: textblock
#. type: textblock
-#: debhelper.pod:155
+#: debhelper.pod:322
msgid ""
"Use I<tmpdir> for package build directory. The default is debian/I<package>"
msgstr ""
"Utilise le répertoire I<tmpdir> pour construire les paquets. Sinon, par "
-"défaut, le répertoire utilisé est « debian/I<paquet> »"
+"défaut, le répertoire utilisé est debian/I<paquet>"
# type: =item
#. type: =item
-#: debhelper.pod:157
+#: debhelper.pod:324
msgid "B<--mainpackage=>I<package>"
msgstr "B<--mainpackage=>I<paquet>"
# type: textblock
#. type: textblock
-#: debhelper.pod:159
+#: debhelper.pod:326
msgid ""
"This little-used option changes the package which debhelper considers the "
"\"main package\", that is, the first one listed in F<debian/control>, and "
"the one for which F<debian/foo> files can be used instead of the usual "
"F<debian/package.foo> files."
msgstr ""
-"Cette option, peu utilisée, indique à debhelper le nom du « paquet principal "
-"» pour lequel les fichiers F<debian/toto> peuvent être utilisés à la place "
-"des fichiers habituels F<debian/paquet.toto>. Par défaut, debhelper "
-"considère que le « paquet principal » est le premier paquet énuméré dans le "
+"Cette option, peu utilisée, indique à debhelper le nom du « paquet "
+"principal » pour lequel les fichiers F<debian/toto> peuvent être utilisés à "
+"la place des fichiers habituels F<debian/paquet.toto>. Par défaut, debhelper "
+"considère que le « paquet principal » est le premier paquet énuméré dans le "
"fichier F<debian/control>."
#. type: =item
-#: debhelper.pod:164
+#: debhelper.pod:331
msgid "B<-O=>I<option>|I<bundle>"
msgstr "B<-O=>I<option>|I<ensemble>"
#. type: textblock
-#: debhelper.pod:166
+#: debhelper.pod:333
msgid ""
"This is used by L<dh(1)> when passing user-specified options to all the "
"commands it runs. If the command supports the specified option or option "
@@ -543,13 +889,13 @@ msgstr ""
# type: =head1
#. type: =head1
-#: debhelper.pod:173
+#: debhelper.pod:340
msgid "COMMON DEBHELPER OPTIONS"
msgstr "OPTIONS COURANTES DE DEBHELPER"
# type: textblock
#. type: textblock
-#: debhelper.pod:175
+#: debhelper.pod:342
msgid ""
"The following command line options are supported by some debhelper "
"programs. See the man page of each program for a complete explanation of "
@@ -561,64 +907,65 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:181
+#: debhelper.pod:348
msgid "B<-n>"
msgstr "B<-n>"
# type: textblock
#. type: textblock
-#: debhelper.pod:183
+#: debhelper.pod:350
msgid "Do not modify F<postinst>, F<postrm>, etc. scripts."
msgstr ""
"Ne pas modifier les scripts de maintenance du paquet (F<postinst>, "
-"F<postrm>, etc.)."
+"F<postrm>, etc.)"
# type: =item
#. type: =item
-#: debhelper.pod:185 dh_compress:52 dh_install:81 dh_installchangelogs:71
-#: dh_installdocs:80 dh_installexamples:41 dh_link:62 dh_makeshlibs:81
-#: dh_md5sums:37 dh_shlibdeps:30 dh_strip:39
+#: debhelper.pod:352 dh_compress:56 dh_dwz:56 dh_installchangelogs:89
+#: dh_installdocs:109 dh_installexamples:84 dh_link:78 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>"
# type: textblock
#. type: textblock
-#: debhelper.pod:187
+#: debhelper.pod:354
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."
+"exclude more than one thing. The I<item> is typically part of a filename, "
+"and any file containing the specified text will be excluded."
msgstr ""
"Permet d'exclure un élément du traitement. Cette option peut être employée "
"plusieurs fois afin d'exclure plusieurs éléments. L'I<élément> est en "
-"général une partie du nom de fichier, et tous les fichier contenant le texte "
-"indiqué seront exclus."
+"général une partie du nom de fichier, et tous les fichiers contenant le "
+"texte indiqué seront exclus."
# type: =item
#. type: =item
-#: debhelper.pod:191 dh_bugfiles:54 dh_compress:59 dh_installdirs:35
-#: dh_installdocs:75 dh_installexamples:36 dh_installinfo:35 dh_installman:65
-#: dh_link:57
+#: debhelper.pod:358 dh_bugfiles:57 dh_compress:63 dh_installdirs:49
+#: dh_installdocs:104 dh_installexamples:52 dh_installinfo:45 dh_installman:90
+#: dh_installwm:55 dh_link:73
msgid "B<-A>, B<--all>"
msgstr "B<-A>, B<--all>"
# type: textblock
#. type: textblock
-#: debhelper.pod:193
+#: debhelper.pod:360
msgid ""
"Makes files or other items that are specified on the command line take "
"effect in ALL packages acted on, not just the first."
msgstr ""
"Précise que les fichiers (ou autres éléments) indiqués dans la ligne de "
-"commande concernent TOUS les paquets construits et pas seulement le premier."
+"commande concernent B<tous> les paquets construits et pas seulement le "
+"premier."
#. type: =head1
-#: debhelper.pod:198
+#: debhelper.pod:365
msgid "BUILD SYSTEM OPTIONS"
msgstr "OPTIONS DU PROCESSUS DE CONSTRUCTION"
#. type: textblock
-#: debhelper.pod:200
+#: debhelper.pod:367
msgid ""
"The following command line options are supported by all of the "
"B<dh_auto_>I<*> debhelper programs. These programs support a variety of "
@@ -636,14 +983,14 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:209
+#: debhelper.pod:376
msgid "B<-S>I<buildsystem>, B<--buildsystem=>I<buildsystem>"
msgstr ""
-"B<-S>I<processus de construction>, B<--buildsystem=>I<processus de "
-"construction>"
+"B<-S>I<processus de construction>, B<--"
+"buildsystem=>I<processus_de_construction>"
#. type: textblock
-#: debhelper.pod:211
+#: debhelper.pod:378
msgid ""
"Force use of the specified I<buildsystem>, instead of trying to auto-select "
"one which might be applicable for the package."
@@ -651,14 +998,25 @@ msgstr ""
"Oblige à utiliser le processus de construction indiqué au lieu de tenter de "
"déterminer automatiquement celui qui pourrait être utilisable pour le paquet."
+#. type: textblock
+#: debhelper.pod:381
+msgid "Pass B<none> as I<buildsystem> to disable auto-selection."
+msgstr ""
+"Indique B<none> comme I<buildsystem> pour désactiver la sélection "
+"automatique."
+
# type: =item
#. type: =item
-#: debhelper.pod:214
-msgid "B<-D>I<directory>, B<--sourcedirectory=>I<directory>"
-msgstr "B<-D>I<répertoire>, B<--sourcedirectory=>I<répertoire>"
+#: debhelper.pod:383
+msgid ""
+"B<-D>I<directory>, B<--sourcedir=>I<directory>, B<--"
+"sourcedirectory=>I<directory>"
+msgstr ""
+"B<-D>I<répertoire>, B<--sourcedir=>I<répertoire>, B<--"
+"sourcedirectory=>I<répertoire>"
#. type: textblock
-#: debhelper.pod:216
+#: debhelper.pod:385
msgid ""
"Assume that the original package source tree is at the specified "
"I<directory> rather than the top level directory of the Debian source "
@@ -667,19 +1025,33 @@ msgstr ""
"Considère que les sources du paquet sont situées dans le I<répertoire> "
"indiqué plutôt qu'au plus haut niveau de l'arborescence du paquet source."
+#. type: textblock
+#: debhelper.pod:389
+msgid ""
+"B<Warning>: The B<--sourcedir> variant matches a similar named option in "
+"B<dh_install> and B<dh_missing> (etc.) for historical reasons. While they "
+"have a similar name, they have very distinct purposes and in some cases it "
+"can cause errors when this variant is passed to B<dh> (when then passes it "
+"on to all tools)."
+msgstr ""
+"B<Attention> : La variante B<--sourcedir> correspond à une option du même "
+"nom dans B<dh_install> et B<dh_missing>, etc., pour des raisons historiques. "
+"Alors qu'elles ont le même nom, elles ont des objectifs très différents et, "
+"dans certains cas, cela peut provoquer des erreurs quand cette variante est "
+"passée à B<dh> (quand ensuite il le passe à tous les outils)."
+
# type: =item
#. type: =item
-#: debhelper.pod:220
-msgid "B<-B>[I<directory>], B<--builddirectory=>[I<directory>]"
-msgstr "B<-B>[I<répertoire>], B<--builddirectory=>[I<répertoire>]"
+#: debhelper.pod:395
+msgid ""
+"B<-B>[I<directory>], B<--builddir>[I<=directory>], B<--"
+"builddirectory>[I<=directory>]"
+msgstr ""
+"B<-B>[I<répertoire>], B<--builddir=>[I<répertoire>], B<--"
+"builddirectory=>[I<répertoire>]"
#. type: textblock
-#: debhelper.pod:222
-#, fuzzy
-#| msgid ""
-#| "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 will chosen."
+#: debhelper.pod:397
msgid ""
"Enable out of source building and use the specified I<directory> as the "
"build directory. If I<directory> parameter is omitted, a default build "
@@ -691,7 +1063,7 @@ msgstr ""
"sera choisi."
#. type: textblock
-#: debhelper.pod:226
+#: debhelper.pod:401
msgid ""
"If this option is not specified, building will be done in source by default "
"unless the build system requires or prefers out of source tree building. In "
@@ -704,7 +1076,7 @@ msgstr ""
"utilisé même si B<--builddirectory> n'est pas indiqué."
#. type: textblock
-#: debhelper.pod:231
+#: debhelper.pod:406
msgid ""
"If the build system prefers out of source tree building but still allows in "
"source building, the latter can be re-enabled by passing a build directory "
@@ -718,40 +1090,54 @@ msgstr ""
# type: =item
#. type: =item
-#: debhelper.pod:235
-msgid "B<--parallel>"
-msgstr "B<--parallel>"
+#: debhelper.pod:410
+msgid "B<--parallel>, B<--no-parallel>"
+msgstr "B<--parallel>, B<--no-parallel>"
#. type: textblock
-#: debhelper.pod:237
+#: debhelper.pod:412
msgid ""
-"Enable parallel builds if underlying build system supports them. The number "
-"of parallel jobs is controlled by the B<DEB_BUILD_OPTIONS> environment "
-"variable (L<Debian Policy, section 4.9.1>) at build time. It might also be "
-"subject to a build system specific limit."
+"Control whether parallel builds should be used if underlying build system "
+"supports them. The number of parallel jobs is controlled by the "
+"B<DEB_BUILD_OPTIONS> environment variable (L<Debian Policy, section 4.9.1>) "
+"at build time. It might also be subject to a build system specific limit."
msgstr ""
-"Cette option active la construction parallèle 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 limites "
-"spécifiques du système."
+"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 "
+"limites spécifiques du système de construction."
#. type: textblock
-#: debhelper.pod:242
+#: debhelper.pod:418
+msgid ""
+"If neither option is specified, debhelper currently defaults to B<--"
+"parallel> in compat 10 (or later) and B<--no-parallel> otherwise."
+msgstr ""
+"Si aucune de ces options n'est précisée, debhelper active la parallélisation "
+"par défaut (B<--parallel>) dans le niveau de compatibilité 10 (ou "
+"supérieur), et la désactive (B<--no-parallel>) dans les autres niveaux."
+
+#. type: textblock
+#: debhelper.pod:421
msgid ""
-"If this option is not specified, debhelper currently defaults to not "
-"allowing parallel package builds."
+"As an optimization, B<dh> will try to avoid passing these options to "
+"subprocesses, if they are unnecessary 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)."
msgstr ""
-"Si cette option n'est pas indiquée, debhelper n'activera pas, par défaut, le "
-"parallélisme lors de la construction."
+"Pour des raisons d'optimisation, B<dh> essaiera de ne pas passer ces options "
+"aux processus fils si elles ne sont pas nécessaires et qu'elles sont les "
+"seules options. Cela arrive en particulier lorsque B<DEB_BUILD_OPTIONS> n'a "
+"pas de paramètre I<parallel> (ou si sa valeur est B<1>)."
#. type: =item
-#: debhelper.pod:245
+#: debhelper.pod:426
msgid "B<--max-parallel=>I<maximum>"
msgstr "B<--max-parallel=>I<maximum>"
#. type: textblock
-#: debhelper.pod:247
+#: debhelper.pod:428
msgid ""
"This option implies B<--parallel> and allows further limiting the number of "
"jobs that can be used in a parallel build. If the package build is known to "
@@ -761,103 +1147,290 @@ msgstr ""
"Cette option implique B<--parallel> et permet de limiter le nombre de tâches "
"qui pourront être lancées lors d'une compilation parallèle. Si la "
"construction du paquet est connue pour ne fonctionner qu'avec un certain "
-"niveau de parallélisme, il est possible de le régler à la valeur maximum "
+"niveau de parallélisme, il est possible de le régler à la valeur maximale "
"censée fonctionner, ou que vous souhaitez mettre en œuvre."
+#. type: textblock
+#: debhelper.pod:433
+msgid ""
+"Notably, setting the maximum to 1 is effectively the same as using B<--no-"
+"parallel>."
+msgstr ""
+"En particulier, régler le maximum à B<1> équivaut à l'utilisation de B<--no-"
+"parallel>."
+
+#. type: =item
+#: debhelper.pod:436
+msgid "B<--reload-all-buildenv-variables>"
+msgstr "B<--reload-all-buildenv-variables>"
+
+#. type: textblock
+#: debhelper.pod:438
+#, fuzzy
+#| 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."
+msgid ""
+"By default, L<dh(1)> will compute several environment variables (e.g. by "
+"using L<dpkg-buildflags(1)>) and cache them to avoid having all B<dh_auto_*> "
+"tool recompute them."
+msgstr ""
+"Par défaut, L<dh(1)> calculera plusieurs environnements (par exemple en "
+"utilisant L<dpkg-buildflags(1)>) et les met en cache pour éviter que tous "
+"les outils B<dh_auto_*> les recalculent."
+
+#. type: textblock
+#: debhelper.pod:442
+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 ""
+"Lorsque cette option est passée, l'outil réel B<dh_auto_*> ignorera le cache "
+"de L<dh(1)> et déclenchera une reconstruction de ces variables. Cela est "
+"utile dans le cas très rare où le paquet requiert de multiples constructions "
+"mais avec des options B<...FLAGS> différentes. Un exemple concret pourrait "
+"être la nécessité de modifier le paramètre B<-0> dans B<CFLAGS> dans la "
+"seconde construction."
+
+#. type: verbatim
+#: debhelper.pod:449
+#, no-wrap
+msgid ""
+" export DEB_CFLAGS_MAINT_APPEND=-O3\n"
+"\n"
+msgstr ""
+" export DEB_CFLAGS_MAINT_APPEND=-O3\n"
+"\n"
+
+#. type: verbatim
+#: debhelper.pod:451
+#, no-wrap
+msgid ""
+" %:\n"
+" dh $@\n"
+"\n"
+msgstr ""
+" %:\n"
+" dh $@\n"
+"\n"
+
+#. type: verbatim
+#: debhelper.pod:454
+#, 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 ""
+" 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"
+
+#. type: textblock
+#: debhelper.pod:459
+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 ""
+"Sans B<--reload-all-buildenv-variables> dans le second appel à "
+"L<dh_auto_configure(1)>, la modification dans B<DEB_CFLAGS_MAINT_APPEND> "
+"pourrait être ignorée parce que L<dh_auto_configure(1)> pourrait utiliser la "
+"valeur mise en cache de B<CFLAGS> fixée par L<dh(1)>."
+
+#. type: textblock
+#: debhelper.pod:464
+msgid ""
+"This option is only available with B<< debhelper (>= 12.7~) >> when the "
+"package uses compatibility level 9 or later."
+msgstr ""
+"Cette option est seulement disponible avec B<< debhelper (>= 12.7~) >> quand "
+"le paquet utilise le niveau de compatibilité 9 ou supérieur."
+
# type: =item
#. type: =item
-#: debhelper.pod:252 dh:60
+#: debhelper.pod:467 dh:299
msgid "B<--list>, B<-l>"
msgstr "B<--list>, B<-l>"
#. type: textblock
-#: debhelper.pod:254
+#: debhelper.pod:469
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é 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:261
+#: debhelper.pod:476
msgid "COMPATIBILITY LEVELS"
msgstr "NIVEAUX DE COMPATIBILITÉ"
# type: textblock
#. type: textblock
-#: debhelper.pod:263
+#: debhelper.pod:478
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 "
-"tell debhelper which compatibility level it should use, and it modifies its "
-"behavior in various ways."
+"must tell debhelper which compatibility level it should use, and it modifies "
+"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 "
"conserver à debhelper ses qualités de conception et d'écriture, car les "
"besoins changent et le savoir-faire de l'auteur s'améliore. Pour éviter que "
"de tels changements ne cassent les paquets existants, un concept de niveau "
-"de compatibilité debhelper a été introduit. On précisera à debhelper le "
+"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."
# type: textblock
#. type: textblock
-#: debhelper.pod:270
+#: debhelper.pod:485
msgid ""
-"Tell debhelper what compatibility level to use by writing a number to "
-"F<debian/compat>. For example, to turn on v9 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 9 :"
+"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:273
+#: debhelper.pod:489
#, no-wrap
msgid ""
-" % echo 9 > debian/compat\n"
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
"\n"
msgstr ""
-" % echo 9 > debian/compat\n"
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
"\n"
-# type: textblock
#. type: textblock
-#: debhelper.pod:275
+#: debhelper.pod:491
+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:497
+#, fuzzy
+#| 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>."
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 9, 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, if only for selected commands, "
+"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 9 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:501
+#, fuzzy
+#| 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:"
+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. To use this method, the F<debian/compat> file 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:279
+#: debhelper.pod:511
#, no-wrap
msgid ""
-" Build-Depends: debhelper (>= 9)\n"
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#~)\n"
"\n"
msgstr ""
-" Build-Depends: debhelper (>= 9)\n"
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#~)\n"
"\n"
+#. type: textblock
+#: debhelper.pod:513
+msgid ""
+"Note that you must use either the build-dependency on debhelper-compat or "
+"the F<debian/compat> file. Whenever possible, the debhelper-compat build-"
+"dependency is recommended."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:517
+msgid ""
+"If needed be, the B<DH_COMPAT> environment variable can be used to override "
+"the compat level for a given command. The feature is mostly useful for "
+"either temporarily upgrading a few commands to a new compat level or keeping "
+"a few commands on a lower compat level. The feature is best used sparingly "
+"as it effectively introduces special-cases into the F<debian/rules> file "
+"that may be surprising to maintainers or reviewers (or, in the long term, to "
+"yourself)."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: debhelper.pod:281
+#: debhelper.pod:525
msgid ""
"Unless otherwise indicated, all debhelper documentation assumes that you are "
"using the most recent compatibility level, and in most cases does not "
@@ -873,394 +1446,2566 @@ msgstr ""
"indications ci-dessous qui exposent les différences dans les niveaux de "
"compatibilité antérieurs."
-# type: textblock
+# type: =head2
+#. type: =head2
+#: debhelper.pod:532
+msgid "Supported compatibility levels"
+msgstr "Niveaux de compatibilité pris en charge"
+
#. type: textblock
-#: debhelper.pod:288
-msgid "These are the available compatibility levels:"
-msgstr "Les niveaux de compatibilité sont les suivants :"
+#: debhelper.pod:534
+msgid ""
+"The list of supported compatibility levels and the related upgrade check "
+"list has moved to L<debhelper-compat-upgrade-checklist(7)>."
+msgstr ""
-#. type: =item
-#: debhelper.pod:292
-msgid "v1"
-msgstr "v1"
+# type: =head1
+#. type: =head1
+#: debhelper.pod:537 dh_auto_test:48 dh_dwz:69 dh_installcatalogs:67
+#: dh_installdocs:202 dh_installemacsen:75 dh_installexamples:96
+#: dh_installinit:204 dh_installinitramfs:60 dh_installman:131
+#: dh_installmodules:57 dh_installudev:50 dh_installwm:66 dh_installxfonts:40
+#: dh_movefiles:67 dh_strip:119 dh_usrlocal:60 dh_systemd_enable:103
+#: dh_systemd_start:68
+msgid "NOTES"
+msgstr "REMARQUES"
+
+# type: =head2
+#. type: =head2
+#: debhelper.pod:539
+msgid "Multiple binary package support"
+msgstr "Prise en charge de plusieurs paquets binaires"
# type: textblock
#. type: textblock
-#: debhelper.pod:294
+#: debhelper.pod:541
msgid ""
-"This is the original debhelper compatibility level, and so it is the default "
-"one. In this mode, debhelper will use F<debian/tmp> as the package tree "
-"directory for the first binary package listed in the control file, while "
-"using debian/I<package> for all other packages listed in the F<control> file."
+"If your source package generates more than one binary package, debhelper "
+"programs will default to acting on all binary packages when run. If your "
+"source package happens to generate one architecture dependent package, and "
+"another architecture independent package, this is not the correct behavior, "
+"because you need to generate the architecture dependent packages in the "
+"binary-arch F<debian/rules> target, and the architecture independent "
+"packages in the binary-indep F<debian/rules> target."
msgstr ""
-"C'est le niveau initial de compatibilité de debhelper d'où son numéro 1. "
-"Dans ce mode, debhelper emploiera F<debian/tmp> comme répertoire de "
-"l'arborescence du premier paquet binaire énuméré dans le fichier F<control> "
-"et « debian/I<paquet> » pour tous les autres."
+"Si le paquet source produit plus d'un paquet binaire, les programmes de "
+"debhelper construiront tous les paquets binaires. Si le paquet source doit "
+"construire un paquet dépendant de l'architecture et un paquet indépendant de "
+"l'architecture, ce comportement ne conviendra pas. En effet, il convient de "
+"construire les paquets dépendants de l'architecture dans « binary-arch » de "
+"F<debian/rules>, et les paquets indépendants de l'architecture dans « binary-"
+"indep »."
# type: textblock
#. type: textblock
-#: debhelper.pod:299 debhelper.pod:306 debhelper.pod:329 debhelper.pod:358
-msgid "This mode is deprecated."
-msgstr "Ce mode est déconseillé."
+#: debhelper.pod:549
+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<-"
+"i>, B<-p>, and B<-s> parameters. These parameters are cumulative. If none "
+"are given, debhelper programs default to acting on all packages listed in "
+"the control file, with the exceptions below."
+msgstr ""
+"Pour résoudre ce problème, et pour un meilleur contrôle sur la construction "
+"des paquets par debhelper, tous les programmes de debhelper acceptent les "
+"options B<-a>, B<-i>, B<-p> et B<-s>. Ces options sont cumulatives. Si "
+"aucune n'est précisée, les programmes de debhelper construisent tous les "
+"paquets énumérés dans le fichier de contrôle, avec les exceptions ci-dessous."
+
+#. type: textblock
+#: debhelper.pod:555
+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, "
+"section 5.6.8>)."
+msgstr ""
+"Tout d'abord, chaque paquet dont le champ B<Architecture> de I<debian/"
+"control> ne contient pas l'architecture B<DEB_HOST_ARCH> sera exclu "
+"(L<Charte Debian, section 5.6.8>)."
+
+#. type: textblock
+#: debhelper.pod:559
+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 "
+"binary package stanzas in B<debian/control>, according to the draft policy "
+"at L<https://wiki.debian.org/BuildProfileSpec>."
+msgstr ""
+"De plus, quelques autres paquets peuvent être exclus suivant le contenu de "
+"la variable d'environnement B<DEB_BUILD_PROFILES> et les champs B<Build-"
+"Profiles> des paragraphes I<debian/control> dans les paquets binaires, "
+"conformément au brouillon de la charte (voir L<https://wiki.debian.org/"
+"BuildProfileSpec>)."
+
+#. type: =head3
+#: debhelper.pod:564
+msgid "Interaction between package selections and Build-Profiles"
+msgstr "Interaction entre les sélections de paquets et les Build-Profiles"
+
+#. type: textblock
+#: debhelper.pod:566
+msgid ""
+"Build-Profiles affect which packages are included in the package selections "
+"mechanisms in debhelper. Generally, the package selections are described "
+"from the assumption that all packages are enabled. This section describes "
+"how the selections react when a package is disabled due to the active Build-"
+"Profiles (or lack of active Build-Profiles)."
+msgstr ""
+"Les profils de construction (« Build-Profiles ») ont un effet sur le choix "
+"des paquets inclus dans les mécanismes de sélection de paquets de debhelper. "
+"Généralement, les sélections partent du principe que tous les paquets sont "
+"activés. Cette section décrit comment les sélections fonctionnent lorsqu'un "
+"paquet est désactivé par un profil de construction (ou par son absence)."
#. type: =item
-#: debhelper.pod:301
-msgid "v2"
-msgstr "v2"
+#: debhelper.pod:574
+msgid "-a/--arch, -i/--indep OR no selection options (a raw \"dh_X\" call)"
+msgstr ""
+"B<-a>/B<--arch>, B<-i>/B<--indep> ou aucune option de sélection (un simple "
+"appel « dh_X »)"
-# type: textblock
#. type: textblock
-#: debhelper.pod:303
+#: debhelper.pod:576
msgid ""
-"In this mode, debhelper will consistently use debian/I<package> as the "
-"package tree directory for every package that is built."
+"The package disabled by Build-Profiles is silently excluded from the "
+"selection."
msgstr ""
-"Dans ce mode, debhelper emploiera uniformément « debian/I<paquet> » comme "
-"répertoire de l'arborescence de chaque paquet construit."
+"Le paquet désactivé par le profil est silencieusement exclu de la sélection."
+#. type: textblock
+#: debhelper.pod:579
+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 "
+"do the build in the first place."
+msgstr ""
+"Veuillez noter que vous recevrez un avertissement si I<tous> les paquets "
+"relatifs à cette sélection sont désactivés. Dans ce cas, il est généralement "
+"d'aucune utilité de construire."
+
+# type: =item
#. type: =item
-#: debhelper.pod:308
-msgid "v3"
-msgstr "v3"
+#: debhelper.pod:583
+msgid "-N I<package> / --no-package I<package>"
+msgstr "B<-N> I<paquet> / B<--no-package> I<paquet>"
-# type: textblock
#. type: textblock
-#: debhelper.pod:310
-msgid "This mode works like v2, with the following additions:"
-msgstr "Ce mode fonctionne comme v2 mais avec les ajouts suivants :"
+#: debhelper.pod:585
+msgid "The option is accepted and effectively does nothing."
+msgstr "Cette option est acceptée et ne fait rien."
# type: =item
#. type: =item
-#: debhelper.pod:314 debhelper.pod:319 debhelper.pod:323 debhelper.pod:337
-#: debhelper.pod:342 debhelper.pod:347 debhelper.pod:352 debhelper.pod:366
-#: debhelper.pod:370 debhelper.pod:375 debhelper.pod:379 debhelper.pod:391
-#: debhelper.pod:396 debhelper.pod:402 debhelper.pod:408 debhelper.pod:421
-#: debhelper.pod:428 debhelper.pod:432 debhelper.pod:436 debhelper.pod:449
-#: debhelper.pod:453 debhelper.pod:461 debhelper.pod:466 debhelper.pod:480
-#: debhelper.pod:485 debhelper.pod:492 debhelper.pod:497 debhelper.pod:502
-#: debhelper.pod:506 debhelper.pod:512 debhelper.pod:517 debhelper.pod:522
-#: debhelper.pod:535 debhelper.pod:542
-msgid "-"
-msgstr "-"
+#: debhelper.pod:587
+msgid "-p I<package> / --package I<package>"
+msgstr "B<-p> I<paquet> / B<--package> I<paquet>"
+
+#. type: textblock
+#: debhelper.pod:589
+msgid "The option is accepted, but debhelper will not act on the package."
+msgstr "Cette option est acceptée, mais debhelper n'agira pas sur le paquet."
+
+#. type: textblock
+#: debhelper.pod:593
+msgid ""
+"Note that it does not matter whether a package is enabled or disabled by "
+"default."
+msgstr ""
+"Veuillez noter que cela n'a pas d'importance que le paquet soit activé ou "
+"désactivé par défaut."
+
+# type: =head2
+#. type: =head2
+#: debhelper.pod:596
+msgid "Automatic generation of Debian install scripts"
+msgstr "Génération automatique des scripts Debian d’installation"
# type: textblock
#. type: textblock
-#: debhelper.pod:316
+#: debhelper.pod:598
msgid ""
-"Debhelper config files support globbing via B<*> and B<?>, when appropriate. "
-"To turn this off and use those characters raw, just prefix with a backslash."
+"Some debhelper commands will automatically generate parts of Debian "
+"maintainer scripts. If you want these automatically generated things "
+"included in your existing Debian maintainer scripts, then you need to add "
+"B<#DEBHELPER#> to your scripts, in the place the code should be added. "
+"B<#DEBHELPER#> will be replaced by any auto-generated code when you run "
+"B<dh_installdeb>."
msgstr ""
-"Les fichiers de configuration de debhelper acceptent les jokers B<*> et B<?> "
-"lorsque cela a un sens. Pour désactiver cette substitution et utiliser ces "
-"caractères tels quels, il suffit de les préfixer avec une barre contre-"
-"oblique (backslash)."
+"Certaines commandes de debhelper produisent automatiquement des lignes de "
+"code de maintenance du paquet. Pour les inclure dans vos propres scripts de "
+"maintenance du paquet, il convient d'ajouter B<#DEBHELPER#> à l'endroit où "
+"les lignes de code générées devront être insérées. B<#DEBHELPER#> sera "
+"remplacé, par les lignes de code générées automatiquement, lors de "
+"l'exécution de B<dh_installdeb>."
# type: textblock
#. type: textblock
-#: debhelper.pod:321
+#: debhelper.pod:605
msgid ""
-"B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call "
-"B<ldconfig>."
+"If a script does not exist at all and debhelper needs to add something to "
+"it, then debhelper will create the complete script."
msgstr ""
-"Les scripts de maintenance du paquet (F<postinst> et F<postrm>) feront appel "
-"à B<ldconfig> quand B<dh_makeshlibs> sera lancé."
+"Si un script de maintenance n'existe pas et que debhelper doit y inclure "
+"quelque chose, alors debhelper créera le script de maintenance complètement."
# type: textblock
#. type: textblock
-#: debhelper.pod:325
+#: debhelper.pod:608
msgid ""
-"Every file in F<etc/> is automatically flagged as a conffile by "
-"B<dh_installdeb>."
+"All debhelper commands that automatically generate code in this way let it "
+"be disabled by the -n parameter (see above)."
msgstr ""
-"Chaque fichier de F<etc/> est automatiquement marqué par B<dh_installdeb> "
-"comme un fichier de configuration."
+"Toutes les commandes de debhelper qui produisent automatiquement des lignes "
+"de code de cette façon peuvent inhiber cette production grâce à l'option B<-"
+"n> (voir ci-dessus)."
-#. type: =item
-#: debhelper.pod:331
-msgid "v4"
-msgstr "v4"
+# type: textblock
+#. type: textblock
+#: debhelper.pod:611
+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 "
+"is one way to do that (note that I made sure that $1, $2, etc are set with "
+"the set command):"
+msgstr ""
+"Nota : Les lignes de code insérées seront écrites dans le langage de "
+"l'interpréteur de commandes (shell). De ce fait, il est impossible de les "
+"placer directement dans un script Perl. Pour les insérer dans un script "
+"Perl, voici une solution (s'assurer que $1, $2, etc., sont bien définis par "
+"la commande set) :"
+
+#. type: verbatim
+#: debhelper.pod:616
+#, no-wrap
+msgid ""
+" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
+" #DEBHELPER#\n"
+" EOF\n"
+" if (system($temp)) {\n"
+" my $exit_code = ($? >> 8) & 0xff;\n"
+" my $signal = $? & 0x7f;\n"
+" if ($exit_code) {\n"
+" die(\"The debhelper script failed with error code: ${exit_code}\");\n"
+" } else {\n"
+" die(\"The debhelper script was killed by signal: ${signal}\");\n"
+" }\n"
+" }\n"
+"\n"
+msgstr ""
+" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
+" #DEBHELPER#\n"
+" EOF\n"
+" if (system($temp)) {\n"
+" my $exit_code = ($? >> 8) & 0xff;\n"
+" my $signal = $? & 0x7f;\n"
+" if ($exit_code) {\n"
+" die(\"Le script debhelper a échoué avec le code d'erreur : ${exit_code}\");\n"
+" } else {\n"
+" die(\"Le script debhelper a été tué par le signal : ${signal}\");\n"
+" }\n"
+" }\n"
+"\n"
+
+# type: =head2
+#. type: =head2
+#: debhelper.pod:629
+msgid "Automatic generation of miscellaneous dependencies."
+msgstr "Génération automatique des diverses dépendances."
# type: textblock
#. type: textblock
-#: debhelper.pod:333
-msgid "Changes from v3 are:"
-msgstr "Les changements par rapport à la version 3 sont :"
+#: debhelper.pod:631
+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 "
+"package will generally need to depend on debconf. Or if you use "
+"L<dh_installxfonts(1)>, your package will generally need to depend on a "
+"particular version of xutils. Keeping track of these miscellaneous "
+"dependencies can be annoying since they are dependent on how debhelper does "
+"things, so debhelper offers a way to automate it."
+msgstr ""
+"Certaines commandes de debhelper peuvent nécessiter des dépendances entre le "
+"paquet construit et d'autres paquets. Par exemple, si "
+"L<dh_installdebconf(1)> est employé, le paquet devra dépendre de debconf. Si "
+"L<dh_installxfonts(1)> est employé, le paquet deviendra dépendant d'une "
+"version particulière de xutils. Maintenir ces dépendances induites peut être "
+"pénible puisqu'elles découlent de la façon dont debhelper travaille. C'est "
+"pourquoi debhelper offre une solution d'automatisation."
# type: textblock
#. type: textblock
-#: debhelper.pod:339
+#: debhelper.pod:639
msgid ""
-"B<dh_makeshlibs -V> will not include the Debian part of the version number "
-"in the generated dependency line in the shlibs file."
+"All commands of this type, besides documenting what dependencies may be "
+"needed on their man pages, will automatically generate a substvar called "
+"B<${misc:Depends}>. If you put that token into your F<debian/control> file, "
+"it will be expanded to the dependencies debhelper figures you need."
msgstr ""
-"B<dh_makeshlibs -V> n'inclura pas la partie Debian du numéro de version dans "
-"la ligne de dépendance produite dans le fichier shlibs."
+"Toutes les commandes de ce type, outre qu'elles documentent, dans leur page "
+"de manuel, les dépendances qu'elle induisent, généreront automatiquement une "
+"variable de substitution nommée B<${misc:depends}>. Si cette variable est "
+"exploitée dans le dossier F<debian/control>, il sera automatiquement enrichi "
+"des dépendances induites par debhelper."
# type: textblock
#. type: textblock
-#: debhelper.pod:344
+#: debhelper.pod:644
msgid ""
-"You are encouraged to put the new B<${misc:Depends}> into F<debian/control> "
-"to supplement the B<${shlibs:Depends}> field."
+"This is entirely independent of the standard B<${shlibs:Depends}> generated "
+"by L<dh_makeshlibs(1)>, and the B<${perl:Depends}> generated by "
+"L<dh_perl(1)>. You can choose not to use any of these, if debhelper's "
+"guesses don't match reality."
msgstr ""
-"Il est fortement conseillé de mettre le nouveau B<${misc:Depends}> dans "
-"F<debian/control> pour compléter le champs B<${shlibs:Depends}>."
+"Ce processus est entièrement indépendant de B<${shlibs:Depends}> standard, "
+"produite par L<dh_makeshlibs(1)>, et de B<${perl:Depends}> produite par "
+"L<dh_perl(1)>. Il est également possible de choisir de ne pas les utiliser "
+"si les conjectures de debhelper ne correspondent pas à la réalité."
+
+# type: =head2
+#. type: =head2
+#: debhelper.pod:649
+msgid "Package build directories"
+msgstr "Répertoires de construction du paquet"
# type: textblock
#. type: textblock
-#: debhelper.pod:349
+#: debhelper.pod:651
msgid ""
-"B<dh_fixperms> will make all files in F<bin/> directories and in F<etc/init."
-"d> executable."
+"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 ""
-"B<dh_fixperms> rendra exécutables tous les fichiers des répertoires F<bin/> "
-"et F<etc/init.d>."
+"Par défaut, tous les programmes de debhelper supposent que le répertoire "
+"temporaire utilisé pour construire l'arborescence des fichiers d'un paquet "
+"est debian/I<paquet>."
# type: textblock
#. type: textblock
-#: debhelper.pod:354
-msgid "B<dh_link> will correct existing links to conform with policy."
+#: debhelper.pod:654
+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>\", will use B<debian/tmp> as the temporary directory. Note that if you "
+"use B<-P>, the debhelper programs can only be acting on a single package at "
+"a time. So if you have a package that builds many binary packages, you will "
+"need to also use the B<-p> flag to specify which binary package the "
+"debhelper program will act on."
msgstr ""
-"B<dh_link> corrigera les liens existants pour les rendre conformes à la "
-"Charte Debian."
+"Parfois, il peut être souhaitable d'utiliser un autre répertoire temporaire. "
+"C'est obtenu grâce à l'attribut B<-P>. Par exemple, B<dh_installdocs -"
+"Pdebian/tmp> utilisera B<debian/tmp> comme répertoire temporaire. Nota : "
+"L'usage de B<-P> implique que les programmes de debhelper ne construisent "
+"qu'un seul paquet à la fois. De ce fait, si le paquet source génère "
+"plusieurs paquets binaires, il faudra employer également le paramètre B<-p> "
+"pour préciser l'unique paquet binaire à construire."
+
+# type: =head2
+#. type: =head2
+#: debhelper.pod:662
+msgid "udebs"
+msgstr "udebs"
+
+# type: textblock
+#. type: textblock
+#: debhelper.pod:664
+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>. "
+"Debhelper will try to create udebs that comply with debian-installer policy, "
+"by making the generated package files end in F<.udeb>, not installing any "
+"documentation into a udeb, skipping over F<preinst>, F<postrm>, F<prerm>, "
+"and F<config> scripts, etc."
+msgstr ""
+"Debhelper prend en charge la construction des udebs. Pour créer un udeb avec "
+"debhelper, il faut ajouter « B<Package-Type: udeb> » aux lignes de paquet "
+"dans F<debian/control>. Debhelper essayera de construire des udebs, "
+"conformément aux règles de l'installateur Debian, en suffixant les fichiers "
+"de paquets générés avec F<.udeb>, en n'installant aucune documentation dans "
+"un udeb, en omettant les scripts F<preinst>, F<postrm>, F<prerm> et "
+"F<config>, etc."
+
+# type: =head1
+#. type: =head1
+#: debhelper.pod:671
+msgid "ENVIRONMENT"
+msgstr "VARIABLES D'ENVIRONNEMENT"
+
+#. type: textblock
+#: debhelper.pod:673
+msgid ""
+"This section describes some of the environment variables that influences the "
+"behaviour of debhelper or which debhelper interacts with."
+msgstr ""
+"Cette section décrit certaines des variables d'environnement qui influencent "
+"le comportement de debhelper ou avec lesquelles debhelper est en interaction."
+#. type: textblock
+#: debhelper.pod:676
+msgid ""
+"It is important to note that these must be actual environment variables in "
+"order to affect the behaviour of debhelper (not simply F<Makefile> "
+"variables). To specify them properly in F<debian/rules>, be sure to "
+"\"B<export>\" them. For example, \"B<export DH_VERBOSE>\"."
+msgstr ""
+"Il est important de noter que celles-ci doivent être des variables "
+"existantes pour affecter le comportement de debhelper (pas simplement des "
+"variables de F<Makefile>). Pour les définir proprement dans le fichier "
+"F<debian/rules>, assurez-vous de les exporter (« B<export> »). Par exemple "
+"« B<export DH_VERBOSE> »."
+
+# type: =item
#. type: =item
-#: debhelper.pod:360
-msgid "v5"
-msgstr "v5"
+#: debhelper.pod:683
+msgid "B<DH_VERBOSE>"
+msgstr "B<DH_VERBOSE>"
+
+#. type: textblock
+#: debhelper.pod:685
+msgid ""
+"Set to a non-empty value to enable verbose mode. Please see the B<-v> / B<--"
+"verbose> option for details."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: debhelper.pod:688
+msgid "B<DH_QUIET>"
+msgstr "B<DH_QUIET>"
+
+#. type: textblock
+#: debhelper.pod:690
+#, fuzzy
+#| 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 depending on the upstream build system might make that more "
+#| "quiet, too. This makes it easier to spot important messages but makes "
+#| "the output quite useless as buildd log. Ignored if DH_VERBOSE is also "
+#| "set."
+msgid ""
+"Set to a non-empty value to enable quiet mode. Debhelper will not output "
+"commands calling the upstream build system nor will dh print which "
+"subcommands are called and depending on the upstream build system might make "
+"that more quiet, too. This makes it easier to spot important messages but "
+"makes the output quite useless as buildd log."
+msgstr ""
+"Mettre cette variable à B<1> valide le mode silencieux. Debhelper "
+"n'affichera aucune commande appelant le système de construction amont, et dh "
+"n'affichera aucune des sous-commandes appelées. En fonction du système de "
+"construction amont, cela pourra le rendre encore plus silencieux. Cela "
+"facilite la détection des messages importants, mais rend la sortie inutile "
+"en tant que journal de construction. Cette valeur est ignorée si "
+"B<DH_VERBOSE> est aussi positionnée."
+
+#. type: textblock
+#: debhelper.pod:696
+msgid "Ignored if DH_VERBOSE is also set or B<-v> / B<--verbose> is passed."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: debhelper.pod:698
+msgid "B<DH_COMPAT>"
+msgstr "B<DH_COMPAT>"
# type: textblock
#. type: textblock
-#: debhelper.pod:362
-msgid "Changes from v4 are:"
-msgstr "Les changements par rapport à la version 4 sont :"
+#: debhelper.pod:700
+msgid ""
+"Temporarily specifies what compatibility level debhelper should run at, "
+"overriding any value specified via Build-Depends on debhelper-compat or via "
+"the F<debian/compat> file."
+msgstr ""
+"Indique temporairement le niveau de compatibilité avec lequel debhelper doit "
+"fonctionner. Cette valeur supplante toute valeur précisée par Build-Depends "
+"sur debhelper-compat ou dans F<debian/compat>."
+
+# type: =item
+#. type: =item
+#: debhelper.pod:704
+msgid "B<DH_NO_ACT>"
+msgstr "B<DH_NO_ACT>"
# type: textblock
#. type: textblock
-#: debhelper.pod:368
-msgid "Comments are ignored in debhelper config files."
+#: debhelper.pod:706
+msgid "Set to B<1> to enable no-act mode."
+msgstr "Mettre cette variable à B<1> pour activer le mode simulation (no-act)."
+
+# type: =item
+#. type: =item
+#: debhelper.pod:708
+msgid "B<DH_OPTIONS>"
+msgstr "B<DH_OPTIONS>"
+
+#. type: textblock
+#: debhelper.pod:710
+msgid ""
+"All debhelper tools will parse command line arguments listed in this "
+"variable before any command option (as if they had been prepended to the "
+"command line arguments). Unfortunately, some third-party provided tools may "
+"not support this variable and will ignore these command line arguments."
msgstr ""
-"Les commentaires sont ignorés dans les fichiers de configuration de "
-"debhelper."
+"Tous les outils de debhelper analyseront les arguments de la ligne de "
+"commande listés dans cette variable avant toute option de commande (comme "
+"s'ils avaient été ajoutés au début des arguments de la ligne de commande). "
+"Malheureusement, certains outils tiers peuvent ne pas prendre en compte "
+"cette variable et ignoreront ces arguments."
+
+#. type: textblock
+#: debhelper.pod:715
+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 ""
+"En utilisant L<dh(1)>, des options peuvent être passées à chaque commande "
+"debhelper, ce qui est généralement mieux que d'utiliser B<DH_OPTIONS>."
+
+# type: =item
+#. type: =item
+#: debhelper.pod:718
+msgid "B<DH_ALWAYS_EXCLUDE>"
+msgstr "B<DH_ALWAYS_EXCLUDE>"
# type: textblock
#. type: textblock
-#: debhelper.pod:372
+#: debhelper.pod:720
msgid ""
-"B<dh_strip --dbg-package> now specifies the name of a package to put "
-"debugging symbols in, not the packages to take the symbols from."
+"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 "
+"B<rm -rf> anything that matches the value in your package build tree."
msgstr ""
-"B<dh_strip --dbg-package> indique maintenant le nom du paquet qui doit "
-"recevoir les symboles de mise au point et non plus les paquets d'où "
-"proviennent ces symboles."
+"Si cette variable possède une valeur, elle sera ajoutée à l'option B<-X> de "
+"toutes les commandes qui admettent cette option. De plus, B<dh_builddeb> "
+"fera un B<rm -rf> pour chaque chose correspondant à la valeur dans l'arbre "
+"de construction de paquet."
# type: textblock
#. type: textblock
-#: debhelper.pod:377
-msgid "B<dh_installdocs> skips installing empty files."
-msgstr "B<dh_installdocs> saute l'installation des fichiers vides."
+#: debhelper.pod:724
+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 "
+"sneaking into the package you build. Or, if a package has a source tarball "
+"that (unwisely) includes CVS directories, you might want to export "
+"B<DH_ALWAYS_EXCLUDE=CVS> in F<debian/rules>, to make it take effect wherever "
+"your package is built."
+msgstr ""
+"Cela peut être utile pour construire un paquet à partir d'une arborescence "
+"CVS. Dans ce cas, le réglage de B<DH_ALWAYS_EXCLUDE=CVS> empêchera les "
+"répertoires CVS d'interférer subrepticement dans le paquet en construction. "
+"Ou, si un paquet possède une source compressée, (maladroitement) présente "
+"dans un répertoire CVS, il peut être utile d'exporter "
+"B<DH_ALWAYS_EXCLUDE=CVS> dans F<debian/rules>, pour que cette variable soit "
+"prise en compte quel que soit l'endroit où le paquet est construit."
# type: textblock
#. type: textblock
-#: debhelper.pod:381
-msgid "B<dh_install> errors out if wildcards expand to nothing."
+#: debhelper.pod:731
+msgid ""
+"Multiple things to exclude can be separated with colons, as in "
+"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
msgstr ""
-"B<dh_install> génère des erreurs si les jokers (wildcards) ne correspondent "
-"à rien."
+"Des exclusions multiples peuvent être séparées avec des caractères deux "
+"points, comme dans F<DH_ALWAYS_EXCLUDE=CVS:.svn>."
+# type: =item
#. type: =item
-#: debhelper.pod:385
-msgid "v6"
-msgstr "v6"
+#: debhelper.pod:734
+msgid "B<DH_EXTRA_ADDONS>"
+msgstr "B<DH_EXTRA_ADDONS>"
+
+#. type: textblock
+#: debhelper.pod:736
+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 "
+"addon to run with the --with flag in the debian/rules file. Any --without "
+"calls specifying an addon in this environment variable will not be run."
+msgstr ""
+"Les rajouts à B<dh> indiqués seront exécutés lors de la séquence de "
+"commandes. Cela équivaut à les indiquer avec le drapeau B<--with> dans le "
+"fichier F<debian/rules>. Les rajouts précédés de B<--without> ne seront pas "
+"exécutés, même s'ils sont indiqués dans cette variable d'environnement."
+
+#. type: textblock
+#: debhelper.pod:741
+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 "
+"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."
+msgstr ""
+"Cela est prévu pour être utilisé par les dérivées ou les configurations "
+"locales spécifiques qui ont besoin d'un rajout lors de plusieurs "
+"construction, sans avoir à modifier un grand nombre de fichier F<rules>. Il "
+"est préférable d'éviter cette méthode et d'utiliser plutôt les drapeaux B<--"
+"with> dans le fichier F<rules>."
+
+#. type: =item
+#: debhelper.pod:746
+msgid "B<DH_COLORS>, B<DPKG_COLORS>"
+msgstr "B<DH_COLORS>, B<DPKG_COLORS>"
+
+#. type: textblock
+#: debhelper.pod:748
+msgid ""
+"These variables can be used to control whether debhelper commands should use "
+"colors in their textual output. Can be set to \"always\", \"auto\" (the "
+"default), or \"never\"."
+msgstr ""
+"Ces variables peuvent être utilisées pour contrôler comment les commandes de "
+"debhelper peuvent utiliser la couleur dans leurs sorties textuelles. Les "
+"réglages peuvent être « always », « auto » (par défaut) ou « never »."
+
+#. type: textblock
+#: debhelper.pod:752
+msgid ""
+"Note that B<DPKG_COLOR> also affects a number of dpkg related tools and "
+"debhelper uses it on the assumption that you want the same color setting for "
+"dpkg and debhelper. In the off-hand chance you want different color setting "
+"for debhelper, you can use B<DH_COLORS> instead or in addition to "
+"B<DPKG_COLORS>."
+msgstr ""
+"Notez que B<DPKG_COLOR> affecte aussi un certain nombre d'outils liés à dpkg "
+"et debhelper l'utilise en supposant que vous voulez les même réglages de "
+"couleur pour dpkg et debhelper. Au cas où vous voudriez un autre jeu de "
+"couleurs pour debhelper, vous pouvez utiliser B<DH_COLORS> à la place ou en "
+"plus de B<DPKG_COLORS>."
+
+#. type: =item
+#: debhelper.pod:758
+msgid "B<NO_COLOR>"
+msgstr "B<NO_COLOR>"
+
+#. type: textblock
+#: debhelper.pod:760
+msgid ""
+"If no explicit request for color has been given (e.g. B<DH_COLORS> and "
+"B<DPKG_COLORS> are both unset), the presence of this environment variable "
+"cause the default color setting to be \"never\"."
+msgstr ""
+"Si aucune demande explicite de couleur n'a été passée (par exemple, ni "
+"B<DH_COLORS>, ni B<DPKG_COLORS> n'ont été configurées), la présence de cette "
+"variable d'environnement fera que le réglage des couleurs par défaut sera "
+"« never »."
+
+#. type: textblock
+#: debhelper.pod:764
+msgid ""
+"The variable is defined according to L<https://no-color.org/>. In this "
+"project, the environment variables (such as B<DH_COLORS>) are considered an "
+"explicit request for color."
+msgstr ""
+"Cette variable est définie conformément à L<https://no-color.org/>. Dans ce "
+"projet, les variables d'environnement (comme B<DH_COLORS>) sont considérées "
+"comme une demande explicite de couleur."
+
+#. type: =item
+#: debhelper.pod:768
+msgid ""
+"B<CFLAGS>, B<CPPFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, "
+"B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS>, B<LDFLAGS>"
+msgstr ""
+"B<CFLAGS>, B<CPPFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, "
+"B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS>, B<LDFLAGS>"
+
+#. type: textblock
+#: debhelper.pod:770
+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 ""
+"Par défaut (dans tout niveau de compatibilité non obsolète), debhelper "
+"réglera automatiquement ces paramètres en utilisant L<dpkg-buildflags(1)> "
+"quand ils ne sont pas définis. S'il est nécessaire de changer les paramètres "
+"par défaut, veuillez utiliser les fonctions de L<dpkg-buildflags(1)> pour le "
+"faire (par exemple, B<DEB_BUILD_MAINT_OPTIONS=hardening=all> ou "
+"B<DEB_CPPFLAGS_MAINT_APPEND=-DCUSTOM_MACRO=true>) au lieu de configurer "
+"directement les variables concrètes."
+
+#. type: =item
+#: debhelper.pod:777
+msgid "B<HOME>, B<XDG_*>"
+msgstr "B<HOME>, B<XDG_*>"
+
+#. type: textblock
+#: debhelper.pod:779
+msgid ""
+"In compat 13 and later, these environment variables are reset before "
+"invoking the upstream build system via the B<dh_auto_*> helpers. The "
+"variables B<HOME> (all B<dh_auto_*> helpers) and B<XDG_RUNTIME_DIR> "
+"(B<dh_auto_test> only) will be set to a writable directory. All remaining "
+"variables and B<XDG_RUNTIME_DIR> (except for during B<dh_auto_test>) will be "
+"cleared."
+msgstr ""
+"À partir du niveau de compatibilité 13, ces variables d'environnement sont "
+"réinitialisées avant d'invoquer le système de construction amont à l'aide "
+"des outils B<dh_auto_*>. Les variables B<HOME> (pour tout outil "
+"B<dh_auto_*>) et B<XDG_RUNTIME_DIR> (pour B<dh_auto_test> seulement) seront "
+"réglées dans un répertoire accessible en écriture. Toutes les autres "
+"variables et B<XDG_RUNTIME_DIR> (sauf durant B<dh_auto_test>) seront vidées."
+
+#. type: textblock
+#: debhelper.pod:785
+msgid ""
+"The B<HOME> directory will be created as an empty directory but it will be "
+"reused between calls to B<dh_auto_*>. Any content will persist until "
+"explicitly deleted or B<dh_clean>."
+msgstr ""
+"Le répertoire B<HOME> sera créé comme un répertoire vide mais il sera "
+"réutilisé entre les appels à B<dh_auto_*>. Tout son contenu restera jusqu'à "
+"ce qu'il soit explicitement supprimé ou jusqu'à l'exécution de B<dh_clean>."
+
+# type: =item
+#. type: =item
+#: debhelper.pod:789
+msgid "B<DEB_BUILD_OPTIONS>"
+msgstr "B<DEB_BUILD_OPTIONS>"
+
+#. type: textblock
+#: debhelper.pod:791
+msgid ""
+"Please see L</Supported flags in DEB_BUILD_OPTIONS> for this environment "
+"variable."
+msgstr ""
+"Veuillez consulter L</Paramètres pris en charge dans DEB_BUILD_OPTIONS> pour "
+"cet environnement."
+
+#. type: textblock
+#: debhelper.pod:794
+msgid ""
+"Please note that this variable should I<not> be altered by package "
+"maintainers inside F<debian/rules> to change the behaviour of debhelper. "
+"Instead, where the package maintainer need these features, they should look "
+"disabling the relevant feature directly (e.g. by overriding the concrete "
+"tools)."
+msgstr ""
+"Veuillez noter que cette variable ne devrait B<pas> être modifiée par les "
+"responsables de paquet dans F<debian/rules> pour changer le comportement de "
+"debhelper. Ils devraient plutôt rechercher à désactiver la fonction "
+"correspondante directement (par exemple en surchargeant les outils "
+"spécifiques)."
+
+# type: =item
+#. type: =item
+#: debhelper.pod:799
+msgid "B<DEB_BUILD_MAINT_OPTIONS>"
+msgstr "B<DEB_BUILD_MAINT_OPTIONS>"
+
+#. type: textblock
+#: debhelper.pod:801
+msgid ""
+"This is a dpkg specific environment variable (see e.g. L<dpkg-"
+"buildflags(1)>). The debhelper tool suite silently ignores it."
+msgstr ""
+"C'est une variable d'environnement spécifique à dpkg (voir par exemple "
+"L<dpkg-buildflags(1)>). La suite d'outils de debhelper l'ignore "
+"silencieusement."
+
+#. type: textblock
+#: debhelper.pod:804
+msgid ""
+"It is documented here because it has a similar name to B<DEB_BUILD_OPTIONS>, "
+"which make some people mistakenly assume that debhelper will also react to "
+"this variable."
+msgstr ""
+"Cela est documenté ici parce qu'elle porte un nom identique à "
+"B<DEB_BUILD_OPTIONS>, ce qui fait que certaines personnes pensent par erreur "
+"que debhelper réagit aussi à cette variable."
+
+#. type: =head2
+#: debhelper.pod:810
+msgid "Supported flags in DEB_BUILD_OPTIONS"
+msgstr "Paramètres pris en charge dans DEB_BUILD_OPTIONS"
+
+#. type: textblock
+#: debhelper.pod:812
+msgid ""
+"The debhelper tool suite reacts to the following flags in "
+"B<DEB_BUILD_OPTIONS>."
+msgstr ""
+"La suite d'outils de debhelper réagit aux paramètres suivants dans "
+"B<DEB_BUILD_OPTIONS>."
+
+#. type: =item
+#: debhelper.pod:816
+msgid "B<dherroron=obsolete-compat-levels>"
+msgstr "B<dherroron=obsolete-compat-levels>"
+
+#. type: textblock
+#: debhelper.pod:818
+msgid "I<This is a debhelper specific value.>"
+msgstr "I<C'est une valeur spécifique à debhelper.>"
+
+#. type: textblock
+#: debhelper.pod:820
+msgid ""
+"When B<dherroron> is present and set to B<obsolete-compat-levels>, then "
+"debhelper tools will promote deprecation warnings for usage of old soon to "
+"be removed compat levels into errors."
+msgstr ""
+"Quand B<dherroron> est présent et réglé à B<obsolete-compat-levels>, alors "
+"les outils de debhelper présenteront dans les erreurs des alertes sur "
+"l'utilisation des niveaux de compatibilité anciens sur le point d'être "
+"obsolètes"
+
+#. type: textblock
+#: debhelper.pod:824
+msgid ""
+"This is useful for automated checking for code relying on deprecated compat "
+"levels that is scheduled for removal."
+msgstr ""
+"C'est utile pour la vérification automatique de code se basant sur des "
+"niveaux de compatibilité dont la suppression est programmée."
+
+#. type: textblock
+#: debhelper.pod:827
+msgid "This option is intended for testing purposes; not production builds."
+msgstr ""
+"Cette option est destinée aux tests et non aux constructions pour la "
+"production."
+
+#. type: =item
+#: debhelper.pod:829
+msgid "B<nostrip>"
+msgstr "B<nostrip>"
+
+#. type: textblock
+#: debhelper.pod:831 debhelper.pod:854 debhelper.pod:868
+msgid ""
+"I<This value will change the content of the debs being built. The .deb "
+"packages built when this is set is therefore not bit-for-bit reproducible "
+"with a regular build in the general case.>"
+msgstr ""
+"I<Cette valeur changera le contenu des paquets .deb en construction. Les "
+"paquets .deb construits avec ce réglage ne seront donc pas reproductibles "
+"bit à bit par rapport à une construction normale en cas général.>"
+
+#. type: textblock
+#: debhelper.pod:835
+msgid ""
+"This value will cause the official debhelper tools will skip actions and "
+"helpers that either remove, detach or deduplicate debugging symbols in ELF "
+"binaries."
+msgstr ""
+"Cette valeur fera que les outils officiels de debhelper ignoreront les "
+"actions et les outils qui suppriment, détachent ou dédoublent les symboles "
+"de débogage dans les binaires ELF."
+
+#. type: textblock
+#: debhelper.pod:839
+msgid "This value affects L<dh_dwz(1)> and L<dh_strip(1)>."
+msgstr "Cette valeur affecte L<dh_dwz(1)> et L<dh_strip(1)>."
+
+#. type: =item
+#: debhelper.pod:841
+msgid "B<nocheck>"
+msgstr "B<nocheck>"
+
+#. type: textblock
+#: debhelper.pod:843
+msgid ""
+"This value will cause the official debhelper build systems to skip runs of "
+"upstream test suites."
+msgstr ""
+"Cette valeur fera que les systèmes de construction officiels de debhelper "
+"ignoreront l'exécution des suites de tests de l'amont."
+
+#. type: textblock
+#: debhelper.pod:846
+msgid ""
+"Package maintainers looking to avoid running the upstream tests should "
+"B<not> rely on this. Instead, they can add an empty override target to skip "
+"B<dh_auto_test>."
+msgstr ""
+"Les responsables de paquet cherchant à éviter l'exécution des tests de "
+"l'amont ne devraient B<pas> recourir à cela. Ils peuvent plutôt ajouter une "
+"cible de réécriture vide pour ignorer B<dh_auto_test>."
+
+#. type: textblock
+#: debhelper.pod:850
+msgid "This value affects L<dh_auto_test(1)>."
+msgstr "Cette valeur affecte L<dh_auto_test(1)>."
+
+#. type: =item
+#: debhelper.pod:852
+msgid "B<nodoc>"
+msgstr "B<nodoc>"
+
+#. type: textblock
+#: debhelper.pod:858
+msgid ""
+"This value will cause several debhelper tools to skip installation of "
+"documentation such as manpages or upstream provided documentation. "
+"Additionally, the tools will also ignore if declared documentation is "
+"\"missing\" on the assumption that the documentation has not been built."
+msgstr ""
+"Cette valeur fera que plusieurs outils de debhelper ignoreront "
+"l'installation de documentation comme les pages de manuel ou la "
+"documentation fournie par l'amont. En plus, les outils ne sauront pas si la "
+"documentation déclarée est « missing » en partant du principe que la "
+"documentation n'a pas été construite."
+
+#. type: textblock
+#: debhelper.pod:863
+msgid ""
+"This value effects tools I<like> L<dh_installdocs(1)>, which I<knows> it is "
+"working with documentation."
+msgstr ""
+"Cette valeur affecte des outils comme L<dh_installdocs(1)> qui B<sait> qu'il "
+"travaille sur la documentation."
+
+#. type: =item
+#: debhelper.pod:866
+#, fuzzy
+#| msgid "B<nostrip>"
+msgid "B<notrimdch>"
+msgstr "B<nostrip>"
+
+#. type: textblock
+#: debhelper.pod:872
+msgid ""
+"This value will cause L<dh_installchangelogs(1)> to act as if it had been "
+"passed the B<--no-trim> option, forcing it to forgo removing older entries "
+"from changelogs."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: debhelper.pod:876
+msgid "B<noautodbgsym>, B<noddebs>"
+msgstr "B<noautodbgsym>, B<noddebs>"
+
+#. type: textblock
+#: debhelper.pod:878
+msgid ""
+"I<The official name is noautodbgsym. The noddebs variant is accepted for "
+"historical reasons.>"
+msgstr ""
+"I<Le nom officiel est noautodbgsym. La variante noddebs est acceptée pour "
+"des raisons historiques.>"
+
+#. type: textblock
+#: debhelper.pod:881
+msgid ""
+"This value causes debhelper to skip the generation of automatically "
+"generated debug symbol packages."
+msgstr ""
+"Cette valeur fait que debhelper ignore la création des paquets de symboles "
+"de débogage générés automatiquement."
+
+#. type: textblock
+#: debhelper.pod:884
+msgid "This value affects L<dh_strip(1)>."
+msgstr "Cette valeur affecte L<dh_strip(1)>."
+
+# type: =item
+#. type: =item
+#: debhelper.pod:886
+msgid "B<parallel=N>"
+msgstr "B<parallel=N>"
+
+#. type: textblock
+#: debhelper.pod:888
+msgid ""
+"This value enables debhelper to use up to B<N> threads or processes (subject "
+"to parameters like B<--no-parallel> and B<--max-parallel=M>). Not all "
+"debhelper tools work with parallel tasks and may silently ignore the request."
+msgstr ""
+"Cette valeur à permet debhelper d'utiliser jusqu'à B<N> threads ou processus "
+"(soumis à des paramètres comme B<--no-parallel> et B<--max-parallel=M>). "
+"Tous les outils de debhelper ne fonctionnent pas avec des tâches parallèles "
+"et peuvent ignorer silencieusement la requête."
+
+#. type: textblock
+#: debhelper.pod:893
+msgid ""
+"This value affects many debhelper tools. Most notably B<dh_auto_*>, which "
+"will attempt to run the underlying upstream build system with that number of "
+"threads."
+msgstr ""
+"Cette valeur affecte de nombreux outils de debhelper et en particulier "
+"B<dh_auto_*> qui tentera d'exécuter le système de construction amont sous-"
+"jacent avec ce nombre de thread."
+
+#. type: =item
+#: debhelper.pod:897
+msgid "B<terse>"
+msgstr "B<terse>"
+
+#. type: textblock
+#: debhelper.pod:899
+msgid ""
+"This value will cause the official debhelper build systems to configure "
+"upstream builds to be terse (i.e. reduce verbosity in their output). This "
+"is subject to the upstream and the debhelper build system supporting such "
+"features."
+msgstr ""
+"Cette valeur fera que les systèmes de construction officiels de debhelper "
+"configurent les constructions de l'amont pour qu'elles soient laconiques "
+"(c'est-à-dire réduisent la verbosité de leurs sorties). Cela est subordonné "
+"à la prise en charge par les systèmes de construction de l'amont et de "
+"debhelper de ces fonctionnalités."
+
+#. type: textblock
+#: debhelper.pod:904
+msgid ""
+"This value affects most B<dh_auto_*> tools directly. For commands provided "
+"by the debhelper package, it also causes the tools to act like the "
+"B<DH_QUIET> environment variable was non-empty."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:910
+msgid "Unknown flags are silently ignored."
+msgstr "Les paramètres inconnus sont ignorés silencieusement."
+
+#. type: textblock
+#: debhelper.pod:912
+msgid ""
+"Note third-party debhelper-like tools or third-party provided build systems "
+"may or may not react to the above flags. This tends to depend on "
+"implementation details of the tool."
+msgstr ""
+"Veuillez noter que les outils tiers dans le style de debhelper ou les "
+"systèmes de construction fournis par des tiers peuvent réagir ou non aux "
+"paramètres ci-dessus. Cela dépend généralement des détails d'implémentation "
+"des outils"
+
+# type: =head1
+#. type: =head1
+#: debhelper.pod:916 debhelper-compat-upgrade-checklist.pod:758
+#: debhelper-obsolete-compat.pod:178 dh:872 dh_auto_build:53 dh_auto_clean:55
+#: dh_auto_configure:58 dh_auto_install:103 dh_auto_test:64 dh_bugfiles:133
+#: dh_builddeb:176 dh_clean:189 dh_compress:243 dh_dwz:163 dh_fixperms:164
+#: dh_gencontrol:208 dh_icons:75 dh_install:377 dh_installcatalogs:128
+#: dh_installchangelogs:365 dh_installcron:80 dh_installdeb:419
+#: dh_installdebconf:233 dh_installdirs:131 dh_installdocs:437
+#: dh_installemacsen:138 dh_installexamples:182 dh_installifupdown:72
+#: dh_installinfo:123 dh_installinit:413 dh_installinitramfs:91
+#: dh_installlogcheck:81 dh_installlogrotate:53 dh_installman:420
+#: dh_installmanpages:198 dh_installmenu:88 dh_installmime:63
+#: dh_installmodules:109 dh_installpam:71 dh_installppp:68 dh_installudev:102
+#: dh_installwm:130 dh_installxfonts:90 dh_link:166 dh_lintian:60
+#: dh_listpackages:34 dh_makeshlibs:456 dh_md5sums:118 dh_movefiles:161
+#: dh_perl:188 dh_prep:70 dh_shlibdeps:204 dh_strip:435 dh_testdir:62
+#: dh_testroot:93 dh_usrlocal:136 dh_systemd_enable:280 dh_systemd_start:280
+msgid "SEE ALSO"
+msgstr "VOIR AUSSI"
+
+#. type: =item
+#: debhelper.pod:920
+msgid "L<debhelper-compat-upgrade-checklist(7)>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:922
+msgid ""
+"List of supported compat levels and an upgrade checklist for each of them."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: debhelper.pod:924
+msgid "F</usr/share/doc/debhelper/examples/>"
+msgstr "F</usr/share/doc/debhelper/examples/>"
# type: textblock
#. type: textblock
-#: debhelper.pod:387
-msgid "Changes from v5 are:"
-msgstr "Les changements par rapport à la version 5 sont :"
+#: debhelper.pod:926
+msgid "A set of example F<debian/rules> files that use debhelper."
+msgstr ""
+"Un ensemble d'exemples de fichiers F<debian/rules> qui utilisent debhelper."
+
+# type: =item
+#. type: =item
+#: debhelper.pod:928
+msgid "L<http://joeyh.name/code/debhelper/>"
+msgstr "L<http://joeyh.name/code/debhelper/>"
# type: textblock
#. type: textblock
-#: debhelper.pod:393
+#: debhelper.pod:930
+msgid "Debhelper web site."
+msgstr "Le site internet de debhelper."
+
+# type: =head1
+#. type: =head1
+#: debhelper.pod:934 dh:878 dh_auto_build:59 dh_auto_clean:61
+#: dh_auto_configure:64 dh_auto_install:109 dh_auto_test:70 dh_bugfiles:141
+#: dh_builddeb:182 dh_clean:195 dh_compress:249 dh_dwz:169 dh_fixperms:170
+#: dh_gencontrol:214 dh_icons:81 dh_install:383 dh_installcatalogs:134
+#: dh_installchangelogs:371 dh_installcron:86 dh_installdeb:425
+#: dh_installdebconf:239 dh_installdirs:137 dh_installdocs:443
+#: dh_installemacsen:145 dh_installexamples:188 dh_installifupdown:78
+#: dh_installinfo:129 dh_installinitramfs:99 dh_installlogcheck:87
+#: dh_installlogrotate:59 dh_installman:426 dh_installmanpages:204
+#: dh_installmenu:96 dh_installmime:69 dh_installmodules:115 dh_installpam:77
+#: dh_installppp:74 dh_installudev:108 dh_installwm:136 dh_installxfonts:96
+#: dh_link:172 dh_lintian:68 dh_listpackages:40 dh_makeshlibs:462
+#: dh_md5sums:124 dh_movefiles:167 dh_perl:194 dh_prep:76 dh_shlibdeps:210
+#: dh_strip:441 dh_testdir:68 dh_testroot:99 dh_usrlocal:142
+msgid "AUTHOR"
+msgstr "AUTEUR"
+
+# type: textblock
+#. type: textblock
+#: debhelper.pod:936 dh:880 dh_auto_build:61 dh_auto_clean:63
+#: dh_auto_configure:66 dh_auto_install:111 dh_auto_test:72 dh_builddeb:184
+#: dh_clean:197 dh_compress:251 dh_fixperms:172 dh_gencontrol:216
+#: dh_install:385 dh_installchangelogs:373 dh_installcron:88 dh_installdeb:427
+#: dh_installdebconf:241 dh_installdirs:139 dh_installdocs:445
+#: dh_installemacsen:147 dh_installexamples:190 dh_installifupdown:80
+#: dh_installinfo:131 dh_installinit:421 dh_installlogrotate:61
+#: dh_installman:428 dh_installmanpages:206 dh_installmenu:98 dh_installmime:71
+#: dh_installmodules:117 dh_installpam:79 dh_installppp:76 dh_installudev:110
+#: dh_installwm:138 dh_installxfonts:98 dh_link:174 dh_listpackages:42
+#: dh_makeshlibs:464 dh_md5sums:126 dh_movefiles:169 dh_prep:78
+#: dh_shlibdeps:212 dh_strip:443 dh_testdir:70 dh_testroot:101
+msgid "Joey Hess <joeyh@debian.org>"
+msgstr "Joey Hess <joeyh@debian.org>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:5
+#, fuzzy
+#| msgid ""
+#| "debhelper-obsolete-compat - List of no longer supported compat levels"
msgid ""
-"Commands that generate maintainer script fragments will order the fragments "
-"in reverse order for the F<prerm> and F<postrm> scripts."
+"debhelper-compat-upgrade-checklist - Upgrade checklist for supported "
+"debhelper compat levels"
+msgstr ""
+"debhelper-obsolete-compat - Liste les niveaux de compatibilité qui ne sont "
+"plus pris en charge"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:9
+msgid ""
+"This document is an upgrade checklist of all the supported debhelper compat "
+"levels. It also lists all the support debhelper compat levels."
msgstr ""
-"Les commandes qui génèrent des lignes de codes de maintenance les mettront "
-"dans l'ordre inverse dans les scripts F<prerm> et F<postrm>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:12
+msgid ""
+"Information about how to declare the compat level is in L<debhelper(7)/"
+"COMPATIBILITY LEVELS>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:14
+#, fuzzy
+#| msgid ""
+#| "If you are upgrading from an earlier compatibility level, please review "
+#| "L<debhelper-obsolete-compat(7)>."
+msgid ""
+"If you are upgrading from a (now) obsolete compat level, then please refer "
+"to L<debhelper-obsolete-compat(7)>."
+msgstr ""
+"Si vous mettez à jour depuis un niveau de compatibilité antérieur, veuillez "
+"consulter L<debhelper-obsolete-compat(7)>."
+
+# type: textblock
+#. type: =head2
+#: debhelper-compat-upgrade-checklist.pod:19
+#, fuzzy
+#| msgid "This is the lowest supported compatibility level."
+msgid "Upgrade checklist for supported compatibility levels"
+msgstr "C'est le niveau de compatibilité le plus bas pris en charge."
# type: textblock
#. type: textblock
-#: debhelper.pod:398
+#: debhelper-compat-upgrade-checklist.pod:21
+msgid "These are the available compatibility levels:"
+msgstr "Les niveaux de compatibilité sont les suivants :"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:25
+#, fuzzy
+#| msgid "v5"
+msgid "v15"
+msgstr "v5"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:27
+#: debhelper-compat-upgrade-checklist.pod:51 strings-kept-translations.pod:9
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 "
-"directory."
+"This compatibility level is still open for development; use with caution."
msgstr ""
-"B<dh_installwm> installera un lien vers une page de manuel esclave pour F<x-"
-"window-manager.1.gz> s'il voit la page de manuel dans le répertoire F<usr/"
-"share/man/man1> du répertoire de construction du paquet."
+"Ce niveau de compatibilité est encore en développement ; à utiliser avec "
+"précaution."
# type: textblock
#. type: textblock
-#: debhelper.pod:404
+#: debhelper-compat-upgrade-checklist.pod:29
+#, fuzzy
+#| msgid "Changes from v4 are:"
+msgid "Changes from v14 are:"
+msgstr "Les changements par rapport à la version 4 sont :"
+
+# type: =item
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:33
+#: debhelper-compat-upgrade-checklist.pod:57
+#: debhelper-compat-upgrade-checklist.pod:63
+#: debhelper-compat-upgrade-checklist.pod:68
+#: debhelper-compat-upgrade-checklist.pod:74
+#: debhelper-compat-upgrade-checklist.pod:90
+#: debhelper-compat-upgrade-checklist.pod:95
+#: debhelper-compat-upgrade-checklist.pod:103
+#: debhelper-compat-upgrade-checklist.pod:110
+#: debhelper-compat-upgrade-checklist.pod:125
+#: debhelper-compat-upgrade-checklist.pod:133
+#: debhelper-compat-upgrade-checklist.pod:141
+#: debhelper-compat-upgrade-checklist.pod:150
+#: debhelper-compat-upgrade-checklist.pod:156
+#: debhelper-compat-upgrade-checklist.pod:166
+#: debhelper-compat-upgrade-checklist.pod:174
+#: debhelper-compat-upgrade-checklist.pod:180
+#: debhelper-compat-upgrade-checklist.pod:194
+#: debhelper-compat-upgrade-checklist.pod:205
+#: debhelper-compat-upgrade-checklist.pod:219
+#: debhelper-compat-upgrade-checklist.pod:230
+#: debhelper-compat-upgrade-checklist.pod:246
+#: debhelper-compat-upgrade-checklist.pod:256
+#: debhelper-compat-upgrade-checklist.pod:260
+#: debhelper-compat-upgrade-checklist.pod:265
+#: debhelper-compat-upgrade-checklist.pod:270
+#: debhelper-compat-upgrade-checklist.pod:277
+#: debhelper-compat-upgrade-checklist.pod:283
+#: debhelper-compat-upgrade-checklist.pod:291
+#: debhelper-compat-upgrade-checklist.pod:297
+#: debhelper-compat-upgrade-checklist.pod:301
+#: debhelper-compat-upgrade-checklist.pod:306
+#: debhelper-compat-upgrade-checklist.pod:311
+#: debhelper-compat-upgrade-checklist.pod:320
+#: debhelper-compat-upgrade-checklist.pod:336
+#: debhelper-compat-upgrade-checklist.pod:345
+#: debhelper-compat-upgrade-checklist.pod:361
+#: debhelper-compat-upgrade-checklist.pod:369
+#: debhelper-compat-upgrade-checklist.pod:374
+#: debhelper-compat-upgrade-checklist.pod:396
+#: debhelper-compat-upgrade-checklist.pod:402
+#: debhelper-compat-upgrade-checklist.pod:414
+#: debhelper-compat-upgrade-checklist.pod:422
+#: debhelper-compat-upgrade-checklist.pod:428
+#: debhelper-compat-upgrade-checklist.pod:433
+#: debhelper-compat-upgrade-checklist.pod:438
+#: debhelper-compat-upgrade-checklist.pod:443
+#: debhelper-compat-upgrade-checklist.pod:451
+#: debhelper-compat-upgrade-checklist.pod:461
+#: debhelper-compat-upgrade-checklist.pod:471
+#: debhelper-compat-upgrade-checklist.pod:478
+#: debhelper-compat-upgrade-checklist.pod:490
+#: debhelper-compat-upgrade-checklist.pod:495
+#: debhelper-compat-upgrade-checklist.pod:523
+#: debhelper-compat-upgrade-checklist.pod:540
+#: debhelper-compat-upgrade-checklist.pod:545
+#: debhelper-compat-upgrade-checklist.pod:551
+#: debhelper-compat-upgrade-checklist.pod:557
+#: debhelper-compat-upgrade-checklist.pod:562
+#: debhelper-compat-upgrade-checklist.pod:568
+#: debhelper-compat-upgrade-checklist.pod:577
+#: debhelper-compat-upgrade-checklist.pod:587
+#: debhelper-compat-upgrade-checklist.pod:593
+#: debhelper-compat-upgrade-checklist.pod:616
+#: debhelper-compat-upgrade-checklist.pod:623
+#: debhelper-compat-upgrade-checklist.pod:629
+#: debhelper-compat-upgrade-checklist.pod:635
+#: debhelper-compat-upgrade-checklist.pod:641
+#: debhelper-compat-upgrade-checklist.pod:661
+#: debhelper-compat-upgrade-checklist.pod:666
+#: debhelper-compat-upgrade-checklist.pod:673
+#: debhelper-compat-upgrade-checklist.pod:678
+#: debhelper-compat-upgrade-checklist.pod:683
+#: debhelper-compat-upgrade-checklist.pod:691
+#: debhelper-compat-upgrade-checklist.pod:697
+#: debhelper-compat-upgrade-checklist.pod:702
+#: debhelper-compat-upgrade-checklist.pod:707
+#: debhelper-compat-upgrade-checklist.pod:722
+#: debhelper-compat-upgrade-checklist.pod:726
+#: debhelper-compat-upgrade-checklist.pod:734
+#: debhelper-compat-upgrade-checklist.pod:739 debhelper-obsolete-compat.pod:29
+#: debhelper-obsolete-compat.pod:36 debhelper-obsolete-compat.pod:40
+#: debhelper-obsolete-compat.pod:44 debhelper-obsolete-compat.pod:57
+#: debhelper-obsolete-compat.pod:62 debhelper-obsolete-compat.pod:68
+#: debhelper-obsolete-compat.pod:74 debhelper-obsolete-compat.pod:89
+#: debhelper-obsolete-compat.pod:93 debhelper-obsolete-compat.pod:98
+#: debhelper-obsolete-compat.pod:102 debhelper-obsolete-compat.pod:114
+#: debhelper-obsolete-compat.pod:119 debhelper-obsolete-compat.pod:124
+#: debhelper-obsolete-compat.pod:129 debhelper-obsolete-compat.pod:143
+#: debhelper-obsolete-compat.pod:148 debhelper-obsolete-compat.pod:152
+#: dh_testroot:36 dh_testroot:41 dh_testroot:46
+msgid "-"
+msgstr "-"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:35
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."
+"The B<dh_auto_install> tool no longer defaults to B<< --destdir=debian/"
+"I<package> >> for source packages only producing a single binary. If this "
+"behaviour is wanted, the package should explicitly activate the B<single-"
+"binary> dh addon (e.g., by adding B<dh-sequence-single-binary> to B<Build-"
+"Depends>) or pass B<--destdir> to B<dh_auto_install>."
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."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:41
+#: debhelper-compat-upgrade-checklist.pod:84
+msgid ""
+"The rationale for this change is to avoid \"surprises\" when adding a second "
+"binary package later. Previously, debhelper would silently change behaviour "
+"often resulting in empty binary packages being uploaded to the archive by "
+"mistake. With the new behaviour, the B<single-binary> addon will detect the "
+"mismatch and warn the maintainer of what is about to happen."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:49
+msgid "v14"
+msgstr "v14"
# type: textblock
#. type: textblock
-#: debhelper.pod:410
+#: debhelper-compat-upgrade-checklist.pod:53
+msgid "Changes from v13 are:"
+msgstr "Les changements par rapport à la version 13 sont :"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:59
+#, fuzzy
+#| msgid ""
+#| "The B<cmake> buildsystem now passes B<-DCMAKE_SKIP_RPATH=ON> and B<-"
+#| "DCMAKE_BUILD_RPATH_USE_ORIGIN=ON> to L<cmake(1)> to avoid some "
+#| "reproducibility issues."
msgid ""
-"B<dh_installman> allows overwriting existing man pages in the package build "
-"directory. In previous compatibility levels it silently refuses to do this."
+"The B<cmake> buildsystem now passes B<-DCMAKE_BUILD_RPATH_USE_ORIGIN=ON> to "
+"L<cmake(1)> to avoid some reproducibility issues."
+msgstr ""
+"Le système de construction B<cmake> passe maintenant les options B<-"
+"DCMAKE_SKIP_RPATH=ON> et B<-DCMAKE_BUILD_RPATH_USE_ORIGIN=ON> à L<cmake(1)> "
+"pour éviter des problèmes de reproductibilité."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:65
+#, fuzzy
+#| msgid ""
+#| "The tool B<dh_installsysusers> is now included in the default sequence."
+msgid ""
+"The tool B<dh_installsysusers> is now included in the default sequence. This "
+"helper tool will process systemd sysusers files."
+msgstr ""
+"L'outil B<dh_installsysusers> est maintenant inclus dans la séquence par "
+"défaut."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:70
+msgid ""
+"Use of the B<dh_gconf> command in override and hook targets now causes an "
+"error. The B<dh_gconf> command has been a no-op for years and was removed "
+"in debhelper 13.4."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:76
+msgid ""
+"The B<dh> sequencer will warn if the B<single-binary> addon is implicitly "
+"activated to warn maintainers of the pending compat 15 change in "
+"B<dh_auto_install>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:79
+msgid ""
+"Maintainers are urged to either explicitly activate the B<single-binary> "
+"addon to preserve the existing behaviour (e.g., by adding B<dh-sequence-"
+"single-binary> to Build-Depends), or explicitly passing B<--destdir> to "
+"B<dh_auto_install> if used and then passing B<--without single-binary> to "
+"B<dh> (the latter to silence the warning)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:92
+msgid ""
+"The B<dh_installalternatives> tool will now be run after B<dh_link> rather "
+"than after B<dh_installinitramfs> in the default B<dh> sequence."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:97
+msgid ""
+"The B<dh_installpam> tool will now install PAM configuration files under "
+"F<< /usr/lib/pam.d/I<package> >> instead of F<< /etc/pam.d/I<package> >>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:100
+#, fuzzy
+#| msgid ""
+#| "In compatibility level 11, this file will trigger an error with a "
+#| "reminder about ensuring the proper removal of the upstart file in the "
+#| "previous package version. Please consider using the \"rm_conffile\" "
+#| "feature from L<dh_installdeb(1)> to ensure the proper removal of previous "
+#| "upstart files."
+msgid ""
+"Please consider using the \"rm_conffile\" feature from L<dh_installdeb(1)> "
+"to ensure the proper removal of previous PAM files."
+msgstr ""
+"Dans le niveau de compatibilité 11, ce fichier provoquera une erreur "
+"contenant un rappel pour correctement supprimer le fichier upstart de la "
+"version précédente du paquet. Veuillez utiliser la fonction « rm_conffile » "
+"de L<dh_installdeb(1)> pour vous assurer de la suppression correcte des "
+"fichiers upstart."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:105
+#, fuzzy
+#| 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>."
+msgid ""
+"The B<meson+ninja> and B<cmake> build systems now use B<meson install> and "
+"B<cmake --install>, respectively, instead of B<ninja install> and B<make "
+"install> in the L<dh_auto_install(1)> call. Any override of "
+"B<dh_auto_install> that passes extra parameters to the upstream build system "
+"should be reviewed."
+msgstr ""
+"Le système de construction B<meson+ninja> utilise maintenant B<meson test> à "
+"la place de B<ninja test> pour la suite de tests. Chaque réécriture de "
+"B<dh_auto_test> qui passe des paramètres supplémentaires aux tests amont "
+"devrait être vérifiée, car B<meson test> n'est pas compatible avec B<ninja "
+"test>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:112
+msgid ""
+"The B<cmake> build system passes B<< -DBUILD_TESTING:BOOL=OFF >> to B<cmake> "
+"if B<DEB_BUILD_OPTIONS> contains B<nocheck> thus disabling CTest."
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."
#. type: =item
-#: debhelper.pod:415
-msgid "v7"
-msgstr "v7"
+#: debhelper-compat-upgrade-checklist.pod:117
+msgid "v13"
+msgstr "v13"
# type: textblock
#. type: textblock
-#: debhelper.pod:417
-msgid "Changes from v6 are:"
-msgstr "Les changements par rapport à la version 6 sont :"
+#: debhelper-compat-upgrade-checklist.pod:119
+msgid "This is the recommended mode of operation."
+msgstr "C'est la version dont l'usage est recommandé."
# type: textblock
#. type: textblock
-#: debhelper.pod:423
+#: debhelper-compat-upgrade-checklist.pod:121
+msgid "Changes from v12 are:"
+msgstr "Les changements par rapport à la version 12 sont :"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:127
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 "
-"using B<--sourcedir>). This allows B<dh_install> to interoperate with "
-"B<dh_auto_install>, which installs to F<debian/tmp>, without needing any "
-"special parameters."
+"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 ""
-"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 "
-"nécessiter de paramètres particuliers."
+"Le système de construction B<meson+ninja> utilise maintenant B<meson test> à "
+"la place de B<ninja test> pour la suite de tests. Chaque réécriture de "
+"B<dh_auto_test> qui passe des paramètres supplémentaires aux tests amont "
+"devrait être vérifiée, car B<meson test> n'est pas compatible avec B<ninja "
+"test>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:135
+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 ""
+"Tous les outils dans le style de debhelper basés sur la bibliothèque "
+"debhelper officielle (y compris B<dh> et les outils officiels B<dh_*>) "
+"n'acceptent plus les paramètres de commande abrégés. En même temps, B<dh> "
+"optimise maintenant les appels aux outils redondants B<dh_*> même quand ils "
+"passent de longues options de ligne de commande."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:143
+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). If you need them for B<*-indep> targets, you can add an explicit "
+"Build-Depends on B<dh-sequence-elf-tools>."
+msgstr ""
+"Les outils de debhelper liés à ELF (B<dh_dwz>, B<dh_strip>, "
+"B<dh_makeshlibs>, B<dh_shlibdeps>) sont désormais seulement exécutés pour "
+"les paquets dépendant de l'architecture par défaut (c'est-à-dire qu'ils sont "
+"exclus des cibles B<*-indep> et sont passés avec l'option B<-a> par défaut). "
+"Si vous avez besoin d'eux pour des cibles B<*-indep>, vous pouvez ajouter un "
+"Build-Depends explicite à B<dh-sequence-elf-tools>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:152
+msgid ""
+"The third-party B<gradle> build system (from B<gradle-debian-helper> "
+"package) now runs the upstream-provided test suite automatically. To "
+"suppress such behavior, override B<dh_auto_test>."
+msgstr ""
+"Le système de construction tiers B<gradle> (issu du paquet B<gradle-debian-"
+"helper>) exécute maintenant la suite de tests fournie par l'amont "
+"automatiquement. Pour supprimer ce type de comportement, surchargez "
+"B<dh_auto_test>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:158
+msgid ""
+"The B<dh_installman> tool now aborts if it sees conflicting definitions of a "
+"manpage. This typically happens if the upstream build system is installing "
+"a compressed version and the package lists an uncompressed version of the "
+"manpage in F<< debian/I<package>.manpages >>. Often the easiest fix is to "
+"remove the manpage from F<< debian/I<package>.manpages >> (assuming both "
+"versions are identical)."
+msgstr ""
+"L'outil B<dh_installman> s'interrompt maintenant s'il voit des définitions "
+"contradictoires d'une page de manuel. Cela se produit habituellement si le "
+"système de construction amont installe une version compressée et que le "
+"paquet liste une version non compressée de la page de manuel dans F<< debian/"
+"I<paquet>.manpages >>. La correction la plus simple est de supprimer la page "
+"de manuel de F<< debian/I<paquet>.manpages >> (en considérant que les deux "
+"versions sont identiques)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:168
+msgid ""
+"The B<dh_auto_*> helpers now reset the environment variables B<HOME> and "
+"common B<XDG_*> variable. Please see description of the environment "
+"variables in L</ENVIRONMENT> for how this is handled."
+msgstr ""
+"Les outils B<dh_auto_*> réinitialisent désormais les variables "
+"d'environnement B<HOME> et la variable commune B<XDG_*>. Veuillez consulter "
+"la description des variables d'environnement dans L</ENVIRONMENT> pour voir "
+"comment elles sont gérées."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:172
+msgid "I<This feature changed between debhelper 13 and debhelper 13.2.>"
+msgstr "I<Cette fonctionnalité a changé entre debhelper 13 et debhelper 13.2.>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:176
+msgid ""
+"The B<dh> command will now error if an override or hook target for an "
+"obsolete command are present in F<debian/rules> (e.g. "
+"B<override_dh_systemd_enable:>)."
+msgstr ""
+"La commande B<dh> produira maintenant une erreur si une cible de réécriture "
+"ou d'accroche pour une commande obsolète est présente dans F<debian/rules> "
+"(par exemple, B<override_dh_systemd_enable:>)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:182
+msgid ""
+"The B<dh_missing> command will now default to B<--fail-missing>. This can "
+"be reverted to a non-fatal warning by explicitly passing B<--list-missing> "
+"like it was in compat 12."
+msgstr ""
+"La commande B<dh_missing> aura l'option B<--fail-missing> par défaut. Il est "
+"possible de revenir à un avertissement non fatal en passant explicitement "
+"l'option B<--list-missing> comme dans le niveau de compatibilité 12."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:186
+msgid ""
+"If you do not want the warning either, please omit the call to "
+"B<dh_missing>. If you use the B<dh> command sequencer, then you can do this "
+"by inserting an empty override target in the F<debian/rules> file of the "
+"relevant package. As an example:"
+msgstr ""
+"Si vous ne voulez pas non plus de l'avertissement, veuillez omettre l'appel "
+"à B<dh_missing>. Si l'automate de commandes B<dh> est utilisé, vous pouvez "
+"faire cela en insérant une cible de réécriture vide dans le fichier F<debian/"
+"rules> du paquet correspondant. Comme dans l’exemple :"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:191
+#, no-wrap
+msgid ""
+" # Disable dh_missing\n"
+" override_dh_missing:\n"
+"\n"
+msgstr ""
+" # Désactive dh_missing\n"
+" override_dh_missing:\n"
+"\n"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:196
+msgid ""
+"The B<dh> command sequencer now runs B<dh_installtmpfiles> in the default "
+"sequence. The B<dh_installtmpfiles> takes over handling of tmpfiles.d "
+"configuration files. Related functionality in B<dh_installsystemd> is now "
+"disabled."
+msgstr ""
+"L'automate de commandes B<dh> exécute maintenant B<dh_installtmpfiles> dans "
+"la séquence par défaut. B<dh_installtmpfiles> se charge de la gestion des "
+"fichiers de configuration de I<tmpfiles.d>. La fonctionnalité apparentée "
+"dans B<dh_installsystemd> est désormais désactivée."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:201
+msgid ""
+"Note that B<dh_installtmpfiles> responds to F<< debian/I<package>.tmpfiles "
+">> where B<dh_installsystemd> used a name without the trailing \"s\"."
+msgstr ""
+"Notez que B<dh_installtmpfiles> répond à F<< debian/I<paquet>.tmpfiles >> là "
+"où B<dh_installsystemd> utilisait un nom sans le « s » final."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:207
+msgid ""
+"Many B<dh_*> tools now support limited variable expansion via the B<${foo}> "
+"syntax. In many cases, this can be used to reference paths that contain "
+"either spaces or L<dpkg-architecture(1)> values. While this can reduce the "
+"need for L<dh-exec(1)> in some cases, it is B<not> a replacement L<dh-"
+"exec(1)> in general. If you need filtering, renaming, etc., the package "
+"will still need L<dh-exec(1)>."
+msgstr ""
+"Beaucoup d'outils B<dh_*> prennent en charge un développement de variables "
+"limité au moyen de la syntaxe B<${toto}>. Dans de nombreux cas, cela peut "
+"être utilisé pour référencer des chemins qui contiennent soit des espaces, "
+"soit des valeurs L<dpkg-architecture(1)>. Bien que cela puisse réduire le "
+"besoin de L<dh-exec(1)> dans certains cas, ce B<n'est pas> une alternative à "
+"L<dh-exec(1)> en général. Si un filtrage, un renommage, etc. est nécessaire, "
+"le paquet aura encore besoin de L<dh-exec(1)>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:214
+msgid ""
+"Please see L</Substitutions in debhelper config files> for syntax and "
+"available substitution variables. To B<dh_*> tool writers, substitution "
+"expansion occurs as a part of the B<filearray> and B<filedoublearray> "
+"functions."
+msgstr ""
+"Veuillez consulter L<Substitutions dans les fichiers de configuration de "
+"debhelper> pour la syntaxe et les variables de substitution disponibles. "
+"Pour ceux qui écrivent des outils B<dh_*>, le développement de substitution "
+"intervient comme élément des fonctions B<filearray> et B<filedoublearray>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:221
+msgid ""
+"The B<dh> command sequencer will now skip all hook and override targets for "
+"B<dh_auto_test>, B<dh_dwz> and B<dh_strip> when B<DEB_BUILD_OPTIONS> lists "
+"the relevant B<nocheck> / B<nostrip> options."
+msgstr ""
+"L'automate de commandes B<dh> omettra toutes les cibles d'accroche et de "
+"substitution pour B<dh_auto_test>, B<dh_dwz> et B<dh_strip> quand "
+"B<DEB_BUILD_OPTIONS> liste les options B<nocheck> ou B<nostrip> "
+"correspondantes."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:225
+msgid ""
+"Any package relying on these targets to always be run should instead move "
+"relevant logic out of those targets. E.g. non-test related packaging code "
+"from B<override_dh_auto_test> would have to be moved to "
+"B<execute_after_dh_auto_build> or B<execute_before_dh_auto_install>."
+msgstr ""
+"Tout paquet comptant sur ces cibles pour être toujours exécuté devrait "
+"plutôt déplacer la logique correspondante de ces cibles. Par exemple, le "
+"code d’empaquetage non lié aux tests provenant de B<override_dh_auto_test> "
+"devrait avoir été déplacé dans B<execute_after_dh_auto_build> ou "
+"B<execute_before_dh_auto_install>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:232
+msgid ""
+"The B<cmake> buildsystem now passes B<-"
+"DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON> to L<cmake(1)> to speed up automatic "
+"installation process. If for some reason you need previous behavior, "
+"override the flag:"
+msgstr ""
+"Le système de construction B<cmake> passe désormais l'option B<-"
+"DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON> à L<cmake(1)> pour accélérer le "
+"processus d'installation automatique. Si pour une raison quelconque vous "
+"avez besoin de revenir au comportement antérieur, réécrivez le paramètre :"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:236
+#, no-wrap
+msgid ""
+" dh_auto_configure -- -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=OFF ...\n"
+"\n"
+msgstr ""
+" dh_auto_configure -- -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=OFF ...\n"
+"\n"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:240
+msgid "v12"
+msgstr "v12"
# type: textblock
#. type: textblock
-#: debhelper.pod:430
-msgid "B<dh_clean> will read F<debian/clean> and delete files listed there."
+#: debhelper-compat-upgrade-checklist.pod:242
+msgid "Changes from v11 are:"
+msgstr "Les changements par rapport à la version 11 sont :"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:248
+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>) "
+"is now the default."
msgstr ""
-"B<dh_clean> lit le répertoire F<debian/clean> et supprime les fichiers qui y "
-"sont mentionnés."
+"B<dh_makeshlibs> génère maintenant des fichiers shlibs avec des dépendances "
+"versionnées par défaut. Cela veut dire que B<-VUpstream-Version> (ou B<-V>) "
+"est maintenant le comportement par défaut."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:252
+msgid ""
+"If an unversioned dependency in the shlibs file is wanted, this can be "
+"obtained by passing B<-VNone> instead. However, please see "
+"L<dh_makeshlibs(1)> for the caveat of unversioned dependencies."
+msgstr ""
+"Si une dépendance non versionnée est requise, cela peut être obtenu en "
+"passant B<-VNone> à la place. Veuillez tout de même consulter "
+"L<dh_makeshlibs(1)> pour l'utilisation des dépendances non versionnées."
+
+# type: =item
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:258
+msgid ""
+"The B<-s> (B<--same-arch>) option is removed. Please use B<-a> (B<--arch>) "
+"instead."
+msgstr ""
+"L'option B<-s> (B<--same-arch>) est supprimée. Veuillez utiliser B<-a> (B<--"
+"arch>) à la place."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:262
+msgid ""
+"Invoking B<dh_clean -k> now causes an error instead of a deprecation warning."
+msgstr ""
+"Appeler B<dh_clean -k> provoque maintenant une erreur à la place de "
+"l'avertissement d'obsolescence."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:267
+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 ""
+"L'option B<--no-restart-on-upgrade> de B<dh_installinit> a été supprimée. "
+"Veuillez utiliser le nouveau nom B<--no-stop-on-upgrade>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:272
+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 "
+"circumstance. This bug is now removed and will cause helpers that rely on "
+"the bug to fail with a \"command not found\"-error."
+msgstr ""
+"Il y avait un bogue dans les fonctions B<doit> (et équivalent) de L<Debian::"
+"Debhelper::Dh_Lib> qui créait un shell dans une circonstance particulière. "
+"Ce bogue est maintenant supprimé et provoquera une erreur de type « commande "
+"non trouvée » dans les outils qui l'utilisaient."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:279
+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 "
+"also see the files installed by other helpers."
+msgstr ""
+"Les options B<--list-missing> et B<--fail-missing> de B<dh_install> ont été "
+"supprimées. Veuillez utiliser B<dh_missing> et ses options correspondantes, "
+"qui peuvent aussi voir les fichiers installés par les autres outils."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:285
+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 "
+"upstart configuration file. The error is there to remind the package "
+"maintainer to ensure the proper removal of the conffiles shipped in previous "
+"versions of the package (if any)."
+msgstr ""
+"L'outil B<dh_installinit> n'installe plus de configuration pour upstart. À "
+"la place, il abandonnera la construction s'il trouve un ancien fichier de "
+"configuration upstart. Cela pour rappeler au mainteneur de s'assurer de "
+"correctement supprimer les anciens fichiers de configuration livrés dans les "
+"anciennes versions du paquet."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:293
+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 "
+"be invalid."
+msgstr ""
+"L'outil B<dh_installdeb> valide basiquement quelques commandes L<dpkg-"
+"maintscript-helper(1)> et renvoie une erreur si la commande semble "
+"incorrecte."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:299
+msgid "The B<dh_missing> tool will now default to B<--list-missing>."
+msgstr ""
+"Le comportement par défaut de B<dh_missing> est maintenant B<--list-missing>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:303
+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 ""
+"B<dh_makeshlibs> passera maintenant les bibliothèques à L<dpkg-"
+"gensymbols(1)> si le binaire ELF a un SONAME (contenant « .so »)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:308
+msgid ""
+"The B<dh_compress> tool no longer compresses examples (i.e. anything "
+"installed in F<</usr/share/doc/I<package>/examples>>.)"
+msgstr ""
+"B<dh_compress> ne compresse plus les exemples (c'est-à-dire tout ce qui est "
+"installé dans F<</usr/share/doc/I<paquet>/examples>>)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:313
+msgid ""
+"The standard sequence in B<dh> now includes B<dh_dwz> and "
+"B<dh_installinitramfs> by default. This makes the B<dwz> and "
+"B<installinitramfs> sequences obsolete and they will now fail with an "
+"error. If you want to skip these commands, then please insert an empty "
+"override target for them in F<debian/rules> (e.g. I<override_dh_dwz:>)"
+msgstr ""
+"La séquence standard de B<dh> comprend maintenant B<dh_dwz> et "
+"B<dh_installinitramfs> par défaut. Cela rend les séquences B<dwz> et "
+"B<installinitramfs> obsolètes et elles échoueront avec une erreur. Si vous "
+"souhaitez sauter ces commandes, veuillez insérer des cibles de réécriture "
+"vides pour elles dans F<debian/rules> (par exemple I<override_dh_dwz:>)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:322
+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 "
+"should be B</usr/libexec> (per FHS 3.0, adopted in Debian Policy 4.1.5)."
+msgstr ""
+"Les systèmes de construction B<meson> et B<autoconf> ne positionnent plus "
+"explicitement la variable B<--libexecdir>, et s'appuient donc sur le système "
+"de construction par défaut – qui devrait être B</usr/libexec> (selon la "
+"FHS 3.0, adoptée dans la Charte Debian 4.1.5)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:327
+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. "
+"via the following example:"
+msgstr ""
+"Si un paquet amont particulier n'utilise pas la bonne valeur par défaut, le "
+"paramètre peut souvent être passé manuellement avec L<dh_auto_configure(1)>. "
+"Par exemple :"
+
+# type: verbatim
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:331
+#, no-wrap
+msgid ""
+" override_dh_auto_configure:\n"
+" \tdh_auto_configure -- --libexecdir=/usr/libexec\n"
+"\n"
+msgstr ""
+" override_dh_auto_configure:\n"
+" \tdh_auto_configure -- --libexecdir=/usr/libexec\n"
+"\n"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:334
+msgid "Note the B<--> before the B<--libexecdir> parameter."
+msgstr "Remarquez le B<--> avant le paramètre B<--libexecdir>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:338
+msgid "B<Retroactively removed in debhelper/13.5>:"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:340
+#, fuzzy
+#| 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."
+msgid ""
+"The B<dh_installdeb> tool would no longer installs the maintainer provided "
+"F<conffiles> file as it was deemed unnecessary. However, the B<remove-on-"
+"upgrade> from dpkg/1.20 made the file relevant again and B<dh_installdeb> "
+"now installs it again in compat levels 12+."
+msgstr ""
+"B<dh_installdeb> n'installe plus le fichier F<conffiles> fournit par le "
+"responsable. Ce fichier est obsolète depuis le niveau de compatibilité 3, "
+"lorsque B<dh_installdeb> a commencé à calculer automatiquement le "
+"F<conffiles> résultant du fichier control."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:347
+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 ""
+"B<dh_installsystemd> ne s'appuie plus sur B<dh_installinit> pour s'occuper "
+"des services systemd qui ont une alternative pour sysvinit. Les deux outils "
+"doivent maintenant être utilisés dans ce cas pour s'assurer que le service "
+"est démarré correctement, à la fois avec systemd et sysvinit."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:352
+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 ""
+"Si vous avez une réécriture pour B<dh_installinit> (par exemple pour "
+"l'appeler avec B<--no-start>), vous en aurez sûrement besoin d'une pour "
+"B<dh_installsystemd> aussi."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:356
+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 ""
+"Ce changement amène B<dh_installinit> à injecter un champ I<misc:Pre-"
+"Depends> sur B<< init-system-helpers (>= 1.54~) >>. Veuillez vous assurer "
+"que le paquet utilise B<${misc:Pre-Depends}> dans son champ B<Pre-Depends> "
+"avant de mettre à niveau vers la compat 12."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:363
+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 ""
+"L'outil tiers B<dh_golang> (du paquet B<dh-golang>) utilise maintenant la "
+"variable B<DH_GOLANG_EXCLUDE> pour l'installation des sources dans les "
+"paquets -dev, et plus uniquement lors de la construction. Veuillez "
+"positionner B<DH_GOLANG_EXCLUDES_ALL> à faux pour obtenir le comportement "
+"précédent. Consultez B<Debian::Debhelper::Buildsystem::golang(3pm)> pour "
+"plus de détails et des exemples."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:371
+msgid ""
+"B<dh_installsystemduser> is now included in the B<dh> standard sequence by "
+"default."
+msgstr ""
+"B<dh_installsystemduser> est maintenant inclus par défaut dans la séquence "
+"B<dh> standard."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:376
+msgid ""
+"The B<python-distutils> buildsystem is now removed. Please use the third-"
+"party build system B<pybuild> instead."
+msgstr ""
+"Le système de construction B<python-distutils> est supprimé. Veuillez "
+"utiliser le système tiers B<pybuild> à la place."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:381
+msgid "v11"
+msgstr "v11"
# type: textblock
#. type: textblock
-#: debhelper.pod:434
-msgid "B<dh_clean> will delete toplevel F<*-stamp> files."
-msgstr "B<dh_clean> supprime les fichiers F<*-stamp>."
+#: debhelper-compat-upgrade-checklist.pod:383
+msgid "This mode is discouraged."
+msgstr "Ce mode est déconseillé."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:385
+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 ""
+"Le niveau de compatibilité 11 est déconseillé pour les nouveaux paquets "
+"parce qu'il souffre d'une interaction de fonctionnalités entre "
+"L<dh_installinit> et L<dh_installsystemd> faisant que les services ne "
+"fonctionnent pas correctement dans certains cas. Vous devriez envisager "
+"l'utilisation à la place des modes de compatibilité 10 ou 12. Plus de "
+"détails sur ce problème sont disponibles dans le bogue Debian n° 887904 et "
+"dans le message L<https://lists.debian.org/debian-release/2019/04/msg01442."
+"html>."
# type: textblock
#. type: textblock
-#: debhelper.pod:438
+#: debhelper-compat-upgrade-checklist.pod:392
+msgid "Changes from v10 are:"
+msgstr "Les changements par rapport à la version 10 sont :"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:398
msgid ""
-"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
-"none is specified."
+"B<dh_installinit> no longer installs F<service> or F<tmpfile> files, nor "
+"generates maintainer scripts for those files. Please use the new "
+"B<dh_installsystemd> helper."
msgstr ""
-"B<dh_installchangelogs> déterminera à quel fichier correspond le changelog "
-"amont si rien n'est indiqué."
+"B<dh_installinit> n'installe plus de fichiers F<service> ou F<tmpfile>, ni "
+"ne crée de scripts de maintenance pour ces fichiers. Veuillez utiliser le "
+"nouvel assistant B<dh_installsystemd> à la place."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:404
+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> "
+"sequence for B<dh> has also been removed. If you need to disable the "
+"B<dh_installsystemd> helper tool, please use an empty override target."
+msgstr ""
+"Les outils B<dh_systemd_enable> et B<dh_systemd_start> ont été remplacés par "
+"un nouvel assistant B<dh_installsystemd>. Pour la même raison, la séquence "
+"B<systemd> de B<dh> a aussi été retirée. Si vous avez besoin de désactiver "
+"B<dh_installsystemd>, veuillez utiliser une cible de réécriture vide."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:410
+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 ""
+"Veuillez noter que B<dh_installsystemd> a un comportement légèrement "
+"différent dans certains cas (par exemple lors de l'utilisation du paramètre "
+"B<--name>)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:416
+msgid ""
+"B<dh_installdirs> no longer creates debian/I<package> directories unless "
+"explicitly requested (or it has to create a subdirectory in it)."
+msgstr ""
+"B<dh_installdirs> ne crée plus les répertoires debian/I<paquet> sans qu'on "
+"le lui demande explicitement (ou il doit créer un sous-répertoire à "
+"l'intérieur)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:420
+msgid "The vast majority of all packages will be unaffected by this change."
+msgstr ""
+"La grande majorité des paquets ne seront pas affectés par ce changement."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:424
+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."
+msgstr ""
+"Le système de construction B<makefile> passe maintenant les options "
+"B<INSTALL=\"install --strip-program=true\"> à L<make(1)>. Les systèmes "
+"dérivés (comme B<configure> ou B<cmake>) ne sont pas affectés par ce "
+"changement."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:430
+msgid ""
+"The B<autoconf> buildsystem now passes B<--runstatedir=/run> to F<./"
+"configure>."
+msgstr ""
+"Le système de construction B<autoconf> passe maintenant l'option B<--"
+"runstatedir=/run> à F<./configure>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:435
+msgid ""
+"The B<cmake> buildsystem now passes B<-DCMAKE_INSTALL_RUNSTATEDIR=/run> to "
+"L<cmake(1)>."
+msgstr ""
+"Le système de construction B<cmake> passe maintenant l'option B<-"
+"DCMAKE_INSTALL_RUNSTATEDIR=/run> à L<cmake(1)>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:440
+msgid ""
+"B<dh_installman> will now prefer detecting the language from the path name "
+"rather than the extension."
+msgstr ""
+"B<dh_installman> préfère maintenant détecter le langage à partir du chemin "
+"plutôt que de l'extension."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:445
+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. "
+"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_auto_install> crée maintenant uniquement le répertoire de destination "
+"nécessaire. Auparavant, le répertoire de construction de chaque paquet était "
+"créé. Cela n'affectera pas les paquets qui se construisent uniquement avec "
+"debhelper, mais pourrait faire apparaître des bogues dans les commandes qui "
+"ne sont pas incluses avec debhelper."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:453
+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 "
+"match anything or reference a path that does not exist."
+msgstr ""
+"Les outils B<dh_installdocs>, B<dh_installexamples>, B<dh_installinfo> et "
+"B<dh_installman> renvoient maintenant une erreur si leur configuration "
+"contient un motif qui ne correspond à rien ou qui référence un chemin qui "
+"n'existe pas."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:457
+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 "
+"specify documentation."
+msgstr ""
+"Les exceptions connues incluent la construction avec le profil B<nodoc>, où "
+"les outils ci-dessus permettront un échec silencieux de la correspondance "
+"lorsque le motif est utilisé pour spécifier la documentation."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:463
+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 "
+"as B<dh_install>. Furthermore, they now also fall back to F<debian/tmp> like "
+"B<dh_install>."
+msgstr ""
+"Les outils B<dh_installdocs>, B<dh_installexamples>, B<dh_installinfo> et "
+"B<dh_installman> acceptent maintenant le paramètre B<--sourcedir> avec la "
+"même signification que dans B<dh_install>. De plus, ils se rabattent sur "
+"F<debian/tmp> comme B<dh_install>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:468
+msgid ""
+"Migration note: A bug in debhelper 11 up to 11.1.5 made B<dh_installinfo> "
+"incorrectly ignore B<--sourcedir>."
+msgstr ""
+"Note de migration : un bogue dans debhelper 11 jusqu'à 11.1.5 faisait que "
+"B<dh_installinfo> ignorait B<--sourcedir> de manière incorrecte."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:473
+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 "
+"the B<PERL5LIB> environment variable. E.g. by adding B<export PERL5LIB=.> "
+"in their debian/rules file (or similar)."
+msgstr ""
+"Les systèmes de construction B<perl-makemaker> et B<perl-build> ne passent "
+"plus l'option B<-I.> à Perl. Les paquets qui ont encore besoin de ce "
+"comportement peuvent l'émuler en utilisant la variable d'environnement "
+"B<PERL5LIB>. Par exemple en ajoutant B<export PERL5LIB=.> dans leur fichier "
+"F<debian/rules> (ou équivalent)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:480
+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 "
+"avoid a lot of packages failing to build at the same time."
+msgstr ""
+"La variable d'environnement B<PERL_USE_UNSAFE_INC> n'est plus définie par "
+"B<dh>, ni aucun des outils B<dh_auto_*>. Cela avait été ajouté comme "
+"contournement temporaire, pour éviter les échecs de construction d’un grand "
+"nombre de paquets en même temps."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:485
+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 "
+"drops support for it, then this variable will be removed retroactively from "
+"existing compat levels as well."
+msgstr ""
+"De plus, cette fonction deviendra peut-être obsolète car l'amont a "
+"l'intention de retirer la prise en charge de la variable d'environnement "
+"B<PERL_USE_UNSAFE_INC>. Lorsque ce sera le cas, cette variable sera aussi "
+"supprimée rétroactivement des niveaux de compatibilité existants."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:492
+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 ""
+"L'assistant B<dh_makeshlibs> termine maintenant sur une erreur si objdump "
+"renvoie une valeur de sortie différente de zéro lors de l'analyse d'un "
+"fichier."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:497
+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 "
+"recommendation from Debian policy §12.3 (since version 3.9.7)."
+msgstr ""
+"Les outils B<dh_installdocs> et B<dh_installexamples> pourraient maintenant "
+"installer I<la plupart> de la documentation dans un répertoire différent, "
+"pour satisfaire les recommandations de la Charte Debian §12.3 (depuis la "
+"version 3.9.7)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:501
+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 "
+"change is not relevant for that source package and you can skip to the next "
+"change."
+msgstr ""
+"Si un paquet source contient un seul paquet binaire dans F<debian/control>, "
+"ou si aucun des paquets n'est un paquet I<-doc>, alors ce changement n'a pas "
+"d'effet pour ce paquet source, et vous pouvez aller au changement suivant."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:506
+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<-"
+"doc> package. If they find such a I<doc-main-package>, they will now "
+"install the documentation into the path F<< /usr/share/doc/I<doc-main-"
+"package> >> in the given doc package. I.e. the path can change but the "
+"documentation is still shipped in the I<-doc> package."
+msgstr ""
+"Par défaut, ces outils essaient maintenant de déterminer un « paquet "
+"principal pour la documentation » (que l'on appellera I<doc-main-package>) "
+"pour chaque paquet I<-doc>. S'ils trouvent un tel I<doc-main-package>, ils "
+"installeront la documentation sous F<< /usr/share/doc/I<doc-main-package> >> "
+"pour le paquet considéré. C'est-à-dire que le chemin peut changer, mais la "
+"documentation est toujours fournie par le paquet I<-doc>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:514
+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 "
+"to diverge from Debian policy recommendation."
+msgstr ""
+"L'option B<--doc-main-package> peut être utilisée si la détection "
+"automatique est insuffisante, ou pour réinitialiser le chemin à sa valeur "
+"précédente s'il y a une raison de diverger des recommandations de la "
+"Charte Debian."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:518
+msgid ""
+"Some documentation will not be affected by this change. These exceptions "
+"include the copyright file, changelog files, README.Debian, etc. These "
+"files will still be installed in the path F<< /usr/share/doc/I<package> >>."
+msgstr ""
+"Quelques documents ne sont pas affectés par ce changement. En particulier le "
+"fichier copyright, les fichiers changelog, README.Debian, etc. Ces fichiers "
+"seront toujours installés sous F<< /usr/share/doc/I<package> >>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:525
+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 "
+"for an ELF header to determine if a given file is an shared object or an ELF "
+"executable."
+msgstr ""
+"Les outils B<dh_strip> et B<dh_shlibdeps> n'utilisent plus les motifs de "
+"noms de fichiers pour déterminer les fichiers à traiter. À la place, ils "
+"ouvrent le fichier et cherchent un en-tête ELF pour déterminer si ce fichier "
+"est un objet partagé ou un exécutable ELF."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:530
+msgid "This change may cause the tools to process more files than previously."
+msgstr ""
+"Ce changement peut forcer les outils à traiter plus de fichiers qu'avant."
#. type: =item
-#: debhelper.pod:443
-msgid "v8"
-msgstr "v8"
+#: debhelper-compat-upgrade-checklist.pod:534
+msgid "v10"
+msgstr "v10"
# type: textblock
#. type: textblock
-#: debhelper.pod:445
-msgid "Changes from v7 are:"
-msgstr "Les changements par rapport à la version 7 sont :"
+#: debhelper-compat-upgrade-checklist.pod:536
+msgid "Changes from v9 are:"
+msgstr "Les changements par rapport à la version 9 sont :"
#. type: textblock
-#: debhelper.pod:451
+#: debhelper-compat-upgrade-checklist.pod:542
msgid ""
-"Commands will fail rather than warning when they are passed unknown options."
+"B<dh_installinit> will no longer installs a file named debian/I<package> as "
+"an init script."
msgstr ""
-"Les commandes échoueront plutôt que de produire une alerte lorsqu'elles "
-"recevront des options inconnues."
+"B<dh_installinit> n'installe plus de fichier nommé debian/<paquet> comme "
+"script d'initialisation."
#. type: textblock
-#: debhelper.pod:455
+#: debhelper-compat-upgrade-checklist.pod:547
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. "
-"Also, libraries in unusual locations that B<dpkg-gensymbols> would not have "
-"processed before will be passed to it, a behavior change that can cause some "
-"packages to fail to build."
+"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 "
+"binNMUs."
msgstr ""
-"B<dh_makeshlibs> va exécuter le programme B<dpkg-gensymbols> sur toutes les "
-"bibliothèques partagées qu'il génère pour les fichiers shlibs. B<-X> peut "
-"alors être utilisé pour exclure certaines bibliothèques. En outre, les "
-"bibliothèques rangées à des emplacements inhabituels que B<pkg-gensymbols> "
-"n'aurait pas traitées avant qu'elles ne lui soient transmises, induisent un "
-"changement de comportement qui peut causer l'échec de la construction de "
+"B<dh_installdocs> renverra une erreur s'il détecte des liens créés avec B<--"
+"link-doc> entre des paquets de l'architecture « all » et non-« all » car "
+"cela casse les binNMUs (envois de binaires par quelqu'un d'autre que le "
+"responsable)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:553
+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 ""
+"B<dh_installdeb> n'installe plus de fichier debian/<paquet>.shlibs fourni "
+"par le responsable du paquet. Cela est maintenant effectué par "
+"B<dh_makeshlibs>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:559
+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 ""
+"B<dh_installwm> refuse de créer un paquet cassé si aucune page de manuel ne "
+"peut être trouvée (requis pour l'inscription de l'alternative x-window-"
+"manager)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:564
+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 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-compat-upgrade-checklist.pod:570
+msgid ""
+"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."
+msgstr ""
+"La commande B<dh> n'acceptera aucun des paramètres obsolètes de « manual "
+"sequence control » (B<--before>, B<--after>, etc.). Veuillez utiliser les "
+"cibles de réécritures à la place."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:574
+msgid ""
+"B<Retroactively applied to earlier compat levels>: B<dh> no longer accepts "
+"any of these since debhelper/12.4."
+msgstr ""
+"B<Application rétroactive aux niveaux de compatibilité antérieurs> : B<dh> "
+"n'accepte plus aucun de ces paramètres depuis debhelper 12.4."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:579
+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 "
+"the \"build\" sequence and skip it if it did."
+msgstr ""
+"La commande B<dh> n'utilisera plus les fichiers journaux pour enregistrer "
+"quelles commandes ont été exécutées. La commande B<dh> se souvient "
+"I<toujours> si la séquence « build » a été effectuée et l'omet si c'est le "
+"cas."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:583
+msgid "The main effects of this are:"
+msgstr "Les principales conséquences de cela sont :"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:589
+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 "
+"full \"clean and rebuild\" cycle)"
+msgstr ""
+"Il est maintenant plus facile de déboguer les séquences I<install> et "
+"I<binary> parce qu'elles peuvent maintenant être facilement re-exécutées "
+"(sans avoir à refaire un cycle complet de « clean & rebuild »)"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:595
+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 "
+"happens in the same override target everything will work as before."
+msgstr ""
+"La principale précaution est que B<dh_*> enregistre uniquement ce qui s'est "
+"passé dans une unique cible de réécriture. Lorsque tous les appels à une "
+"commande B<dh_cmd> donnée arrivent dans la même cible de réécriture, tout "
+"fonctionnera comme avant."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:600
+msgid "Example of where it can go wrong:"
+msgstr "Exemple de ce qui pourrait mal se passer :"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:602
+#, no-wrap
+msgid ""
+" override_dh_foo:\n"
+" dh_foo -pmy-pkg\n"
+"\n"
+msgstr ""
+" override_dh_toto:\n"
+" dh_toto -pmon_paquet\n"
+"\n"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:605
+#, no-wrap
+msgid ""
+" override_dh_bar:\n"
+" dh_bar\n"
+" dh_foo --remaining\n"
+"\n"
+msgstr ""
+" override_dh_titi:\n"
+" dh_titi\n"
+" dh_toto --remaining\n"
+"\n"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:609
+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 "
+"issue is not limited to B<--remaining>, but also includes B<-a>, B<-i>, etc."
+msgstr ""
+"Dans ce cas, l'appel à B<dh_foo --remaining> inclura I<aussi> I<mon_paquet>, "
+"car B<dh_foo -pmon_paquet> a été exécuté dans une cible de réécriture "
+"différente. Ce problème n'est pas limité à B<--remaining> et concerne aussi "
+"B<-a>, B<-i>, etc."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:618
+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 "
+"work properly and packages have begun to rely on the incomplete shell "
+"escaping (e.g. quoting file names)."
+msgstr ""
+"À présent, la commande B<dh_installdeb> échappe les caractères du shell dans "
+"les lignes du fichier de config F<maintscript>. C'était l'intention "
+"originale mais cela n'a jamais fonctionné correctement et les paquets ont "
+"commencé à compter sur l'échappement incomplet (p. ex. en encadrant les noms "
+"de fichiers de guillemets)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:625
+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-"
+"upgrade>."
+msgstr ""
+"La commande B<dh_installinit> utilise maintenant B<--restart-after-upgrade> "
+"par défaut. Les paquets nécessitant le comportement précédent devraient "
+"utiliser l'option B<--no-restart-after-upgrade>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:631
+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 ""
+"La séquence B<autoreconf> est maintenant activée par défaut. Veuillez passer "
+"l'option B<--without autoreconf> à B<dh> si cela n'est pas voulu pour "
"certains paquets."
#. type: textblock
-#: debhelper.pod:463
+#: debhelper-compat-upgrade-checklist.pod:637
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 $@>"
-"\"."
+"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 ""
-"B<dh> exige que la séquence à exécuter soit indiquée en tant que premier "
-"paramètre. Tous les commutateurs doivent venir après. C'est à dire qu'il "
-"faut écrire « B<dh $@ --toto> », et non « B<dh --toto $@> »"
+"La séquence B<systemd> est maintenant activée par défaut. Veuillez passer "
+"l'option B<--without systemd> à B<dh> si cela n'est pas voulu pour certains "
+"paquets."
#. type: textblock
-#: debhelper.pod:468
+#: debhelper-compat-upgrade-checklist.pod:643
msgid ""
-"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
-"F<Makefile.PL>."
+"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_auto_*> utilise préférentiellement B<Module::Build> de Perl au lieu de "
-"F<Makefile.PL>."
+"B<Supprimé rétroactivement> : B<dh> ne crée plus le répertoire de "
+"construction du paquet lors de l'omission des commandes de debhelper en "
+"cours. Cela n'affectera pas les paquets qui se construisent uniquement avec "
+"debhelper, mais pourrait faire apparaître des bogues dans les commandes qui "
+"ne sont pas incluses avec debhelper."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:648
+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 ""
+"Cette fonctionnalité de compatibilité avait un bogue depuis sa création dans "
+"debhelper/9.20130516, qui la faisait échouer en compat 9 et précédent. Comme "
+"il n'y a eu aucun rapport de problème causé par ce bogue en 5 ans, cela a "
+"été supprimé plutôt que corrigé."
#. type: =item
-#: debhelper.pod:472
+#: debhelper-compat-upgrade-checklist.pod:655
msgid "v9"
msgstr "v9"
# type: textblock
#. type: textblock
-#: debhelper.pod:474
-msgid "This is the recommended mode of operation."
-msgstr "C'est la version dont l'usage est recommandé."
-
-# type: textblock
-#. type: textblock
-#: debhelper.pod:476
+#: debhelper-compat-upgrade-checklist.pod:657
msgid "Changes from v8 are:"
msgstr "Les changements par rapport à la version 8 sont :"
#. type: textblock
-#: debhelper.pod:482
+#: debhelper-compat-upgrade-checklist.pod:663
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:487
+#: debhelper-compat-upgrade-checklist.pod:668
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,13 +4013,13 @@ msgid ""
"binary target with explicit dependencies on the other targets."
msgstr ""
"B<dh> connaît les dépendances classiques entre les cibles de F<debian/"
-"rules>. Donc « B<dh binary> » exécutera toutes les cibles build, build-arch, "
-"build-indep, install, etc. présentes dans le fichier I<rules>. Il n'est pas "
+"rules>. Donc « B<dh binary> » exécutera toutes les cibles build, build-arch, "
+"build-indep, install, etc., présentes dans le fichier I<rules>. Il n'est pas "
"nécessaire de définir une cible binary avec des dépendances explicites sur "
"les autres cibles."
#. type: textblock
-#: debhelper.pod:494
+#: debhelper-compat-upgrade-checklist.pod:675
msgid ""
"B<dh_strip> compresses debugging symbol files to reduce the installed size "
"of -dbg packages."
@@ -1283,7 +4028,7 @@ msgstr ""
"la taille d'installation des paquets -dbg."
#. type: textblock
-#: debhelper.pod:499
+#: debhelper-compat-upgrade-checklist.pod:680
msgid ""
"B<dh_auto_configure> does not include the source package name in --"
"libexecdir when using autoconf."
@@ -1292,12 +4037,23 @@ msgstr ""
"libexecdir> en utilisant B<autoconf>."
#. type: textblock
-#: debhelper.pod:504
+#: debhelper-compat-upgrade-checklist.pod:685
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:508
+#: debhelper-compat-upgrade-checklist.pod:687
+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 "
+"regardless of compat level)"
+msgstr ""
+"(Obsolète puisque l'outil B<dh_pysupport> a été retiré de Debian Stretch. "
+"Depuis debhelper 10.3, B<dh> n'active plus cette séquence quel que soit le "
+"niveau de compatibilité)"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:693
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."
@@ -1307,7 +4063,7 @@ msgstr ""
"sont déjà configurées."
#. type: textblock
-#: debhelper.pod:514
+#: debhelper-compat-upgrade-checklist.pod:699
msgid ""
"B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and LDFLAGS "
"to perl F<Makefile.PL> and F<Build.PL>"
@@ -1316,7 +4072,7 @@ msgstr ""
"buildflags> à F<Makefile.PL> et F<Build.PL> de Perl."
#. type: textblock
-#: debhelper.pod:519
+#: debhelper-compat-upgrade-checklist.pod:704
msgid ""
"B<dh_strip> puts separated debug symbols in a location based on their build-"
"id."
@@ -1325,7 +4081,7 @@ msgstr ""
"fonction de leur identifiant de construction (build-id)."
#. type: textblock
-#: debhelper.pod:524
+#: debhelper-compat-upgrade-checklist.pod:709
msgid ""
"Executable debhelper config files are run and their output used as the "
"configuration."
@@ -1333,524 +4089,462 @@ msgstr ""
"Les fichiers de configuration exécutables de debhelper sont exécutés et leur "
"sortie est utilisée comme configuration."
+# type: textblock
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:714
+#: debhelper-compat-upgrade-checklist.pod:745
+#: debhelper-compat-upgrade-checklist.pod:749 debhelper-obsolete-compat.pod:81
+#: debhelper-obsolete-compat.pod:135 debhelper-obsolete-compat.pod:158
+#: debhelper-obsolete-compat.pod:165 debhelper-obsolete-compat.pod:174
+msgid "This mode is deprecated."
+msgstr "Ce mode est déconseillé."
+
#. type: =item
-#: debhelper.pod:529
-msgid "v10"
-msgstr "v10"
+#: debhelper-compat-upgrade-checklist.pod:716
+msgid "v8"
+msgstr "v8"
+# type: textblock
#. type: textblock
-#: debhelper.pod:531
+#: debhelper-compat-upgrade-checklist.pod:718
+msgid "Changes from v7 are:"
+msgstr "Les changements par rapport à la version 7 sont :"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:724
msgid ""
-"This compatibility level is still open for development; use with caution."
+"Commands will fail rather than warning when they are passed unknown options."
msgstr ""
-"Ce niveau de compatibilité est encore en développement, à utiliser avec "
-"précaution."
+"Les commandes échoueront plutôt que de produire une alerte lorsqu'elles "
+"recevront des options inconnues."
-# type: textblock
#. type: textblock
-#: debhelper.pod:533
-msgid "Changes from v9 are:"
-msgstr "Les changements par rapport à la version 9 sont :"
+#: debhelper-compat-upgrade-checklist.pod:728
+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. "
+"Also, libraries in unusual locations that B<dpkg-gensymbols> would not have "
+"processed before will be passed to it, a behavior change that can cause some "
+"packages to fail to build."
+msgstr ""
+"B<dh_makeshlibs> va exécuter le programme B<dpkg-gensymbols> sur toutes les "
+"bibliothèques partagées qu'il génère pour les fichiers shlibs. B<-X> peut "
+"alors être utilisé pour exclure certaines bibliothèques. En outre, les "
+"bibliothèques rangées à des emplacements inhabituels que B<pkg-gensymbols> "
+"n'aurait pas traitées avant qu'elles ne lui soient transmises, induisent un "
+"changement de comportement qui peut causer l'échec de la construction de "
+"certains paquets."
#. type: textblock
-#: debhelper.pod:537
+#: debhelper-compat-upgrade-checklist.pod:736
msgid ""
-"B<dh_installinit> will no longer install a file named debian/I<package> as "
-"an init script."
+"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 "
+"$@>\"."
msgstr ""
+"B<dh> exige que la séquence à exécuter soit indiquée en tant que premier "
+"paramètre. Tous les commutateurs doivent venir après. C'est-à-dire qu'il "
+"faut écrire « B<dh $@ --toto> », et non « B<dh --toto $@> »"
#. type: textblock
-#: debhelper.pod:544
+#: debhelper-compat-upgrade-checklist.pod:741
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."
+"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
+"F<Makefile.PL>."
msgstr ""
+"B<dh_auto_*> utilise préférentiellement B<Module::Build> de Perl au lieu de "
+"F<Makefile.PL>."
-# type: =head1
-#. type: =head1
-#: debhelper.pod:553 dh_auto_test:45 dh_installcatalogs:59 dh_installdocs:121
-#: dh_installemacsen:72 dh_installexamples:53 dh_installinit:140
-#: dh_installman:82 dh_installmodules:54 dh_installudev:55 dh_installwm:54
-#: dh_installxfonts:37 dh_movefiles:64 dh_strip:68 dh_usrlocal:49
-msgid "NOTES"
-msgstr "REMARQUES"
-
-# type: =head2
-#. type: =head2
-#: debhelper.pod:555
-msgid "Multiple binary package support"
-msgstr "Prise en charge de plusieurs paquets binaires"
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:747 debhelper-obsolete-compat.pod:21
+msgid "v7"
+msgstr "v7"
# type: textblock
#. type: textblock
-#: debhelper.pod:557
+#: debhelper-compat-upgrade-checklist.pod:751 debhelper-obsolete-compat.pod:23
+msgid "This is the lowest supported compatibility level."
+msgstr "C'est le niveau de compatibilité le plus bas pris en charge."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:753
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 "
-"source package happens to generate one architecture dependent package, and "
-"another architecture independent package, this is not the correct behavior, "
-"because you need to generate the architecture dependent packages in the "
-"binary-arch F<debian/rules> target, and the architecture independent "
-"packages in the binary-indep F<debian/rules> target."
+"If you are upgrading from an earlier compatibility level, please review "
+"L<debhelper-obsolete-compat(7)>."
msgstr ""
-"Si le paquet source produit plus d'un paquet binaire, les programmes de "
-"debhelper construiront tous les paquets binaires. Si le paquet source doit "
-"construire un paquet dépendant de l'architecture, et un paquet indépendant "
-"de l'architecture, ce comportement ne conviendra pas. En effet, il convient "
-"de construire les paquets dépendants de l'architecture dans « binary-arch » "
-"de F<debian/rules>, et les paquets indépendants de l'architecture dans « "
-"binary-indep »."
+"Si vous mettez à jour depuis un niveau de compatibilité antérieur, veuillez "
+"consulter L<debhelper-obsolete-compat(7)>."
# type: textblock
-#. type: textblock
-#: debhelper.pod:565
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:762
#, fuzzy
-#| 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<-i>, B<-p>, and B<-s> parameters. These parameters are cumulative. "
-#| "If none are given, debhelper programs default to acting on all packages "
-#| "listed in the control file."
+#| msgid "L<debhelper(7)>"
+msgid "L<debhelper-obsolete-compat(7)>"
+msgstr "L<debhelper(7)>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:764
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<-"
-"i>, B<-p>, and B<-s> parameters. These parameters are cumulative. If none "
-"are given, debhelper programs default to acting on all packages listed in "
-"the control file, with the exceptions below."
+"Upgrading from a (now) obsolete compatibility level? This document covers "
+"the upgrade checklist up to the earliest supported level."
msgstr ""
-"Pour résoudre ce problème, et pour un meilleur contrôle sur la construction "
-"des paquets par debhelper, tous les programmes de debhelper acceptent les "
-"options B<-a>, B<-i>, B<-p>, et B<-s>. Ces options sont cumulatives. Si "
-"aucune n'est précisée, les programmes de debhelper construisent tous les "
-"paquets énumérés dans le fichier de contrôle."
+
+# type: textblock
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:767 debhelper-obsolete-compat.pod:180
+#: dh:874 dh_auto_build:55 dh_auto_clean:57 dh_auto_configure:60
+#: dh_auto_install:105 dh_auto_test:66 dh_builddeb:178 dh_clean:191
+#: dh_compress:245 dh_dwz:165 dh_fixperms:166 dh_gencontrol:210 dh_install:379
+#: dh_installcatalogs:130 dh_installchangelogs:367 dh_installcron:82
+#: dh_installdeb:421 dh_installdebconf:235 dh_installdirs:133
+#: dh_installdocs:439 dh_installexamples:184 dh_installifupdown:74
+#: dh_installinfo:125 dh_installlogcheck:83 dh_installlogrotate:55
+#: dh_installman:422 dh_installmanpages:200 dh_installmime:65
+#: dh_installmodules:111 dh_installpam:73 dh_installppp:70 dh_installudev:104
+#: dh_installwm:132 dh_installxfonts:92 dh_link:168 dh_listpackages:36
+#: dh_makeshlibs:458 dh_md5sums:120 dh_movefiles:163 dh_perl:190 dh_prep:72
+#: dh_strip:437 dh_testdir:64 dh_testroot:95 dh_usrlocal:138
+#: dh_systemd_start:282
+msgid "L<debhelper(7)>"
+msgstr "L<debhelper(7)>"
#. type: textblock
-#: debhelper.pod:571
+#: debhelper-compat-upgrade-checklist.pod:769
msgid ""
-"First, any package whose B<Architecture> field in B<debian/control> does not "
-"match the build architecture will be excluded (L<Debian Policy, section "
-"5.6.8>)."
+"General information about the debhelper framework. This document also covers "
+"how to declare your chosen debhelper compat level."
msgstr ""
+# type: =head1
+#. type: =head1
+#: debhelper-compat-upgrade-checklist.pod:774 debhelper-obsolete-compat.pod:182
+#: dh_installinit:419 dh_systemd_enable:284 dh_systemd_start:284
+msgid "AUTHORS"
+msgstr "AUTEURS"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:776 debhelper-obsolete-compat.pod:184
+#: dh_dwz:171 dh_installinitramfs:101
+msgid "Niels Thykier <niels@thykier.net>"
+msgstr "Niels Thykier <niels@thykier.net>"
+
#. type: textblock
-#: debhelper.pod:575
+#: debhelper-compat-upgrade-checklist.pod:778 debhelper-obsolete-compat.pod:186
+msgid "Joey Hess"
+msgstr "Joey Hess"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:3
+msgid "debhelper-obsolete-compat - List of no longer supported compat levels"
+msgstr ""
+"debhelper-obsolete-compat - Liste les niveaux de compatibilité qui ne sont "
+"plus pris en charge"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:7
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 "
-"binary package stanzas in B<debian/control>, according to the draft policy "
-"at L<https://wiki.debian.org/BuildProfileSpec>."
+"This document contains the upgrade guidelines from all compat levels which "
+"are no longer supported. Accordingly it is mostly for historical purposes "
+"and to assist people upgrading from a non-supported compat level to a "
+"supported level."
msgstr ""
+"Ce document contient les instructions de mise à jour depuis les niveaux de "
+"compatibilité qui ne sont plus pris en charge. Ainsi, il existe surtout pour "
+"des raisons historiques et pour ceux qui voudraient faire une mise à jour "
+"depuis un niveau de compatibilité qui n'est plus pris en charge."
-# type: =head2
-#. type: =head2
-#: debhelper.pod:580
-msgid "Automatic generation of Debian install scripts"
-msgstr "Génération automatique des scripts Debian de maintenance du paquet"
+#. type: textblock
+#: debhelper-obsolete-compat.pod:12
+msgid "For upgrades from supported compat levels, please see L<debhelper(7)>."
+msgstr ""
+"Pour les mises à jour depuis un niveau de compatibilité encore pris en "
+"charge, veuillez consulter L<debhelper(7)>."
+
+#. type: =head1
+#: debhelper-obsolete-compat.pod:14
+msgid "UPGRADE LIST FOR COMPAT LEVELS"
+msgstr "LISTE CHRONOLOGIQUE DES NIVEAUX DE COMPATIBILITÉ"
-# type: textblock
#. type: textblock
-#: debhelper.pod:582
+#: debhelper-obsolete-compat.pod:16
msgid ""
-"Some debhelper commands will automatically generate parts of Debian "
-"maintainer scripts. If you want these automatically generated things "
-"included in your existing Debian maintainer scripts, then you need to add "
-"B<#DEBHELPER#> to your scripts, in the place the code should be added. "
-"B<#DEBHELPER#> will be replaced by any auto-generated code when you run "
-"B<dh_installdeb>."
+"The following is the list of now obsolete compat levels and their changes."
msgstr ""
-"Certaines commandes de debhelper produisent automatiquement des lignes de "
-"code de maintenance du paquet. Pour les inclure dans vos propres scripts de "
-"maintenance du paquet, il convient d'ajouter B<#DEBHELPER#> à l'endroit où "
-"les lignes de code générées devront être insérées. B<#DEBHELPER#> sera "
-"remplacé, par les lignes de code générées automatiquement, lors de "
-"l'exécution de B<dh_installdeb>."
+"La liste suivante répertorie les niveaux de compatibilité qui ne sont plus "
+"pris en charge, ainsi que les changements de l'un à l'autre."
# type: textblock
#. type: textblock
-#: debhelper.pod:589
-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 ""
-"Si un script de maintenance n'existe pas et que debhelper doit y inclure "
-"quelque chose, alors debhelper créera le script de maintenance complètement."
+#: debhelper-obsolete-compat.pod:25
+msgid "Changes from v6 are:"
+msgstr "Les changements par rapport à la version 6 sont :"
# type: textblock
#. type: textblock
-#: debhelper.pod:592
+#: debhelper-obsolete-compat.pod:31
msgid ""
-"All debhelper commands that automatically generate code in this way let it "
-"be disabled by the -n parameter (see above)."
+"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 "
+"using B<--sourcedir>). This allows B<dh_install> to interoperate with "
+"B<dh_auto_install>, which installs to F<debian/tmp>, without needing any "
+"special parameters."
msgstr ""
-"Toutes les commandes de debhelper qui produisent automatiquement des lignes "
-"de code de cette façon peuvent inhiber cette production grâce à l'option -n "
-"(voir ci-dessus)."
+"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 "
+"nécessiter de paramètres particuliers."
# type: textblock
#. type: textblock
-#: debhelper.pod:595
-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 "
-"is one way to do that (note that I made sure that $1, $2, etc are set with "
-"the set command):"
+#: debhelper-obsolete-compat.pod:38
+msgid "B<dh_clean> will read F<debian/clean> and delete files listed there."
msgstr ""
-"Nota : Les lignes de code insérées seront écrites dans le langage de "
-"l'interpréteur de commandes (shell). De ce fait, il est impossible de les "
-"placer directement dans un script Perl. Pour les insérer dans un script "
-"Perl, voici une solution. (S'assurer que $1, $2, etc. sont bien définis par "
-"la commande set.) :"
+"B<dh_clean> lit le répertoire F<debian/clean> et supprime les fichiers qui y "
+"sont mentionnés."
-# type: verbatim
-#. type: verbatim
-#: debhelper.pod:600
-#, no-wrap
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:42
+msgid "B<dh_clean> will delete toplevel F<*-stamp> files."
+msgstr "B<dh_clean> supprime les fichiers F<*-stamp>."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:46
msgid ""
-" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
-" #DEBHELPER#\n"
-" EOF\n"
-" system ($temp) / 256 == 0\n"
-" \tor die \"Problem with debhelper scripts: $!\";\n"
-"\n"
+"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
+"none is specified."
msgstr ""
-" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
-" #DEBHELPER#\n"
-" EOF\n"
-" system ($temp) / 256 == 0\n"
-" \tor die \"Problème avec le script de debhelper : $!\";\n"
-"\n"
+"B<dh_installchangelogs> déterminera à quel fichier correspond le changelog "
+"amont si rien n'est indiqué."
-# type: =head2
-#. type: =head2
-#: debhelper.pod:606
-msgid "Automatic generation of miscellaneous dependencies."
-msgstr "Génération automatique des diverses dépendances."
+#. type: =item
+#: debhelper-obsolete-compat.pod:51
+msgid "v6"
+msgstr "v6"
# type: textblock
#. type: textblock
-#: debhelper.pod:608
-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 "
-"package will generally need to depend on debconf. Or if you use "
-"L<dh_installxfonts(1)>, your package will generally need to depend on a "
-"particular version of xutils. Keeping track of these miscellaneous "
-"dependencies can be annoying since they are dependent on how debhelper does "
-"things, so debhelper offers a way to automate it."
-msgstr ""
-"Certaines commandes de debhelper peuvent nécessiter des dépendances entre le "
-"paquet construit et d'autres paquets. Par exemple, si "
-"L<dh_installdebconf(1)> est employé, le paquet devra dépendre de debconf. Si "
-"L<dh_installxfonts(1)> est employé, le paquet deviendra dépendant d'une "
-"version particulière de xutils. Maintenir ces dépendances induites peut être "
-"pénible puisqu'elles découlent de la façon dont debhelper travaille. C'est "
-"pourquoi debhelper offre une solution d'automatisation."
+#: debhelper-obsolete-compat.pod:53
+msgid "Changes from v5 are:"
+msgstr "Les changements par rapport à la version 5 sont :"
# type: textblock
#. type: textblock
-#: debhelper.pod:616
+#: debhelper-obsolete-compat.pod:59
msgid ""
-"All commands of this type, besides documenting what dependencies may be "
-"needed on their man pages, will automatically generate a substvar called B<"
-"${misc:Depends}>. If you put that token into your F<debian/control> file, it "
-"will be expanded to the dependencies debhelper figures you need."
+"Commands that generate maintainer script fragments will order the fragments "
+"in reverse order for the F<prerm> and F<postrm> scripts."
msgstr ""
-"Toutes les commandes de ce type, outre qu'elles documentent, dans leur page "
-"de manuel, les dépendances qu'elle induisent, généreront automatiquement une "
-"variable de substitution nommée B<${misc:depends}>. Si cette variable est "
-"exploitée dans le dossier F<debian/control>, il sera automatiquement enrichi "
-"des dépendances induites par debhelper."
+"Les commandes qui génèrent des lignes de codes de maintenance les mettront "
+"dans l'ordre inverse dans les scripts F<prerm> et F<postrm>."
# type: textblock
#. type: textblock
-#: debhelper.pod:621
+#: debhelper-obsolete-compat.pod:64
msgid ""
-"This is entirely independent of the standard B<${shlibs:Depends}> generated "
-"by L<dh_makeshlibs(1)>, and the B<${perl:Depends}> generated by "
-"L<dh_perl(1)>. You can choose not to use any of these, if debhelper's "
-"guesses don't match reality."
+"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 "
+"directory."
msgstr ""
-"Ce processus est entièrement indépendant de B<${shlibs:Depends}> standard, "
-"produite par L<dh_makeshlibs(1)>, et de B<${perl:Depends}> produite par "
-"L<dh_perl(1)>. Il est également possible de choisir de ne pas les utiliser "
-"si les conjectures de debhelper ne correspondent pas à la réalité."
-
-# type: =head2
-#. type: =head2
-#: debhelper.pod:626
-msgid "Package build directories"
-msgstr "Répertoires de construction du paquet"
+"B<dh_installwm> installera un lien vers une page de manuel esclave pour F<x-"
+"window-manager.1.gz> s'il voit la page de manuel dans le répertoire F<usr/"
+"share/man/man1> du répertoire de construction du paquet."
# type: textblock
#. type: textblock
-#: debhelper.pod:628
+#: debhelper-obsolete-compat.pod:70
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>."
+"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 ""
-"Par défaut, tous les programmes de debhelper supposent que le répertoire "
-"temporaire utilisé pour construire l'arborescence des fichiers d'un paquet "
-"est debian/I<paquet>."
+"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:631
+#: debhelper-obsolete-compat.pod:76
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>"
-"\", will use B<debian/tmp> as the temporary directory. Note that if you use "
-"B<-P>, the debhelper programs can only be acting on a single package at a "
-"time. So if you have a package that builds many binary packages, you will "
-"need to also use the B<-p> flag to specify which binary package the "
-"debhelper program will act on."
+"B<dh_installman> allows overwriting existing man pages in the package build "
+"directory. In previous compatibility levels it silently refuses to do this."
msgstr ""
-"Parfois, il peut être souhaitable d'utiliser un autre répertoire temporaire. "
-"C'est obtenu grâce à l'attribut B<-P>. Par exemple, B<dh_installdocs -"
-"Pdebian/tmp> utilisera B<debian/tmp> comme répertoire temporaire. Nota : "
-"L'usage de B<-P> implique que les programmes de debhelper ne construisent "
-"qu'un seul paquet à la fois. De ce fait, si le paquet source génère "
-"plusieurs paquets binaires, il faudra employer également le paramètre B<-p> "
-"pour préciser l'unique paquet binaire à construire."
+"B<dh_installman> permet d'écraser les pages de manuel existantes dans le "
+"répertoire de construction du paquet. Auparavant, il refusait en silence de "
+"le faire."
-# type: =head2
-#. type: =head2
-#: debhelper.pod:639
-msgid "udebs"
-msgstr "udebs"
+#. type: =item
+#: debhelper-obsolete-compat.pod:83
+msgid "v5"
+msgstr "v5"
# type: textblock
#. type: textblock
-#: debhelper.pod:641
-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>. "
-"Debhelper will try to create udebs that comply with debian-installer policy, "
-"by making the generated package files end in F<.udeb>, not installing any "
-"documentation into a udeb, skipping over F<preinst>, F<postrm>, F<prerm>, "
-"and F<config> scripts, etc."
-msgstr ""
-"Debhelper prend en charge la construction des udebs. Pour créer un udeb avec "
-"debhelper, il faut ajouter « B<Package-Type: udeb> » aux lignes de paquet "
-"dans F<debian/control>. Debhelper essayera de construire des udebs, "
-"conformément aux règles de l'installateur Debian, en suffixant les fichiers "
-"de paquets générés avec F<.udeb>, en n'installant aucune documentation dans "
-"un udeb, en omettant les scripts F<preinst>, F<postrm>, F<prerm> et "
-"F<config>, etc."
-
-# type: =head1
-#. type: =head1
-#: debhelper.pod:648
-msgid "ENVIRONMENT"
-msgstr "VARIABLES D'ENVIRONNEMENT"
+#: debhelper-obsolete-compat.pod:85
+msgid "Changes from v4 are:"
+msgstr "Les changements par rapport à la version 4 sont :"
-# type: =item
-#. type: =item
-#: debhelper.pod:652
-msgid "B<DH_VERBOSE>"
-msgstr "B<DH_VERBOSE>"
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:91
+msgid "Comments are ignored in debhelper config files."
+msgstr ""
+"Les commentaires sont ignorés dans les fichiers de configuration de "
+"debhelper."
# type: textblock
#. type: textblock
-#: debhelper.pod:654
-#, fuzzy
-#| msgid ""
-#| "Set to B<1> to enable verbose mode. Debhelper will output every command "
-#| "it runs that modifies files on the build system."
+#: debhelper-obsolete-compat.pod:95
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."
+"B<dh_strip --dbg-package> now specifies the name of a package to put "
+"debugging symbols in, not the packages to take the symbols from."
msgstr ""
-"Mettre cette variable à B<1> valide le mode verbeux. Debhelper affichera "
-"chaque commande exécutée qui modifie des fichiers."
+"B<dh_strip --dbg-package> indique maintenant le nom du paquet qui doit "
+"recevoir les symboles de mise au point et non les paquets d'où proviennent "
+"ces symboles."
-# type: =item
-#. type: =item
-#: debhelper.pod:657
-msgid "B<DH_COMPAT>"
-msgstr "B<DH_COMPAT>"
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:100
+msgid "B<dh_installdocs> skips installing empty files."
+msgstr "B<dh_installdocs> saute l'installation des fichiers vides."
# type: textblock
#. type: textblock
-#: debhelper.pod:659
-msgid ""
-"Temporarily specifies what compatibility level debhelper should run at, "
-"overriding any value in F<debian/compat>."
+#: debhelper-obsolete-compat.pod:104
+msgid "B<dh_install> errors out if wildcards expand to nothing."
msgstr ""
-"Indique temporairement le niveau de compatibilité auquel debhelper doit "
-"fonctionner. Cette valeur supplante la valeur précisée dans F<debian/compat>."
+"B<dh_install> génère des erreurs si les jokers (wildcards) ne correspondent "
+"à rien."
-# type: =item
#. type: =item
-#: debhelper.pod:662
-msgid "B<DH_NO_ACT>"
-msgstr "B<DH_NO_ACT>"
+#: debhelper-obsolete-compat.pod:108
+msgid "v4"
+msgstr "v4"
# type: textblock
#. type: textblock
-#: debhelper.pod:664
-msgid "Set to B<1> to enable no-act mode."
-msgstr "Mettre cette variable à B<1> pour activer le mode simulation (no-act)."
+#: debhelper-obsolete-compat.pod:110
+msgid "Changes from v3 are:"
+msgstr "Les changements par rapport à la version 3 sont :"
-# type: =item
-#. type: =item
-#: debhelper.pod:666
-msgid "B<DH_OPTIONS>"
-msgstr "B<DH_OPTIONS>"
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:116
+msgid ""
+"B<dh_makeshlibs -V> will not include the Debian part of the version number "
+"in the generated dependency line in the shlibs file."
+msgstr ""
+"B<dh_makeshlibs -V> n'inclura pas la partie Debian du numéro de version dans "
+"la ligne de dépendance produite dans le fichier shlibs."
# type: textblock
#. type: textblock
-#: debhelper.pod:668
+#: debhelper-obsolete-compat.pod:121
msgid ""
-"Anything in this variable will be prepended to the command line arguments of "
-"all debhelper commands."
+"You are encouraged to put the new B<${misc:Depends}> into F<debian/control> "
+"to supplement the B<${shlibs:Depends}> field."
msgstr ""
-"Tout ce qui est indiqué dans cette variable sera passé en argument à toutes "
-"les commandes debhelper."
+"Il est fortement conseillé de mettre le nouveau B<${misc:Depends}> dans "
+"F<debian/control> pour compléter le champs B<${shlibs:Depends}>."
+# type: textblock
#. type: textblock
-#: debhelper.pod:671
+#: debhelper-obsolete-compat.pod:126
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."
+"B<dh_fixperms> will make all files in F<bin/> directories and in F<etc/init."
+"d> executable."
msgstr ""
-"En utilisant L<dh(1)>, des options peuvent être passées à chaque commande "
-"debhelper, ce qui est généralement mieux que d'utiliser B<DH_OPTIONS>."
+"B<dh_fixperms> rendra exécutables tous les fichiers des répertoires F<bin/> "
+"et F<etc/init.d>."
+
+# type: textblock
+#. type: textblock
+#: debhelper-obsolete-compat.pod:131
+msgid "B<dh_link> will correct existing links to conform with policy."
+msgstr ""
+"B<dh_link> corrigera les liens existants pour les rendre conformes à la "
+"Charte Debian."
-# type: =item
#. type: =item
-#: debhelper.pod:674
-msgid "B<DH_ALWAYS_EXCLUDE>"
-msgstr "B<DH_ALWAYS_EXCLUDE>"
+#: debhelper-obsolete-compat.pod:137
+msgid "v3"
+msgstr "v3"
# type: textblock
#. type: textblock
-#: debhelper.pod:676
-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 "
-"B<rm -rf> anything that matches the value in your package build tree."
-msgstr ""
-"Si cette variable possède une valeur, elle sera ajoutée à l'option B<-X> de "
-"toutes les commandes qui admettent cette option. De plus, B<dh_builddeb> "
-"fera un B<rm -rf> quelque chose, correspondant à la valeur dans l'arbre de "
-"construction de paquet."
+#: debhelper-obsolete-compat.pod:139
+msgid "This mode works like v2, with the following additions:"
+msgstr "Ce mode fonctionne comme v2 mais avec les ajouts suivants :"
# type: textblock
#. type: textblock
-#: debhelper.pod:680
+#: debhelper-obsolete-compat.pod:145
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 "
-"sneaking into the package you build. Or, if a package has a source tarball "
-"that (unwisely) includes CVS directories, you might want to export "
-"B<DH_ALWAYS_EXCLUDE=CVS> in F<debian/rules>, to make it take effect wherever "
-"your package is built."
+"Debhelper config files support globbing via B<*> and B<?>, when appropriate. "
+"To turn this off and use those characters raw, just prefix with a backslash."
msgstr ""
-"Cela peut être utile pour construire un paquet à partir d'une arborescence "
-"CVS. Dans ce cas, le réglage de B<DH_ALWAYS_EXCLUDE=CVS> empêchera les "
-"répertoires CVS d'interférer subrepticement dans le paquet en construction. "
-"Ou, si un paquet possède une source compressée, (maladroitement) présente "
-"dans un répertoire CVS, il peut être utile d'exporter "
-"B<DH_ALWAYS_EXCLUDE=CVS> dans F<debian/rules>, pour que cette variable soit "
-"prise en compte quel que soit l'endroit où le paquet est construit."
+"Les fichiers de configuration de debhelper acceptent les jokers B<*> et B<?> "
+"lorsque cela a un sens. Pour désactiver cette substitution et utiliser ces "
+"caractères tels quels, il suffit de les préfixer avec une barre contre-"
+"oblique (backslash)."
# type: textblock
#. type: textblock
-#: debhelper.pod:687
+#: debhelper-obsolete-compat.pod:150
msgid ""
-"Multiple things to exclude can be separated with colons, as in "
-"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
+"B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call "
+"B<ldconfig>."
msgstr ""
-"Des exclusions multiples peuvent être séparées avec des caractères deux "
-"points, comme dans F<DH_ALWAYS_EXCLUDE=CVS:.svn>."
-
-# type: =head1
-#. type: =head1
-#: debhelper.pod:692 dh:972 dh_auto_build:47 dh_auto_clean:50
-#: dh_auto_configure:52 dh_auto_install:92 dh_auto_test:63 dh_bugfiles:124
-#: dh_builddeb:124 dh_clean:147 dh_compress:210 dh_desktop:31 dh_fixperms:131
-#: dh_gconf:101 dh_gencontrol:78 dh_icons:71 dh_install:260
-#: dh_installcatalogs:122 dh_installchangelogs:241 dh_installcron:79
-#: dh_installdeb:142 dh_installdebconf:128 dh_installdirs:88
-#: dh_installdocs:337 dh_installemacsen:141 dh_installexamples:108
-#: dh_installifupdown:71 dh_installinfo:77 dh_installinit:324
-#: dh_installlogcheck:80 dh_installlogrotate:52 dh_installman:263
-#: dh_installmanpages:197 dh_installmenu:89 dh_installmime:63
-#: dh_installmodules:115 dh_installpam:61 dh_installppp:67 dh_installudev:117
-#: dh_installwm:110 dh_installxfonts:89 dh_link:228 dh_lintian:59
-#: dh_listpackages:30 dh_makeshlibs:264 dh_md5sums:90 dh_movefiles:170
-#: dh_perl:152 dh_prep:60 dh_scrollkeeper:28 dh_shlibdeps:152 dh_strip:242
-#: dh_suidregister:117 dh_testdir:53 dh_testroot:27 dh_undocumented:28
-#: dh_usrlocal:116
-msgid "SEE ALSO"
-msgstr "VOIR AUSSI"
-
-# type: =item
-#. type: =item
-#: debhelper.pod:696
-msgid "F</usr/share/doc/debhelper/examples/>"
-msgstr "F</usr/share/doc/debhelper/examples/>"
+"Les scripts de maintenance du paquet (F<postinst> et F<postrm>) feront appel "
+"à B<ldconfig> quand B<dh_makeshlibs> sera lancé."
# type: textblock
#. type: textblock
-#: debhelper.pod:698
-msgid "A set of example F<debian/rules> files that use debhelper."
+#: debhelper-obsolete-compat.pod:154
+msgid ""
+"Every file in F<etc/> is automatically flagged as a conffile by "
+"B<dh_installdeb>."
msgstr ""
-"Un ensemble d'exemples de fichiers F<debian/rules> qui utilisent debhelper."
+"Chaque fichier de F<etc/> est automatiquement marqué par B<dh_installdeb> "
+"comme un fichier de configuration."
-# type: =item
#. type: =item
-#: debhelper.pod:700
-#, fuzzy
-#| msgid "L<http://kitenet.net/~joey/code/debhelper/>"
-msgid "L<http://joeyh.name/code/debhelper/>"
-msgstr "L<http://kitenet.net/~joey/code/debhelper/>"
+#: debhelper-obsolete-compat.pod:160
+msgid "v2"
+msgstr "v2"
# type: textblock
#. type: textblock
-#: debhelper.pod:702
-msgid "Debhelper web site."
-msgstr "Le site internet de debhelper."
+#: debhelper-obsolete-compat.pod:162
+msgid ""
+"In this mode, debhelper will consistently use debian/I<package> as the "
+"package tree directory for every package that is built."
+msgstr ""
+"Dans ce mode, debhelper emploiera uniformément « debian/I<paquet> » comme "
+"répertoire de l'arborescence de chaque paquet construit."
-# type: =head1
-#. type: =head1
-#: debhelper.pod:706 dh:978 dh_auto_build:53 dh_auto_clean:56
-#: dh_auto_configure:58 dh_auto_install:98 dh_auto_test:69 dh_bugfiles:132
-#: dh_builddeb:130 dh_clean:153 dh_compress:216 dh_desktop:37 dh_fixperms:137
-#: dh_gconf:107 dh_gencontrol:84 dh_icons:77 dh_install:266
-#: dh_installcatalogs:128 dh_installchangelogs:247 dh_installcron:85
-#: dh_installdeb:148 dh_installdebconf:134 dh_installdirs:94
-#: dh_installdocs:343 dh_installemacsen:148 dh_installexamples:114
-#: dh_installifupdown:77 dh_installinfo:83 dh_installlogcheck:86
-#: dh_installlogrotate:58 dh_installman:269 dh_installmanpages:203
-#: dh_installmenu:97 dh_installmime:69 dh_installmodules:121 dh_installpam:67
-#: dh_installppp:73 dh_installudev:123 dh_installwm:116 dh_installxfonts:95
-#: dh_link:234 dh_lintian:67 dh_listpackages:36 dh_makeshlibs:270
-#: dh_md5sums:96 dh_movefiles:176 dh_perl:158 dh_prep:66 dh_scrollkeeper:34
-#: dh_shlibdeps:158 dh_strip:248 dh_suidregister:123 dh_testdir:59
-#: dh_testroot:33 dh_undocumented:34 dh_usrlocal:122
-msgid "AUTHOR"
-msgstr "AUTEUR"
+#. type: =item
+#: debhelper-obsolete-compat.pod:167
+msgid "v1"
+msgstr "v1"
# type: textblock
#. type: textblock
-#: debhelper.pod:708 dh:980 dh_auto_build:55 dh_auto_clean:58
-#: dh_auto_configure:60 dh_auto_install:100 dh_auto_test:71 dh_builddeb:132
-#: dh_clean:155 dh_compress:218 dh_fixperms:139 dh_gencontrol:86
-#: dh_install:268 dh_installchangelogs:249 dh_installcron:87 dh_installdeb:150
-#: dh_installdebconf:136 dh_installdirs:96 dh_installdocs:345
-#: dh_installemacsen:150 dh_installexamples:116 dh_installifupdown:79
-#: dh_installinfo:85 dh_installinit:332 dh_installlogrotate:60
-#: dh_installman:271 dh_installmanpages:205 dh_installmenu:99
-#: dh_installmime:71 dh_installmodules:123 dh_installpam:69 dh_installppp:75
-#: dh_installudev:125 dh_installwm:118 dh_installxfonts:97 dh_link:236
-#: dh_listpackages:38 dh_makeshlibs:272 dh_md5sums:98 dh_movefiles:178
-#: dh_prep:68 dh_shlibdeps:160 dh_strip:250 dh_suidregister:125 dh_testdir:61
-#: dh_testroot:35 dh_undocumented:36
-msgid "Joey Hess <joeyh@debian.org>"
-msgstr "Joey Hess <joeyh@debian.org>"
+#: debhelper-obsolete-compat.pod:169
+msgid ""
+"This is the original debhelper compatibility level, and so it is the default "
+"one. In this mode, debhelper will use F<debian/tmp> as the package tree "
+"directory for the first binary package listed in the control file, while "
+"using debian/I<package> for all other packages listed in the F<control> file."
+msgstr ""
+"C'est le niveau initial de compatibilité de debhelper d'où son numéro 1. "
+"Dans ce mode, debhelper emploiera F<debian/tmp> comme répertoire de "
+"l'arborescence du premier paquet binaire énuméré dans le fichier F<control> "
+"et « debian/I<paquet> » pour tous les autres."
# type: textblock
#. type: textblock
@@ -1860,17 +4554,17 @@ msgstr "dh - Automate de commandes debhelper"
# type: textblock
#. type: textblock
-#: dh:14
+#: dh:24
msgid ""
"B<dh> I<sequence> [B<--with> I<addon>[B<,>I<addon> ...]] [B<--list>] "
"[S<I<debhelper options>>]"
msgstr ""
"B<dh> I<suite> [B<--with> I<rajout>[B<,>I<rajout> ...]] [B<--list>] "
-"[S<I<options de debhelper>>]"
+"[S<I<options_de_debhelper>>]"
# type: textblock
#. type: textblock
-#: dh:18
+#: dh:28
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-"
@@ -1883,31 +4577,71 @@ msgstr ""
"B<install>, B<binary-arch>, B<binary-indep> et B<binary>."
#. type: =head1
-#: dh:23
-msgid "OVERRIDE TARGETS"
-msgstr "CIBLES DE RÉÉCRITURE"
+#: dh:33
+msgid "OVERRIDE AND HOOK TARGETS"
+msgstr "CIBLES DE RÉÉCRITURE ET D'ACCROCHE"
#. type: textblock
-#: dh:25
+#: dh:35
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."
+"any step in a sequence, by defining an override target. It is also possible "
+"to inject a command before or after any step without affecting the step "
+"itself."
msgstr ""
"Un fichier F<debian/rules> utilisant B<dh> peut réécrire la commande "
"exécutée à n'importe quelle étape d'une séquence, en définissant une cible "
-"de réécriture."
+"de réécriture. Il est possible d'injecter une commande avant ou après une "
+"étape sans affecter l'étape elle-même."
+
+#. type: =head2
+#: dh:40
+msgid "Injecting commands before or after a step"
+msgstr "Injection de commandes avant ou après une étape"
+
+#. type: textblock
+#: dh:42
+msgid ""
+"I<Note>: This feature requires debhelper 12.8 or later plus the package must "
+"use compatibility mode 10 or later."
+msgstr ""
+"I<Note> : Cette fonctionnalité requiert debhelper 12.8 ou plus et le paquet "
+"doit utiliser le mode de compatibilité 10 ou plus."
+
+#. type: textblock
+#: dh:45
+msgid ""
+"To inject commands before I<dh_command>, add a target named "
+"B<execute_before_>I<dh_command> to the rules files. Similarly, if you want "
+"to inject commands after I<dh_command>, add the target "
+"B<execute_after_>I<dh_command>. Both targets can be used for the same "
+"I<dh_command> and also even if the command is overridden (as described in L</"
+"Overriding a command> below)."
+msgstr ""
+"Pour injecter des commandes avant I<dh_command>, ajoutez une cible nommée "
+"B<execute_before_>I<dh_command> aux fichiers de règles. De la même manière, "
+"si vous voulez injecter des commandes après I<dh_command>, ajoutez la cible "
+"B<execute_after_>I<dh_command>. Les deux cibles peuvent être utilisées pour "
+"la même I<dh_command>, et même si la commande est réécrite (comme décrit "
+"plus loin dans L</Réécriture d'une commande>)."
+
+#. type: textblock
+#: dh:52
+msgid ""
+"When these targets are defined, B<dh> will call the targets respectively "
+"before or after it would invoke I<dh_command> (or its override target)."
+msgstr ""
+"Quand ces cibles sont définies, B<dh> appellera les cibles respectivement "
+"avant ou après qu'il invoque I<dh_command> (ou sa cible réécrite)."
+
+#. type: =head2
+#: dh:55
+msgid "Overriding a command"
+msgstr "Réécriture d'une commande"
# type: textblock
#. type: textblock
-#: dh:28
-#, fuzzy
-#| 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 call that target. The override target can then run the command "
-#| "with additional options, or run entirely different commands instead. See "
-#| "examples below. (Note that to use this feature, you should Build-Depend "
-#| "on debhelper 7.0.50 or above.)"
+#: dh:57
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 "
@@ -1915,57 +4649,531 @@ msgid ""
"additional options, or run entirely different commands instead. See examples "
"below."
msgstr ""
-"Pour réécrire la commande I<dh_commande>, ajouter une cible appelée "
+"Pour réécrire la commande I<dh_commande>, ajoutez une cible appelée "
"B<override_>I<dh_commande> au fichier F<rules>. B<dh> exécutera ce bloc au "
"lieu d'exécuter I<dh_commande>, comme il l'aurait fait sinon. La commande "
"exécutée peut être la même commande avec des options supplémentaires ou une "
-"commande entièrement différente. Nota : pour utiliser cette possibilité, il "
-"est nécessaire d'ajouter une dépendance de construction (Build-Depends) sur "
-"la version 7.0.50 ou supérieure de debhelper."
+"commande entièrement différente. Consultez les exemples ci-dessous."
+
+#. type: =head2
+#: dh:63
+msgid "Architecture dependent/independent override and hook targets"
+msgstr ""
+"Cibles de réécriture et d'accroche dépendantes ou indépendantes de "
+"l'architecture"
+
+#. type: textblock
+#: dh:65
+#, fuzzy
+#| msgid ""
+#| "The override and hook targets can also be defined to run only when "
+#| "building architecture dependent or architecture independent packages. Use "
+#| "targets with names like B<override_>I<dh_command>B<-arch> and "
+#| "B<execute_after>I<dh_command>B<-indep>."
+msgid ""
+"The override and hook targets can also be defined to run only when building "
+"architecture dependent or architecture independent packages. Use targets "
+"with names like B<override_>I<dh_command>B<-arch> and "
+"B<execute_after_>I<dh_command>B<-indep>."
+msgstr ""
+"Les cibles de réécriture et d'accroche peuvent aussi être définies pour "
+"n'être exécutées que lors de la construction de paquets dépendants ou "
+"indépendants de l'architecture. Utilisez des cibles avec des noms comme "
+"B<override_>I<dh_commande>B<-arch> et B<execute_after>I<dh_command>B<-indep>."
+
+#. type: textblock
+#: dh:70
+msgid ""
+"This feature is available since debhelper 8.9.7 (for override targets) and "
+"12.8 (for hook targets)."
+msgstr ""
+"Cette fonctionnalité est disponible depuis debhelper 8.9.7 (pour les cibles "
+"de réécriture) et 12.8 pour les cibles d'accroche."
+
+#. type: =head2
+#: dh:73
+msgid "Completely empty targets"
+msgstr "Cibles complètement vides"
#. type: textblock
-#: dh:34
+#: dh:75
+#, fuzzy
+#| msgid ""
+#| "As a special optimization, B<dh> will skip a target if it is completely "
+#| "empty. This is mostly useful for override targets, where the command "
+#| "will simply be skipped without the overhead of invoking a dummy target."
+msgid ""
+"As a special optimization, B<dh> will skip a target if it is completely "
+"empty and does not depend on any other target. This is mostly useful for "
+"override targets, where the command will simply be skipped without the "
+"overhead of invoking a dummy target."
+msgstr ""
+"Comme optimisation particulière, B<dh> ignorera une cible si elle est "
+"complètement vide. C'est surtout utile pour les cibles réécrites où la "
+"commande sera simplement ignorée sans la charge de l'invocation d'une cible "
+"factice."
+
+#. type: textblock
+#: dh:80
+msgid "Note that the target has to be completely empty for this to work:"
+msgstr ""
+"Notez que la cible doit être complètement vide pour que cela fonctionne :"
+
+#. type: verbatim
+#: dh:82
+#, no-wrap
msgid ""
-"Override targets can also be defined to run only when building architecture "
-"dependent or architecture independent packages. Use targets with names like "
-"B<override_>I<dh_command>B<-arch> and B<override_>I<dh_command>B<-indep>. "
-"(Note that to use this feature, you should Build-Depend on debhelper 8.9.7 "
-"or above.)"
+" # Skip dh_bar - the good and optimized way\n"
+" # Some rationale for skipping dh_bar goes here\n"
+" override_dh_bar:\n"
+"\n"
msgstr ""
-"Les cibles de réécriture peuvent aussi être définies pour n'être exécutées "
-"que lors de la construction de paquets dépendants ou indépendants de "
-"l'architecture. Utilisez des cibles avec des noms comme "
-"B<override_>I<dh_commande>B<-arch> et B<override_>I<dh_commande>B<-indep>. "
-"Nota : pour utiliser cette possibilité, il est nécessaire d'ajouter une "
-"dépendance de construction (Build-Depends) sur la version 8.9.7 ou "
-"supérieure de debhelper."
+" # Ignorer dh_toto – la bonne façon optimisée\n"
+" # Mettre ici une raison pour ignorer dh_toto\n"
+" override_dh_toto:\n"
+"\n"
+
+#. type: verbatim
+#: dh:87
+#, no-wrap
+msgid ""
+" # Skip dh_foo - the slow way\n"
+" override_dh_foo:\n"
+" # Some rationale for skipping dh_foo goes here\n"
+" # (these comments causes a dummy target to be run)\n"
+"\n"
+msgstr ""
+" # Ignorer dh_titi – la façon lente\n"
+" override_dh_titi:\n"
+" # Mettre ici une raison pour ignorer dh_titi\n"
+" # (ces commentaires font qu'une cible factice est exécutée)\n"
+"\n"
+
+#. type: =head2
+#: dh:92
+msgid "Verifying targets are picked up by dh"
+msgstr "La vérification des cibles est récupérée par B<dh>"
+
+#. type: textblock
+#: dh:94
+msgid ""
+"As of debhelper 13.10, you can use L<dh_assistant(1)> to see which override "
+"and hook targets will be seen by B<dh>. Here is an example run of "
+"L<dh_assistant(1)> along with its output:"
+msgstr ""
+
+#. type: verbatim
+#: dh:98
+#, no-wrap
+msgid ""
+" $ dh_assistant detect-hook-targets\n"
+" {\n"
+" \"commands-not-in-path\": [\n"
+" \"dh_foo\"\n"
+" ],\n"
+" \"hook-targets\": [\n"
+" {\n"
+" \"command\": \"dh_strip_nondeterminism\",\n"
+" \"is-empty\": true,\n"
+" \"package-section-param\": null,\n"
+" \"target-name\": \"override_dh_strip_nondeterminism\"\n"
+" },\n"
+" {\n"
+" \"command\": \"dh_foo\",\n"
+" \"is-empty\": false,\n"
+" \"package-section-param\": \"-a\",\n"
+" \"target-name\": \"override_dh_foo-arch\"\n"
+" }\n"
+" ]\n"
+" }\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:119
+msgid ""
+"The B<commands-not-in-path> is useful for spotting mistakes in the hook "
+"target names. A non-empty value implies one of more hook targets are "
+"related to a command that is either not installed or no command with that "
+"name exists at all. It is generally worth double checking these."
+msgstr ""
+
+#. type: textblock
+#: dh:124
+msgid ""
+"Additionally, the B<is-empty> attribute for each hook target can be used for "
+"seeing whether a hook target triggers the L</Completely empty targets> "
+"optimization."
+msgstr ""
+
+#. type: textblock
+#: dh:127
+msgid ""
+"If you are interested in the other attributes, please read the "
+"L<dh_assistant(1)> for the details."
+msgstr ""
+
+#. type: =head3
+#: dh:130
+#, fuzzy
+#| msgid "Verifying targets are picked up by dh"
+msgid ""
+"Verifying targets are picked up by dh (when debhelper is older than 13.10)"
+msgstr "La vérification des cibles est récupérée par B<dh>"
+
+#. type: textblock
+#: dh:134
+#, fuzzy
+#| msgid ""
+#| "If you want to confirm that B<dh> has seen an override or a hook target, "
+#| "you can use the following command as an example:"
+msgid ""
+"On older versions of debhelper, you have to use B<dh> with B<--no-act>. You "
+"can use the following command as an example:"
+msgstr ""
+"Si vous voulez confirmer que B<dh> a vu une cible de réécriture ou "
+"d'accroche, vous pouvez utiliser la commande suivante comme exemple :"
+
+#. type: verbatim
+#: dh:137
+#, no-wrap
+msgid ""
+" $ dh binary --no-act | grep dh_install | head -n5\n"
+" dh_installdirs\n"
+" dh_install\n"
+" debian/rules execute_after_dh_install\n"
+" dh_installdocs\n"
+" dh_installchangelogs\n"
+"\n"
+msgstr ""
+" $ dh binary --no-act | grep dh_install | head -n5\n"
+" dh_installdirs\n"
+" dh_install\n"
+" debian/rules execute_after_dh_install\n"
+" dh_installdocs\n"
+" dh_installchangelogs\n"
+"\n"
+
+#. type: textblock
+#: dh:144
+msgid ""
+"The B<debian/rules execute_after_dh_install> in the output, which signals "
+"that B<dh> registered a B<execute_after_dh_install> target and would run it "
+"directly after L<dh_install(1)>."
+msgstr ""
+"Le B<debian/rules execute_after_dh_install> dans la sortie signale que B<dh> "
+"a enregistré une cible B<execute_after_dh_install> et devrait l'exécuter "
+"immédiatement après L<dh_install(1)>."
+
+#. type: textblock
+#: dh:148
+msgid ""
+"Note that L</Completely empty targets> will be omitted in the listing "
+"above. This makes it a bit harder to spot as you are looking for the "
+"omission of a command name. But otherwise, the principle remains the same."
+msgstr ""
+"Notez que les L</Cibles complètement vides> seront omises dans la liste ci-"
+"dessus. Cela rend un peu plus difficile le repérage lors de la recherche de "
+"l'omission d'un nom de commande. Mais autrement, le principe reste le même."
+
+#. type: =head2
+#: dh:152
+msgid "Caveats with hook targets and makefile conditionals"
+msgstr "Mises en garde sur les cibles d'accroche et les conditions de makefile"
+
+#. type: textblock
+#: dh:154
+msgid ""
+"If you choose to wrap a hook target in makefile conditionals, please be "
+"aware that B<dh> computes all the hook targets a head of time and caches the "
+"result for that run. Furthermore, the conditionals will be invoked again "
+"when B<dh> calls the hook target later and will assume the answer did not "
+"change."
+msgstr ""
+"Si vous choisissez d'envelopper une cible d'accroche dans des conditions de "
+"makefile, soyez conscient que B<dh> calcule toutes les cibles d'accroche à "
+"l'avance et met en cache le résultat pour cette exécution. En outre, les "
+"conditions seront de nouveau invoquées quand B<dh> appelle la cible "
+"d'accroche plus tard et supposera que la réponse n'a pas changé."
+
+#. type: textblock
+#: dh:160
+msgid ""
+"The parsing and caching I<often> happens before B<dh> knows whether it will "
+"build arch:any (-a) or/and arch:all (-i) packages, which can produce "
+"confusing results - especially when L<dh_listpackages(1)> is part of the "
+"conditional."
+msgstr ""
+"L'analyse et la mise en cache se produit B<souvent> avant que B<dh> ne sache "
+"s'il va construire des paquets arch:any (-a) ou/et arch:all (-i) ce qui peut "
+"produire des résultats déconcertants – particulièrement si "
+"L<dh_listpackages(1)> fait partie des conditions."
+
+#. type: textblock
+#: dh:165
+msgid ""
+"Most of the problems can be avoided by making the hook target unconditional "
+"and then have the \"body\" be partially or completely conditional. As an "
+"example:"
+msgstr ""
+"La majorité des problèmes peut être évitée en rendant la cible d'accroche "
+"inconditionnelle et ensuite en mettant le « corps » partiellement ou "
+"complètement conditionnel. Par exemple :"
+
+#. type: verbatim
+#: dh:169
+#, no-wrap
+msgid ""
+" # SIMPLE: It is well-defined what happens. The hook target\n"
+" # is always considered. The \"maybe run this\" bit is\n"
+" # conditional but dh_foo is definitely skipped.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, \"maybe run this\"\n"
+" # is skipped.\n"
+" override_dh_foo:\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+" # SIMPLE : ce qui arrive est bien défini. La cible d'accroche\n"
+" # est toujours prise en compte. La partie « maybe run this » est\n"
+" # conditionnelle mais dh_toto est définitivement oublié.\n"
+" #\n"
+" # Note : La condition est évaluée « deux fois » où elle influence\n"
+" # ce qui arrive. Une fois quand dh vérifie quelles cibles\n"
+" # d'accroche existent et une fois quand la cible d'accroche\n"
+" # override_dh_toto est exécutée. Si *une* fois, la sortie est\n"
+" # I<faux>, « maybe run this » est ignoré.\n"
+" override_dh_toto:\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+
+#. type: verbatim
+#: dh:183
+#, no-wrap
+msgid ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The \"maybe run this\" bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar:\n"
+" : # Dummy command to force the target to always be run\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+" # SIMPLE : cela est aussi bien défini. La cible d'accroche est\n"
+" # toujours exécutée et dh_titi est ignoré. La partie « may be\n"
+" # run this » est conditionnelle comme on pourrait s'y attendre.\n"
+" #\n"
+" # Note : La condition est encore évaluée plusieurs fois (dans\n"
+" # différent processus chaque fois). Néanmoins, seule l'évaluation\n"
+" # qui survient quand la cible d'accroche est exécutée influence ce\n"
+" # qui arrive.\n"
+" override_dh_titi:\n"
+" : # Commande factice pour toujours forcer l'exécution de la cible\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+
+#. type: verbatim
+#: dh:198
+#, no-wrap
+msgid ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" # Here, either dh_baz is run normally OR \"maybe run this\" is run\n"
+" # instead.\n"
+" #\n"
+" # And it gets even more complicated to reason about if dh needs to\n"
+" # recurse into debian/rules because you have an \"explicit\"\n"
+" # standard target (e.g. a \"build-arch:\" target separate from \"%:\").\n"
+" ifneq (...)\n"
+" override_dh_baz:\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+" # COMPLIQUÉ : Ce cas peut ne pas être trivial et présenter des\n"
+" # difficultés. À utiliser à vos risques et périls si dh_listpackages\n"
+" # est dans la condition.\n"
+" #\n"
+" # Ici, soit dh_truc est exécuté normalement OU « maybe run this »\n"
+" # est exécuté à sa place.\n"
+" #\n"
+" # Cela devient encore plus compliqué à résoudre si dh a besoin d'itérer\n"
+" # dans debian/rules parce qu'il y a une cible normale « explicite »\n"
+" # (par exemple une cible « build-arch: » séparée de « %: »).\n"
+" ifneq (...)\n"
+" override_dh_truc:\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+
+#. type: textblock
+#: dh:212
+msgid ""
+"These recipes are also relevant for conditional dependency targets, which "
+"are often seen in a variant of the following example:"
+msgstr ""
+"Ces recettes sont aussi pertinentes pour des cibles de dépendance "
+"conditionnelles qui sont souvent illustrées par une variante de l'exemple "
+"suivant :"
+
+#. type: verbatim
+#: dh:215
+#, no-wrap
+msgid ""
+" COND_TASKS =\n"
+" ifneq (...)\n"
+" COND_TASKS += maybe-run-this\n"
+" endif\n"
+" ...\n"
+"\n"
+msgstr ""
+" COND_TASKS =\n"
+" ifneq (...)\n"
+" COND_TASKS += maybe-run-this\n"
+" endif\n"
+" ...\n"
+"\n"
+
+#. type: verbatim
+#: dh:221
+#, no-wrap
+msgid ""
+" maybe-run-this:\n"
+" ...\n"
+"\n"
+msgstr ""
+" maybe-run-this:\n"
+" ...\n"
+"\n"
+
+#. type: verbatim
+#: dh:224
+#, no-wrap
+msgid ""
+" # SIMPLE: It is well-defined what happens. Either the\n"
+" # $(COND_TASKS) are skipped or run.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, $(COND_TASKS)\n"
+" # is skipped.\n"
+" override_dh_foo: $(COND_TASKS)\n"
+"\n"
+msgstr ""
+" # SIMPLE : ce qui arrive est bien défini. Soit les\n"
+" # $(COND_TASKS) sont ignorées soit elles sont exécutées.\n"
+" #\n"
+" # Note : La condition est évaluée « deux fois » où elle influence\n"
+" # ce qui arrive. Une fois quand dh vérifie quelles cibles\n"
+" # d'accroche existent et une fois quand la cible d'accroche\n"
+" # override_dh_toto est exécutée. Si *une* fois, la sortie est\n"
+" # # I<faux>, $(COND_TASKS) sont ignorées.\n"
+" override_dh_toto: $(COND_TASKS)\n"
+"\n"
+
+#. type: verbatim
+#: dh:235
+#, no-wrap
+msgid ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The $(COND_TASKS) bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar: $(COND_TASKS)\n"
+" : # Dummy command to force the target to always be run\n"
+"\n"
+msgstr ""
+" # SIMPLE : ceci est aussi bien défini. La cible d'accroche est\n"
+" # toujours exécutée et dh_titi est ignoré. La partie $(COND_TASKS)\n"
+" # est conditionnelle comme on pourrait s'y attendre.\n"
+" #\n"
+" # Note : La condition est encore évaluée plusieurs fois (dans\n"
+" # différent processus chaque fois). Néanmoins, seule l'évaluation\n"
+" # qui survient quand la cible d'accroche est exécutée influence ce\n"
+" # qui arrive.\n"
+" override_dh_titi: $(COND_TASKS)\n"
+" : # Commande factice pour toujours forcer l'exécution de la cible\n"
+"\n"
+
+#. type: verbatim
+#: dh:246
+#, no-wrap
+msgid ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" ifneq (...)\n"
+" override_dh_baz: $(COND_TASKS)\n"
+" endif\n"
+"\n"
+msgstr ""
+" # COMPLIQUÉ : ce cas peut ne pas être trivial et présenter des\n"
+" # difficultés. À utiliser à vos risques et périls si dh_listpackages\n"
+" # est dans la condition.\n"
+" #\n"
+" ifneq (...)\n"
+" override_dh_truc: $(COND_TASKS)\n"
+" endif\n"
+"\n"
+
+#. type: textblock
+#: dh:254
+msgid ""
+"When in doubt, pick the relevant B<SIMPLE> case in the examples above that "
+"match your need."
+msgstr ""
+"En cas de doute, choisissez le cas B<SIMPLE> qui correspond à vos besoins "
+"parmi les exemples ci-dessus."
# type: =head1
#. type: =head1
-#: dh:41 dh_auto_build:28 dh_auto_clean:30 dh_auto_configure:31
-#: dh_auto_install:43 dh_auto_test:31 dh_bugfiles:50 dh_builddeb:24
-#: dh_clean:41 dh_compress:48 dh_fixperms:32 dh_gconf:39 dh_gencontrol:26
-#: dh_icons:30 dh_install:59 dh_installcatalogs:49 dh_installchangelogs:59
-#: dh_installcron:40 dh_installdebconf:61 dh_installdirs:31 dh_installdocs:71
-#: dh_installemacsen:53 dh_installexamples:32 dh_installifupdown:39
-#: dh_installinfo:31 dh_installinit:59 dh_installlogcheck:42
-#: dh_installlogrotate:22 dh_installman:61 dh_installmanpages:40
-#: dh_installmenu:41 dh_installmodules:38 dh_installpam:31 dh_installppp:35
-#: dh_installudev:35 dh_installwm:34 dh_link:53 dh_makeshlibs:43 dh_md5sums:28
-#: dh_movefiles:38 dh_perl:31 dh_prep:26 dh_shlibdeps:26 dh_strip:35
-#: dh_testdir:23 dh_usrlocal:39
+#: dh:257 dh_auto_build:32 dh_auto_clean:33 dh_auto_configure:35
+#: dh_auto_install:52 dh_auto_test:34 dh_bugfiles:53 dh_builddeb:34 dh_clean:49
+#: dh_compress:52 dh_dwz:26 dh_fixperms:40 dh_gencontrol:38 dh_icons:33
+#: dh_install:69 dh_installcatalogs:56 dh_installchangelogs:77
+#: dh_installcron:45 dh_installdeb:107 dh_installdebconf:64 dh_installdirs:45
+#: dh_installdocs:100 dh_installemacsen:56 dh_installexamples:48
+#: dh_installifupdown:42 dh_installinfo:41 dh_installinit:77
+#: dh_installinitramfs:43 dh_installlogcheck:45 dh_installlogrotate:25
+#: dh_installman:86 dh_installmanpages:43 dh_installmenu:44
+#: dh_installmodules:41 dh_installpam:38 dh_installppp:38 dh_installudev:34
+#: dh_installwm:41 dh_link:69 dh_makeshlibs:67 dh_md5sums:31 dh_movefiles:41
+#: dh_perl:35 dh_prep:29 dh_shlibdeps:30 dh_strip:38 dh_testdir:26
+#: dh_usrlocal:50 dh_systemd_enable:82 dh_systemd_start:33
msgid "OPTIONS"
msgstr "OPTIONS"
# type: =item
#. type: =item
-#: dh:45
+#: dh:261
msgid "B<--with> I<addon>[B<,>I<addon> ...]"
msgstr "B<--with> I<rajout>[B<,>I<rajout> ...]"
# type: textblock
#. type: textblock
-#: dh:47
+#: dh:263
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 "
@@ -1981,14 +5189,66 @@ msgstr ""
"Consulter le fichier F<PROGRAMMING> pour obtenir des informations à propos "
"de l'interface de ces rajouts."
+#. type: textblock
+#: dh:270
+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>. 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 "
+"bootstrapping)."
+msgstr ""
+"Une relation B<Build-Depends> sur le paquet B<dh-sequence->I<rajout> "
+"implique B<--with> I<rajout>. Cela évite un B<--with> explicite dans "
+"F<debian/rules> qui dupliquerait ce qui est écrit dans les dépendances de "
+"construction dans F<debian/control>. La relation peut (depuis 12.5) être "
+"rendue optionnelle au moyen de build-profiles par exemple. Cela permet de "
+"désactiver facilement un rajout qui est utile uniquement avec certains "
+"profils (par exemple pour faciliter l'amorçage)."
+
+#. type: textblock
+#: dh:279
+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 ""
+"Depuis debhelper 12.5, les I<rajout>s peuvent aussi être activés en mode "
+"« B<indep> seulement » (au moyen de B<Build-Depends-Indep>) ou en mode "
+"« B<arch> seulement » (au moyen de B<Build-Depends-Arch>). Ces rajouts sont "
+"seulement actifs dans la séquence particulière (par exemple B<binary-indep>) "
+"qui simplifie la gestion des dépendances pour les constructions croisées."
+
+#. type: textblock
+#: dh:285
+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 ""
+"Veuillez noter que les I<rajout>s activés avec B<Build-Depends-Indep> ou "
+"B<Build-Depends-Arch> sont soumis à des contraintes supplémentaires pour "
+"s'assurer que le résultat est déterministe même quand le rajout n'est pas "
+"disponible (par exemple pendant le nettoyage). Cela implique que certains "
+"rajouts sont incompatibles avec ces restrictions et ne peuvent être utilisés "
+"qu'avec B<Build-Depends> (ou manuellement avec F<debian/rules>). "
+"Actuellement, ces rajouts peuvent seulement ajouter des commandes à des "
+"séquences."
+
# type: =item
#. type: =item
-#: dh:54
+#: dh:293
msgid "B<--without> I<addon>"
msgstr "B<--without> I<rajout>"
#. type: textblock
-#: dh:56
+#: dh:295
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, "
@@ -2000,12 +5260,22 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh:62
+#: dh:301
msgid "List all available addons."
msgstr "Liste tous les rajouts disponibles."
#. type: textblock
-#: dh:66
+#: dh:303
+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 ""
+"Lorsqu'il est appelé uniquement avec cette option, B<dh> peut être invoqué "
+"depuis n'importe quel répertoire (c'est-à-dire qu'il ne nécessite l'accès à "
+"aucun fichier d'un paquet source)."
+
+#. type: textblock
+#: dh:309
msgid ""
"Prints commands that would run for a given sequence, but does not run them."
msgstr ""
@@ -2013,15 +5283,18 @@ msgstr ""
"les exécuter."
#. type: textblock
-#: dh:68
+#: dh:311
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 ""
+"Veuillez remarquer que B<dh> élimine les commandes en cours lorsqu'il sait "
+"qu'elles ne font rien. Avec l'option B<--no-act>, la liste complète des "
+"commandes dans une séquence est affichée."
# type: textblock
#. type: textblock
-#: dh:73
+#: dh:316
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 "
@@ -2029,17 +5302,18 @@ msgid ""
msgstr ""
"Les autres options fournies à B<dh> sont passées en paramètre à chaque "
"commande exécutée. Cela est utile tant pour les options comme B<-v>, B<-X> "
-"ou B<-N> que pour des options plus spécialisées. "
+"ou B<-N> que pour des options plus spécialisées."
# type: =head1
#. type: =head1
-#: dh:77 dh_installdocs:110 dh_link:75 dh_makeshlibs:97 dh_shlibdeps:70
+#: dh:320 dh_install:332 dh_installdocs:191 dh_installman:117 dh_link:91
+#: dh_makeshlibs:185 dh_shlibdeps:78
msgid "EXAMPLES"
msgstr "EXEMPLES"
# type: textblock
#. type: textblock
-#: dh:79
+#: dh:322
msgid ""
"To see what commands are included in a sequence, without actually doing "
"anything:"
@@ -2049,7 +5323,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh:82
+#: dh:325
#, no-wrap
msgid ""
"\tdh binary-arch --no-act\n"
@@ -2060,17 +5334,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh:84
+#: dh:327
msgid ""
"This is a very simple rules file, for packages where the default sequences "
"of commands work with no additional options."
msgstr ""
-"C'est un fichier rules très simple, pour les paquets où les séquences de "
+"C'est un fichier F<rules> très simple, pour les paquets où les séquences de "
"commandes par défaut fonctionnent sans aucune option particulière."
# type: verbatim
#. type: verbatim
-#: dh:87 dh:108 dh:121
+#: dh:330 dh:337 dh:351 dh:364 dh:375 dh:433 dh:444
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2085,38 +5359,23 @@ msgstr ""
# type: verbatim
#. type: textblock
-#: dh:91
+#: dh:334
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 ""
"Il est fréquent de vouloir passer une option à une commande debhelper. Le "
-"moyen le plus simple de le faire consiste à surcharger la commande par "
-"défaut par celle que vous désirez."
-
-# type: verbatim
-#. type: verbatim
-#: dh:94 dh:179 dh:190
-#, 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"
+"moyen le plus simple de le faire consiste à ajouter une cible pour "
+"surcharger la commande."
# type: verbatim
#. type: verbatim
-#: dh:98
+#: dh:341
#, no-wrap
msgid ""
"\toverride_dh_strip:\n"
"\t\tdh_strip -Xfoo\n"
-"\t\n"
+"\n"
msgstr ""
"\toverride_dh_strip:\n"
"\t\tdh_strip -Xtoto\n"
@@ -2124,7 +5383,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh:101
+#: dh:344
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -2137,7 +5396,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh:104
+#: dh:347
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 "
@@ -2150,7 +5409,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh:112
+#: dh:355
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -2163,7 +5422,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh:115
+#: dh:358
#, no-wrap
msgid ""
"\toverride_dh_auto_build:\n"
@@ -2176,7 +5435,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh:118
+#: dh:361
msgid ""
"Another common case is wanting to do something manually before or after a "
"particular debhelper command is run."
@@ -2186,63 +5445,60 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh:125
+#: dh:368
#, no-wrap
msgid ""
-"\toverride_dh_fixperms:\n"
-"\t\tdh_fixperms\n"
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
-"\toverride_dh_fixperms:\n"
-"\t\tdh_fixperms\n"
+"\t# L'exemple suppose debhelper/12.8 et compat 10+\n"
+"\texecute_after_dh_fixperms:\n"
"\t\tchmod 4755 debian/truc/usr/bin/truc\n"
"\n"
#. type: textblock
-#: dh:129
+#: dh:372
msgid ""
-"If your package uses autotools and you want to freshen F<config.sub> and "
-"F<config.guess> with newer versions from the B<autotools-dev> package at "
-"build time, you can use some commands provided in B<autotools-dev> that "
-"automate it, like this."
+"If you are on an older debhelper or compatibility level, the above example "
+"would have to be written as."
msgstr ""
-"Si le paquet utilise « autotools » et que vous voulez rafraîchir les "
-"F<config.sub> et les F<config.guess> avec les nouvelles versions du paquet "
-"B<autotools-dev> lors de la compilation, il est possible d'utiliser "
-"certaines commandes fournies dans B<autotools-dev> afin d'automatiser cette "
-"tâche, comme ci-dessous :"
+"Si vous avez une version de debhelper plus ancienne ou un niveau de "
+"compatibilité inférieur, l'exemple ci-dessus devrait être écrit de cette "
+"manière."
# type: verbatim
#. type: verbatim
-#: dh:134
+#: dh:379
#, no-wrap
msgid ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@ --with autotools_dev\n"
+"\t# Older debhelper versions or using compat 9 or lower.\n"
+"\toverride_dh_fixperms:\n"
+"\t\tdh_fixperms\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@ --with autotools_dev\n"
+"\t# Versions anciennes de debhelper ou avec un niveau\n"
+"\t# de compatibilité 9 ou moins.\n"
+"\toverride_dh_fixperms:\n"
+"\t\tdh_fixperms\n"
+"\t\tchmod 4755 debian/truc/usr/bin/truc\n"
"\n"
#. type: textblock
-#: dh:138
+#: dh:384
msgid ""
"Python tools are not run by dh by default, due to the continual change in "
-"that area. (Before compatibility level v9, dh does run B<dh_pysupport>.) "
-"Here is how to use B<dh_python2>."
+"that area. Here is how to use B<dh_python2>."
msgstr ""
"Les outils Python ne sont pas exécutés par défaut par B<dh>, à cause des "
-"modifications incessantes dans ce domaine (avant le niveau de "
-"compatibilité 9, B<dh> exécute B<dh_pysupport>). Voici comment utiliser "
+"modifications incessantes dans ce domaine. Voici comment utiliser "
"B<dh_python2>."
# type: verbatim
#. type: verbatim
-#: dh:142
+#: dh:387
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2257,18 +5513,18 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh:146
+#: dh:391
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 ""
"Voici comment forcer l'utilisation du processus de construction B<Module::"
-"Build>, propre à Perl, qui pourra être indispensable si debhelper détectait, "
-"à tort, que le paquet utilise MakeMaker."
+"Build>, propre à Perl, qui pourrait être indispensable si debhelper "
+"détectait, à tort, que le paquet utilise MakeMaker."
# type: verbatim
#. type: verbatim
-#: dh:150
+#: dh:395
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2283,7 +5539,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh:154
+#: dh:399
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 "
@@ -2294,7 +5550,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh:158
+#: dh:403
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2308,18 +5564,18 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:162
+#: dh:407
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 ""
"Voici un exemple d'utilisation des commandes B<dh_auto_>I<*> pour réaliser "
-"la construction dans un sous-répertoire, qui sera ensuite supprimé lors du "
-"B<clean> :"
+"la construction dans un sous-répertoire qui sera ensuite supprimé lors du "
+"B<clean> :"
# type: verbatim
#. type: verbatim
-#: dh:165
+#: dh:410
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2333,17 +5589,18 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:169
+#: dh:414
msgid ""
-"If your package can be built in parallel, you can support parallel building "
-"as follows. Then B<dpkg-buildpackage -j> will work."
+"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 ""
-"Si le paquet peut être construit en parallèle, vous pouvez activer le "
-"parallélisme comme ci-dessous. Alors B<dpkg-buildpackage -j> fonctionnera."
+"Si le paquet peut être construit en parallèle, veuillez utiliser le niveau "
+"de compatibilité 10 ou passer l'option B<--parallel> à B<dh>. Dans ce cas "
+"B<dpkg-buildpackage -j> fonctionnera."
# type: verbatim
#. type: verbatim
-#: dh:172
+#: dh:417
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2357,7 +5614,32 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:176
+#: dh:421
+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 ""
+"Si votre paquet ne peut être construit de manière fiable en utilisant "
+"plusieurs processus légers, veuillez passer l'option B<--no-parallel> à dh "
+"(ou la commande adéquate B<dh_auto_>I<*>) :"
+
+# type: verbatim
+#. type: verbatim
+#: dh:426
+#, no-wrap
+msgid ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --no-parallel\n"
+"\n"
+msgstr ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --no-parallel\n"
+"\n"
+
+#. type: textblock
+#: dh:430
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."
@@ -2367,7 +5649,7 @@ msgstr ""
"voulez pas lancer."
#. type: verbatim
-#: dh:183
+#: dh:437
#, no-wrap
msgid ""
"\t# Commands not to run:\n"
@@ -2379,7 +5661,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:186
+#: dh:440
msgid ""
"A long build process for a separate documentation package can be separated "
"out using architecture independent overrides. These will be skipped when "
@@ -2392,7 +5674,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh:194
+#: dh:448
#, no-wrap
msgid ""
"\toverride_dh_auto_build-indep:\n"
@@ -2404,7 +5686,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:197
+#: dh:451
#, no-wrap
msgid ""
"\t# No tests needed for docs\n"
@@ -2417,7 +5699,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh:200
+#: dh:454
#, no-wrap
msgid ""
"\toverride_dh_auto_install-indep:\n"
@@ -2429,7 +5711,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:203
+#: dh:457
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 "
@@ -2442,219 +5724,303 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh:207
+#: dh:461
#, no-wrap
msgid ""
-"\toverride_dh_fixperms-arch:\n"
-"\t\tdh_fixperms\n"
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms-arch:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
-"\toverride_dh_fixperms-arch:\n"
-"\t\tdh_fixperms\n"
+"\t# L'exemple suppose debhelper/12.8 et compat 10+\n"
+"\texecute_after_dh_fixperms-arch:\n"
"\t\tchmod 4755 debian/truc/usr/bin/truc\n"
"\n"
+# type: =head1
#. type: =head1
-#: dh:211
-msgid "INTERNALS"
-msgstr "FONCTIONNEMENT INTERNE"
+#: dh:465
+#, fuzzy
+#| msgid "DEBHELPER COMMANDS"
+msgid "DEBHELPER PROVIDED DH ADDONS"
+msgstr "COMMANDES DE DEBHELPER"
#. type: textblock
-#: dh:213
+#: dh:467
msgid ""
-"If you're curious about B<dh>'s internals, here's how it works under the "
-"hood."
+"The primary purpose of B<dh> addons is to provide easy integration with "
+"third-party provided features for debhelper. However, debhelper itself also "
+"provide a few sequences that can be useful in some cases. These are "
+"documented in this list:"
+msgstr ""
+
+#. type: =item
+#: dh:474
+msgid "build-stamp"
msgstr ""
-"Si vous êtes curieux de connaître le fonctionnement interne de B<dh>, voici "
-"ce qu'il y a sous le capot."
-# type: textblock
#. type: textblock
-#: dh:215
+#: dh:476
msgid ""
-"Each debhelper command will record when it's successfully run in F<debian/"
-"package.debhelper.log>. (Which B<dh_clean> deletes.) So B<dh> can tell which "
-"commands have already been run, for which packages, and skip running those "
-"commands again."
+"A special addon for controlling whether B<dh> (in compat 10 or later) will "
+"create stamp files to tell whether the build target has been run "
+"successfully. See L</INTERNALS> for more details."
msgstr ""
-"Chaque commande debhelper, qui s'accomplit correctement, est journalisée "
-"dans F<debian/package.debhelper.log> (que B<dh_clean> supprimera). Ainsi "
-"B<dh> peut déterminer quelles commandes ont déjà été exécutées et pour quels "
-"paquets. De cette manière il pourra passer outre l'exécution de ces "
-"commandes ultérieurement."
-# type: textblock
#. type: textblock
-#: dh:220
+#: dh:480
+#, fuzzy
+#| msgid "The previous behaviour can restored by using B<--with build-stamp>"
msgid ""
-"Each time B<dh> is run, 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."
+"This addon is active by default but can disabled by using B<dh $@ --without "
+"build-stamp>"
+msgstr ""
+"Le comportement précédent peut être retrouvé en utilisant B<--with build-"
+"stamp>"
+
+#. type: =item
+#: dh:483
+msgid "dwz (obsolete)"
msgstr ""
-"Chaque fois que B<dh> est exécuté, il examine le journal et recherche la "
-"dernière commande exécutée dans la séquence indiquée. Puis il exécute la "
-"commande suivante dans cette séquence. Les options B<--until>, B<--before>, "
-"B<--after> et B<--remaining> permettent de modifier ce comportement."
#. type: textblock
-#: dh:225
+#: dh:485
msgid ""
-"A sequence can also run dependent targets in debian/rules. For example, the "
-"\"binary\" sequence runs the \"install\" target."
+"Adds L<dh_dwz(1)> to the sequence in compat level 11 or below. Obsolete in "
+"compat 12 or later."
+msgstr ""
+
+#. type: =item
+#: dh:488
+msgid "elf-tools"
msgstr ""
-"Une suite peut aussi exécuter des cibles dépendantes dans F<debian/rules>. "
-"Par exemple, la suite « binary » exécute la cible « install »."
#. type: textblock
-#: dh:228
+#: dh:490
msgid ""
-"B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass "
-"information through to debhelper commands that are run inside override "
-"targets. The contents (and indeed, existence) of this environment variable, "
-"as the name might suggest, is subject to change at any time."
+"This addon adds tools related to ELF files to the sequence such as "
+"L<dh_strip(1)> and L<dh_shlibdeps(1)>"
msgstr ""
-"B<dh> utilise la variable d'environnement B<DH_INTERNAL_OPTIONS> pour "
-"transmettre des informations aux commandes debhelper exécutées au sein des "
-"blocs surchargés. Le contenu (et l'existence même) de cette variable "
-"d'environnement, comme son nom l'indique, est sujet à des modifications "
-"permanentes."
-# type: textblock
#. type: textblock
-#: dh:233
+#: dh:493
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 "
-"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."
+"This addon is I<conditionally> active by default for architecture specific "
+"packages - that is, it is skipped for arch:all packages. In the special "
+"case where you need these tools to work on arch:all packages, you can use "
+"B<--with elf-tools> to activate it unconditionally."
msgstr ""
-"Les commandes des séquences B<build-indep>, B<install-indep> et B<binary-"
-"indep> sont appelées avec l'option B<-i> pour être certain qu'elles ne "
-"s'accompliront que sur des paquets indépendants de l'architecture. "
-"Symétriquement les commandes des séquences B<build-arch>, B<install-arch> et "
-"B<binary-arch> sont appelées avec l'option B<-a> pour être certain qu'elles "
-"ne s'accompliront que sur des paquets dépendants de l'architecture."
-#. type: =head1
-#: dh:239
-msgid "DEPRECATED OPTIONS"
-msgstr "OPTIONS OBSOLÈTES"
+#. type: =item
+#: dh:499
+msgid "installinitramfs (obsolete)"
+msgstr ""
#. type: textblock
-#: dh:241
+#: dh:501
msgid ""
-"The following options are deprecated. It's much better to use override "
-"targets instead."
+"Adds L<dh_installinitramfs(1)> to the sequence in compat level 11 or below. "
+"Obsolete in compat 12 or later."
msgstr ""
-"Les options suivantes sont obsolètes. Il vaut mieux utiliser les cibles de "
-"réécritures à la place."
-# type: =item
#. type: =item
-#: dh:246
-msgid "B<--until> I<cmd>"
-msgstr "B<--until> I<commande>"
+#: dh:504
+msgid "root-sequence (internal)"
+msgstr ""
-# type: textblock
#. type: textblock
-#: dh:248
-msgid "Run commands in the sequence until and including I<cmd>, then stop."
+#: dh:506
+msgid "This is reserved for internal usage."
msgstr ""
-"Exécute les commandes de la suite jusqu'à la I<commande> indiquée, l'exécute "
-"puis s'arrête."
-# type: =item
#. type: =item
-#: dh:250
-msgid "B<--before> I<cmd>"
-msgstr "B<--before> I<commande>"
+#: dh:508
+msgid "single-binary"
+msgstr ""
-# type: textblock
#. type: textblock
-#: dh:252
-msgid "Run commands in the sequence before I<cmd>, then stop."
+#: dh:510
+msgid ""
+"A special-purpose addon that makes debhelper run in \"single binary\" mode."
msgstr ""
-"Exécute les commandes de la suite situées avant la I<commande> indiquée puis "
-"s'arrête."
-# type: =item
-#. type: =item
-#: dh:254
-msgid "B<--after> I<cmd>"
-msgstr "B<--after> I<commande>"
+#. type: textblock
+#: dh:512
+msgid ""
+"When active, it will pass B<< --destdir=debian/I<package>/ >> to "
+"L<dh_auto_install(1)>. This makes every file \"installed\" by the upstream "
+"build system part of the (only) binary package by default without having to "
+"use other helpers such as L<dh_install(1)>."
+msgstr ""
-# type: textblock
#. type: textblock
-#: dh:256
-msgid "Run commands in the sequence that come after I<cmd>."
+#: dh:517
+msgid ""
+"The addon will refuse to activate when the source package lists 2 or more "
+"binary packages in F<debian/control> as a precaution."
+msgstr ""
+
+#. type: textblock
+#: dh:520
+msgid ""
+"Before compat 15. this behaviour was the default when there was only a "
+"single binary package listed in F<debian/control>. In compat 15 and later, "
+"this addon must explicitly be activated for this feature to work."
+msgstr ""
+
+#. type: textblock
+#: dh:524
+msgid ""
+"The rationale for requiring this as an explicit choice is that if it is "
+"implicit then debhelper will silently change behaviour on adding a new "
+"binary package. This has caused many RC bugs when maintainers renamed a "
+"binary and added transitional packages with the intention of supporting "
+"seamless upgrades. The result would often be two empty binary packages that "
+"were uploaded to archive with users frustrated as their \"upgrade\" removed "
+"their programs."
msgstr ""
-"Exécute les commandes de la suite situées après la I<commande> indiquée."
-# type: =item
#. type: =item
-#: dh:258
-msgid "B<--remaining>"
-msgstr "B<--remaining>"
+#: dh:532
+msgid "systemd (obsolete)"
+msgstr ""
+
+#. type: textblock
+#: dh:534
+msgid ""
+"Adds L<dh_systemd_enable(1)> and L<dh_systemd_start(1)> to the sequence in "
+"compat level 10 or below. Obsolete in compat 11 or later."
+msgstr ""
+
+#. type: =head1
+#: dh:539
+msgid "INTERNALS"
+msgstr "FONCTIONNEMENT INTERNE"
+
+#. type: textblock
+#: dh:541
+msgid ""
+"If you're curious about B<dh>'s internals, here's how it works under the "
+"hood."
+msgstr ""
+"Si vous êtes curieux de connaître le fonctionnement interne de B<dh>, voici "
+"ce qu'il y a sous le capot."
+
+#. type: textblock
+#: dh:543
+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 "
+"possible to avoid the stamp file by passing B<--without=build-stamp> to "
+"B<dh>. This makes \"no clean\" builds behave more like what some people "
+"expect at the expense of possibly running the build and test twice (the "
+"second time as root or under L<fakeroot(1)>)."
+msgstr ""
+"Dans les niveaux de compatibilité 10 (ou supérieurs), B<dh> crée un fichier "
+"F<debian/debhelper-build-stamp> après la construction pour ne pas la "
+"refaire. Il est possible d'éviter la création de ce fichier en passant "
+"l'argument B<--without=build-stamp> à B<dh>. Cela rend le comportement des "
+"construction « no clean » plus cohérent avec l'usage courant au détriment de "
+"possiblement effectuer la construction et le test deux fois (la seconde en "
+"tant que « root » ou avec L<fakeroot(1)>)."
+
+#. type: textblock
+#: dh:551
+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 "
+"been run for. These log files are then removed once the override target is "
+"complete."
+msgstr ""
+"À l'intérieur d'une cible de réécriture, les commandes B<dh_*> écrivent dans "
+"un journal F<debian/paquet.debhelper.log> pour savoir quelle commande a été "
+"exécutée pour quel paquet. Ces fichiers journaux seront supprimés une fois "
+"la cible de réécriture terminée."
# type: textblock
#. type: textblock
-#: dh:260
-msgid "Run all commands in the sequence that have yet to be run."
+#: dh:556
+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> "
+"deletes.) So B<dh> can tell which commands have already been run, for which "
+"packages, and skip running those commands again."
msgstr ""
-"Exécute toutes les commandes de la suite qui n'ont pas encore été exécutées."
+"Dans les niveaux de compatibilité 9 et précédents, chaque commande "
+"debhelper, qui s'accomplit correctement, est journalisée dans F<debian/"
+"package.debhelper.log> (que B<dh_clean> supprimera). Ainsi B<dh> peut "
+"déterminer quelles commandes ont déjà été exécutées et pour quels paquets. "
+"De cette manière il pourra passer outre l'exécution de ces commandes "
+"ultérieurement."
# type: textblock
#. type: textblock
-#: dh:264
+#: dh:561
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."
+"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."
msgstr ""
-"Dans les options ci-dessus, I<commande> peut être soit le nom complet de la "
-"commande debhelper, soit une sous-chaîne de ce nom. B<dh> cherchera d'abord, "
-"dans la séquence, une commande portant le nom exact pour éviter toute "
-"ambiguïté. Si plusieurs commandes correspondent à la sous-chaîne la dernière "
-"de la séquence sera prise en compte."
+"Chaque fois que B<dh> est exécuté (en v9 ou précédente), il examine le "
+"journal et recherche la dernière commande exécutée dans la séquence "
+"indiquée. Puis il exécute la commande suivante dans cette séquence."
+
+#. type: textblock
+#: dh:565
+msgid ""
+"A sequence can also run dependent targets in debian/rules. For example, the "
+"\"binary\" sequence runs the \"install\" target."
+msgstr ""
+"Une suite peut aussi exécuter des cibles dépendantes dans F<debian/rules>. "
+"Par exemple, la suite « binary » exécute la cible « install »."
+
+#. type: textblock
+#: dh:568
+msgid ""
+"B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass "
+"information through to debhelper commands that are run inside override "
+"targets. The contents (and indeed, existence) of this environment variable, "
+"as the name might suggest, is subject to change at any time."
+msgstr ""
+"B<dh> utilise la variable d'environnement B<DH_INTERNAL_OPTIONS> pour "
+"transmettre des informations aux commandes debhelper exécutées au sein des "
+"blocs surchargés. Le contenu (et l'existence même) de cette variable "
+"d'environnement, comme son nom l'indique, est sujet à des modifications "
+"permanentes."
# type: textblock
#. type: textblock
-#: dh:974 dh_auto_build:49 dh_auto_clean:52 dh_auto_configure:54
-#: dh_auto_install:94 dh_auto_test:65 dh_builddeb:126 dh_clean:149
-#: dh_compress:212 dh_fixperms:133 dh_gconf:103 dh_gencontrol:80
-#: dh_install:262 dh_installcatalogs:124 dh_installchangelogs:243
-#: dh_installcron:81 dh_installdeb:144 dh_installdebconf:130 dh_installdirs:90
-#: dh_installdocs:339 dh_installexamples:110 dh_installifupdown:73
-#: dh_installinfo:79 dh_installinit:326 dh_installlogcheck:82
-#: dh_installlogrotate:54 dh_installman:265 dh_installmanpages:199
-#: dh_installmime:65 dh_installmodules:117 dh_installpam:63 dh_installppp:69
-#: dh_installudev:119 dh_installwm:112 dh_installxfonts:91 dh_link:230
-#: dh_listpackages:32 dh_makeshlibs:266 dh_md5sums:92 dh_movefiles:172
-#: dh_perl:154 dh_prep:62 dh_strip:244 dh_suidregister:119 dh_testdir:55
-#: dh_testroot:29 dh_undocumented:30 dh_usrlocal:118
-msgid "L<debhelper(7)>"
-msgstr "L<debhelper(7)>"
+#: dh:573
+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 "
+"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."
+msgstr ""
+"Les commandes des séquences B<build-indep>, B<install-indep> et B<binary-"
+"indep> sont appelées avec l'option B<-i> pour être certain qu'elles ne "
+"s'accompliront que sur des paquets indépendants de l'architecture. "
+"Symétriquement les commandes des séquences B<build-arch>, B<install-arch> et "
+"B<binary-arch> sont appelées avec l'option B<-a> pour être certain qu'elles "
+"ne s'accompliront que sur des paquets dépendants de l'architecture."
# type: textblock
#. type: textblock
-#: dh:976 dh_auto_build:51 dh_auto_clean:54 dh_auto_configure:56
-#: dh_auto_install:96 dh_auto_test:67 dh_bugfiles:130 dh_builddeb:128
-#: dh_clean:151 dh_compress:214 dh_desktop:35 dh_fixperms:135 dh_gconf:105
-#: dh_gencontrol:82 dh_icons:75 dh_install:264 dh_installchangelogs:245
-#: dh_installcron:83 dh_installdeb:146 dh_installdebconf:132 dh_installdirs:92
-#: dh_installdocs:341 dh_installemacsen:146 dh_installexamples:112
-#: dh_installifupdown:75 dh_installinfo:81 dh_installinit:328
-#: dh_installlogrotate:56 dh_installman:267 dh_installmanpages:201
-#: dh_installmenu:95 dh_installmime:67 dh_installmodules:119 dh_installpam:65
-#: dh_installppp:71 dh_installudev:121 dh_installwm:114 dh_installxfonts:93
-#: dh_link:232 dh_lintian:63 dh_listpackages:34 dh_makeshlibs:268
-#: dh_md5sums:94 dh_movefiles:174 dh_perl:156 dh_prep:64 dh_scrollkeeper:32
-#: dh_shlibdeps:156 dh_strip:246 dh_suidregister:121 dh_testdir:57
-#: dh_testroot:31 dh_undocumented:32 dh_usrlocal:120
+#: dh:876 dh_auto_build:57 dh_auto_clean:59 dh_auto_configure:62
+#: dh_auto_install:107 dh_auto_test:68 dh_bugfiles:139 dh_builddeb:180
+#: dh_clean:193 dh_compress:247 dh_dwz:167 dh_fixperms:168 dh_gencontrol:212
+#: dh_icons:79 dh_install:381 dh_installchangelogs:369 dh_installcron:84
+#: dh_installdeb:423 dh_installdebconf:237 dh_installdirs:135
+#: dh_installdocs:441 dh_installemacsen:143 dh_installexamples:186
+#: dh_installifupdown:76 dh_installinfo:127 dh_installinit:417
+#: dh_installinitramfs:97 dh_installlogrotate:57 dh_installman:424
+#: dh_installmanpages:202 dh_installmenu:94 dh_installmime:67
+#: dh_installmodules:113 dh_installpam:75 dh_installppp:72 dh_installudev:106
+#: dh_installwm:134 dh_installxfonts:94 dh_link:170 dh_lintian:64
+#: dh_listpackages:38 dh_makeshlibs:460 dh_md5sums:122 dh_movefiles:165
+#: dh_perl:192 dh_prep:74 dh_shlibdeps:208 dh_strip:439 dh_testdir:66
+#: dh_testroot:97 dh_usrlocal:140
msgid "This program is a part of debhelper."
msgstr "Ce programme fait partie de debhelper."
@@ -2666,17 +6032,17 @@ msgstr "dh_auto_build - Construire automatiquement un paquet"
# type: textblock
#. type: textblock
-#: dh_auto_build:14
+#: dh_auto_build:18
msgid ""
"B<dh_auto_build> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
msgstr ""
-"B<dh_auto_build> [I<options du processus de construction>] "
-"[I<options debhelper>] [B<--> I<paramètres>]"
+"B<dh_auto_build> [I<options_du_processus_de_construction>] "
+"[I<options_de_debhelper>] [B<--> I<paramètres>]"
# type: textblock
#. type: textblock
-#: dh_auto_build:18
+#: dh_auto_build:22
msgid ""
"B<dh_auto_build> is a debhelper program that tries to automatically build a "
"package. It does so by running the appropriate command for the build system "
@@ -2689,12 +6055,12 @@ msgstr ""
"appropriées du processus de construction d'après le type du paquet. Par "
"exemple, s'il trouve un fichier F<Makefile>, il construit le paquet avec "
"B<make> (ou B<MAKE> si les variables d'environnement sont définies). S'il y "
-"a un fichier F<setup.py> ou F<Build.PL> il les lance pour réaliser la "
+"a un fichier F<setup.py> ou F<Build.PL>, il les lance pour réaliser la "
"construction du paquet."
# type: textblock
#. type: textblock
-#: dh_auto_build:24
+#: dh_auto_build:28
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, "
"you're encouraged to skip using B<dh_auto_build> at all, and just run the "
@@ -2706,8 +6072,8 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_auto_build:30 dh_auto_clean:32 dh_auto_configure:33 dh_auto_install:45
-#: dh_auto_test:33
+#: dh_auto_build:34 dh_auto_clean:35 dh_auto_configure:37 dh_auto_install:54
+#: dh_auto_test:36
msgid ""
"See L<debhelper(7)/B<BUILD SYSTEM OPTIONS>> for a list of common build "
"system selection and control options."
@@ -2718,15 +6084,15 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_auto_build:35 dh_auto_clean:37 dh_auto_configure:38 dh_auto_install:56
-#: dh_auto_test:38 dh_builddeb:38 dh_gencontrol:30 dh_installdebconf:69
-#: dh_installinit:105 dh_makeshlibs:91 dh_shlibdeps:37
+#: dh_auto_build:39 dh_auto_clean:40 dh_auto_configure:42 dh_auto_install:65
+#: dh_auto_test:41 dh_builddeb:48 dh_dwz:62 dh_gencontrol:42
+#: dh_installdebconf:72 dh_installinit:166 dh_makeshlibs:179 dh_shlibdeps:41
msgid "B<--> I<params>"
msgstr "B<--> I<paramètres>"
# type: textblock
#. type: textblock
-#: dh_auto_build:37
+#: dh_auto_build:41
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_build> usually passes."
@@ -2744,17 +6110,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_auto_clean:15
+#: dh_auto_clean:18
msgid ""
"B<dh_auto_clean> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
msgstr ""
-"B<dh_auto_clean> [I<options du processus de construction>] "
-"[I<options de debhelper>] [B<--> I<paramètres>]"
+"B<dh_auto_clean> [I<options_du_processus_de_construction>] "
+"[I<options_de_debhelper>] [B<--> I<paramètres>]"
# type: textblock
#. type: textblock
-#: dh_auto_clean:19
+#: dh_auto_clean:22
msgid ""
"B<dh_auto_clean> is a debhelper program that tries to automatically clean up "
"after a package build. It does so by running the appropriate command for the "
@@ -2770,12 +6136,12 @@ msgstr ""
"paquet. Par exemple, s'il trouve un fichier F<Makefile> et qu'il contient "
"une instruction B<distclean>, B<realclean>, B<clean>, il fait le ménage en "
"exécutant B<make> (ou B<MAKE> si cette variable d'environnement est "
-"définie). S'il y a un fichier F<setup.py> ou F<Build.PL> il les lance pour "
+"définie). S'il y a un fichier F<setup.py> ou F<Build.PL>, il les lance pour "
"réaliser le ménage du paquet."
# type: textblock
#. type: textblock
-#: dh_auto_clean:26
+#: dh_auto_clean:29
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, or "
"tries to use the wrong clean target, you're encouraged to skip using "
@@ -2783,12 +6149,12 @@ msgid ""
msgstr ""
"B<dh_auto_clean> fonctionne avec 90% des paquets environ. Si ça ne "
"fonctionne pas ou que B<dh_auto_clean> tente d'utiliser une mauvaise "
-"instruction de ménage, il suffit de sauter B<dh_auto_clean> et de lancer "
-"manuellement B<make clean>."
+"instruction de nettoyage, il suffit de sauter B<dh_auto_clean> et de lancer "
+"manuellement B<make clean>."
# type: textblock
#. type: textblock
-#: dh_auto_clean:39
+#: dh_auto_clean:42
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_clean> usually passes."
@@ -2806,17 +6172,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_auto_configure:14
+#: dh_auto_configure:18
msgid ""
"B<dh_auto_configure> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
msgstr ""
-"B<dh_auto_configure> [I<options du processus de construction>] "
-"[I<options de debhelper>] [B<--> I<paramètres>]"
+"B<dh_auto_configure> [I<options_du_processus_de_construction>] "
+"[I<options_de_debhelper>] [B<--> I<paramètres>]"
# type: textblock
#. type: textblock
-#: dh_auto_configure:18
+#: dh_auto_configure:22
msgid ""
"B<dh_auto_configure> is a debhelper program that tries to automatically "
"configure a package prior to building. It does so by running the appropriate "
@@ -2832,14 +6198,14 @@ msgstr ""
"fait en lançant les commandes appropriées du processus de construction "
"d'après le type du paquet. Par exemple, il cherche puis exécute un script "
"F<./configure>, un fichier F<Makefile.PL>, F<Build.PL> ou F<cmake>. Un jeu "
-"de paramètres standard est déterminé et passé en argument au programme "
+"de paramètres standards est déterminé et passé en argument au programme "
"lancé. Certains processus de construction, tels que B<make>, n'ont pas "
"besoin de configuration préalable. Dans ce cas B<dh_auto_configure> s'arrête "
"sans rien faire."
# type: textblock
#. type: textblock
-#: dh_auto_configure:27
+#: dh_auto_configure:31
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, "
"you're encouraged to skip using B<dh_auto_configure> at all, and just run "
@@ -2851,17 +6217,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_auto_configure:40
+#: dh_auto_configure:44
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_configure> usually passes. For example:"
msgstr ""
"Transmet les I<paramètres> au programme exécuté après les paramètres que "
-"B<dh_auto_configure> transmet normalement. Par exemple :"
+"B<dh_auto_configure> transmet normalement. Par exemple :"
# type: verbatim
#. type: verbatim
-#: dh_auto_configure:43
+#: dh_auto_configure:47
#, no-wrap
msgid ""
" dh_auto_configure -- --with-foo --enable-bar\n"
@@ -2878,17 +6244,17 @@ msgstr "dh_auto_install - Lancer automatiquement make install ou équivalent"
# type: textblock
#. type: textblock
-#: dh_auto_install:17
+#: dh_auto_install:20
msgid ""
"B<dh_auto_install> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
msgstr ""
-"B<dh_auto_install> [I<options du processus de construction>] "
-"[I<options de debhelper>] [B<--> I<paramètres>]"
+"B<dh_auto_install> [I<options_du_processus_de_construction>] "
+"[I<options_de_debhelper>] [B<--> I<paramètres>]"
# type: textblock
#. type: textblock
-#: dh_auto_install:21
+#: dh_auto_install:24
msgid ""
"B<dh_auto_install> is a debhelper program that tries to automatically "
"install built files. It does so by running the appropriate command for the "
@@ -2909,17 +6275,34 @@ msgstr ""
"d'installation. De ce fait b<dh_auto_install> n'installera pas les fichiers "
"construits avec B<Ant>."
-# type: textblock
#. type: textblock
-#: dh_auto_install:29
+#: dh_auto_install:32
msgid ""
-"Unless B<--destdir> option is specified, the files are installed into debian/"
-"I<package>/ if there is only one binary package. In the multiple binary "
-"package case, the files are instead installed into F<debian/tmp/>, and "
-"should be moved from there to the appropriate package build directory using "
-"L<dh_install(1)>."
+"In compat 15 or later, B<dh_auto_install> will use F<debian/tmp> as the "
+"default B<--destdir> and should be moved from there to the appropriate "
+"package build directory using L<dh_install(1)> or similar tools. Though if "
+"the B<single-binary> addon for L<dh(1)> is activated, then it will pass an "
+"explicit B<< --destdir=debian/I<package>/ >> to B<dh_auto_install>."
msgstr ""
-"À moins que l'option B<--destdir> soit indiquée; les fichiers sont installés "
+
+# type: textblock
+#. type: textblock
+#: dh_auto_install:38
+#, fuzzy
+#| msgid ""
+#| "Unless B<--destdir> option is specified, the files are installed into "
+#| "debian/I<package>/ if there is only one binary package. In the multiple "
+#| "binary package case, the files are instead installed into F<debian/tmp/>, "
+#| "and should be moved from there to the appropriate package build directory "
+#| "using L<dh_install(1)>."
+msgid ""
+"For earlier compat levels then unless B<--destdir> option is specified, the "
+"files are installed into debian/I<package>/ if there is only one binary "
+"package. In the multiple binary package case, the files are instead "
+"installed into F<debian/tmp/>, and should be moved from there to the "
+"appropriate package build directory using L<dh_install(1)> or similar tools."
+msgstr ""
+"À moins que l'option B<--destdir> soit indiquée, les fichiers sont installés "
"dans debian/I<Paquet>/ s'il n'y a qu'un seul paquet binaire. Dans le cas de "
"paquets binaires multiples, les fichiers seront installés dans F<debian/tmp> "
"et pourront être déplacés vers le répertoire de construction approprié du "
@@ -2927,7 +6310,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_auto_install:35
+#: dh_auto_install:44
msgid ""
"B<DESTDIR> is used to tell make where to install the files. If the Makefile "
"was generated by MakeMaker from a F<Makefile.PL>, it will automatically set "
@@ -2935,12 +6318,12 @@ msgid ""
msgstr ""
"B<DESTDIR> est utilisé pour indiquer à make où installer les fichiers. Si le "
"Makefile a été produit par MakeMaker à partir d'un F<Makefile.PL>, cette "
-"variable sera automatiquement définie à B<PREFIX=/usr> car ces Makefiles en "
+"variable sera automatiquement définie à B<PREFIX=/usr> car ces Makefile en "
"ont besoin."
# type: textblock
#. type: textblock
-#: dh_auto_install:39
+#: dh_auto_install:48
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, or "
"tries to use the wrong install target, you're encouraged to skip using "
@@ -2949,17 +6332,17 @@ msgstr ""
"B<dh_auto_install> fonctionne avec 90% des paquets environ. Si ça ne "
"fonctionne pas ou si B<dh_auto_install> tente d'utiliser une mauvaise "
"méthode d'installation, il suffit de sauter B<dh_auto_install> et de lancer "
-"manuellement make install."
+"manuellement B<make install>."
# type: =item
#. type: =item
-#: dh_auto_install:50 dh_builddeb:28
+#: dh_auto_install:59 dh_builddeb:38
msgid "B<--destdir=>I<directory>"
msgstr "B<--destdir=>I<répertoire>"
# type: textblock
#. type: textblock
-#: dh_auto_install:52
+#: dh_auto_install:61
msgid ""
"Install files into the specified I<directory>. If this option is not "
"specified, destination directory is determined automatically as described in "
@@ -2971,7 +6354,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_auto_install:58
+#: dh_auto_install:67
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_install> usually passes."
@@ -2987,17 +6370,17 @@ msgstr "dh_auto_test - Exécuter automatiquement le jeu d'essai d'un paquet"
# type: textblock
#. type: textblock
-#: dh_auto_test:15
+#: dh_auto_test:18
msgid ""
"B<dh_auto_test> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
msgstr ""
-"B<dh_auto_test> [I<options du processus de construction>] "
-"[I<options de debhelper>] [B<--> I<paramètres>]"
+"B<dh_auto_test> [I<options_du_processus_de_construction>] "
+"[I<options_de_debhelper>] [B<--> I<paramètres>]"
# type: textblock
#. type: textblock
-#: dh_auto_test:19
+#: dh_auto_test:22
msgid ""
"B<dh_auto_test> is a debhelper program that tries to automatically run a "
"package's test suite. It does so by running the appropriate command for the "
@@ -3008,29 +6391,29 @@ msgid ""
"zero without doing anything."
msgstr ""
"B<dh_auto_test> est un programme de la suite debhelper qui tente d'exécuter "
-"automatiquement le jeu d'essai d'un paquet. Il le fait en lançant les "
+"automatiquement le jeu de tests d'un paquet. Il le fait en lançant les "
"commandes appropriées du processus de construction d'après le type du "
"paquet. Par exemple, s'il y a un Makefile et qu'il contient un bloc B<test> "
-"ou B<check> il exécutera B<make> (ou B<MAKE> si cette variable "
+"ou B<check>, il exécutera B<make> (ou B<MAKE> si cette variable "
"d'environnement est définie). Si les tests produisent une erreur, la "
-"commande retourne une valeur non nulle. S'il n'y a pas de jeu d'essai, la "
+"commande retourne une valeur non nulle. S'il n'y a pas de jeu de tests, la "
"commande retourne zéro sans rien faire."
# type: textblock
#. type: textblock
-#: dh_auto_test:27
+#: dh_auto_test:30
msgid ""
"This is intended to work for about 90% of packages with a test suite. If it "
"doesn't work, you're encouraged to skip using B<dh_auto_test> at all, and "
"just run the test suite manually."
msgstr ""
-"B<dh_auto_test> fonctionne avec 90% des paquets environ comportant un jeu "
-"d'essai. Si ça ne fonctionne pas, il suffit de sauter B<dh_auto_test> et de "
-"lancer le jeu d'essai manuellement."
+"B<dh_auto_test> fonctionne avec 90 % des paquets environ comportant un jeu "
+"de tests. Si ça ne fonctionne pas, il suffit de sauter B<dh_auto_test> et de "
+"lancer le jeu de tests manuellement."
# type: textblock
#. type: textblock
-#: dh_auto_test:40
+#: dh_auto_test:43
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_test> usually passes."
@@ -3040,7 +6423,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_auto_test:47
+#: dh_auto_test:50
msgid ""
"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nocheck>, no "
"tests will be performed."
@@ -3048,13 +6431,6 @@ msgstr ""
"Si la variable d'environnement B<DEB_BUILD_OPTIONS> contient B<nocheck>, "
"aucun test ne sera exécuté."
-#. type: textblock
-#: dh_auto_test:50
-msgid ""
-"dh_auto_test does not run the test suite when a package is being cross "
-"compiled."
-msgstr ""
-
# type: textblock
#. type: textblock
#: dh_bugfiles:5
@@ -3067,13 +6443,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_bugfiles:14
+#: dh_bugfiles:17
msgid "B<dh_bugfiles> [B<-A>] [S<I<debhelper options>>]"
-msgstr "B<dh_bugfiles> [B<-A>] [I<options de debhelper>]"
+msgstr "B<dh_bugfiles> [B<-A>] [I<options_de_debhelper>]"
# type: textblock
#. type: textblock
-#: dh_bugfiles:18
+#: dh_bugfiles:21
msgid ""
"B<dh_bugfiles> is a debhelper program that is responsible for installing bug "
"reporting customization files (bug scripts and/or bug control files and/or "
@@ -3082,31 +6458,32 @@ msgstr ""
"B<dh_bugfiles> est le programme de la suite debhelper chargé de "
"l'installation des fichiers personnalisés de production de rapports de bogue "
"(scripts de bogue et/ou fichiers de contrôle de bogue et/ou fichiers de "
-"préparation des rapports de bogues (presubj)), dans le répertoire de "
+"préparation des rapports de bogue (presubj)), dans le répertoire de "
"construction du paquet."
# type: =head1
#. type: =head1
-#: dh_bugfiles:22 dh_clean:31 dh_compress:31 dh_gconf:23 dh_install:38
-#: dh_installcatalogs:35 dh_installchangelogs:35 dh_installcron:21
-#: dh_installdeb:22 dh_installdebconf:34 dh_installdirs:21 dh_installdocs:21
-#: dh_installemacsen:27 dh_installexamples:22 dh_installifupdown:22
-#: dh_installinfo:21 dh_installinit:27 dh_installlogcheck:21 dh_installman:51
-#: dh_installmenu:25 dh_installmime:21 dh_installmodules:28 dh_installpam:21
-#: dh_installppp:21 dh_installudev:25 dh_installwm:24 dh_link:41 dh_lintian:21
-#: dh_makeshlibs:29 dh_movefiles:26
+#: dh_bugfiles:25 dh_clean:33 dh_compress:35 dh_install:40
+#: dh_installcatalogs:39 dh_installchangelogs:53 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 "FICHIERS"
# type: =item
#. type: =item
-#: dh_bugfiles:26
+#: dh_bugfiles:29
msgid "debian/I<package>.bug-script"
msgstr "debian/I<paquet>.bug-script"
# type: textblock
#. type: textblock
-#: dh_bugfiles:28
+#: dh_bugfiles:31
msgid ""
"This is the script to be run by the bug reporting program for generating a "
"bug report template. This file is installed as F<usr/share/bug/package> in "
@@ -3115,7 +6492,7 @@ msgid ""
"file is installed as F<usr/share/bug/package/script>. Finally, the installed "
"script is given execute permissions."
msgstr ""
-"C'est le script à exécuter par le programme de rapports de bogues pour la "
+"C'est le script à exécuter par le programme de rapports de bogue pour la "
"production d'un rapport de bogue modèle. Ce fichier est installé sous F<usr/"
"share/bug/paquet> dans le répertoire de construction du paquet si aucun "
"autre type de fichiers de personnalisation des rapports de bogue n'est "
@@ -3125,31 +6502,31 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_bugfiles:35
+#: dh_bugfiles:38
msgid "debian/I<package>.bug-control"
msgstr "debian/I<paquet>.bug-control"
# type: textblock
#. type: textblock
-#: dh_bugfiles:37
+#: dh_bugfiles:40
msgid ""
"It is the bug control file containing some directions for the bug reporting "
"tool. This file is installed as F<usr/share/bug/package/control> in the "
"package build directory."
msgstr ""
"C'est le fichier de contrôle des bogues contenant certaines directives pour "
-"l'outil de génération des rapport de bogue. Ce fichier est installé sous "
+"l'outil de génération des rapports de bogue. Ce fichier est installé sous "
"F<usr/share/bug/paquet/control> dans le répertoire de construction du paquet."
# type: =item
#. type: =item
-#: dh_bugfiles:41
+#: dh_bugfiles:44
msgid "debian/I<package>.bug-presubj"
msgstr "debian/I<paquet>.bug-presubj"
# type: textblock
#. type: textblock
-#: dh_bugfiles:43
+#: dh_bugfiles:46
msgid ""
"The contents of this file are displayed to the user by the bug reporting "
"tool before allowing the user to write a bug report on the package to the "
@@ -3164,63 +6541,65 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_bugfiles:56
+#: dh_bugfiles:59
msgid ""
"Install F<debian/bug-*> files to ALL packages acted on when respective "
"F<debian/package.bug-*> files do not exist. Normally, F<debian/bug-*> will "
"be installed to the first package only."
msgstr ""
-"Installe les fichiers F<debian/bug-*> dans TOUS les paquets construits pour "
-"lesquels des fichiers F<debian/package.bug-*> propres n'existent pas. Sans "
-"cette option, F<debian/bug-*> sera installé pour le premier paquet construit "
-"seulement."
+"Installe les fichiers F<debian/bug-*> dans B<tous> les paquets construits "
+"pour lesquels des fichiers F<debian/package.bug-*> propres n'existent pas. "
+"Sans cette option, F<debian/bug-*> sera installé pour le premier paquet "
+"construit seulement."
# type: =item
#. type: textblock
-#: dh_bugfiles:126
+#: dh_bugfiles:135
msgid "F</usr/share/doc/reportbug/README.developers.gz>"
msgstr "F</usr/share/doc/reportbug/README.developers.gz>"
# type: textblock
#. type: textblock
-#: dh_bugfiles:128 dh_lintian:61
+#: dh_bugfiles:137 dh_lintian:62
msgid "L<debhelper(1)>"
msgstr "L<debhelper(1)>"
# type: textblock
#. type: textblock
-#: dh_bugfiles:134
+#: dh_bugfiles:143
msgid "Modestas Vainius <modestas@vainius.eu>"
msgstr "Modestas Vainius <modestas@vainius.eu>"
# type: textblock
#. type: textblock
-#: dh_builddeb:5
+#: dh_builddeb:7
msgid "dh_builddeb - build Debian binary packages"
msgstr "dh_builddeb - Construire des paquets binaires Debian"
# type: textblock
#. type: textblock
-#: dh_builddeb:14
+#: dh_builddeb:19
msgid ""
"B<dh_builddeb> [S<I<debhelper options>>] [B<--destdir=>I<directory>] [B<--"
"filename=>I<name>] [S<B<--> I<params>>]"
msgstr ""
-"B<dh_builddeb> [I<options de debhelper>] [B<--destdir=>I<répertoire>] [B<--"
-"filename=>I<nom de fichier>] [B<--> I<paramètres>]"
+"B<dh_builddeb> [I<options_de_debhelper>] [B<--destdir=>I<répertoire>] [B<--"
+"filename=>I<nom_de_fichier>] [B<--> I<paramètres>]"
# type: textblock
#. type: textblock
-#: dh_builddeb:18
+#: dh_builddeb:23
msgid ""
"B<dh_builddeb> simply calls L<dpkg-deb(1)> to build a Debian package or "
-"packages."
+"packages. It will also build dbgsym packages when L<dh_strip(1)> and "
+"L<dh_gencontrol(1)> have prepared them."
msgstr ""
"B<dh_builddeb> fait simplement appel à L<dpkg-deb(1)> pour construire un ou "
-"plusieurs paquets Debian."
+"plusieurs paquets Debian. Il construira aussi des paquets dbgsym lorsque "
+"L<dh_strip(1)> et L<dh_gencontrol(1)> les auront préparés."
#. type: textblock
-#: dh_builddeb:21
+#: dh_builddeb:27
msgid ""
"It supports building multiple binary packages in parallel, when enabled by "
"DEB_BUILD_OPTIONS."
@@ -3228,25 +6607,34 @@ msgstr ""
"Il permet de construire plusieurs paquets binaires en parallèle, si c'est "
"activé par B<DEB_BUILD_OPTIONS>."
-# type: textblock
#. type: textblock
#: dh_builddeb:30
msgid ""
+"When the I<Rules-Requires-Root> field is not (effectively) I<binary-"
+"targets>, B<dh_builddeb> will pass B<--root-owner-group> to L<dpkg-deb(1)>."
+msgstr ""
+"Lorsque le champ I<Rules-Requires-Root> n'est pas I<binary-targets>, "
+"B<dh_builddeb> passera l'option B<--root-owner-group> à L<dpkg-deb(1)>."
+
+# type: textblock
+#. type: textblock
+#: dh_builddeb:40
+msgid ""
"Use this if you want the generated F<.deb> files to be put in a directory "
"other than the default of \"F<..>\"."
msgstr ""
-"Permet de stocker les fichiers F<.deb> produits, dans un répertoire autre "
-"que le répertoire par défaut « F<..> »."
+"Permet de stocker les fichiers F<.deb> produits dans un répertoire autre que "
+"le répertoire par défaut « F<..> »."
# type: =item
#. type: =item
-#: dh_builddeb:33
+#: dh_builddeb:43
msgid "B<--filename=>I<name>"
msgstr "B<--filename=>I<nom>"
# type: textblock
#. type: textblock
-#: dh_builddeb:35
+#: dh_builddeb:45
msgid ""
"Use this if you want to force the generated .deb file to have a particular "
"file name. Does not work well if more than one .deb is generated!"
@@ -3256,19 +6644,19 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_builddeb:40
+#: dh_builddeb:50
msgid "Pass I<params> to L<dpkg-deb(1)> when it is used to build the package."
msgstr ""
"Fournit les I<paramètres> à L<dpkg-deb(1)> lors de la construction du paquet."
# type: =item
#. type: =item
-#: dh_builddeb:43
+#: dh_builddeb:53
msgid "B<-u>I<params>"
msgstr "B<-u> I<paramètres>"
#. type: textblock
-#: dh_builddeb:45
+#: dh_builddeb:55
msgid ""
"This is another way to pass I<params> to L<dpkg-deb(1)>. It is deprecated; "
"use B<--> instead."
@@ -3284,37 +6672,45 @@ msgstr "dh_clean - Nettoyer les répertoires de construction du paquet"
# type: textblock
#. type: textblock
-#: dh_clean:14
+#: dh_clean:17
msgid ""
"B<dh_clean> [S<I<debhelper options>>] [B<-k>] [B<-d>] [B<-X>I<item>] "
-"[S<I<file> ...>]"
+"[S<I<path> ...>]"
msgstr ""
-"B<dh_clean> [S<I<options de debhelper>>] [B<-k>] [B<-d>] [B<-X>I<élément>] "
-"[S<I<fichier> ...>]"
+"B<dh_clean> [S<I<options_de_debhelper>>] [B<-k>] [B<-d>] [B<-X>I<élément>] "
+"[S<I<chemin> ...>]"
+
+#. type: textblock
+#: dh_clean:21
+msgid ""
+"B<dh_clean> is a debhelper program that is responsible for cleaning up. It "
+"should be the last step of the B<clean> target and other debhelper commands "
+"generally assume that B<dh_clean> will clean up after them."
+msgstr ""
+"B<dh_clean> est le programme de la suite debhelper chargé du nettoyage. Il "
+"devrait être la dernière étape de la cible B<clean> et les autres commandes "
+"de debhelper présument que B<dh_clean> fera le nettoyage après elles. "
# type: verbatim
#. type: verbatim
-#: dh_clean:18
+#: dh_clean:25
#, no-wrap
msgid ""
-"B<dh_clean> is a debhelper program that is responsible for cleaning up after a\n"
-"package is built. It removes the package build directories, and removes some\n"
-"other files including F<debian/files>, and any detritus left behind by other\n"
-"debhelper commands. It also removes common files that should not appear in a\n"
-"Debian diff:\n"
+"It removes the package build directories, and removes some other files including\n"
+"F<debian/files>, and any detritus left behind by other debhelper commands. It\n"
+"also removes common files that should not appear in a Debian diff:\n"
" #*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp\n"
"\n"
msgstr ""
-"B<dh_clean> est le programme de la suite debhelper chargé du nettoyage, après\n"
-"la construction du paquet. Il supprime les répertoires de construction, ainsi que\n"
-"d'autres fichiers y compris F<debian/files>. Il supprime aussi tous les résidus laissés\n"
-"par les autres commandes de debhelper, ainsi que les dossiers communs qui ne\n"
+"Il supprime les répertoires de construction, ainsi que d'autres fichiers y\n"
+"compris F<debian/files>. Il supprime aussi tous les résidus laissés par les\n"
+"autres commandes de debhelper, ainsi que les dossiers communs qui ne\n"
"doivent pas apparaître dans un diff Debian :\n"
"#*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp\n"
"\n"
#. type: textblock
-#: dh_clean:25
+#: dh_clean:30
msgid ""
"It does not run \"make clean\" to clean up after the build process. Use "
"L<dh_auto_clean(1)> to do things like that."
@@ -3322,53 +6718,64 @@ msgstr ""
"Il n'exécute pas un « make clean » pour faire le ménage après la "
"construction du paquet. Il faut utiliser L<dh_auto_clean(1)> pour le faire."
-# type: textblock
-#. type: textblock
-#: dh_clean:28
-#, fuzzy
-#| msgid ""
-#| "B<dh_clean> (or \"B<dh clean>\") should be the last debhelper command run "
-#| "in the B<clean> target in F<debian/rules>."
-msgid ""
-"B<dh_clean> should be the last debhelper command run in the B<clean> target "
-"in F<debian/rules>."
-msgstr ""
-"B<dh_clean> (ou « B<dh clean> ») doit être la dernière commande debhelper "
-"exécutée dans le bloc B<clean> du fichier F<debian/rules>."
-
# type: =item
#. type: =item
-#: dh_clean:35
+#: dh_clean:37
msgid "F<debian/clean>"
msgstr "F<debian/clean>"
# type: textblock
#. type: textblock
-#: dh_clean:37
-msgid "Can list other files to be removed."
-msgstr "Permet d'indiquer d'autres fichiers à supprimer."
+#: dh_clean:39
+msgid "Can list other paths to be removed."
+msgstr "Permet d'indiquer d'autres chemins à supprimer."
+
+#. type: textblock
+#: dh_clean:41
+msgid ""
+"Note that directories listed in this file B<must> end with a trailing "
+"slash. Any content in these directories will be removed as well."
+msgstr ""
+"Veuillez noter que les répertoires indiqués dans ce fichier B<doivent> se "
+"terminer par un « slash ». Tout le contenu de ces répertoires sera supprimé."
+
+#. type: textblock
+#: dh_clean:44 dh_install:59 dh_installcatalogs:51 dh_installdeb:102
+#: dh_installdirs:40 dh_installdocs:48 dh_installexamples:43 dh_installinfo:36
+#: dh_installman:81 dh_installwm:36 dh_link:64
+msgid ""
+"Supports substitution variables in compat 13 and later as documented in "
+"L<debhelper(7)>."
+msgstr ""
+"Les variables de substitution sont prises en charge dans les niveaux de "
+"compatibilité 13 et ultérieurs comme documenté dans L<debhelper(7)>."
# type: =item
#. type: =item
-#: dh_clean:45 dh_installchangelogs:63
+#: dh_clean:53 dh_installchangelogs:81
msgid "B<-k>, B<--keep>"
msgstr "B<-k>, B<--keep>"
# type: textblock
#. type: textblock
-#: dh_clean:47
+#: dh_clean:55
msgid "This is deprecated, use L<dh_prep(1)> instead."
msgstr "Ce paramètre est déconseillé. Utiliser L<dh_prep(1)> à la place."
+#. type: textblock
+#: dh_clean:57
+msgid "The option is removed in compat 12."
+msgstr "L'option est supprimée dans le niveau de compatibilité 12."
+
# type: =item
#. type: =item
-#: dh_clean:49
+#: dh_clean:59
msgid "B<-d>, B<--dirs-only>"
msgstr "B<-d>, B<--dirs-only>"
# type: textblock
#. type: textblock
-#: dh_clean:51
+#: dh_clean:61
msgid ""
"Only clean the package build directories, do not clean up any other files at "
"all."
@@ -3378,13 +6785,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_clean:54 dh_prep:30
+#: dh_clean:64 dh_prep:33
msgid "B<-X>I<item> B<--exclude=>I<item>"
msgstr "B<-X>I<élément> B<--exclude=>I<élément>"
# type: textblock
#. type: textblock
-#: dh_clean:56
+#: dh_clean:66
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"deleted, even if they would normally be deleted. You may use this option "
@@ -3397,16 +6804,24 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_clean:60 dh_compress:64 dh_installdocs:103 dh_installexamples:46
-#: dh_installinfo:40 dh_installmanpages:44 dh_movefiles:55 dh_testdir:27
-msgid "I<file> ..."
-msgstr "I<fichier> ..."
+#: dh_clean:70
+msgid "I<path> ..."
+msgstr "I<chemin> ..."
# type: textblock
#. type: textblock
-#: dh_clean:62
-msgid "Delete these I<file>s too."
-msgstr "Supprime également les I<fichier>s listés."
+#: dh_clean:72
+msgid "Delete these I<path>s too."
+msgstr "Supprime également les I<chemin>s listés."
+
+#. type: textblock
+#: dh_clean:74
+msgid ""
+"Note that directories passed as arguments B<must> end with a trailing "
+"slash. Any content in these directories will be removed as well."
+msgstr ""
+"Veuillez noter que les répertoires passés comme arguments B<doivent> se "
+"terminer par un « slash ». Tout le contenu de ces répertoires sera supprimé."
# type: textblock
#. type: textblock
@@ -3419,17 +6834,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_compress:15
+#: dh_compress:19
msgid ""
"B<dh_compress> [S<I<debhelper options>>] [B<-X>I<item>] [B<-A>] "
"[S<I<file> ...>]"
msgstr ""
-"B<dh_compress> [S<I<options de debhelper>>] [B<-X>I<élément>] [B<-A>] "
-"[S<I<fichier> ...>]"
+"B<dh_compress> [S<I<options_de_debhelper>>] [B<-X>I<élément>] [B<-A>] "
+"[S<I<fichier> ...>]"
# type: textblock
#. type: textblock
-#: dh_compress:19
+#: dh_compress:23
msgid ""
"B<dh_compress> is a debhelper program that is responsible for compressing "
"the files in package build directories, and makes sure that any symlinks "
@@ -3444,7 +6859,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_compress:24
+#: dh_compress:28
msgid ""
"By default, B<dh_compress> compresses files that Debian policy mandates "
"should be compressed, namely all files in F<usr/share/info>, F<usr/share/"
@@ -3453,30 +6868,30 @@ msgid ""
"appear to be already compressed based on their extensions), and all "
"F<changelog> files. Plus PCF fonts underneath F<usr/share/fonts/X11/>"
msgstr ""
-"Par défaut, B<dh_compress> compresse les fichiers que la Charte Debian "
+"Par défaut, B<dh_compress> compresse les fichiers que la Charte Debian "
"indique comme devant être compressés. Cela concerne tous les fichiers de "
"F<usr/share/info>, F<usr/share/man>, tous les fichiers F<changelog> ainsi "
"que les polices PCF stockées dans F<usr/share/fonts/X11/>. Il compressera "
-"également les fichiers de F<usr/share/doc> qui font plus de 4ko, à "
+"également les fichiers de F<usr/share/doc> qui font plus de 4 ko, à "
"l'exception du fichier de F<copyright>, des fichiers suffixés par F<.html> "
-"et des autres fichiers Web, des fichiers d'images et des fichiers qui "
+"et des autres fichiers web, des fichiers d'images et des fichiers qui "
"paraissent, de par leur extension, avoir déjà été compressés."
# type: =item
#. type: =item
-#: dh_compress:35
+#: dh_compress:39
msgid "debian/I<package>.compress"
msgstr "debian/I<paquet>.compress"
# type: textblock
#. type: textblock
-#: dh_compress:37
+#: dh_compress:41
msgid "These files are deprecated."
msgstr "Ces fichiers sont obsolètes."
# type: textblock
#. type: textblock
-#: dh_compress:39
+#: dh_compress:43
msgid ""
"If this file exists, the default files are not compressed. Instead, the file "
"is ran as a shell script, and all filenames that the shell script outputs "
@@ -3495,7 +6910,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_compress:54
+#: dh_compress:58
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"compressed. For example, B<-X.tiff> will exclude TIFF files from "
@@ -3509,77 +6924,178 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_compress:61
+#: dh_compress:65
msgid ""
"Compress all files specified by command line parameters in ALL packages "
"acted on."
msgstr ""
"Compresse tous les fichiers indiqués dans la ligne de commande et ce dans "
-"TOUS les paquets construits."
+"B<tous> les paquets construits."
+
+# type: =item
+#. type: =item
+#: dh_compress:68 dh_installdocs:184 dh_installexamples:89 dh_installinfo:60
+#: dh_installmanpages:47 dh_movefiles:58 dh_testdir:30
+msgid "I<file> ..."
+msgstr "I<fichier> ..."
# type: textblock
#. type: textblock
-#: dh_compress:66
+#: dh_compress:70
msgid "Add these files to the list of files to compress."
msgstr "Ajoute ces fichiers à la liste des fichiers à compresser."
# type: =head1
#. type: =head1
-#: dh_compress:70 dh_perl:61 dh_strip:74 dh_usrlocal:55
+#: dh_compress:74 dh_perl:65 dh_strip:133 dh_usrlocal:66
msgid "CONFORMS TO"
msgstr "CONFORMITÉ"
# type: textblock
#. type: textblock
-#: dh_compress:72
+#: dh_compress:76
msgid "Debian policy, version 3.0"
msgstr "Charte Debian, version 3.0"
#. type: textblock
-#: dh_desktop:5
-msgid "dh_desktop - deprecated no-op"
-msgstr "dh_desktop - Obsolète, ne pas l'utiliser"
+#: dh_dwz:5
+msgid "dh_dwz - optimize DWARF debug information in ELF binaries via dwz"
+msgstr ""
+"dh_dwz - Optimiser l'information de débogage DWARF dans les binaires ELF "
+"grâce à dwz"
# type: textblock
#. type: textblock
-#: dh_desktop:14
-msgid "B<dh_desktop> [S<I<debhelper options>>]"
-msgstr "B<dh_desktop> [I<options de debhelper>]"
+#: dh_dwz:18
+msgid "B<dh_dwz> [S<I<debhelper options>>] [B<-X>I<item>] [S<B<--> I<params>>]"
+msgstr ""
+"B<dh_dwz> [I<options_de_debhelper>] [B<-X>I<item>] [S<B<--> I<paramètres>>]"
#. type: textblock
-#: dh_desktop:18
+#: dh_dwz:22
msgid ""
-"B<dh_desktop> was a debhelper program that registers F<.desktop> files. "
-"However, it no longer does anything, and is now deprecated."
+"B<dh_dwz> is a debhelper program that will optimize the (uncompressed) size "
+"of the DWARF debug information in ELF binaries. It does so by running "
+"L<dwz(1)> on all the ELF binaries in the package."
msgstr ""
-"B<dh_desktop> était un programme de la suite debhelper chargé de "
-"l'inscription des fichiers F<.desktop>. Toutefois, il n'est plus utilisé et "
-"est maintenant obsolète."
+"B<dh_dwz> est un programme de la suite debhelper qui optimise la taille (non "
+"compressée) des informations DWARF de débogage dans les binaires ELF. Cela "
+"est effectué en exécutant L<dwz(1)> sur tous les binaires ELF du paquet."
+
+#. type: =item
+#: dh_dwz:30
+msgid "B<--dwz-multifile>, B<--no-dwz-multifile>"
+msgstr "B<--dwz-multifile>, B<--no-dwz-multifile>"
+
+#. type: textblock
+#: dh_dwz:32
+msgid ""
+"Whether L<dwz(1)> should generate a I<multifile> from the ELF binaries 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."
+msgstr ""
+"Détermine si L<dwz(1)> doit créer un objet I<multifile> à partir des "
+"binaires ELF d'un même paquet. Si oui, dans un paquet qui fournit au moins "
+"deux binaires ELF, B<dh_dwz> demandera à L<dwz(1)> de générer un objet "
+"I<multifile> pour le paquet."
+
+#. 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 not 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 ""
+"Par défaut, B<dh_dwz> tentera de créer un objet I<multifile> mais continuera "
+"sans si L<dwz(1)> n'en crée pas un (mais se termine néanmoins avec succès). "
+"Cela arrive généralement quand les fichiers de débogage ne contiennent pas "
+"de symboles de débogage (par exemple, en absence de -g passé au compilateur) "
+"ou quand les symboles de débogage sont compressés (voir le bogue Debian "
+"n° 931891). Si B<--dwz-multifile> est passé, alors B<dh_dwz> s’interrompra "
+"avec une erreur si L<dwz(1)> ne crée pas un I<multifile>."
-# type: textblock
#. type: textblock
-#: dh_desktop:21
+#: dh_dwz:45
msgid ""
-"If a package ships F<desktop> files, they just need to be installed in the "
-"correct location (F</usr/share/applications>) and they will be registered by "
-"the appropriate tools for the corresponding desktop environments."
+"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 ""
-"Si un paquet comporte des fichiers F<desktop>, ils ont seulement besoin "
-"d'être installés dans l'emplacement adéquat (F</usr/share/applications>) et "
-"ils seront inscrits, par les outils appropriés, pour les environnements de "
-"bureau correspondants."
+"Cette option pourrait ne pas fonctionner si un paquet contient plus de "
+"binaires ELF que ne peut en contenir une seule ligne de commande. Si cela "
+"devenait un problème, utilisez B<--no-dwz-multifile> pour le contourner."
+
+#. type: textblock
+#: dh_dwz:49
+msgid ""
+"The generated multifile will be compressed with B<objcopy --compress-debug-"
+"sections>."
+msgstr ""
+"Le I<multifile> créé sera compressé avec B<objcopy --compress-debug-"
+"sections>."
+
+#. 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 ""
+"Note pour les paquets B<udeb> : B<dh_dwz> ne générera jamais de I<multifile> "
+"pour les paquets B<udeb>. Il utilisera toutefois B<dwz> pour réduire la "
+"taille des fichiers de débogage s'il en trouve."
# type: textblock
#. type: textblock
-#: dh_desktop:33 dh_icons:73 dh_scrollkeeper:30
-msgid "L<debhelper>"
-msgstr "L<debhelper(7)>"
+#: 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 "
+"things to exclude."
+msgstr ""
+"Exclut du traitement les fichiers qui comportent I<élément> n'importe où "
+"dans leur nom. Il est possible d'utiliser cette option à plusieurs reprises "
+"pour établir une liste des éléments à exclure."
+
+#. type: textblock
+#: 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 ""
+"Passe les I<paramètres> à L<dwz(1)> lors du traitement des binaires ELF. "
+"Cela est surtout utile pour les paramètres liés à la mémoire (comme B<-l> et "
+"B<-L>)."
# type: textblock
#. type: textblock
-#: dh_desktop:39 dh_scrollkeeper:36
-msgid "Ross Burton <ross@burtonini.com>"
-msgstr "Ross Burton <ross@burtonini.com>"
+#: 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 "
+"\"Binaries\")."
+msgstr ""
+"Si la variable d'environnement B<DEB_BUILD_OPTIONS> contient B<nostrip>, "
+"rien ne sera dépouillé, conformément à la Charte Debian (section 10.1 "
+"« Binaries »)."
+
+#. type: textblock
+#: 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 "
+"contains B<nostrip>. This is because B<nostrip> is often used to optimize "
+"build times (e.g. for \"build and test\"-cycles) rather than optimizing for "
+"size."
+msgstr ""
+"Bien que cet outil ne supprime pas les informations de débogage des "
+"binaires, il est quand même évité lorsque B<DEB_BUILD_OPTIONS> contient "
+"B<nostrip>, car B<nostrip> est souvent utilisé pour optimiser la durée de "
+"construction (comme dans les cycles « build and test ») plutôt que pour "
+"optimiser la taille."
# type: textblock
#. type: textblock
@@ -3591,56 +7107,65 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_fixperms:15
+#: dh_fixperms:18
msgid "B<dh_fixperms> [S<I<debhelper options>>] [B<-X>I<item>]"
-msgstr "B<dh_fixperms> [I<options de debhelper>] [B<-X>I<élément>]"
+msgstr "B<dh_fixperms> [I<options_de_debhelper>] [B<-X>I<élément>]"
# type: textblock
#. type: textblock
-#: dh_fixperms:19
+#: dh_fixperms:22
msgid ""
"B<dh_fixperms> is a debhelper program that is responsible for setting the "
"permissions of files and directories in package build directories to a sane "
"state -- a state that complies with Debian policy."
msgstr ""
"B<dh_fixperms> est un programme de la suite debhelper chargé de configurer "
-"correctement (c'est-à-dire conformément à la Charte Debian) les droits sur "
+"correctement (c'est-à-dire conformément à la Charte Debian) les droits sur "
"les fichiers et les sous-répertoires du répertoire de construction du paquet."
# type: textblock
#. type: textblock
-#: dh_fixperms:23
+#: dh_fixperms:26
msgid ""
"B<dh_fixperms> makes all files in F<usr/share/doc> in the package build "
"directory (excluding files in the F<examples/> directory) be mode 644. It "
-"also changes the permissions of all man pages to mode 644. It makes all "
-"files be owned by root, and it removes group and other write permission from "
-"all files. It removes execute permissions from any libraries, headers, Perl "
-"modules, or desktop files that have it set. It makes all files in the "
-"standard F<bin> and F<sbin> directories, F<usr/games/> and F<etc/init.d> "
-"executable (since v4). Finally, it removes the setuid and setgid bits from "
-"all files in the package."
+"also changes the permissions of all man pages to mode 644. It removes group "
+"and other write permission from all files. It removes execute permissions "
+"from any libraries, headers, Perl modules, or desktop files that have it "
+"set. It makes all files in the standard F<bin> and F<sbin> directories, "
+"F<usr/games/> and F<etc/init.d> executable (since v4). Finally, it removes "
+"the setuid and setgid bits from all files in the package."
msgstr ""
"B<dh_fixperms> règle à 644 les droits sur tous les fichiers de F<usr/share/"
"doc> à l'exclusion de ceux contenus dans le répertoire F<examples/>. Il "
-"règle également à 644 les droits de toutes les pages de manuel. Il donne la "
-"propriété de tous les fichiers au superutilisateur (root), et enlève "
+"règle également à 644 les droits de toutes les pages de manuel. Il enlève "
"l'autorisation d'écrire au groupe et aux autres utilisateurs sur tous les "
-"fichiers. Il retire le droit d'exécution sur toutes les bibliothèques, "
-"entête (header), modules Perl ou fichiers desktop. Il rend exécutables tous "
+"fichiers. Il retire le droit d'exécution sur toutes les bibliothèques, en-"
+"têtes (header), modules Perl ou fichiers desktop. Il rend exécutables tous "
"les fichiers de F<bin/>, F<sbin/>, F</usr/games/> et F<etc/init.d> (à partir "
-"de la version 4 seulement). Pour finir il annule les bits setuid et setgid "
+"de la version 4 seulement). Pour finir il annule les bits setuid et setgid "
"de tous les fichiers du paquet."
+#. type: textblock
+#: dh_fixperms:36
+msgid ""
+"When the I<Rules-Requires-Root> field has the (effective) value of I<binary-"
+"targets>, B<dh_fixperms> will also reset the ownership of all paths to "
+"\"root:root\"."
+msgstr ""
+"Lorsque le champ I<Rules-Requires-Root> a la valeur I<binary-targets>, "
+"B<dh_fixperms> réinitialisera aussi la propriété de tous les chemins à« root:"
+"root »."
+
# type: =item
#. type: =item
-#: dh_fixperms:36
+#: dh_fixperms:44
msgid "B<-X>I<item>, B<--exclude> I<item>"
msgstr "B<-X>I<élément>, B<--exclude> I<élément>"
# type: textblock
#. type: textblock
-#: dh_fixperms:38
+#: dh_fixperms:46
msgid ""
"Exclude files that contain I<item> anywhere in their filename from having "
"their permissions changed. You may use this option multiple times to build "
@@ -3652,111 +7177,19 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_gconf:5
-msgid "dh_gconf - install GConf defaults files and register schemas"
-msgstr ""
-"dh_gconf - Installer les fichiers par défaut de GConf et inscrit les schémas"
-
-# type: textblock
-#. type: textblock
-#: dh_gconf:14
-msgid "B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>]"
-msgstr "B<dh_gconf> [S<I<options de debhelper>>] [B<--priority=>I<priorité>>]"
-
-# type: textblock
-#. type: textblock
-#: dh_gconf:18
-msgid ""
-"B<dh_gconf> is a debhelper program that is responsible for installing GConf "
-"defaults files and registering GConf schemas."
-msgstr ""
-"B<dh_gconf> est un programme de la suite debhelper chargé de l'installation "
-"des fichiers par défaut de GConf et de l'inscription des schémas GConf."
-
-# type: textblock
-#. type: textblock
-#: dh_gconf:21
-msgid ""
-"An appropriate dependency on gconf2 will be generated in B<${misc:Depends}>."
-msgstr ""
-"Une dépendance appropriée envers gconf2 sera inscrite dans B<${misc:Depends}"
-">."
-
-# type: =item
-#. type: =item
-#: dh_gconf:27
-msgid "debian/I<package>.gconf-defaults"
-msgstr "debian/I<paquet>.gconf-defaults"
-
-# type: textblock
-#. type: textblock
-#: dh_gconf:29
-msgid ""
-"Installed into F<usr/share/gconf/defaults/10_package> in the package build "
-"directory, with I<package> replaced by the package name."
-msgstr ""
-"Les fichiers seront installés dans le répertoire de construction du paquet "
-"sous F<usr/share/gconf/defaults/10_paquet> où le mot I<paquet> sera remplacé "
-"par le nom du paquet."
-
-# type: =item
-#. type: =item
-#: dh_gconf:32
-msgid "debian/I<package>.gconf-mandatory"
-msgstr "debian/I<paquet>.gconf-mandatory"
-
-# type: textblock
-#. type: textblock
-#: dh_gconf:34
-msgid ""
-"Installed into F<usr/share/gconf/mandatory/10_package> in the package build "
-"directory, with I<package> replaced by the package name."
-msgstr ""
-"Les fichiers seront installés dans le répertoire de construction du paquet "
-"sous F<usr/share/gconf/mandatory/defaults/10_paquet> où le mot I<paquet> "
-"sera remplacé par le nom du paquet."
-
-# type: =item
-#. type: =item
-#: dh_gconf:43
-msgid "B<--priority> I<priority>"
-msgstr "B<--priority> I<priorité>"
-
-# type: textblock
-#. type: textblock
-#: dh_gconf:45
-msgid ""
-"Use I<priority> (which should be a 2-digit number) as the defaults priority "
-"instead of B<10>. Higher values than ten can be used by derived "
-"distributions (B<20>), CDD distributions (B<50>), or site-specific packages "
-"(B<90>)."
-msgstr ""
-"Détermine la I<priorité> (sous forme d'un nombre à deux chiffres) en "
-"remplacement de la priorité par défaut B<10>. Des valeurs plus élevées "
-"peuvent être utilisées pour les distribution dérivées (B<20>), les "
-"distributions CDD (B<50>), ou les paquets spécifiques à un site (B<90>)."
-
-# type: textblock
-#. type: textblock
-#: dh_gconf:109
-msgid "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
-msgstr "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
-
-# type: textblock
-#. type: textblock
#: dh_gencontrol:5
msgid "dh_gencontrol - generate and install control file"
msgstr "dh_gencontrol - Produire et installer le fichier de contrôle"
# type: textblock
#. type: textblock
-#: dh_gencontrol:14
+#: dh_gencontrol:18
msgid "B<dh_gencontrol> [S<I<debhelper options>>] [S<B<--> I<params>>]"
-msgstr "B<dh_gencontrol> [I<options debhelper>] [B<--> I<paramètres>]"
+msgstr "B<dh_gencontrol> [I<options_de_debhelper>] [B<--> I<paramètres>]"
# type: textblock
#. type: textblock
-#: dh_gencontrol:18
+#: dh_gencontrol:22
msgid ""
"B<dh_gencontrol> is a debhelper program that is responsible for generating "
"control files, and installing them into the I<DEBIAN> directory with the "
@@ -3768,30 +7201,47 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_gencontrol:22
+#: dh_gencontrol:26
msgid ""
"This program is merely a wrapper around L<dpkg-gencontrol(1)>, which calls "
-"it once for each package being acted on, and passes in some additional "
-"useful flags."
+"it once for each package being acted on (plus related dbgsym packages), and "
+"passes in some additional useful flags."
msgstr ""
"Ce programme est simplement une encapsulation de L<dpkg-gencontrol(1)>. "
-"dh_gencontrol l'invoque pour chacun des paquets construits, et lui transmet "
-"quelques options utiles."
+"B<dh_gencontrol> l'invoque pour chacun des paquets construits (plus les "
+"paquets dbgsym concernés), et lui transmet quelques options utiles."
+
+#. type: textblock
+#: dh_gencontrol:30
+msgid ""
+"B<Note> that if you use B<dh_gencontrol>, you must also use "
+"L<dh_builddeb(1)> to build the packages. Otherwise, your build may fail to "
+"build as B<dh_gencontrol> (via L<dpkg-gencontrol(1)>) declares which "
+"packages are built. As debhelper automatically generates dbgsym packages, "
+"it some times adds additional packages, which will be built by "
+"L<dh_builddeb(1)>."
+msgstr ""
+"B<Remarque> : si vous utilisez B<dh_gencontrol>, vous devez aussi utiliser "
+"L<dh_builddeb(1)> pour construire les paquets. Autrement, votre construction "
+"pourrait échouer car B<dh_gencontrol> (à l’aide de L<dpkg-gencontrol(1)>) "
+"déclare quels paquets sont construits. Puisque debhelper génère "
+"automatiquement des paquets dbgsym, il ajoute quelques fois des paquets "
+"supplémentaires qui seront construits par L<dh_builddeb(1)>."
# type: textblock
#. type: textblock
-#: dh_gencontrol:32
+#: dh_gencontrol:44
msgid "Pass I<params> to L<dpkg-gencontrol(1)>."
msgstr "Fournit I<paramètres> à L<dpkg-gencontrol(1)>."
# type: =item
#. type: =item
-#: dh_gencontrol:34
+#: dh_gencontrol:46
msgid "B<-u>I<params>, B<--dpkg-gencontrol-params=>I<params>"
msgstr "B<-u>I<paramètres>, B<--dpkg-gencontrol-params=>I<paramètres>"
#. type: textblock
-#: dh_gencontrol:36
+#: dh_gencontrol:48
msgid ""
"This is another way to pass I<params> to L<dpkg-gencontrol(1)>. It is "
"deprecated; use B<--> instead."
@@ -3802,27 +7252,18 @@ msgstr ""
# type: textblock
#. type: textblock
#: dh_icons:5
-#, fuzzy
-#| msgid "dh_icons - Update Freedesktop icon caches"
msgid "dh_icons - Update caches of Freedesktop icons"
msgstr "dh_icons - Mettre à jour les caches des icônes Freedesktop"
# type: textblock
#. type: textblock
-#: dh_icons:15
+#: dh_icons:18
msgid "B<dh_icons> [S<I<debhelper options>>] [B<-n>]"
-msgstr "B<dh_icons> [I<options de debhelper>] [B<-n>]"
+msgstr "B<dh_icons> [I<options_de_debhelper>] [B<-n>]"
# type: textblock
#. type: textblock
-#: dh_icons:19
-#, fuzzy
-#| msgid ""
-#| "B<dh_icons> is a debhelper program that updates Freedesktop icon caches "
-#| "when needed, using the B<update-icon-caches> program provided by GTK"
-#| "+2.12. Currently this program does not handle installation of the files, "
-#| "though it may do so at a later date, so should be run after icons are "
-#| "installed in the package build directories."
+#: dh_icons:22
msgid ""
"B<dh_icons> is a debhelper program that updates caches of Freedesktop icons "
"when needed, using the B<update-icon-caches> program provided by GTK+2.12. "
@@ -3839,36 +7280,42 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_icons:25
+#: dh_icons:28
msgid ""
"It takes care of adding maintainer script fragments to call B<update-icon-"
"caches> for icon directories. (This is not done for gnome and hicolor icons, "
"as those are handled by triggers.) These commands are inserted into the "
"maintainer scripts by L<dh_installdeb(1)>."
msgstr ""
-"Il s'occupe d'ajouter des lignes de codes de maintenance pour appeler "
+"Il s'occupe d'ajouter des lignes de code de maintenance pour appeler "
"B<update-icon-caches> pour les répertoires d'icônes (ce n'est pas fait pour "
-"les icônes de GNOME et hicolor, car ils sont gérés par des actions différées "
-"ou « triggers »). Ces commandes sont insérées dans les scripts de "
+"les icônes de GNOME et hicolor, car elles sont gérées par des actions "
+"différées ou « triggers »). Ces commandes sont insérées dans les scripts de "
"maintenance par L<dh_installdeb(1)>."
# type: =item
#. type: =item
-#: dh_icons:34 dh_installcatalogs:53 dh_installdebconf:65 dh_installemacsen:57
-#: dh_installinit:63 dh_installmenu:45 dh_installmodules:42 dh_installudev:49
-#: dh_installwm:44 dh_makeshlibs:77 dh_usrlocal:43
-msgid "B<-n>, B<--noscripts>"
-msgstr "B<-n>, B<--noscripts>"
+#: dh_icons:37 dh_installcatalogs:60 dh_installdebconf:68 dh_installemacsen:60
+#: dh_installinit:81 dh_installinitramfs:47 dh_installmenu:48
+#: dh_installmodules:45 dh_installwm:51 dh_makeshlibs:147 dh_usrlocal:54
+msgid "B<-n>, B<--no-scripts>"
+msgstr "B<-n>, B<--no-scripts>"
# type: textblock
#. type: textblock
-#: dh_icons:36
+#: dh_icons:39
msgid "Do not modify maintainer scripts."
msgstr "Empêche la modification des scripts de maintenance."
# type: textblock
#. type: textblock
-#: dh_icons:79
+#: dh_icons:77
+msgid "L<debhelper>"
+msgstr "L<debhelper(7)>"
+
+# type: textblock
+#. type: textblock
+#: dh_icons:83
msgid ""
"Ross Burton <ross@burtonini.com> Jordi Mallach <jordi@debian.org> Josselin "
"Mouette <joss@debian.org>"
@@ -3886,18 +7333,18 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_install:15
+#: dh_install:17
msgid ""
"B<dh_install> [B<-X>I<item>] [B<--autodest>] [B<--sourcedir=>I<dir>] "
"[S<I<debhelper options>>] [S<I<file|dir> ... I<destdir>>]"
msgstr ""
"B<dh_install> [B<-X>I<élément>] [B<--autodest>] [B<--"
-"sourcedir=>I<répertoire>] [S<I<options de debhelper>>] [S<I<fichier|"
+"sourcedir=>I<répertoire>] [S<I<options_de_debhelper>>] [S<I<fichier|"
"répertoire> ... I<répertoire_destination>>]"
# type: textblock
#. type: textblock
-#: dh_install:19
+#: dh_install:21
msgid ""
"B<dh_install> is a debhelper program that handles installing files into "
"package build directories. There are many B<dh_install>I<*> commands that "
@@ -3910,18 +7357,18 @@ msgstr ""
"B<dh_install> est un programme de la suite debhelper chargé de "
"l'installation des fichiers dans les répertoires de construction des "
"paquets. Il existe plein de commandes B<dh_install>I<*> qui gèrent "
-"l'installation de types de fichiers particuliers tels que les "
-"documentations, les exemples, les pages de manuel, et ainsi de suite. Ces "
-"commandes spécifiques doivent être employées autant que possible car elles "
-"présentent souvent un savoir-faire supplémentaire pour ces tâches "
-"particulières. B<dh_install>, en revanche, est utile pour installer tout le "
-"reste, c'est-à-dire tous les fichiers pour lesquels aucun savoir-faire "
-"particulier n'est nécessaire. Ce programme vient en remplacement de l'ancien "
-"programme B<dh_movefiles>."
+"l'installation de types de fichier particuliers tels que les documentations, "
+"les exemples, les pages de manuel, et ainsi de suite. Ces commandes "
+"spécifiques doivent être employées autant que possible car elles présentent "
+"souvent un savoir-faire supplémentaire pour ces tâches particulières. "
+"B<dh_install>, en revanche, est utile pour installer tout le reste, c'est-à-"
+"dire tous les fichiers pour lesquels aucun savoir-faire particulier n'est "
+"nécessaire. Ce programme vient en remplacement de l'ancien programme "
+"B<dh_movefiles>."
# type: textblock
#. type: textblock
-#: dh_install:27
+#: dh_install:29
msgid ""
"This program may be used in one of two ways. If you just have a file or two "
"that the upstream Makefile does not install for you, you can run "
@@ -3932,42 +7379,36 @@ msgid ""
"package build directories."
msgstr ""
"Ce programme peut être utilisé de deux façons différentes. S'il n'y a qu'un "
-"ou deux fichiers que Makefile n'installe pas de lui même, il suffit "
-"d'exécuter B<dh_install> en le configurant pour installer ces fichiers. Par "
-"contre, avec un paquet source qui construit plusieurs paquets binaires, il "
-"est préférable de demander à F<Makefile> de mettre tout dans F<debian/tmp> "
-"puis d'utiliser B<dh_install> pour déplacer les répertoires et les fichiers "
+"ou deux fichiers que Makefile n'installe pas lui même, il suffit d'exécuter "
+"B<dh_install> en le configurant pour installer ces fichiers. Par contre, "
+"avec un paquet source qui construit plusieurs paquets binaires, il est "
+"préférable de demander à F<Makefile> de mettre tout dans F<debian/tmp> puis "
+"d'utiliser B<dh_install> pour déplacer les répertoires et les fichiers "
"depuis cet emplacement temporaire vers les répertoires de construction "
"appropriés de chaque paquet."
# type: textblock
#. type: textblock
-#: dh_install:34
-#, fuzzy
-#| msgid ""
-#| "From debhelper compatibility level 7 on, B<dh_install> will fall back to "
-#| "looking in F<debian/tmp> for files, if it doesn't find them in the "
-#| "current directory (or whereever you've told it to look using B<--"
-#| "sourcedir>)."
+#: dh_install:36
msgid ""
"From debhelper compatibility level 7 on, B<dh_install> will fall back to "
-"looking in F<debian/tmp> for files, if it doesn't find them in the current "
+"looking in F<debian/tmp> for files, if it does not find them in the current "
"directory (or wherever you've told it to look using B<--sourcedir>)."
msgstr ""
-"Depuis la version 7 de debhelper, B<dh_install> cherchera dans "
+"Depuis la version 7 de debhelper, B<dh_install> cherchera dans "
"l'arborescence F<debian/tmp> pour trouver les fichiers s'il ne les trouve "
"pas dans le répertoire courant (ou dans celui indiqué par l'utilisation de "
"B<--sourcedir>)."
# type: =item
#. type: =item
-#: dh_install:42
+#: dh_install:44
msgid "debian/I<package>.install"
msgstr "debian/I<paquet>.install"
# type: textblock
#. type: textblock
-#: dh_install:44
+#: dh_install:46
msgid ""
"List the files to install into each package and the directory they should be "
"installed to. The format is a set of lines, where each line lists a file or "
@@ -3975,7 +7416,7 @@ msgid ""
"be installed in. The name of the files (or directories) to install should be "
"given relative to the current directory, while the installation directory is "
"given relative to the package build directory. You may use wildcards in the "
-"names of the files to install (in v3 mode and above)."
+"names of the files to install."
msgstr ""
"Énumère les fichiers à installer dans chaque paquet ainsi que le répertoire "
"où ils doivent être installés. Ce fichier est formé d'une suite de lignes. "
@@ -3984,12 +7425,11 @@ msgstr ""
"répertoires) à installer doit être fourni avec un chemin relatif au "
"répertoire courant, alors que le répertoire de destination est indiqué "
"relativement au répertoire de construction du paquet. Il est possible "
-"d'employer des jokers (wildcard) dans les noms des fichiers à installer (à "
-"partir de la version 3)."
+"d'employer des jokers (wildcard) dans les noms des fichiers à installer."
# type: textblock
#. type: textblock
-#: dh_install:52
+#: dh_install:54
msgid ""
"Note that if you list exactly one filename or wildcard-pattern on a line by "
"itself, with no explicit destination, then B<dh_install> will automatically "
@@ -4002,86 +7442,71 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_install:63
-msgid "B<--list-missing>"
-msgstr "B<--list-missing>"
+#: dh_install:62
+msgid "debian/not-installed"
+msgstr "debian/not-installed"
-# type: textblock
#. type: textblock
-#: dh_install:65
+#: dh_install:64
msgid ""
-"This option makes B<dh_install> keep track of the files it installs, and "
-"then at the end, compare that list with the files in the source directory. "
-"If any of the files (and symlinks) in the source directory were not "
-"installed to somewhere, it will warn on stderr about that."
+"Used with the deprecated B<--list-missing> and B<--fail-missing> options. "
+"Please refer to L<dh_missing(1)> for the documentation of this file."
msgstr ""
-"Cette option impose à B<dh_install> de garder la trace des fichiers qu'il "
-"installe et, à la fin, de comparer cette liste aux fichiers du répertoire "
-"source. Si un des fichiers (ou des liens symboliques) du répertoire source, "
-"n'était pas installé quelque part, il le signalerait par un message sur "
-"stderr."
+"Utilisé avec les options obsolètes B<--list-missing> et B<--fail-missing>. "
+"Consultez L<dh_missing(1)> pour la documentation de ce fichier."
-# type: textblock
-#. type: textblock
-#: dh_install:70
-msgid ""
-"This may be useful if you have a large package and want to make sure that "
-"you don't miss installing newly added files in new upstream releases."
-msgstr ""
-"Cette option peut être utile dans le cas d'un gros paquet pour lequel on "
-"veut être certain de ne pas oublier l'installation d'un des nouveaux "
-"fichiers récemment ajoutés dans la version."
+# type: =item
+#. type: =item
+#: dh_install:73
+msgid "B<--list-missing>"
+msgstr "B<--list-missing>"
-# type: textblock
#. type: textblock
-#: dh_install:73
+#: dh_install:75
msgid ""
-"Note that files that are excluded from being moved via the B<-X> option are "
-"not warned about."
+"B<Deprecated>: Please use B<dh_missing --list-missing> instead. If you use "
+"this option, B<dh_install> will call B<dh_missing> with that option after it "
+"has processed all the files. Please see L<dh_missing(1)> for the "
+"documentation of this option."
msgstr ""
-"Nota : Les fichiers qui sont exclus par l'option B<-X> n'entraînent aucun "
-"message d'erreur."
+"B<Obsolète> : veuillez utiliser B<dh_missing --list-missing> à la place. Si "
+"vous utilisez cette option, B<dh_install> appellera B<dh_missing> avec cette "
+"option après le traitement de tous les fichiers. Consultez L<dh_missing(1)> "
+"pour la documentation de cette option."
# type: =item
#. type: =item
-#: dh_install:76
+#: dh_install:82
msgid "B<--fail-missing>"
msgstr "B<--fail-missing>"
-# type: textblock
#. type: textblock
-#: dh_install:78
+#: dh_install:84
msgid ""
-"This option is like B<--list-missing>, except if a file was missed, it will "
-"not only list the missing files, but also fail with a nonzero exit code."
-msgstr ""
-"Cette option est similaire à B<--list-missing>, sauf que, si un fichier est "
-"oublié, cela produira non seulement un message sur stderr mais également un "
-"échec du programme avec une valeur de retour différente de zéro."
-
-# type: textblock
-#. type: textblock
-#: dh_install:83 dh_installexamples:43
-msgid ""
-"Exclude files that contain I<item> anywhere in their filename from being "
-"installed."
+"B<Deprecated>: Please use B<dh_missing --fail-missing> instead. If you use "
+"this option, B<dh_install> will call B<dh_missing> with that option after it "
+"has processed all the files. Please see L<dh_missing(1)> for the "
+"documentation of this option."
msgstr ""
-"Exclut du traitement les fichiers qui comportent I<élément> n'importe où "
-"dans leur nom."
+"B<Obsolète> : veuillez utiliser B<dh_missing --fail-missing> à la place. Si "
+"vous utilisez cette option, B<dh_install> appellera B<dh_missing> avec cette "
+"option après le traitement de tous les fichiers. Consultez L<dh_missing(1)> "
+"pour la documentation de cette option."
# type: =item
#. type: =item
-#: dh_install:86 dh_movefiles:42
+#: dh_install:91 dh_installdirs:62 dh_installdocs:114 dh_installexamples:57
+#: dh_installinfo:50 dh_installman:100 dh_movefiles:45
msgid "B<--sourcedir=>I<dir>"
msgstr "B<--sourcedir=>I<répertoire>"
#. type: textblock
-#: dh_install:88
+#: dh_install:93
msgid "Look in the specified directory for files to be installed."
msgstr "Cherche dans le répertoire indiqué les fichiers à installer."
#. type: textblock
-#: dh_install:90
+#: dh_install:95
msgid ""
"Note that this is not the same as the B<--sourcedirectory> option used by "
"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
@@ -4095,13 +7520,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_install:95
+#: dh_install:100
msgid "B<--autodest>"
msgstr "B<--autodest>"
# type: textblock
#. type: textblock
-#: dh_install:97
+#: dh_install:102
msgid ""
"Guess as the destination directory to install things to. If this is "
"specified, you should not list destination directories in F<debian/package."
@@ -4116,7 +7541,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_install:102
+#: dh_install:107
msgid ""
"Strip off F<debian/tmp> (or the sourcedir if one is given) from the front of "
"the filename, if it is present, and install into the dirname of the "
@@ -4134,13 +7559,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_install:108
+#: dh_install:113
msgid "I<file|dir> ... I<destdir>"
msgstr "I<fichier|répertoire> ... I<répertoire_destination>"
# type: textblock
#. type: textblock
-#: dh_install:110
+#: dh_install:115
msgid ""
"Lists files (or directories) to install and where to install them to. The "
"files will be installed into the first package F<dh_install> acts on."
@@ -4149,27 +7574,134 @@ msgstr ""
"leur destination. Les fichiers indiqués seront installés dans le premier "
"paquet traité par B<dh_install>."
+#. type: textblock
+#: dh_install:334
+msgid "Here are some small examples of configuration files for dh_install."
+msgstr ""
+"Voici quelques courts exemples de fichiers de configuration pour dh_install."
+
+#. type: verbatim
+#: dh_install:336
+#, no-wrap
+msgid ""
+" # Install my-prog into usr/bin (as \"usr/bin/my-prog\")\n"
+" my-prog usr/bin\n"
+"\n"
+msgstr ""
+" # Installation de mon-prog dans usr/bin (« usr/bin/mon-prog »)\n"
+" mon-prog usr/bin\n"
+"\n"
+
+#. type: verbatim
+#: dh_install:339
+#, no-wrap
+msgid ""
+" # Install a plugins directory into usr/share/my-prog\n"
+" # (as \"usr/share/my-prog/plugins/\")\n"
+" plugins usr/share/my-prog\n"
+"\n"
+msgstr ""
+" # Installation d'un répertoire de greffons dans usr/share/mon-prog\n"
+" # (sous « usr/share/mon-prog/plugins/ »\")\n"
+" plugins usr/share/mon-prog\n"
+"\n"
+
+#. type: verbatim
+#: dh_install:343
+#, no-wrap
+msgid ""
+" # Install a file with spaces in into usr/share/my-prog/data\n"
+" # (as \"usr/share/my-prog/data/my datafile with spaces.txt\")\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" my${Space}datafile${Space}with${Space}spaces.txt usr/share/my-prog/data\n"
+"\n"
+msgstr ""
+" # Installation d'un fichier avec des espaces dans usr/share/mon-prog/data\n"
+" # (sous « usr/share/my-prog/data/mon_fichier-de-données avec espaces.txt »)\n"
+" # SUPPOSE COMPAT 13 où les motifs de substitution sont disponibles\n"
+" my${Space}fichier${Space}with${Space}spaces.txt usr/share/mon-prog/data\n"
+"\n"
+
+#. type: verbatim
+#: dh_install:348
+#, no-wrap
+msgid ""
+" # Install a library into the multi-arch lib directory\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" build/output/libfrop*.so.* usr/lib/${DEB_HOST_MULTIARCH}\n"
+"\n"
+msgstr ""
+" # Installe une bibliothèque dans le répertoire\n"
+" # de bibliothèques multi-arch\n"
+" # SUPPOSE COMPAT 13 où les motifs de substitution sont disponibles\n"
+" build/output/libfrop*.so.* usr/lib/${DEB_HOST_MULTIARCH}\n"
+"\n"
+
# type: =head1
#. type: =head1
-#: dh_install:254
+#: dh_install:352
msgid "LIMITATIONS"
-msgstr "LIMITES"
+msgstr "CONTRAINTES"
# type: verbatim
+#. type: textblock
+#: dh_install:354
+msgid ""
+"B<dh_install> cannot rename files or directories, it can only install them "
+"with the names they already have into wherever you want in the package build "
+"tree."
+msgstr ""
+"B<dh_install> ne peut pas renommer les fichiers ou les répertoires, il peut "
+"seulement les implanter n'importe où dans l'arbre de construction du paquet "
+"mais avec les noms qu'ils possèdent déjà."
+
+#. type: textblock
+#: dh_install:358
+msgid ""
+"However, renaming can be achieved by using B<dh-exec> with compatibility "
+"level 9 or later. An example debian/I<package>.install file using B<dh-"
+"exec> could look like:"
+msgstr ""
+"En revanche, le renommage peut être effectué en utilisant B<dh_exec> avec le "
+"niveau de compatibilité 9 ou supérieur. Un exemple de fichier debian/"
+"<paquet>.install utilisant B<dh_exec> ressemblerait à :"
+
#. type: verbatim
-#: dh_install:256
+#: dh_install:362
#, no-wrap
msgid ""
-"B<dh_install> cannot rename files or directories, it can only install them\n"
-"with the names they already have into wherever you want in the package\n"
-"build tree.\n"
-" \n"
+" #!/usr/bin/dh-exec\n"
+" debian/default.conf => /etc/my-package/start.conf\n"
+"\n"
msgstr ""
-"B<dh_install> ne peut pas renommer les fichiers ou les répertoires, il peut seulement\n"
-"les implanter n'importe où dans l'arbre de construction du paquet mais avec le nom\n"
-"qu'ils possèdent déjà.\n"
+" #!/usr/bin/dh-exec\n"
+" debian/default.conf => /etc/mon-paquet/start.conf\n"
"\n"
+#. type: textblock
+#: dh_install:365
+msgid "Please remember the following three things:"
+msgstr "Veuillez vous souvenir de ces trois remarques :"
+
+#. type: =item
+#: dh_install:369
+msgid ""
+"* The package must be using compatibility level 9 or later (see "
+"L<debhelper(7)>)"
+msgstr ""
+"* Le paquet doit utiliser le niveau de compatibilité 9 ou supérieur (voir "
+"L<debhelper(7)>) ;"
+
+#. type: =item
+#: dh_install:371
+msgid "* The package will need a build-dependency on dh-exec."
+msgstr "* Le paquet doit contenir une dépendance de construction sur dh_exec ;"
+
+#. type: =item
+#: dh_install:373
+msgid "* The install file must be marked as executable."
+msgstr "* Le fichier install doit être marqué comme exécutable."
+
# type: textblock
#. type: textblock
#: dh_installcatalogs:5
@@ -4178,13 +7710,13 @@ msgstr "dh_installcatalogs - Installer et inscrire les catalogues SGML"
# type: textblock
#. type: textblock
-#: dh_installcatalogs:16
+#: dh_installcatalogs:19
msgid "B<dh_installcatalogs> [S<I<debhelper options>>] [B<-n>]"
-msgstr "B<dh_installcatalogs> [I<options de debhelper>] [B<-n>]"
+msgstr "B<dh_installcatalogs> [I<options_de_debhelper>] [B<-n>]"
# type: textblock
#. type: textblock
-#: dh_installcatalogs:20
+#: dh_installcatalogs:23
msgid ""
"B<dh_installcatalogs> is a debhelper program that installs and registers "
"SGML catalogs. It complies with the Debian XML/SGML policy."
@@ -4195,7 +7727,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installcatalogs:23
+#: dh_installcatalogs:26
msgid ""
"Catalogs will be registered in a supercatalog, in F</etc/sgml/I<package>."
"cat>."
@@ -4205,24 +7737,24 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installcatalogs:26
+#: dh_installcatalogs:29
msgid ""
"This command automatically adds maintainer script snippets for registering "
"and unregistering the catalogs and supercatalogs (unless B<-n> is used). "
-"These snippets are inserted into the maintainer scripts by B<dh_installdeb>; "
-"see L<dh_installdeb(1)> for an explanation of Debhelper maintainer script "
-"snippets."
+"These snippets are inserted into the maintainer scripts and the B<triggers> "
+"file by B<dh_installdeb>; see L<dh_installdeb(1)> for an explanation of "
+"Debhelper maintainer script snippets."
msgstr ""
"Ce programme ajoute automatiquement des lignes de code aux scripts de "
"maintenance du paquet pour l'inscription et la radiation des catalogues et "
"des supercatalogues (sauf si B<-n> est indiqué). Ces lignes de codes sont "
-"insérées dans les scripts de maintenance par B<dh_installdeb>. Voir "
-"L<dh_installdeb(1)> pour obtenir des explications sur ces lignes de code "
-"ajoutées aux scripts de maintenance du paquet."
+"insérées dans les scripts de maintenance et dans le fichier I<triggers> par "
+"B<dh_installdeb>. Voir L<dh_installdeb(1)> pour obtenir des explications sur "
+"ces lignes de code ajoutées aux scripts de maintenance du paquet."
# type: textblock
#. type: textblock
-#: dh_installcatalogs:32
+#: dh_installcatalogs:36
msgid ""
"A dependency on B<sgml-base> will be added to B<${misc:Depends}>, so be sure "
"your package uses that variable in F<debian/control>."
@@ -4233,13 +7765,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installcatalogs:39
+#: dh_installcatalogs:43
msgid "debian/I<package>.sgmlcatalogs"
msgstr "debian/I<paquet>.sgmlcatalogs"
# type: textblock
#. type: textblock
-#: dh_installcatalogs:41
+#: dh_installcatalogs:45
msgid ""
"Lists the catalogs to be installed per package. Each line in that file "
"should be of the form C<I<source> I<dest>>, where I<source> indicates where "
@@ -4248,7 +7780,7 @@ msgid ""
"should start with F</usr/share/sgml/>."
msgstr ""
"Énumère les catalogues à installer par paquet. Chaque ligne de ce fichier "
-"doit être sous la forme C<I<source> I<destination>>, où I<source> indique "
+"doit être sous la forme C<I<source> I<destination>>, où I<source> indique "
"l'emplacement du catalogue dans l'arborescence source et où I<destination> "
"indique son emplacement de destination au sein de l'arborescence de "
"construction du paquet binaire. I<destination> doit commencer par F</usr/"
@@ -4256,17 +7788,18 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installcatalogs:55 dh_installinit:65
-msgid "Do not modify F<postinst>/F<postrm>/F<prerm> scripts."
+#: dh_installcatalogs:62
+msgid ""
+"Do not modify F<postinst>/F<postrm>/F<prerm> scripts nor add an activation "
+"trigger."
msgstr ""
-"Empêche la modification des scripts de maintenance F<postinst>, F<postrm>, "
-"F<prerm>."
+"Ne modifie pas les scripts de maintenance F<postinst>, F<postrm>, F<prerm> "
+"ni ajoute de trigger d'activation."
# type: textblock
#. type: textblock
-#: dh_installcatalogs:61 dh_installdocs:127 dh_installemacsen:74
-#: dh_installinit:142 dh_installmodules:56 dh_installudev:57 dh_installwm:56
-#: dh_usrlocal:51
+#: dh_installcatalogs:69 dh_installemacsen:77 dh_installinit:206
+#: dh_installmodules:59 dh_installudev:52 dh_installwm:68 dh_usrlocal:62
msgid ""
"Note that this command is not idempotent. L<dh_prep(1)> should be called "
"between invocations of this command. Otherwise, it may cause multiple "
@@ -4279,13 +7812,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installcatalogs:126
+#: dh_installcatalogs:132
msgid "F</usr/share/doc/sgml-base-doc/>"
msgstr "F</usr/share/doc/sgml-base-doc/>"
# type: textblock
#. type: textblock
-#: dh_installcatalogs:130
+#: dh_installcatalogs:136
msgid "Adam Di Carlo <aph@debian.org>"
msgstr "Adam Di Carlo <aph@debian.org>"
@@ -4300,17 +7833,21 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installchangelogs:14
+#: dh_installchangelogs:18
+#, fuzzy
+#| msgid ""
+#| "B<dh_installchangelogs> [S<I<debhelper options>>] [B<-k>] [B<-X>I<item>] "
+#| "[I<upstream>]"
msgid ""
"B<dh_installchangelogs> [S<I<debhelper options>>] [B<-k>] [B<-X>I<item>] "
-"[I<upstream>]"
+"[B<--no-trim>] [I<upstream>]"
msgstr ""
-"B<dh_installchangelogs> [I<options de debhelper>] [B<-k>] [B<-X>I<élément>] "
+"B<dh_installchangelogs> [I<options_de_debhelper>] [B<-k>] [B<-X>I<élément>] "
"[I<journal-amont>]"
# type: textblock
#. type: textblock
-#: dh_installchangelogs:18
+#: dh_installchangelogs:22
msgid ""
"B<dh_installchangelogs> is a debhelper program that is responsible for "
"installing changelogs into package build directories."
@@ -4321,68 +7858,95 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installchangelogs:21
+#: dh_installchangelogs:25
msgid ""
"An upstream F<changelog> file may be specified as an option. If none is "
-"specified, it looks for files with names that seem likely to be changelogs. "
-"(In compatibility level 7 and above.)"
+"specified, B<dh_installchangelogs> may look for files with names that seem "
+"likely to be changelogs as described in the next paragraphs."
msgstr ""
"Un journal amont des modifications (upstream F<changelog>) peut être indiqué "
-"en option. Si rien n'est indiqué, le processus cherche des fichiers portant "
-"des noms susceptibles d'être des changelogs. (à partir de la version 7)."
+"en option. Si rien n'est indiqué, B<dh_installchangelogs> cherche des "
+"fichiers portant des noms susceptibles d'être des changelog tel que décrit "
+"dans les paragraphes suivants."
+
+#. type: textblock
+#: dh_installchangelogs:29
+msgid ""
+"In non-native packages, B<dh_installchangelogs> will first look for "
+"changelog files installed by the upstream build system into F<< usr/share/"
+"doc/I<package> >> (of the package build directory) and rename the most "
+"likely candidate (if any) to F<< usr/share/doc/I<package>/changelog >>. "
+"Note that B<dh_installchangelogs> does I<not> look into any source directory "
+"(such as F<debian/tmp>). Otherwise, B<dh_installchangelogs> (at "
+"compatibility level 7 or any later) will look for changelog files in the "
+"source directory (e.g. the root or the F<docs> subdirectory). It will look "
+"for F<changelog>, F<changes> and F<history> optionally with common "
+"extensions (such as F<.txt>, F<.md> and F<.rst>)."
+msgstr ""
+"Dans les paquets non natifs, B<dh_installchangelogs> cherchera d'abord des "
+"changelogs installés dans le système de construction amont dans F<< usr/"
+"share/doc/I<paquet> >> (dans le répertoire de construction du paquet) et "
+"renommera le plus probable en F<< usr/share/doc/I<paquet>/changelog >>. "
+"Veuillez noter que B<dh_installchangelogs> ne cherche I<pas> dans le "
+"répertoire source (comme F<debian/tmp>). Autrement, B<dh_installchangelogs> "
+"(à partir de la version 7) cherchera des fichiers journaux dans le "
+"répertoire source (par exemple, la racine ou le sous-répertoire F<docs>). Il "
+"cherchera F<changelog>, F<changes> et F<history> facultativement avec leurs "
+"extensions courantes (telles que F<.txt>, F<.md> et F<.rst>)."
-# type: textblock
#. type: textblock
-#: dh_installchangelogs:25
-#, fuzzy
-#| msgid ""
-#| "Automatically installed into usr/share/doc/I<package>/ in the package "
-#| "build directory."
+#: dh_installchangelogs:41
msgid ""
-"If there is an upstream F<changelog> file, it will be be installed as F<usr/"
-"share/doc/package/changelog> in the package build directory."
+"If a changelog file is specified and is an F<html> file (determined by file "
+"extension), it will be installed as F<usr/share/doc/package/changelog.html> "
+"instead. If the html changelog is converted to plain text, that variant can "
+"be specified as a second parameter. When no plain text variant is specified, "
+"a short F<usr/share/doc/package/changelog> is generated, pointing readers at "
+"the html changelog file."
msgstr ""
-"Automatiquement installés sous usr/share/doc/I<paquet>/ dans le répertoire "
-"de construction du paquet."
+"Si un fichier changelog est un fichier F<HTML> (d'après son extension), il "
+"sera installé dans F<usr/share/doc/paquet/changelog.html> à la place. Si le "
+"changelog HTML est converti en texte simple, cette variante peut être "
+"définie comme un second paramètre. Lorsque aucune variante texte simple "
+"n'est spécifiée, un court F<usr/share/doc/paquet/changelog> est généré, "
+"dirigeant les lecteurs vers le changelog HTML."
#. type: textblock
-#: dh_installchangelogs:28
+#: dh_installchangelogs:48
msgid ""
-"If the upstream changelog is is a F<html> file (determined by file "
-"extension), it will be installed as F<usr/share/doc/package/changelog.html> "
-"instead. If the html changelog is converted to plain text, that variant can "
-"be specified as a second upstream changelog file. When no plain text variant "
-"is specified, a short F<usr/share/doc/package/changelog> is generated, "
-"pointing readers at the html changelog file."
+"The B<debchange>-style Debian changelogs are trimmed to include only entries "
+"more recent than the release date of I<oldstable>. No trimming will be "
+"performed if the B<--no-trim> option is passed or if the "
+"B<DEB_BUILD_OPTIONS> environment variable contains B<notrimdch>."
msgstr ""
# type: =item
#. type: =item
-#: dh_installchangelogs:39
+#: dh_installchangelogs:57
msgid "F<debian/changelog>"
msgstr "F<debian/changelog>"
# type: =item
#. type: =item
-#: dh_installchangelogs:41
+#: dh_installchangelogs:59
msgid "F<debian/NEWS>"
msgstr "F<debian/NEWS>"
# type: =item
#. type: =item
-#: dh_installchangelogs:43
+#: dh_installchangelogs:61
msgid "debian/I<package>.changelog"
msgstr "debian/I<paquet>.changelog"
# type: =item
#. type: =item
-#: dh_installchangelogs:45
+#: dh_installchangelogs:63
msgid "debian/I<package>.NEWS"
msgstr "debian/I<paquet>.NEWS"
# type: textblock
#. type: textblock
-#: dh_installchangelogs:47
+#: dh_installchangelogs:65
msgid ""
"Automatically installed into usr/share/doc/I<package>/ in the package build "
"directory."
@@ -4392,7 +7956,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installchangelogs:50
+#: dh_installchangelogs:68
msgid ""
"Use the package specific name if I<package> needs a different F<NEWS> or "
"F<changelog> file."
@@ -4402,19 +7966,19 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installchangelogs:53
+#: dh_installchangelogs:71
msgid ""
"The F<changelog> file is installed with a name of changelog for native "
"packages, and F<changelog.Debian> for non-native packages. The F<NEWS> file "
"is always installed with a name of F<NEWS.Debian>."
msgstr ""
"Le fichier F<changelog> est installé avec le nom changelog pour les paquets "
-"natifs et F<changelog.Debian> pour les paquet non natifs. le fichier F<NEWS> "
-"est toujours installé avec le nom F<NEWS.Debian>."
+"natifs et F<changelog.Debian> pour les paquets non natifs. Le fichier "
+"F<NEWS> est toujours installé avec le nom F<NEWS.Debian>."
# type: textblock
#. type: textblock
-#: dh_installchangelogs:65
+#: dh_installchangelogs:83
msgid ""
"Keep the original name of the upstream changelog. This will be accomplished "
"by installing the upstream changelog as F<changelog>, and making a symlink "
@@ -4430,23 +7994,44 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installchangelogs:73
+#: dh_installchangelogs:91
msgid ""
"Exclude upstream F<changelog> files that contain I<item> anywhere in their "
"filename from being installed."
msgstr ""
-"Exclut du traitement les journaux amonts qui comportent I<élément> n'importe "
+"Exclut du traitement les journaux amont qui comportent I<élément> n'importe "
"où dans leur nom."
+#. type: textblock
+#: dh_installchangelogs:94
+msgid "Note that directory name of the changelog is also part of the match."
+msgstr ""
+"Note : le nom de dossier du changelog fait aussi partie de la correspondance."
+
# type: =item
#. type: =item
-#: dh_installchangelogs:76
+#: dh_installchangelogs:96
+#, fuzzy
+#| msgid "B<--no-start>"
+msgid "B<--no-trim>"
+msgstr "B<--no-start>"
+
+#. type: textblock
+#: dh_installchangelogs:98
+msgid ""
+"Install the full changelog, not its trimmed version that includes only "
+"recent entries."
+msgstr ""
+
+# type: =item
+#. type: =item
+#: dh_installchangelogs:101
msgid "I<upstream>"
msgstr "I<journal-amont>"
# type: textblock
#. type: textblock
-#: dh_installchangelogs:78
+#: dh_installchangelogs:103
msgid "Install this file as the upstream changelog."
msgstr ""
"Installe ce fichier en tant que journal amont de suivi des modifications."
@@ -4459,13 +8044,13 @@ msgstr "dh_installcron - Installer les scripts cron dans etc/cron.*"
# type: textblock
#. type: textblock
-#: dh_installcron:14
+#: dh_installcron:17
msgid "B<dh_installcron> [S<B<debhelper options>>] [B<--name=>I<name>]"
-msgstr "B<dh_installcron> [B<option de debhelper>] [B<--name=>I<nom>]"
+msgstr "B<dh_installcron> [B<options_de_debhelper>] [B<--name=>I<nom>]"
# type: textblock
#. type: textblock
-#: dh_installcron:18
+#: dh_installcron:21
msgid ""
"B<dh_installcron> is a debhelper program that is responsible for installing "
"cron scripts."
@@ -4475,37 +8060,45 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installcron:25
+#: dh_installcron:28
msgid "debian/I<package>.cron.daily"
msgstr "debian/I<paquet>.cron.daily"
# type: =item
#. type: =item
-#: dh_installcron:27
+#: dh_installcron:30
msgid "debian/I<package>.cron.weekly"
msgstr "debian/I<paquet>.cron.weekly"
# type: =item
#. type: =item
-#: dh_installcron:29
+#: dh_installcron:32
msgid "debian/I<package>.cron.monthly"
msgstr "debian/I<paquet>.cron.monthly"
# type: =item
#. type: =item
-#: dh_installcron:31
+#: dh_installcron:34
+#, fuzzy
+#| msgid "debian/I<package>.cron.daily"
+msgid "debian/I<package>.cron.yearly"
+msgstr "debian/I<paquet>.cron.daily"
+
+# type: =item
+#. type: =item
+#: dh_installcron:36
msgid "debian/I<package>.cron.hourly"
msgstr "debian/I<paquet>.cron.hourly"
# type: =item
#. type: =item
-#: dh_installcron:33
+#: dh_installcron:38
msgid "debian/I<package>.cron.d"
msgstr "debian/I<paquet>.cron.d"
# type: textblock
#. type: textblock
-#: dh_installcron:35
+#: dh_installcron:40
msgid ""
"Installed into the appropriate F<etc/cron.*/> directory in the package build "
"directory."
@@ -4515,15 +8108,15 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installcron:44 dh_installifupdown:43 dh_installinit:110
-#: dh_installlogcheck:46 dh_installlogrotate:26 dh_installmodules:46
-#: dh_installpam:35 dh_installppp:39 dh_installudev:39
+#: dh_installcron:49 dh_installifupdown:46 dh_installinit:174
+#: dh_installlogcheck:49 dh_installlogrotate:29 dh_installmodules:49
+#: dh_installpam:42 dh_installppp:42 dh_installudev:38 dh_systemd_enable:94
msgid "B<--name=>I<name>"
msgstr "B<--name=>I<nom>"
# type: textblock
#. type: textblock
-#: dh_installcron:46
+#: dh_installcron:51
msgid ""
"Look for files named F<debian/package.name.cron.*> and install them as F<etc/"
"cron.*/name>, instead of using the usual files and installing them as the "
@@ -4541,13 +8134,13 @@ msgstr "dh_installdeb - Installer des fichiers dans le répertoire DEBIAN"
# type: textblock
#. type: textblock
-#: dh_installdeb:14
+#: dh_installdeb:17
msgid "B<dh_installdeb> [S<I<debhelper options>>]"
-msgstr "B<dh_installdeb> [I<options de debhelper>]"
+msgstr "B<dh_installdeb> [I<options_de_debhelper>]"
# type: textblock
#. type: textblock
-#: dh_installdeb:18
+#: dh_installdeb:21
msgid ""
"B<dh_installdeb> is a debhelper program that is responsible for installing "
"files into the F<DEBIAN> directories in package build directories with the "
@@ -4560,108 +8153,468 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installdeb:26
+#: dh_installdeb:29
msgid "I<package>.postinst"
msgstr "I<paquet>.postinst"
# type: =item
#. type: =item
-#: dh_installdeb:28
+#: dh_installdeb:31
msgid "I<package>.preinst"
msgstr "I<paquet>.preinst"
# type: =item
#. type: =item
-#: dh_installdeb:30
+#: dh_installdeb:33
msgid "I<package>.postrm"
msgstr "I<paquet>.postrm"
# type: =item
#. type: =item
-#: dh_installdeb:32
+#: dh_installdeb:35
msgid "I<package>.prerm"
msgstr "I<paquet>.prerm"
# type: textblock
#. type: textblock
-#: dh_installdeb:34
+#: dh_installdeb:37
msgid "These maintainer scripts are installed into the F<DEBIAN> directory."
-msgstr "Ces scripts de maintenance sont installés dans le répertoire F<DEBIAN>"
+msgstr ""
+"Ces scripts de maintenance sont installés dans le répertoire F<DEBIAN>."
-# type: textblock
#. type: textblock
-#: dh_installdeb:36
+#: 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 ""
-"Dans les scripts, l'item B<#DEBHELPER#> est remplacé par les lignes de code "
-"générées par les autres commandes debhelper."
+"B<dh_installdeb> réalisera la substitution des items connus du format "
+"B<#TOKEN#>. En général, les scripts voudront inclure l'item B<#DEBHELPER#> "
+"pour bénéficier des scripts de l'interpréteur de commandes générés par les "
+"commandes debhelper (y compris ceux de B<dh_installdeb> quand il traite les "
+"fichiers I<paquet>.maintscript)."
+
+#. type: textblock
+#: dh_installdeb:45
+msgid ""
+"The B<#DEBHELPER#> token should be placed on its own line as it is often "
+"replaced by a multi-line shell script."
+msgstr ""
+"L'item B<#DEBHELPER#> devrait être placé sur sa ligne propre parce qu'il est "
+"souvent remplacé par un script multiligne de l'interpréteur de commandes."
# type: =item
#. type: =item
-#: dh_installdeb:39
+#: dh_installdeb:48
msgid "I<package>.triggers"
msgstr "I<paquet>.triggers"
# type: =item
#. type: =item
-#: dh_installdeb:41
+#: dh_installdeb:50
msgid "I<package>.shlibs"
msgstr "I<paquet>.shlibs"
# type: textblock
#. type: textblock
-#: dh_installdeb:43
+#: dh_installdeb:52
msgid "These control files are installed into the F<DEBIAN> directory."
msgstr "Ces fichiers de contrôle sont installés dans le répertoire F<DEBIAN>."
+#. type: textblock
+#: dh_installdeb:54
+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 ""
+"Veuillez noter que I<paquet>.shlibs est uniquement installé si le niveau de "
+"compatibilité est 9 ou inférieur. En version 10, veuillez utiliser "
+"L<dh_makeshlibs(1)>."
+
# type: =item
#. type: =item
-#: dh_installdeb:45
+#: dh_installdeb:57
msgid "I<package>.conffiles"
msgstr "I<paquet>.conffiles"
-# type: textblock
#. type: textblock
-#: dh_installdeb:47
-msgid "This control file will be installed into the F<DEBIAN> directory."
-msgstr "Ce fichier de contrôle sera installé dans le répertoire F<DEBIAN>."
+#: dh_installdeb:59
+msgid ""
+"This file will be installed into the F<DEBIAN> directory. The provided file "
+"will be enriched by debhelper to include all the B<conffiles> auto-detected "
+"by debhelper (the maintainer should not list anything there as debhelper "
+"assumes it should handle that part)."
+msgstr ""
-# type: textblock
#. type: textblock
-#: dh_installdeb:49
+#: 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."
+"This file is primarily useful for using \"special\" entries such as the B<< "
+"remove-on-upgrade >> feature from dpkg."
msgstr ""
-"À partir du niveau de compatibilité v3, tous les fichiers du répertoire "
-"F<etc/> du paquet construit sont automatiquement marqués en tant que "
-"fichiers de configuration. De ce fait, il est inutile de les énumérer ici."
# type: =item
#. type: =item
-#: dh_installdeb:53
+#: dh_installdeb:67
msgid "I<package>.maintscript"
msgstr "I<paquet>.maintscript"
#. type: textblock
-#: dh_installdeb:55
+#: dh_installdeb:69
msgid ""
"Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands and "
-"parameters. Any shell metacharacters will be escaped, so arbitrary shell "
-"code cannot be inserted here. For example, a line such as C<mv_conffile /"
-"etc/oldconffile /etc/newconffile> will insert maintainer script snippets "
-"into all maintainer scripts sufficient to move that conffile."
+"parameters. However, the \"maint-script-parameters\" should I<not> be "
+"included as debhelper will add those automatically."
msgstr ""
-"Les lignes de ce fichier correspondent aux commandes et aux paramètres de "
-"L<dpkg-maintscript-helper(1)>. Comme tous les métacaractères de "
-"l'interpréteur de commande seront interprétés arbitrairement, ces lignes ne "
-"peuvent pas être insérées ici. Par exemple, une ligne comme C<mv_conffile /"
-"etc/oldconffile /etc/newconffile> insérera des extraits du script de "
-"maintenance dans tous les scripts de maintenance suffisants pour déplacer le "
-"fichier F<conffile>."
+"Les lignes de ce fichier correspondent à des commandes et leurs paramètres "
+"de L<dpkg-maintscript-helper(1)>. « maint-script-parameters » ne devrait "
+"I<pas> être inclus car debhelper l'ajoutera automatiquement."
+
+#. type: textblock
+#: dh_installdeb:73
+msgid "Example:"
+msgstr "Exemple :"
+
+#. type: verbatim
+#: dh_installdeb:75
+#, no-wrap
+msgid ""
+" # Correct\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo\n"
+" # INCORRECT\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo -- \"$@\"\n"
+"\n"
+msgstr ""
+" # Correct\n"
+" rm_conffile /etc/obsolete.conf 0.2~ toto\n"
+" # INCORRECT\n"
+" rm_conffile /etc/obsolete.conf 0.2~ toto -- \"$@\"\n"
+"\n"
+
+#. type: textblock
+#: dh_installdeb:80
+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 "
+"C<mv_conffile /etc/oldconffile /etc/newconffile> will insert maintainer "
+"script snippets into all maintainer scripts sufficient to move that conffile."
+msgstr ""
+"Dans les niveaux de compatibilité 10 ou suivants, tous les métacaractères de "
+"l'interpréteur de commandes seront protégés, aussi du code arbitraire "
+"d'interpréteur de commandes ne peut pas être inséré ici. Par exemple, une "
+"ligne comme C<mv_conffile /etc/oldconffile /etc/newconffile> insérera des "
+"extraits du script de maintenance dans tous les scripts de maintenance, "
+"suffisant pour déplacer le fichier F<conffile>."
+
+#. type: textblock
+#: dh_installdeb:86
+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 "
+"embed arbitrary shell code in earlier compat levels."
+msgstr ""
+"L'intention était aussi d'échapper les métacaractères du shell dans les "
+"modes précédents. Cependant, cela ne fonctionnait pas correctement et il "
+"était possible d'embarquer du code shell arbitraire dans les modes "
+"précédents."
+
+#. type: textblock
+#: dh_installdeb:90
+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 ""
+"L'outil B<dh_installdeb> effectuera quelques validations basiques sur "
+"certaines commandes listées dans ce fichier pour éviter les erreurs "
+"habituelles. Cette validation renvoie un avertissement depuis la version 10, "
+"et une erreur en version 12."
+
+#. type: textblock
+#: dh_installdeb:95
+msgid ""
+"Where possible, B<dh_installdeb> may choose to rewrite some or all of the "
+"entries into equivalent features supported in dpkg without relying on "
+"maintainer scripts at its sole discretion (examples include rewriting "
+"B<rm_conffile> into dpkg's B<remove-on-upgrade>). The minimum requirement "
+"for activating this feature is that debhelper runs in compat 10 or later."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:111 dh_installdebconf:76
+msgid "B<-D>I<TOKEN=VALUE>, B<--define> I<TOKEN=VALUE>"
+msgstr "B<-D>I<ITEM=VALEUR>, B<--define> I<ITEM=VALEUR>"
+
+#. type: textblock
+#: dh_installdeb:113 dh_installdebconf:78
+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 ""
+"Définit les items qui doivent être remplacés dans les scripts du responsable "
+"quand ils sont créés. Veuillez noter que les contraintes décrites dans L</"
+"Restrictions dans les noms d'item> s'appliquent aussi aux items définis en "
+"ligne de commande. Les noms d'item non valables déclencheront une erreur."
+
+#. type: textblock
+#: dh_installdeb:118 dh_installdebconf:83
+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 ""
+"Dans un cas simple, ce paramètre fera que B<< #I<ITEM># >> sera remplacé par "
+"I<VALEUR>. Si I<VALEUR> commence par un signe I<@> littéral, alors I<VALEUR> "
+"est censé pointer vers un fichier contenant la valeur réelle à insérer."
+
+#. type: textblock
+#: dh_installdeb:123 dh_installdebconf:88
+msgid ""
+"An explicit declared token with this parameter will replace built-in tokens."
+msgstr ""
+"Un item déclaré de façon explicite avec ce paramètre remplacera les items "
+"internes."
+
+#. type: textblock
+#: dh_installdeb:126 dh_installdebconf:91
+msgid "Test examples to aid with the understanding:"
+msgstr "Exemples de tests pour aider à mieux comprendre :"
+
+#. type: verbatim
+#: dh_installdeb:128
+#, 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 ""
+"\tcat >> debian/postinst <<EOF\n"
+"\t#SIMPLE#\n"
+"\t#FILEBASED#\n"
+"\tEOF\n"
+"\techo -n \"valeur_complexe\" > un_fichier\n"
+" dh_installdeb --define SIMPLE=direct --define FILEBASED=@un_fichier\n"
+"\n"
+
+#. type: textblock
+#: dh_installdeb:135 dh_installdebconf:100
+msgid ""
+"In this example, B<#SIMPLE#> will expand to B<direct> and B<#FILEBASED#> "
+"will expand to B<Complex value>."
+msgstr ""
+"Dans cet exemple, B<#SIMPLE#> sera développé en B<direct> et B<#FILEBASED#> "
+"sera développé en B<valeur_complexe>."
+
+#. type: textblock
+#: dh_installdeb:138
+msgid ""
+"It is also possible to 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 ""
+"Il est aussi possible de fixer des valeurs spécifiques à un paquet pour un "
+"item donné. Cela est utilisé quand B<dh_installdeb> agit sur plusieurs "
+"paquets qui ont besoin de valeurs distinctes pour le même item. Cela est "
+"obtenu en préfixant le nom de l'item par B<< pkg.I<nom-paquet>. >>."
+
+#. type: textblock
+#: dh_installdeb:143 dh_installdebconf:108
+msgid "This can be used as in the following example:"
+msgstr "Cela peut être utilisé comme dans l'exemple suivant :"
+
+#. type: verbatim
+#: dh_installdeb:145
+#, 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 ""
+"\tcat >> debian/toto.postinst <<EOF\n"
+"\t# Script pour #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/titi.postinst <<EOF\n"
+"\t# Script pour #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/truc.postinst <<EOF\n"
+"\t# Script pour #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+" dh_installdeb -ptoto -ptiti -ptruc --define TOKEN=default --define pkg.titi.TOKEN=valeur-unique-titi \\\n"
+" --define pkg.truc.TOKEN=valeur-unique-truc\n"
+"\n"
+
+#. type: textblock
+#: dh_installdeb:160
+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 ""
+"Dans cet exemple, B<#TOKEN#> sera développé en B<default> dans F<debian/toto."
+"postinst>, en B<valeur-unique-titi> dans F<debian/titi.postinst> et en "
+"B<valeur-unique-truc> dans F<debian/truc.postinst>."
+
+#. type: textblock
+#: dh_installdeb:164
+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 ""
+"Notez que les items de B<#pkg.*#> seront visibles dans tous les scripts "
+"actifs. Par exemple, il est possible de faire référence à B<#pkg.titi."
+"TOKEN#> dans F<debian/toto.postinst> et il sera remplacé par B<valeur-unique-"
+"titi>."
+
+#. type: =head1
+#: dh_installdeb:170 dh_installdebconf:135
+msgid "SUBSTITUTION IN MAINTAINER SCRIPTS"
+msgstr "SUBSTITUTION DANS LES SCRIPTS DU RESPONSABLE"
+
+#. type: textblock
+#: dh_installdeb:172
+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 ""
+"B<dh_installdeb> remplacera automatiquement les items suivants dans un "
+"script fourni par le responsable (s'il n'est pas remplacé au moyen de B<-D> "
+"ou B<--define>) :"
+
+# type: =head1
+#. type: =item
+#: dh_installdeb:177
+msgid "#DEBHELPER#"
+msgstr "#DEBHELPER#"
+
+#. type: textblock
+#: dh_installdeb:179
+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 ""
+"Cet item est par défaut remplacé par les lignes de code générées par les "
+"commandes de debhelper. Cela comprend les lignes de code générées par "
+"B<dh_installdeb> à partir du fichier I<paquet>.maintscript (s'il est "
+"présent)."
+
+#. type: =item
+#: dh_installdeb:183 dh_installdebconf:142
+msgid "#DEB_HOST_I<NAME>#, #DEB_BUILD_I<NAME>#, #DEB_TARGET_I<NAME>#"
+msgstr "#DEB_HOST_I<NOM>#, #DEB_BUILD_I<NOM>#, #DEB_TARGET_I<NOM>#"
+
+#. type: textblock
+#: dh_installdeb:185 dh_installdebconf:144
+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 ""
+"Ces items sont remplacés par leur variable respective venant de L<dpkg-"
+"architecture(1)>. Dans presque tous les cas, vous voudrez utiliser la "
+"variante B<< #DEB_HOST_I<NOM> >> dans un script pour vous assurer d'obtenir "
+"la valeur correcte lors d'une construction croisée."
+
+#. type: textblock
+#: dh_installdeb:190 dh_installdebconf:149
+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 ""
+"Dans un souci de qualité, les items avec ce motif qui ne correspondent pas à "
+"une variable de L<dpkg-architecture(1)> seront laissés tels quels."
+
+#. type: =item
+#: dh_installdeb:193 dh_installdebconf:152
+msgid "#ENV.I<NAME>#"
+msgstr "#ENV.I<NOM>#"
+
+#. type: textblock
+#: dh_installdeb:195 dh_installdebconf:154
+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 ""
+"Les items de cette forme seront remplacés par la valeur de la variable "
+"d'environnement correspondante. Si la variable d'environnement n'est pas "
+"définie, l'item est remplacé par une chaîne vide."
+
+#. type: textblock
+#: dh_installdeb:200 dh_installdebconf:159
+msgid ""
+"Note that there are limits on which names can be used (see L</Limitations in "
+"token names>)."
+msgstr ""
+"Notez qu'il y a des restrictions sur les noms pouvant être utilisés voir L</"
+"Restrictions dans les noms d'item>)."
+
+#. type: =item
+#: dh_installdeb:203 dh_installdebconf:162
+msgid "#PACKAGE#"
+msgstr "#PACKAGE#"
+
+#. type: textblock
+#: dh_installdeb:205 dh_installdebconf:164
+msgid ""
+"This token is by default replaced by the package name, which will contain "
+"the concrete script."
+msgstr ""
+"Cet item est remplacé par défaut par le nom du paquet qui contiendra le "
+"script réel."
+
+#. type: =head2
+#: dh_installdeb:210 dh_installdebconf:169
+msgid "Limitations in token names"
+msgstr "Restrictions dans les noms d'item"
+
+#. type: textblock
+#: dh_installdeb:212 dh_installdebconf:171
+msgid ""
+"All tokens intended to be substituted must match the regex: #[A-Za-z0-9_.+]+#"
+msgstr ""
+"Tous les items destinés à être remplacés doivent correspondre à l'expression "
+"rationnelle : #[A-Za-z0-9_.+]+#"
+
+#. type: textblock
+#: dh_installdeb:214
+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 ""
+"Les items qui ne correspondent pas à cette expression rationnelle seront "
+"ignorés silencieusement s'ils sont présents dans un modèle de script. Les "
+"noms d'item non valables passés à B<-D> ou B<--define> feront que "
+"B<dh_installdeb> rejettera la commande avec une erreur dans la plupart des "
+"cas."
# type: textblock
#. type: textblock
@@ -4675,15 +8628,15 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdebconf:14
+#: dh_installdebconf:17
msgid ""
"B<dh_installdebconf> [S<I<debhelper options>>] [B<-n>] [S<B<--> I<params>>]"
msgstr ""
-"B<dh_installdebconf> [I<options de debhelper>] [B<-n>] [B<--> I<paramètres>]"
+"B<dh_installdebconf> [I<options_de_debhelper>] [B<-n>] [B<--> I<paramètres>]"
# type: textblock
#. type: textblock
-#: dh_installdebconf:18
+#: dh_installdebconf:21
msgid ""
"B<dh_installdebconf> is a debhelper program that is responsible for "
"installing files used by debconf into package build directories."
@@ -4694,7 +8647,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdebconf:21
+#: dh_installdebconf:24
msgid ""
"It also automatically generates the F<postrm> commands needed to interface "
"with debconf. The commands are added to the maintainer scripts by "
@@ -4709,7 +8662,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdebconf:26
+#: dh_installdebconf:29
msgid ""
"Note that if you use debconf, your package probably needs to depend on it "
"(it will be added to B<${misc:Depends}> by this program)."
@@ -4719,7 +8672,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdebconf:29
+#: dh_installdebconf:32
msgid ""
"Note that for your config script to be called by B<dpkg>, your F<postinst> "
"needs to source debconf's confmodule. B<dh_installdebconf> does not install "
@@ -4734,13 +8687,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installdebconf:38
+#: dh_installdebconf:41
msgid "debian/I<package>.config"
msgstr "debian/I<paquet>.config"
# type: textblock
#. type: textblock
-#: dh_installdebconf:40
+#: dh_installdebconf:43
msgid ""
"This is the debconf F<config> script, and is installed into the F<DEBIAN> "
"directory in the package build directory."
@@ -4750,7 +8703,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdebconf:43
+#: dh_installdebconf:46
msgid ""
"Inside the script, the token B<#DEBHELPER#> is replaced with shell script "
"snippets generated by other debhelper commands."
@@ -4760,13 +8713,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installdebconf:46
+#: dh_installdebconf:49
msgid "debian/I<package>.templates"
msgstr "debian/I<paquet>.templates"
# type: textblock
#. type: textblock
-#: dh_installdebconf:48
+#: dh_installdebconf:51
msgid ""
"This is the debconf F<templates> file, and is installed into the F<DEBIAN> "
"directory in the package build directory."
@@ -4776,24 +8729,24 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installdebconf:51
+#: dh_installdebconf:54
msgid "F<debian/po/>"
msgstr "F<debian/po/>"
# type: textblock
#. type: textblock
-#: dh_installdebconf:53
+#: dh_installdebconf:56
msgid ""
"If this directory is present, this program will automatically use "
"L<po2debconf(1)> to generate merged templates files that include the "
"translations from there."
msgstr ""
"Si ce répertoire existe, ce programme utilisera L<po2debconf(1)> pour "
-"produire un fichier multilingues de modèles."
+"produire un fichier multilingue de modèles."
# type: textblock
#. type: textblock
-#: dh_installdebconf:57
+#: dh_installdebconf:60
msgid "For this to work, your package should build-depend on F<po-debconf>."
msgstr ""
"Pour que cela fonctionne, le paquet doit dépendre, pour sa construction "
@@ -4801,16 +8754,182 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdebconf:67
+#: dh_installdebconf:70
msgid "Do not modify F<postrm> script."
msgstr "Empêche la modification du script de maintenance F<postrm>."
# type: textblock
#. type: textblock
-#: dh_installdebconf:71
+#: dh_installdebconf:74
msgid "Pass the params to B<po2debconf>."
msgstr "Passe les paramètres à B<po2debconf>."
+#. type: verbatim
+#: dh_installdebconf:93
+#, fuzzy, 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"
+msgid ""
+"\tcat >> debian/config <<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 ""
+"\tcat >> debian/postinst <<EOF\n"
+"\t#SIMPLE#\n"
+"\t#FILEBASED#\n"
+"\tEOF\n"
+"\techo -n \"valeur_complexe\" > un_fichier\n"
+" dh_installdeb --define SIMPLE=direct --define FILEBASED=@un_fichier\n"
+"\n"
+
+#. type: textblock
+#: dh_installdebconf:103
+#, fuzzy
+#| msgid ""
+#| "It is also possible to 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>. >>."
+msgid ""
+"It is also possible to set package-specific values for a given token. This "
+"is useful when B<dh_installdebconf> 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 ""
+"Il est aussi possible de fixer des valeurs spécifiques à un paquet pour un "
+"item donné. Cela est utilisé quand B<dh_installdeb> agit sur plusieurs "
+"paquets qui ont besoin de valeurs distinctes pour le même item. Cela est "
+"obtenu en préfixant le nom de l'item par B<< pkg.I<nom-paquet>. >>."
+
+#. type: verbatim
+#: dh_installdebconf:110
+#, fuzzy, 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"
+msgid ""
+"\tcat >> debian/foo.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/bar.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/baz.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+" dh_installdebconf -pfoo -pbar -pbaz --define TOKEN=default --define pkg.bar.TOKEN=unique-bar-value \\\n"
+" --define pkg.baz.TOKEN=unique-baz-value\n"
+"\n"
+msgstr ""
+"\tcat >> debian/toto.postinst <<EOF\n"
+"\t# Script pour #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/titi.postinst <<EOF\n"
+"\t# Script pour #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/truc.postinst <<EOF\n"
+"\t# Script pour #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+" dh_installdeb -ptoto -ptiti -ptruc --define TOKEN=default --define pkg.titi.TOKEN=valeur-unique-titi \\\n"
+" --define pkg.truc.TOKEN=valeur-unique-truc\n"
+"\n"
+
+#. type: textblock
+#: dh_installdebconf:125
+#, fuzzy
+#| 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>."
+msgid ""
+"In this example, B<#TOKEN#> will expand to B<default> in F<debian/foo."
+"config>, to B<unique-bar-value> in F<debian/bar.config> and to B<unique-baz-"
+"value> in F<debian/baz.config>."
+msgstr ""
+"Dans cet exemple, B<#TOKEN#> sera développé en B<default> dans F<debian/toto."
+"postinst>, en B<valeur-unique-titi> dans F<debian/titi.postinst> et en "
+"B<valeur-unique-truc> dans F<debian/truc.postinst>."
+
+#. type: textblock
+#: dh_installdebconf:129
+#, fuzzy
+#| 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>."
+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.config> and it "
+"will be replaced by B<unique-bar-value>."
+msgstr ""
+"Notez que les items de B<#pkg.*#> seront visibles dans tous les scripts "
+"actifs. Par exemple, il est possible de faire référence à B<#pkg.titi."
+"TOKEN#> dans F<debian/toto.postinst> et il sera remplacé par B<valeur-unique-"
+"titi>."
+
+#. type: textblock
+#: dh_installdebconf:137
+#, fuzzy
+#| msgid ""
+#| "The B<dh_installdeb> will automatically replace the following tokens "
+#| "inside a provided maintainer script (if not replaced via B<-D>/B<--"
+#| "define>):"
+msgid ""
+"The B<dh_installdebconf> will automatically replace the following tokens "
+"inside a provided maintainer script (if not replaced via B<-D>/B<--define>):"
+msgstr ""
+"B<dh_installdeb> remplacera automatiquement les items suivants dans un "
+"script fourni par le responsable (s'il n'est pas remplacé au moyen de B<-D> "
+"ou B<--define>) :"
+
+#. type: textblock
+#: dh_installdebconf:173
+#, fuzzy
+#| 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."
+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_installdebconf> to reject the command with an error in most cases."
+msgstr ""
+"Les items qui ne correspondent pas à cette expression rationnelle seront "
+"ignorés silencieusement s'ils sont présents dans un modèle de script. Les "
+"noms d'item non valables passés à B<-D> ou B<--define> feront que "
+"B<dh_installdeb> rejettera la commande avec une erreur dans la plupart des "
+"cas."
+
# type: textblock
#. type: textblock
#: dh_installdirs:5
@@ -4821,14 +8940,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdirs:14
-msgid "B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [S<I<dir> ...>]"
+#: dh_installdirs:17
+msgid ""
+"B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [B<--sourcedir=>I<dir>] "
+"[B<--create-in-sourcedir>] [S<I<dir> ...>]"
msgstr ""
-"B<dh_installdirs> [S<I<options de debhelper>>] [B<-A>] [S<I<répertoire> ...>]"
+"B<dh_installdirs> [S<I<options_de_debhelper>>] [B<-A>] [B<--"
+"sourcedir=>I<répertoire>] [B<--create-in-sourcedir>] [S<I<répertoire> ...>]"
# type: textblock
#. type: textblock
-#: dh_installdirs:18
+#: dh_installdirs:21
msgid ""
"B<dh_installdirs> is a debhelper program that is responsible for creating "
"subdirectories in package build directories."
@@ -4836,37 +8958,99 @@ msgstr ""
"B<dh_installdirs> est le programme de la suite debhelper chargé de la "
"création des sous-répertoires dans le répertoire de construction du paquet."
+#. type: textblock
+#: dh_installdirs:24
+msgid ""
+"Many packages can get away with omitting the call to B<dh_installdirs> "
+"completely. Notably, other B<dh_*> commands are expected to create "
+"directories as needed."
+msgstr ""
+"De nombreux paquets peuvent se construire en omettant complètement l'appel à "
+"B<dh_installdirs>. En particulier, les autres commandes B<dh_*> sont censées "
+"créer les répertoires voulus."
+
# type: =item
#. type: =item
-#: dh_installdirs:25
+#: dh_installdirs:32
msgid "debian/I<package>.dirs"
msgstr "debian/I<paquet>.dirs"
# type: textblock
#. type: textblock
-#: dh_installdirs:27
+#: dh_installdirs:34
msgid "Lists directories to be created in I<package>."
-msgstr "Liste les répertoires à créer dans I<package>."
+msgstr "Liste les répertoires à créer dans I<paquet>."
+
+#. type: textblock
+#: dh_installdirs:36
+msgid ""
+"Generally, there is no need to list directories created by the upstream "
+"build system or directories needed by other B<debhelper> commands."
+msgstr ""
+"Généralement, il n'est pas nécessaire de lister les répertoires créés par "
+"les systèmes de construction amont ou les répertoires nécessaires aux autres "
+"commandes de B<debhelper>."
# type: textblock
#. type: textblock
-#: dh_installdirs:37
+#: dh_installdirs:51
msgid ""
"Create any directories specified by command line parameters in ALL packages "
"acted on, not just the first."
msgstr ""
-"Crée l'ensemble des répertoires indiqués en ligne de commande dans TOUS les "
-"paquets construits et pas seulement dans le premier."
+"Crée l'ensemble des répertoires indiqués en ligne de commande dans B<tous> "
+"les paquets construits et pas seulement dans le premier."
+
+#. type: =item
+#: dh_installdirs:54
+msgid "B<--create-in-sourcedir>, B<--no-create-in-sourcedir>"
+msgstr "B<--create-in-sourcedir>, B<--no-create-in-sourcedir>"
+
+#. type: textblock
+#: dh_installdirs:56
+msgid ""
+"Whether to create the specified directories in the source directory (usually "
+"F<debian/tmp>) I<in addition to> in the package build directory (usually F<< "
+"debian/I<package> >>)."
+msgstr ""
+"Détermine s'il faut créer les répertoires indiqués dans le répertoire source "
+"(habituellement F<debian/tmp>) I<en plus> de le faire dans le répertoire de "
+"construction du paquet (F<< debian/I<paquet> >>)."
+
+#. type: textblock
+#: dh_installdirs:60
+msgid "The default is B<--no-create-in-sourcedir>."
+msgstr "Le comportement par défaut est B<--no-create-in-sourcedir>."
+
+#. type: textblock
+#: dh_installdirs:64
+msgid ""
+"Consider I<dir> the source directory for the packages acted on instead of "
+"the default (which is usually F<debian/tmp>)."
+msgstr ""
+"Utiliser I<répertoire> comme le répertoire source des paquets, au lieu de la "
+"valeur par défaut (généralement F<debian/tmp>)."
+
+#. type: textblock
+#: dh_installdirs:67
+msgid ""
+"Please note that this option is dependent on the B<--create-in-sourcedir> "
+"option (when B<--no-create-in-sourcedir> is in effect, this option does "
+"nothing in B<dh_installdirs>)."
+msgstr ""
+"Veuillez noter que cette option est dépendante de l'option B<--create-in-"
+"sourcedir> (lorsque B<--no-create-in-sourcedir> est utilisé, cette option ne "
+"fait rien dans B<dh_installdirs>)."
# type: =item
#. type: =item
-#: dh_installdirs:40
+#: dh_installdirs:71
msgid "I<dir> ..."
msgstr "I<répertoire> ..."
# type: textblock
#. type: textblock
-#: dh_installdirs:42
+#: dh_installdirs:73
msgid ""
"Create these directories in the package build directory of the first package "
"acted on. (Or in all packages if B<-A> is specified.)"
@@ -4876,7 +9060,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdocs:5
+#: dh_installdocs:7
msgid "dh_installdocs - install documentation into package build directories"
msgstr ""
"dh_installdocs - Installer la documentation dans le répertoire de "
@@ -4884,17 +9068,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdocs:14
+#: dh_installdocs:19
msgid ""
"B<dh_installdocs> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
"[S<I<file> ...>]"
msgstr ""
-"B<dh_installdocs> [S<I<options de debhelper>>] [B<-A>] [B<-X>I<élément>] "
-"[S<I<fichier> ...>]"
+"B<dh_installdocs> [S<I<options_de_debhelper>>] [B<-A>] [B<-X>I<élément>] "
+"[S<I<fichier> ...>]"
# type: textblock
#. type: textblock
-#: dh_installdocs:18
+#: dh_installdocs:23
msgid ""
"B<dh_installdocs> is a debhelper program that is responsible for installing "
"documentation into F<usr/share/doc/package> in package build directories."
@@ -4903,26 +9087,66 @@ msgstr ""
"l'installation de la documentation dans le répertoire F<usr/share/doc/"
"paquet> du répertoire de construction du paquet."
+#. type: textblock
+#: dh_installdocs:26
+msgid ""
+"In compat 10 and earlier, L<dh_install(1)> may be a better tool for handling "
+"the upstream documentation, when upstream's own build system installs all "
+"the desired documentation correctly. In this case, B<dh_installdocs> is "
+"still useful for installing packaging related documentation (e.g. the "
+"F<debian/copyright> file)."
+msgstr ""
+"Dans les niveaux de compatibilité 10 et inférieurs, L<dh_install(1)> est "
+"mieux adapté à la gestion de la documentation si le système de construction "
+"amont installe la documentation voulue correctement. Dans ce cas, "
+"B<dh_installdocs> est toujours utile pour installer la documentation de "
+"l'empaquetage (par exemple le fichier F<debian/copyright>)."
+
+# type: textblock
+#. type: textblock
+#: dh_installdocs:31 dh_installexamples:27 dh_installinfo:24 dh_installman:69
+msgid ""
+"From debhelper compatibility level 11 on, B<dh_install> will fall back to "
+"looking in F<debian/tmp> for files, if it does not find them in the current "
+"directory (or wherever you've told it to look using B<--sourcedir>)."
+msgstr ""
+"Depuis la version 11 de debhelper, B<dh_install> cherchera dans "
+"l'arborescence F<debian/tmp> pour trouver les fichiers s'il ne les trouve "
+"pas dans le répertoire courant (ou dans celui indiqué par l'utilisation de "
+"B<--sourcedir>)."
+
+#. type: textblock
+#: dh_installdocs:35
+msgid ""
+"In compat 11 and later, B<dh_installdocs> offers many of the features that "
+"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 ""
+"Dans les niveaux de compatibilité 11 et au delà, B<dh_installdocs> offre la "
+"plupart des fonctionnalités de L<dh_install(1)>. De plus, B<dh_installdocs> "
+"prend aussi en charge le profil de construction B<nodoc> pour exclure la "
+"documentation (quel que soit le niveau de compatibilité)."
+
# type: =item
#. type: =item
-#: dh_installdocs:25
+#: dh_installdocs:44
msgid "debian/I<package>.docs"
msgstr "debian/I<paquet>.docs"
# type: textblock
#. type: textblock
-#: dh_installdocs:27
+#: dh_installdocs:46
msgid "List documentation files to be installed into I<package>."
msgstr "Liste les fichiers de documentation à installer dans I<paquet>."
# type: =item
#. type: =item
-#: dh_installdocs:29
+#: dh_installdocs:51
msgid "F<debian/copyright>"
msgstr "F<debian/copyright>"
#. type: textblock
-#: dh_installdocs:31
+#: dh_installdocs:53
msgid ""
"The copyright file is installed into all packages, unless a more specific "
"copyright file is available."
@@ -4932,25 +9156,25 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installdocs:34
+#: dh_installdocs:56
msgid "debian/I<package>.copyright"
msgstr "debian/I<paquet>.copyright"
# type: =item
#. type: =item
-#: dh_installdocs:36
+#: dh_installdocs:58
msgid "debian/I<package>.README.Debian"
msgstr "debian/I<paquet>.README.Debian"
# type: =item
#. type: =item
-#: dh_installdocs:38
+#: dh_installdocs:60
msgid "debian/I<package>.TODO"
msgstr "debian/I<paquet>.TODO"
# type: textblock
#. type: textblock
-#: dh_installdocs:40
+#: dh_installdocs:62
msgid ""
"Each of these files is automatically installed if present for a I<package>."
msgstr ""
@@ -4959,19 +9183,19 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installdocs:43
+#: dh_installdocs:65
msgid "F<debian/README.Debian>"
msgstr "F<debian/README.Debian>"
# type: =item
#. type: =item
-#: dh_installdocs:45
+#: dh_installdocs:67
msgid "F<debian/TODO>"
msgstr "F<debian/TODO>"
# type: textblock
#. type: textblock
-#: dh_installdocs:47
+#: dh_installdocs:69
msgid ""
"These files are installed into the first binary package listed in debian/"
"control."
@@ -4981,24 +9205,24 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdocs:50
+#: dh_installdocs:72
msgid ""
"Note that F<README.debian> files are also installed as F<README.Debian>, and "
"F<TODO> files will be installed as F<TODO.Debian> in non-native packages."
msgstr ""
"Nota : les fichiers F<README.debian> sont également installés en tant que "
-"F<README.Debian> et les fichiers F<TODO> seront installés en tant que "
-"F<TODO.Debian> dans les paquets non natifs."
+"F<README.Debian> et les fichiers F<TODO> seront installés en tant que F<TODO."
+"Debian> dans les paquets non natifs."
# type: =item
#. type: =item
-#: dh_installdocs:53
+#: dh_installdocs:75
msgid "debian/I<package>.doc-base"
msgstr "debian/I<paquet>.doc-base"
# type: textblock
#. type: textblock
-#: dh_installdocs:55
+#: dh_installdocs:77
msgid ""
"Installed as doc-base control files. Note that the doc-id will be determined "
"from the B<Document:> entry in the doc-base control file in question. In the "
@@ -5015,12 +9239,12 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installdocs:61
+#: dh_installdocs:83
msgid "debian/I<package>.doc-base.*"
msgstr "debian/I<paquet>.doc-base.*"
#. type: textblock
-#: dh_installdocs:63
+#: dh_installdocs:85
msgid ""
"If your package needs to register more than one document, you need multiple "
"doc-base files, and can name them like this. In the event that multiple doc-"
@@ -5034,19 +9258,36 @@ msgstr ""
"le même identifiant de documentation, ils seront installés dans usr/share/"
"doc-base/I<paquet-*> au lieu de usr/share/doc-base/I<doc-id>."
+#. type: textblock
+#: dh_installdocs:91
+msgid ""
+"Please be aware that this deduplication is currently done in memory only, so "
+"for now it requires B<dh_installdocs> to be called no more than once during "
+"the package build. Calling B<dh_installdocs -p>I<package> in combination "
+"with using F<debian/>I<package>F<.doc-base.*> files can lead to "
+"uninstallable packages. See L<https://bugs.debian.org/980903> for details."
+msgstr ""
+"Soyez conscient que cette déduplication est uniquement réalisée en mémoire "
+"actuellement, ce qui fait que pour l'instant il ne faut pas que "
+"B<dh_installdocs> soit appelé plus d'une fois pendant la construction du "
+"paquet. L'appel de B<dh_installdocs -p>I<paquet> en combinaison avec "
+"l'utilisation de F<debian/>I<paquet>F<.doc-base.*> peut mener à des paquets "
+"non installables. Voir L<https://bugs.debian.org/980903> pour plus de "
+"détails."
+
# type: textblock
#. type: textblock
-#: dh_installdocs:77 dh_installinfo:37 dh_installman:67
+#: dh_installdocs:106 dh_installinfo:47 dh_installman:92
msgid ""
"Install all files specified by command line parameters in ALL packages acted "
"on."
msgstr ""
-"Installe l'ensemble des fichiers indiqués sur la ligne de commande dans TOUS "
-"les paquets construits."
+"Installe l'ensemble des fichiers indiqués sur la ligne de commande dans "
+"B<tous> les paquets construits."
# type: textblock
#. type: textblock
-#: dh_installdocs:82
+#: dh_installdocs:111
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"installed. Note that this includes doc-base files."
@@ -5054,15 +9295,91 @@ msgstr ""
"Exclut les fichiers qui comportent I<élément>, n'importe où dans leur nom, "
"de l'installation. Il est à noter que cela inclut les fichiers doc-base."
+#. type: textblock
+#: dh_installdocs:116 dh_installexamples:59 dh_installinfo:52 dh_installman:102
+msgid ""
+"Look in the specified directory for files to be installed. This option "
+"requires compat 11 or later (it is silently ignored in compat 10 or earlier)."
+msgstr ""
+"Cherche dans le répertoire indiqué les fichiers à installer. Cette option "
+"nécessite le niveau de compatibilité 11 ou supérieur (et sera "
+"silencieusement ignorée en version 10 et avant)."
+
+#. type: textblock
+#: dh_installdocs:119 dh_installman:105
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installman> automatically looks for files in F<debian/tmp> in debhelper "
+"compatibility level 11 and above."
+msgstr ""
+"Nota : cette option ne fait pas la même chose que B<--sourcedirectory> "
+"utilisée par B<dh_auto_>I<*>. Il est rare d'avoir besoin d'utiliser cette "
+"option puisque B<dh_installman> cherche automatiquement les fichiers dans "
+"F<debian/tmp> depuis le niveau de compatibilité 11 de debhelper."
+
# type: =item
#. type: =item
-#: dh_installdocs:85
+#: dh_installdocs:124 dh_installexamples:67
+msgid "B<--doc-main-package=>I<main-package>"
+msgstr "B<--doc-main-package=>I<paquet-principal>"
+
+#. type: textblock
+#: dh_installdocs:126 dh_installexamples:69
+msgid ""
+"Set the main package for a documentation package. This is used to install "
+"the documentation of the documentation package in F<< /usr/share/doc/I<main-"
+"package> >> as recommended by the Debian policy manual 3.9.7 in §12.3."
+msgstr ""
+"Définit le paquet principal pour un paquet de documentation. Cela est "
+"utilisé pour installer la documentation du paquet de documentation dans F<< /"
+"usr/share/doc/I<paquet-principal> >> comme recommandé par la Charte "
+"Debian 3.9.7 au paragraphe 12.3."
+
+#. type: textblock
+#: dh_installdocs:131 dh_installexamples:74
+msgid ""
+"In compat 11 (or later), this option is only useful if debhelper's auto-"
+"detection of the main package is wrong. The option can also be used to "
+"silence a warning from debhelper when the auto-detection fails but the "
+"default happens to be correct."
+msgstr ""
+"Dans les niveaux de compatibilité 11 ou suivants, cette option n'est utile "
+"que si l'auto-détection du paquet principal de debhelper est erronée. Cette "
+"option peut aussi être utilisée pour masquer un avertissement de debhelper "
+"lorsque l'auto-détection échoue mais que le comportement par défaut est "
+"correct."
+
+#. type: textblock
+#: dh_installdocs:136
+msgid ""
+"This option cannot be used when B<dh_installdocs> is instructed to act on "
+"multiple packages. If you need this option, you will generally need to "
+"combine it with B<-p> to ensure exactly one package is acted on."
+msgstr ""
+"Cette option ne peut pas être utilisée lorsque B<dh_installdocs> doit agir "
+"sur plusieurs paquets. Si vous avez besoin de cette option, vous devrez "
+"généralement l'associer à B<-p> pour vous assurer de n'agir que sur un "
+"paquet."
+
+#. type: textblock
+#: dh_installdocs:141
+msgid ""
+"Please keep in mind that some documentation (the copyright file, README."
+"Debian, etc.) will be unaffected by this option."
+msgstr ""
+"Veuillez garder à l'esprit que certains documents (les fichiers copyright, "
+"README.Debian, etc.) ne seront pas affectés par cette option."
+
+# type: =item
+#. type: =item
+#: dh_installdocs:144
msgid "B<--link-doc=>I<package>"
msgstr "B<--link-doc=>I<paquet>"
# type: textblock
#. type: textblock
-#: dh_installdocs:87
+#: dh_installdocs:146
msgid ""
"Make the documentation directory of all packages acted on be a symlink to "
"the documentation directory of I<package>. This has no effect when acting on "
@@ -5079,7 +9396,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdocs:93
+#: dh_installdocs:152
msgid ""
"debhelper will try to avoid installing files into linked documentation "
"directories that would cause conflicts with the linked package. The B<-A> "
@@ -5095,7 +9412,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdocs:99
+#: dh_installdocs:158
msgid ""
"(An older method to accomplish the same thing, which is still supported, is "
"to make the documentation directory of a package be a dangling symlink, "
@@ -5105,9 +9422,61 @@ msgstr ""
"possible, est de faire du répertoire de documentation un lien symbolique "
"« en l'air » avant l'appel à B<dh_installdocs>.)"
+#. type: textblock
+#: dh_installdocs:162
+msgid ""
+"Please note that this option only applies to the documentation directory for "
+"the package itself. When the package ships documentation for another "
+"package (e.g. see B<--doc-main-package>), it will not use a symlink for the "
+"documentation of the other package."
+msgstr ""
+"Veuillez noter que cette option ne s'applique qu'au répertoire de "
+"documentation du paquet lui-même. Lorsque le paquet fournit de la "
+"documentation pour un autre (voir par exemple B<--doc-main-package>), il "
+"n'utilisera pas de lien symbolique pour la documentation de l'autre paquet."
+
+#. type: textblock
+#: dh_installdocs:168
+msgid ""
+"B<CAVEAT 1>: If a previous version of the package was built without this "
+"option and is now built with it (or vice-versa), it requires a \"dir to "
+"symlink\" (or \"symlink to dir\") migration. Since debhelper has no "
+"knowledge of previous versions, you have to enable this migration itself."
+msgstr ""
+"B<AVERTISSEMENT 1> : si une version précédente du paquet était construite "
+"sans cette option et qu'elle est maintenant construite avec (ou vice-versa), "
+"une migration est nécessaire, « répertoire vers lien symbolique » (« dir to "
+"symlink ») ou « lien symbolique vers répertoire » (« symlink to dir »). "
+"Puisque debhelper n'a aucune connaissance des versions précédentes, vous "
+"devez activer cette migration vous-même."
+
+#. type: textblock
+#: dh_installdocs:174
+msgid ""
+"This can be done by providing a \"debian/I<package>.maintscript\" file and "
+"using L<dh_installdeb(1)> to provide the relevant maintainer script snippets."
+msgstr ""
+"Cela peut être effectué en fournissant un fichier « debian/I<paquet>."
+"maintscript » et en utilisant L<dh_installdeb(1)> pour fournir les extraits "
+"des scripts de maintenance correspondants."
+
+#. type: textblock
+#: dh_installdocs:178
+msgid ""
+"B<CAVEAT 2>: The use of B<--link-doc> should only be done when the packages "
+"have same \"architecture\" type. A link from an architecture independent "
+"package to an architecture dependent package (or vice versa) will not work. "
+"Since compat 10, debhelper will actively reject unsupported combinations."
+msgstr ""
+"B<AVERTISSEMENT 2> : B<--link-doc> ne doit être utilisé que lorsque les "
+"paquets ont la même « architecture ». Un lien depuis un paquet indépendant "
+"de l'architecture vers un paquet dépendant de l'architecture (ou vice-versa) "
+"ne fonctionnera pas. Depuis la version 10, debhelper rejette activement les "
+"combinaisons non prises en charge."
+
# type: textblock
#. type: textblock
-#: dh_installdocs:105
+#: dh_installdocs:186
msgid ""
"Install these files as documentation into the first package acted on. (Or in "
"all packages if B<-A> is specified)."
@@ -5117,13 +9486,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdocs:112
+#: dh_installdocs:193
msgid "This is an example of a F<debian/package.docs> file:"
msgstr "Voici un exemple de fichier F<debian/paquet.docs> :"
# type: verbatim
#. type: verbatim
-#: dh_installdocs:114
+#: dh_installdocs:195
#, no-wrap
msgid ""
" README\n"
@@ -5144,14 +9513,14 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installdocs:123
+#: dh_installdocs:204
msgid ""
"Note that B<dh_installdocs> will happily copy entire directory hierarchies "
"if you ask it to (similar to B<cp -a>). If it is asked to install a "
"directory, it will install the complete contents of the directory."
msgstr ""
"Nota : Heureusement, B<dh_installdocs> sait copier des hiérarchies entières "
-"de répertoire (comme un B<cp -a>). Si on lui demande d'installer un "
+"de répertoire (comme un B<cp -a>). Si on lui demande d'installer un "
"répertoire, il installera le contenu complet du répertoire."
# type: textblock
@@ -5162,17 +9531,17 @@ msgstr "dh_installemacsen - Inscrire un paquet additionnel Emacs"
# type: textblock
#. type: textblock
-#: dh_installemacsen:14
+#: dh_installemacsen:17
msgid ""
"B<dh_installemacsen> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
"[B<--flavor=>I<foo>]"
msgstr ""
-"B<dh_installemacsen> [I<options de debhelper>] [B<-n>] [B<--priority=>I<n>] "
+"B<dh_installemacsen> [I<options_de_debhelper>] [B<-n>] [B<--priority=>I<n>] "
"[B<--flavor=>I<toto>]"
# type: textblock
#. type: textblock
-#: dh_installemacsen:18
+#: dh_installemacsen:21
msgid ""
"B<dh_installemacsen> is a debhelper program that is responsible for "
"installing files used by the Debian B<emacsen-common> package into package "
@@ -5184,13 +9553,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installemacsen:22
-#, fuzzy
-#| msgid ""
-#| "It also automatically generates the F<postinst> and F<prerm> commands "
-#| "needed to register a package as an Emacs add on package. The commands are "
-#| "added to the maintainer scripts by B<dh_installdeb>. See "
-#| "L<dh_installdeb(1)> for an explanation of how this works."
+#: dh_installemacsen:25
msgid ""
"It also automatically generates the F<preinst> F<postinst> and F<prerm> "
"commands needed to register a package as an Emacs add on package. The "
@@ -5198,42 +9561,37 @@ msgid ""
"L<dh_installdeb(1)> for an explanation of how this works."
msgstr ""
"Ce programme va également, automatiquement, produire les lignes de code des "
-"scripts de maintenance F<postinst> et F<prerm> nécessaires à l'inscription "
-"du paquet en tant que paquet additionnel d'Emacs. Les commandes sont "
-"ajoutées dans les scripts de maintenance par B<dh_installdeb>. Consulter "
-"L<dh_installdeb(1)> pour obtenir une explication sur ce fonctionnement."
+"scripts de maintenance F<preinst>, F<postinst> et F<prerm> nécessaires à "
+"l'inscription du paquet en tant que paquet additionnel d'Emacs. Les "
+"commandes sont ajoutées dans les scripts de maintenance par "
+"B<dh_installdeb>. Consulter L<dh_installdeb(1)> pour obtenir une explication "
+"sur ce fonctionnement."
# type: =item
#. type: =item
-#: dh_installemacsen:31
-#, fuzzy
-#| msgid "debian/I<package>.emacsen-startup"
+#: dh_installemacsen:34
msgid "debian/I<package>.emacsen-compat"
-msgstr "debian/I<paquet>.emacsen-startup"
+msgstr "debian/I<paquet>.emacsen-compat"
# type: textblock
#. type: textblock
-#: dh_installemacsen:33
-#, fuzzy
-#| msgid ""
-#| "Installed into F<usr/lib/emacsen-common/packages/remove/package> in the "
-#| "package build directory."
+#: dh_installemacsen:36
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/compat/package> in the "
"package build directory."
msgstr ""
"Installé dans le répertoire de construction du paquet sous F<usr/lib/emacsen-"
-"common/packages/remove/paquet>."
+"common/packages/compat/paquet>."
# type: =item
#. type: =item
-#: dh_installemacsen:36
+#: dh_installemacsen:39
msgid "debian/I<package>.emacsen-install"
msgstr "debian/I<paquet>.emacsen-install"
# type: textblock
#. type: textblock
-#: dh_installemacsen:38
+#: dh_installemacsen:41
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/install/package> in the "
"package build directory."
@@ -5243,13 +9601,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installemacsen:41
+#: dh_installemacsen:44
msgid "debian/I<package>.emacsen-remove"
msgstr "debian/I<paquet>.emacsen-remove"
# type: textblock
#. type: textblock
-#: dh_installemacsen:43
+#: dh_installemacsen:46
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/remove/package> in the "
"package build directory."
@@ -5259,24 +9617,24 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installemacsen:46
+#: dh_installemacsen:49
msgid "debian/I<package>.emacsen-startup"
msgstr "debian/I<paquet>.emacsen-startup"
# type: textblock
#. type: textblock
-#: dh_installemacsen:48
+#: dh_installemacsen:51
msgid ""
"Installed into etc/emacs/site-start.d/50I<package>.el in the package build "
"directory. Use B<--priority> to use a different priority than 50."
msgstr ""
"Installé dans le répertoire de construction du paquet sous F<etc/emacs/site-"
"start.d/50I<paquet>.el>. Utilise B<--priority> pour définir une priorité "
-"différente de 50."
+"différente de B<50>."
# type: textblock
#. type: textblock
-#: dh_installemacsen:59 dh_usrlocal:45
+#: dh_installemacsen:62 dh_usrlocal:56
msgid "Do not modify F<postinst>/F<prerm> scripts."
msgstr ""
"Empêche la modification des scripts de maintenance du paquet F<postinst> et "
@@ -5284,27 +9642,27 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installemacsen:61 dh_installwm:38
+#: dh_installemacsen:64 dh_installwm:45
msgid "B<--priority=>I<n>"
msgstr "B<--priority=>I<n>"
# type: textblock
#. type: textblock
-#: dh_installemacsen:63
+#: dh_installemacsen:66
msgid "Sets the priority number of a F<site-start.d> file. Default is 50."
msgstr ""
"Fixe le numéro de priorité du fichier F<site-start.d>. La valeur par défaut "
-"est 50."
+"est B<50>."
# type: =item
#. type: =item
-#: dh_installemacsen:65
+#: dh_installemacsen:68
msgid "B<--flavor=>I<foo>"
msgstr "B<--flavor=>I<toto>"
# type: textblock
#. type: textblock
-#: dh_installemacsen:67
+#: dh_installemacsen:70
msgid ""
"Sets the flavor a F<site-start.d> file will be installed in. Default is "
"B<emacs>, alternatives include B<xemacs> and B<emacs20>."
@@ -5314,13 +9672,14 @@ msgstr ""
"B<xemacs> et B<emacs20>."
#. type: textblock
-#: dh_installemacsen:143
+#: 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>"
# type: textblock
#. type: textblock
-#: dh_installexamples:5
+#: dh_installexamples:7
msgid ""
"dh_installexamples - install example files into package build directories"
msgstr ""
@@ -5329,17 +9688,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installexamples:14
+#: dh_installexamples:19
msgid ""
"B<dh_installexamples> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
"[S<I<file> ...>]"
msgstr ""
-"B<dh_installexamples> [S<I<options de debhelper>>] [B<-A>] [B<-X>I<élément>] "
-"[S<I<fichier> ...>]"
+"B<dh_installexamples> [S<I<options_de_debhelper>>] [B<-A>] [B<-X>I<élément>] "
+"[S<I<fichier> ...>]"
# type: textblock
#. type: textblock
-#: dh_installexamples:18
+#: dh_installexamples:23
msgid ""
"B<dh_installexamples> is a debhelper program that is responsible for "
"installing examples into F<usr/share/doc/package/examples> in package build "
@@ -5351,28 +9710,72 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installexamples:26
+#: dh_installexamples:35
msgid "debian/I<package>.examples"
msgstr "debian/I<paquet>.examples"
#. type: textblock
-#: dh_installexamples:28
+#: dh_installexamples:37
msgid "Lists example files or directories to be installed."
msgstr "Liste les fichiers ou les répertoires d'exemples à installer."
+#. type: textblock
+#: dh_installexamples:39
+msgid ""
+"If upstream provides an F<examples> directory, you will often want to use "
+"B<examples/*> rather than B<examples> in this file. The latter would create "
+"F<< /usr/share/doc/I<package>/examples/examples >>, which is rarely what you "
+"want."
+msgstr ""
+
# type: textblock
#. type: textblock
-#: dh_installexamples:38
+#: dh_installexamples:54
msgid ""
"Install any files specified by command line parameters in ALL packages acted "
"on."
msgstr ""
-"Installe l'ensemble des fichiers indiqués sur la ligne de commande dans TOUS "
-"les paquets construits."
+"Installe l'ensemble des fichiers indiqués sur la ligne de commande dans "
+"B<tous> les paquets construits."
+
+#. type: textblock
+#: dh_installexamples:62
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installexamples> automatically looks for files in F<debian/tmp> in "
+"debhelper compatibility level 11 and above."
+msgstr ""
+"Nota : cette option ne fait pas la même chose que B<--sourcedirectory> "
+"utilisée par B<dh_auto_>I<*>. Il est rare d'avoir besoin d'utiliser cette "
+"option puisque B<dh_installexamples> cherche automatiquement les fichiers "
+"dans F<debian/tmp> depuis la version 11 de debhelper."
+
+#. type: textblock
+#: dh_installexamples:79
+msgid ""
+"This option cannot be used when B<dh_installexamples> is instructed to act "
+"on multiple packages. If you need this option, you will generally need to "
+"combine it with B<-p> to ensure exactly one package is acted on."
+msgstr ""
+"Cette option ne peut pas être utilisée lorsque B<dh_installexamples> doit "
+"agir sur plusieurs paquets. Si vous avez besoin de cette option, vous devrez "
+"généralement l'associer à B<-p> pour vous assurer de n'agir que sur un "
+"paquet."
+
+# type: textblock
+#. type: textblock
+#: dh_installexamples:86
+msgid ""
+"Exclude files that contain I<item> anywhere in their filename from being "
+"installed."
+msgstr ""
+"Exclut du traitement les fichiers qui comportent I<élément> n'importe où "
+"dans leur nom."
# type: textblock
#. type: textblock
-#: dh_installexamples:48
+#: dh_installexamples:91
msgid ""
"Install these files (or directories) as examples into the first package "
"acted on. (Or into all packages if B<-A> is specified.)"
@@ -5382,14 +9785,14 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installexamples:55
+#: dh_installexamples:98
msgid ""
"Note that B<dh_installexamples> will happily copy entire directory "
"hierarchies if you ask it to (similar to B<cp -a>). If it is asked to "
"install a directory, it will install the complete contents of the directory."
msgstr ""
"Nota : Heureusement, B<dh_installexamples> sait copier des hiérarchies "
-"entières de répertoire (comme un B<cp -a>). Si on lui demande d'installer un "
+"entières de répertoire (comme un B<cp -a>). Si on lui demande d'installer un "
"répertoire, il installera le contenu complet du répertoire."
# type: textblock
@@ -5400,13 +9803,13 @@ msgstr "dh_installifupdown - Installer les accroches (hooks) if-up et if-down"
# type: textblock
#. type: textblock
-#: dh_installifupdown:14
+#: dh_installifupdown:17
msgid "B<dh_installifupdown> [S<I<debhelper options>>] [B<--name=>I<name>]"
-msgstr "B<dh_installiffupifdown> [I<options de debhelper>] [B<--name=>I<nom>]"
+msgstr "B<dh_installiffupifdown> [I<options_de_debhelper>] [B<--name=>I<nom>]"
# type: textblock
#. type: textblock
-#: dh_installifupdown:18
+#: dh_installifupdown:21
msgid ""
"B<dh_installifupdown> is a debhelper program that is responsible for "
"installing F<if-up>, F<if-down>, F<if-pre-up>, and F<if-post-down> hook "
@@ -5418,31 +9821,31 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installifupdown:26
+#: dh_installifupdown:29
msgid "debian/I<package>.if-up"
msgstr "debian/I<paquet>.if-up"
# type: =item
#. type: =item
-#: dh_installifupdown:28
+#: dh_installifupdown:31
msgid "debian/I<package>.if-down"
msgstr "debian/I<paquet>.if-down"
# type: =item
#. type: =item
-#: dh_installifupdown:30
+#: dh_installifupdown:33
msgid "debian/I<package>.if-pre-up"
msgstr "debian/I<paquet>.if-pre-up"
# type: =item
#. type: =item
-#: dh_installifupdown:32
+#: dh_installifupdown:35
msgid "debian/I<package>.if-post-down"
msgstr "debian/I<paquet>.if-post-down"
# type: textblock
#. type: textblock
-#: dh_installifupdown:34
+#: dh_installifupdown:37
msgid ""
"These files are installed into etc/network/if-*.d/I<package> in the package "
"build directory."
@@ -5452,7 +9855,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installifupdown:45
+#: dh_installifupdown:48
msgid ""
"Look for files named F<debian/package.name.if-*> and install them as F<etc/"
"network/if-*/name>, instead of using the usual files and installing them as "
@@ -5470,14 +9873,14 @@ msgstr "dh_installinfo - Installer les fichiers info"
# type: textblock
#. type: textblock
-#: dh_installinfo:14
+#: dh_installinfo:17
msgid "B<dh_installinfo> [S<I<debhelper options>>] [B<-A>] [S<I<file> ...>]"
msgstr ""
-"B<dh_installinfo> [S<I<options de debhelper>>] [B<-A>] [S<I<fichier> ...>]"
+"B<dh_installinfo> [S<I<options_de_debhelper>>] [B<-A>] [S<I<fichier> ...>]"
# type: textblock
#. type: textblock
-#: dh_installinfo:18
+#: dh_installinfo:21
msgid ""
"B<dh_installinfo> is a debhelper program that is responsible for installing "
"info files into F<usr/share/info> in the package build directory."
@@ -5488,18 +9891,31 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installinfo:25
+#: dh_installinfo:32
msgid "debian/I<package>.info"
msgstr "debian/I<paquet>.info"
#. type: textblock
-#: dh_installinfo:27
+#: dh_installinfo:34
msgid "List info files to be installed."
msgstr "Liste les fichiers info à installer."
+#. type: textblock
+#: dh_installinfo:55
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installinfo> automatically looks for files in F<debian/tmp> in "
+"debhelper compatibility level 11 and above."
+msgstr ""
+"Nota : Cette option ne fait pas la même chose que B<--sourcedirectory> "
+"utilisée par B<dh_auto_>I<*>. Il est rare d'avoir besoin d'utiliser cette "
+"option puisque B<dh_installinfo> cherche automatiquement les fichiers dans "
+"F<debian/tmp> depuis le niveau de compatibilité 11 de debhelper."
+
# type: textblock
#. type: textblock
-#: dh_installinfo:42
+#: dh_installinfo:62
msgid ""
"Install these info files into the first package acted on. (Or in all "
"packages if B<-A> is specified)."
@@ -5518,30 +9934,37 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installinit:15
+#: dh_installinit:18
msgid ""
"B<dh_installinit> [S<I<debhelper options>>] [B<--name=>I<name>] [B<-n>] [B<-"
"R>] [B<-r>] [B<-d>] [S<B<--> I<params>>]"
msgstr ""
-"B<dh_installinit> [I<options de debhelper>] [B<--name=>I<nom>] [B<-n>] [B<-"
-"R>] [B<-r>] [B<-d>] [B<--> I<paramètres>]"
+"B<dh_installinit> [I<options_de_debhelper>] [B<--name=>I<nom>] [B<-n>] [B<-"
+"R>] [B<-r>] [B<-d>] [B<--> I<paramètres>]"
# type: textblock
#. type: textblock
-#: dh_installinit:19
+#: dh_installinit:22
msgid ""
"B<dh_installinit> is a debhelper program that is responsible for installing "
-"init scripts with associated defaults files, as well as upstart job files, "
-"and systemd service files into package build directories."
+"init scripts with associated defaults files. In compatibility levels up to "
+"and including 10, B<dh_installinit> will also install some systemd related "
+"files provided by the debian packaging (see the L</FILES> section below). "
+"In compatibility levels up to and including 11, B<dh_installinit> will also "
+"handle upstart jobs provided in the debian packaging (see the L</FILES> for "
+"more information on this as well)."
msgstr ""
"B<dh_installinit> est le programme de la suite debhelper chargé de "
-"l'installation des scripts init avec les fichiers par défaut associés, ainsi "
-"que les fichiers de tâche upstart et les fichiers de service systemd dans le "
-"répertoire de construction du paquet."
+"l'installation des scripts init avec les fichiers par défaut associés. "
+"Jusqu'au niveau de compatibilité 10, B<dh_installinit> s'occupait aussi de "
+"certains fichiers de systemd fournis par l'empaquetage Debian (consultez la "
+"section L</FICHIERS> ci-dessous). Jusqu'au niveau de compatibilité 11, "
+"B<dh_installinit> s'occupait aussi des fichiers de tâche upstart fournis par "
+"l'empaquetage Debian (voir aussi L</FICHIERS> pour plus d'informations)."
# type: textblock
#. type: textblock
-#: dh_installinit:23
+#: dh_installinit:31
msgid ""
"It also automatically generates the F<postinst> and F<postrm> and F<prerm> "
"commands needed to set up the symlinks in F</etc/rc*.d/> to start and stop "
@@ -5552,15 +9975,29 @@ msgstr ""
"configuration des liens symboliques dans F</etc/rc*.d/> pour démarrer et "
"arrêter des scripts d'initialisation."
+#. type: textblock
+#: dh_installinit:35
+msgid ""
+"In compat 10 or earlier: If a package only ships a systemd service file and "
+"no sysvinit script is provided, you may want to exclude the call to "
+"dh_installinit for that package (e.g. via B<-N>). Otherwise, you may get "
+"warnings from lintian about init.d scripts not being included in the package."
+msgstr ""
+"Dans les niveaux de compatibilité 10 et avant : si un paquet fournit "
+"seulement un fichier de service systemd mais pas de script sysvinit, vous "
+"pouvez exclure l'appel à B<dh_installinit> pour ce paquet (par exemple avec "
+"B<-N>). Autrement vous recevrez des avertissements de lintian à propos de "
+"scripts init.d manquants."
+
# type: =item
#. type: =item
-#: dh_installinit:31
+#: dh_installinit:45
msgid "debian/I<package>.init"
msgstr "debian/I<paquet>.init"
# type: textblock
#. type: textblock
-#: dh_installinit:33
+#: dh_installinit:47
msgid ""
"If this exists, it is installed into etc/init.d/I<package> in the package "
"build directory."
@@ -5570,13 +10007,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installinit:36
+#: dh_installinit:50
msgid "debian/I<package>.default"
msgstr "debian/I<paquet>.default"
# type: textblock
#. type: textblock
-#: dh_installinit:38
+#: dh_installinit:52
msgid ""
"If this exists, it is installed into etc/default/I<package> in the package "
"build directory."
@@ -5586,63 +10023,91 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installinit:41
+#: dh_installinit:55
msgid "debian/I<package>.upstart"
msgstr "debian/I<paquet>.upstart"
+#. type: textblock
+#: dh_installinit:57
+msgid ""
+"In compatibility level 11, this file will trigger an error with a reminder "
+"about ensuring the proper removal of the upstart file in the previous "
+"package version. Please consider using the \"rm_conffile\" feature from "
+"L<dh_installdeb(1)> to ensure the proper removal of previous upstart files."
+msgstr ""
+"Dans le niveau de compatibilité 11, ce fichier provoquera une erreur "
+"contenant un rappel pour correctement supprimer le fichier upstart de la "
+"version précédente du paquet. Veuillez utiliser la fonction « rm_conffile » "
+"de L<dh_installdeb(1)> pour vous assurer de la suppression correcte des "
+"fichiers upstart."
+
# type: textblock
#. type: textblock
-#: dh_installinit:43
+#: dh_installinit:62
msgid ""
-"If this exists, it is installed into etc/init/I<package>.conf in the package "
-"build directory."
+"In compatibility level 10, if this file exists, it is installed into etc/"
+"init/I<package>.conf in the package build directory."
msgstr ""
-"S'il existe, il est installé dans le répertoire de construction du paquet, "
-"sous etc/init/I<paquet>."
+"Dans le niveau de compatibilité 10, si ce fichier existe, il est installé "
+"dans le répertoire de construction du paquet, sous etc/init/I<paquet>.conf."
# type: =item
#. type: =item
-#: dh_installinit:46
+#: dh_installinit:65
msgid "debian/I<package>.service"
msgstr "debian/I<paquet>.service"
# type: textblock
#. type: textblock
-#: dh_installinit:48
+#: dh_installinit:67
msgid ""
-"If this exists, it is installed into lib/systemd/system/I<package>.service "
-"in the package build directory."
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"service >> in the package build directory. Only used in compat levels 10 and "
+"below."
msgstr ""
"S'il existe, il est installé dans le répertoire de construction du paquet, "
-"sous lib/systemd/system/I<paquet>.service."
+"sous F<< lib/systemd/system/I<paquet>.service >>. Cela n'est utilisé que "
+"dans les niveaux de compatibilité 10 et inférieurs."
# type: =item
#. type: =item
-#: dh_installinit:51
+#: dh_installinit:70 dh_systemd_enable:50
msgid "debian/I<package>.tmpfile"
msgstr "debian/I<paquet>.tmpfile"
# type: textblock
#. type: textblock
-#: dh_installinit:53
+#: dh_installinit:72
+#, fuzzy
+#| msgid ""
+#| "If this exists, it is installed into F<< lib/systemd/system/I<package>."
+#| "service >> in the package build directory. Only used in compat levels 10 "
+#| "and below."
msgid ""
"If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in "
-"the package build directory. (The tmpfiles.d mechanism is currently only "
-"used by systemd.)"
+"the package build directory. Only used in compat levels 10 and below."
msgstr ""
"S'il existe, il est installé dans le répertoire de construction du paquet, "
-"sous usr/lib/tmpfiles.d/I<paquet>.conf (les mécanismes tmpfiles.d ne sont "
-"pour l'instant utilisés que par systemd)."
+"sous F<< lib/systemd/system/I<paquet>.service >>. Cela n'est utilisé que "
+"dans les niveaux de compatibilité 10 et inférieurs."
+
+# type: textblock
+#. type: textblock
+#: dh_installinit:83
+msgid "Do not modify F<postinst>/F<postrm>/F<prerm> scripts."
+msgstr ""
+"Empêche la modification des scripts de maintenance F<postinst>, F<postrm>, "
+"F<prerm>."
# type: =item
#. type: =item
-#: dh_installinit:67
-msgid "B<-o>, B<--onlyscripts>"
-msgstr "B<-o>, B<--onlyscripts>"
+#: dh_installinit:85
+msgid "B<-o>, B<--only-scripts>"
+msgstr "B<-o>, B<--only-scripts>"
# type: textblock
#. type: textblock
-#: dh_installinit:69
+#: dh_installinit:87
msgid ""
"Only modify F<postinst>/F<postrm>/F<prerm> scripts, do not actually install "
"any init script, default files, upstart job or systemd service file. May be "
@@ -5655,27 +10120,62 @@ msgstr ""
"installé en amont d'une façon qui ne rend pas facile sa recherche par "
"B<dh_installinit>."
+#. type: textblock
+#: dh_installinit:92
+msgid ""
+"B<Caveat>: This will bypass all the regular checks and I<unconditionally> "
+"modify the scripts. You will almost certainly want to use this with B<-p> "
+"to limit, which packages are affected by the call. Example:"
+msgstr ""
+"B<Avertissement> : cela court-circuitera toutes les vérifications "
+"habituelles et modifiera les scripts B<sans conditions>. Vous voudrez "
+"certainement utiliser cela avec l'option B<-p> pour limiter les paquets "
+"affectés par l'appel. Par exemple :"
+
+#. type: verbatim
+#: dh_installinit:97
+#, no-wrap
+msgid ""
+" override_dh_installinit:\n"
+"\tdh_installinit -pfoo --only-scripts\n"
+"\tdh_installinit --remaining\n"
+"\n"
+msgstr ""
+" override_dh_installinit:\n"
+"\tdh_installinit -ptoto --only-scripts\n"
+"\tdh_installinit --remaining\n"
+"\n"
+
# type: =item
#. type: =item
-#: dh_installinit:74
+#: dh_installinit:101
msgid "B<-R>, B<--restart-after-upgrade>"
msgstr "B<-R>, B<--restart-after-upgrade>"
# type: textblock
#. type: textblock
-#: dh_installinit:76
+#: dh_installinit:103
msgid ""
"Do not stop the init script until after the package upgrade has been "
-"completed. This is different than the default behavior, which stops the "
-"script in the F<prerm>, and starts it again in the F<postinst>."
+"completed. This is the default behaviour in compat 10."
+msgstr ""
+"N'arrête pas le script init tant que la mise à niveau du paquet n'est pas "
+"terminée. C'est le comportement par défaut dans le niveau de "
+"compatibilité 10."
+
+# type: textblock
+#. type: textblock
+#: dh_installinit:106
+msgid ""
+"In early compat levels, the default was to stop the script in the F<prerm>, "
+"and starts it again in the F<postinst>."
msgstr ""
-"N'arrête pas le script init tant que la mise à jour du paquet n'est pas "
-"terminée. Ce comportement est différent de celui par défaut qui arrête le "
-"script lors du F<prerm> et le redémarre lors du F<postinst>."
+"Dans les niveaux de compatibilité précédents, le comportement par défaut "
+"arrêtait le script lors du F<prerm> et le redémarrait lors du F<postinst>."
# type: textblock
#. type: textblock
-#: dh_installinit:80
+#: dh_installinit:109 dh_systemd_start:45
msgid ""
"This can be useful for daemons that should not have a possibly long downtime "
"during upgrade. But you should make sure that the daemon will not get "
@@ -5683,31 +10183,80 @@ msgid ""
"option."
msgstr ""
"Cela peut être utile pour les démons qui ne peuvent pas être arrêtés trop "
-"longtemps lors de la mise à niveau. Mais, avant d'utiliser cette option, il "
+"longtemps lors de la mise à jour. Mais, avant d'utiliser cette option, il "
"faut s'assurer que ces démons ne seront pas perturbés par la mise à jour du "
"paquet pendant leur fonctionnement."
# type: =item
#. type: =item
-#: dh_installinit:85
-msgid "B<-r>, B<--no-restart-on-upgrade>"
-msgstr "B<-r>, B<--no-restart-on-upgrade>"
+#: dh_installinit:114 dh_systemd_start:50
+msgid "B<--no-restart-after-upgrade>"
+msgstr "B<--no-restart-after-upgrade>"
-# type: textblock
#. type: textblock
-#: dh_installinit:87
-msgid "Do not stop init script on upgrade."
-msgstr "N'arrête pas le script init lors d'une mise à jour."
+#: dh_installinit:116 dh_systemd_start:52
+msgid ""
+"Undo a previous B<--restart-after-upgrade> (or the default of compat 10). "
+"If no other options are given, this will cause the service to be stopped in "
+"the F<prerm> script and started again in the F<postinst> script."
+msgstr ""
+"Annule un précédent B<--restart-after-upgrade> (ou le défaut du niveau de "
+"compatibilité 10). Si aucune autre option n'est donnée, cela provoque "
+"l'arrêt du service dans le script F<prerm> et son redémarrage dans le script "
+"F<postinst>."
+
+# type: =item
+#. type: =item
+#: dh_installinit:121 dh_systemd_start:57
+msgid "B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>"
+msgstr "B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>"
+
+#. type: textblock
+#: dh_installinit:123
+msgid ""
+"Do not stop init script on upgrade. This has the side-effect of not "
+"restarting the service as a part of the upgrade."
+msgstr ""
+"N'arrête pas le script init lors de la mise à niveau. Cela a pour effet "
+"secondaire de ne pas redémarrer le service lors de la mise à niveau."
+
+#. type: textblock
+#: dh_installinit:126
+msgid ""
+"If you want to restart the service with minimal downtime, please use B<--"
+"restart-after-upgrade> (default in compat 10 or later). If you want the "
+"service to be restarted but be stopped during the upgrade, then please use "
+"B<--no-restart-after-upgrade> (note the \"after-upgrade\")."
+msgstr ""
+"Si vous désirez redémarrer le service en minimisant la durée d'interruption, "
+"utilisez B<--restart-after-upgrade> (par défaut dans les niveaux de "
+"compatibilité 10 et au delà). Si vous voulez que le service soit redémarré, "
+"mais à l'arrêt pendant la mise à niveau, utilisez plutôt B<--no-restart-"
+"after-upgrade> (notez le « after-upgrade »)."
+
+#. type: textblock
+#: dh_installinit:131
+msgid ""
+"Note that the B<--no-restart-on-upgrade> alias is deprecated and will be "
+"removed in compat 12. This is to avoid confusion with the B<--no-restart-"
+"after-upgrade> option. The B<--no-stop-on-upgrade> variant was introduced "
+"in debhelper 10.2 (included in Debian stretch)."
+msgstr ""
+"Veuillez note que l'alias B<--no-restart-on-upgrade> est obsolète et sera "
+"supprimé dans le niveau de compatibilité 12, pour éviter de confondre avec "
+"l'option B<--no-restart-after-upgrade>. La variante B<--no-stop-on-upgrade> "
+"a été introduite dans la version 10.2 de debhelper (incluse dans "
+"Debian Stretch)."
# type: =item
#. type: =item
-#: dh_installinit:89
+#: dh_installinit:136 dh_systemd_start:61
msgid "B<--no-start>"
msgstr "B<--no-start>"
# type: textblock
#. type: textblock
-#: dh_installinit:91
+#: dh_installinit:138
msgid ""
"Do not start the init script on install or upgrade, or stop it on removal. "
"Only call B<update-rc.d>. Useful for rcS scripts."
@@ -5718,20 +10267,60 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installinit:94
+#: dh_installinit:141 dh_systemd_enable:86
+msgid "B<--no-enable>"
+msgstr "B<--no-enable>"
+
+#. type: textblock
+#: dh_installinit:143
+msgid ""
+"Disable the init script on purge, but do not enable them on install. This "
+"implies a versioned dependency on B<< init-system-helpers (E<gt>= 1.51) >> "
+"as it is the first (functional) version that supports B<< update-rc.d "
+"E<lt>scriptE<gt> defaults-disabled >>."
+msgstr ""
+"Désactive le script init lors de la purge, mais ne l'active pas à "
+"l'installation. Cette option implique une dépendance versionnée sur B<<init-"
+"system-helpers (E<gt>= 1.51) >> car c'est la première version "
+"(fonctionnelle) à prendre en charge B<< update-rc.d E<lt>scriptE<gt> "
+"defaults-disabled >>."
+
+#. type: textblock
+#: dh_installinit:148
+msgid ""
+"B<Note> that this option does not affect whether the services are started. "
+"Please remember to also use B<--no-start> if the service should not be "
+"started."
+msgstr ""
+"B<Nota> : cette option n'affecte pas le démarrage des services. Veuillez "
+"utiliser B<--no-start> si le service ne doit pas être démarré."
+
+# type: =item
+#. type: textblock
+#: dh_installinit:152
+msgid ""
+"Cannot be combined with B<-u>I<params>, B<--update-rcd-params=>I<params>, or "
+"B<--> I<params>."
+msgstr ""
+"Ne peut pas être combiné à B<-u>I<paramètres> B<--update-rcd-"
+"params=>I<paramètres> ou B<--> I<paramètres>."
+
+# type: =item
+#. type: =item
+#: dh_installinit:155
msgid "B<-d>, B<--remove-d>"
msgstr "B<-d>, B<--remove-d>"
# type: textblock
#. type: textblock
-#: dh_installinit:96
+#: dh_installinit:157
msgid ""
"Remove trailing B<d> from the name of the package, and use the result for "
"the filename the upstart job file is installed as in F<etc/init/> , and for "
"the filename the init script is installed as in etc/init.d and the default "
-"file is installed as in F<etc/default/> . This may be useful for daemons "
-"with names ending in B<d>. (Note: this takes precedence over the B<--init-"
-"script> parameter described below.)"
+"file is installed as in F<etc/default/>. This may be useful for daemons with "
+"names ending in B<d>. (Note: this takes precedence over the B<--init-script> "
+"parameter described below.)"
msgstr ""
"Enlève le B<d> situé à la fin du nom du paquet et utilise le résultat pour "
"nommer le fichier de tâche upstart, installé dans F<etc/init>, et le script "
@@ -5742,23 +10331,30 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installinit:103
+#: dh_installinit:164
msgid "B<-u>I<params> B<--update-rcd-params=>I<params>"
msgstr "B<-u>I<paramètres> B<--update-rcd-params=>I<paramètres>"
# type: textblock
#. type: textblock
-#: dh_installinit:107
+#: dh_installinit:168
msgid ""
-"Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> will be "
-"passed to L<update-rc.d(8)>."
+"Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> (or "
+"B<defaults-disabled> with B<--no-enable>) will be passed to L<update-rc."
+"d(8)>."
msgstr ""
"Passe les I<paramètres> indiqués à L<update-rc.d(8)>. Si rien n'est indiqué, "
-"B<defaults> sera passé à L<update-rc.d(8)>."
+"B<defaults> (ou B<defaults-disabled> avec B<--no-enable>) sera passé à "
+"L<update-rc.d(8)>."
+
+#. type: textblock
+#: dh_installinit:172
+msgid "Cannot be combined with B<--no-enable>."
+msgstr "Ne peut pas être combiné à B<--no-enable>."
# type: textblock
#. type: textblock
-#: dh_installinit:112
+#: dh_installinit:176
msgid ""
"Install the init script (and default file) as well as upstart job file using "
"the filename I<name> instead of the default filename, which is the package "
@@ -5776,13 +10372,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installinit:120
+#: dh_installinit:184
msgid "B<--init-script=>I<scriptname>"
msgstr "B<--init-script=>I<nom-du-script>"
# type: textblock
#. type: textblock
-#: dh_installinit:122
+#: dh_installinit:186
msgid ""
"Use I<scriptname> as the filename the init script is installed as in F<etc/"
"init.d/> (and also use it as the filename for the defaults file, if it is "
@@ -5799,7 +10395,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installinit:129
+#: dh_installinit:193
msgid ""
"This parameter is deprecated, use the B<--name> parameter instead. This "
"parameter is incompatible with the use of upstart jobs."
@@ -5809,41 +10405,144 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installinit:132
+#: dh_installinit:196
msgid "B<--error-handler=>I<function>"
msgstr "B<--error-handler=>I<fonction>"
# type: textblock
#. type: textblock
-#: dh_installinit:134
+#: dh_installinit:198
msgid ""
"Call the named shell I<function> if running the init script fails. The "
"function should be provided in the F<prerm> and F<postinst> scripts, before "
"the B<#DEBHELPER#> token."
msgstr ""
-"Invoque la I<fonction> indiquée (via l'interpréteur de commande) dans le cas "
-"où le script init échouerait. La fonction doit être décrite dans les scripts "
-"de maintenance F<prerm> et F<postinst> avant l'apparition de B<#DEBHELPER#>."
+"Invoque la I<fonction> indiquée d'interpréteur de commandes dans le cas où "
+"le script init échouerait. La fonction doit être décrite dans les scripts de "
+"maintenance F<prerm> et F<postinst> avant l'apparition de B<#DEBHELPER#>."
-# type: =head1
-#. type: =head1
-#: dh_installinit:330
-msgid "AUTHORS"
-msgstr "AUTEURS"
+# type: textblock
+#. type: textblock
+#: dh_installinit:415
+msgid "L<debhelper(7)>, L<dh_installsystemd(1)>"
+msgstr "L<debhelper(7)>, L<dh_installsystemd(1)>"
# type: textblock
#. type: textblock
-#: dh_installinit:334
+#: dh_installinit:423
msgid "Steve Langasek <steve.langasek@canonical.com>"
msgstr "Steve Langasek <steve.langasek@canonical.com>"
#. type: textblock
-#: dh_installinit:336
+#: dh_installinit:425
msgid "Michael Stapelberg <stapelberg@debian.org>"
msgstr "Michael Stapelberg <stapelberg@debian.org>"
# type: textblock
#. type: textblock
+#: dh_installinitramfs:5
+msgid "dh_installinitramfs - install initramfs hooks and setup maintscripts"
+msgstr ""
+"dh_installinitramfs - Installer les accroches (hooks) pour initramfs et "
+"configurer les scripts de maintenance"
+
+# type: textblock
+#. type: textblock
+#: dh_installinitramfs:17
+msgid "B<dh_installinitramfs> [S<B<debhelper options>>] [B<-n>]"
+msgstr "B<dh_installinitramfs> [B<options_de_debhelper>] [B<-n>]"
+
+# type: textblock
+#. type: textblock
+#: dh_installinitramfs:21
+msgid ""
+"B<dh_installinitramfs> is a debhelper program that is responsible for "
+"installing Debian package provided initramfs hooks."
+msgstr ""
+"B<dh_installinitramfs> est le programme de la suite debhelper chargé de "
+"l'installation des accroches (hooks) pour initramfs fournies par le paquet "
+"Debian."
+
+# type: textblock
+#. type: textblock
+#: dh_installinitramfs:24
+msgid ""
+"If B<dh_installinitramfs> installs or detects one or more initramfs hooks in "
+"the package, then it also automatically generates the noawait trigger "
+"B<update-initframfs> command needed to interface with the Debian initramfs "
+"system. This trigger is inserted into the packaging by L<dh_installdeb(1)>."
+msgstr ""
+"Si B<dh_installinitramfs> installe ou détecte une ou plusieurs accroches "
+"pour initramfs dans le paquet, alors il produit aussi automatiquement la "
+"commande d'action différée « noawait » d'B<update-initframfs> nécessaire à "
+"l'interface avec le système initramfs de Debian. Cette action différée "
+"(« trigger ») est insérée dans l'empaquetage par L<dh_installdeb(1)>."
+
+# type: =item
+#. type: =item
+#: dh_installinitramfs:34
+msgid "debian/I<package>.initramfs-hook"
+msgstr "debian/I<paquet>.initramfs-hook"
+
+#. type: textblock
+#: dh_installinitramfs:36
+msgid ""
+"Assumed to be an initramfs hook that will be installed into F<< usr/share/"
+"initramfs-tools/hooks/I<package> >> in the package build directory. See "
+"B<HOOK SCRIPTS> in L<initramfs-tools(8)> for more information about "
+"initramfs hooks."
+msgstr ""
+"Considéré comme une accroche pour initramfs qui sera installée dans F<< usr/"
+"share/initramfs-tools/hooks/I<paquet> >> dans le répertoire de construction "
+"du paquet. Consultez B<HOOK SCRIPTS> dans L<initramfs-tools(8)> pour plus "
+"d'information à ce sujet."
+
+#. type: textblock
+#: dh_installinitramfs:49
+msgid ""
+"Do not add the B<update-initramfs> trigger even if it seems like the package "
+"might need it. The option is called B<--no-scripts> for historical reasons "
+"as B<dh_installinitramfs> would previously generate maintainer scripts that "
+"called B<update-initramfs -u>."
+msgstr ""
+"N'ajoutez pas l'action différée (« trigger ») B<update-initramfs> même s'il "
+"semble que le paquet en a besoin. L'option est nommée B<--no-scripts> pour "
+"des raisons historiques, car B<dh_installinitramfs> générait précédemment un "
+"script du responsable qui appelait B<update-initramfs -u>."
+
+#. type: textblock
+#: dh_installinitramfs:54
+msgid ""
+"Use this option, if you need to interface with the B<update-initramfs> "
+"system that is not satisfied by the noawait trigger (e.g. because you need "
+"the extra guarantees and head-aches of a await trigger)."
+msgstr ""
+"Utilisez cette option, si le besoin d'interface au système B<update-"
+"initramfs> n'est pas satisfait par l'action différée « noawait » (par "
+"exemple, parce que vous avez besoin des garanties supplémentaires et des "
+"problèmes d'une action différée « await »)."
+
+# type: textblock
+#. type: textblock
+#: dh_installinitramfs:62
+msgid ""
+"Note that this command is not idempotent. L<dh_prep(1)> should be called "
+"between invocations of this command. Otherwise, it may cause multiple "
+"instances of the same text to be added to triggers file."
+msgstr ""
+"Nota : Cette commande n'est pas idempotente. L<dh_prep(1)> doit être appelé "
+"entre chaque exécution de cette commande. Sinon, il risque d'y avoir "
+"plusieurs occurrences des mêmes lignes de code ajoutées au fichier "
+"I<triggers>."
+
+# type: textblock
+#. type: textblock
+#: dh_installinitramfs:93
+msgid "L<debhelper(7)> L<update-initramfs(8)> L<initramfs-tools(8)>"
+msgstr "L<debhelper(7)> L<update-initramfs(8)> L<initramfs-tools(8)>"
+
+# type: textblock
+#. type: textblock
#: dh_installlogcheck:5
msgid "dh_installlogcheck - install logcheck rulefiles into etc/logcheck/"
msgstr ""
@@ -5852,13 +10551,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installlogcheck:14
+#: dh_installlogcheck:17
msgid "B<dh_installlogcheck> [S<I<debhelper options>>]"
-msgstr "B<dh_installlogcheck> [S<B<options de debhelper>>]"
+msgstr "B<dh_installlogcheck> [S<B<options_de_debhelper>>]"
# type: textblock
#. type: textblock
-#: dh_installlogcheck:18
+#: dh_installlogcheck:21
msgid ""
"B<dh_installlogcheck> is a debhelper program that is responsible for "
"installing logcheck rule files."
@@ -5869,43 +10568,43 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installlogcheck:25
+#: dh_installlogcheck:28
msgid "debian/I<package>.logcheck.cracking"
msgstr "debian/I<paquet>.logcheck.cracking"
# type: =item
#. type: =item
-#: dh_installlogcheck:27
+#: dh_installlogcheck:30
msgid "debian/I<package>.logcheck.violations"
msgstr "debian/I<paquet>.logcheck.violations"
# type: =item
#. type: =item
-#: dh_installlogcheck:29
+#: dh_installlogcheck:32
msgid "debian/I<package>.logcheck.violations.ignore"
msgstr "debian/I<paquet>.logcheck.violations.ignore"
# type: =item
#. type: =item
-#: dh_installlogcheck:31
+#: dh_installlogcheck:34
msgid "debian/I<package>.logcheck.ignore.workstation"
msgstr "debian/I<paquet>.logcheck.ignore.workstation"
# type: =item
#. type: =item
-#: dh_installlogcheck:33
+#: dh_installlogcheck:36
msgid "debian/I<package>.logcheck.ignore.server"
msgstr "debian/I<paquet>.logcheck.ignore.server"
# type: =item
#. type: =item
-#: dh_installlogcheck:35
+#: dh_installlogcheck:38
msgid "debian/I<package>.logcheck.ignore.paranoid"
msgstr "debian/I<paquet>.logcheck.ignore.paranoid"
# type: textblock
#. type: textblock
-#: dh_installlogcheck:37
+#: dh_installlogcheck:40
msgid ""
"Each of these files, if present, are installed into corresponding "
"subdirectories of F<etc/logcheck/> in package build directories."
@@ -5915,7 +10614,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installlogcheck:48
+#: dh_installlogcheck:51
msgid ""
"Look for files named F<debian/package.name.logcheck.*> and install them into "
"the corresponding subdirectories of F<etc/logcheck/>, but use the specified "
@@ -5927,7 +10626,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh_installlogcheck:84
+#: dh_installlogcheck:85
#, no-wrap
msgid ""
"This program is a part of debhelper.\n"
@@ -5938,7 +10637,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installlogcheck:88
+#: dh_installlogcheck:89
msgid "Jon Middleton <jjm@debian.org>"
msgstr "Jon Middleton <jjm@debian.org>"
@@ -5952,13 +10651,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installlogrotate:14
+#: dh_installlogrotate:17
msgid "B<dh_installlogrotate> [S<I<debhelper options>>] [B<--name=>I<name>]"
-msgstr "B<dh_installlogrotate> [I<options de debhelper>] [B<--name=>I<nom>]"
+msgstr "B<dh_installlogrotate> [I<options_de_debhelper>] [B<--name=>I<nom>]"
# type: textblock
#. type: textblock
-#: dh_installlogrotate:18
+#: dh_installlogrotate:21
msgid ""
"B<dh_installlogrotate> is a debhelper program that is responsible for "
"installing logrotate config files into F<etc/logrotate.d> in package build "
@@ -5970,7 +10669,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installlogrotate:28
+#: dh_installlogrotate:31
msgid ""
"Look for files named F<debian/package.name.logrotate> and install them as "
"F<etc/logrotate.d/name>, instead of using the usual files and installing "
@@ -5990,40 +10689,79 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installman:15
+#: dh_installman:18
msgid "B<dh_installman> [S<I<debhelper options>>] [S<I<manpage> ...>]"
msgstr ""
-"B<dh_installman> [S<I<options de debhelper>>] [S<I<page-de-manuel> ...>]"
+"B<dh_installman> [S<I<options_de_debhelper>>] [S<I<page-de-manuel> ...>]"
# type: textblock
#. type: textblock
-#: dh_installman:19
+#: dh_installman:22
msgid ""
"B<dh_installman> is a debhelper program that handles installing man pages "
-"into the correct locations in package build directories. You tell it what "
-"man pages go in your packages, and it figures out where to install them "
-"based on the section field in their B<.TH> or B<.Dt> line. If you have a "
-"properly formatted B<.TH> or B<.Dt> line, your man page will be installed "
-"into the right directory, with the right name (this includes proper handling "
-"of pages with a subsection, like B<3perl>, which are placed in F<man3>, and "
-"given an extension of F<.3perl>). If your B<.TH> or B<.Dt> line is incorrect "
-"or missing, the program may guess wrong based on the file extension."
-msgstr ""
-"B<dh_installman> est le programme de la suite debhelper chargé de "
-"l'installation des pages de manuel à l'emplacement correct dans le "
-"répertoire de construction du paquet. À partir de la liste des pages de "
-"manuel à installer, B<dh_installman> examine la section indiquée à la ligne "
-"B<.TH> ou B<.Dt> de la page et en déduit la destination. Si la ligne B<.TH> "
-"ou B<.Dt> est correctement renseignée, les pages de manuel seront installées "
-"dans la bonne section avec le nom adéquat. Ce mécanisme fonctionne également "
-"pour les pages comportant des sous-sections, telle que B<3perl>, qui sera "
-"placé en F<man3> et portera l'extension F<.3perl>. Si la ligne B<.TH> ou B<."
-"Dt> est erronée ou absente, le programme peut faire une mauvaise déduction, "
-"basée sur l'extension du fichier."
-
-# type: textblock
-#. type: textblock
-#: dh_installman:29
+"into the correct locations in package build directories."
+msgstr ""
+"B<dh_installman> est un programme de la suite debhelper chargé de "
+"l'installation automatique des pages de manuel au bon endroit dans le "
+"répertoire de construction du paquet."
+
+#. type: textblock
+#: dh_installman:25
+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 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 ""
+"Jusqu'au niveau de compatibilité 10, ce programme était utilisé "
+"principalement lorsque le système de construction amont ne les installait "
+"pas correctement lors de la phase d'installation (ou n'avait de phase "
+"d'installation). À partir du niveau de compatibilité 11, il prend aussi en "
+"charge le répertoire de recherche par défaut et en plus B<--sourcedir> comme "
+"dh_install(1) et a l'avantage de respecter le profil de construction "
+"B<nodoc> (contrairement à L<dh_install(1)>)."
+
+#. type: textblock
+#: dh_installman:32
+msgid ""
+"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 to "
+"UTF-8 and for converting F<.so> links (as described below). However, that "
+"part happens automatically without any explicit configuration."
+msgstr ""
+"Même si vous préférez L<dh_install(1)> pour installer les pages de manuel, "
+"B<dh_installman> peut être utile pour convertir les pages en UTF-8 et les "
+"liens F<.so> (comme décrit plus bas). De plus, cela est effectué "
+"automatiquement sans configuration explicite."
+
+# type: textblock
+#. type: textblock
+#: dh_installman:38
+msgid ""
+"You tell B<dh_installman> what man pages go in your packages, and it figures "
+"out where to install them based on the section field in their B<.TH> or B<."
+"Dt> line. If you have a properly formatted B<.TH> or B<.Dt> line, your man "
+"page will be installed into the right directory, with the right name (this "
+"includes proper handling of pages with a subsection, like B<3perl>, which "
+"are placed in F<man3>, and given an extension of F<.3perl>). If your B<.TH> "
+"or B<.Dt> line is incorrect or missing, the program may guess wrong based on "
+"the file extension."
+msgstr ""
+"À partir de la liste des pages de manuel à installer, B<dh_installman> "
+"examine la section indiquée à la ligne B<.TH> ou B<.Dt> de la page et en "
+"déduit la destination. Si la ligne B<.TH> ou B<.Dt> est correctement "
+"renseignée, les pages de manuel seront installées dans la bonne section avec "
+"le nom adéquat. Ce mécanisme fonctionne également pour les pages comportant "
+"des sous-sections, telles que B<3perl>, qui sera placée en F<man3> et "
+"portera l'extension F<.3perl>. Si la ligne B<.TH> ou B<.Dt> est erronée ou "
+"absente, le programme peut faire une mauvaise déduction, basée sur "
+"l'extension du fichier."
+
+# type: textblock
+#. type: textblock
+#: dh_installman:47
msgid ""
"It also supports translated man pages, by looking for extensions like F<."
"ll.8> and F<.ll_LL.8>, or by use of the B<--language> switch."
@@ -6036,7 +10774,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installman:32
+#: dh_installman:50
msgid ""
"If B<dh_installman> seems to install a man page into the wrong section or "
"with the wrong extension, this is because the man page has the wrong section "
@@ -6057,11 +10795,11 @@ msgstr ""
"une page de manuel dans un répertoire tel que F</usr/share/man/pl/man1/> "
"c'est parce que le programme possède un nom comme F<toto.pl> et que "
"B<dh_installman> pense que la page de manuel est traduite en polonais (pl). "
-"Il suffit d'utiliser B<language=C> pour lever cette ambiguïté."
+"Il suffit d'utiliser B<--language=C> pour lever cette ambiguïté."
# type: textblock
#. type: textblock
-#: dh_installman:42
+#: dh_installman:60
msgid ""
"After the man page installation step, B<dh_installman> will check to see if "
"any of the man pages in the temporary directories of any of the packages it "
@@ -6069,12 +10807,12 @@ msgid ""
msgstr ""
"Après l'étape d'installation des pages de manuel, B<dh_installman> vérifie "
"si des pages de manuel, contenues dans les répertoires temporaires des "
-"paquets traités, contiennent des liens F<.so>. Dans ce cas il les transforme "
-"en liens symboliques."
+"paquets traités, contiennent des liens F<.so>. Dans ce cas, il les "
+"transforme en liens symboliques."
# type: textblock
#. type: textblock
-#: dh_installman:46
+#: dh_installman:64
msgid ""
"Also, B<dh_installman> will use man to guess the character encoding of each "
"manual page and convert it to UTF-8. If the guesswork fails for some reason, "
@@ -6089,25 +10827,25 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installman:55
+#: dh_installman:77
msgid "debian/I<package>.manpages"
msgstr "debian/I<paquet>.manpages"
# type: textblock
#. type: textblock
-#: dh_installman:57
+#: dh_installman:79
msgid "Lists man pages to be installed."
msgstr "Liste les pages de manuel à installer."
# type: =item
#. type: =item
-#: dh_installman:70
+#: dh_installman:95
msgid "B<--language=>I<ll>"
msgstr "B<--language=>I<ll>"
# type: textblock
#. type: textblock
-#: dh_installman:72
+#: dh_installman:97
msgid ""
"Use this to specify that the man pages being acted on are written in the "
"specified language."
@@ -6117,13 +10855,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installman:75
+#: dh_installman:110
msgid "I<manpage> ..."
msgstr "I<page-de-manuel> ..."
# type: textblock
#. type: textblock
-#: dh_installman:77
+#: dh_installman:112
msgid ""
"Install these man pages into the first package acted on. (Or in all packages "
"if B<-A> is specified)."
@@ -6131,9 +10869,40 @@ msgstr ""
"Installe les pages de manuel indiquées dans le premier paquet traité (ou "
"dans tous les paquets traités si B<-A> est indiqué)."
+#. type: textblock
+#: dh_installman:119
+msgid "An example F<debian/manpages> file could look like this:"
+msgstr "Un fichier exemple de F<debian/manpages> ressemblerait à ceci :"
+
+#. type: verbatim
+#: dh_installman:121
+#, no-wrap
+msgid ""
+" doc/man/foo.1\n"
+" # Translations\n"
+" doc/man/foo.da.1\n"
+" doc/man/foo.de.1\n"
+" doc/man/foo.fr.1\n"
+" # NB: The following line is considered a polish translation\n"
+" # of \"foo.1\" (and not a manpage written in perl called \"foo.pl\")\n"
+" doc/man/foo.pl.1\n"
+" # ...\n"
+"\n"
+msgstr ""
+" doc/man/toto.1\n"
+" # Traductions\n"
+" doc/man/toto.da.1\n"
+" doc/man/toto.de.1\n"
+" doc/man/toto.fr.1\n"
+" # NB: La ligne suivante est considérée comme une traduction polonaise\n"
+" # de \"toto.1\" (pas une page de manuel écrite en Perl appelée toto.pl)\n"
+" doc/man/toto.pl.1\n"
+" # ...\n"
+"\n"
+
# type: textblock
#. type: textblock
-#: dh_installman:84
+#: dh_installman:133
msgid ""
"An older version of this program, L<dh_installmanpages(1)>, is still used by "
"some packages, and so is still included in debhelper. It is, however, "
@@ -6151,18 +10920,18 @@ msgstr ""
#: dh_installmanpages:5
msgid "dh_installmanpages - old-style man page installer (deprecated)"
msgstr ""
-"dh_installmanpages - ancien programme d'installation des pages de manuel "
+"dh_installmanpages - Ancien programme d'installation des pages de manuel "
"(obsolète)"
# type: textblock
#. type: textblock
-#: dh_installmanpages:15
+#: dh_installmanpages:18
msgid "B<dh_installmanpages> [S<I<debhelper options>>] [S<I<file> ...>]"
-msgstr "B<dh_installmanpages> [S<I<options de debhelper>>] [S<I<fichier> ...>]"
+msgstr "B<dh_installmanpages> [S<I<options_de_debhelper>>] [S<I<fichier> ...>]"
# type: textblock
#. type: textblock
-#: dh_installmanpages:19
+#: dh_installmanpages:22
msgid ""
"B<dh_installmanpages> is a debhelper program that is responsible for "
"automatically installing man pages into F<usr/share/man/> in package build "
@@ -6174,19 +10943,19 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmanpages:23
+#: dh_installmanpages:26
msgid ""
"This is a DWIM-style program, with an interface unlike the rest of "
"debhelper. It is deprecated, and you are encouraged to use "
"L<dh_installman(1)> instead."
msgstr ""
-"C'est un programme de style DWIM, possédant une interface différente du "
-"reste de la suite debhelper. Son usage est déconseillé et il faut lui "
-"préférer L<dh_installman(1)>."
+"C'est un programme de style DWIM (« fais ce que je veux dire »), possédant "
+"une interface différente du reste de la suite debhelper. Son usage est "
+"déconseillé et il faut lui préférer L<dh_installman(1)>."
# type: textblock
#. type: textblock
-#: dh_installmanpages:27
+#: dh_installmanpages:30
msgid ""
"B<dh_installmanpages> scans the current directory and all subdirectories for "
"filenames that look like man pages. (Note that only real files are looked "
@@ -6197,13 +10966,13 @@ msgstr ""
"B<dh_installmanpages> explore le répertoire actuel et tous les sous-"
"répertoires à la recherche de fichiers portant un nom ressemblant à ceux "
"utilisés pour les pages de manuel. Nota : Seuls les vrais répertoires sont "
-"scrutés, les liens symboliques sont ignorés. dh_installmanpages utilise "
+"scrutés, les liens symboliques sont ignorés. B<dh_installmanpages> utilise "
"L<file(1)> pour vérifier si les fichiers sont dans un format correct, puis "
"se base sur l'extension du fichier pour l'installer dans le bon répertoire."
# type: textblock
#. type: textblock
-#: dh_installmanpages:33
+#: dh_installmanpages:36
msgid ""
"All filenames specified as parameters will be skipped by "
"B<dh_installmanpages>. This is useful if by default it installs some man "
@@ -6215,19 +10984,19 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmanpages:37
+#: dh_installmanpages:40
msgid ""
"After the man page installation step, B<dh_installmanpages> will check to "
"see if any of the man pages are F<.so> links. If so, it changes them to "
"symlinks."
msgstr ""
"Après l'étape d'installation des pages de manuel, B<dh_installmanpages> "
-"vérifie si des pages de manuel contiennent des liens F<.so>. Dans ce cas il "
+"vérifie si des pages de manuel contiennent des liens F<.so>. Dans ce cas, il "
"les transforme en liens symboliques."
# type: textblock
#. type: textblock
-#: dh_installmanpages:46
+#: dh_installmanpages:49
msgid ""
"Do not install these files as man pages, even if they look like valid man "
"pages."
@@ -6237,13 +11006,13 @@ msgstr ""
# type: =head1
#. type: =head1
-#: dh_installmanpages:51
+#: dh_installmanpages:54
msgid "BUGS"
msgstr "BOGUES"
# type: textblock
#. type: textblock
-#: dh_installmanpages:53
+#: dh_installmanpages:56
msgid ""
"B<dh_installmanpages> will install the man pages it finds into B<all> "
"packages you tell it to act on, since it can't tell what package the man "
@@ -6259,13 +11028,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmanpages:58
+#: dh_installmanpages:61
msgid "Files ending in F<.man> will be ignored."
msgstr "Les fichiers finissant par L<.man> sont ignorés."
# type: textblock
#. type: textblock
-#: dh_installmanpages:60
+#: dh_installmanpages:63
msgid ""
"Files specified as parameters that contain spaces in their filenames will "
"not be processed properly."
@@ -6284,13 +11053,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmenu:14
+#: dh_installmenu:17
msgid "B<dh_installmenu> [S<B<debhelper options>>] [B<-n>]"
-msgstr "B<dh_installmenu> [B<options de debhelper>] [B<-n>]"
+msgstr "B<dh_installmenu> [B<options_de_debhelper>] [B<-n>]"
# type: textblock
#. type: textblock
-#: dh_installmenu:18
+#: dh_installmenu:21
msgid ""
"B<dh_installmenu> is a debhelper program that is responsible for installing "
"files used by the Debian B<menu> package into package build directories."
@@ -6301,7 +11070,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmenu:21
+#: dh_installmenu:24
msgid ""
"It also automatically generates the F<postinst> and F<postrm> commands "
"needed to interface with the Debian B<menu> package. These commands are "
@@ -6314,13 +11083,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installmenu:29
+#: dh_installmenu:32
msgid "debian/I<package>.menu"
msgstr "debian/I<paquet>.menu"
# type: textblock
#. type: textblock
-#: dh_installmenu:31
+#: dh_installmenu:34
msgid ""
"Debian menu files, installed into usr/share/menu/I<package> in the package "
"build directory. See L<menufile(5)> for its format."
@@ -6331,13 +11100,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installmenu:34
+#: dh_installmenu:37
msgid "debian/I<package>.menu-method"
msgstr "debian/I<paquet>.menu-method"
# type: textblock
#. type: textblock
-#: dh_installmenu:36
+#: dh_installmenu:39
msgid ""
"Debian menu method files, installed into etc/menu-methods/I<package> in the "
"package build directory."
@@ -6347,7 +11116,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmenu:47 dh_makeshlibs:79
+#: dh_installmenu:50
msgid "Do not modify F<postinst>/F<postrm> scripts."
msgstr ""
"Empêche la modification des scripts de maintenance du paquet F<postinst> et "
@@ -6355,7 +11124,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmenu:91
+#: dh_installmenu:90
msgid "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
msgstr "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
@@ -6369,13 +11138,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmime:14
+#: dh_installmime:17
msgid "B<dh_installmime> [S<I<debhelper options>>]"
-msgstr "B<dh_installmime> [I<options de debhelper>]"
+msgstr "B<dh_installmime> [I<options_de_debhelper>]"
# type: textblock
#. type: textblock
-#: dh_installmime:18
+#: dh_installmime:21
msgid ""
"B<dh_installmime> is a debhelper program that is responsible for installing "
"mime files into package build directories."
@@ -6386,13 +11155,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installmime:25
+#: dh_installmime:28
msgid "debian/I<package>.mime"
msgstr "debian/I<paquet>.mime"
# type: textblock
#. type: textblock
-#: dh_installmime:27
+#: dh_installmime:30
msgid ""
"Installed into usr/lib/mime/packages/I<package> in the package build "
"directory."
@@ -6402,13 +11171,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installmime:30
+#: dh_installmime:33
msgid "debian/I<package>.sharedmimeinfo"
msgstr "debian/I<paquet>.sharedmimeinfo"
# type: textblock
#. type: textblock
-#: dh_installmime:32
+#: dh_installmime:35
msgid ""
"Installed into /usr/share/mime/packages/I<package>.xml in the package build "
"directory."
@@ -6419,22 +11188,20 @@ msgstr ""
# type: textblock
#. type: textblock
#: dh_installmodules:5
-#, fuzzy
-#| msgid "dh_installmodules - register modules with modutils"
msgid "dh_installmodules - register kernel modules"
-msgstr "dh_installmodules - Inscrire les modules avec modutils"
+msgstr "dh_installmodules - Inscrire les modules du noyau"
# type: textblock
#. type: textblock
-#: dh_installmodules:15
+#: dh_installmodules:18
msgid ""
"B<dh_installmodules> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>]"
msgstr ""
-"B<dh_installmodules> [I<options de debhelper>] [B<-n>] [B<--name=>I<nom>]"
+"B<dh_installmodules> [I<options_de_debhelper>] [B<-n>] [B<--name=>I<nom>]"
# type: textblock
#. type: textblock
-#: dh_installmodules:19
+#: dh_installmodules:22
msgid ""
"B<dh_installmodules> is a debhelper program that is responsible for "
"registering kernel modules."
@@ -6444,7 +11211,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmodules:22
+#: dh_installmodules:25
msgid ""
"Kernel modules are searched for in the package build directory and if found, "
"F<preinst>, F<postinst> and F<postrm> commands are automatically generated "
@@ -6453,21 +11220,20 @@ msgid ""
"L<dh_installdeb(1)>."
msgstr ""
"Des modules de noyau sont recherchés dans le répertoire de construction du "
-"paquet et, s'il s'en trouve, les commandes des scripts F<preinst>, "
-"F<postinst> et F<postrm> sont automatiquement produites afin d'exécuter "
-"B<depmod> et d'inscrire les modules lors de l'installation du paquet. Ces "
-"commandes sont insérées dans les scripts de maintenance par "
-"L<dh_installdeb(1)>."
+"paquet et, si trouvé(s), les commandes des scripts F<preinst>, F<postinst> "
+"et F<postrm> sont automatiquement produites afin d'exécuter B<depmod> et "
+"inscrire les modules lors de l'installation du paquet. Ces commandes sont "
+"insérées dans les scripts de maintenance par L<dh_installdeb(1)>."
# type: =item
#. type: =item
-#: dh_installmodules:32
+#: dh_installmodules:35
msgid "debian/I<package>.modprobe"
msgstr "debian/I<paquet>.modprobe"
# type: textblock
#. type: textblock
-#: dh_installmodules:34
+#: dh_installmodules:37
msgid ""
"Installed to etc/modprobe.d/I<package>.conf in the package build directory."
msgstr ""
@@ -6476,7 +11242,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmodules:44
+#: dh_installmodules:47
msgid "Do not modify F<preinst>/F<postinst>/F<postrm> scripts."
msgstr ""
"Empêche la modification des scripts de maintenance du paquet F<preinst>, "
@@ -6484,7 +11250,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installmodules:48
+#: dh_installmodules:51
msgid ""
"When this parameter is used, B<dh_installmodules> looks for and installs "
"files named debian/I<package>.I<name>.modprobe instead of the usual debian/"
@@ -6502,13 +11268,13 @@ msgstr "dh_installpam - Installer les fichiers de support de PAM"
# type: textblock
#. type: textblock
-#: dh_installpam:14
+#: dh_installpam:17
msgid "B<dh_installpam> [S<I<debhelper options>>] [B<--name=>I<name>]"
-msgstr "B<dh_installpam> [I<options de debhelper>] [B<--name=>I<nom>]"
+msgstr "B<dh_installpam> [I<options_de_debhelper>] [B<--name=>I<nom>]"
# type: textblock
#. type: textblock
-#: dh_installpam:18
+#: dh_installpam:21
msgid ""
"B<dh_installpam> is a debhelper program that is responsible for installing "
"files used by PAM into package build directories."
@@ -6519,25 +11285,52 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installpam:25
+#: dh_installpam:28
msgid "debian/I<package>.pam"
msgstr "debian/I<paquet>.pam"
# type: textblock
#. type: textblock
-#: dh_installpam:27
-msgid "Installed into etc/pam.d/I<package> in the package build directory."
+#: dh_installpam:30
+#, fuzzy
+#| msgid "Installed into etc/pam.d/I<package> in the package build directory."
+msgid "Installed into usr/lib/pam.d/I<package> in the package build directory."
msgstr ""
"Installé dans le répertoire de construction du paquet, sous etc/pam.d/"
"I<paquet>."
+#. type: textblock
+#: dh_installpam:32
+#, fuzzy
+#| msgid ""
+#| "In compatibility level 11, this file will trigger an error with a "
+#| "reminder about ensuring the proper removal of the upstart file in the "
+#| "previous package version. Please consider using the \"rm_conffile\" "
+#| "feature from L<dh_installdeb(1)> to ensure the proper removal of previous "
+#| "upstart files."
+msgid ""
+"Until compatibility level 14 this file was installed under etc/pam.d/"
+"I<package>. Please consider using the \"rm_conffile\" feature from "
+"L<dh_installdeb(1)> to ensure the proper removal of previous PAM files."
+msgstr ""
+"Dans le niveau de compatibilité 11, ce fichier provoquera une erreur "
+"contenant un rappel pour correctement supprimer le fichier upstart de la "
+"version précédente du paquet. Veuillez utiliser la fonction « rm_conffile » "
+"de L<dh_installdeb(1)> pour vous assurer de la suppression correcte des "
+"fichiers upstart."
+
# type: textblock
#. type: textblock
-#: dh_installpam:37
+#: dh_installpam:44
+#, fuzzy
+#| msgid ""
+#| "Look for files named debian/I<package>.I<name>.pam and install them as "
+#| "etc/pam.d/I<name>, instead of using the usual files and installing them "
+#| "using the package name."
msgid ""
-"Look for files named debian/I<package>.I<name>.pam and install them as etc/"
-"pam.d/I<name>, instead of using the usual files and installing them using "
-"the package name."
+"Look for files named debian/I<package>.I<name>.pam and install them as usr/"
+"lib/pam.d/I<name>, instead of using the usual files and installing them "
+"using the package name."
msgstr ""
"Recherche les fichiers nommés debian/I<paquet>.I<nom>.pam et les installe "
"sous etc/pam.d/I<nom> au lieu d'utiliser les fichiers habituels et de les "
@@ -6551,13 +11344,13 @@ msgstr "dh_installppp - Installer les fichiers ppp.ip-up et ppp.ip-down"
# type: textblock
#. type: textblock
-#: dh_installppp:14
+#: dh_installppp:17
msgid "B<dh_installppp> [S<I<debhelper options>>] [B<--name=>I<name>]"
-msgstr "B<dh_installppp> [I<options de debhelper>] [B<--name=>I<nom>]"
+msgstr "B<dh_installppp> [I<options_de_debhelper>] [B<--name=>I<nom>]"
# type: textblock
#. type: textblock
-#: dh_installppp:18
+#: dh_installppp:21
msgid ""
"B<dh_installppp> is a debhelper program that is responsible for installing "
"ppp ip-up and ip-down scripts into package build directories."
@@ -6568,13 +11361,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installppp:25
+#: dh_installppp:28
msgid "debian/I<package>.ppp.ip-up"
msgstr "debian/I<paquet>.ppp.ip-up"
# type: textblock
#. type: textblock
-#: dh_installppp:27
+#: dh_installppp:30
msgid ""
"Installed into etc/ppp/ip-up.d/I<package> in the package build directory."
msgstr ""
@@ -6583,13 +11376,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installppp:29
+#: dh_installppp:32
msgid "debian/I<package>.ppp.ip-down"
msgstr "debian/I<paquet>.ppp.ip-down"
# type: textblock
#. type: textblock
-#: dh_installppp:31
+#: dh_installppp:34
msgid ""
"Installed into etc/ppp/ip-down.d/I<package> in the package build directory."
msgstr ""
@@ -6598,7 +11391,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installppp:41
+#: dh_installppp:44
msgid ""
"Look for files named F<debian/package.name.ppp.ip-*> and install them as "
"F<etc/ppp/ip-*/name>, instead of using the usual files and installing them "
@@ -6616,17 +11409,17 @@ msgstr "dh_installudev - Installer les fichiers de règles udev"
# type: textblock
#. type: textblock
-#: dh_installudev:15
+#: dh_installudev:17
msgid ""
"B<dh_installudev> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>] [B<--"
"priority=>I<priority>]"
msgstr ""
-"B<dh_installudev> [I<options de debhelper>] [B<-n>] [B<--name=>I<nom>] [B<--"
+"B<dh_installudev> [I<options_de_debhelper>] [B<-n>] [B<--name=>I<nom>] [B<--"
"priority=>I<priorité>]"
# type: textblock
#. type: textblock
-#: dh_installudev:19
+#: dh_installudev:21
msgid ""
"B<dh_installudev> is a debhelper program that is responsible for installing "
"B<udev> rules files."
@@ -6634,26 +11427,15 @@ msgstr ""
"B<dh_installudev> est le programme de la suite debhelper chargé de "
"l'installation des fichiers de règles B<udev>."
-# type: textblock
-#. type: textblock
-#: dh_installudev:22
-msgid ""
-"Code is added to the F<preinst> and F<postinst> to handle the upgrade from "
-"the old B<udev> rules file location."
-msgstr ""
-"Des lignes de code sont ajoutées au fichiers de maintenance F<preinst> et "
-"F<postinst> pour prendre en charge la mise à jour depuis l'ancien "
-"emplacement des fichiers de règles B<udev>."
-
# type: =item
#. type: =item
-#: dh_installudev:29
+#: dh_installudev:28
msgid "debian/I<package>.udev"
msgstr "debian/I<paquet>.udev"
# type: textblock
#. type: textblock
-#: dh_installudev:31
+#: dh_installudev:30
msgid "Installed into F<lib/udev/rules.d/> in the package build directory."
msgstr ""
"Installé dans le répertoire de construction du paquet, sous F<lib/udev/rules."
@@ -6661,7 +11443,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installudev:41
+#: dh_installudev:40
msgid ""
"When this parameter is used, B<dh_installudev> looks for and installs files "
"named debian/I<package>.I<name>.udev instead of the usual debian/I<package>."
@@ -6673,106 +11455,107 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_installudev:45
+#: dh_installudev:44
msgid "B<--priority=>I<priority>"
msgstr "B<--priority=>I<priorité>"
# type: textblock
#. type: textblock
-#: dh_installudev:47
-#, fuzzy
-#| msgid "Sets the priority number of a F<site-start.d> file. Default is 50."
+#: dh_installudev:46
msgid "Sets the priority the file. Default is 60."
-msgstr ""
-"Fixe le numéro de priorité du fichier F<site-start.d>. La valeur par défaut "
-"est 50."
-
-# type: textblock
-#. type: textblock
-#: dh_installudev:51
-msgid "Do not modify F<preinst>/F<postinst> scripts."
-msgstr ""
-"Empêche la modification des scripts de maintenance du paquet F<preinst> et "
-"F<postinst>."
+msgstr "Fixe le numéro de priorité du fichier. La valeur par défaut est B<60>."
# type: textblock
#. type: textblock
#: dh_installwm:5
msgid "dh_installwm - register a window manager"
-msgstr "dh_installwm - Inscrire un gestionnaire de fenêtre (window manager)"
+msgstr "dh_installwm - Inscrire un gestionnaire de fenêtres (window manager)"
# type: textblock
#. type: textblock
-#: dh_installwm:14
+#: dh_installwm:17
msgid ""
"B<dh_installwm> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
"[S<I<wm> ...>]"
msgstr ""
-"B<dh_installwm> [S<I<options de debhelper>>] [B<-n>] [B<--priority=>I<n>] "
-"[S<I<gestionnaire-de-fenêtre> ...>]"
+"B<dh_installwm> [S<I<options_de_debhelper>>] [B<-n>] [B<--priority=>I<n>] "
+"[S<I<gestionnaire_de_fenêtres> ...>]"
# type: textblock
#. type: textblock
-#: dh_installwm:18
+#: dh_installwm:21
msgid ""
"B<dh_installwm> is a debhelper program that is responsible for generating "
"the F<postinst> and F<prerm> commands that register a window manager with "
"L<update-alternatives(8)>. The window manager's man page is also registered "
-"as a slave symlink (in v6 mode and up), if it is found in F<usr/share/man/"
-"man1/> in the package build directory."
+"as a slave symlink (in v6 mode and up). It must be installed in F<usr/share/"
+"man/man1/> in the package build directory prior to calling B<dh_installwm>. "
+"In compat 9 and earlier, the manpage was optional."
msgstr ""
"B<dh_installwm> est le programme de la suite debhelper chargé de produire "
"les lignes de code pour les fichiers de maintenance F<postinst> et F<prerm> "
-"permettant d'inscrire un gestionnaire de fenêtre avec L<update-"
+"permettant d'inscrire un gestionnaire de fenêtres avec L<update-"
"alternatives(8)>. La page de manuel du gestionnaire de fenêtres (window "
"manager) est également inscrite en tant que lien symbolique esclave (à "
-"partir de la version 6) si elle est trouvée sous F<usr/share/man/man1/> dans "
-"le répertoire de construction du paquet."
+"partir de la version 6). Elle doit être installée sous F<usr/share/man/man1/"
+"> dans le répertoire de construction du paquet avant d'appeler "
+"B<dh_installwm>. Jusqu'à la version 9, la page de manuel était optionnelle."
# type: =item
#. type: =item
-#: dh_installwm:28
+#: dh_installwm:32
msgid "debian/I<package>.wm"
msgstr "debian/I<paquet>.wm"
# type: textblock
#. type: textblock
-#: dh_installwm:30
+#: dh_installwm:34
msgid "List window manager programs to register."
-msgstr "Énumère les gestionnaires de fenêtre à inscrire."
+msgstr "Énumère les gestionnaires de fenêtres à inscrire."
# type: textblock
#. type: textblock
-#: dh_installwm:40
+#: dh_installwm:47
msgid ""
"Set the priority of the window manager. Default is 20, which is too low for "
"most window managers; see the Debian Policy document for instructions on "
"calculating the correct value."
msgstr ""
-"Fixe la priorité du gestionnaire de fenêtre. La valeur par défaut est de 20, "
-"ce qui est trop peu pour la plupart des gestionnaires de fenêtre. Voir la "
-"Charte Debian sur la méthode de détermination de la valeur adéquate."
+"Fixe la priorité du gestionnaire de fenêtres. La valeur par défaut est de "
+"B<20>, ce qui est trop peu pour la plupart des gestionnaires de fenêtres. "
+"Voir la Charte Debian sur la méthode de détermination de la valeur adéquate."
# type: textblock
#. type: textblock
-#: dh_installwm:46
+#: dh_installwm:53
msgid ""
"Do not modify F<postinst>/F<prerm> scripts. Turns this command into a no-op."
msgstr ""
"Empêche la modification des scripts de maintenance F<postinst> et F<prerm>. "
"Utiliser ce paramètre revient à ne rien faire."
+# type: textblock
+#. type: textblock
+#: dh_installwm:57
+msgid ""
+"Modify scripts for window managers specified by command line parameters in "
+"ALL packages acted on, not just the first."
+msgstr ""
+"Modifie les scripts pour les gestionnaires de fenêtres indiqués en "
+"paramètres dans B<tous> les paquets et pas seulement dans le premier paquet "
+"construit."
+
# type: =item
#. type: =item
-#: dh_installwm:48
+#: dh_installwm:60
msgid "I<wm> ..."
-msgstr "I<gestionnaire-de-fenêtre> ..."
+msgstr "I<gestionnaire_de_fenêtres> ..."
# type: textblock
#. type: textblock
-#: dh_installwm:50
+#: dh_installwm:62
msgid "Window manager programs to register."
-msgstr "Gestionnaires de fenêtre à inscrire."
+msgstr "Gestionnaires de fenêtres à inscrire."
# type: textblock
#. type: textblock
@@ -6783,13 +11566,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installxfonts:14
+#: dh_installxfonts:17
msgid "B<dh_installxfonts> [S<I<debhelper options>>]"
-msgstr "B<dh_installxfonts> [I<options de debhelper>]"
+msgstr "B<dh_installxfonts> [I<options_de_debhelper>]"
# type: textblock
#. type: textblock
-#: dh_installxfonts:18
+#: dh_installxfonts:21
msgid ""
"B<dh_installxfonts> is a debhelper program that is responsible for "
"registering X fonts, so their corresponding F<fonts.dir>, F<fonts.alias>, "
@@ -6802,7 +11585,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installxfonts:22
+#: dh_installxfonts:25
msgid ""
"Before calling this program, you should have installed any X fonts provided "
"by your package into the appropriate location in the package build "
@@ -6818,19 +11601,19 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installxfonts:28
+#: dh_installxfonts:31
msgid ""
"Your package should depend on B<xfonts-utils> so that the B<update-fonts-"
">I<*> commands are available. (This program adds that dependency to B<${misc:"
"Depends}>.)"
msgstr ""
"Le paquet doit dépendre de B<xfonts-utils> afin que la commande B<update-"
-"fonts->I<*> soit disponible. B<dh_installxfonts> ajoute cette dépendance à B<"
-"${misc:Depends}>."
+"fonts->I<*> soit disponible. B<dh_installxfonts> ajoute cette dépendance à "
+"B<${misc:Depends}>."
# type: textblock
#. type: textblock
-#: dh_installxfonts:32
+#: dh_installxfonts:35
msgid ""
"This program automatically generates the F<postinst> and F<postrm> commands "
"needed to register X fonts. These commands are inserted into the maintainer "
@@ -6845,7 +11628,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installxfonts:39
+#: dh_installxfonts:42
msgid ""
"See L<update-fonts-alias(8)>, L<update-fonts-scale(8)>, and L<update-fonts-"
"dir(8)> for more information about X font installation."
@@ -6856,12 +11639,12 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_installxfonts:42
+#: dh_installxfonts:45
msgid ""
"See Debian policy, section 11.8.5. for details about doing fonts the Debian "
"way."
msgstr ""
-"Consulter la Charte Debian, section 11.8.5, pour les détails sur la gestion "
+"Consulter la Charte Debian, section 11.8.5, pour les détails sur la gestion "
"des polices de caractères sous Debian."
# type: textblock
@@ -6874,17 +11657,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_link:15
+#: dh_link:18
msgid ""
"B<dh_link> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<source "
"destination> ...>]"
msgstr ""
-"B<dh_link> [S<I<options de debhelper>>] [B<-A>] [B<-X>I<élément>] "
-"[S<I<source destination> ...>]"
+"B<dh_link> [S<I<options_de_debhelper>>] [B<-A>] [B<-X>I<élément>] "
+"[S<I<source destination> ...>]"
# type: textblock
#. type: textblock
-#: dh_link:19
+#: dh_link:22
msgid ""
"B<dh_link> is a debhelper program that creates symlinks in package build "
"directories."
@@ -6894,48 +11677,50 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_link:22
+#: dh_link:25
msgid ""
"B<dh_link> accepts a list of pairs of source and destination files. The "
-"source files are the already existing files that will be symlinked from. The "
-"destination files are the symlinks that will be created. There B<must> be an "
-"equal number of source and destination files specified."
+"source files are the already existing files that will be symlinked from "
+"(called B<target> by L<ln(1)>). The destination files are the symlinks that "
+"will be created (called B<link name> by L<ln(1)>). There B<must> be an equal "
+"number of source and destination files specified."
msgstr ""
"B<dh_link> utilise des listes de couples « source destination ». Les sources "
"sont les fichiers existants sur lesquels doivent pointer les liens "
-"symboliques, les destinations sont les noms des liens symboliques qui "
-"doivent être créés. Il B<doit> y avoir un nombre identique de sources et de "
+"symboliques (appelé B<cible> par L<ln(1)>), les destinations sont les noms "
+"des liens symboliques qui doivent être créés (appelés B<nom_du_lien> par "
+"L<ln(1)>). Il B<doit> y avoir un nombre identique de sources et de "
"destinations."
# type: textblock
#. type: textblock
-#: dh_link:27
+#: dh_link:32
msgid ""
-"Be sure you B<do> specify the full filename to both the source and "
+"Be sure you B<do> specify the absolute path to both the source and "
"destination files (unlike you would do if you were using something like "
-"L<ln(1)>)."
+"L<ln(1)>). Please note that the leading slash is optional."
msgstr ""
-"Il faut B<absolument> indiquer le nom complet des sources et des "
+"Il faut B<absolument> indiquer le chemin complet (absolu) des sources et des "
"destinations, contrairement à l'usage habituel des commandes telles que "
-"L<ln(1)>."
+"L<ln(1)>. Veuillez noter que le premier « / » n'est pas obligatoire."
# type: textblock
#. type: textblock
-#: dh_link:31
+#: dh_link:36
msgid ""
"B<dh_link> will generate symlinks that comply with Debian policy - absolute "
"when policy says they should be absolute, and relative links with as short a "
-"path as possible. It will also create any subdirectories it needs to to put "
-"the symlinks in."
+"path as possible. It will also create any subdirectories it needs to put the "
+"symlinks in."
msgstr ""
-"B<dh_link> produit des liens symboliques conformes à la Charte Debian : "
+"B<dh_link> produit des liens symboliques conformes à la Charte Debian : "
"absolus lorsque la Charte indique qu'ils doivent l'être et relatifs, avec un "
"chemin aussi court que possible, dans les autres cas. B<dh_link> crée "
"également tous les sous-répertoires nécessaires à l'installation des liens "
"symboliques."
#. type: textblock
-#: dh_link:36
+#: dh_link:41
msgid "Any pre-existing destination files will be replaced with symlinks."
msgstr ""
"Les fichiers de destination déjà existants seront remplacés par les liens "
@@ -6943,24 +11728,24 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_link:38
+#: dh_link:43
msgid ""
"B<dh_link> also scans the package build tree for existing symlinks which do "
"not conform to Debian policy, and corrects them (v4 or later)."
msgstr ""
"De plus, B<dh_link> scrute le répertoire de construction du paquet pour "
"trouver (et corriger à partir de la v4 seulement) les liens symboliques non "
-"conformes à la Charte Debian."
+"conformes à la Charte Debian."
# type: =item
#. type: =item
-#: dh_link:45
+#: dh_link:50
msgid "debian/I<package>.links"
msgstr "debian/I<paquet>.links"
# type: textblock
#. type: textblock
-#: dh_link:47
+#: dh_link:52
msgid ""
"Lists pairs of source and destination files to be symlinked. Each pair "
"should be put on its own line, with the source and destination separated by "
@@ -6970,36 +11755,58 @@ msgstr ""
"symboliques. Chaque paire doit être placée sur une ligne, la source et la "
"destination séparées par un blanc."
+#. type: textblock
+#: dh_link:56
+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 given in the same "
+"order as they would be given to L<ln(1)>."
+msgstr ""
+"Dans chaque paire, le fichier source (appelé B<cible> par B<ln(1)>) vient en "
+"premier et est suivi par le fichier de destination (appelé B<nom_du_lien> "
+"par B<ln(1)>). Donc les paires de source et destination sur chaque ligne "
+"sont indiquées dans le même ordre que pour B<ln(1)>."
+
+#. type: textblock
+#: dh_link:61
+msgid ""
+"In contrast to L<ln(1)>, source and destination paths must be absolute (the "
+"leading slash is optional)."
+msgstr ""
+"Au contraire de L<ln(1)>, la source et la destination doivent être des "
+"chemins absolus (le premier « / » est optionnel)."
+
# type: textblock
#. type: textblock
-#: dh_link:59
+#: dh_link:75
msgid ""
"Create any links specified by command line parameters in ALL packages acted "
"on, not just the first."
msgstr ""
-"Crée les liens symboliques indiqués en paramètres dans TOUS les paquets et "
-"pas seulement dans le premier paquet construit."
+"Crée les liens symboliques indiqués en paramètres dans B<tous> les paquets "
+"et pas seulement dans le premier paquet construit."
# type: textblock
#. type: textblock
-#: dh_link:64
+#: dh_link:80
msgid ""
"Exclude symlinks that contain I<item> anywhere in their filename from being "
"corrected to comply with Debian policy."
msgstr ""
"Exclut les liens symboliques qui comportent I<élément>, n'importe où dans "
-"leur nom, alors qu'ils auraient dû l'être pour se conformer à la charte "
-"Debian."
+"leur nom, alors qu'ils auraient dû être corrigés pour se conformer à la "
+"Charte Debian."
# type: =item
#. type: =item
-#: dh_link:67
+#: dh_link:83
msgid "I<source destination> ..."
msgstr "I<source destination> ..."
# type: textblock
#. type: textblock
-#: dh_link:69
+#: dh_link:85
msgid ""
"Create a file named I<destination> as a link to a file named I<source>. Do "
"this in the package build directory of the first package acted on. (Or in "
@@ -7011,7 +11818,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh_link:77
+#: dh_link:93
#, no-wrap
msgid ""
" dh_link usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
@@ -7022,13 +11829,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_link:79
+#: dh_link:95
msgid "Make F<bar.1> be a symlink to F<foo.1>"
msgstr "Produira un lien F<titi.1> pointant vers F<toto.1>"
# type: verbatim
#. type: verbatim
-#: dh_link:81
+#: dh_link:97
#, no-wrap
msgid ""
" dh_link var/lib/foo usr/lib/foo \\\n"
@@ -7036,12 +11843,12 @@ msgid ""
"\n"
msgstr ""
" dh_link var/lib/toto usr/lib/toto \\\n"
-" usr/X11R6/man/man1/toto.1 usr/share/man/man1/titi.1\n"
+" usr/share/man/man1/toto.1 usr/share/man/man1/titi.1\n"
"\n"
# type: textblock
#. type: textblock
-#: dh_link:84
+#: dh_link:100
msgid ""
"Make F</usr/lib/foo/> be a link to F</var/lib/foo/>, and F<bar.1> be a "
"symlink to the F<foo.1>"
@@ -7049,6 +11856,25 @@ msgstr ""
"Crée un lien F</usr/lib/toto> qui pointe vers le fichier F</var/lib/toto> et "
"un lien symbolique F<titi.1> qui pointe vers la page de man F<toto.1>."
+# type: verbatim
+#. type: verbatim
+#: dh_link:103
+#, no-wrap
+msgid ""
+" var/lib/foo usr/lib/foo\n"
+" usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+msgstr ""
+" var/lib/toto usr/lib/toto\n"
+" usr/share/man/man1/toto.1 usr/share/man/man1/titi.1\n"
+"\n"
+
+#. type: textblock
+#: dh_link:106
+msgid "Same as above but as content for a debian/I<package>.links file."
+msgstr ""
+"Comme précédemment, mais comme contenu d'un fichier debian/I<paquet>.links."
+
# type: textblock
#. type: textblock
#: dh_lintian:5
@@ -7060,13 +11886,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_lintian:14
+#: dh_lintian:17
msgid "B<dh_lintian> [S<I<debhelper options>>]"
-msgstr "B<dh_lintian> [I<options de debhelper>]"
+msgstr "B<dh_lintian> [I<options_de_debhelper>]"
# type: textblock
#. type: textblock
-#: dh_lintian:18
+#: dh_lintian:21
msgid ""
"B<dh_lintian> is a debhelper program that is responsible for installing "
"override files used by lintian into package build directories."
@@ -7077,13 +11903,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_lintian:25
+#: dh_lintian:28
msgid "debian/I<package>.lintian-overrides"
msgstr "debian/I<paquet>.lintian-overrides"
# type: textblock
#. type: textblock
-#: dh_lintian:27
+#: dh_lintian:30
msgid ""
"Installed into usr/share/lintian/overrides/I<package> in the package build "
"directory. This file is used to suppress erroneous lintian diagnostics."
@@ -7094,13 +11920,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_lintian:31
+#: dh_lintian:34
msgid "F<debian/source/lintian-overrides>"
msgstr "F<debian/source/lintian-overrides>"
# type: textblock
#. type: textblock
-#: dh_lintian:33
+#: dh_lintian:36
msgid ""
"These files are not installed, but will be scanned by lintian to provide "
"overrides for the source package."
@@ -7111,13 +11937,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_lintian:65
+#: dh_lintian:66
msgid "L<lintian(1)>"
msgstr "L<lintian(1)>"
# type: textblock
#. type: textblock
-#: dh_lintian:69
+#: dh_lintian:70
msgid "Steve Robbins <smr@debian.org>"
msgstr "Steve Robbins <smr@debian.org>"
@@ -7130,13 +11956,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_listpackages:14
+#: dh_listpackages:17
msgid "B<dh_listpackages> [S<I<debhelper options>>]"
-msgstr "B<dh_listpackages> [I<options de debhelper>]"
+msgstr "B<dh_listpackages> [I<options_de_debhelper>]"
# type: textblock
#. type: textblock
-#: dh_listpackages:18
+#: dh_listpackages:21
msgid ""
"B<dh_listpackages> is a debhelper program that outputs a list of all binary "
"packages debhelper commands will act on. If you pass it some options, it "
@@ -7151,6 +11977,14 @@ msgstr ""
# type: textblock
#. type: textblock
+#: dh_listpackages:26
+msgid "Packages are listed in the order they appear in F<debian/control>."
+msgstr ""
+"Les paquets sont indiqués dans le même ordre que dans le fichier F<debian/"
+"control>."
+
+# type: textblock
+#. type: textblock
#: dh_makeshlibs:5
msgid ""
"dh_makeshlibs - automatically create shlibs file and call dpkg-gensymbols"
@@ -7160,17 +11994,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_makeshlibs:14
+#: dh_makeshlibs:17
msgid ""
"B<dh_makeshlibs> [S<I<debhelper options>>] [B<-m>I<major>] [B<-"
"V>I<[dependencies]>] [B<-n>] [B<-X>I<item>] [S<B<--> I<params>>]"
msgstr ""
-"B<dh_makeshlibs> [I<options de debhelper>] [B<-m>I<numéro-majeur>] [B<-"
-"V>I<[dépendances]>] [B<-n>] [B<-X>I<élément>] [B<--> I<paramètres>]"
+"B<dh_makeshlibs> [I<options_de_debhelper>] [B<-m>I<numéro-majeur>] [B<-"
+"V>I<[dépendances]>] [B<-n>] [B<-X>I<élément>] [B<--> I<paramètres>]"
# type: textblock
#. type: textblock
-#: dh_makeshlibs:18
+#: dh_makeshlibs:21
msgid ""
"B<dh_makeshlibs> is a debhelper program that automatically scans for shared "
"libraries, and generates a shlibs file for the libraries it finds."
@@ -7179,46 +12013,99 @@ msgstr ""
"recherche des bibliothèques partagées et produit un fichier « shlibs » pour "
"celles qu'il trouve."
-# type: textblock
#. type: textblock
-#: dh_makeshlibs:21
+#: dh_makeshlibs:24
msgid ""
-"It also adds a call to ldconfig in the F<postinst> and F<postrm> scripts (in "
-"v3 mode and above only) to any packages in which it finds shared libraries."
+"It will also ensure that ldconfig is invoked during install and removal when "
+"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."
msgstr ""
-"Ce programme ajoute également un appel à ldconfig dans les scripts de "
-"maintenance F<postinst> et F<postrm> (en mode v3 et suivants seulement) pour "
-"tous les paquets où des bibliothèques partagées ont été trouvées."
+"Il s'assure aussi que ldconfig est invoqué durant l'installation et la "
+"suppression lorsqu'il trouve des bibliothèques partagées. Depuis "
+"debhelper 9.20151004, cela est effectué par un trigger de dpkg. Dans les "
+"anciennes versions de debhelper, B<dh_makeshlibs> générait un script de "
+"maintenance pour cela."
#. type: textblock
-#: dh_makeshlibs:24
+#: 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 ""
+"Depuis debhelper 12.3, B<dh_makeshlibs> ajoutera par défaut une ligne "
+"I<udeb> supplémentaire pour les udebs dans le fichier shlibs, quand l'udeb a "
+"le même nom que le fichier deb suivi par le suffixe « -udeb » (par exemple, "
+"si le fichier deb s'appelle « libtoto1 », alors debhelper détectera "
+"automatiquement l'udeb s'il s'appelle « libtoto1-udeb »). Veuillez utiliser "
+"les options B<--add-udeb> et B<--no-add-udeb> ci-dessous quand la détection "
+"automatique est insuffisante."
+
+#. type: textblock
+#: dh_makeshlibs:36
+msgid ""
+"If you previously used B<--add-udeb> and are considering to migrate to using "
+"the 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 ""
+"Si auparavant vous utilisiez B<--add-udeb> et envisagez de migrer vers "
+"l'utilisation de la nouvelle fonctionnalité de détection automatique "
+"de 12.3, n'oubliez pas de vérifier que les fichiers F<DEBIAN/shlibs> "
+"résultants sont conformes aux prévisions. Il y a quelques cas particuliers "
+"connus où la détection automatique est insuffisante. Cela comprend les cas "
+"où l'udeb renferme des fichiers de bibliothèque issus de plusieurs paquets "
+"deb normaux ou quand les paquets ne suivent pas les conventions de nommage "
+"escomptées."
+
+# type: =item
+#. type: =item
+#: dh_makeshlibs:48
+msgid "debian/I<package>.shlibs"
+msgstr "debian/I<paquet>.shlibs"
+
+#. type: textblock
+#: 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 "
+"any libraries."
+msgstr ""
+"Si présent, installe ce fichier dans le paquet en tant que DEBIAN/shlibs. "
+"S'il est omis, debhelper génèrera automatiquement un fichier shlibs s'il "
+"détecte une bibliothèque."
+
+#. type: textblock
+#: dh_makeshlibs:54
msgid ""
-"Packages that support multiarch are detected, and a Pre-Dependency on "
-"multiarch-support is set in ${misc:Pre-Depends} ; you should make sure to "
-"put that token into an appropriate place in your debian/control file for "
-"packages supporting multiarch."
+"Note in compat levels 9 and earlier, this file was installed by "
+"L<dh_installdeb(1)> rather than B<dh_makeshlibs>."
msgstr ""
-"Les paquets prenant en charge le multiarchitecture sont détectés et une "
-"prédépendance sur B<multiarch-support> est placée dans B<${misc:Pre-Depends}"
-"> ; il faut s'assurer que cet item a été placé au bon endroit dans le "
-"fichier F<debian/control> pour les paquet prenant en charge le "
-"multiarchitecture."
+"Veuillez noter que, dans les niveaux de compatibilité 9 et précédents, ce "
+"fichier était installé par L<dh_installdeb(1)> plutôt que par "
+"B<dh_makeshlibs>."
# type: =item
#. type: =item
-#: dh_makeshlibs:33
+#: dh_makeshlibs:57
msgid "debian/I<package>.symbols"
msgstr "debian/I<paquet>.symbols"
# type: =item
#. type: =item
-#: dh_makeshlibs:35
+#: dh_makeshlibs:59
msgid "debian/I<package>.symbols.I<arch>"
msgstr "debian/I<paquet>.symbols.I<arch>"
# type: textblock
#. type: textblock
-#: dh_makeshlibs:37
+#: 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 "
@@ -7231,87 +12118,216 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:47
+#: dh_makeshlibs:71
msgid "B<-m>I<major>, B<--major=>I<major>"
msgstr "B<-m>I<numéro-majeur>, B<--major=>I<numéro-majeur>"
# type: textblock
#. type: textblock
-#: dh_makeshlibs:49
+#: 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 "
"than it used to be, back in the bad old days when this program looked at "
"library filenames rather than using objdump."
msgstr ""
-"Utilise le numéro majeur indiqué après le paramètre -m afin de préciser le "
-"numéro majeur de version de la bibliothèque, au lieu d'essayer de le "
+"Utilise le numéro majeur indiqué après le paramètre B<-m> afin de préciser "
+"le numéro majeur de version de la bibliothèque, au lieu d'essayer de le "
"déterminer avec objdump. Ce paramètre est devenu beaucoup moins utile "
"qu'autrefois où ce programme se basait sur les noms des fichiers de "
"bibliothèque et non sur l'utilisation d'objdump."
# type: =item
#. type: =item
-#: dh_makeshlibs:54
+#: dh_makeshlibs:78
msgid "B<-V>, B<-V>I<dependencies>"
msgstr "B<-V>, B<-V>I<dépendances>"
# type: =item
#. type: =item
-#: dh_makeshlibs:56
+#: dh_makeshlibs:80
msgid "B<--version-info>, B<--version-info=>I<dependencies>"
msgstr "B<--version-info>, B<--version-info=>I<dépendances>"
-# type: textblock
#. type: textblock
-#: dh_makeshlibs:58
+#: 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 ""
+"Si un fichier shlibs est créé par ce programme, cette option contrôle quelle "
+"version sera utilisée dans la relation de dépendance."
+
+#. type: textblock
+#: 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 ""
+"Depuis la version 12, B<dh_makeshlibs> utilise B<-VUpstream-Version> par "
+"défaut. Jusqu'à la version 11, le comportement par défaut imitait B<-VNone>."
+
+#. type: textblock
+#: dh_makeshlibs:88
+msgid "The B<dh_makeshlibs> tool can generate dependencies in three variants:"
+msgstr "B<dh_makeshlibs> peut générer des dépendances de trois façons."
+
+#. type: =item
+#: dh_makeshlibs:92
+msgid "B<-VUpstream-Version>"
+msgstr "B<-VUpstream-Version>"
+
+#. type: textblock
+#: dh_makeshlibs:94
msgid ""
-"By default, the shlibs file generated by this program does not make packages "
-"depend on any particular version of the package containing the shared "
-"library. It may be necessary for you to add some version dependency "
-"information to the shlibs file. If B<-V> is specified with no dependency "
-"information, the current upstream version of the package is plugged into a "
-"dependency that looks like \"I<packagename> B<(E<gt>>= I<packageversion>B<)>"
-"\". Note that in debhelper compatibility levels before v4, the Debian part "
-"of the package version number is also included. If B<-V> is specified with "
-"parameters, the parameters can be used to specify the exact dependency "
-"information needed (be sure to include the package name)."
+"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 "
+"as shown here."
msgstr ""
-"Par défaut, le fichier shlibs produit par ce programme ne rend pas les "
-"paquets dépendants d'une version particulière du paquet contenant la "
-"bibliothèque partagée. Il peut être utile d'ajouter une indication de "
-"dépendance de version au fichier shlibs. Si B<-V> est indiqué sans préciser "
-"de valeur, elle sera fixée comme étant égale à la version du paquet amont "
-"actuel, de la manière suivante : « I<nom_du_paquet> B<(E<gt>>= "
-"I<version_du_paquet>B<)> ». Nota : Dans les niveaux de compatibilité "
-"inférieur à v4, la partie Debian du numéro de version du paquet est incluse "
-"également. Si B<-V> est employé avec un paramètre, celui-ci peut être "
-"utilisé pour indiquer la dépendance requise exacte (inclure absolument le "
-"nom de paquet)."
+"La dépendance sera de la forme « I<paquet> B<(E<gt>>= I<version>B<)> ». "
+"I<Upstream-Version> est sensible à la casse est doit être écrit exactement "
+"comme cela."
# type: textblock
#. type: textblock
-#: dh_makeshlibs:69
+#: 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 "
+"the library is prone to changing ABI without updating the upstream version "
+"number)."
+msgstr ""
+"C'est une disposition conservatoire qui garantit que les dépendances des "
+"autres paquets envers la bibliothèque partagée sont aussi strictes qu'elles "
+"le doivent (à moins que la bibliothèque soit sujette à des changements d'ABI "
+"sans mise à jour des numéros de version amont)."
+
+#. type: textblock
+#: 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 "
+"often of minor temporary inconvenience and usually a lot better than the "
+"fall out caused by forgetting to bump the dependency information."
+msgstr ""
+"Le revers de cela est que les paquets pourraient avoir des dépendances qui "
+"sont trop restreintes (mais un fichier de symboles peut atténuer le "
+"problème). Ce n'est souvent qu'un inconvénient mineur et temporaire, "
+"préférable à un échec dû à l'oubli de la mise à jour d'une information de "
+"dépendance."
+
+#. type: textblock
+#: 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 "
+"works)"
+msgstr ""
+"Ce format explicite a été ajouté à debhelper/11.3. Dans les versions "
+"précédentes, une option B<-V> sans aucune information de dépendance était "
+"utilisée (ce qui fonctionne toujours)."
+
+# type: =item
+#. type: =item
+#: dh_makeshlibs:113
+msgid "B<-VNone>"
+msgstr "B<-VNone>"
+
+#. type: textblock
+#: 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 ""
+"La dépendance sera de la forme « I<paquet> ». I<None> est sensible à la "
+"casse est doit être écrit exactement comme cela."
+
+#. type: textblock
+#: 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 "
+"interfaces over time and packagers are recommended to use B<-VUpstream-"
+"Version> (or one of the other forms of B<-V>I<dependencies>)."
+msgstr ""
+"Ce format n'est pas sécurisé, sauf si l'amont ne modifie pas son ABI "
+"d'aucune façon. Cependant, la plupart des équipes amont améliorent leurs "
+"interfaces au cours du temps, et il est recommandé d'utiliser B<-VUpstream-"
+"Version> (ou l'une des autres formes de B<-V>I<dépendances>)."
+
+#. type: textblock
+#: 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 "
+"packages. Note that symbols are not supported for udeb packages, which "
+"solely relies on shlibs for dependency handling."
+msgstr ""
+"Par ailleurs, cela pourrait être suffisant si (et seulement si) le paquet "
+"utilise le versionnement des symboles (voir L<dpkg-gensymbols(1)>) et ne "
+"produit I<aucun> paquet udeb. Les symboles ne sont pas pris en charge pour "
+"les paquets udeb, qui ne s'appuient que sur shlibs pour la gestion des "
+"dépendances."
+
+# type: =item
+#. type: =item
+#: dh_makeshlibs:128
+msgid "B<-V>I<package-relation>"
+msgstr "B<-V>I<relation-paquet>"
+
+#. type: textblock
+#: 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-"
+"package-name> B<(E<gt>>= I<some-package-version>B<)>\". Remember to include "
+"the package name."
+msgstr ""
+"Dans ce cas, la valeur donnée à B<-V> sera utilisée comme une relation de "
+"dépendance. I<relation-paquet> devrait être de la forme « I<paquet> "
+"B<(E<gt>>= I<version>B<)> ». N'oubliez pas d'inclure le nom de paquet."
+
+#. type: textblock
+#: 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 "
+"dependency on a different package than the one containing the library."
+msgstr ""
+"Veuillez noter que debhelper utilisera la valeur I<telle quelle> sans "
+"vérification de propreté ni de modification. Dans de I<rares> cas, cela est "
+"nécessaire pour générer une dépendance sur un paquet différent que celui qui "
+"contient la bibliothèque."
+
+#. type: textblock
+#: dh_makeshlibs:142
+msgid ""
+"When choosing a value for this option, please keep mind that if the package "
+"provides a symbols file, then that this is generally preferred over the "
+"shlibs file for regular .deb packages. See L<dpkg-shlibdeps(1)> for more "
+"information on this topic."
+msgstr ""
+"Au moment de choisir une valeur pour cette option, gardez à l'esprit que si "
+"le paquet fournit un fichier de symboles, ce dernier est souvent préféré au "
+"fichier shlibs pour les paquets .deb habituels. Consultez L<dpkg-"
+"shlibdeps(1)> pour plus d'informations sur ce sujet."
+
+#. type: textblock
+#: dh_makeshlibs:149
msgid ""
-"Beware of using B<-V> without any parameters; 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 your library is prone to changing "
-"ABI without updating the upstream version number), so that if the maintainer "
-"screws up then they won't break. The flip side is that packages might end up "
-"with dependencies that are too tight and so find it harder to be upgraded."
+"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 "
+"B<dh_makeshlibs> would previously generate maintainer scripts that called "
+"B<ldconfig>."
msgstr ""
-"L'usage de B<-V> sans paramètre est risqué. C'est une disposition "
-"conservatoire qui garantit que les dépendances des autres paquets envers la "
-"bibliothèque partagée sont aussi strictes qu'elles le doivent (à moins que "
-"la bibliothèque soit sujette à des changement d'ABI sans mise à jour des "
-"numéros de version amont). De cette manière, si le responsable du paquet "
-"cafouille, les autres paquets ne seront pas cassés. Le risque est que les "
-"paquets pourraient finir par avoir des dépendances tellement strictes qu'il "
-"serait difficile de les mettre à jour."
+"N'ajoutez pas l'action différée (« trigger ») même s'il semble que le paquet "
+"en a besoin. L'option est nommée B<--no-scripts> pour des raisons "
+"historiques car B<dh_makeshlibs> générait précédemment un script de "
+"maintenance qui appelait B<ldconfig>."
# type: textblock
#. type: textblock
-#: dh_makeshlibs:83
+#: dh_makeshlibs:156
msgid ""
"Exclude files that contain I<item> anywhere in their filename or directory "
"from being treated as shared libraries."
@@ -7321,13 +12337,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_makeshlibs:86
+#: dh_makeshlibs:159
msgid "B<--add-udeb=>I<udeb>"
msgstr "B<--add-udeb=>I<udeb>"
# type: textblock
#. type: textblock
-#: dh_makeshlibs:88
+#: 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 "
@@ -7337,21 +12353,63 @@ msgstr ""
"rend les udebs dépendants du paquet indiqué par I<udeb> plutôt que les "
"rendre dépendants du paquet normal de la bibliothèque."
+#. type: textblock
+#: dh_makeshlibs:164
+msgid ""
+"This 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 ""
+"Cette option est seulement utile pour les cas spéciaux où debhelper ne peut "
+"pas détecter automatiquement le nom du paquet udeb, où le paquet udeb "
+"contient des bibliothèques issues de plusieurs paquets deb, ou encore quand "
+"le paquet udeb contient des bibliothèques B<absentes> du paquet deb."
+
+# type: =item
+#. type: =item
+#: dh_makeshlibs:169
+msgid "B<--no-add-udeb>"
+msgstr "B<--no-add-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 ""
+"Pas d'ajout de ligne udeb dans le fichier shlibs. Cela peut être utilisé "
+"pour désactiver la détection automatique des paquets udeb."
+
+#. 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 ""
+"Cela peut être utile au cas où vous ne voulez pas du tout de fichier shlibs "
+"pour le paquet udeb parce qu'aucun paquet n'en dépendra. Ce peut être, par "
+"exemple, parce que l'ajout d'un paquet udeb pour la bibliothèque était "
+"« exagéré » et que la bibliothèque est incorporée dans un paquet udeb "
+"différent."
+
# type: textblock
#. type: textblock
-#: dh_makeshlibs:93
+#: dh_makeshlibs:181
msgid "Pass I<params> to L<dpkg-gensymbols(1)>."
msgstr "Fournit I<paramètres> à L<dpkg-gensymbols(1)>."
# type: =item
#. type: =item
-#: dh_makeshlibs:101
-msgid "B<dh_makeshlibs>"
-msgstr "B<dh_makeshlibs>"
+#: dh_makeshlibs:189
+msgid "B<dh_makeshlibs -VNone>"
+msgstr "B<dh_makeshlibs -VNone>"
# type: verbatim
#. type: verbatim
-#: dh_makeshlibs:103
+#: dh_makeshlibs:191
#, no-wrap
msgid ""
"Assuming this is a package named F<libfoobar1>, generates a shlibs file that\n"
@@ -7359,20 +12417,20 @@ msgid ""
" libfoobar 1 libfoobar1\n"
"\n"
msgstr ""
-"En admettant que le paquet s'appelle F<libtoto1>, cette commande produit un fichier\n"
-"shlibs tel que :\n"
-"libtoto 1 libtoto1\n"
+"En admettant que le paquet s'appelle F<libtoto1>, cette commande produit\n"
+"un fichier shlibs tel que :\n"
+"libtoto 1 libtoto1\n"
"\n"
# type: =item
#. type: =item
-#: dh_makeshlibs:107
-msgid "B<dh_makeshlibs -V>"
-msgstr "B<dh_makeshlibs -V>"
+#: dh_makeshlibs:195
+msgid "B<dh_makeshlibs -VUpstream-Version>"
+msgstr "B<dh_makeshlibs -VUpstream-Version>"
# type: verbatim
#. type: verbatim
-#: dh_makeshlibs:109
+#: dh_makeshlibs:197
#, no-wrap
msgid ""
"Assuming the current version of the package is 1.1-3, generates a shlibs\n"
@@ -7380,19 +12438,20 @@ msgid ""
" libfoobar 1 libfoobar1 (>= 1.1)\n"
"\n"
msgstr ""
-"En admettant que la version actuelle du paquet soit 1.1-3, cette commande produit un fichier shlibs tel que :\n"
+"En admettant que la version actuelle du paquet soit 1.1-3, cette commande\n"
+"produit un fichier shlibs tel que :\n"
" libtoto 1 libtoto1 (>= 1.1)\n"
"\n"
# type: =item
#. type: =item
-#: dh_makeshlibs:113
+#: dh_makeshlibs:201
msgid "B<dh_makeshlibs -V 'libfoobar1 (E<gt>= 1.0)'>"
msgstr "B<dh_makeshlibs -V `libtoto1 (E<gt>= 1.0)'>"
# type: verbatim
#. type: verbatim
-#: dh_makeshlibs:115
+#: dh_makeshlibs:203
#, no-wrap
msgid ""
"Generates a shlibs file that looks something like:\n"
@@ -7400,7 +12459,7 @@ msgid ""
"\n"
msgstr ""
"Produit un fichier shlibs tel que :\n"
-" libtoto 1 libtoto1 (>= 1.0)\n"
+" libtoto 1 libtoto1 (>= 1.0)\n"
"\n"
# type: textblock
@@ -7411,29 +12470,31 @@ msgstr "dh_md5sums - Créer le fichier DEBIAN/md5sums"
# type: textblock
#. type: textblock
-#: dh_md5sums:15
+#: dh_md5sums:18
msgid ""
"B<dh_md5sums> [S<I<debhelper options>>] [B<-x>] [B<-X>I<item>] [B<--include-"
"conffiles>]"
msgstr ""
-"B<dh_md5sums> [I<options de debhelper>] [B<-x>] [B<-X>I<élément>] [B<--"
+"B<dh_md5sums> [I<options_de_debhelper>] [B<-x>] [B<-X>I<élément>] [B<--"
"include-conffiles>]"
# type: textblock
#. type: textblock
-#: dh_md5sums:19
+#: dh_md5sums:22
msgid ""
"B<dh_md5sums> is a debhelper program that is responsible for generating a "
"F<DEBIAN/md5sums> file, which lists the md5sums of each file in the "
-"package. These files are used by the B<debsums> package."
+"package. These files are used by B<dpkg --verify> or the L<debsums(1)> "
+"program."
msgstr ""
"B<dh_md5sums> est le programme de la suite debhelper chargé de produire un "
"fichier F<DEBIAN/md5sums> indiquant la somme md5 de chacun des fichiers du "
-"paquet. Ces fichiers sont habituellement exploités par le paquet B<debsums>."
+"paquet. Ces fichiers sont habituellement exploités par B<dpkg --verify> ou "
+"le programme L<debsums(1)>."
# type: textblock
#. type: textblock
-#: dh_md5sums:23
+#: dh_md5sums:26
msgid ""
"All files in F<DEBIAN/> are omitted from the F<md5sums> file, as are all "
"conffiles (unless you use the B<--include-conffiles> switch)."
@@ -7444,23 +12505,27 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_md5sums:26
+#: dh_md5sums:29
msgid "The md5sums file is installed with proper permissions and ownerships."
msgstr ""
"Le fichier md5sums est installé avec les droits et permissions adéquats."
# type: =item
#. type: =item
-#: dh_md5sums:32
+#: dh_md5sums:35
msgid "B<-x>, B<--include-conffiles>"
msgstr "B<-x>, B<--include-conffiles>"
# type: textblock
#. type: textblock
-#: dh_md5sums:34
+#: dh_md5sums:37
+#, fuzzy
+#| msgid ""
+#| "Include conffiles in the md5sums list. Note that this information is "
+#| "redundant since it is included elsewhere in Debian packages."
msgid ""
"Include conffiles in the md5sums list. Note that this information is "
-"redundant since it is included elsewhere in Debian packages."
+"redundant since it is included in F</var/lib/dpkg/status> in Debian packages."
msgstr ""
"Inclut les fichiers de configuration (conffiles) dans la liste des sommes "
"md5. Nota : Cette information est superflue puisqu'elle est incluse par "
@@ -7468,7 +12533,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_md5sums:39
+#: dh_md5sums:42
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"listed in the md5sums file."
@@ -7485,21 +12550,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_movefiles:14
-#, fuzzy
-#| msgid ""
-#| "B<dh_movefiles> [S<I<debhelper options>>] [B<--sourcedir=>I<dir>] [B<-"
-#| "X>I<item>] S<I<file> ...>]"
+#: dh_movefiles:17
msgid ""
"B<dh_movefiles> [S<I<debhelper options>>] [B<--sourcedir=>I<dir>] [B<-"
"X>I<item>] [S<I<file> ...>]"
msgstr ""
-"B<dh_movefiles> [S<I<options de debhelper>>] [B<--sourcedir=>I<répertoire>] "
-"[B<-X>I<élément>] [S<I<fichier> ...>]"
+"B<dh_movefiles> [S<I<options_de_debhelper>>] [B<--sourcedir=>I<répertoire>] "
+"[B<-X>I<élément>] [S<I<fichier> ...>]"
# type: textblock
#. type: textblock
-#: dh_movefiles:18
+#: dh_movefiles:21
msgid ""
"B<dh_movefiles> is a debhelper program that is responsible for moving files "
"out of F<debian/tmp> or some other directory and into other package build "
@@ -7515,7 +12576,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_movefiles:23
+#: dh_movefiles:26
msgid ""
"Note: B<dh_install> is a much better program, and you are recommended to use "
"it instead of B<dh_movefiles>."
@@ -7525,13 +12586,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_movefiles:30
+#: dh_movefiles:33
msgid "debian/I<package>.files"
msgstr "debian/I<paquet>.files"
# type: textblock
#. type: textblock
-#: dh_movefiles:32
+#: dh_movefiles:35
msgid ""
"Lists the files to be moved into a package, separated by whitespace. The "
"filenames listed should be relative to F<debian/tmp/>. You can also list "
@@ -7544,7 +12605,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_movefiles:44
+#: dh_movefiles:47
msgid ""
"Instead of moving files out of F<debian/tmp> (the default), this option "
"makes it move files out of some other directory. Since the entire contents "
@@ -7557,17 +12618,17 @@ msgstr ""
"répertoire. Puisque le contenu entier du répertoire source est déplacé, le "
"fait d'indiquer quelque chose comme B<--sourcedir=/> serait très dangereux. "
"Aussi, pour empêcher ces erreurs, le répertoire source doit être un nom de "
-"fichier relatif. Il ne peut donc pas commencer par « B</> »."
+"fichier relatif. Il ne peut donc pas commencer par « B</> »."
# type: =item
#. type: =item
-#: dh_movefiles:50
+#: dh_movefiles:53
msgid "B<-Xitem>, B<--exclude=item>"
msgstr "B<-Xélément>, B<--exclude=élément>"
# type: textblock
#. type: textblock
-#: dh_movefiles:52
+#: dh_movefiles:55
msgid ""
"Exclude files that contain B<item> anywhere in their filename from being "
"installed."
@@ -7577,7 +12638,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_movefiles:57
+#: dh_movefiles:60
msgid ""
"Lists files to move. The filenames listed should be relative to F<debian/tmp/"
">. You can also list directory names, and the whole directory will be moved. "
@@ -7592,7 +12653,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_movefiles:66
+#: dh_movefiles:69
msgid ""
"Note that files are always moved out of F<debian/tmp> by default (even if "
"you have instructed debhelper to use a compatibility level higher than one, "
@@ -7604,7 +12665,7 @@ msgid ""
msgstr ""
"Nota : Les fichiers sont, par défaut, toujours déplacés depuis F<debian/tmp> "
"(même s'il a été demandé à debhelper d'utiliser un niveau de compatibilité "
-"supérieur à 1, ce qui induit que debian/tmp n'est utilisé pour rien "
+"supérieur à 1, ce qui induit que debian/tmp n'est utilisé pour rien "
"d'autre). L'idée sous-jacente est que le paquet en construction peut "
"s'installer dans F<debian/tmp>, et qu'alors les fichiers peuvent être "
"déplacés par B<dh_movefiles> à partir de là. Tous les fichiers ou "
@@ -7620,18 +12681,18 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_perl:16
+#: dh_perl:20
msgid "B<dh_perl> [S<I<debhelper options>>] [B<-d>] [S<I<library dirs> ...>]"
msgstr ""
-"B<dh_perl> [S<I<options de debhelper>>] [B<-d>] [S<I<répertoires de "
-"bibliothèque> ...>]"
+"B<dh_perl> [S<I<options_de_debhelper>>] [B<-d>] [S<I<répertoires de "
+"bibliothèque> ...>]"
# type: textblock
#. type: textblock
-#: dh_perl:20
+#: dh_perl:24
msgid ""
-"B<dh_perl> is a debhelper program that is responsible for generating the B<"
-"${perl:Depends}> substitutions and adding them to substvars files."
+"B<dh_perl> is a debhelper program that is responsible for generating the "
+"B<${perl:Depends}> substitutions and adding them to substvars files."
msgstr ""
"B<dh_perl> est le programme de la suite debhelper chargé de produire les "
"substitutions B<${perl:Depends}> et de les ajouter aux fichiers des "
@@ -7639,7 +12700,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_perl:23
+#: dh_perl:27
msgid ""
"The program will look at Perl scripts and modules in your package, and will "
"use this information to generate a dependency on B<perl> or B<perlapi>. The "
@@ -7653,7 +12714,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_perl:28
+#: dh_perl:32
msgid ""
"B<dh_perl> also cleans up empty directories that MakeMaker can generate when "
"installing Perl modules."
@@ -7663,13 +12724,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_perl:35
+#: dh_perl:39
msgid "B<-d>"
msgstr "B<-d>"
# type: textblock
#. type: textblock
-#: dh_perl:37
+#: dh_perl:41
msgid ""
"In some specific cases you may want to depend on B<perl-base> rather than "
"the full B<perl> package. If so, you can pass the -d option to make "
@@ -7684,7 +12745,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_perl:42
+#: dh_perl:46
msgid ""
"Note that this flag may cause no dependency on B<perl-base> to be generated "
"at all. B<perl-base> is Essential, so its dependency can be left out, unless "
@@ -7696,13 +12757,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_perl:46
+#: dh_perl:50
msgid "B<-V>"
msgstr "B<-V>"
# type: textblock
#. type: textblock
-#: dh_perl:48
+#: dh_perl:52
msgid ""
"By default, scripts and architecture independent modules don't depend on any "
"specific version of B<perl>. The B<-V> option causes the current version of "
@@ -7715,39 +12776,39 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_perl:52
+#: dh_perl:56
msgid "I<library dirs>"
msgstr "I<répertoires de bibliothèque>"
# type: textblock
#. type: textblock
-#: dh_perl:54
+#: dh_perl:58
msgid ""
"If your package installs Perl modules in non-standard directories, you can "
"make B<dh_perl> check those directories by passing their names on the "
"command line. It will only check the F<vendorlib> and F<vendorarch> "
"directories by default."
msgstr ""
-"Si le paquet installe les modules Perl dans un répertoire non standard, il "
-"est possible de forcer B<dh_perl> à vérifier ces répertoires en passant leur "
-"nom en argument de la ligne de commande. Par défaut il vérifiera seulement "
-"les répertoires F<vendorlib> et F<vendorarch>."
+"Si le paquet installe les modules Perl dans des répertoires non standards, "
+"il est possible de forcer B<dh_perl> à vérifier ces répertoires en passant "
+"leur nom en argument de la ligne de commande. Par défaut il vérifiera "
+"seulement les répertoires F<vendorlib> et F<vendorarch>."
# type: textblock
#. type: textblock
-#: dh_perl:63
+#: dh_perl:67
msgid "Debian policy, version 3.8.3"
msgstr "Charte Debian, version 3.8.3"
# type: textblock
#. type: textblock
-#: dh_perl:65
+#: dh_perl:69
msgid "Perl policy, version 1.20"
msgstr "Charte Perl, version 1.20"
# type: textblock
#. type: textblock
-#: dh_perl:160
+#: dh_perl:196
msgid "Brendan O'Dea <bod@debian.org>"
msgstr "Brendan O'Dea <bod@debian.org>"
@@ -7759,13 +12820,13 @@ msgstr "dh_prep - Faire le ménage en vue de construire un paquet Debian"
# type: textblock
#. type: textblock
-#: dh_prep:14
+#: dh_prep:17
msgid "B<dh_prep> [S<I<debhelper options>>] [B<-X>I<item>]"
-msgstr "B<dh_prep> [I<options de debhelper>] [B<-X>I<élément>]"
+msgstr "B<dh_prep> [I<options_de_debhelper>] [B<-X>I<élément>]"
# type: textblock
#. type: textblock
-#: dh_prep:18
+#: dh_prep:21
msgid ""
"B<dh_prep> is a debhelper program that performs some file cleanups in "
"preparation for building a binary package. (This is what B<dh_clean -k> used "
@@ -7774,13 +12835,13 @@ msgid ""
msgstr ""
"B<dh_prep> est un programme de la suite debhelper qui fait le ménage de "
"certains fichiers en vue de la construction d'un paquet binaire. (C'est ce "
-"que fait B<dh_clean -k> d'habitude.) Il supprime le répertoire de "
+"que fait B<dh_clean -k> d'habitude.) Il supprime le répertoire de "
"construction du paquet, F<debian/tmp> et certains fichiers temporaires qui "
"sont générés lors de la construction d'un paquet binaire."
# type: textblock
#. type: textblock
-#: dh_prep:23
+#: dh_prep:26
msgid ""
"It is typically run at the top of the B<binary-arch> and B<binary-indep> "
"targets, or at the top of a target such as install that they depend on."
@@ -7790,7 +12851,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_prep:32
+#: dh_prep:35
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"deleted, even if they would normally be deleted. You may use this option "
@@ -7801,29 +12862,6 @@ msgstr ""
"employée plusieurs fois afin d'exclure de la suppression une liste "
"d'éléments."
-#. type: textblock
-#: dh_scrollkeeper:5
-msgid "dh_scrollkeeper - deprecated no-op"
-msgstr "dh_scrollkeeper - Obsolète, ne pas l'utiliser"
-
-# type: textblock
-#. type: textblock
-#: dh_scrollkeeper:14
-msgid "B<dh_scrollkeeper> [S<I<debhelper options>>] [B<-n>] [S<I<directory>>]"
-msgstr "B<dh_scrollkeeper> [I<options de debhelper>] [B<-n>] [I<répertoire>]"
-
-# type: textblock
-#. type: textblock
-#: dh_scrollkeeper:18
-msgid ""
-"B<dh_scrollkeeper> was a debhelper program that handled registering OMF "
-"files for ScrollKeeper. However, it no longer does anything, and is now "
-"deprecated."
-msgstr ""
-"B<dh_scrollkeeper> était le programme de la suite debhelper chargé de la "
-"maintenance, par ScrollKeeper, des inscriptions des fichiers OMF. Toutefois, "
-"comme il ne sert plus à rien, il est devenu obsolète."
-
# type: textblock
#. type: textblock
#: dh_shlibdeps:5
@@ -7833,17 +12871,17 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:15
+#: dh_shlibdeps:19
msgid ""
"B<dh_shlibdeps> [S<I<debhelper options>>] [B<-L>I<package>] [B<-"
"l>I<directory>] [B<-X>I<item>] [S<B<--> I<params>>]"
msgstr ""
-"B<dh_shlibdeps> [I<options de debhelper>] [B<-L>I<paquet>] [B<-"
-"l>I<répertoire>] [B<-X>I<élément>] [B<--> I<paramètres>]"
+"B<dh_shlibdeps> [I<options_de_debhelper>] [B<-L>I<paquet>] [B<-"
+"l>I<répertoire>] [B<-X>I<élément>] [B<--> I<paramètres>]"
# type: textblock
#. type: textblock
-#: dh_shlibdeps:19
+#: dh_shlibdeps:23
msgid ""
"B<dh_shlibdeps> is a debhelper program that is responsible for calculating "
"shared library dependencies for packages."
@@ -7853,7 +12891,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:22
+#: dh_shlibdeps:26
msgid ""
"This program is merely a wrapper around L<dpkg-shlibdeps(1)> that calls it "
"once for each package listed in the F<control> file, passing it a list of "
@@ -7866,7 +12904,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:32
+#: dh_shlibdeps:36
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"passed to B<dpkg-shlibdeps>. This will make their dependencies be ignored. "
@@ -7881,18 +12919,18 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:39
+#: dh_shlibdeps:43
msgid "Pass I<params> to L<dpkg-shlibdeps(1)>."
msgstr "Passe I<paramètres> à L<dpkg-shlibdeps(1)>."
# type: =item
#. type: =item
-#: dh_shlibdeps:41
+#: dh_shlibdeps:45
msgid "B<-u>I<params>, B<--dpkg-shlibdeps-params=>I<params>"
msgstr "B<-u>I<paramètres>, B<--dpkg-shlibdeps-params=>I<paramètres>"
#. type: textblock
-#: dh_shlibdeps:43
+#: dh_shlibdeps:47
msgid ""
"This is another way to pass I<params> to L<dpkg-shlibdeps(1)>. It is "
"deprecated; use B<--> instead."
@@ -7902,13 +12940,13 @@ msgstr ""
# type: =item
#. type: =item
-#: dh_shlibdeps:46
+#: dh_shlibdeps:50
msgid "B<-l>I<directory>[B<:>I<directory> ...]"
msgstr "B<-l>I<répertoire>[B<:>I<répertoire> ...]"
# type: textblock
#. type: textblock
-#: dh_shlibdeps:48
+#: dh_shlibdeps:52
msgid ""
"With recent versions of B<dpkg-shlibdeps>, this option is generally not "
"needed."
@@ -7918,15 +12956,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:51
-#, fuzzy
-#| msgid ""
-#| "Before B<dpkg-shlibdeps> is run, B<LD_LIBRARY_PATH> will have added to it "
-#| "the specified directory (or directories -- separate with colons). With "
-#| "recent versions of B<dpkg-shlibdeps>, this is mostly only useful for "
-#| "packages that build multiple flavors of the same library, or other "
-#| "situations where the library is installed into a directory not on the "
-#| "regular library search path."
+#: dh_shlibdeps:55
msgid ""
"It tells B<dpkg-shlibdeps> (via its B<-l> parameter), to look for private "
"package libraries in the specified directory (or directories -- separate "
@@ -7935,47 +12965,57 @@ msgid ""
"other situations where the library is installed into a directory not on the "
"regular library search path."
msgstr ""
-"Avant que B<dpkg-shlibdeps> ne soit exécuté, B<LD_LIBRARY_PATH> aura été "
-"ajouté avec le répertoire indiqué (ou les répertoires, séparés par des deux "
-"points). Avec les versions récentes de B<dpkg-shlibdeps>, c'est surtout "
-"utile pour construire des paquets comportant des « saveurs » multiples d'une "
-"même bibliothèque, ou d'autres situations où la bibliothèque est installée "
-"dans un répertoire qui n'est pas dans le chemin de recherche normal de la "
-"bibliothèque."
+"Cette option indique à B<dpkg-shlibdeps> (à l’aide de son paramètre B<-l>) "
+"de rechercher des bibliothèques privées du paquet dans le répertoire indiqué "
+"(ou les répertoires, séparés par des deux points). Avec les versions "
+"récentes de B<dpkg-shlibdeps>, c'est surtout utile pour construire des "
+"paquets comportant des « saveurs » multiples d'une même bibliothèque, ou "
+"d'autres situations où la bibliothèque est installée dans un répertoire qui "
+"n'est pas dans le chemin de recherche normal de la bibliothèque."
# type: =item
#. type: =item
-#: dh_shlibdeps:59
+#: dh_shlibdeps:63
msgid "B<-L>I<package>, B<--libpackage=>I<package>"
msgstr "B<-L>I<paquet>, B<--libpackage=>I<paquet>"
# type: textblock
#. type: textblock
-#: dh_shlibdeps:61
+#: dh_shlibdeps:65
msgid ""
"With recent versions of B<dpkg-shlibdeps>, this option is generally not "
-"needed, unless your package builds multiple flavors of the same library."
+"needed, unless your package builds multiple flavors of the same library or "
+"is relying on F<debian/shlibs.local> for an internal library."
msgstr ""
"Avec les récentes versions de B<dpkg-shlibdeps>, cette option n'est en "
-"principe pas utile sauf pour construire des paquets comportant des "
-"« saveurs » multiples d'une même bibliothèque."
+"principe pas utile, sauf pour construire des paquets comportant des "
+"« saveurs » multiples d'une même bibliothèque ou dépendant de F<debian/"
+"shlibs.local> pour une bibliothèque interne."
# type: textblock
#. type: textblock
-#: dh_shlibdeps:64
+#: dh_shlibdeps:69
msgid ""
"It tells B<dpkg-shlibdeps> (via its B<-S> parameter) to look first in the "
"package build directory for the specified package, when searching for "
"libraries, symbol files, and shlibs files."
msgstr ""
-"Indique à B<dpkg-shlibdeps> (via son paramètre B<-S>) de rechercher d'abord "
-"dans le répertoire de construction du paquet pour le paquet indiqué, lors de "
-"la recherche des bibliothèques, des fichiers de symboles et des fichiers "
-"shlibs."
+"Indique à B<dpkg-shlibdeps> (à l’aide de son paramètre B<-S>) de rechercher "
+"d'abord dans le répertoire de construction du paquet pour le paquet indiqué, "
+"lors de la recherche des bibliothèques, des fichiers de symboles et des "
+"fichiers shlibs."
+
+#. type: textblock
+#: dh_shlibdeps:73
+msgid ""
+"If needed, this can be passed multiple times with different package names."
+msgstr ""
+"Si nécessaire, cette option peut être passée plusieurs fois avec différents "
+"noms de paquet."
# type: textblock
#. type: textblock
-#: dh_shlibdeps:72
+#: dh_shlibdeps:80
msgid ""
"Suppose that your source package produces libfoo1, libfoo-dev, and libfoo-"
"bin binary packages. libfoo-bin links against libfoo1, and should depend on "
@@ -7983,12 +13023,12 @@ msgid ""
msgstr ""
"Supposons que le paquet source produise les paquets binaires libtoto1, "
"libtoto-dev et libtoto-bin. libtoto-bin utilise la bibliothèque libtoto1 et "
-"doit donc en dépendre. Dans le fichier rules, il faut d'abord exécuter "
+"doit donc en dépendre. Dans le fichier F<rules>, il faut d'abord exécuter "
"B<dh_makeshlibs> puis B<dh_shlibdeps> :"
# type: verbatim
#. type: verbatim
-#: dh_shlibdeps:76
+#: dh_shlibdeps:84
#, no-wrap
msgid ""
"\tdh_makeshlibs\n"
@@ -8001,7 +13041,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:79
+#: dh_shlibdeps:87
msgid ""
"This will have the effect of generating automatically a shlibs file for "
"libfoo1, and using that file and the libfoo1 library in the F<debian/libfoo1/"
@@ -8014,7 +13054,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:84
+#: dh_shlibdeps:92
msgid ""
"If a libbar1 package is also produced, that is an alternate build of libfoo, "
"and is installed into F</usr/lib/bar/>, you can make libfoo-bin depend on "
@@ -8026,7 +13066,7 @@ msgstr ""
# type: verbatim
#. type: verbatim
-#: dh_shlibdeps:88
+#: dh_shlibdeps:96
#, no-wrap
msgid ""
"\tdh_shlibdeps -Llibbar1 -l/usr/lib/bar\n"
@@ -8037,7 +13077,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_shlibdeps:154
+#: dh_shlibdeps:206
msgid "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
msgstr "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
@@ -8047,34 +13087,34 @@ msgstr "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
msgid ""
"dh_strip - strip executables, shared libraries, and some static libraries"
msgstr ""
-"dh_strip - Dépouiller les exécutables, les bibliothèques partagées, et "
+"dh_strip - Dépouiller les exécutables, les bibliothèques partagées et "
"certaines bibliothèques statiques"
# type: textblock
#. type: textblock
-#: dh_strip:15
+#: dh_strip:18
msgid ""
"B<dh_strip> [S<I<debhelper options>>] [B<-X>I<item>] [B<--dbg-"
"package=>I<package>] [B<--keep-debug>]"
msgstr ""
-"B<dh_strip> [S<I<options de debhelper>>] [B<-X>I<élément>] [B<--dbg-"
+"B<dh_strip> [S<I<options_de_debhelper>>] [B<-X>I<élément>] [B<--dbg-"
"package=paquet>] [B<--keep-debug>]"
# type: textblock
#. type: textblock
-#: dh_strip:19
+#: dh_strip:22
msgid ""
-"B<dh_strip> is a debhelper program that is responsible for stripping "
-"executables, shared libraries, and static libraries that are not used for "
-"debugging."
+"B<dh_strip> is a debhelper program that is responsible for stripping out "
+"debug symbols in executables, shared libraries, and static libraries that "
+"are not needed during execution."
msgstr ""
-"B<dh_strip> est le programme de la suite debhelper chargé de dépouiller les "
-"exécutables, les bibliothèques partagées et les bibliothèques statiques qui "
-"ne sont pas utilisés pour la mise au point."
+"B<dh_strip> est le programme de la suite debhelper chargé de dépouiller de "
+"leurs symboles de débogage, qui ne sont pas nécessaires pendant l'exécution, "
+"les exécutables, les bibliothèques partagées et les bibliothèques statiques."
# type: textblock
#. type: textblock
-#: dh_strip:23
+#: dh_strip:26
msgid ""
"This program examines your package build directories and works out what to "
"strip on its own. It uses L<file(1)> and file permissions and filenames to "
@@ -8096,7 +13136,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_strip:31
+#: dh_strip:34
msgid ""
"Since it is very hard to automatically guess if a file is a module, and hard "
"to determine how to strip a module, B<dh_strip> does not currently deal with "
@@ -8107,27 +13147,33 @@ msgstr ""
"ne dépouille actuellement pas les modules binaires tels que des fichiers F<."
"o>."
-# type: textblock
-#. type: textblock
-#: dh_strip:41
-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 "
-"things to exclude."
-msgstr ""
-"Exclut du traitement les fichiers qui comportent I<élément> n'importe où "
-"dans leur nom. Il est possible d'utiliser cette option à plusieurs reprises "
-"pour établir une liste des éléments à exclure."
-
# type: =item
#. type: =item
-#: dh_strip:45
+#: dh_strip:48
msgid "B<--dbg-package=>I<package>"
msgstr "B<--dbg-package=>I<paquet>"
+#. type: textblock
+#: dh_strip:50 dh_strip:70
+msgid ""
+"B<This option is a now special purpose option that you normally do not "
+"need>. In most cases, there should be little reason to use this option for "
+"new source packages as debhelper automatically generates debug packages "
+"(\"dbgsym packages\"). B<If you have a manual --dbg-package> that you want "
+"to replace with an automatically generated debug symbol package, please see "
+"the B<--dbgsym-migration> option."
+msgstr ""
+"B<Cette option est actuellement une option spéciale dont vous ne devriez pas "
+"avoir besoin>. Dans la plupart des cas, il devrait y avoir peu de raisons "
+"d'utiliser cette option pour les nouveaux paquets source, car debhelper "
+"génère automatiquement les paquets de débogage (« paquets dbgsym »). B<Si "
+"vous avez une option manuelle --dbg-package> que vous désirez remplacer par "
+"un paquet de symboles de débogage généré automatiquement, veuillez consulter "
+"l'option B<--dbgsym-migration>."
+
# type: textblock
#. type: textblock
-#: dh_strip:47
+#: dh_strip:58
msgid ""
"Causes B<dh_strip> to save debug symbols stripped from the packages it acts "
"on as independent files in the package build directory of the specified "
@@ -8140,7 +13186,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_strip:51
+#: dh_strip:62
msgid ""
"For example, if your packages are libfoo and foo and you want to include a "
"I<foo-dbg> package with debugging symbols, use B<dh_strip --dbg-"
@@ -8148,34 +13194,26 @@ msgid ""
msgstr ""
"Par exemple, si les paquets se nomment libtoto et toto et que l'on veut "
"inclure un paquet I<toto-dbg> avec les symboles de mise au point, il faut "
-"utiliser B<dh_strip --dbg-package=toto-dbg>."
+"utiliser B<dh_strip --dbg-package=toto-dbg>."
-# type: textblock
#. type: textblock
-#: dh_strip:54
+#: dh_strip:65
msgid ""
-"Note that this option behaves significantly different in debhelper "
-"compatibility levels 4 and below. Instead of specifying the name of a debug "
-"package to put symbols in, it specifies a package (or packages) which should "
-"have separated debug symbols, and the separated symbols are placed in "
-"packages with B<-dbg> added to their name."
+"This option implies B<--no-automatic-dbgsym> and I<cannot> be used with B<--"
+"automatic-dbgsym> or B<--dbgsym-migration>."
msgstr ""
-"Nota : cette option se comporte de façon sensiblement différente dans les "
-"niveaux de compatibilité 4 et inférieurs de debhelper. Au lieu d'indiquer le "
-"nom d'un paquet de mise au point où placer les symboles (cas de la v5), "
-"l'option indique (cas de la v4 et inférieure) le ou les paquets d'où "
-"proviennent les symboles de mise au point. Les symboles sont alors placés "
-"dans des paquets, suffixés par B<-dbg>."
+"Cette option implique B<--no-automatic-dbgsym> et ne peut B<pas> être "
+"utilisée avec B<--automatic-dbgsym> ou B<--dbgsym-migration>."
# type: =item
#. type: =item
-#: dh_strip:60
+#: dh_strip:68
msgid "B<-k>, B<--keep-debug>"
msgstr "B<-k>, B<--keep-debug>"
# type: textblock
#. type: textblock
-#: dh_strip:62
+#: dh_strip:78
msgid ""
"Debug symbols will be retained, but split into an independent file in F<usr/"
"lib/debug/> in the package build directory. B<--dbg-package> is easier to "
@@ -8186,91 +13224,150 @@ msgstr ""
"paquet. Il est plus facile d'employer B<--dbg-package> que cette option, "
"mais cette dernière est plus souple."
-# type: textblock
#. type: textblock
-#: dh_strip:70
+#: dh_strip:82
msgid ""
-"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
-"nothing will be stripped, in accordance with Debian policy (section 10.1 "
-"\"Binaries\")."
+"This option implies B<--no-automatic-dbgsym> and I<cannot> be used with B<--"
+"automatic-dbgsym>."
msgstr ""
-"Si la variable d'environnement B<DEB_BUILD_OPTIONS> contient B<nostrip>, "
-"rien ne sera dépouillé, conformément à la Charte Debian (section 10.1 "
-"« Binaries »)."
-
-# type: textblock
-#. type: textblock
-#: dh_strip:76
-msgid "Debian policy, version 3.0.1"
-msgstr "Charte Debian, version 3.0.1"
+"Cette option implique B<--no-automatic-dbgsym> et ne peut B<pas> être "
+"utilisée avec B<--ddebs>."
-# type: textblock
-#. type: textblock
-#: dh_suidregister:5
-msgid "dh_suidregister - suid registration program (deprecated)"
-msgstr "dh_suidregister - Programme d'inscription suid (obsolète)"
+# type: =item
+#. type: =item
+#: dh_strip:85
+msgid "B<--dbgsym-migration=>I<package-relation>"
+msgstr "B<--dbgsym-migration=>I<relation-paquet>"
-# type: textblock
#. type: textblock
-#: dh_suidregister:9 dh_undocumented:14
-msgid "Do not run!"
-msgstr "Ne pas l'utiliser !"
+#: dh_strip:87
+msgid ""
+"This option is used to migrate from a manual \"-dbg\" package (created with "
+"B<--dbg-package>) to an automatic generated debug symbol package. This "
+"option should describe a valid B<Replaces>- and B<Breaks>-relation, which "
+"will be added to the debug symbol package to avoid file conflicts with the "
+"(now obsolete) -dbg package."
+msgstr ""
+"Cette option est utilisée pour migrer d'un paquet « -dbg » créé manuellement "
+"avec B<--dbg-package> vers la création automatique du paquet de symboles de "
+"débogage. Cette option doit décrire une relation B<Replaces> et B<Breaks> "
+"valable, qui sera ajoutée au paquet de symboles de débogage pour éviter les "
+"conflits de fichiers avec le paquet (maintenant obsolète) -dbg."
-# type: textblock
#. type: textblock
-#: dh_suidregister:13
+#: dh_strip:93
msgid ""
-"This program used to register suid and sgid files with L<suidregister(1)>, "
-"but with the introduction of L<dpkg-statoverride(8)>, registration of files "
-"in this way is unnecessary, and even harmful, so this program is deprecated "
-"and should not be used."
+"This option implies B<--automatic-dbgsym> and I<cannot> be used with B<--"
+"keep-debug>, B<--dbg-package> or B<--no-automatic-dbgsym>."
msgstr ""
-"Ce programme était utilisé pour l'inscription des fichiers suid et sgid avec "
-"L<suidregister(1)> mais l'introduction de L<dpkg-statoverride(8)> a rendu "
-"l'inscription de ces fichiers inutile et même néfaste. De ce fait, ce "
-"programme est obsolète et ne doit pas être employé."
-
-# type: =head1
-#. type: =head1
-#: dh_suidregister:18
-msgid "CONVERTING TO STATOVERRIDE"
-msgstr "CONVERSION EN STATOVERRIDE"
+"Cette option implique B<--automatic-dbgsym> et ne peut B<pas> être utilisée "
+"avec B<--keep-debug>, B<--dbg-package> ni B<--no-automatic-dbgsym>."
-# type: textblock
#. type: textblock
-#: dh_suidregister:20
+#: dh_strip:96
+msgid "Examples:"
+msgstr "Exemples :"
+
+#. type: verbatim
+#: dh_strip:98
+#, no-wrap
msgid ""
-"Converting a package that uses this program to use the new statoverride "
-"mechanism is easy. Just remove the call to B<dh_suidregister> from F<debian/"
-"rules>, and add a versioned conflicts into your F<control> file, as follows:"
+" dh_strip --dbgsym-migration='libfoo-dbg (<< 2.1-3~)'\n"
+"\n"
msgstr ""
-"Il est facile de convertir un paquet, qui utilise B<dh_suidregister>, au "
-"nouveau mécanisme de statoverride. Il suffit de supprimer l'appel à "
-"B<dh_suidregister> dans F<debian/rules> et d'ajouter une gestion des "
-"conflits de versions dans le fichier F<control> de la façon suivante :"
+" dh_strip --dbgsym-migration='libtoto-dbg (<< 2.1-3~)'\n"
+"\n"
-# type: verbatim
#. type: verbatim
-#: dh_suidregister:25
+#: dh_strip:100
#, no-wrap
msgid ""
-" Conflicts: suidmanager (<< 0.50)\n"
+" dh_strip --dbgsym-migration='libfoo-tools-dbg (<< 2.1-3~), libfoo2-dbg (<< 2.1-3~)'\n"
"\n"
msgstr ""
-" Conflicts: suidmanager (<< 0.50)\n"
+" dh_strip --dbgsym-migration='libtoto-tools-dbg (<< 2.1-3~), libtoto2-dbg (<< 2.1-3~)'\n"
"\n"
+# type: =item
+#. type: =item
+#: dh_strip:102
+msgid "B<--automatic-dbgsym>, B<--no-automatic-dbgsym>"
+msgstr "B<--automatic-dbgsym>, B<--no-automatic-dbgsym>"
+
+#. type: textblock
+#: dh_strip:104
+msgid ""
+"Control whether B<dh_strip> should be creating debug symbol packages when "
+"possible."
+msgstr ""
+"Cette option vérifie si B<dh_strip> doit créer des paquets de symboles de "
+"débogage lorsque cela est possible."
+
+#. type: textblock
+#: dh_strip:107
+msgid "The default is to create debug symbol packages."
+msgstr ""
+"Le comportement par défaut est de créer un paquet de symboles de débogage."
+
+# type: =item
+#. type: =item
+#: dh_strip:109
+msgid "B<--ddebs>, B<--no-ddebs>"
+msgstr "B<--ddebs>, B<--no-ddebs>"
+
+# type: =item
+#. type: textblock
+#: dh_strip:111
+msgid "Historical name for B<--automatic-dbgsym> and B<--no-automatic-dbgsym>."
+msgstr "Nom historique pour B<--automatic-dbgsym> et B<--no-automatic-dbgsym>"
+
+# type: =item
+#. type: =item
+#: dh_strip:113
+msgid "B<--ddeb-migration=>I<package-relation>"
+msgstr "B<--ddeb-migration=>I<relation-paquet>"
+
+#. type: textblock
+#: dh_strip:115
+msgid "Historical name for B<--dbgsym-migration>."
+msgstr "Nom historique pour B<--dbgsym-migration>."
+
# type: textblock
#. type: textblock
-#: dh_suidregister:27
+#: dh_strip:121
msgid ""
-"The conflicts is only necessary if your package used to register things with "
-"suidmanager; if it did not, you can just remove the call to this program "
-"from your rules file."
+"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
+"nothing will be stripped, in accordance with Debian policy (section 10.1 "
+"\"Binaries\"). This will also inhibit the automatic creation of debug "
+"symbol packages."
+msgstr ""
+"Si la variable d'environnement B<DEB_BUILD_OPTIONS> contient B<nostrip>, "
+"rien ne sera dépouillé, conformément à la Charte Debian (section 10.1 "
+"« Binaries »). Cela empêchera aussi la création automatique des paquets de "
+"symboles de débogage."
+
+#. type: textblock
+#: dh_strip:126
+msgid ""
+"The automatic creation of debug symbol packages can also be prevented by "
+"adding B<noautodbgsym> to the B<DEB_BUILD_OPTIONS> environment variable. "
+"However, B<dh_strip> will still add debuglinks to ELF binaries when this "
+"flag is set. This is to ensure that the regular deb package will be "
+"identical with and without this flag (assuming it is otherwise \"bit-for-"
+"bit\" reproducible)."
msgstr ""
-"Cette indication de conflits n'est nécessaire que si le paquet inscrivait "
-"des éléments avec suidmanager. En dehors de ce cas, il suffit d'enlever "
-"l'appel à dh_suidregister du fichier « rules »."
+"La création automatique des paquets de symboles de débogage peut être "
+"empêchée en ajoutant B<noautodbgsym> à la variable d'environnement "
+"B<DEB_BUILD_OPTIONS>. En revanche, B<dh_strip> ajoutera quand même les liens "
+"de débogage aux binaires ELF lorsque ce paramètre est défini, pour s'assurer "
+"que le paquet deb est identique avec ou sans (en considérant qu'il est par "
+"ailleurs reproductible bit à bit)."
+
+# type: textblock
+#. type: textblock
+#: dh_strip:135
+msgid "Debian policy, version 3.0.1"
+msgstr "Charte Debian, version 3.0.1"
# type: textblock
#. type: textblock
@@ -8281,13 +13378,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_testdir:14
+#: dh_testdir:17
msgid "B<dh_testdir> [S<I<debhelper options>>] [S<I<file> ...>]"
-msgstr "B<dh_testdir> [S<I<options de debhelper>>] [S<I<fichier> ...>]"
+msgstr "B<dh_testdir> [S<I<options_de_debhelper>>] [S<I<fichier> ...>]"
# type: textblock
#. type: textblock
-#: dh_testdir:18
+#: dh_testdir:21
msgid ""
"B<dh_testdir> tries to make sure that you are in the correct directory when "
"building a Debian package. It makes sure that the file F<debian/control> "
@@ -8301,62 +13398,127 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_testdir:29
+#: dh_testdir:32
msgid "Test for the existence of these files too."
msgstr "Teste également l'existence de ces fichiers."
# type: textblock
#. type: textblock
-#: dh_testroot:5
-msgid "dh_testroot - ensure that a package is built as root"
+#: dh_testroot:7
+msgid ""
+"dh_testroot - ensure that a package is built with necessary level of root "
+"permissions"
msgstr ""
-"dh_testroot - Vérifier que le paquet est construit par le superutilisateur "
-"(root)"
+"dh_testroot - Vérifier que le paquet est construit avec les droits "
+"nécessaires du superutilisateur (root)"
# type: textblock
#. type: textblock
-#: dh_testroot:9
+#: dh_testroot:11
msgid "B<dh_testroot> [S<I<debhelper options>>]"
-msgstr "B<dh_testroot> [I<options de debhelper>]"
+msgstr "B<dh_testroot> [I<options_de_debhelper>]"
-# type: textblock
#. type: textblock
-#: dh_testroot:13
+#: dh_testroot:15
msgid ""
-"B<dh_testroot> simply checks to see if you are root. If not, it exits with "
-"an error. Debian packages must be built as root, though you can use "
-"L<fakeroot(1)>"
+"B<dh_testroot> is used to determine if the target is being run with suffient "
+"access to root(-like) features."
msgstr ""
-"B<dh_testroot> se contente de contrôler si la construction du paquet est "
-"lancée par le superutilisateur. Si ce n'est pas le cas, il retourne une "
-"erreur. Les paquets Debian doivent être construits par le superutilisateur, "
-"éventuellement en utilisant L<fakeroot(1)>"
+"B<dh_testroot> est utilisé pour déterminer si la cible est exécutée avec des "
+"accès suffisants aux fonctionnalités de root (ou fakeroot)."
-# type: textblock
#. type: textblock
-#: dh_undocumented:5
-msgid "dh_undocumented - undocumented.7 symlink program (deprecated no-op)"
+#: dh_testroot:18
+msgid ""
+"The definition of sufficient access depends on whether the builder (the tool "
+"invoking the F<debian/rules> target) supports the I<Rules-Requires-Root> "
+"(R³) field. If the builder supports R³, then it will set the environment "
+"variable I<DEB_RULES_REQUIRES_ROOT> and B<dh_testroot> will validate that "
+"the builder followed the minimum requirements for the given value of "
+"I<DEB_RULES_REQUIRES_ROOT>."
msgstr ""
-"dh_undocumented - Programme de création de liens symboliques vers "
-"« undocumented.7 » (obsolète, ne pas l'utiliser)"
+"La définition des accès suffisants dépend de comment le constructeur (celui "
+"qui appelle la cible F<debian/rules>) gère le champ I<Rules-Requires-"
+"Root> (R³). Si le constructeur prend en charge R³, il positionnera la "
+"variable d'environnement I<DEB_RULES_REQUIRES_ROOT> et B<dh_testroot> "
+"validera que le constructeur suit les recommandations minimales pour la "
+"valeur donnée de I<DEB_RULES_REQUIRES_ROOT>."
+
+#. type: textblock
+#: dh_testroot:25
+msgid ""
+"If the builder does not support I<Rules-Requires-Root>, then it will not set "
+"the I<DEB_RULES_REQUIRES_ROOT> environment variable. This will in turn make "
+"B<dh_testroot> (and the rest of debhelper) fall back to assuming that "
+"(fake)root is implied."
+msgstr ""
+"Si le constructeur ne prend pas en charge I<Rules-Requires-Root>, il ne "
+"positionnera pas la variable d'environnement I<DEB_RULES_REQUIRES_ROOT>. "
+"Cela conduira B<dh_testroot> (et le reste de debhelper) à considérer que "
+"root (ou fakeroot) est impliqué."
+
+#. type: textblock
+#: dh_testroot:30
+msgid ""
+"The following is a summary of how B<dh_testroot> behaves based on the "
+"I<DEB_RULES_REQUIRES_ROOT> environment variable (leading and trailing "
+"whitespace in the variable is ignored)."
+msgstr ""
+"Ce qui suit est un résumé du comportement de B<dh_testroot> en fonction de "
+"la variable d'environnement I<DEB_RULES_REQUIRES_ROOT> (les espaces de début "
+"et de fin dans la variable sont ignorées)."
+
+#. type: textblock
+#: dh_testroot:38
+msgid ""
+"If unset, or set to C<binary-targets>, then B<dh_testroot> asserts that it "
+"is run as root or under L<fakeroot(1)>."
+msgstr ""
+"Si la variable n'existe pas ou vaut C<binary-targets>, B<dh_testroot> "
+"suppose qu'il est exécuté en tant que superutilisateur ou dans "
+"L<fakeroot(1)>."
+
+#. type: textblock
+#: dh_testroot:43
+msgid ""
+"If set to C<no>, then B<dh_testroot> returns successfully (without "
+"performing any additional checks)."
+msgstr ""
+"Si la variable vaut C<no>, B<dh_testroot> se terminera avec succès (sans "
+"effectuer d'autres vérifications)."
-# type: textblock
#. type: textblock
-#: dh_undocumented:18
+#: dh_testroot:48
msgid ""
-"This program used to make symlinks to the F<undocumented.7> man page for man "
-"pages not present in a package. Debian policy now frowns on use of the "
-"F<undocumented.7> man page, and so this program does nothing, and should not "
-"be used."
+"If set to any other value than the above, then B<dh_testroot> asserts that "
+"it is either run as root (or under L<fakeroot(1)>) or the builder has "
+"provided the B<DEB_GAIN_ROOT_CMD> environment variable (e.g. via dpkg-"
+"buildpackage -r)."
msgstr ""
-"Ce programme est utilisé pour créer des liens symboliques vers la page de "
-"manuel F<undocumented.7> lorsque la page de manuel du paquet n'existe pas. "
-"La Charte Debian désapprouve l'utilisation de F<undocumented.7>. De ce fait, "
-"ce programme ne fait rien et de doit pas être utilisé."
+"Si la variable a une autre valeur que celles précédentes, B<dh_testroot> "
+"suppose qu'il est exécuté en tant que superutilisateur (ou dans "
+"L<fakeroot(1)>), ou que le constructeur a fourni la variable d'environnement "
+"B<DEB_GAIN_ROOT_CMD> (par exemple grâce à dpkg-buildpackage -r)."
+
+#. type: textblock
+#: dh_testroot:55
+msgid ""
+"Please note that B<dh_testroot> does I<not> read the I<Rules-Requires-Root> "
+"field. Which implies that B<dh_testroot> may produce incorrect result if "
+"the builder lies in I<DEB_RULES_REQUIRES_ROOT>. On the flip side, it also "
+"enables things like testing for what will happen when "
+"I<DEB_RULES_REQUIRES_ROOT> is set to a given value."
+msgstr ""
+"Veuillez noter que B<dh_testroot> ne lit I<pas> le champ "
+"I<Rules_Requires_Root>. Cela implique que B<dh_testroot> pourrait produire "
+"des résultats incorrects si le constructeur ment à "
+"I<DEB_RULES_REQUIRES_ROOT>. D'un autre côté, cela permet aussi des choses "
+"comme le test de fonctionnement lorsque I<DEB_RULES_REQUIRES_ROOT> est "
+"positionné à une certaine valeur."
# type: textblock
#. type: textblock
-#: dh_usrlocal:5
+#: dh_usrlocal:7
msgid "dh_usrlocal - migrate usr/local directories to maintainer scripts"
msgstr ""
"dh_usrlocal - Migrer les répertoires usr/local dans les scripts de "
@@ -8364,13 +13526,13 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_usrlocal:17
+#: dh_usrlocal:21
msgid "B<dh_usrlocal> [S<I<debhelper options>>] [B<-n>]"
-msgstr "B<dh_usrlocal> [I<options de debhelper>] [B<-n>]"
+msgstr "B<dh_usrlocal> [I<options_de_debhelper>] [B<-n>]"
# type: textblock
#. type: textblock
-#: dh_usrlocal:21
+#: dh_usrlocal:25
msgid ""
"B<dh_usrlocal> is a debhelper program that can be used for building packages "
"that will provide a subdirectory in F</usr/local> when installed."
@@ -8381,7 +13543,7 @@ msgstr ""
# type: textblock
#. type: textblock
-#: dh_usrlocal:24
+#: dh_usrlocal:28
msgid ""
"It finds subdirectories of F<usr/local> in the package build directory, and "
"removes them, replacing them with maintainer script snippets (unless B<-n> "
@@ -8397,42 +13559,1443 @@ msgstr ""
"du paquet (sauf si B<-n> est utilisé) afin de créer ces répertoires au "
"moment de l'installation. Il génère également les lignes de code pour "
"supprimer ces répertoires lorsque le paquet est enlevé, conformément à la "
-"Charte Debian. Ces lignes de codes sont ajoutées aux scripts de maintenance "
+"Charte Debian. Ces lignes de codes sont ajoutées aux scripts de maintenance "
"du paquet par B<dh_installdeb>. Voir L<dh_installdeb(1)> pour une "
"explication sur l'ajout des lignes de code aux scripts de maintenance du "
"paquet."
-# type: textblock
#. type: textblock
-#: dh_usrlocal:32
+#: dh_usrlocal:36
+msgid ""
+"When the I<DEB_RULES_REQUIRES_ROOT> environment variable is not "
+"(effectively) I<binary-targets>, the directories in F</usr/local> will be "
+"handled as if they were owned by root:root (see below)."
+msgstr ""
+"Lorsque la variable d'environnement I<DEB_RULES_REQUIRES_ROOT> n'est pas "
+"égale à I<binary-targets>, les répertoires dans F</usr/local> sont traités "
+"comme s'ils appartenaient à root:root (voir ci-dessous)."
+
+#. type: textblock
+#: dh_usrlocal:40
+msgid ""
+"When the I<DEB_RULES_REQUIRES_ROOT> environment variable has an effective "
+"value of I<binary-targets>, the owners, groups and permissions will be "
+"preserved with the sole exception where the directory is owned by root:root."
+msgstr ""
+"Lorsque la variable d'environnement I<DEB_RULES_REQUIRES_ROOT> vaut C<binary-"
+"targets>, le propriétaire, les groupes et les permissions seront conservés, "
+"sauf si le répertoire appartient à root:root."
+
+#. type: textblock
+#: dh_usrlocal:44
msgid ""
-"If the directories found in the build tree have unusual owners, groups, or "
-"permissions, then those values will be preserved in the directories made by "
-"the F<postinst> script. However, as a special exception, if a directory is "
-"owned by root.root, it will be treated as if it is owned by root.staff and "
-"is mode 2775. This is useful, since that is the group and mode policy "
-"recommends for directories in F</usr/local>."
+"If a directory is owned by root:root, then ownership will be determined at "
+"install time. The ownership and permission bits will either be root:root "
+"mode 0755 or root:staff mode 02775. The actual choice depends on whether "
+"the system has F</etc/staff-group-for-usr-local> (as documented in the "
+"Debian Policy Manual §9.1.2 since version 4.1.4)"
msgstr ""
-"Si les répertoires trouvés dans le répertoire de construction du paquet ont "
-"un propriétaire, un groupe ou des droits inhabituels, ces valeurs seront "
-"préservées dans les répertoires créés par le script de maintenance "
-"F<postinst>. Une exception notable toutefois : si le répertoire a comme "
-"propriété root.root, il sera traité comme root.staff avec des droits 2775. "
-"Cela est utile depuis que ce sont les valeurs recommandées par la Charte "
-"Debian pour les répertoires de F</usr/local>."
+"Si un répertoire appartient à root:root, le propriétaire sera déterminé à "
+"l'installation. Le propriétaire et les permissions seront fixés à root:root "
+"en mode 0755, ou à root:staff en mode 02775. Le choix effectif dépend de la "
+"présence du fichier F</etc/staff-group-for-usr-local> (comme documenté dans "
+"la Charte Debian, §9.1.2, depuis la version 4.1.4)."
# type: textblock
#. type: textblock
-#: dh_usrlocal:57
+#: dh_usrlocal:68
msgid "Debian policy, version 2.2"
msgstr "Charte Debian, version 2.2"
# type: textblock
#. type: textblock
-#: dh_usrlocal:124
+#: dh_usrlocal:144
msgid "Andrew Stribblehill <ads@debian.org>"
msgstr "Andrew Stribblehill <ads@debian.org>"
+#. type: textblock
+#: dh_systemd_enable:5
+msgid "dh_systemd_enable - enable/disable systemd unit files"
+msgstr "dh_systemd_enable - Activer ou désactiver les fichiers unit de systemd"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:18
+msgid ""
+"B<dh_systemd_enable> [S<I<debhelper options>>] [B<--no-enable>] [B<--"
+"name=>I<name>] [S<I<unit file> ...>]"
+msgstr ""
+"B<dh_systemd_enable> [S<I<options_de_debhelper>>] [B<--no-enable>] [B<--"
+"name=>I<nom>] [S<I<fichier_unit> ...>]"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:22
+msgid ""
+"B<dh_systemd_enable> is a debhelper program that is responsible for enabling "
+"and disabling systemd unit files."
+msgstr ""
+"B<dh_systemd_enable> est le programme de la suite debhelper chargé de "
+"l'activation et la désactivation des fichiers unit de systemd."
+
+#. type: textblock
+#: dh_systemd_enable:25
+msgid ""
+"In the simple case, it finds all unit files installed by a package (e.g. "
+"bacula-fd.service) and enables them. It is not necessary that the machine "
+"actually runs systemd during package installation time, enabling happens on "
+"all machines in order to be able to switch from sysvinit to systemd and back."
+msgstr ""
+"Dans le cas le plus simple, il trouve tous les fichiers unit installés par "
+"un paquet (p. ex. bacula-fd.service) et les active. Il n'est pas nécessaire "
+"que la machine fasse fonctionner systemd pendant l'installation. "
+"L'activation est effectuée sur tous les systèmes pour permettre de basculer "
+"de sysvinit à systemd, et réciproquement."
+
+#. type: textblock
+#: dh_systemd_enable:30
+msgid ""
+"In the complex case, you can call B<dh_systemd_enable> and "
+"B<dh_systemd_start> manually (by overwriting the debian/rules targets) and "
+"specify flags per unit file. An example is colord, which ships colord."
+"service, a dbus-activated service without an [Install] section. This service "
+"file cannot be enabled or disabled (a state called \"static\" by systemd) "
+"because it has no [Install] section. Therefore, running dh_systemd_enable "
+"does not make sense."
+msgstr ""
+"Dans les cas plus compliqués, vous pouvez appeler B<dh_systemd_enable> et "
+"B<dh_systemd_start> manuellement (en modifiant les cibles debian/rules) et "
+"spécifier les paramètres pour chaque fichier unit. Un exemple de cela est "
+"colord, qui fournit colord.service, un service activé par dbus sans section "
+"[Install], et qui ne peut donc pas être activé ou désactivé (un état appelé "
+"« static » par systemd). Pour cette raison, exécuter dh_systemd_enable est "
+"inutile."
+
+#. type: textblock
+#: dh_systemd_enable:37
+msgid ""
+"For only generating blocks for specific service files, you need to pass them "
+"as arguments, e.g. B<dh_systemd_enable quota.service> and "
+"B<dh_systemd_enable --name=quotarpc quotarpc.service>."
+msgstr ""
+"Si vous souhaitez uniquement générer les blocs de certains fichiers service, "
+"vous devez les passer comme arguments. Par exemple B<dh_systemd_enable quota."
+"service> et B<dh_systemd_enable --name=quotarpc quotarpc.service>."
+
+# type: =item
+#. type: =item
+#: dh_systemd_enable:45
+msgid "debian/I<package>.service, debian/I<package>@.service"
+msgstr "debian/I<paquet>.service, debian/I<paquet>@.service"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:47
+#, fuzzy
+#| msgid ""
+#| "If this exists, it is installed into F<< lib/systemd/system/I<package>."
+#| "service >>(or F<< lib/systemd/system/I<package>@.service >>) in the "
+#| "package build directory."
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"service >> (or F<< lib/systemd/system/I<package>@.service >>) in the package "
+"build directory."
+msgstr ""
+"S'il existe, il est installé dans le répertoire de construction du paquet, "
+"sous F<< lib/systemd/system/I<paquet>.service >> (ou F<< usr/lib/systemd/"
+"system/I<paquet>@.service >>)."
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:52
+#, fuzzy
+#| msgid ""
+#| "If this exists, it is installed into etc/init.d/I<package> in the package "
+#| "build directory."
+msgid ""
+"If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in "
+"the package build directory."
+msgstr ""
+"S'il existe, il est installé dans le répertoire de construction du paquet, "
+"sous etc/init.d/I<paquet>."
+
+# type: =item
+#. type: =item
+#: dh_systemd_enable:55
+msgid "debian/I<package>.target, debian/I<package>@.target"
+msgstr "debian/I<paquet>.target, debian/I<paquet>@.target"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:57
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"target >> (or F<< lib/systemd/system/I<package>@.target >>) in the package "
+"build directory."
+msgstr ""
+"S'il existe, il est installé dans le répertoire de construction du paquet, "
+"sous F<< lib/systemd/system/I<paquet>.target >> (ou F<< usr/lib/systemd/"
+"system/I<paquet>@.target >>)."
+
+# type: =item
+#. type: =item
+#: dh_systemd_enable:60
+msgid "debian/I<package>.socket, debian/I<package>@.socket"
+msgstr "debian/I<paquet>.socket, debian/I<paquet>@.socket"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:62
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"socket >> (or F<< lib/systemd/system/I<package>@.socket >>) in the package "
+"build directory."
+msgstr ""
+"S'il existe, il est installé dans le répertoire de construction du paquet, "
+"sous F<< lib/systemd/system/I<paquet>.socket >> (ou F<< usr/lib/systemd/"
+"system/I<paquet>@.socket >>)."
+
+# type: =item
+#. type: =item
+#: dh_systemd_enable:65
+msgid "debian/I<package>.mount"
+msgstr "debian/I<paquet>.mount"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:67
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.mount "
+">> in the package build directory."
+msgstr ""
+"S'il existe, il est installé dans le répertoire de construction du paquet, "
+"sous F<< lib/systemd/system/I<paquet>.mount >>."
+
+# type: =item
+#. type: =item
+#: dh_systemd_enable:70
+msgid "debian/I<package>.path, debian/I<package>@.path"
+msgstr "debian/I<paquet>.path, debian/I<paquet>@.path"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:72
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.path "
+">> (or F<< lib/systemd/system/I<package>@.path >>) in the package build "
+"directory."
+msgstr ""
+"S'il existe, il est installé dans le répertoire de construction du paquet, "
+"sous F<< lib/systemd/system/I<paquet>.path >> (ou F<< usr/lib/systemd/system/"
+"I<paquet>@.path >>)."
+
+# type: =item
+#. type: =item
+#: dh_systemd_enable:75
+msgid "debian/I<package>.timer, debian/I<package>@.timer"
+msgstr "debian/I<paquet>.timer, debian/I<paquet>@.timer"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:77
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.timer "
+">> (or F<< lib/systemd/system/I<package>@.timer >>) in the package build "
+"directory."
+msgstr ""
+"S'il existe, il est installé dans le répertoire de construction du paquet, "
+"sous F<< lib/systemd/system/I<paquet>.timer >> (ou F<< usr/lib/systemd/"
+"system/I<paquet>@.timer >>)."
+
+#. type: textblock
+#: dh_systemd_enable:88
+msgid "Disable the service(s) on purge, but do not enable them on install."
+msgstr ""
+"Désactiver le(s) service(s) lors de la purge, mais ne pas l'activer à "
+"l'installation."
+
+#. type: textblock
+#: dh_systemd_enable:90
+msgid ""
+"B<Note> that this option does not affect whether the services are started. "
+"That is controlled by L<dh_systemd_start(1)> (using e.g. its B<--no-start> "
+"option)."
+msgstr ""
+"B<Nota> : cette option n'affecte pas le démarrage des services. Cela est "
+"contrôlé par L<dh_systemd_start(1)> (par exemple en utilisant l'option B<--"
+"no-start>)."
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:96
+msgid ""
+"Install the service file as I<name.service> instead of the default filename, "
+"which is the I<package.service>. When this parameter is used, "
+"B<dh_systemd_enable> looks for and installs files named F<debian/package."
+"name.service> instead of the usual F<debian/package.service>."
+msgstr ""
+"Installe le fichier service en utilisant le I<nom.service> indiqué au lieu "
+"du nom I<paquet.service> par défaut. Quand ce paramètre est employé, "
+"B<dh_systemd_enable> recherche et installe le fichier appelé F<debian/paquet."
+"nom.service> au lieu du F<debian/paquet.service> habituel."
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_enable:105 dh_systemd_start:70
+msgid ""
+"Note that 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."
+msgstr ""
+"Nota : Ce programme n'est pas idempotent. Un L<dh_prep(1)> doit être réalisé "
+"entre chaque exécution de ce programme (avec les mêmes arguments). Sinon, il "
+"risque d'y avoir plusieurs occurrences des mêmes lignes de code dans les "
+"scripts de maintenance du paquet."
+
+#. type: textblock
+#: dh_systemd_enable:110
+msgid ""
+"Note that B<dh_systemd_enable> should be run before B<dh_installinit>. The "
+"default sequence in B<dh> does the right thing, this note is only relevant "
+"when you are calling B<dh_systemd_enable> manually."
+msgstr ""
+"Nota : B<dh_systemd_enable> devrait être exécuté avant B<dh_installinit>. La "
+"séquence par défaut de B<dh> les exécute dans le bon ordre et cette remarque "
+"n'est valable que lorsque B<dh_systemd_enable> est appelé manuellement."
+
+#. type: textblock
+#: dh_systemd_enable:282
+msgid "L<dh_systemd_start(1)>, L<debhelper(7)>"
+msgstr "L<dh_systemd_start(1)>, L<debhelper(7)>"
+
+#. type: textblock
+#: dh_systemd_enable:286 dh_systemd_start:286
+msgid "pkg-systemd-maintainers@lists.alioth.debian.org"
+msgstr "pkg-systemd-maintainers@lists.alioth.debian.org"
+
+#. type: textblock
+#: dh_systemd_start:5
+msgid "dh_systemd_start - start/stop/restart systemd unit files"
+msgstr ""
+"dh_systemd_start - Démarrer/arrêter/redémarrer des fichiers unit de systemd"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_start:19
+msgid ""
+"B<dh_systemd_start> [S<I<debhelper options>>] [B<--restart-after-upgrade>] "
+"[B<--no-stop-on-upgrade>] [S<I<unit file> ...>]"
+msgstr ""
+"B<dh_systemd_start> [S<I<options_de_debhelper>>] [B<--restart-after-"
+"upgrade>] [B<--no-stop-on-upgrade>] [S<I<fichier_unit> ...>]"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_start:23
+msgid ""
+"B<dh_systemd_start> is a debhelper program that is responsible for starting/"
+"stopping or restarting systemd unit files in case no corresponding sysv init "
+"script is available."
+msgstr ""
+"B<dh_systemd_start> est un programme de la suite debhelper chargé de "
+"démarrer, arrêter ou redémarrer les fichiers unit de systemd dans le cas où "
+"aucun script d'init SysV n'est disponible."
+
+#. type: textblock
+#: dh_systemd_start:27
+msgid ""
+"As with B<dh_installinit>, the unit file is stopped before upgrades and "
+"started afterwards (unless B<--restart-after-upgrade> is specified, in which "
+"case it will only be restarted after the upgrade). This logic is not used "
+"when there is a corresponding SysV init script because invoke-rc.d performs "
+"the stop/start/restart in that case."
+msgstr ""
+"Comme avec B<dh_installinit>, le fichier unit est arrêté avant les mises à "
+"jour et redémarré ensuite (sauf si B<--restart-after-upgrade> est spécifié, "
+"dans ce cas il sera uniquement redémarré après la mise à jour). Cette "
+"logique n'est pas utilisée lorsqu'il y a un script init SysV correspondant "
+"parce que c'est invoke-rc.d qui effectue l'arrêt, le démarrage ou le "
+"redémarrage."
+
+# type: =item
+#. type: =item
+#: dh_systemd_start:37
+msgid "B<--restart-after-upgrade>"
+msgstr "B<--restart-after-upgrade>"
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_start:39
+msgid ""
+"Do not stop the unit file until after the package upgrade has been "
+"completed. This is the default behaviour in compat 10."
+msgstr ""
+"N'arrête pas le fichier unit tant que la mise à niveau du paquet n'est pas "
+"terminée. C'est le comportement par défaut dans le niveau de "
+"compatibilité 10."
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_start:42
+msgid ""
+"In earlier compat levels the default was to stop the unit file in the "
+"F<prerm>, and start it again in the F<postinst>."
+msgstr ""
+"Dans les niveaux de compatibilité antérieurs, le comportement par défaut "
+"était d'arrêter le fichier unit dans le F<prerm> et de le redémarrer dans le "
+"F<postinst>."
+
+# type: textblock
+#. type: textblock
+#: dh_systemd_start:59
+msgid "Do not stop service on upgrade."
+msgstr "N'arrête pas le service lors d'une mise à niveau."
+
+#. type: textblock
+#: dh_systemd_start:63
+msgid ""
+"Do not start the unit file after upgrades and after initial installation "
+"(the latter is only relevant for services without a corresponding init "
+"script)."
+msgstr ""
+"Ne démarre pas le fichier unit après les mises à niveau ni après "
+"l'installation initiale (le dernier cas n'est valable que pour les services "
+"n'ayant pas de script init correspondant)."
+
+#. type: textblock
+#: dh_systemd_start:75
+msgid ""
+"Note that B<dh_systemd_start> should be run after B<dh_installinit> so that "
+"it can detect corresponding SysV init scripts. The default sequence in B<dh> "
+"does the right thing, this note is only relevant when you are calling "
+"B<dh_systemd_start> manually."
+msgstr ""
+"Nota : B<dh_systemd_start> devrait être exécuté après B<dh_installinit> pour "
+"pouvoir détecter les scripts init SysV correspondants. La séquence par "
+"défaut de B<dh> les exécute dans le bon ordre et cette remarque n'est "
+"valable que lorsque B<dh_systemd_start> est appelé manuellement."
+
+#. type: textblock
+#: strings-kept-translations.pod:7
+msgid "This compatibility level is open for beta testing; changes may occur."
+msgstr ""
+"Ce niveau de compatibilité est en phase de test ; des changements peuvent "
+"encore survenir."
+
+# type: textblock
+#~ 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 ""
+#~ "Mettre cette variable à B<1> valide le mode verbeux. Debhelper affichera "
+#~ "chaque commande exécutée. Valide aussi les journaux de construction "
+#~ "bavards pour certains systèmes de construction comme autoconf."
+
+#~ msgid "This value affects most B<dh_auto_*> tools."
+#~ msgstr "Cette valeur affecte la plupart des outils de B<dh_auto_*>."
+
+# type: textblock
+#~ msgid ""
+#~ "If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf "
+#~ "in the package build directory. (The tmpfiles.d mechanism is currently "
+#~ "only used by systemd.) Only used in compat levels 10 and below."
+#~ msgstr ""
+#~ "S'il existe, il est installé dans le répertoire de construction du "
+#~ "paquet, sous usr/lib/tmpfiles.d/I<paquet>.conf (les mécanismes tmpfiles.d "
+#~ "ne sont pour l'instant utilisés que par systemd). Cela n'est utilisé que "
+#~ "dans les niveaux de compatibilité 10 et inférieurs."
+
+# type: textblock
+#~ msgid ""
+#~ "If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf "
+#~ "in the package build directory. (The tmpfiles.d mechanism is currently "
+#~ "only used by systemd.)"
+#~ msgstr ""
+#~ "S'il existe, il est installé dans le répertoire de construction du "
+#~ "paquet, sous usr/lib/tmpfiles.d/I<paquet>.conf (les mécanismes tmpfiles.d "
+#~ "ne sont pour l'instant utilisés que par systemd)."
+
+#~ msgid ""
+#~ "This can cause issues with running binaries directly from the build "
+#~ "directories as they might now require a manually set B<LD_LIBRARY_PATH>. "
+#~ "If you need to override this change, we recommend that you try to pass "
+#~ "the B<-DCMAKE_SKIP_RPATH=OFF> option first to see if that fixes the "
+#~ "problem (leaving B<CMAKE_BUILD_RPATH_USE_ORIGIN> at its new default). "
+#~ "This should undo the need for B<LD_LIBRARY_PATH> and avoid the "
+#~ "reproducibility issues on Linux, where B<$ORIGIN> is supported by the "
+#~ "runtime linkers."
+#~ msgstr ""
+#~ "Cela peut provoquer des problèmes avec l'exécution de binaires "
+#~ "directement à partir des répertoires de construction parce qu'ils "
+#~ "pourraient maintenant requérir une configuration manuelle de "
+#~ "B<LD_LIBRARY_PATH>. S'il est nécessaire de réécrire cette modification, "
+#~ "il est recommandé d'essayer de passer d'abord l'option B<-"
+#~ "DCMAKE_SKIP_RPATH=OFF> pour voir si cela corrige le problème (laissant "
+#~ "B<CMAKE_BUILD_RPATH_USE_ORIGIN> à sa nouvelle valeur par défaut). Cela "
+#~ "devrait supprimer la nécessité de B<LD_LIBRARY_PATH> et éviter les "
+#~ "problèmes de reproductibilité dans Linux où B<$ORIGIN> est pris en charge "
+#~ "par les créateurs de liens lors de l'exécution."
+
+#~ 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 ""
+#~ "Historiquement ce fichier était nécessaire pour marquer manuellement les "
+#~ "fichiers comme des conffiles. Cependant il est devenu obsolète de facto "
+#~ "depuis que debhelper détermine automatiquement quels fichiers doivent "
+#~ "être marqués comme conffiles."
+
+#~ msgid ""
+#~ "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 ""
+#~ "Jusqu'à la version 11, ce fichier de contrôle était installé dans le "
+#~ "dossier F<DEBIAN>. À partir de la version 12, ce fichier est ignoré en "
+#~ "silence."
+
+# type: textblock
+#~ msgid ""
+#~ "dh_gconf - install GConf defaults files and register schemas (deprecated)"
+#~ msgstr ""
+#~ "dh_gconf - Installer les fichiers par défaut de GConf et inscrire les "
+#~ "schémas (obsolète)"
+
+# type: textblock
+#~ msgid "B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>]"
+#~ msgstr ""
+#~ "B<dh_gconf> [S<I<options_de_debhelper>>] [B<--priority=>I<priorité>>]"
+
+# type: textblock
+#~ msgid ""
+#~ "B<dh_gconf> is a debhelper program that is responsible for installing "
+#~ "GConf defaults files and registering GConf schemas."
+#~ msgstr ""
+#~ "B<dh_gconf> est un programme de la suite debhelper chargé de "
+#~ "l'installation des fichiers par défaut de GConf et de l'inscription des "
+#~ "schémas GConf."
+
+# type: textblock
+#~ msgid ""
+#~ "An appropriate dependency on gconf2 will be generated in B<${misc:Depends}"
+#~ ">."
+#~ msgstr ""
+#~ "Une dépendance appropriée envers gconf2 sera inscrite dans B<${misc:"
+#~ "Depends}>."
+
+# type: =item
+#~ msgid "debian/I<package>.gconf-defaults"
+#~ msgstr "debian/I<paquet>.gconf-defaults"
+
+# type: textblock
+#~ msgid ""
+#~ "Installed into F<usr/share/gconf/defaults/10_package> in the package "
+#~ "build directory, with I<package> replaced by the package name."
+#~ msgstr ""
+#~ "Les fichiers seront installés dans le répertoire de construction du "
+#~ "paquet sous F<usr/share/gconf/defaults/10_paquet> où le mot I<paquet> "
+#~ "sera remplacé par le nom du paquet."
+
+# type: =item
+#~ msgid "debian/I<package>.gconf-mandatory"
+#~ msgstr "debian/I<paquet>.gconf-mandatory"
+
+# type: textblock
+#~ msgid ""
+#~ "Installed into F<usr/share/gconf/mandatory/10_package> in the package "
+#~ "build directory, with I<package> replaced by the package name."
+#~ msgstr ""
+#~ "Les fichiers seront installés dans le répertoire de construction du "
+#~ "paquet sous F<usr/share/gconf/mandatory/defaults/10_paquet> où le mot "
+#~ "I<paquet> sera remplacé par le nom du paquet."
+
+# type: =item
+#~ msgid "B<--priority> I<priority>"
+#~ msgstr "B<--priority> I<priorité>"
+
+# type: textblock
+#~ msgid ""
+#~ "Use I<priority> (which should be a 2-digit number) as the defaults "
+#~ "priority instead of B<10>. Higher values than ten can be used by derived "
+#~ "distributions (B<20>), CDD distributions (B<50>), or site-specific "
+#~ "packages (B<90>)."
+#~ msgstr ""
+#~ "Détermine la I<priorité> (sous forme d'un nombre à deux chiffres) en "
+#~ "remplacement de la priorité par défaut B<10>. Des valeurs plus élevées "
+#~ "peuvent être utilisées pour les distributions dérivées (B<20>), les "
+#~ "distributions CDD (B<50>), ou les paquets spécifiques à un site (B<90>)."
+
+# type: textblock
+#~ msgid "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
+#~ msgstr "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
+
+# type: textblock
+#~ msgid ""
+#~ "B<dh_clean> should be the last debhelper command run in the B<clean> "
+#~ "target in F<debian/rules>."
+#~ msgstr ""
+#~ "B<dh_clean> doit être la dernière commande debhelper exécutée dans le "
+#~ "bloc B<clean> du fichier F<debian/rules>."
+
+# type: textblock
+#~ msgid ""
+#~ "If there is an upstream F<changelog> file, it will be installed as F<usr/"
+#~ "share/doc/package/changelog> in the package build directory."
+#~ msgstr ""
+#~ "S'il y a un fichier F<changelog> amont, il sera installé dans F<usr/share/"
+#~ "doc/paquet/changelog> du répertoire de construction du paquet."
+
+# type: =item
+#~ msgid "B<--ignore=>I<file>"
+#~ msgstr "B<--ignore=>I<fichier>"
+
+# type: textblock
+#~ msgid ""
+#~ "Ignore the specified file. This can be used if F<debian/> contains a "
+#~ "debhelper config file that a debhelper command should not act on. Note "
+#~ "that F<debian/compat>, F<debian/control>, and F<debian/changelog> can't "
+#~ "be ignored, but then, there should never be a reason to ignore those "
+#~ "files."
+#~ 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/changelog> ne peuvent pas être ignorés, mais il n'existe aucune "
+#~ "raison valable de les ignorer."
+
+# type: textblock
+#~ msgid ""
+#~ "For example, if upstream ships a F<debian/init> that you don't want "
+#~ "B<dh_installinit> to install, use B<--ignore=debian/init>"
+#~ msgstr ""
+#~ "Par exemple, si vous récupérez en amont un fichier F<debian/init> que "
+#~ "vous ne voulez pas que B<dh_installinit> installe, utilisez B<--"
+#~ "ignore=debian/init>"
+
+# type: textblock
+#~ msgid ""
+#~ "Anything in this variable will be prepended to the command line arguments "
+#~ "of all debhelper commands."
+#~ msgstr ""
+#~ "Tout ce qui est indiqué dans cette variable sera passé en argument à "
+#~ "toutes les commandes debhelper."
+
+# type: verbatim
+#~ msgid ""
+#~ "\toverride_dh_fixperms-arch:\n"
+#~ "\t\tdh_fixperms\n"
+#~ "\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\toverride_dh_fixperms-arch:\n"
+#~ "\t\tdh_fixperms\n"
+#~ "\t\tchmod 4755 debian/truc/usr/bin/truc\n"
+#~ "\n"
+
+# type: textblock
+#, 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 ""
+#~ "Dans les scripts, l'item B<#DEBHELPER#> est remplacé par les lignes de "
+#~ "code générées par les autres commandes debhelper."
+
+#~ msgid "DEPRECATED OPTIONS"
+#~ msgstr "OPTIONS OBSOLÈTES"
+
+#~ msgid ""
+#~ "The following options are deprecated. It's much better to use override "
+#~ "targets instead. They are B<not> available in compat 10."
+#~ msgstr ""
+#~ "Les options suivantes sont obsolètes. Il vaut mieux utiliser les cibles "
+#~ "de réécritures à la place. Elles ne sont B<pas> disponibles dans le "
+#~ "niveau de compatibilité 10."
+
+# type: =item
+#~ msgid "B<--until> I<cmd>"
+#~ msgstr "B<--until> I<commande>"
+
+# type: textblock
+#~ msgid "Run commands in the sequence until and including I<cmd>, then stop."
+#~ msgstr ""
+#~ "Exécute les commandes de la suite jusqu'à la I<commande> indiquée, "
+#~ "l'exécute puis s'arrête."
+
+# type: =item
+#~ msgid "B<--before> I<cmd>"
+#~ msgstr "B<--before> I<commande>"
+
+# type: textblock
+#~ msgid "Run commands in the sequence before I<cmd>, then stop."
+#~ msgstr ""
+#~ "Exécute les commandes de la suite situées avant la I<commande> indiquée "
+#~ "puis s'arrête."
+
+# type: =item
+#~ msgid "B<--after> I<cmd>"
+#~ msgstr "B<--after> I<commande>"
+
+# type: textblock
+#~ msgid "Run commands in the sequence that come after I<cmd>."
+#~ msgstr ""
+#~ "Exécute les commandes de la suite situées après la I<commande> indiquée."
+
+# type: =item
+#~ msgid "B<--remaining>"
+#~ msgstr "B<--remaining>"
+
+# type: textblock
+#~ msgid "Run all commands in the sequence that have yet to be run."
+#~ msgstr ""
+#~ "Exécute toutes les commandes de la suite qui n'ont pas encore été "
+#~ "exécutées."
+
+# type: textblock
+#~ 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 ""
+#~ "Dans les options ci-dessus, I<commande> peut être soit le nom complet de "
+#~ "la commande debhelper, soit une sous-chaîne de ce nom. B<dh> cherchera "
+#~ "d'abord, dans la séquence, une commande portant le nom exact pour éviter "
+#~ "toute ambiguïté. Si plusieurs commandes correspondent à la sous-chaîne la "
+#~ "dernière de la séquence sera prise en compte."
+
+# type: textblock
+#, fuzzy
+#~| msgid "dh - debhelper command sequencer"
+#~ msgid "The debhelper maintainers."
+#~ msgstr "dh - Automate de commandes debhelper"
+
+# type: verbatim
+#~ 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 ""
+#~ "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 :"
+
+# type: textblock
+#~ msgid "This control file will be installed into the F<DEBIAN> directory."
+#~ msgstr "Ce fichier de contrôle sera installé dans le répertoire 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 ""
+#~ "À partir du niveau de compatibilité v3, tous les fichiers du répertoire "
+#~ "F<etc/> du paquet construit sont automatiquement marqués en tant que "
+#~ "fichiers de configuration. De ce fait, il est inutile de les énumérer ici."
+
+#~ 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-"
+#~ "doc> will have I<pkg> as main package if the latter exists). If a main "
+#~ "package is found, I<most> of the documentation will be installed into "
+#~ "F<< /usr/share/doc/I<main-pkg> >> by default as recommended by Debian "
+#~ "policy §12.3 since version 3.9.7. Notable exceptions include the "
+#~ "copyright file and changelog files."
+#~ msgstr ""
+#~ "Les outils B<dh_installdocs> et B<dh_installexamples> essaient maintenant "
+#~ "de deviner le « paquet principal » pour un paquet de documentation donné "
+#~ "(par exemple I<paquet-doc> aura I<paquet> comme paquet principal si ce "
+#~ "dernier existe). Si un paquet principal est trouvé, I<la plupart> de la "
+#~ "documentation sera installée par défaut dans F<< /usr/share/doc/I<paquet-"
+#~ "principal> >>, comme recommandé par la Charte Debian §12.3 depuis la "
+#~ "version 3.9.7. Les exceptions à cela incluent les fichiers F<copyright> "
+#~ "et F<changelog>."
+
+#~ 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, "
+#~ "you can make the file executable, and write a program that outputs "
+#~ "whatever content is appropriate for a given situation. When you do so, "
+#~ "the output is not further processed to expand wildcards or strip comments."
+#~ msgstr ""
+#~ "La syntaxe de ces fichiers est volontairement gardée très simple pour les "
+#~ "rendre faciles à lire, comprendre et modifier. Si vous préférez la "
+#~ "puissance et la complexité, vous pouvez rendre le fichier exécutable, et "
+#~ "écrire un programme qui affiche n'importe quel contenu approprié à la "
+#~ "situation. Dans ce cas, la sortie n'est plus traitée pour développer les "
+#~ "jokers (wildcards) ou supprimer les commentaires."
+
+# type: textblock
+#~ msgid "B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [S<I<dir> ...>]"
+#~ msgstr ""
+#~ "B<dh_installdirs> [S<I<options_de_debhelper>>] [B<-A>] "
+#~ "[S<I<répertoire> ...>]"
+
+# type: textblock
+#~ msgid ""
+#~ "By default, the shlibs file generated by this program does not make "
+#~ "packages depend on any particular version of the package containing the "
+#~ "shared library. It may be necessary for you to add some version "
+#~ "dependency information to the shlibs file. If B<-V> is specified with no "
+#~ "dependency information, the current upstream version of the package is "
+#~ "plugged into a dependency that looks like \"I<packagename> B<(E<gt>>= "
+#~ "I<packageversion>B<)>\". Note that in debhelper compatibility levels "
+#~ "before v4, the Debian part of the package version number is also "
+#~ "included. If B<-V> is specified with parameters, the parameters can be "
+#~ "used to specify the exact dependency information needed (be sure to "
+#~ "include the package name)."
+#~ msgstr ""
+#~ "Par défaut, le fichier shlibs produit par ce programme ne rend pas les "
+#~ "paquets dépendants d'une version particulière du paquet contenant la "
+#~ "bibliothèque partagée. Il peut être utile d'ajouter une indication de "
+#~ "dépendance de version au fichier shlibs. Si B<-V> est indiqué sans "
+#~ "préciser de valeur, elle sera fixée comme étant égale à la version du "
+#~ "paquet amont actuel, de la manière suivante : "
+#~ "« I<nom_du_paquet> B<(E<gt>>= I<version_du_paquet>B<)> ». Nota : Dans les "
+#~ "niveaux de compatibilité inférieur à v4, la partie Debian du numéro de "
+#~ "version du paquet est incluse également. Si B<-V> est employé avec un "
+#~ "paramètre, celui-ci peut être utilisé pour indiquer la dépendance requise "
+#~ "exacte (inclure absolument le nom de paquet)."
+
+# type: =item
+#~ msgid "B<dh_makeshlibs>"
+#~ msgstr "B<dh_makeshlibs>"
+
+#~ msgid ""
+#~ "B<dh_testroot> is used to determine if the package has access under at "
+#~ "least the level of root access that it declared it needed via the Rules-"
+#~ "Requires-Root (R³) field."
+#~ msgstr ""
+#~ "B<dh_testroot> est utilisé pour déterminer si le paquet a accès au "
+#~ "minimum au niveau déclaré dans le champ Rules-Requires-Root (R³)."
+
+#~ msgid ""
+#~ "The following is how B<dh_testroot> behaves based on the effective value "
+#~ "of the R³ field:"
+#~ msgstr ""
+#~ "Voici comment B<dh_testroot> se comporte en fonction des valeurs du "
+#~ "champ R³ :"
+
+#~ msgid "\"binary-targets\""
+#~ msgstr "\"binary-targets\""
+
+#~ msgid "\"no\""
+#~ msgstr "\"no\""
+
+#~ msgid "B<dh_testroot> returns successfully."
+#~ msgstr "B<dh_testroot> se termine avec succès."
+
+#~ msgid "Any other value than the above"
+#~ msgstr "N'importe quelle autre valeur que ci-dessus"
+
+#~ msgid ""
+#~ "For backwards compatibility, B<dh_testroot> will consider the absence of "
+#~ "the R³ field as if the R³ field was set to \"binary-targets\"."
+#~ msgstr ""
+#~ "Pour des raisons de compatibilité ascendante, B<dh_testroot> considère "
+#~ "l'absence de champ R³ comme étant un champ de valeur « binary-targets »."
+
+# type: textblock
+#~ msgid ""
+#~ "Note for the first (or only) binary package listed in F<debian/control>, "
+#~ "debhelper will use F<debian/foo> when there's no F<debian/package.foo> "
+#~ "file."
+#~ msgstr ""
+#~ "Nota : pour le premier (ou le seul) paquet binaire énuméré dans le "
+#~ "fichier F<debian/control>, debhelper exploitera F<debian/toto> quand "
+#~ "aucun fichier F<debian/paquet.toto> n'est présent."
+
+#~ msgid ""
+#~ "When the I<Rules-Requires-Root> field is not (effectively) I<binary-"
+#~ "targets>, the directories in F</usr/local> will have ownership root:staff "
+#~ "and the mode will be 02775. These values have been chosen to comply with "
+#~ "the recommendations of the Debian policy for directories in F</usr/local>."
+#~ msgstr ""
+#~ "Lorsque le champ I<Rules-Requires-Root> n'est pas I<binary-targets>, les "
+#~ "répertoires dans F</usr/local> auront root:staff comme propriétaire, et "
+#~ "02755 comme permissions. Ces valeurs ont été choisies pour être conformes "
+#~ "à la Charte Debian."
+
+# type: textblock
+#~ msgid ""
+#~ "When I<Rules-Requires-Root> has an effective value of I<binary-targets>, "
+#~ "the owners, groups and permissions will be preserved with one exception. "
+#~ "If the directory is owned by root:root, then ownership will be reset to "
+#~ "root:staff and mode will be reset to 02775. This is useful, since that is "
+#~ "the group and mode policy recommends for directories in F</usr/local>."
+#~ msgstr ""
+#~ "Lorsque I<Rules-Requires-Root> a une valeur égale à I<binary-targets>, "
+#~ "les propriétaires, groupes et permissions seront préservées à une "
+#~ "exception. Si le répertoire appartient à root:root, alors la propriété "
+#~ "sera réinitialisée à root:staff avec des droits 02775. Cela est utile "
+#~ "depuis que ce sont les valeurs recommandées par la Charte Debian pour les "
+#~ "répertoires de F</usr/local>."
+
+#~ msgid ""
+#~ "B<Caveat>: This option silently does nothing in cmake versions prior to "
+#~ "3.8. Please keep this in mind if your package is regularly backported to "
+#~ "a suite (e.g. stretch-backports) where cmake is older than 3.8."
+#~ msgstr ""
+#~ "B<Avertissement> : dans les versions de cmake inférieures à 3.8, cette "
+#~ "option ne fait rien et ne prévient pas. Veuillez vous en souvenir si "
+#~ "votre paquet est régulièrement rétroporté dans une suite où la version de "
+#~ "cmake est inférieure à 3.8 (par exemple stretch-backport)."
+
+#~ msgid ""
+#~ "List the files that are deliberately not installed in I<any> binary "
+#~ "package. Paths listed in this file are (I<only>) ignored by the check "
+#~ "done via B<--list-missing> (or B<--fail-missing>). However, it is B<not> "
+#~ "a method to exclude files from being installed. Please use B<--exclude> "
+#~ "for that."
+#~ msgstr ""
+#~ "Liste les fichiers qui ne sont installés par I<aucun> paquet binaire. Les "
+#~ "chemins listés dans ce fichier sont (I<uniquement>) ignorés par la "
+#~ "vérification avec B<--list-missing> (ou B<--fail-missing>). Quoi qu'il en "
+#~ "soit, ce n'est B<pas> une méthode pour exclure les fichiers de "
+#~ "l'installation. Veuillez utiliser B<--exclude> pour cela."
+
+#~ msgid ""
+#~ "Please keep in mind that dh_install will B<not> expand wildcards in this "
+#~ "file."
+#~ msgstr ""
+#~ "Veuillez garder à l'esprit que dh_install ne développera B<pas> les "
+#~ "jokers dans ce fichier."
+
+#~ msgid "B<Deprecated>: Please use B<dh_missing --list-missing> instead."
+#~ msgstr ""
+#~ "B<Obsolète> : veuillez utiliser B<dh_missing --list-missing> à la place."
+
+# type: textblock
+#~ msgid ""
+#~ "This option makes B<dh_install> keep track of the files it installs, and "
+#~ "then at the end, compare that list with the files in the source "
+#~ "directory. If any of the files (and symlinks) in the source directory "
+#~ "were not installed to somewhere, it will warn on stderr about that."
+#~ msgstr ""
+#~ "Cette option impose à B<dh_install> de garder la trace des fichiers qu'il "
+#~ "installe et, à la fin, de comparer cette liste aux fichiers du répertoire "
+#~ "source. Si un des fichiers (ou des liens symboliques) du répertoire "
+#~ "source, n'était pas installé quelque part, il le signalerait par un "
+#~ "message sur stderr."
+
+# type: textblock
+#~ msgid ""
+#~ "This may be useful if you have a large package and want to make sure that "
+#~ "you don't miss installing newly added files in new upstream releases."
+#~ msgstr ""
+#~ "Cette option peut être utile dans le cas d'un gros paquet pour lequel on "
+#~ "veut être certain de ne pas oublier l'installation d'un des nouveaux "
+#~ "fichiers récemment ajoutés dans la version."
+
+# type: textblock
+#~ msgid ""
+#~ "Note that files that are excluded from being moved via the B<-X> option "
+#~ "are not warned about."
+#~ msgstr ""
+#~ "Nota : Les fichiers qui sont exclus par l'option B<-X> n'entraînent aucun "
+#~ "message d'erreur."
+
+#~ msgid "B<Deprecated>: Please use B<dh_missing --fail-missing> instead."
+#~ msgstr ""
+#~ "B<Obsolète> : veuillez utiliser B<dh_missing --fail-missing> à la place."
+
+# type: textblock
+#~ msgid ""
+#~ "This option is like B<--list-missing>, except if a file was missed, it "
+#~ "will not only list the missing files, but also fail with a nonzero exit "
+#~ "code."
+#~ msgstr ""
+#~ "Cette option est similaire à B<--list-missing>, sauf que, si un fichier "
+#~ "est oublié, cela produira non seulement un message sur stderr mais "
+#~ "également un échec du programme avec une valeur de retour différente de "
+#~ "zéro."
+
+#~ msgid "Participating in the open beta testing of new compat levels"
+#~ msgstr "Participation au test des nouveaux modes de compatibilité"
+
+#~ msgid ""
+#~ "It is possible to opt-in to the open beta testing of new compat levels. "
+#~ "This is done by setting the compat level to the string \"beta-tester\"."
+#~ msgstr ""
+#~ "Il est possible de choisir les nouveaux modes de compatibilité en test "
+#~ "(« open beta ») en définissant le mode de compatibilité avec la chaîne "
+#~ "« beta-tester »."
+
+#~ msgid ""
+#~ "Packages using this compat level will automatically be upgraded to the "
+#~ "highest compatibility level in open beta. In periods without any open "
+#~ "beta versions, the compat level will be the highest stable compatibility "
+#~ "level."
+#~ msgstr ""
+#~ "Les paquets utilisant ce mode de compatibilité seront automatiquement mis "
+#~ "à jour au mode « open beta » le plus élevé. Dans les périodes sans "
+#~ "version « open beta », le mode de compatibilité sera le mode stable le "
+#~ "plus élevé."
+
+#~ msgid "Please consider the following before opting in:"
+#~ msgstr "Veuillez vous souvenir de ces remarques avant de choisir :"
+
+#~ msgid ""
+#~ "The automatic upgrade in compatibility level may cause the package (or a "
+#~ "feature in it) to stop functioning."
+#~ msgstr ""
+#~ "La mise à jour automatique du mode de compatibilité peut causer l'arrêt "
+#~ "du fonctionnement d'un paquet (ou d'une des fonctionnalités)."
+
+#~ msgid ""
+#~ "Compatibility levels in open beta are still subject to change. We will "
+#~ "try to keep the changes to a minimal once the beta starts. However, "
+#~ "there are no guarantees that the compat will not change during the beta."
+#~ msgstr ""
+#~ "les modes de compatibilité en test « open beta » sont susceptibles de "
+#~ "changer. Nous essaierons de minimiser les changements une fois en « open "
+#~ "beta », mais il n'y a aucune garantie que le mode ne change pas durant "
+#~ "cette phase."
+
+#, fuzzy
+#~| msgid ""
+#~| "We will notify you via debian-devel@lists.debian.org before we start a "
+#~| "new open beta compat level. However, once the beta starts we expect "
+#~| "that you keep yourself up to date on changes to debhelper."
+#~ msgid ""
+#~ "We will notify you via debian-devel-announce@lists.debian.org or debian-"
+#~ "devel@lists.debian.org before we start a new open beta compat level. "
+#~ "However, once the beta starts we expect that you keep yourself up to date "
+#~ "on changes to debhelper for that compat level."
+#~ msgstr ""
+#~ "Nous vous avertirons par la liste debian-devel@lists.debian.org avant de "
+#~ "commencer un nouveau mode de compatibilité. Mais une fois la phase « open "
+#~ "beta » démarrée, vous devrez vous tenir informé des changements dans "
+#~ "debhelper."
+
+#, fuzzy
+#~| msgid ""
+#~| "The \"beta-tester\" compatibility version in unstable and testing will "
+#~| "often be different than the one in stable-backports. Accordingly, it is "
+#~| "not recommended for packages being backported regularly."
+#~ msgid ""
+#~ "The \"beta-tester\" compatibility version in unstable and testing will "
+#~ "often be different than the one in stable. Accordingly, it is not "
+#~ "recommended for packages being backported regularly. Alternatively, "
+#~ "please be sure to add explicit versioned Build-Depends on debhelper, so "
+#~ "you get exactly the compatibility version you expect."
+#~ msgstr ""
+#~ "Le mode de compatibilité « beta-tester » dans unstable et testing sera "
+#~ "souvent différent de celui dans stable-backports. En conséquence, il "
+#~ "n'est pas recommandé pour les paquets souvent rétroportés."
+
+#~ msgid ""
+#~ "You can always opt-out of the beta by resetting the compatibility level "
+#~ "of your package to a stable version."
+#~ msgstr ""
+#~ "Vous pouvez toujours quitter le mode beta en réinitialisant le mode de "
+#~ "compatibilité de votre paquet à une version stable."
+
+#~ msgid "Should you still be interested in the open beta testing, please run:"
+#~ msgstr ""
+#~ "Si vous êtes toujours intéressé par le test « open beta », veuillez "
+#~ "exécuter la commande :"
+
+# type: verbatim
+#~ msgid ""
+#~ " % echo beta-tester > debian/compat\n"
+#~ "\n"
+#~ msgstr ""
+#~ " % echo beta-tester > debian/compat\n"
+#~ "\n"
+
+#~ msgid "You will also need to ensure that debian/control contains:"
+#~ msgstr ""
+#~ "Vous devrez aussi vous assurer que votre fichier debian/control contient :"
+
+# type: verbatim
+#~ msgid ""
+#~ " Build-Depends: debhelper (>= 9.20160815~)\n"
+#~ "\n"
+#~ msgstr ""
+#~ " Build-Depends: debhelper (>= 9.20160815~)\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "To ensure that debhelper knows about the \"beta-tester\" compat level."
+#~ msgstr "Pour vous assurer que debhelper connaît le mode « beta-tester »."
+
+# type: textblock
+#~ msgid "This can be used without a F<debian/compat> file."
+#~ msgstr "Ceci peut être utilisé sans fichier F<debian/compat>."
+
+# type: textblock
+#~ msgid ""
+#~ "B<dh_testroot> simply checks to see if you are root. If not, it exits "
+#~ "with an error. Debian packages must be built as root, though you can use "
+#~ "L<fakeroot(1)>"
+#~ msgstr ""
+#~ "B<dh_testroot> se contente de contrôler si la construction du paquet est "
+#~ "lancée par le superutilisateur. Si ce n'est pas le cas, il retourne une "
+#~ "erreur. Les paquets Debian doivent être construits par le "
+#~ "superutilisateur, éventuellement en utilisant L<fakeroot(1)>"
+
+#~ msgid ""
+#~ "B<dh_installmenu> no longer installs F<menu> files. The F<menu-method> "
+#~ "files are still installed."
+#~ msgstr ""
+#~ "B<dh_installmenu> n'installe plus de fichier de menu. Les fichiers F<menu-"
+#~ "method> sont toujours installés."
+
+#~ msgid ""
+#~ "B<dh> no longer creates a stamp (or log) file to record whether the build "
+#~ "already ran or not. This means that unless upstream's build system "
+#~ "correctly tracks this, the build will be run twice (once for the "
+#~ "\"build\" target and once for the \"binary\" target)."
+#~ msgstr ""
+#~ "B<dh> ne crée plus de fichier témoin (ou de journal) pour savoir si la "
+#~ "construction a déjà eu lieu. Cela signifie que, sauf si le système de "
+#~ "construction amont s'en occupe, celle-ci sera effectuée deux fois (une "
+#~ "première pour la cible « build », une seconde pour la cible « binary »)."
+
+#~ msgid ""
+#~ "On the other hand, this means that rebuild without cleaning (e.g. B<dpkg-"
+#~ "buildpackage -nc>) will behave as most people would expect."
+#~ msgstr ""
+#~ "D'un autre côté, cela signifie que la reconstruction sans nettoyage "
+#~ "(« clean », par exemple B<dpkg-buildpackage -nc>) se comportera comme "
+#~ "attendu."
+
+#~ msgid ""
+#~ "In compat 11, this file is no longer installed the format has been "
+#~ "deprecated. Please migrate to a desktop file instead."
+#~ msgstr ""
+#~ "En compat 11, ce fichier n'est plus installé car le format a été rendu "
+#~ "obsolète. Veuillez migrer vers un fichier desktop à la place."
+
+#~ msgid ""
+#~ "B<dh_installdocs> now installs user-supplied documentation (e.g. debian/"
+#~ "I<package>.docs) into F</usr/share/doc/mainpackage> rather than F</usr/"
+#~ "share/doc/package> by default as recommended by Debian Policy 3.9.7."
+#~ msgstr ""
+#~ "B<dh_installdocs> installe maintenant la documentation fournie pour "
+#~ "l'utilisateur (p. ex. debian/I<paquet>.docs) dans F</usr/share/doc/"
+#~ "paquet_principal> plutôt que dans F</usr/share/doc/paquet>, comme "
+#~ "recommandé par la charte Debian 3.9.7."
+
+#~ msgid ""
+#~ "If you need the old behaviour, it can be emulated by using the B<--"
+#~ "mainpackage> option."
+#~ msgstr ""
+#~ "Si vous avez besoin de l'ancien comportement, il peut être simulé en "
+#~ "utilisant l'option B<--mainpackage>."
+
+#~ msgid "Please remember to check/update your doc-base files."
+#~ msgstr "Veuillez vérifier et mettre à jour vos fichiers doc-base."
+
+#~ msgid ""
+#~ "In compat 11 (or later), these will be installed into F</usr/share/doc/"
+#~ "mainpackage>. Previously it would be F</usr/share/doc/package>."
+#~ msgstr ""
+#~ "En compat 11 (ou supérieure), ils seront installés dans F</usr/share/doc/"
+#~ "paquet_principal>. Précédemment, c'était dans F</usr/share/doc/paquet>."
+
+# type: textblock
+#~ msgid "Do not stop init script on upgrade."
+#~ msgstr "N'arrête pas le script init lors d'une mise à jour."
+
+#~ msgid ""
+#~ "dh_auto_test does not run the test suite when a package is being cross "
+#~ "compiled."
+#~ msgstr ""
+#~ "B<dh_auto_test> n'exécute pas le jeu de tests lorsqu'un paquet est "
+#~ "compilé de façon croisée (« cross-compile »)."
+
+# type: textblock
+#~ msgid ""
+#~ "This used to be a smarter version of the B<-a> flag, but the B<-a> flag "
+#~ "is now equally smart."
+#~ msgstr ""
+#~ "Cette option était plus intelligente que l'option B<-a>, mais l'option B<-"
+#~ "a> est maintenant tout aussi intelligente."
+
+#~ msgid ""
+#~ "If your package uses autotools and you want to freshen F<config.sub> and "
+#~ "F<config.guess> with newer versions from the B<autotools-dev> package at "
+#~ "build time, you can use some commands provided in B<autotools-dev> that "
+#~ "automate it, like this."
+#~ msgstr ""
+#~ "Si le paquet utilise « autotools » et que vous voulez rafraîchir les "
+#~ "F<config.sub> et les F<config.guess> avec des nouvelles versions issues "
+#~ "du paquet B<autotools-dev> lors de la compilation, il est possible "
+#~ "d'utiliser certaines commandes fournies dans B<autotools-dev> afin "
+#~ "d'automatiser cette tâche, comme ci-dessous :"
+
+# type: verbatim
+#~ msgid ""
+#~ "\t#!/usr/bin/make -f\n"
+#~ "\t%:\n"
+#~ "\t\tdh $@ --with autotools_dev\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\t#!/usr/bin/make -f\n"
+#~ "\t%:\n"
+#~ "\t\tdh $@ --with autotools_dev\n"
+#~ "\n"
+
+# type: textblock
+#~ msgid ""
+#~ "Code is added to the F<preinst> and F<postinst> to handle the upgrade "
+#~ "from the old B<udev> rules file location."
+#~ msgstr ""
+#~ "Des lignes de code sont ajoutées au fichiers de maintenance F<preinst> et "
+#~ "F<postinst> pour prendre en charge la mise à jour depuis l'ancien "
+#~ "emplacement des fichiers de règles B<udev>."
+
+# type: textblock
+#~ msgid "Do not modify F<preinst>/F<postinst> scripts."
+#~ msgstr ""
+#~ "Empêche la modification des scripts de maintenance du paquet F<preinst> "
+#~ "et F<postinst>."
+
+# type: textblock
+#~ msgid ""
+#~ "Note that this option behaves significantly different in debhelper "
+#~ "compatibility levels 4 and below. Instead of specifying the name of a "
+#~ "debug package to put symbols in, it specifies a package (or packages) "
+#~ "which should have separated debug symbols, and the separated symbols are "
+#~ "placed in packages with B<-dbg> added to their name."
+#~ msgstr ""
+#~ "Nota : cette option se comporte de façon sensiblement différente dans les "
+#~ "niveaux de compatibilité 4 et inférieurs de debhelper. Au lieu d'indiquer "
+#~ "le nom d'un paquet de mise au point où placer les symboles (cas de la "
+#~ "v5), l'option indique (cas de la v4 et inférieure) le ou les paquets d'où "
+#~ "proviennent les symboles de mise au point. Les symboles sont alors placés "
+#~ "dans des paquets, suffixés par B<-dbg>."
+
+#, fuzzy
+#~| msgid ""
+#~| "The creation of automatic \"ddebs\" can also be prevented by adding "
+#~| "B<noddebs> to the B<DEB_BUILD_OPTIONS> environment variable."
+#~ msgid ""
+#~ "The automatic creation of debug symbol packages can also be prevented by "
+#~ "adding B<noautodbgsym> to the B<DEB_BUILD_OPTIONS> environment variable."
+#~ msgstr ""
+#~ "La création automatique des « ddebs » peut aussi être annulée en ajoutant "
+#~ "B<noddebs> à la variable d'environnement B<DEB_BUILD_OPTIONS>."
+
+#~ msgid "dh_desktop - deprecated no-op"
+#~ msgstr "dh_desktop - Obsolète, ne pas l'utiliser"
+
+# type: textblock
+#~ msgid "B<dh_desktop> [S<I<debhelper options>>]"
+#~ msgstr "B<dh_desktop> [I<options_de_debhelper>]"
+
+#~ msgid ""
+#~ "B<dh_desktop> was a debhelper program that registers F<.desktop> files. "
+#~ "However, it no longer does anything, and is now deprecated."
+#~ msgstr ""
+#~ "B<dh_desktop> était un programme de la suite debhelper chargé de "
+#~ "l'inscription des fichiers F<.desktop>. Toutefois, il n'est plus utilisé "
+#~ "et est maintenant obsolète."
+
+# type: textblock
+#~ msgid ""
+#~ "If a package ships F<desktop> files, they just need to be installed in "
+#~ "the correct location (F</usr/share/applications>) and they will be "
+#~ "registered by the appropriate tools for the corresponding desktop "
+#~ "environments."
+#~ msgstr ""
+#~ "Si un paquet comporte des fichiers F<desktop>, ils ont seulement besoin "
+#~ "d'être installés dans l'emplacement adéquat (F</usr/share/applications>) "
+#~ "et ils seront inscrits, par les outils appropriés, pour les "
+#~ "environnements de bureau correspondants."
+
+# type: textblock
+#~ msgid "Ross Burton <ross@burtonini.com>"
+#~ msgstr "Ross Burton <ross@burtonini.com>"
+
+# type: textblock
+#~ msgid "dh_undocumented - undocumented.7 symlink program (deprecated no-op)"
+#~ msgstr ""
+#~ "dh_undocumented - Programme de création de liens symboliques vers "
+#~ "« undocumented.7 » (obsolète, ne pas l'utiliser)"
+
+# type: textblock
+#~ msgid "Do not run!"
+#~ msgstr "Ne pas l'utiliser !"
+
+# type: textblock
+#~ msgid ""
+#~ "This program used to make symlinks to the F<undocumented.7> man page for "
+#~ "man pages not present in a package. Debian policy now frowns on use of "
+#~ "the F<undocumented.7> man page, and so this program does nothing, and "
+#~ "should not be used."
+#~ msgstr ""
+#~ "Ce programme est utilisé pour créer des liens symboliques vers la page de "
+#~ "manuel F<undocumented.7> lorsque la page de manuel du paquet n'existe "
+#~ "pas. La Charte Debian désapprouve l'utilisation de F<undocumented.7>. De "
+#~ "ce fait, ce programme ne fait rien et de doit pas être utilisé."
+
+# type: textblock
+#~ msgid ""
+#~ "It also adds a call to ldconfig in the F<postinst> and F<postrm> scripts "
+#~ "(in v3 mode and above only) to any packages in which it finds shared "
+#~ "libraries."
+#~ msgstr ""
+#~ "Ce programme ajoute également un appel à ldconfig dans les scripts de "
+#~ "maintenance F<postinst> et F<postrm> (en mode v3 et suivants seulement) "
+#~ "pour tous les paquets où des bibliothèques partagées ont été trouvées."
+
+#~ msgid "dh_scrollkeeper - deprecated no-op"
+#~ msgstr "dh_scrollkeeper - Obsolète, ne pas l'utiliser"
+
+# type: textblock
+#~ msgid ""
+#~ "B<dh_scrollkeeper> [S<I<debhelper options>>] [B<-n>] [S<I<directory>>]"
+#~ msgstr ""
+#~ "B<dh_scrollkeeper> [I<options_de_debhelper>] [B<-n>] [I<répertoire>]"
+
+# type: textblock
+#~ msgid ""
+#~ "B<dh_scrollkeeper> was a debhelper program that handled registering OMF "
+#~ "files for ScrollKeeper. However, it no longer does anything, and is now "
+#~ "deprecated."
+#~ msgstr ""
+#~ "B<dh_scrollkeeper> était le programme de la suite debhelper chargé de la "
+#~ "maintenance, par ScrollKeeper, des inscriptions des fichiers OMF. "
+#~ "Toutefois, comme il ne sert plus à rien, il est devenu obsolète."
+
+# type: textblock
+#~ msgid "dh_suidregister - suid registration program (deprecated)"
+#~ msgstr "dh_suidregister - Programme d'inscription suid (obsolète)"
+
+# type: textblock
+#~ msgid ""
+#~ "This program used to register suid and sgid files with "
+#~ "L<suidregister(1)>, but with the introduction of L<dpkg-statoverride(8)>, "
+#~ "registration of files in this way is unnecessary, and even harmful, so "
+#~ "this program is deprecated and should not be used."
+#~ msgstr ""
+#~ "Ce programme était utilisé pour l'inscription des fichiers suid et sgid "
+#~ "avec L<suidregister(1)> mais l'introduction de L<dpkg-statoverride(8)> a "
+#~ "rendu l'inscription de ces fichiers inutile et même néfaste. De ce fait, "
+#~ "ce programme est obsolète et ne doit pas être employé."
+
+# type: =head1
+#~ msgid "CONVERTING TO STATOVERRIDE"
+#~ msgstr "CONVERSION EN STATOVERRIDE"
+
+# type: textblock
+#~ msgid ""
+#~ "Converting a package that uses this program to use the new statoverride "
+#~ "mechanism is easy. Just remove the call to B<dh_suidregister> from "
+#~ "F<debian/rules>, and add a versioned conflicts into your F<control> file, "
+#~ "as follows:"
+#~ msgstr ""
+#~ "Il est facile de convertir un paquet, qui utilise B<dh_suidregister>, au "
+#~ "nouveau mécanisme de statoverride. Il suffit de supprimer l'appel à "
+#~ "B<dh_suidregister> dans F<debian/rules> et d'ajouter une gestion des "
+#~ "conflits de versions dans le fichier F<control> de la façon suivante :"
+
+# type: verbatim
+#~ msgid ""
+#~ " Conflicts: suidmanager (<< 0.50)\n"
+#~ "\n"
+#~ msgstr ""
+#~ " Conflicts: suidmanager (<< 0.50)\n"
+#~ "\n"
+
+# type: textblock
+#~ msgid ""
+#~ "The conflicts is only necessary if your package used to register things "
+#~ "with suidmanager; if it did not, you can just remove the call to this "
+#~ "program from your rules file."
+#~ msgstr ""
+#~ "Cette indication de conflits n'est nécessaire que si le paquet inscrivait "
+#~ "des éléments avec suidmanager. En dehors de ce cas, il suffit d'enlever "
+#~ "l'appel à B<dh_suidregister> du fichier « rules »."
+
+#~ msgid "comment"
+#~ msgstr "commentaire"
+
+#~ msgid ""
+#~ "Once the Debian archive supports ddebs, debhelper will generate ddebs by "
+#~ "default. Until then, this option does nothing except to allow you to pre-"
+#~ "emptively disable ddebs if you know the generated ddebs will not work for "
+#~ "your package."
+#~ msgstr ""
+#~ "Lorsque l'archive Debian prendra en charge les ddebs, debhelper, génèrera "
+#~ "les ddebs par défaut. D'ici là, cette option ne fait rien, à part vous "
+#~ "permettre de désactiver les ddebs en prévention, si vous savez que les "
+#~ "ddebs générés ne fonctionneront pas pour votre paquet."
+
+#~ msgid ""
+#~ "If you want to test the ddebs feature, you can set the environment "
+#~ "variable I<DH_BUILD_DDEBS> to 1. Keep in mind that the Debian archive "
+#~ "does B<not> accept them yet. This variable is only a temporary safeguard "
+#~ "and will be removed once the archive is ready to accept ddebs."
+#~ msgstr ""
+#~ "Si vous voulez essayer la fonctionnalité des ddebs, vous pouvez "
+#~ "positionner la variable d'environnement I<DH_BUILD_DDEBS> à B<1>. "
+#~ "Souvenez vous que l'archive Debian ne les accepte B<pas encore>. Cette "
+#~ "variable est seulement un garde-fou temporaire et sera supprimée une fois "
+#~ "l'archive prête."
+
+# type: verbatim
+#~ msgid ""
+#~ " my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
+#~ " #DEBHELPER#\n"
+#~ " EOF\n"
+#~ " system ($temp) / 256 == 0\n"
+#~ " \tor die \"Problem with debhelper scripts: $!\";\n"
+#~ "\n"
+#~ msgstr ""
+#~ " my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
+#~ " #DEBHELPER#\n"
+#~ " EOF\n"
+#~ " system ($temp) / 256 == 0\n"
+#~ " \tor die \"Problème avec le script de debhelper : $!\";\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Packages that support multiarch are detected, and a Pre-Dependency on "
+#~ "multiarch-support is set in ${misc:Pre-Depends} ; you should make sure to "
+#~ "put that token into an appropriate place in your debian/control file for "
+#~ "packages supporting multiarch."
+#~ msgstr ""
+#~ "Les paquets prenant en charge le multiarchitecture sont détectés et une "
+#~ "prédépendance sur B<multiarch-support> est placée dans B<${misc:Pre-"
+#~ "Depends}> ; il faut s'assurer que cet item a été placé au bon endroit "
+#~ "dans le fichier F<debian/control> pour les paquet prenant en charge le "
+#~ "multiarchitecture."
+
# type: textblock
#~ msgid "Sets the priority string of the F<rules.d> symlink. Default is 60."
#~ msgstr ""
@@ -8452,8 +15015,8 @@ msgstr "Andrew Stribblehill <ads@debian.org>"
#~ "B<dh_python> [S<I<debhelper options>>] [B<-n>] [B<-V> I<version>] "
#~ "[S<I<module dirs> ...>]"
#~ msgstr ""
-#~ "B<dh_python> [S<I<options de debhelper>>] [B<-n>] [B<-V> I<version>] "
-#~ "[S<I<répertoires de module> ...>]"
+#~ "B<dh_python> [S<I<options_de_debhelper>>] [B<-n>] [B<-V> I<version>] "
+#~ "[S<I<répertoires de module> ...>]"
# type: textblock
#~ msgid ""
@@ -8634,7 +15197,7 @@ msgstr "Andrew Stribblehill <ads@debian.org>"
# type: textblock
#~ msgid "B<dh_installmime> [S<I<debhelper options>>] [B<-n>]"
-#~ msgstr "B<dh_installmime> [I<options de debhelper>] [B<-n>]"
+#~ msgstr "B<dh_installmime> [I<options_de_debhelper>] [B<-n>]"
# type: textblock
#~ msgid ""
@@ -8672,14 +15235,14 @@ msgstr "Andrew Stribblehill <ads@debian.org>"
# type: textblock
#~ msgid ""
#~ "If no upstart job file is installed in the target directory when "
-#~ "B<dh_installinit --onlyscripts> is called, this program will assume that "
+#~ "B<dh_installinit --only-scripts> is called, this program will assume that "
#~ "an init script is being installed and not provide the compatibility "
#~ "symlinks or upstart dependencies."
#~ msgstr ""
#~ "Si aucun fichier de tâche upstart n'est installé dans le répertoire cible "
-#~ "quand B<dh_installinit --onlyscripts> est invoqué, ce programme considère "
-#~ "qu'un script init est en cours d'installation et ne fournit pas les liens "
-#~ "symboliques de compatibilité, ni de dépendances envers upstart."
+#~ "quand B<dh_installinit --only-scripts> est invoqué, ce programme "
+#~ "considère qu'un script init est en cours d'installation et ne fournit pas "
+#~ "les liens symboliques de compatibilité, ni de dépendances envers upstart."
# type: textblock
#~ msgid "The inverse of B<--with>, disables using the given addon."
@@ -8879,10 +15442,6 @@ msgstr "Andrew Stribblehill <ads@debian.org>"
#~ "\n"
# type: =head2
-#~ msgid "Debhelper compatibility levels"
-#~ msgstr "Niveaux de compatibilité de debhelper"
-
-# type: =head2
#~ msgid "Other notes"
#~ msgstr "Autres remarques"
@@ -8975,7 +15534,7 @@ msgstr "Andrew Stribblehill <ads@debian.org>"
#~ msgid ""
#~ "B<dh_testversion> [S<I<debhelper options>>] [I<operator>] [I<version>]"
#~ msgstr ""
-#~ "B<dh_testversion> [I<options de debhelper>] [I<opérateur>] [I<version>]"
+#~ "B<dh_testversion> [I<options_de_debhelper>] [I<opérateur>] [I<version>]"
# type: textblock
#~ msgid ""
diff --git a/man/po4a/po/ja.po b/man/po4a/po/ja.po
new file mode 100644
index 00000000..722d12d5
--- /dev/null
+++ b/man/po4a/po/ja.po
@@ -0,0 +1,12624 @@
+# Copyright (C) 2013-2014 Debian JP Project <debian-doc@debian.or.jp>
+# This file is distributed under the same license as the debhelper package.
+# Takahide Nojima <nozzy123nozzy@gmail.com>, 2012.
+# Hideki Yamane <henrich@debian.or.jp>, 2012-2014, 2016
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: debhelper 9.20141107\n"
+"POT-Creation-Date: 2023-08-14 19:10+0000\n"
+"PO-Revision-Date: 2016-09-17 20:45+0900\n"
+"Last-Translator: Hideki Yamane <henrich@debian.org>\n"
+"Language-Team: Debian JP Project <debian-doc@debian.or.jp>\n"
+"Language: Japanease\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Last-Reviewer: Hideki Yamane <henrich@debian.org>\n"
+
+#. type: =head1
+#: debhelper.pod:3 debhelper-compat-upgrade-checklist.pod:3
+#: debhelper-obsolete-compat.pod:1 dh:3 dh_auto_build:3 dh_auto_clean:3
+#: dh_auto_configure:3 dh_auto_install:3 dh_auto_test:3 dh_bugfiles:3
+#: dh_builddeb:5 dh_clean:3 dh_compress:3 dh_dwz:3 dh_fixperms:3
+#: dh_gencontrol:3 dh_icons:3 dh_install:3 dh_installcatalogs:3
+#: dh_installchangelogs:3 dh_installcron:3 dh_installdeb:3 dh_installdebconf:3
+#: dh_installdirs:3 dh_installdocs:5 dh_installemacsen:3 dh_installexamples:5
+#: dh_installifupdown:3 dh_installinfo:3 dh_installinit:3 dh_installinitramfs:3
+#: dh_installlogcheck:3 dh_installlogrotate:3 dh_installman:3
+#: dh_installmanpages:3 dh_installmenu:3 dh_installmime:3 dh_installmodules:3
+#: dh_installpam:3 dh_installppp:3 dh_installudev:3 dh_installwm:3
+#: dh_installxfonts:3 dh_link:3 dh_lintian:3 dh_listpackages:3 dh_makeshlibs:3
+#: dh_md5sums:3 dh_movefiles:3 dh_perl:3 dh_prep:3 dh_shlibdeps:3 dh_strip:3
+#: dh_testdir:3 dh_testroot:5 dh_usrlocal:5 dh_systemd_enable:3
+#: dh_systemd_start:3
+msgid "NAME"
+msgstr "名前"
+
+#. type: textblock
+#: debhelper.pod:5
+msgid "debhelper - the debhelper tool suite"
+msgstr "debhelper - debhelper 関連ツール群"
+
+#. type: =head1
+#: debhelper.pod:7 debhelper-compat-upgrade-checklist.pod:7
+#: debhelper-obsolete-compat.pod:5 dh:22 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_gencontrol:16 dh_icons:16 dh_install:15 dh_installcatalogs:17
+#: dh_installchangelogs:16 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:18
+#: 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 "書式"
+
+#. type: textblock
+#: debhelper.pod:9
+msgid ""
+"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<--no-act>] [B<-p>I<package>] [B<-"
+"N>I<package>] [B<-P>I<tmpdir>]"
+msgstr ""
+"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<--no-act>] [B<-p>I<package>] [B<-"
+"N>I<package>] [B<-P>I<tmpdir>]"
+
+#. type: =head1
+#: debhelper.pod:11 debhelper-compat-upgrade-checklist.pod:17 dh:26
+#: 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_gencontrol:20 dh_icons:20 dh_install:19
+#: dh_installcatalogs:21 dh_installchangelogs:20 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:22
+#: 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 "説明"
+
+#. type: textblock
+#: debhelper.pod:13
+msgid ""
+"Debhelper is used to help you build a Debian package. The philosophy behind "
+"debhelper is to provide a collection of small, simple, and easily understood "
+"tools that are used in F<debian/rules> to automate various common aspects of "
+"building a package. This means less work for you, the packager. It also, to "
+"some degree means that these tools can be changed if Debian policy changes, "
+"and packages that use them will require only a rebuild to comply with the "
+"new policy."
+msgstr ""
+"debhelper は、Debian パッケージのビルドを容易にするために使われます。"
+"debhelper の根底にある考えは「パッケージビルド時の各種の共通的な作業を自動化"
+"するために F<debian/rules> で用いられている、小さく単純で、容易に理解可能な"
+"ツールをまとめて提供すること」です。つまり、あなた=パッケージを作成する人の"
+"負担を減らします。さらに、Debian ポリシーが変わった場合にはこのツール群を多少"
+"変更さえすれば、debhelper を使っているパッケージが新しいポリシーに適合するの"
+"に必要になるのは、再ビルドだけになります。"
+
+#. type: textblock
+#: debhelper.pod:21
+msgid ""
+"A typical F<debian/rules> file that uses debhelper will call several "
+"debhelper commands in sequence, or use L<dh(1)> to automate this process. "
+"Examples of rules files that use debhelper are in F</usr/share/doc/debhelper/"
+"examples/>"
+msgstr ""
+"debhelper を利用している典型的な F<debian/rules> ファイルは、複数の "
+"debhelper コマンドを順番に呼び出しているか、L<dh(1)> を使って一連の処理を自動"
+"化しています。debhelper を使った rules ファイルの例は F</usr/share/doc/"
+"debhelper/examples/> にあります。"
+
+# maint-guide -> maint-guide-ja
+#. type: textblock
+#: debhelper.pod:25
+msgid ""
+"To create a new Debian package using debhelper, you can just copy one of the "
+"sample rules files and edit it by hand. Or you can try the B<dh-make> "
+"package, which contains a L<dh_make|dh_make(1)> command that partially "
+"automates the process. For a more gentle introduction, the B<maint-guide> "
+"Debian package contains a tutorial about making your first package using "
+"debhelper."
+msgstr ""
+"debhelper を使って Debian パッケージを作成するには、サンプルの rules ファイル"
+"のどれかをコピーして手で修正するだけです。あるいは B<dh-make> パッケージを利"
+"用してみてください。このパッケージには部分的に作業を自動化してくれる "
+"L<dh_make|dh_make(1)> コマンドが含まれています。よりやさしい案内については、"
+"B<maint-guide-ja> パッケージに debhelper を使って初めてパッケージを作る人向け"
+"のチュートリアルが含まれています。"
+
+#. type: textblock
+#: debhelper.pod:31
+msgid ""
+"Except where the tool explicitly denotes otherwise, all of the debhelper "
+"tools assume that they run from the root directory of an unpacked source "
+"package. This is so they can locate find files like F<debian/control> when "
+"needed."
+msgstr ""
+
+#. type: =head1
+#: debhelper.pod:36
+msgid "DEBHELPER COMMANDS"
+msgstr "DEBHELPER コマンド"
+
+#. type: textblock
+#: debhelper.pod:38
+msgid ""
+"Here is the list of debhelper commands you can use. See their man pages for "
+"additional documentation."
+msgstr ""
+"以下が利用可能な debhelper コマンドの一覧です。詳細は、各コマンド付属の man "
+"ページを参照してください。"
+
+#. type: textblock
+#: debhelper.pod:43
+msgid "#LIST#"
+msgstr "#LIST#"
+
+#. type: =head2
+#: debhelper.pod:47
+msgid "Deprecated Commands"
+msgstr "廃止されたコマンド一覧"
+
+#. type: textblock
+#: debhelper.pod:49
+msgid "A few debhelper commands are deprecated and should not be used."
+msgstr "廃止されており、使うべきでない debhelper コマンド一覧"
+
+#. type: textblock
+#: debhelper.pod:53
+msgid "#LIST_DEPRECATED#"
+msgstr "#LIST_DEPRECATED#"
+
+#. type: =head2
+#: debhelper.pod:57
+msgid "Other Commands"
+msgstr "他のコマンド"
+
+#. type: textblock
+#: debhelper.pod:59
+msgid ""
+"If a program's name starts with B<dh_>, and the program is not on the above "
+"lists, then it is not part of the debhelper package, but it should still "
+"work like the other programs described on this page."
+msgstr ""
+"プログラムの名前が B<dh_> で始まり、先のリストにないものは、debhelper パッ"
+"ケージ付属のプログラムではありません。しかし、このような名前を持つコマンド"
+"は、このページに記述されている他のプログラムのように動作するべきです。"
+
+#. type: =head1
+#: debhelper.pod:63
+msgid "DEBHELPER CONFIG FILES"
+msgstr "DEBHELPER 設定ファイル"
+
+#. type: textblock
+#: debhelper.pod:65
+msgid ""
+"Many debhelper commands make use of files in F<debian/> to control what they "
+"do. Besides the common F<debian/changelog> and F<debian/control>, which are "
+"in all packages, not just those using debhelper, some additional files can "
+"be used to configure the behavior of specific debhelper commands. These "
+"files are typically named debian/I<package>.foo (where I<package> of course, "
+"is replaced with the package that is being acted on)."
+msgstr ""
+"debhelper のコマンドの多くは、どのように動作するかについて F<debian/> ディレ"
+"クトリ以下にあるファイルを用います。共通の F<debian/changelog> や F<debian/"
+"control> はすべてのパッケージに存在していますが、これに加えて特定の "
+"debhelper コマンドの動作を制御できる追加ファイルがあります。これらのファイル"
+"は、大抵 debian/I<package>.foo というファイル名です (もちろん、I<package> は"
+"処理しようとしているパッケージ名に変えてください)。"
+
+#. type: textblock
+#: debhelper.pod:72
+msgid ""
+"For example, B<dh_installdocs> uses files named F<debian/package.docs> to "
+"list the documentation files it will install. See the man pages of "
+"individual commands for details about the names and formats of the files "
+"they use. Generally, these files will list files to act on, one file per "
+"line. Some programs in debhelper use pairs of files and destinations or "
+"slightly more complicated formats."
+msgstr ""
+"例えば、B<dh_installdocs> では、インストールするドキュメントの一覧を得るのに "
+"F<debian/package.docs> という名前のファイルを利用します。各コマンドが使うファ"
+"イルの名前とフォーマットについては、詳細はコマンドの man ページを参照してくだ"
+"さい。大抵、これらのファイルでは1行ごとに処理するファイルを1つずつ列挙しま"
+"す。いくつかの debhelper プログラムでは、ファイルと宛先の組み合わせや、もう"
+"少々複雑なフォーマットなどを使います。"
+
+#. type: textblock
+#: debhelper.pod:79
+msgid ""
+"Note for the first (or only) binary package listed in F<debian/control>, "
+"debhelper will use F<debian/foo> when there's no F<debian/I<package>.foo> "
+"file. However, it is often a good idea to keep the F<I<package>.> prefix as "
+"it is more explicit. The primary exception to this are files that debhelper "
+"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 ""
+
+#. type: textblock
+#: debhelper.pod:87
+msgid ""
+"In some rare cases, you may want to have different versions of these files "
+"for different architectures or OSes. If files named debian/I<package>.foo."
+"I<ARCH> or debian/I<package>.foo.I<OS> exist, where I<ARCH> and I<OS> are "
+"the same as the output of \"B<dpkg-architecture -qDEB_HOST_ARCH>\" / "
+"\"B<dpkg-architecture -qDEB_HOST_ARCH_OS>\", then they will be used in "
+"preference to other, more general files."
+msgstr ""
+"稀ではありますが、これらのファイルを、異なるアーキテクチャ/異なる OS 用にそ"
+"れぞれ用意したい場合があります。ファイル名が debian/I<package>.foo.I<ARCH> "
+"や、debian/I<package>.foo.I<OS> のものが存在すると、\"B<dpkg-architecture -"
+"qDEB_HOST_ARCH>\" / \"B<dpkg-architecture -qDEB_HOST_ARCH_OS>\" でそれぞれ指"
+"定した I<ARCH> と I<OS> を含むものが、通常のファイルよりも優先的に使われま"
+"す。"
+
+#. type: textblock
+#: debhelper.pod:94
+msgid ""
+"Mostly, these config files are used to specify lists of various types of "
+"files. Documentation or example files to install, files to move, and so on. "
+"When appropriate, in cases like these, you can use standard shell wildcard "
+"characters (B<?> and B<*> and B<[>I<..>B<]> character classes) in the "
+"files. You can also put comments in these files; lines beginning with B<#> "
+"are ignored."
+msgstr ""
+"多くの場合、これらの設定ファイルは、いろいろな種類のファイルを列挙して指定す"
+"るのに使われます。例えばインストールすべきドキュメントやサンプルファイルで"
+"あったり、移動すべきファイルだったり等となります。シェルのワイルドカード文字"
+"列 (B<?>, B<*> 及び B<[>I<..>B<]> 文字クラス) をファイルに含める事ができ、状"
+"況次第ではこちらが望ましい事もあります。また、行頭がB <#> で始まる行は無視さ"
+"れる事を利用して、コメントを記載できます。"
+
+#. type: textblock
+#: debhelper.pod:101
+msgid ""
+"The syntax of these files is intentionally kept very simple to make them "
+"easy to read, understand, and modify."
+msgstr ""
+
+#. type: =head2
+#: debhelper.pod:104
+#, fuzzy
+#| msgid "Comments are ignored in debhelper config files."
+msgid "Substitutions in debhelper config files"
+msgstr "debhelper 設定ファイルでのコメントは無視されるようになりました。"
+
+#. type: textblock
+#: debhelper.pod:106
+msgid ""
+"In compatibility level 13 and later, it is possible to use simple "
+"substitutions in debhelper config files for the following tools:"
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:111 debhelper.pod:115 debhelper.pod:119 debhelper.pod:123
+#: debhelper.pod:127 debhelper.pod:131 debhelper.pod:135 debhelper.pod:139
+#: debhelper.pod:143 debhelper.pod:147 debhelper.pod:151 debhelper.pod:155
+#: debhelper.pod:159 debhelper.pod:247 debhelper.pod:252
+msgid "*"
+msgstr "*"
+
+#. type: textblock
+#: debhelper.pod:113
+msgid "dh_clean"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:117
+msgid "dh_install"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:121
+msgid "dh_installcatalogs"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:125
+msgid "dh_installdeb"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:129
+msgid "dh_installdirs"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:133
+msgid "dh_installdocs"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:137
+msgid "dh_installexamples"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:141
+msgid "dh_installinfo"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:145
+msgid "dh_installman"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:149
+msgid "dh_installwm"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:153
+msgid "dh_link"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:157
+msgid "dh_missing"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:161
+msgid "dh_ucf"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:165
+msgid ""
+"All substitution variables are of the form I<${foo}> and the braces are "
+"mandatory. Variable names are case-sensitive and consist of alphanumerics "
+"(a-zA-Z0-9), hyphens (-), underscores (_), and colons (:). The first "
+"character must be an alphanumeric."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:170
+msgid ""
+"If you need a literal dollar sign that cannot trigger a substitution, you "
+"can either use the B<${Dollar}> substitution or the sequence B<${}>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:173
+msgid "The following expansions are available:"
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:177
+msgid "B<DEB_HOST_*>, B<DEB_BUILD_*>, B<DEB_TARGET_*>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:179
+msgid ""
+"Expands to the relevant L<dpkg-architecture(1)> value (similar to I<dpkg-"
+"architecture -qVARIABLE_HERE>)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:182
+msgid ""
+"When in doubt, the B<DEB_HOST_*> variant is the one that will work both for "
+"native and cross builds."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:185
+msgid ""
+"For performance reasons, debhelper will attempt to resolve these names from "
+"the environment first before consulting L<dpkg-architecture(1)>. This is "
+"mostly mentioned for completeness as it will not matter for most cases."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:190
+msgid "B<Dollar>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:192
+msgid ""
+"Expands to a single literal B<$>-symbol. This symbol will I<never> be "
+"considered part of a substitution variable. That is:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:195
+#, no-wrap
+msgid ""
+" # Triggers an error\n"
+" ${NO_SUCH_TOKEN}\n"
+" # Expands to the literal value \"${NO_SUCH_TOKEN}\"\n"
+" ${Dollar}{NO_SUCH_TOKEN}\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:200
+msgid ""
+"This variable equivalent to the sequence B<${}> and the two can be used "
+"interchangeably."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:203
+msgid "B<Newline>, B<Space>, B<Tab>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:205
+msgid "Expands to a single ASCII newline, space and tab respectively."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:207
+msgid ""
+"This can be useful if you need to include a literal whitespace character (e."
+"g. space) where it would otherwise be stripped or used as a separator."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:211
+msgid "B<< env:I<NAME> >>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:213
+msgid ""
+"Expands to the environment variable I<NAME>. The environment variable must "
+"be set (but can be set to the empty string)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:218
+msgid ""
+"Note that all variables must expand to a defined value. As an example, if "
+"debhelper sees I<${env:FOO}>, then it will insist that the environment "
+"variable I<FOO> is set (it can be set to the empty string)."
+msgstr ""
+
+#. type: =head3
+#: debhelper.pod:222
+msgid "Substitution limits"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:224
+msgid ""
+"To avoid infinite loops and resource exhaustion, debhelper will stop with an "
+"error if the text contains many substitution variables (50) or they expand "
+"beyond a certain size (4096 characters or 3x length of the original input - "
+"whichever is bigger)."
+msgstr ""
+
+#. type: =head2
+#: debhelper.pod:229
+#, fuzzy
+#| msgid "Comments are ignored in debhelper config files."
+msgid "Executable debhelper config files"
+msgstr "debhelper 設定ファイルでのコメントは無視されるようになりました。"
+
+#. type: textblock
+#: debhelper.pod:231
+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 ""
+
+#. type: textblock
+#: debhelper.pod:234
+msgid ""
+"To use this feature, simply mark the config file as executable (e.g. B<< "
+"chmod +x debian/I<package>.install >>) and the tool will attempt to execute "
+"it and use the output of the script. In many cases, you can use L<dh-"
+"exec(1)> as interpreter of the config file to retain most of the original "
+"syntax while getting the additional flexibility you need."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:242
+msgid ""
+"When using executable debhelper config files, please be aware of the "
+"following:"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:249
+msgid ""
+"The executable config file B<must> exit with success (i.e. its return code "
+"should indicate success)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:254
+msgid ""
+"In compatibility level 13+, the output will be subject to substitutions (see "
+"L</Substitutions in debhelper config files>) where the tool support these. "
+"Remember to be careful if your generator I<also> provides substitutions as "
+"this can cause unnecessary confusion."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:259
+msgid ""
+"Otherwise, the output will be used exactly as-is. Notably, debhelper will "
+"I<not> expand wildcards or strip comments or strip whitespace in the output."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:265
+msgid ""
+"If you need the package to build on a file system where you cannot disable "
+"the executable bit, then you can use L<dh-exec(1)> and its B<strip-output> "
+"script."
+msgstr ""
+
+#. type: =head1
+#: debhelper.pod:269
+msgid "SHARED DEBHELPER OPTIONS"
+msgstr "DEBHELPER 間で共有されるオプション"
+
+#. type: textblock
+#: debhelper.pod:271
+msgid ""
+"The following command line options are supported by all debhelper programs."
+msgstr ""
+"以下のコマンドラインオプションは、全ての debhelper プログラムでサポートされて"
+"います。"
+
+#. type: =item
+#: debhelper.pod:275
+msgid "B<-v>, B<--verbose>"
+msgstr "B<-v>, B<--verbose>"
+
+#. type: textblock
+#: debhelper.pod:277
+#, fuzzy
+#| msgid ""
+#| "Verbose mode: show all commands that modify the package build directory."
+msgid "Verbose mode: show commands that modify the package build directory."
+msgstr ""
+"冗長出力モード。パッケージビルドディレクトリを変更するようなコマンドを全て表"
+"示します。"
+
+#. type: textblock
+#: debhelper.pod:279
+#, fuzzy
+#| msgid ""
+#| "Verbose mode: show all commands that modify the package build directory."
+msgid ""
+"Note that verbose mode may also output other \"internal\" commands that do "
+"not directly affect the package build directory."
+msgstr ""
+"冗長出力モード。パッケージビルドディレクトリを変更するようなコマンドを全て表"
+"示します。"
+
+#. type: =item
+#: debhelper.pod:282 dh:307
+msgid "B<--no-act>"
+msgstr "B<--no-act>"
+
+#. type: textblock
+#: debhelper.pod:284
+msgid ""
+"Do not really do anything. If used with -v, the result is that the command "
+"will output what it would have done."
+msgstr ""
+"実際の処理を行いません。-v オプションと併用すると、コマンドがどのような処理を"
+"行うかが出力されます。"
+
+#. type: =item
+#: debhelper.pod:287
+msgid "B<-a>, B<--arch>"
+msgstr "B<-a>, B<--arch>"
+
+#. type: textblock
+#: debhelper.pod:289
+msgid ""
+"Act on architecture dependent packages that should be built for the "
+"B<DEB_HOST_ARCH> architecture."
+msgstr ""
+"アーキテクチャ依存パッケージを、B<DEB_HOST_ARCH> アーテキクチャ向けにビルドす"
+"るように動作します。"
+
+#. type: =item
+#: debhelper.pod:292
+msgid "B<-i>, B<--indep>"
+msgstr "B<-i>, B<--indep>"
+
+#. type: textblock
+#: debhelper.pod:294
+msgid "Act on all architecture independent packages."
+msgstr "全てのアーキテクチャ非依存パッケージに対して処理を行います。"
+
+#. type: =item
+#: debhelper.pod:296
+msgid "B<-p>I<package>, B<--package=>I<package>"
+msgstr "B<-p>I<package>, B<--package=>I<package>"
+
+#. type: textblock
+#: debhelper.pod:298
+msgid ""
+"Act on the package named I<package>. This option may be specified multiple "
+"times to make debhelper operate on a given set of packages."
+msgstr ""
+"I<package> で指定されたパッケージに対して処理を行います。複数のパッケージを "
+"debhelper に処理させる際には、繰り返し列挙して指定してください。"
+
+#. type: =item
+#: debhelper.pod:301
+msgid "B<-s>, B<--same-arch>"
+msgstr "B<-s>, B<--same-arch>"
+
+#. type: textblock
+#: debhelper.pod:303
+msgid "Deprecated alias of B<-a>."
+msgstr "廃止された B<-a> のエイリアスです。"
+
+#. type: textblock
+#: debhelper.pod:305 dh_install:80 dh_install:89
+#, fuzzy
+#| msgid "The option is removed in compat 11."
+msgid "This option is removed in compat 12."
+msgstr "このオプションは互換性レベル 11 で廃止されています。"
+
+#. type: =item
+#: debhelper.pod:307
+msgid "B<-N>I<package>, B<--no-package=>I<package>"
+msgstr "B<-N>I<package>, B<--no-package=>I<package>"
+
+#. type: textblock
+#: debhelper.pod:309
+msgid ""
+"Do not act on the specified package even if an B<-a>, B<-i>, or B<-p> option "
+"lists the package as one that should be acted on."
+msgstr ""
+"B<-a>, B<-i>, B<-p> オプションで処理すべきパッケージとして対象としていても、"
+"指定されているパッケージについては処理を行わないようにします。"
+
+#. type: =item
+#: debhelper.pod:312
+msgid "B<--remaining-packages>"
+msgstr "B<--remaining-packages>"
+
+#. type: textblock
+#: debhelper.pod:314
+msgid ""
+"Do not act on the packages which have already been acted on by this "
+"debhelper command earlier (i.e. if the command is present in the package "
+"debhelper log). For example, if you need to call the command with special "
+"options only for a couple of binary packages, pass this option to the last "
+"call of the command to process the rest of packages with default settings."
+msgstr ""
+"この debhelper コマンドにより、すでに処理済のパッケージについては処理をしない"
+"ようにします (つまり、debhelper のログにコマンドの記録があるものは処理しな"
+"い)。例えば、いくつかのバイナリパッケージだけに対して特別なオプション付きでコ"
+"マンドを呼び出し、残りのパッケージに対しては本オプションをつけてコマンドを呼"
+"び出し、デフォルト設定による処理を行うという事ができます。"
+
+#. type: =item
+#: debhelper.pod:320
+msgid "B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>"
+msgstr "B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>"
+
+#. type: textblock
+#: debhelper.pod:322
+msgid ""
+"Use I<tmpdir> for package build directory. The default is debian/I<package>"
+msgstr ""
+"I<tmpdir> をパッケージビルドディレクトリとして利用します。デフォルトでは "
+"debian/I<package> ディレクトリが使われます。"
+
+#. type: =item
+#: debhelper.pod:324
+msgid "B<--mainpackage=>I<package>"
+msgstr "B<--mainpackage=>I<package>"
+
+#. type: textblock
+#: debhelper.pod:326
+msgid ""
+"This little-used option changes the package which debhelper considers the "
+"\"main package\", that is, the first one listed in F<debian/control>, and "
+"the one for which F<debian/foo> files can be used instead of the usual "
+"F<debian/package.foo> files."
+msgstr ""
+"このあまり使われないオプションは、debhelper コマンドが \"main package\" とみ"
+"なすパッケージ、つまり、F<debian/control> の最初に記載されたパッケージを変更"
+"するものです。これにより、通常の F<debian/package.foo> ファイルではなく "
+"F<debian/foo> ファイルが使われるようになります。"
+
+#. type: =item
+#: debhelper.pod:331
+msgid "B<-O=>I<option>|I<bundle>"
+msgstr "B<-O=>I<option>|I<bundle>"
+
+#. type: textblock
+#: debhelper.pod:333
+msgid ""
+"This is used by L<dh(1)> when passing user-specified options to all the "
+"commands it runs. If the command supports the specified option or option "
+"bundle, it will take effect. If the command does not support the option (or "
+"any part of an option bundle), it will be ignored."
+msgstr ""
+"これは、実行するすべてのコマンドへユーザー指定のオプションを渡す際に "
+"L<dh(1)> が利用します。コマンドが指定のオプションをサポートしている、あるいは"
+"内蔵している場合は、オプションは効果を発揮します。コマンドが指定されたオプ"
+"ションをサポートしていない場合 (あるいは、内蔵しているオプションにない場合)、"
+"オプションは無視されます。"
+
+#. type: =head1
+#: debhelper.pod:340
+msgid "COMMON DEBHELPER OPTIONS"
+msgstr "DEBHELPER の共通オプション"
+
+#. type: textblock
+#: debhelper.pod:342
+msgid ""
+"The following command line options are supported by some debhelper "
+"programs. See the man page of each program for a complete explanation of "
+"what each option does."
+msgstr ""
+"以下のコマンドラインオプションが、debhelper プログラムのうち複数でサポートさ"
+"れています。「オプションが何を意味するか」という完全な説明は、各コマンドの "
+"man ページを参照してください。"
+
+#. type: =item
+#: debhelper.pod:348
+msgid "B<-n>"
+msgstr "B<-n>"
+
+#. type: textblock
+#: debhelper.pod:350
+msgid "Do not modify F<postinst>, F<postrm>, etc. scripts."
+msgstr "F<postinst>, F<postrm> 等のスクリプトに変更を加えません。"
+
+#. type: =item
+#: debhelper.pod:352 dh_compress:56 dh_dwz:56 dh_installchangelogs:89
+#: dh_installdocs:109 dh_installexamples:84 dh_link:78 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<item>, B<--exclude=>I<item>"
+
+#. type: textblock
+#: debhelper.pod:354
+#, 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, "
+"and any file containing the specified text will be excluded."
+msgstr ""
+"item を処理対象から除外します。複数の item を除外するためにこのオプションを複"
+"数指定して使う。ことができます。通常、\\fIitem\\fR はファイル名の一部で、指定"
+"されたテキストが含まれるファイルはすべて除外されます。"
+
+#. type: =item
+#: debhelper.pod:358 dh_bugfiles:57 dh_compress:63 dh_installdirs:49
+#: dh_installdocs:104 dh_installexamples:52 dh_installinfo:45 dh_installman:90
+#: dh_installwm:55 dh_link:73
+msgid "B<-A>, B<--all>"
+msgstr "B<-A>, B<--all>"
+
+#. type: textblock
+#: debhelper.pod:360
+msgid ""
+"Makes files or other items that are specified on the command line take "
+"effect in ALL packages acted on, not just the first."
+msgstr ""
+"コマンドラインで指定したファイル、あるいは他の item について、最初のパッケー"
+"ジだけでなく全パッケージに対して処理を行います。"
+
+#. type: =head1
+#: debhelper.pod:365
+msgid "BUILD SYSTEM OPTIONS"
+msgstr "ビルドシステム用オプション"
+
+#. type: textblock
+#: debhelper.pod:367
+msgid ""
+"The following command line options are supported by all of the "
+"B<dh_auto_>I<*> debhelper programs. These programs support a variety of "
+"build systems, and normally heuristically determine which to use, and how to "
+"use them. You can use these command line options to override the default "
+"behavior. Typically these are passed to L<dh(1)>, which then passes them to "
+"all the B<dh_auto_>I<*> programs."
+msgstr ""
+"以下のコマンドラインオプションが、すべての B<dh_auto_>I<*> の debhelper プロ"
+"グラムによってサポートされています。これらのプログラム群は様々なビルドシステ"
+"ムをサポートしており、通常の場合は推定によって、どのビルドシステムがどのよう"
+"に使われるかを決定します。これらのコマンドラインオプションを使って、デフォル"
+"トの動作を override することが可能です。大抵の場合は、これらのオプションはま"
+"ず L<dh(1)> に渡され、それからすべての B<dh_auto_>I<*> プログラムへと渡されま"
+"す。"
+
+#. type: =item
+#: debhelper.pod:376
+msgid "B<-S>I<buildsystem>, B<--buildsystem=>I<buildsystem>"
+msgstr "B<-S>I<buildsystem>, B<--buildsystem=>I<buildsystem>"
+
+#. type: textblock
+#: debhelper.pod:378
+msgid ""
+"Force use of the specified I<buildsystem>, instead of trying to auto-select "
+"one which might be applicable for the package."
+msgstr ""
+"パッケージに合わせて自動的に選択されたビルドシステムではなく、I<buildsystem> "
+"で指定したビルドシステムを強制的に使用します。"
+
+#. type: textblock
+#: debhelper.pod:381
+msgid "Pass B<none> as I<buildsystem> to disable auto-selection."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:383
+#, 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<directory>, B<--sourcedirectory=>I<directory>"
+
+#. type: textblock
+#: debhelper.pod:385
+msgid ""
+"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."
+msgstr ""
+"オリジナルのソースツリーが、Debian ソースパッケージツリーの最上位のディレクト"
+"リではなく、I<directory> で指定した場所にあると仮定します。"
+
+#. type: textblock
+#: debhelper.pod:389
+msgid ""
+"B<Warning>: The B<--sourcedir> variant matches a similar named option in "
+"B<dh_install> and B<dh_missing> (etc.) for historical reasons. While they "
+"have a similar name, they have very distinct purposes and in some cases it "
+"can cause errors when this variant is passed to B<dh> (when then passes it "
+"on to all tools)."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:395
+#, 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<directory>], B<--builddirectory=>[I<directory>]"
+
+#. type: textblock
+#: debhelper.pod:397
+msgid ""
+"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 will be chosen."
+msgstr ""
+"ソースのビルドディレクトリ外にある、指定した I<directory> をビルドディレクト"
+"リとしてソースのビルドを有効にします。I<directory> パラメータが省略された場合"
+"はデフォルトのビルドディレクトリが利用されます。"
+
+#. type: textblock
+#: debhelper.pod:401
+msgid ""
+"If this option is not specified, building will be done in source by default "
+"unless the build system requires or prefers out of source tree building. In "
+"such a case, the default build directory will be used even if B<--"
+"builddirectory> is not specified."
+msgstr ""
+"このオプションが指定されない場合は、ビルドシステムがソースツリー外でのビルド"
+"を必要とする、あるいはそちらが望ましいと判断されない限り、デフォルトではソー"
+"スディレクトリ内部でビルドが行われます。その場合、B<--builddirectory> が指定"
+"されていなくてもデフォルトのビルドディレクトリが使用されます。"
+
+#. type: textblock
+#: debhelper.pod:406
+msgid ""
+"If the build system prefers out of source tree building but still allows in "
+"source building, the latter can be re-enabled by passing a build directory "
+"path that is the same as the source directory path."
+msgstr ""
+"ビルドシステムが、ソースディレクトリ以外の場所でビルドを選択してしまうけれど"
+"もソースディレクトリでのビルドが可能な場合には、ソースディレクトリのパスと同"
+"じものとしてビルドディレクトリのパスを指定すれば、ソースディレクトリ内でビル"
+"ドを行うようにできます。"
+
+#. type: =item
+#: debhelper.pod:410
+msgid "B<--parallel>, B<--no-parallel>"
+msgstr "B<--parallel>, B<--no-parallel>"
+
+#. type: textblock
+#: debhelper.pod:412
+msgid ""
+"Control whether parallel builds should be used if underlying build system "
+"supports them. The number of parallel jobs is controlled by the "
+"B<DEB_BUILD_OPTIONS> environment variable (L<Debian Policy, section 4.9.1>) "
+"at build time. It might also be subject to a build system specific limit."
+msgstr ""
+"ビルドシステムがサポートしている場合、並列ビルドを有効にするかどうかを管理し"
+"ます。どれだけの数でジョブを並列にするかは、ビルドが行われる際に "
+"B<DEB_BUILD_OPTIONS> 環境変数によって決定されます (L<Debian ポリシーマニュア"
+"ル、4.9.1章>)。ビルドシステム固有の制限に影響を受ける場合もあります。"
+
+#. type: textblock
+#: debhelper.pod:418
+msgid ""
+"If neither option is specified, debhelper currently defaults to B<--"
+"parallel> in compat 10 (or later) and B<--no-parallel> otherwise."
+msgstr ""
+"どちらのオプションも指定されていない場合、debhelper は現在では互換性レベル "
+"10 (以降) の場合は B<--parallel> をデフォルトに、そうでない場合は B<--no-"
+"parallel> が指定されます。"
+
+# FIXME: typo: unnecessary
+#. type: textblock
+#: debhelper.pod:421
+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 "
+"this happens when B<DEB_BUILD_OPTIONS> does not have a I<parallel> parameter "
+"(or its value is 1)."
+msgstr ""
+"これらのオプションが不要である場合、あるいはこのオプションだけが渡された場合"
+"には、B<dh> はこれらのオプションをサブプロセスに渡すのを最適化のため避けよう"
+"とします。特に、これは B<DEB_BUILD_OPTIONS> が I<parallel> パラメーターを持た"
+"ない (またはこの値が 1 である) 場合に起こります。"
+
+#. type: =item
+#: debhelper.pod:426
+msgid "B<--max-parallel=>I<maximum>"
+msgstr "B<--max-parallel=>I<maximum>"
+
+#. type: textblock
+#: debhelper.pod:428
+msgid ""
+"This option implies B<--parallel> and allows further limiting the number of "
+"jobs that can be used in a parallel build. If the package build is known to "
+"only work with certain levels of concurrency, you can set this to the "
+"maximum level that is known to work, or that you wish to support."
+msgstr ""
+"このオプションは B<--parallel> とともに利用し、並列ビルドにおける並列数の上限"
+"を引き上げます。もしパッケージが、とある並列数まででしかビルドできないことが"
+"わかっている場合、このオプションを使って最大限の並列数または利用したい並列数"
+"を指定できます。"
+
+#. type: textblock
+#: debhelper.pod:433
+msgid ""
+"Notably, setting the maximum to 1 is effectively the same as using B<--no-"
+"parallel>."
+msgstr ""
+"特に、最大値を 1 に設定するのは B<--no-parallel> を使うのと同じ効果がありま"
+"す。"
+
+#. type: =item
+#: debhelper.pod:436
+msgid "B<--reload-all-buildenv-variables>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:438
+msgid ""
+"By default, L<dh(1)> will compute several environment variables (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:442
+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:449
+#, no-wrap
+msgid ""
+" export DEB_CFLAGS_MAINT_APPEND=-O3\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:451
+#, no-wrap
+msgid ""
+" %:\n"
+" dh $@\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: debhelper.pod:454
+#, 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:459
+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:464
+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:467 dh:299
+msgid "B<--list>, B<-l>"
+msgstr "B<--list>, B<-l>"
+
+#. type: textblock
+#: debhelper.pod:469
+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 ""
+"このシステム上で、debhelper がサポートしているビルドシステム一覧を表示しま"
+"す。この一覧にはデフォルトのビルドシステム、そしてサードパーティー製 (である"
+"と明記されている) ビルドシステムの双方を含みます。また、どれが自動的に選択さ"
+"れたか、あるいは手動で B<--buildsystem> オプションにて何が指定されたのかも表"
+"示します。"
+
+#. type: =head1
+#: debhelper.pod:476
+msgid "COMPATIBILITY LEVELS"
+msgstr "互換性レベル"
+
+#. type: textblock
+#: debhelper.pod:478
+#, 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."
+msgstr ""
+"時が経ち、後方互換性を崩すような大きな変更を debhelper にする必要がでてきまし"
+"た。これは、変化に対して debhelper の構造を綺麗でうまく設計されたままに保つ必"
+"要があることと、debhelper の作者がより経験を得てより深く考えるようになったた"
+"めです。このような大きな変更によって既存のパッケージを壊さないようにするた"
+"め、互換性レベルという考え方が導入されました。debhelper にどの互換性レベルを"
+"使うべきかを指定することで、これに合わせて動作が様々に変化します。互換性レベ"
+"ルは F<debian/compat> ファイルで指定され、このファイルは必須となっています。"
+
+#. type: textblock
+#: debhelper.pod:485
+#, 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 ""
+"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 ""
+"数字を F<debian/compat> に記述して、debhelper にどの互換性レベルを使うかを教"
+"えます。例えば、v#RECOMMENDED_COMPAT# モードを使うには次の様にします:"
+
+#. type: verbatim
+#: debhelper.pod:489
+#, fuzzy, no-wrap
+#| msgid ""
+#| " Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
+#| "\n"
+msgid ""
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
+"\n"
+msgstr ""
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
+"\n"
+
+#. type: textblock
+#: debhelper.pod:491
+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:497
+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, if only for selected commands, "
+"B<DH_COMPAT>)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:501
+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. To use this method, the F<debian/compat> file 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:511
+#, fuzzy, no-wrap
+#| msgid ""
+#| " Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
+#| "\n"
+msgid ""
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#~)\n"
+"\n"
+msgstr ""
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#)\n"
+"\n"
+
+#. type: textblock
+#: debhelper.pod:513
+msgid ""
+"Note that you must use either the build-dependency on debhelper-compat or "
+"the F<debian/compat> file. Whenever possible, the debhelper-compat build-"
+"dependency is recommended."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:517
+msgid ""
+"If needed be, the B<DH_COMPAT> environment variable can be used to override "
+"the compat level for a given command. The feature is mostly useful for "
+"either temporarily upgrading a few commands to a new compat level or keeping "
+"a few commands on a lower compat level. The feature is best used sparingly "
+"as it effectively introduces special-cases into the F<debian/rules> file "
+"that may be surprising to maintainers or reviewers (or, in the long term, to "
+"yourself)."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:525
+msgid ""
+"Unless otherwise indicated, all debhelper documentation assumes that you are "
+"using the most recent compatibility level, and in most cases does not "
+"indicate if the behavior is different in an earlier compatibility level, so "
+"if you are not using the most recent compatibility level, you're advised to "
+"read below for notes about what is different in earlier compatibility levels."
+msgstr ""
+"特に指定が無い場合、debhelper のドキュメントは最新の互換性レベルを利用してい"
+"る事を前提とおり、多くの場合では以前の互換性レベルではどう動作が異なるかにつ"
+"いては言及していません。最新の互換性レベルを使っていない場合には、それ以前の"
+"互換性レベルとはどう動作が違うのか、以下の説明を参照しておく事をおすすめしま"
+"す。"
+
+#. type: =head2
+#: debhelper.pod:532
+#, fuzzy
+#| msgid "This is the lowest supported compatibility level."
+msgid "Supported compatibility levels"
+msgstr "これはサポートされている最低限の互換性レベルです。"
+
+#. type: textblock
+#: debhelper.pod:534
+msgid ""
+"The list of supported compatibility levels and the related upgrade check "
+"list has moved to L<debhelper-compat-upgrade-checklist(7)>."
+msgstr ""
+
+#. type: =head1
+#: debhelper.pod:537 dh_auto_test:48 dh_dwz:69 dh_installcatalogs:67
+#: dh_installdocs:202 dh_installemacsen:75 dh_installexamples:96
+#: dh_installinit:204 dh_installinitramfs:60 dh_installman:131
+#: dh_installmodules:57 dh_installudev:50 dh_installwm:66 dh_installxfonts:40
+#: dh_movefiles:67 dh_strip:119 dh_usrlocal:60 dh_systemd_enable:103
+#: dh_systemd_start:68
+msgid "NOTES"
+msgstr "付記"
+
+#. type: =head2
+#: debhelper.pod:539
+msgid "Multiple binary package support"
+msgstr "複数のバイナリパッケージのサポート"
+
+#. type: textblock
+#: debhelper.pod:541
+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 "
+"source package happens to generate one architecture dependent package, and "
+"another architecture independent package, this is not the correct behavior, "
+"because you need to generate the architecture dependent packages in the "
+"binary-arch F<debian/rules> target, and the architecture independent "
+"packages in the binary-indep F<debian/rules> target."
+msgstr ""
+"ソースパッケージが複数のバイナリパッケージを生成する場合、デフォルトでは "
+"debhelper は実行時にすべてのバイナリパッケージを生成します。この場合ソース"
+"パッケージが、アーキテクチャ依存パッケージとアーキテクチャ非依存パッケージを"
+"同時に生成するとしたら、この振る舞いは正しくありません。というのも、F<debian/"
+"rules> では、アーキテクチャ依存パッケージを生成するなら binary-arch ターゲッ"
+"ト内で生成する必要があり、アーキテクチャ非依存のパッケージならば、binary-"
+"indep ターゲットで生成する必要がある為です。"
+
+#. type: textblock
+#: debhelper.pod:549
+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<-"
+"i>, B<-p>, and B<-s> parameters. These parameters are cumulative. If none "
+"are given, debhelper programs default to acting on all packages listed in "
+"the control file, with the exceptions below."
+msgstr ""
+"これを容易にする為、どのパッケージが debhelper プログラムによって処理されるか"
+"をよりコントロールするのと同様、すべての debhelper プログラムは B<-a>, B<-"
+"i>, B<-p>, B<-s> パラメータを解釈できます。これらのパラメータは重複可能です。"
+"何も指定しない場合、debhelper プログラムは、以下の例外を除いて control ファイ"
+"ルに列挙されたすべてのパッケージに対して処理を行います。"
+
+#. type: textblock
+#: debhelper.pod:555
+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, "
+"section 5.6.8>)."
+msgstr ""
+"まず、B<debian/control> 中の B<Architecture> フィールドが B<DEB_HOST_ARCH> "
+"アーキテクチャに一致しない全てのパッケージが除外されます (L<Debian ポリシー "
+"5.6.8 章>)。"
+
+#. type: textblock
+#: debhelper.pod:559
+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 "
+"binary package stanzas in B<debian/control>, according to the draft policy "
+"at L<https://wiki.debian.org/BuildProfileSpec>."
+msgstr ""
+"また、L<https://wiki.debian.org/BuildProfileSpec> にあるドラフトのポリシーに"
+"よると、B<DEB_BUILD_PROFILES> 環境変数と B<debian/control> 中のバイナリパッ"
+"ケージ節の B<Build-Profiles> フィールドの内容を元に追加でパッケージが除外され"
+"ます。"
+
+#. type: =head3
+#: debhelper.pod:564
+msgid "Interaction between package selections and Build-Profiles"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:566
+msgid ""
+"Build-Profiles affect which packages are included in the package selections "
+"mechanisms in debhelper. Generally, the package selections are described "
+"from the assumption that all packages are enabled. This section describes "
+"how the selections react when a package is disabled due to the active Build-"
+"Profiles (or lack of active Build-Profiles)."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:574
+msgid "-a/--arch, -i/--indep OR no selection options (a raw \"dh_X\" call)"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:576
+msgid ""
+"The package disabled by Build-Profiles is silently excluded from the "
+"selection."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:579
+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 "
+"do the build in the first place."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:583
+#, fuzzy
+#| msgid "B<-N>I<package>, B<--no-package=>I<package>"
+msgid "-N I<package> / --no-package I<package>"
+msgstr "B<-N>I<package>, B<--no-package=>I<package>"
+
+#. type: textblock
+#: debhelper.pod:585
+msgid "The option is accepted and effectively does nothing."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:587
+#, fuzzy
+#| msgid "B<-p>I<package>, B<--package=>I<package>"
+msgid "-p I<package> / --package I<package>"
+msgstr "B<-p>I<package>, B<--package=>I<package>"
+
+#. type: textblock
+#: debhelper.pod:589
+msgid "The option is accepted, but debhelper will not act on the package."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:593
+msgid ""
+"Note that it does not matter whether a package is enabled or disabled by "
+"default."
+msgstr ""
+
+# note: it should be "Debian maintainer scripts"?
+#. type: =head2
+#: debhelper.pod:596
+msgid "Automatic generation of Debian install scripts"
+msgstr "メンテナスクリプトの自動生成"
+
+#. type: textblock
+#: debhelper.pod:598
+msgid ""
+"Some debhelper commands will automatically generate parts of Debian "
+"maintainer scripts. If you want these automatically generated things "
+"included in your existing Debian maintainer scripts, then you need to add "
+"B<#DEBHELPER#> to your scripts, in the place the code should be added. "
+"B<#DEBHELPER#> will be replaced by any auto-generated code when you run "
+"B<dh_installdeb>."
+msgstr ""
+"debhelper コマンドには、Debian メンテナスクリプトの一部を自動的に生成するもの"
+"があります。もし、既存の Debian メンテナスクリプトに自動生成された部分を含む"
+"ようにしたければ、コードを追加したい場所に B<#DEBHELPER#> と追記してくださ"
+"い。B<#DEBHELPER#> は B<dh_installdeb> が実行される際に、自動生成されたコード"
+"へ置換されます。"
+
+#. type: textblock
+#: debhelper.pod:605
+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 ""
+"スクリプトがまったく存在しないが debhelper が何かをスクリプトに追加する必要が"
+"ある場合、debhelper はスクリプトを一式生成します。"
+
+#. type: textblock
+#: debhelper.pod:608
+msgid ""
+"All debhelper commands that automatically generate code in this way let it "
+"be disabled by the -n parameter (see above)."
+msgstr ""
+"-n パラメーターを指定すると、このような debhelper プログラムによるスクリプト"
+"の自動生成を行わないようにできます (上記参照)。"
+
+#. type: textblock
+#: debhelper.pod:611
+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 "
+"is one way to do that (note that I made sure that $1, $2, etc are set with "
+"the set command):"
+msgstr ""
+"挿入されるコードはシェルスクリプトなので、Perl スクリプトには直接埋め込めない"
+"事に注意してください。もし何かを Perl スクリプトに埋め込みたい場合、以下に一"
+"例を挙げます ($1, $2 等は set コマンドにより設定される事に注意):"
+
+#. type: verbatim
+#: debhelper.pod:616
+#, no-wrap
+msgid ""
+" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
+" #DEBHELPER#\n"
+" EOF\n"
+" if (system($temp)) {\n"
+" my $exit_code = ($? >> 8) & 0xff;\n"
+" my $signal = $? & 0x7f;\n"
+" if ($exit_code) {\n"
+" die(\"The debhelper script failed with error code: ${exit_code}\");\n"
+" } else {\n"
+" die(\"The debhelper script was killed by signal: ${signal}\");\n"
+" }\n"
+" }\n"
+"\n"
+msgstr ""
+" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
+" #DEBHELPER#\n"
+" EOF\n"
+" if (system($temp)) {\n"
+" my $exit_code = ($? >> 8) & 0xff;\n"
+" my $signal = $? & 0x7f;\n"
+" if ($exit_code) {\n"
+" die(\"debhelper スクリプトは失敗しました。エラーコード: ${exit_code}\");\n"
+" } else {\n"
+" die(\"debhelper スクリプトは以下のシグナルで終了されました: ${signal}\");\n"
+" }\n"
+" }\n"
+"\n"
+
+#. type: =head2
+#: debhelper.pod:629
+msgid "Automatic generation of miscellaneous dependencies."
+msgstr "様々な依存関係の自動生成"
+
+#. type: textblock
+#: debhelper.pod:631
+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 "
+"package will generally need to depend on debconf. Or if you use "
+"L<dh_installxfonts(1)>, your package will generally need to depend on a "
+"particular version of xutils. Keeping track of these miscellaneous "
+"dependencies can be annoying since they are dependent on how debhelper does "
+"things, so debhelper offers a way to automate it."
+msgstr ""
+"debhelper は他のパッケージに依存するようなパッケージを作成することがありま"
+"す。例えば、L<dh_installdebconf(1)> を使うと、ビルドしたパッケージは debconf "
+"パッケージにも依存するようになります。あるいは L<dh_installxfonts(1)> を使う"
+"と、特定のバージョンの xutils に依存することになります。これらの様々な依存関"
+"係を追いかけるのは、debhelper がどのような処理を行うかによるために面倒なこと"
+"になりがちです。そのため、debhelper は 自動的に依存関係を解決する機能を提供し"
+"ます。"
+
+#. type: textblock
+#: debhelper.pod:639
+msgid ""
+"All commands of this type, besides documenting what dependencies may be "
+"needed on their man pages, will automatically generate a substvar called "
+"B<${misc:Depends}>. If you put that token into your F<debian/control> file, "
+"it will be expanded to the dependencies debhelper figures you need."
+msgstr ""
+"他のパッケージに依存するようなパッケージを生成する debhelper コマンドは、何に"
+"依存するかについて man ページに記載してある他に、B<${misc:Depends}> と呼ばれ"
+"る変数を、自動的に生成した依存情報と置き換えます。もし F<debian/control> にこ"
+"の変数を指定すれば、debhelper は必要とする依存関係を自動的に展開するようにな"
+"ります。"
+
+#. type: textblock
+#: debhelper.pod:644
+msgid ""
+"This is entirely independent of the standard B<${shlibs:Depends}> generated "
+"by L<dh_makeshlibs(1)>, and the B<${perl:Depends}> generated by "
+"L<dh_perl(1)>. You can choose not to use any of these, if debhelper's "
+"guesses don't match reality."
+msgstr ""
+"この変数は、L<dh_makeshlibs(1)> により生成された標準の B<${shlibs:Depends}> "
+"変数とはまったく関連を持ちません。また、L<dh_perl(1)> により生成された "
+"B<${perl:Depends}> 変数も同様です。debhelper コマンドの推測が実状に合わない場"
+"合は、これらを使わないようにすることも可能です。"
+
+#. type: =head2
+#: debhelper.pod:649
+msgid "Package build directories"
+msgstr "パッケージビルドディレクトリ"
+
+#. type: textblock
+#: debhelper.pod:651
+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 ""
+"デフォルトでは、すべての debhelper プログラムはパッケージに含めるファイル群を"
+"まとめる一時ディレクトリとして debian/I<package> ディレクトリを使用します。"
+
+#. type: textblock
+#: debhelper.pod:654
+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>\", will use B<debian/tmp> as the temporary directory. Note that if you "
+"use B<-P>, the debhelper programs can only be acting on a single package at "
+"a time. So if you have a package that builds many binary packages, you will "
+"need to also use the B<-p> flag to specify which binary package the "
+"debhelper program will act on."
+msgstr ""
+"時折、別の一時ディレクトリを利用したくなる場合があるでしょう。この場合は、B<-"
+"P> フラグを利用してください。例えば、\"B<dh_installdocs -Pdebian/tmp>\" で"
+"は B<debian/tmp> を一時ディレクトリとして利用できます。ただし、B<-P> を使う"
+"と、debhelper プログラムは一度に 1 つのパッケージの処理しかできません。その"
+"為、複数のバイナリパッケージを生成するような場合、どのバイナリパッケージに対"
+"して debhelper が作用するかを指定するために B<-p> フラグを併用する必要があり"
+"ます。"
+
+#. type: =head2
+#: debhelper.pod:662
+msgid "udebs"
+msgstr "udeb パッケージについて"
+
+#. type: textblock
+#: debhelper.pod:664
+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>. "
+"Debhelper will try to create udebs that comply with debian-installer policy, "
+"by making the generated package files end in F<.udeb>, not installing any "
+"documentation into a udeb, skipping over F<preinst>, F<postrm>, F<prerm>, "
+"and F<config> scripts, etc."
+msgstr ""
+"debhelper は udeb もサポートしています。debhelper で udeb パッケージを作成す"
+"るには、\"B<Package-Type: udeb>\" を F<debian/control> のパッケージ定義に加え"
+"てください。debhelper は udeb ファイルを debian-installer ポリシーにあわせて"
+"ビルドします。これは、パッケージの拡張子が F<.udeb> となるファイルで、いかな"
+"るドキュメントや、F<preinst>, F<postrm>, F<prerm>, F<config> スクリプト等も省"
+"いたものです。"
+
+#. type: =head1
+#: debhelper.pod:671
+msgid "ENVIRONMENT"
+msgstr "環境変数"
+
+#. type: textblock
+#: debhelper.pod:673
+msgid ""
+"This section describes some of the environment variables that influences the "
+"behaviour of debhelper or which debhelper interacts with."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:676
+#, fuzzy
+#| msgid ""
+#| "The following environment variables can influence the behavior of "
+#| "debhelper. It is important to note that these must be actual environment "
+#| "variables in order to function properly (not simply F<Makefile> "
+#| "variables). To specify them properly in F<debian/rules>, be sure to "
+#| "\"B<export>\" them. For example, \"B<export DH_VERBOSE>\"."
+msgid ""
+"It is important to note that these must be actual environment variables in "
+"order to affect the behaviour of debhelper (not simply F<Makefile> "
+"variables). To specify them properly in F<debian/rules>, be sure to "
+"\"B<export>\" them. For example, \"B<export DH_VERBOSE>\"."
+msgstr ""
+"以下の環境変数は debhelper の振る舞いに影響を与えることができます。正しく動作"
+"するためには、(単なる F<Makefile> 変数ではなく) 実際の環境変数である必要があ"
+"ることに注意するのが重要です。これらを正しく F<debian/rules> で指定するには、"
+"必ず \"B<export>\" してください。例えば \"B<export DH_VERBOSE>\" などとしま"
+"す。"
+
+#. type: =item
+#: debhelper.pod:683
+msgid "B<DH_VERBOSE>"
+msgstr "B<DH_VERBOSE>"
+
+#. type: textblock
+#: debhelper.pod:685
+msgid ""
+"Set to a non-empty value to enable verbose mode. Please see the B<-v> / B<--"
+"verbose> option for details."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:688
+msgid "B<DH_QUIET>"
+msgstr "B<DH_QUIET>"
+
+#. type: textblock
+#: debhelper.pod:690
+#, fuzzy
+#| 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 depending on the upstream build system might make that more "
+#| "quiet, too. This makes it easier to spot important messages but makes "
+#| "the output quite useless as buildd log. Ignored if DH_VERBOSE is also "
+#| "set."
+msgid ""
+"Set to a non-empty value to enable quiet mode. Debhelper will not output "
+"commands calling the upstream build system nor will dh print which "
+"subcommands are called and depending on the upstream build system might make "
+"that more quiet, too. This makes it easier to spot important messages but "
+"makes the output quite useless as buildd log."
+msgstr ""
+"quiet モードを有効にするには B<1> を指定して下さい。debhelperは upstream のビ"
+"ルドシステムの呼び出しコマンドや、dh がどのサブコマンドが呼び出されたのかも出"
+"力しなくなり、upstream のビルドシステムによってはさらに静かになります。これは"
+"重要なメッセージに注目するのが簡単になりますが、buildd のログとしては出力は極"
+"めて使い物にならなくなります。DH_VERBOSE が同時にセットされていると無視されま"
+"す。"
+
+#. type: textblock
+#: debhelper.pod:696
+msgid "Ignored if DH_VERBOSE is also set or B<-v> / B<--verbose> is passed."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:698
+msgid "B<DH_COMPAT>"
+msgstr "B<DH_COMPAT>"
+
+#. type: textblock
+#: debhelper.pod:700
+#, 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 specified via Build-Depends on debhelper-compat or via "
+"the F<debian/compat> file."
+msgstr ""
+"この環境変数は、debhelper をどの互換性レベルで実行するかを一時的に指定するも"
+"のです。こちらを指定すると F<debian/compat> の値を上書きします。"
+
+#. type: =item
+#: debhelper.pod:704
+msgid "B<DH_NO_ACT>"
+msgstr "B<DH_NO_ACT>"
+
+#. type: textblock
+#: debhelper.pod:706
+msgid "Set to B<1> to enable no-act mode."
+msgstr "B<1> に設定すると、何もしない (no-act) モードになります。"
+
+#. type: =item
+#: debhelper.pod:708
+msgid "B<DH_OPTIONS>"
+msgstr "B<DH_OPTIONS>"
+
+#. type: textblock
+#: debhelper.pod:710
+msgid ""
+"All debhelper tools will parse command line arguments listed in this "
+"variable before any command option (as if they had been prepended to the "
+"command line arguments). Unfortunately, some third-party provided tools may "
+"not support this variable and will ignore these command line arguments."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:715
+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 ""
+"L<dh(1)> を使えば、続いて呼び出される debhelper コマンドに指定したオプション"
+"を渡すことができます。大抵の場合、こちらの方が DH_OPTIONS を使うよりも良い方"
+"法です。"
+
+#. type: =item
+#: debhelper.pod:718
+msgid "B<DH_ALWAYS_EXCLUDE>"
+msgstr "B<DH_ALWAYS_EXCLUDE>"
+
+#. type: textblock
+#: debhelper.pod:720
+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 "
+"B<rm -rf> anything that matches the value in your package build tree."
+msgstr ""
+"こちらが設定されていると、B<-X> オプションをサポートするすべてのコマンドに対"
+"し、B<-X> オプションの値として環境変数の値を指定します。さらに、"
+"B<dh_builddeb> コマンドはビルドツリーの元で環境変数の値に基づくパターンにマッ"
+"チするもの全部を B<rm -rf> するようになります。"
+
+#. type: textblock
+#: debhelper.pod:724
+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 "
+"sneaking into the package you build. Or, if a package has a source tarball "
+"that (unwisely) includes CVS directories, you might want to export "
+"B<DH_ALWAYS_EXCLUDE=CVS> in F<debian/rules>, to make it take effect wherever "
+"your package is built."
+msgstr ""
+"これは CVS ソースツリーからパッケージビルドをする場合に便利な場合があります。"
+"例えば、B<DH_ALWAYS_EXCLUDE=CVS> を指定すれば、CVS ディレクトリがビルドの際に"
+"検索されるのを防ぐことができます。あるいは、ソースの tarball にすでに CVS "
+"ディレクトリが (愚かにも) 含まれている場合、F<debian/rules> で "
+"B<DH_ALWAYS_EXCLUDE=CVS> 環境変数を export すれば、どこでパッケージをビルドし"
+"ようとも効果を発揮するようになります。"
+
+#. type: textblock
+#: debhelper.pod:731
+msgid ""
+"Multiple things to exclude can be separated with colons, as in "
+"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
+msgstr ""
+"除外したいものを複数指定したい場合は、B<DH_ALWAYS_EXCLUDE=CVS:.svn> のように"
+"コロンで区切ってください。"
+
+#. type: =item
+#: debhelper.pod:734
+#, fuzzy
+#| msgid "B<DH_OPTIONS>"
+msgid "B<DH_EXTRA_ADDONS>"
+msgstr "B<DH_OPTIONS>"
+
+#. type: textblock
+#: debhelper.pod:736
+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 "
+"addon to run with the --with flag in the debian/rules file. Any --without "
+"calls specifying an addon in this environment variable will not be run."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:741
+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 "
+"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."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:746
+msgid "B<DH_COLORS>, B<DPKG_COLORS>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:748
+msgid ""
+"These variables can be used to control whether debhelper commands should use "
+"colors in their textual output. Can be set to \"always\", \"auto\" (the "
+"default), or \"never\"."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:752
+msgid ""
+"Note that B<DPKG_COLOR> also affects a number of dpkg related tools and "
+"debhelper uses it on the assumption that you want the same color setting for "
+"dpkg and debhelper. In the off-hand chance you want different color setting "
+"for debhelper, you can use B<DH_COLORS> instead or in addition to "
+"B<DPKG_COLORS>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:758
+msgid "B<NO_COLOR>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:760
+msgid ""
+"If no explicit request for color has been given (e.g. B<DH_COLORS> and "
+"B<DPKG_COLORS> are both unset), the presence of this environment variable "
+"cause the default color setting to be \"never\"."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:764
+msgid ""
+"The variable is defined according to L<https://no-color.org/>. In this "
+"project, the environment variables (such as B<DH_COLORS>) are considered an "
+"explicit request for color."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:768
+msgid ""
+"B<CFLAGS>, B<CPPFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, "
+"B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS>, B<LDFLAGS>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:770
+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: =item
+#: debhelper.pod:777
+msgid "B<HOME>, B<XDG_*>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:779
+msgid ""
+"In compat 13 and later, these environment variables are reset before "
+"invoking the upstream build system via the B<dh_auto_*> helpers. The "
+"variables B<HOME> (all B<dh_auto_*> helpers) and B<XDG_RUNTIME_DIR> "
+"(B<dh_auto_test> only) will be set to a writable directory. All remaining "
+"variables and B<XDG_RUNTIME_DIR> (except for during B<dh_auto_test>) will be "
+"cleared."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:785
+msgid ""
+"The B<HOME> directory will be created as an empty directory but it will be "
+"reused between calls to B<dh_auto_*>. Any content will persist until "
+"explicitly deleted or B<dh_clean>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:789
+#, fuzzy
+#| msgid "B<DH_OPTIONS>"
+msgid "B<DEB_BUILD_OPTIONS>"
+msgstr "B<DH_OPTIONS>"
+
+#. type: textblock
+#: debhelper.pod:791
+msgid ""
+"Please see L</Supported flags in DEB_BUILD_OPTIONS> for this environment "
+"variable."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:794
+msgid ""
+"Please note that this variable should I<not> be altered by package "
+"maintainers inside F<debian/rules> to change the behaviour of debhelper. "
+"Instead, where the package maintainer need these features, they should look "
+"disabling the relevant feature directly (e.g. by overriding the concrete "
+"tools)."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:799
+#, fuzzy
+#| msgid "B<DH_OPTIONS>"
+msgid "B<DEB_BUILD_MAINT_OPTIONS>"
+msgstr "B<DH_OPTIONS>"
+
+#. type: textblock
+#: debhelper.pod:801
+msgid ""
+"This is a dpkg specific environment variable (see e.g. L<dpkg-"
+"buildflags(1)>). The debhelper tool suite silently ignores it."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:804
+msgid ""
+"It is documented here because it has a similar name to B<DEB_BUILD_OPTIONS>, "
+"which make some people mistakenly assume that debhelper will also react to "
+"this variable."
+msgstr ""
+
+#. type: =head2
+#: debhelper.pod:810
+msgid "Supported flags in DEB_BUILD_OPTIONS"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:812
+msgid ""
+"The debhelper tool suite reacts to the following flags in "
+"B<DEB_BUILD_OPTIONS>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:816
+msgid "B<dherroron=obsolete-compat-levels>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:818
+msgid "I<This is a debhelper specific value.>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:820
+msgid ""
+"When B<dherroron> is present and set to B<obsolete-compat-levels>, then "
+"debhelper tools will promote deprecation warnings for usage of old soon to "
+"be removed compat levels into errors."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:824
+msgid ""
+"This is useful for automated checking for code relying on deprecated compat "
+"levels that is scheduled for removal."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:827
+msgid "This option is intended for testing purposes; not production builds."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:829
+msgid "B<nostrip>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:831 debhelper.pod:854 debhelper.pod:868
+msgid ""
+"I<This value will change the content of the debs being built. The .deb "
+"packages built when this is set is therefore not bit-for-bit reproducible "
+"with a regular build in the general case.>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:835
+msgid ""
+"This value will cause the official debhelper tools will skip actions and "
+"helpers that either remove, detach or deduplicate debugging symbols in ELF "
+"binaries."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:839
+msgid "This value affects L<dh_dwz(1)> and L<dh_strip(1)>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:841
+msgid "B<nocheck>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:843
+msgid ""
+"This value will cause the official debhelper build systems to skip runs of "
+"upstream test suites."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:846
+msgid ""
+"Package maintainers looking to avoid running the upstream tests should "
+"B<not> rely on this. Instead, they can add an empty override target to skip "
+"B<dh_auto_test>."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:850
+msgid "This value affects L<dh_auto_test(1)>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:852
+msgid "B<nodoc>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:858
+msgid ""
+"This value will cause several debhelper tools to skip installation of "
+"documentation such as manpages or upstream provided documentation. "
+"Additionally, the tools will also ignore if declared documentation is "
+"\"missing\" on the assumption that the documentation has not been built."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:863
+msgid ""
+"This value effects tools I<like> L<dh_installdocs(1)>, which I<knows> it is "
+"working with documentation."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:866
+msgid "B<notrimdch>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:872
+msgid ""
+"This value will cause L<dh_installchangelogs(1)> to act as if it had been "
+"passed the B<--no-trim> option, forcing it to forgo removing older entries "
+"from changelogs."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:876
+#, fuzzy
+#| msgid "B<--ddebs>, B<--no-ddebs>"
+msgid "B<noautodbgsym>, B<noddebs>"
+msgstr "B<--ddebs>, B<--no-ddebs>"
+
+#. type: textblock
+#: debhelper.pod:878
+msgid ""
+"I<The official name is noautodbgsym. The noddebs variant is accepted for "
+"historical reasons.>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:881
+msgid ""
+"This value causes debhelper to skip the generation of automatically "
+"generated debug symbol packages."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:884
+msgid "This value affects L<dh_strip(1)>."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:886
+msgid "B<parallel=N>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:888
+msgid ""
+"This value enables debhelper to use up to B<N> threads or processes (subject "
+"to parameters like B<--no-parallel> and B<--max-parallel=M>). Not all "
+"debhelper tools work with parallel tasks and may silently ignore the request."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:893
+msgid ""
+"This value affects many debhelper tools. Most notably B<dh_auto_*>, which "
+"will attempt to run the underlying upstream build system with that number of "
+"threads."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:897
+msgid "B<terse>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:899
+msgid ""
+"This value will cause the official debhelper build systems to configure "
+"upstream builds to be terse (i.e. reduce verbosity in their output). This "
+"is subject to the upstream and the debhelper build system supporting such "
+"features."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:904
+msgid ""
+"This value affects most B<dh_auto_*> tools directly. For commands provided "
+"by the debhelper package, it also causes the tools to act like the "
+"B<DH_QUIET> environment variable was non-empty."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:910
+msgid "Unknown flags are silently ignored."
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:912
+msgid ""
+"Note third-party debhelper-like tools or third-party provided build systems "
+"may or may not react to the above flags. This tends to depend on "
+"implementation details of the tool."
+msgstr ""
+
+#. type: =head1
+#: debhelper.pod:916 debhelper-compat-upgrade-checklist.pod:758
+#: debhelper-obsolete-compat.pod:178 dh:872 dh_auto_build:53 dh_auto_clean:55
+#: dh_auto_configure:58 dh_auto_install:103 dh_auto_test:64 dh_bugfiles:133
+#: dh_builddeb:176 dh_clean:189 dh_compress:243 dh_dwz:163 dh_fixperms:164
+#: dh_gencontrol:208 dh_icons:75 dh_install:377 dh_installcatalogs:128
+#: dh_installchangelogs:365 dh_installcron:80 dh_installdeb:419
+#: dh_installdebconf:233 dh_installdirs:131 dh_installdocs:437
+#: dh_installemacsen:138 dh_installexamples:182 dh_installifupdown:72
+#: dh_installinfo:123 dh_installinit:413 dh_installinitramfs:91
+#: dh_installlogcheck:81 dh_installlogrotate:53 dh_installman:420
+#: dh_installmanpages:198 dh_installmenu:88 dh_installmime:63
+#: dh_installmodules:109 dh_installpam:71 dh_installppp:68 dh_installudev:102
+#: dh_installwm:130 dh_installxfonts:90 dh_link:166 dh_lintian:60
+#: dh_listpackages:34 dh_makeshlibs:456 dh_md5sums:118 dh_movefiles:161
+#: dh_perl:188 dh_prep:70 dh_shlibdeps:204 dh_strip:435 dh_testdir:62
+#: dh_testroot:93 dh_usrlocal:136 dh_systemd_enable:280 dh_systemd_start:280
+msgid "SEE ALSO"
+msgstr "参照"
+
+#. type: =item
+#: debhelper.pod:920
+msgid "L<debhelper-compat-upgrade-checklist(7)>"
+msgstr ""
+
+#. type: textblock
+#: debhelper.pod:922
+msgid ""
+"List of supported compat levels and an upgrade checklist for each of them."
+msgstr ""
+
+#. type: =item
+#: debhelper.pod:924
+msgid "F</usr/share/doc/debhelper/examples/>"
+msgstr "F</usr/share/doc/debhelper/examples/>"
+
+#. type: textblock
+#: debhelper.pod:926
+msgid "A set of example F<debian/rules> files that use debhelper."
+msgstr ""
+"debhelper を使うときの F<debian/rules> ファイルの例が格納されています。"
+
+#. type: =item
+#: debhelper.pod:928
+msgid "L<http://joeyh.name/code/debhelper/>"
+msgstr "L<http://joeyh.name/code/debhelper/>"
+
+#. type: textblock
+#: debhelper.pod:930
+msgid "Debhelper web site."
+msgstr "Debhelper の Web サイトです。"
+
+#. type: =head1
+#: debhelper.pod:934 dh:878 dh_auto_build:59 dh_auto_clean:61
+#: dh_auto_configure:64 dh_auto_install:109 dh_auto_test:70 dh_bugfiles:141
+#: dh_builddeb:182 dh_clean:195 dh_compress:249 dh_dwz:169 dh_fixperms:170
+#: dh_gencontrol:214 dh_icons:81 dh_install:383 dh_installcatalogs:134
+#: dh_installchangelogs:371 dh_installcron:86 dh_installdeb:425
+#: dh_installdebconf:239 dh_installdirs:137 dh_installdocs:443
+#: dh_installemacsen:145 dh_installexamples:188 dh_installifupdown:78
+#: dh_installinfo:129 dh_installinitramfs:99 dh_installlogcheck:87
+#: dh_installlogrotate:59 dh_installman:426 dh_installmanpages:204
+#: dh_installmenu:96 dh_installmime:69 dh_installmodules:115 dh_installpam:77
+#: dh_installppp:74 dh_installudev:108 dh_installwm:136 dh_installxfonts:96
+#: dh_link:172 dh_lintian:68 dh_listpackages:40 dh_makeshlibs:462
+#: dh_md5sums:124 dh_movefiles:167 dh_perl:194 dh_prep:76 dh_shlibdeps:210
+#: dh_strip:441 dh_testdir:68 dh_testroot:99 dh_usrlocal:142
+msgid "AUTHOR"
+msgstr "作者"
+
+#. type: textblock
+#: debhelper.pod:936 dh:880 dh_auto_build:61 dh_auto_clean:63
+#: dh_auto_configure:66 dh_auto_install:111 dh_auto_test:72 dh_builddeb:184
+#: dh_clean:197 dh_compress:251 dh_fixperms:172 dh_gencontrol:216
+#: dh_install:385 dh_installchangelogs:373 dh_installcron:88 dh_installdeb:427
+#: dh_installdebconf:241 dh_installdirs:139 dh_installdocs:445
+#: dh_installemacsen:147 dh_installexamples:190 dh_installifupdown:80
+#: dh_installinfo:131 dh_installinit:421 dh_installlogrotate:61
+#: dh_installman:428 dh_installmanpages:206 dh_installmenu:98 dh_installmime:71
+#: dh_installmodules:117 dh_installpam:79 dh_installppp:76 dh_installudev:110
+#: dh_installwm:138 dh_installxfonts:98 dh_link:174 dh_listpackages:42
+#: dh_makeshlibs:464 dh_md5sums:126 dh_movefiles:169 dh_prep:78
+#: dh_shlibdeps:212 dh_strip:443 dh_testdir:70 dh_testroot:101
+msgid "Joey Hess <joeyh@debian.org>"
+msgstr "Joey Hess <joeyh@debian.org>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:5
+#, fuzzy
+#| msgid ""
+#| "debhelper-obsolete-compat - List of no longer supported compat levels"
+msgid ""
+"debhelper-compat-upgrade-checklist - Upgrade checklist for supported "
+"debhelper compat levels"
+msgstr "debhelper-obsolete-compat - サポートされなくなった互換性レベル一覧"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:9
+msgid ""
+"This document is an upgrade checklist of all the supported debhelper compat "
+"levels. It also lists all the support debhelper compat levels."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:12
+msgid ""
+"Information about how to declare the compat level is in L<debhelper(7)/"
+"COMPATIBILITY LEVELS>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:14
+#, fuzzy
+#| msgid ""
+#| "If you are upgrading from an earlier compatibility level, please review "
+#| "L<debhelper-obsolete-compat(7)>."
+msgid ""
+"If you are upgrading from a (now) obsolete compat level, then please refer "
+"to L<debhelper-obsolete-compat(7)>."
+msgstr ""
+"これ以前の互換性レベルからアップグレードしようとしている場合、L<debhelper-"
+"obsolete-compat(7)> を確認して下さい。"
+
+#. type: =head2
+#: debhelper-compat-upgrade-checklist.pod:19
+#, fuzzy
+#| msgid "This is the lowest supported compatibility level."
+msgid "Upgrade checklist for supported compatibility levels"
+msgstr "これはサポートされている最低限の互換性レベルです。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:21
+msgid "These are the available compatibility levels:"
+msgstr "利用可能な互換性レベルは以下の通りです:"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:25
+#, fuzzy
+#| msgid "v5"
+msgid "v15"
+msgstr "v5"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:27
+#: debhelper-compat-upgrade-checklist.pod:51 strings-kept-translations.pod:9
+msgid ""
+"This compatibility level is still open for development; use with caution."
+msgstr ""
+"この互換性レベルは未だ開発中の状態です。使う場合は注意して使ってください。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:29
+#, fuzzy
+#| msgid "Changes from v4 are:"
+msgid "Changes from v14 are:"
+msgstr "v4 からの変更点:"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:33
+#: debhelper-compat-upgrade-checklist.pod:57
+#: debhelper-compat-upgrade-checklist.pod:63
+#: debhelper-compat-upgrade-checklist.pod:68
+#: debhelper-compat-upgrade-checklist.pod:74
+#: debhelper-compat-upgrade-checklist.pod:90
+#: debhelper-compat-upgrade-checklist.pod:95
+#: debhelper-compat-upgrade-checklist.pod:103
+#: debhelper-compat-upgrade-checklist.pod:110
+#: debhelper-compat-upgrade-checklist.pod:125
+#: debhelper-compat-upgrade-checklist.pod:133
+#: debhelper-compat-upgrade-checklist.pod:141
+#: debhelper-compat-upgrade-checklist.pod:150
+#: debhelper-compat-upgrade-checklist.pod:156
+#: debhelper-compat-upgrade-checklist.pod:166
+#: debhelper-compat-upgrade-checklist.pod:174
+#: debhelper-compat-upgrade-checklist.pod:180
+#: debhelper-compat-upgrade-checklist.pod:194
+#: debhelper-compat-upgrade-checklist.pod:205
+#: debhelper-compat-upgrade-checklist.pod:219
+#: debhelper-compat-upgrade-checklist.pod:230
+#: debhelper-compat-upgrade-checklist.pod:246
+#: debhelper-compat-upgrade-checklist.pod:256
+#: debhelper-compat-upgrade-checklist.pod:260
+#: debhelper-compat-upgrade-checklist.pod:265
+#: debhelper-compat-upgrade-checklist.pod:270
+#: debhelper-compat-upgrade-checklist.pod:277
+#: debhelper-compat-upgrade-checklist.pod:283
+#: debhelper-compat-upgrade-checklist.pod:291
+#: debhelper-compat-upgrade-checklist.pod:297
+#: debhelper-compat-upgrade-checklist.pod:301
+#: debhelper-compat-upgrade-checklist.pod:306
+#: debhelper-compat-upgrade-checklist.pod:311
+#: debhelper-compat-upgrade-checklist.pod:320
+#: debhelper-compat-upgrade-checklist.pod:336
+#: debhelper-compat-upgrade-checklist.pod:345
+#: debhelper-compat-upgrade-checklist.pod:361
+#: debhelper-compat-upgrade-checklist.pod:369
+#: debhelper-compat-upgrade-checklist.pod:374
+#: debhelper-compat-upgrade-checklist.pod:396
+#: debhelper-compat-upgrade-checklist.pod:402
+#: debhelper-compat-upgrade-checklist.pod:414
+#: debhelper-compat-upgrade-checklist.pod:422
+#: debhelper-compat-upgrade-checklist.pod:428
+#: debhelper-compat-upgrade-checklist.pod:433
+#: debhelper-compat-upgrade-checklist.pod:438
+#: debhelper-compat-upgrade-checklist.pod:443
+#: debhelper-compat-upgrade-checklist.pod:451
+#: debhelper-compat-upgrade-checklist.pod:461
+#: debhelper-compat-upgrade-checklist.pod:471
+#: debhelper-compat-upgrade-checklist.pod:478
+#: debhelper-compat-upgrade-checklist.pod:490
+#: debhelper-compat-upgrade-checklist.pod:495
+#: debhelper-compat-upgrade-checklist.pod:523
+#: debhelper-compat-upgrade-checklist.pod:540
+#: debhelper-compat-upgrade-checklist.pod:545
+#: debhelper-compat-upgrade-checklist.pod:551
+#: debhelper-compat-upgrade-checklist.pod:557
+#: debhelper-compat-upgrade-checklist.pod:562
+#: debhelper-compat-upgrade-checklist.pod:568
+#: debhelper-compat-upgrade-checklist.pod:577
+#: debhelper-compat-upgrade-checklist.pod:587
+#: debhelper-compat-upgrade-checklist.pod:593
+#: debhelper-compat-upgrade-checklist.pod:616
+#: debhelper-compat-upgrade-checklist.pod:623
+#: debhelper-compat-upgrade-checklist.pod:629
+#: debhelper-compat-upgrade-checklist.pod:635
+#: debhelper-compat-upgrade-checklist.pod:641
+#: debhelper-compat-upgrade-checklist.pod:661
+#: debhelper-compat-upgrade-checklist.pod:666
+#: debhelper-compat-upgrade-checklist.pod:673
+#: debhelper-compat-upgrade-checklist.pod:678
+#: debhelper-compat-upgrade-checklist.pod:683
+#: debhelper-compat-upgrade-checklist.pod:691
+#: debhelper-compat-upgrade-checklist.pod:697
+#: debhelper-compat-upgrade-checklist.pod:702
+#: debhelper-compat-upgrade-checklist.pod:707
+#: debhelper-compat-upgrade-checklist.pod:722
+#: debhelper-compat-upgrade-checklist.pod:726
+#: debhelper-compat-upgrade-checklist.pod:734
+#: debhelper-compat-upgrade-checklist.pod:739 debhelper-obsolete-compat.pod:29
+#: debhelper-obsolete-compat.pod:36 debhelper-obsolete-compat.pod:40
+#: debhelper-obsolete-compat.pod:44 debhelper-obsolete-compat.pod:57
+#: debhelper-obsolete-compat.pod:62 debhelper-obsolete-compat.pod:68
+#: debhelper-obsolete-compat.pod:74 debhelper-obsolete-compat.pod:89
+#: debhelper-obsolete-compat.pod:93 debhelper-obsolete-compat.pod:98
+#: debhelper-obsolete-compat.pod:102 debhelper-obsolete-compat.pod:114
+#: debhelper-obsolete-compat.pod:119 debhelper-obsolete-compat.pod:124
+#: debhelper-obsolete-compat.pod:129 debhelper-obsolete-compat.pod:143
+#: debhelper-obsolete-compat.pod:148 debhelper-obsolete-compat.pod:152
+#: dh_testroot:36 dh_testroot:41 dh_testroot:46
+msgid "-"
+msgstr "-"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:35
+msgid ""
+"The B<dh_auto_install> tool no longer defaults to B<< --destdir=debian/"
+"I<package> >> for source packages only producing a single binary. If this "
+"behaviour is wanted, the package should explicitly activate the B<single-"
+"binary> dh addon (e.g., by adding B<dh-sequence-single-binary> to B<Build-"
+"Depends>) or pass B<--destdir> to B<dh_auto_install>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:41
+#: debhelper-compat-upgrade-checklist.pod:84
+msgid ""
+"The rationale for this change is to avoid \"surprises\" when adding a second "
+"binary package later. Previously, debhelper would silently change behaviour "
+"often resulting in empty binary packages being uploaded to the archive by "
+"mistake. With the new behaviour, the B<single-binary> addon will detect the "
+"mismatch and warn the maintainer of what is about to happen."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:49
+#, fuzzy
+#| msgid "v1"
+msgid "v14"
+msgstr "v1"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:53
+#, fuzzy
+#| msgid "Changes from v3 are:"
+msgid "Changes from v13 are:"
+msgstr "v3 からの変更点:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:59
+msgid ""
+"The B<cmake> buildsystem now passes B<-DCMAKE_BUILD_RPATH_USE_ORIGIN=ON> to "
+"L<cmake(1)> to avoid some reproducibility issues."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:65
+msgid ""
+"The tool B<dh_installsysusers> is now included in the default sequence. This "
+"helper tool will process systemd sysusers files."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:70
+msgid ""
+"Use of the B<dh_gconf> command in override and hook targets now causes an "
+"error. The B<dh_gconf> command has been a no-op for years and was removed "
+"in debhelper 13.4."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:76
+msgid ""
+"The B<dh> sequencer will warn if the B<single-binary> addon is implicitly "
+"activated to warn maintainers of the pending compat 15 change in "
+"B<dh_auto_install>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:79
+msgid ""
+"Maintainers are urged to either explicitly activate the B<single-binary> "
+"addon to preserve the existing behaviour (e.g., by adding B<dh-sequence-"
+"single-binary> to Build-Depends), or explicitly passing B<--destdir> to "
+"B<dh_auto_install> if used and then passing B<--without single-binary> to "
+"B<dh> (the latter to silence the warning)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:92
+msgid ""
+"The B<dh_installalternatives> tool will now be run after B<dh_link> rather "
+"than after B<dh_installinitramfs> in the default B<dh> sequence."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:97
+msgid ""
+"The B<dh_installpam> tool will now install PAM configuration files under "
+"F<< /usr/lib/pam.d/I<package> >> instead of F<< /etc/pam.d/I<package> >>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:100
+msgid ""
+"Please consider using the \"rm_conffile\" feature from L<dh_installdeb(1)> "
+"to ensure the proper removal of previous PAM files."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:105
+msgid ""
+"The B<meson+ninja> and B<cmake> build systems now use B<meson install> and "
+"B<cmake --install>, respectively, instead of B<ninja install> and B<make "
+"install> in the L<dh_auto_install(1)> call. Any override of "
+"B<dh_auto_install> that passes extra parameters to the upstream build system "
+"should be reviewed."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:112
+msgid ""
+"The B<cmake> build system passes B<< -DBUILD_TESTING:BOOL=OFF >> to B<cmake> "
+"if B<DEB_BUILD_OPTIONS> contains B<nocheck> thus disabling CTest."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:117
+#, fuzzy
+#| msgid "v1"
+msgid "v13"
+msgstr "v1"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:119
+msgid "This is the recommended mode of operation."
+msgstr "これが動作推奨モードです。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:121
+#, fuzzy
+#| msgid "Changes from v10 are:"
+msgid "Changes from v12 are:"
+msgstr "v10 からの変更点:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:127
+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-compat-upgrade-checklist.pod:135
+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-compat-upgrade-checklist.pod:143
+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). If you need them for B<*-indep> targets, you can add an explicit "
+"Build-Depends on B<dh-sequence-elf-tools>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:152
+msgid ""
+"The third-party B<gradle> build system (from B<gradle-debian-helper> "
+"package) now runs the upstream-provided test suite automatically. To "
+"suppress such behavior, override B<dh_auto_test>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:158
+msgid ""
+"The B<dh_installman> tool now aborts if it sees conflicting definitions of a "
+"manpage. This typically happens if the upstream build system is installing "
+"a compressed version and the package lists an uncompressed version of the "
+"manpage in F<< debian/I<package>.manpages >>. Often the easiest fix is to "
+"remove the manpage from F<< debian/I<package>.manpages >> (assuming both "
+"versions are identical)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:168
+msgid ""
+"The B<dh_auto_*> helpers now reset the environment variables B<HOME> and "
+"common B<XDG_*> variable. Please see description of the environment "
+"variables in L</ENVIRONMENT> for how this is handled."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:172
+msgid "I<This feature changed between debhelper 13 and debhelper 13.2.>"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:176
+msgid ""
+"The B<dh> command will now error if an override or hook target for an "
+"obsolete command are present in F<debian/rules> (e.g. "
+"B<override_dh_systemd_enable:>)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:182
+msgid ""
+"The B<dh_missing> command will now default to B<--fail-missing>. This can "
+"be reverted to a non-fatal warning by explicitly passing B<--list-missing> "
+"like it was in compat 12."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:186
+msgid ""
+"If you do not want the warning either, please omit the call to "
+"B<dh_missing>. If you use the B<dh> command sequencer, then you can do this "
+"by inserting an empty override target in the F<debian/rules> file of the "
+"relevant package. As an example:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:191
+#, no-wrap
+msgid ""
+" # Disable dh_missing\n"
+" override_dh_missing:\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:196
+msgid ""
+"The B<dh> command sequencer now runs B<dh_installtmpfiles> in the default "
+"sequence. The B<dh_installtmpfiles> takes over handling of tmpfiles.d "
+"configuration files. Related functionality in B<dh_installsystemd> is now "
+"disabled."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:201
+msgid ""
+"Note that B<dh_installtmpfiles> responds to F<< debian/I<package>.tmpfiles "
+">> where B<dh_installsystemd> used a name without the trailing \"s\"."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:207
+msgid ""
+"Many B<dh_*> tools now support limited variable expansion via the B<${foo}> "
+"syntax. In many cases, this can be used to reference paths that contain "
+"either spaces or L<dpkg-architecture(1)> values. While this can reduce the "
+"need for L<dh-exec(1)> in some cases, it is B<not> a replacement L<dh-"
+"exec(1)> in general. If you need filtering, renaming, etc., the package "
+"will still need L<dh-exec(1)>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:214
+msgid ""
+"Please see L</Substitutions in debhelper config files> for syntax and "
+"available substitution variables. To B<dh_*> tool writers, substitution "
+"expansion occurs as a part of the B<filearray> and B<filedoublearray> "
+"functions."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:221
+msgid ""
+"The B<dh> command sequencer will now skip all hook and override targets for "
+"B<dh_auto_test>, B<dh_dwz> and B<dh_strip> when B<DEB_BUILD_OPTIONS> lists "
+"the relevant B<nocheck> / B<nostrip> options."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:225
+msgid ""
+"Any package relying on these targets to always be run should instead move "
+"relevant logic out of those targets. E.g. non-test related packaging code "
+"from B<override_dh_auto_test> would have to be moved to "
+"B<execute_after_dh_auto_build> or B<execute_before_dh_auto_install>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:232
+msgid ""
+"The B<cmake> buildsystem now passes B<-"
+"DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON> to L<cmake(1)> to speed up automatic "
+"installation process. If for some reason you need previous behavior, "
+"override the flag:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:236
+#, no-wrap
+msgid ""
+" dh_auto_configure -- -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=OFF ...\n"
+"\n"
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:240
+#, fuzzy
+#| msgid "v1"
+msgid "v12"
+msgstr "v1"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:242
+#, fuzzy
+#| msgid "Changes from v10 are:"
+msgid "Changes from v11 are:"
+msgstr "v10 からの変更点:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:248
+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>) "
+"is now the default."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:252
+msgid ""
+"If an unversioned dependency in the shlibs file is wanted, this can be "
+"obtained by passing B<-VNone> instead. However, please see "
+"L<dh_makeshlibs(1)> for the caveat of unversioned dependencies."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:258
+#, fuzzy
+#| msgid "The B<-s> (B<--same-arch>) option is removed."
+msgid ""
+"The B<-s> (B<--same-arch>) option is removed. Please use B<-a> (B<--arch>) "
+"instead."
+msgstr "B<-s>, B<--same-arch> オプションは削除されました。"
+
+# TRANS: 実際の warning に合わせて deprecate とする
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:262
+msgid ""
+"Invoking B<dh_clean -k> now causes an error instead of a deprecation warning."
+msgstr ""
+"B<dh_clean -k> の起動は deprecate 警告ではなくエラーを起こすようになりまし"
+"た。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:267
+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-compat-upgrade-checklist.pod:272
+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 "
+"circumstance. This bug is now removed and will cause helpers that rely on "
+"the bug to fail with a \"command not found\"-error."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:279
+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 "
+"also see the files installed by other helpers."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:285
+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 "
+"upstart configuration file. The error is there to remind the package "
+"maintainer to ensure the proper removal of the conffiles shipped in previous "
+"versions of the package (if any)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:293
+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 "
+"be invalid."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:299
+msgid "The B<dh_missing> tool will now default to B<--list-missing>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:303
+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-compat-upgrade-checklist.pod:308
+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-compat-upgrade-checklist.pod:313
+msgid ""
+"The standard sequence in B<dh> now includes B<dh_dwz> and "
+"B<dh_installinitramfs> by default. This makes the B<dwz> and "
+"B<installinitramfs> sequences obsolete and they will now fail with an "
+"error. If you want to skip these commands, then please insert an empty "
+"override target for them in F<debian/rules> (e.g. I<override_dh_dwz:>)"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:322
+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 "
+"should be B</usr/libexec> (per FHS 3.0, adopted in Debian Policy 4.1.5)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:327
+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. "
+"via the following example:"
+msgstr ""
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:331
+#, fuzzy, no-wrap
+#| msgid ""
+#| "\toverride_dh_auto_configure:\n"
+#| "\t\tdh_auto_configure -- --with-foo --disable-bar\n"
+#| "\n"
+msgid ""
+" override_dh_auto_configure:\n"
+" \tdh_auto_configure -- --libexecdir=/usr/libexec\n"
+"\n"
+msgstr ""
+"\toverride_dh_auto_configure:\n"
+"\t\tdh_auto_configure -- --with-foo --disable-bar\n"
+"\n"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:334
+msgid "Note the B<--> before the B<--libexecdir> parameter."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:338
+msgid "B<Retroactively removed in debhelper/13.5>:"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:340
+msgid ""
+"The B<dh_installdeb> tool would no longer installs the maintainer provided "
+"F<conffiles> file as it was deemed unnecessary. However, the B<remove-on-"
+"upgrade> from dpkg/1.20 made the file relevant again and B<dh_installdeb> "
+"now installs it again in compat levels 12+."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:347
+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-compat-upgrade-checklist.pod:352
+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-compat-upgrade-checklist.pod:356
+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-compat-upgrade-checklist.pod:363
+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-compat-upgrade-checklist.pod:371
+msgid ""
+"B<dh_installsystemduser> is now included in the B<dh> standard sequence by "
+"default."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:376
+msgid ""
+"The B<python-distutils> buildsystem is now removed. Please use the third-"
+"party build system B<pybuild> instead."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:381
+msgid "v11"
+msgstr "v11"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:383
+#, fuzzy
+#| msgid "This mode is deprecated."
+msgid "This mode is discouraged."
+msgstr "このモードは廃止されました。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:385
+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-compat-upgrade-checklist.pod:392
+msgid "Changes from v10 are:"
+msgstr "v10 からの変更点:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:398
+#, fuzzy
+#| msgid ""
+#| "B<dh_installinit> no longer installs F<service> or F<tmpfile> files, nor "
+#| "generates maintainer scripts for those files. Use B<dh_systemd_enable> "
+#| "and B<dh_systemd_start> instead."
+msgid ""
+"B<dh_installinit> no longer installs F<service> or F<tmpfile> files, nor "
+"generates maintainer scripts for those files. Please use the new "
+"B<dh_installsystemd> helper."
+msgstr ""
+"B<dh_installinit> は F<service> ファイルや F<tmpfile> ファイルをインストール"
+"しなくなり、さらにはこれらのファイルに対するメンテナスクリプトも生成しなくな"
+"りました。代わりに B<dh_systemd_enable> や B<dh_systemd_start> を使ってくださ"
+"い。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:404
+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> "
+"sequence for B<dh> has also been removed. If you need to disable the "
+"B<dh_installsystemd> helper tool, please use an empty override target."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:410
+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-compat-upgrade-checklist.pod:416
+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-compat-upgrade-checklist.pod:420
+msgid "The vast majority of all packages will be unaffected by this change."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:424
+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."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:430
+msgid ""
+"The B<autoconf> buildsystem now passes B<--runstatedir=/run> to F<./"
+"configure>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:435
+msgid ""
+"The B<cmake> buildsystem now passes B<-DCMAKE_INSTALL_RUNSTATEDIR=/run> to "
+"L<cmake(1)>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:440
+msgid ""
+"B<dh_installman> will now prefer detecting the language from the path name "
+"rather than the extension."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:445
+#, 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<dh_auto_install> will now only create the destination directory it needs. "
+"Previously, it would create the package build directory for all packages. "
+"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> は、実行している debhelper コマンドをスキップした場合にはパッケージビル"
+"ドディレクトリを作成しなくなりました。これは debhelper コマンドのみを使ってビ"
+"ルドされているパッケージには影響しませんが、debhelper に含まれていないコマン"
+"ドのバグを暴くかもしれません。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:453
+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 "
+"match anything or reference a path that does not exist."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:457
+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 "
+"specify documentation."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:463
+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 "
+"as B<dh_install>. Furthermore, they now also fall back to F<debian/tmp> like "
+"B<dh_install>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:468
+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-compat-upgrade-checklist.pod:473
+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 "
+"the B<PERL5LIB> environment variable. E.g. by adding B<export PERL5LIB=.> "
+"in their debian/rules file (or similar)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:480
+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 "
+"avoid a lot of packages failing to build at the same time."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:485
+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 "
+"drops support for it, then this variable will be removed retroactively from "
+"existing compat levels as well."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:492
+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-compat-upgrade-checklist.pod:497
+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 "
+"recommendation from Debian policy §12.3 (since version 3.9.7)."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:501
+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 "
+"change is not relevant for that source package and you can skip to the next "
+"change."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:506
+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<-"
+"doc> package. If they find such a I<doc-main-package>, they will now "
+"install the documentation into the path F<< /usr/share/doc/I<doc-main-"
+"package> >> in the given doc package. I.e. the path can change but the "
+"documentation is still shipped in the I<-doc> package."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:514
+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 "
+"to diverge from Debian policy recommendation."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:518
+msgid ""
+"Some documentation will not be affected by this change. These exceptions "
+"include the copyright file, changelog files, README.Debian, etc. These "
+"files will still be installed in the path F<< /usr/share/doc/I<package> >>."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:525
+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 "
+"for an ELF header to determine if a given file is an shared object or an ELF "
+"executable."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:530
+msgid "This change may cause the tools to process more files than previously."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:534
+msgid "v10"
+msgstr "v10"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:536
+msgid "Changes from v9 are:"
+msgstr "v9 からの変更点:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:542
+msgid ""
+"B<dh_installinit> will no longer installs a file named debian/I<package> as "
+"an init script."
+msgstr ""
+"B<dh_installinit> は、init スクリプトとして debian/I<package> という名前で"
+"ファイルをインストールしなくなりました。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:547
+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 "
+"binNMUs."
+msgstr ""
+"B<dh_installdocs> は、アーキテクチャ \"all\" と 非 \"all\" のパッケージ間で "
+"--link-doc で作られたリンクが binNMU を壊すのを検知してエラーを吐き出すように"
+"なります。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:553
+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 ""
+"B<dh_installdeb>は、メンテナが提供した debian/I<package>.shlibs ファイルをイ"
+"ンストールしなくなりました。現在これは、B<dh_makeshlibs> によって代わりに行わ"
+"れます。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:559
+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 ""
+"B<dh_installwm> は、man ページが見つからない場合に壊れたパッケージを作成する"
+"のを拒否するようになりました (x-window-manager の alternative 登録に必要)。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:564
+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 は、並列ビルドをサポートしている全てのビルドシステムで、デフォルト"
+"で B<--parallel> を使用します。これは、B<--no-parallel> を使うか B<--max-"
+"parallel> へ 1 の値を渡すことで無効にできます。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:570
+msgid ""
+"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."
+msgstr ""
+"B<dh> コマンドは、使われなくなった \"手動シーケンスコントロール\" パラメー"
+"ター(B<--before>, B<--after> など)を受け付けなくなります。代わりに override "
+"ターゲットを使ってください。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:574
+msgid ""
+"B<Retroactively applied to earlier compat levels>: B<dh> no longer accepts "
+"any of these since debhelper/12.4."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:579
+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 "
+"the \"build\" sequence and skip it if it did."
+msgstr ""
+"B<dh> コマンドはどのコマンドが実行されたのかを追跡するのにログファイルを使わ"
+"なくなります。B<dh> コマンドは I<依然として> 既に \"build\" シーケンスを実行"
+"したかどうかを記録し、もし実行されていたらスキップします。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:583
+msgid "The main effects of this are:"
+msgstr "これの主な影響:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:589
+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 "
+"full \"clean and rebuild\" cycle)"
+msgstr ""
+"これにより、I<install> 及び I<binary> シーケンスを (\"clean 及び rebuild\" の"
+"サイクルを全て実施する必要が無くなり) 気軽に再実行可能になったため、デバッグ"
+"がより簡単になっています。"
+
+# FIXME: 訳してもわからない...
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:595
+#, fuzzy
+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 "
+"happens in the same override target everything will work as before."
+msgstr ""
+"主な注意点としては、B<dh_*> は単一の override ターゲット内で何が起こったのか"
+"だけを記録するようになったことです。指定された B<dh_cmd> コマンドへの全ての呼"
+"び出しが同一の override ターゲット内で起きた場合は、以前と同様に全てが動作し"
+"ます。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:600
+msgid "Example of where it can go wrong:"
+msgstr "動かなくなる可能性がある例:"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:602
+#, no-wrap
+msgid ""
+" override_dh_foo:\n"
+" dh_foo -pmy-pkg\n"
+"\n"
+msgstr ""
+" override_dh_foo:\n"
+" dh_foo -pmy-pkg\n"
+"\n"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:605
+#, no-wrap
+msgid ""
+" override_dh_bar:\n"
+" dh_bar\n"
+" dh_foo --remaining\n"
+"\n"
+msgstr ""
+" override_dh_bar:\n"
+" dh_bar\n"
+" dh_foo --remaining\n"
+"\n"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:609
+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 "
+"issue is not limited to B<--remaining>, but also includes B<-a>, B<-i>, etc."
+msgstr ""
+"この場合、B<dh_foo --remaining> の呼び出しは、B<dh_foo -pmy-pkg> が分かれてい"
+"る override ターゲット内にあるため、I<my-pkg> I<も>含みます。この問題は B<--"
+"remaining> に限らず B<-a>, B<-i> なども含みます。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:618
+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 "
+"work properly and packages have begun to rely on the incomplete shell "
+"escaping (e.g. quoting file names)."
+msgstr ""
+"B<dh_installdeb> コマンドは F<maintscript> 設定ファイル内の行をシェルエスケー"
+"プするようになりました。これは元々意図していた動作でしたが正しく動作しておら"
+"ず、パッケージが不完全なシェルエスケープ (例: ファイル名のクォート) に依存す"
+"るようになっていました。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:625
+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-"
+"upgrade>."
+msgstr ""
+"B<dh_installinit> コマンドは標準で B<--restart-after-upgrade> を利用するよう"
+"になりました。以前の動作が必要なパッケージには B<--no-restart-after-upgrade> "
+"を利用してください。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:631
+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 ""
+"B<autoreconf> シーケンスが標準で有効になりました。指定のパッケージでこの動作"
+"を望まない場合は、B<dh> に B<--without autoreconf> を指定してください。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:637
+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 ""
+"B<systemd> シーケンスが標準で有効になりました。指定のパッケージでこの動作を望"
+"まない場合は、B<dh> に B<--without systemd> を指定してください。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:643
+#, 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> は、実行している debhelper コマンドをスキップした場合にはパッケージビル"
+"ドディレクトリを作成しなくなりました。これは debhelper コマンドのみを使ってビ"
+"ルドされているパッケージには影響しませんが、debhelper に含まれていないコマン"
+"ドのバグを暴くかもしれません。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:648
+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-compat-upgrade-checklist.pod:655
+msgid "v9"
+msgstr "v9"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:657
+msgid "Changes from v8 are:"
+msgstr "v8 からの変更点:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:663
+msgid ""
+"Multiarch support. In particular, B<dh_auto_configure> passes multiarch "
+"directories to autoconf in --libdir and --libexecdir."
+msgstr ""
+"multiarch をサポートします。特に B<dh_auto_configure> は autoconfコマンドへ "
+"--libdir や --libexecdir に multiarch 用途のディレクトリを渡すようになってい"
+"ます。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:668
+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 "
+"targets that exist in the rules file. There's no need to define an explicit "
+"binary target with explicit dependencies on the other targets."
+msgstr ""
+"dh コマンドは debian/rules に記載されているターゲット間の一般的な依存性を考慮"
+"します。そのため、\"dh binary\" は rules ファイルに存在する build, build-"
+"arch, build-indep, install 等のターゲットを実行していきます。つまり、他のター"
+"ゲットに関する依存関係をいちいち細かく明示した binary ターゲットを用意する必"
+"要はありません。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:675
+msgid ""
+"B<dh_strip> compresses debugging symbol files to reduce the installed size "
+"of -dbg packages."
+msgstr ""
+"B<dh_strip> はデバッグシンボルファイルを圧縮し、-dbg パッケージのインストール"
+"時に必要とする容量を削減します。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:680
+msgid ""
+"B<dh_auto_configure> does not include the source package name in --"
+"libexecdir when using autoconf."
+msgstr ""
+"B<dh_auto_configure> は、autoconf を使ったときに、--libexecdir にソースパッ"
+"ケージ名を追加しなくなりました。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:685
+msgid "B<dh> does not default to enabling --with=python-support"
+msgstr ""
+"B<dh> は --with=python-support オプションを、デフォルトでは無効にするようにな"
+"りました。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:687
+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 "
+"regardless of compat level)"
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:693
+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 ""
+"すべての B<dh_auto_>I<*> debhelper プログラムと B<dh> コマンドは、B<dpkg-"
+"buildflags> で指定される環境変数を設定します。すでに該当する環境変数が設定さ"
+"れている場合は設定を行いません。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:699
+msgid ""
+"B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and LDFLAGS "
+"to perl F<Makefile.PL> and F<Build.PL>"
+msgstr ""
+"B<dh_auto_configure> は、B<dpkg-buildflags> によって設定されるCFLAGS、"
+"CPPFLAGS, LDFLAGS パラメータを F<Makefile.PL> や F<Build.PL> へ引き渡します。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:704
+msgid ""
+"B<dh_strip> puts separated debug symbols in a location based on their build-"
+"id."
+msgstr ""
+"B<dh_strip> は build-id に基づく場所に、分離したデバッグシンボルを配置しま"
+"す。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:709
+msgid ""
+"Executable debhelper config files are run and their output used as the "
+"configuration."
+msgstr ""
+"実行可能権限を付与した debhelper 用の設定ファイルは、実行され出力が設定として"
+"扱われます。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:714
+#: debhelper-compat-upgrade-checklist.pod:745
+#: debhelper-compat-upgrade-checklist.pod:749 debhelper-obsolete-compat.pod:81
+#: debhelper-obsolete-compat.pod:135 debhelper-obsolete-compat.pod:158
+#: debhelper-obsolete-compat.pod:165 debhelper-obsolete-compat.pod:174
+msgid "This mode is deprecated."
+msgstr "このモードは廃止されました。"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:716
+msgid "v8"
+msgstr "v8"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:718
+msgid "Changes from v7 are:"
+msgstr "v7 からの変更点:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:724
+msgid ""
+"Commands will fail rather than warning when they are passed unknown options."
+msgstr ""
+"未定義のオプションを渡そうとすると、警告文を出して処理続行するのではなく、エ"
+"ラーにして処理を失敗させるようになりました。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:728
+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. "
+"Also, libraries in unusual locations that B<dpkg-gensymbols> would not have "
+"processed before will be passed to it, a behavior change that can cause some "
+"packages to fail to build."
+msgstr ""
+"B<dh_makeshlibs> は、shlibs ファイルを作成する為に、B<dpkg-gensymbols> をすべ"
+"ての共有ライブラリに対して実行するようになりました。B<-X> を指定すると実行を"
+"除外するライブラリを指定できます。また、通常ではない場所にライブラリがある為 "
+"B<dh_makeshlibs> へ渡す前に B<dpkg-gensymbols> が処理できないような場合、パッ"
+"ケージのビルドが失敗に終わるようになりました。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:736
+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 "
+"$@>\"."
+msgstr ""
+"B<dh> は最初のパラメータとして、一連の処理の名前を指定し、その次にオプション"
+"を記載しなければならなくなりました。つまり、\"B<dh $@ --foo>\" が正し"
+"く、\"B<dh --foo $@>\" は間違いとなります。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:741
+msgid ""
+"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
+"F<Makefile.PL>."
+msgstr ""
+"B<dh_auto_>I<*> は F<Makefile.PL> ファイルよりも、Perl の B<Module::Build> モ"
+"ジュールを優先して利用するようになりました。"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:747 debhelper-obsolete-compat.pod:21
+msgid "v7"
+msgstr "v7"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:751 debhelper-obsolete-compat.pod:23
+msgid "This is the lowest supported compatibility level."
+msgstr "これはサポートされている最低限の互換性レベルです。"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:753
+msgid ""
+"If you are upgrading from an earlier compatibility level, please review "
+"L<debhelper-obsolete-compat(7)>."
+msgstr ""
+"これ以前の互換性レベルからアップグレードしようとしている場合、L<debhelper-"
+"obsolete-compat(7)> を確認して下さい。"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:762
+#, fuzzy
+#| msgid "L<debhelper(7)>"
+msgid "L<debhelper-obsolete-compat(7)>"
+msgstr "L<debhelper(7)>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:764
+msgid ""
+"Upgrading from a (now) obsolete compatibility level? This document covers "
+"the upgrade checklist up to the earliest supported level."
+msgstr ""
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:767 debhelper-obsolete-compat.pod:180
+#: dh:874 dh_auto_build:55 dh_auto_clean:57 dh_auto_configure:60
+#: dh_auto_install:105 dh_auto_test:66 dh_builddeb:178 dh_clean:191
+#: dh_compress:245 dh_dwz:165 dh_fixperms:166 dh_gencontrol:210 dh_install:379
+#: dh_installcatalogs:130 dh_installchangelogs:367 dh_installcron:82
+#: dh_installdeb:421 dh_installdebconf:235 dh_installdirs:133
+#: dh_installdocs:439 dh_installexamples:184 dh_installifupdown:74
+#: dh_installinfo:125 dh_installlogcheck:83 dh_installlogrotate:55
+#: dh_installman:422 dh_installmanpages:200 dh_installmime:65
+#: dh_installmodules:111 dh_installpam:73 dh_installppp:70 dh_installudev:104
+#: dh_installwm:132 dh_installxfonts:92 dh_link:168 dh_listpackages:36
+#: dh_makeshlibs:458 dh_md5sums:120 dh_movefiles:163 dh_perl:190 dh_prep:72
+#: dh_strip:437 dh_testdir:64 dh_testroot:95 dh_usrlocal:138
+#: dh_systemd_start:282
+msgid "L<debhelper(7)>"
+msgstr "L<debhelper(7)>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:769
+msgid ""
+"General information about the debhelper framework. This document also covers "
+"how to declare your chosen debhelper compat level."
+msgstr ""
+
+#. type: =head1
+#: debhelper-compat-upgrade-checklist.pod:774 debhelper-obsolete-compat.pod:182
+#: dh_installinit:419 dh_systemd_enable:284 dh_systemd_start:284
+msgid "AUTHORS"
+msgstr "作者"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:776 debhelper-obsolete-compat.pod:184
+#: dh_dwz:171 dh_installinitramfs:101
+msgid "Niels Thykier <niels@thykier.net>"
+msgstr "Niels Thykier <niels@thykier.net>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:778 debhelper-obsolete-compat.pod:186
+msgid "Joey Hess"
+msgstr "Joey Hess"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:3
+msgid "debhelper-obsolete-compat - List of no longer supported compat levels"
+msgstr "debhelper-obsolete-compat - サポートされなくなった互換性レベル一覧"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:7
+msgid ""
+"This document contains the upgrade guidelines from all compat levels which "
+"are no longer supported. Accordingly it is mostly for historical purposes "
+"and to assist people upgrading from a non-supported compat level to a "
+"supported level."
+msgstr ""
+"このドキュメントには、もはやサポートされていない全ての互換性レベルからのアッ"
+"プグレードに対するガイドラインが含まれています。従って、殆どが当時の目的につ"
+"いての説明と、サポートされていない互換性レベルからサポートされているレベルへ"
+"のアップグレードを支援するためのものになります。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:12
+msgid "For upgrades from supported compat levels, please see L<debhelper(7)>."
+msgstr ""
+"サポートされている互換性レベルからのアップグレードについては、"
+"L<debhelper(7)> を参照して下さい。"
+
+#. type: =head1
+#: debhelper-obsolete-compat.pod:14
+msgid "UPGRADE LIST FOR COMPAT LEVELS"
+msgstr "互換性レベルの更新一覧"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:16
+msgid ""
+"The following is the list of now obsolete compat levels and their changes."
+msgstr "以下は過去のものとなった互換性レベルとその変更の一覧です。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:25
+msgid "Changes from v6 are:"
+msgstr "v6 からの変更点:"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:31
+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 "
+"using B<--sourcedir>). This allows B<dh_install> to interoperate with "
+"B<dh_auto_install>, which installs to F<debian/tmp>, without needing any "
+"special parameters."
+msgstr ""
+"もし、F<debian/tmp> 以下にあるようなファイルが、カレントディレクトリにない場"
+"合 (もしくは、B<--sourcedir> で指定したディレクトリにない場合) 、"
+"B<dh_install> は F<debian/tmp> を探しにいくようになりました。この振る舞いの変"
+"更により、B<dh_install> に特に何か引数を指定しなくても、F<debian/tmp> にイン"
+"ストールしようとする B<dh_auto_install> と協調して動作できるようになりまし"
+"た。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:38
+msgid "B<dh_clean> will read F<debian/clean> and delete files listed there."
+msgstr ""
+"B<dh_clean> は F<debian/clean> を読み、そこに記載されているファイルを消すよう"
+"になりました。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:42
+msgid "B<dh_clean> will delete toplevel F<*-stamp> files."
+msgstr ""
+"B<dh_clean> はビルドディレクトリの最上位の階層にある F<*-stamp> ファイルを消"
+"すようになりました。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:46
+msgid ""
+"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
+"none is specified."
+msgstr ""
+"B<dh_installchangelogs> は、何も指定しなくてもどのファイルが upstream の "
+"changelog であるかを推定するようになりました。"
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:51
+msgid "v6"
+msgstr "v6"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:53
+msgid "Changes from v5 are:"
+msgstr "v5 からの変更点:"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:59
+msgid ""
+"Commands that generate maintainer script fragments will order the fragments "
+"in reverse order for the F<prerm> and F<postrm> scripts."
+msgstr ""
+"メンテナンス用スクリプトの一部を生成するコマンドは、F<prerm> と F<postrm> ス"
+"クリプト用にこれらを逆順に並び替えるようになりました。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:64
+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 "
+"directory."
+msgstr ""
+"B<dh_installwm> は F<x-window-manager.1.gz> という slave な man ページへリン"
+"クを作るようになりました。これはパッケージビルドディレクトリ内の F<usr/share/"
+"man/man1> ディレクトリに man ページがある場合に行われます。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:70
+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> は、B<CVS:.svn:.git> のように除外する対象を "
+"B<DH_ALWAYS_EXCLUDE> に指定しても該当するファイルを削除していませんでした。本"
+"互換性レベルでは削除するようになっています。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:76
+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> は、パッケージビルドディレクトリにすでに存在する man ページ"
+"を上書きしても良くなりました。これより以前の互換性レベルの元では、このような"
+"動作は何の警告もなく拒絶されていました。"
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:83
+msgid "v5"
+msgstr "v5"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:85
+msgid "Changes from v4 are:"
+msgstr "v4 からの変更点:"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:91
+msgid "Comments are ignored in debhelper config files."
+msgstr "debhelper 設定ファイルでのコメントは無視されるようになりました。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:95
+msgid ""
+"B<dh_strip --dbg-package> now specifies the name of a package to put "
+"debugging symbols in, not the packages to take the symbols from."
+msgstr ""
+"B<dh_strip --dbg-package> により、デバッグ用シンボルテーブルに対してパッケー"
+"ジの名前を指定できるようになりました。以前はデバッグ用シンボルテーブルから"
+"パッケージの名前を取り出していました。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:100
+msgid "B<dh_installdocs> skips installing empty files."
+msgstr "B<dh_installdocs> は空ファイルのインストールを飛ばします。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:104
+msgid "B<dh_install> errors out if wildcards expand to nothing."
+msgstr ""
+"B<dh_install> は、ワイルドカードに該当するファイルが無い時はエラーを出力する"
+"ようになりました。"
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:108
+msgid "v4"
+msgstr "v4"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:110
+msgid "Changes from v3 are:"
+msgstr "v3 からの変更点:"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:116
+msgid ""
+"B<dh_makeshlibs -V> will not include the Debian part of the version number "
+"in the generated dependency line in the shlibs file."
+msgstr ""
+"B<dh_makeshlibs -V> は、shlibs ファイル内の生成された依存関係を示す行のバー"
+"ジョン番号について、debian リビジョンを含めないようになりました。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:121
+msgid ""
+"You are encouraged to put the new B<${misc:Depends}> into F<debian/control> "
+"to supplement the B<${shlibs:Depends}> field."
+msgstr ""
+"F<debian/control> へ、B<${shlibs:Depends}> の他に B<${misc:Depends}> を新たに"
+"指定するのが推奨されるようになりました。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:126
+msgid ""
+"B<dh_fixperms> will make all files in F<bin/> directories and in F<etc/init."
+"d> executable."
+msgstr ""
+"B<dh_fixperms> により、F<bin/> ディレクトリ及び F <etc/init.d> 以下にあるすべ"
+"てのファイルに実行権限が付与されるようになりました。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:131
+msgid "B<dh_link> will correct existing links to conform with policy."
+msgstr ""
+"B<dh_link>は、既存のリンクであってもポリシーに合わせ、リンクを修正するように"
+"なりました。"
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:137
+msgid "v3"
+msgstr "v3"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:139
+msgid "This mode works like v2, with the following additions:"
+msgstr ""
+"このモードは v2 のモードと同じ動作をしますが、以下の追加機能があります:"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:145
+msgid ""
+"Debhelper config files support globbing via B<*> and B<?>, when appropriate. "
+"To turn this off and use those characters raw, just prefix with a backslash."
+msgstr ""
+"debhelper の設定ファイルは、B<*> や B<?> のワイルドカードによるファイル名指定"
+"が利用できます。この機能を無効にし、これらワイルドカード文字をそのままの文字"
+"として扱うには、バックスラッシュを文字の前に置いてください。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:150
+msgid ""
+"B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call "
+"B<ldconfig>."
+msgstr ""
+"B<dh_makeshlibs> により、F<postinst> や F<postrm> スクリプトが B<ldconfig> を"
+"呼び出すようになっています。"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:154
+msgid ""
+"Every file in F<etc/> is automatically flagged as a conffile by "
+"B<dh_installdeb>."
+msgstr ""
+"B<dh_installdeb> は、F<etc/> 以下のすべてのファイルを自動的に conffile として"
+"扱います。"
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:160
+msgid "v2"
+msgstr "v2"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:162
+msgid ""
+"In this mode, debhelper will consistently use debian/I<package> as the "
+"package tree directory for every package that is built."
+msgstr ""
+"このモードを指定すると、常に debian/I<package> を全パッケージのビルドディレク"
+"トリとして利用するようになります。"
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:167
+msgid "v1"
+msgstr "v1"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:169
+msgid ""
+"This is the original debhelper compatibility level, and so it is the default "
+"one. In this mode, debhelper will use F<debian/tmp> as the package tree "
+"directory for the first binary package listed in the control file, while "
+"using debian/I<package> for all other packages listed in the F<control> file."
+msgstr ""
+"これは debhelper が元来持つ互換性レベルで、これがデフォルトです。このモードで"
+"は、debhelper はF<debian/tmp> を、control ファイルの最初に記載されているバイ"
+"ナリパッケージのビルドディレクトリとして利用しようとします。また、debian/"
+"I<package> を F<control> 内に指定されている全パッケージに対して適用します。"
+
+#. type: textblock
+#: dh:5
+msgid "dh - debhelper command sequencer"
+msgstr "dh - debhelper コマンドシーケンサー"
+
+#. type: textblock
+#: dh:24
+msgid ""
+"B<dh> I<sequence> [B<--with> I<addon>[B<,>I<addon> ...]] [B<--list>] "
+"[S<I<debhelper options>>]"
+msgstr ""
+"B<dh> I<sequence> [B<--with> I<addon>[B<,>I<addon> ...]] [B<--list>] "
+"[S<I<debhelper オプション>>]"
+
+#. type: textblock
+#: dh:28
+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-"
+"indep>, B<build>, B<clean>, B<install-indep>, B<install-arch>, B<install>, "
+"B<binary-arch>, B<binary-indep>, and B<binary>."
+msgstr ""
+"B<dh> は一連の debhelper コマンドを実行します。F<debian/rules> ファイルに記載"
+"されたターゲットに対応する I<sequence>をサポートします。サポートするターゲッ"
+"ト: B<build-arch>, B<build-indep>, B<build>, B<clean>, B<install-indep>, "
+"B<install-arch>, B<install>, B<binary-arch>, B<binary-indep>, B<binary> で"
+"す。"
+
+#. type: =head1
+#: dh:33
+#, fuzzy
+#| msgid "OVERRIDE TARGETS"
+msgid "OVERRIDE AND HOOK TARGETS"
+msgstr "override ターゲット"
+
+#. type: textblock
+#: dh:35
+#, fuzzy
+#| 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."
+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. It is also possible "
+"to inject a command before or after any step without affecting the step "
+"itself."
+msgstr ""
+"B<dh> が利用する F<debian/rules> にて、override ターゲットを指定することで、"
+"呼び出される一連の処理途中で動作を変更できます。"
+
+#. type: =head2
+#: dh:40
+msgid "Injecting commands before or after a step"
+msgstr ""
+
+#. type: textblock
+#: dh:42
+msgid ""
+"I<Note>: This feature requires debhelper 12.8 or later plus the package must "
+"use compatibility mode 10 or later."
+msgstr ""
+
+#. type: textblock
+#: dh:45
+msgid ""
+"To inject commands before I<dh_command>, add a target named "
+"B<execute_before_>I<dh_command> to the rules files. Similarly, if you want "
+"to inject commands after I<dh_command>, add the target "
+"B<execute_after_>I<dh_command>. Both targets can be used for the same "
+"I<dh_command> and also even if the command is overridden (as described in L</"
+"Overriding a command> below)."
+msgstr ""
+
+#. type: textblock
+#: dh:52
+msgid ""
+"When these targets are defined, B<dh> will call the targets respectively "
+"before or after it would invoke I<dh_command> (or its override target)."
+msgstr ""
+
+#. type: =head2
+#: dh:55
+msgid "Overriding a command"
+msgstr ""
+
+# Build-Depend -> Build-Depends
+#. type: textblock
+#: dh:57
+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 "
+"call that target. The override target can then run the command with "
+"additional options, or run entirely different commands instead. See examples "
+"below."
+msgstr ""
+"ターゲット I<dh_command> を変更するためには、B<override_>I<dh_command> という"
+"ターゲットを rule ファイルに記載します。こちらが指定されていると、"
+"I<dh_command> が動作する代わりに B<override_>I<dh_command> ターゲットを呼び出"
+"します。override ターゲットでは、コマンドにオプションを追加したり、コマンド全"
+"てを置き換えたりできます。後に例を挙げます。"
+
+#. type: =head2
+#: dh:63
+msgid "Architecture dependent/independent override and hook targets"
+msgstr ""
+
+# Build-Depend"s"
+#. type: textblock
+#: dh:65
+#, fuzzy
+#| msgid ""
+#| "Override targets can also be defined to run only when building "
+#| "architecture dependent or architecture independent packages. Use targets "
+#| "with names like B<override_>I<dh_command>B<-arch> and "
+#| "B<override_>I<dh_command>B<-indep>. (Note that to use this feature, you "
+#| "should Build-Depend on debhelper 8.9.7 or above.)"
+msgid ""
+"The override and hook targets can also be defined to run only when building "
+"architecture dependent or architecture independent packages. Use targets "
+"with names like B<override_>I<dh_command>B<-arch> and "
+"B<execute_after_>I<dh_command>B<-indep>."
+msgstr ""
+"アーキテクチャ依存パッケージを作るときのみ、あるいはアーキテクチャ非依存パッ"
+"ケージを作るときのみ動作するように override ターゲットを定義することもできま"
+"す。その場合、B<override_>I<dh_command>B<-arch> や、"
+"B<override_>I<dh_command>B<-indep> を使ってください (なお、この機能を使うに"
+"は、Build-Depends 行で debhelper バージョン 8.9.7 以上を指定する必要がありま"
+"す)。"
+
+#. type: textblock
+#: dh:70
+msgid ""
+"This feature is available since debhelper 8.9.7 (for override targets) and "
+"12.8 (for hook targets)."
+msgstr ""
+
+#. type: =head2
+#: dh:73
+msgid "Completely empty targets"
+msgstr ""
+
+#. type: textblock
+#: dh:75
+msgid ""
+"As a special optimization, B<dh> will skip a target if it is completely "
+"empty and does not depend on any other target. This is mostly useful for "
+"override targets, where the command will simply be skipped without the "
+"overhead of invoking a dummy target."
+msgstr ""
+
+#. type: textblock
+#: dh:80
+msgid "Note that the target has to be completely empty for this to work:"
+msgstr ""
+
+#. type: verbatim
+#: dh:82
+#, no-wrap
+msgid ""
+" # Skip dh_bar - the good and optimized way\n"
+" # Some rationale for skipping dh_bar goes here\n"
+" override_dh_bar:\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:87
+#, no-wrap
+msgid ""
+" # Skip dh_foo - the slow way\n"
+" override_dh_foo:\n"
+" # Some rationale for skipping dh_foo goes here\n"
+" # (these comments causes a dummy target to be run)\n"
+"\n"
+msgstr ""
+
+#. type: =head2
+#: dh:92
+msgid "Verifying targets are picked up by dh"
+msgstr ""
+
+#. type: textblock
+#: dh:94
+msgid ""
+"As of debhelper 13.10, you can use L<dh_assistant(1)> to see which override "
+"and hook targets will be seen by B<dh>. Here is an example run of "
+"L<dh_assistant(1)> along with its output:"
+msgstr ""
+
+#. type: verbatim
+#: dh:98
+#, no-wrap
+msgid ""
+" $ dh_assistant detect-hook-targets\n"
+" {\n"
+" \"commands-not-in-path\": [\n"
+" \"dh_foo\"\n"
+" ],\n"
+" \"hook-targets\": [\n"
+" {\n"
+" \"command\": \"dh_strip_nondeterminism\",\n"
+" \"is-empty\": true,\n"
+" \"package-section-param\": null,\n"
+" \"target-name\": \"override_dh_strip_nondeterminism\"\n"
+" },\n"
+" {\n"
+" \"command\": \"dh_foo\",\n"
+" \"is-empty\": false,\n"
+" \"package-section-param\": \"-a\",\n"
+" \"target-name\": \"override_dh_foo-arch\"\n"
+" }\n"
+" ]\n"
+" }\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:119
+msgid ""
+"The B<commands-not-in-path> is useful for spotting mistakes in the hook "
+"target names. A non-empty value implies one of more hook targets are "
+"related to a command that is either not installed or no command with that "
+"name exists at all. It is generally worth double checking these."
+msgstr ""
+
+#. type: textblock
+#: dh:124
+msgid ""
+"Additionally, the B<is-empty> attribute for each hook target can be used for "
+"seeing whether a hook target triggers the L</Completely empty targets> "
+"optimization."
+msgstr ""
+
+#. type: textblock
+#: dh:127
+msgid ""
+"If you are interested in the other attributes, please read the "
+"L<dh_assistant(1)> for the details."
+msgstr ""
+
+#. type: =head3
+#: dh:130
+msgid ""
+"Verifying targets are picked up by dh (when debhelper is older than 13.10)"
+msgstr ""
+
+#. type: textblock
+#: dh:134
+msgid ""
+"On older versions of debhelper, you have to use B<dh> with B<--no-act>. You "
+"can use the following command as an example:"
+msgstr ""
+
+#. type: verbatim
+#: dh:137
+#, no-wrap
+msgid ""
+" $ dh binary --no-act | grep dh_install | head -n5\n"
+" dh_installdirs\n"
+" dh_install\n"
+" debian/rules execute_after_dh_install\n"
+" dh_installdocs\n"
+" dh_installchangelogs\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:144
+msgid ""
+"The B<debian/rules execute_after_dh_install> in the output, which signals "
+"that B<dh> registered a B<execute_after_dh_install> target and would run it "
+"directly after L<dh_install(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh:148
+msgid ""
+"Note that L</Completely empty targets> will be omitted in the listing "
+"above. This makes it a bit harder to spot as you are looking for the "
+"omission of a command name. But otherwise, the principle remains the same."
+msgstr ""
+
+#. type: =head2
+#: dh:152
+msgid "Caveats with hook targets and makefile conditionals"
+msgstr ""
+
+#. type: textblock
+#: dh:154
+msgid ""
+"If you choose to wrap a hook target in makefile conditionals, please be "
+"aware that B<dh> computes all the hook targets a head of time and caches the "
+"result for that run. Furthermore, the conditionals will be invoked again "
+"when B<dh> calls the hook target later and will assume the answer did not "
+"change."
+msgstr ""
+
+#. type: textblock
+#: dh:160
+msgid ""
+"The parsing and caching I<often> happens before B<dh> knows whether it will "
+"build arch:any (-a) or/and arch:all (-i) packages, which can produce "
+"confusing results - especially when L<dh_listpackages(1)> is part of the "
+"conditional."
+msgstr ""
+
+#. type: textblock
+#: dh:165
+msgid ""
+"Most of the problems can be avoided by making the hook target unconditional "
+"and then have the \"body\" be partially or completely conditional. As an "
+"example:"
+msgstr ""
+
+#. type: verbatim
+#: dh:169
+#, no-wrap
+msgid ""
+" # SIMPLE: It is well-defined what happens. The hook target\n"
+" # is always considered. The \"maybe run this\" bit is\n"
+" # conditional but dh_foo is definitely skipped.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, \"maybe run this\"\n"
+" # is skipped.\n"
+" override_dh_foo:\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:183
+#, no-wrap
+msgid ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The \"maybe run this\" bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar:\n"
+" : # Dummy command to force the target to always be run\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:198
+#, no-wrap
+msgid ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" # Here, either dh_baz is run normally OR \"maybe run this\" is run\n"
+" # instead.\n"
+" #\n"
+" # And it gets even more complicated to reason about if dh needs to\n"
+" # recurse into debian/rules because you have an \"explicit\"\n"
+" # standard target (e.g. a \"build-arch:\" target separate from \"%:\").\n"
+" ifneq (...)\n"
+" override_dh_baz:\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:212
+msgid ""
+"These recipes are also relevant for conditional dependency targets, which "
+"are often seen in a variant of the following example:"
+msgstr ""
+
+#. type: verbatim
+#: dh:215
+#, no-wrap
+msgid ""
+" COND_TASKS =\n"
+" ifneq (...)\n"
+" COND_TASKS += maybe-run-this\n"
+" endif\n"
+" ...\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:221
+#, no-wrap
+msgid ""
+" maybe-run-this:\n"
+" ...\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:224
+#, no-wrap
+msgid ""
+" # SIMPLE: It is well-defined what happens. Either the\n"
+" # $(COND_TASKS) are skipped or run.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, $(COND_TASKS)\n"
+" # is skipped.\n"
+" override_dh_foo: $(COND_TASKS)\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:235
+#, no-wrap
+msgid ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The $(COND_TASKS) bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar: $(COND_TASKS)\n"
+" : # Dummy command to force the target to always be run\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh:246
+#, no-wrap
+msgid ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" ifneq (...)\n"
+" override_dh_baz: $(COND_TASKS)\n"
+" endif\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh:254
+msgid ""
+"When in doubt, pick the relevant B<SIMPLE> case in the examples above that "
+"match your need."
+msgstr ""
+
+#. type: =head1
+#: dh:257 dh_auto_build:32 dh_auto_clean:33 dh_auto_configure:35
+#: dh_auto_install:52 dh_auto_test:34 dh_bugfiles:53 dh_builddeb:34 dh_clean:49
+#: dh_compress:52 dh_dwz:26 dh_fixperms:40 dh_gencontrol:38 dh_icons:33
+#: dh_install:69 dh_installcatalogs:56 dh_installchangelogs:77
+#: dh_installcron:45 dh_installdeb:107 dh_installdebconf:64 dh_installdirs:45
+#: dh_installdocs:100 dh_installemacsen:56 dh_installexamples:48
+#: dh_installifupdown:42 dh_installinfo:41 dh_installinit:77
+#: dh_installinitramfs:43 dh_installlogcheck:45 dh_installlogrotate:25
+#: dh_installman:86 dh_installmanpages:43 dh_installmenu:44
+#: dh_installmodules:41 dh_installpam:38 dh_installppp:38 dh_installudev:34
+#: dh_installwm:41 dh_link:69 dh_makeshlibs:67 dh_md5sums:31 dh_movefiles:41
+#: dh_perl:35 dh_prep:29 dh_shlibdeps:30 dh_strip:38 dh_testdir:26
+#: dh_usrlocal:50 dh_systemd_enable:82 dh_systemd_start:33
+msgid "OPTIONS"
+msgstr "オプション"
+
+#. type: =item
+#: dh:261
+msgid "B<--with> I<addon>[B<,>I<addon> ...]"
+msgstr "B<--with> I<addon>[B<,>I<addon> ...]"
+
+#. type: textblock
+#: dh:263
+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 "
+"more than once, or multiple addons can be listed, separated by commas. This "
+"is used when there is a third-party package that provides debhelper "
+"commands. See the F<PROGRAMMING> file for documentation about the sequence "
+"addon interface."
+msgstr ""
+"一連のコマンド中の適切な位置で実行するアドオンを、debhelper コマンドへ指定し"
+"ます。このオプションは繰り返し指定することもできますし、複数のアドオンをカン"
+"マ区切りで列挙して指定できます。このオプションは debhelper コマンドを提供する"
+"サードパーティ製パッケージと共に利用する時に使います。F<PROGRAMMING> ファイル"
+"に、一連のアドオン用インターフェースについてのドキュメントがあります。"
+
+#. type: textblock
+#: dh:270
+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>. 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 "
+"bootstrapping)."
+msgstr ""
+
+#. type: textblock
+#: dh:279
+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:285
+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:293
+msgid "B<--without> I<addon>"
+msgstr "B<--without> I<addon>"
+
+#. type: textblock
+#: dh:295
+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, "
+"separated by commas."
+msgstr ""
+"B<--with> とは逆に、指定されたアドオンを無効にします。このオプションは繰り返"
+"し指定することもできますし、アドオン名をカンマ区切りで指定もできます。"
+
+#. type: textblock
+#: dh:301
+msgid "List all available addons."
+msgstr "利用可能なアドオン一覧を表示する。"
+
+#. type: textblock
+#: dh:303
+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:309
+msgid ""
+"Prints commands that would run for a given sequence, but does not run them."
+msgstr ""
+"指定された一連の処理でのコマンドを表示しますが、表示だけして実際にはコマンド"
+"は実行しません。"
+
+#. type: textblock
+#: dh:311
+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 ""
+"通常、dh は何も実行しないであろうとわかっている動作コマンドをスキップすること"
+"に注意してください。--no-act を指定すると、一連の動作内でのコマンド一覧をすべ"
+"て出力します。"
+
+#. type: textblock
+#: dh:316
+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 "
+"more specialised options."
+msgstr ""
+"B<dh> に渡された他のオプションは、実行される各コマンドにも渡されます。これ"
+"は、B<-v>, B<-X>, B<-N> のようなオプションをセットするのに利用できます。ま"
+"た、他の特別なオプションについても同様となります。"
+
+#. type: =head1
+#: dh:320 dh_install:332 dh_installdocs:191 dh_installman:117 dh_link:91
+#: dh_makeshlibs:185 dh_shlibdeps:78
+msgid "EXAMPLES"
+msgstr "使用例"
+
+#. type: textblock
+#: dh:322
+msgid ""
+"To see what commands are included in a sequence, without actually doing "
+"anything:"
+msgstr ""
+"コマンドを実際には動作させず、一連の動作でどのコマンドが実行されるかを見る:"
+
+#. type: verbatim
+#: dh:325
+#, no-wrap
+msgid ""
+"\tdh binary-arch --no-act\n"
+"\n"
+msgstr ""
+"\tdh binary-arch --no-act\n"
+"\n"
+
+#. type: textblock
+#: dh:327
+msgid ""
+"This is a very simple rules file, for packages where the default sequences "
+"of commands work with no additional options."
+msgstr ""
+"以下は非常にシンプルな rules ファイルです。ここではパッケージに対して追加オプ"
+"ション無しでデフォルトのコマンド群が呼び出されます。"
+
+#. type: verbatim
+#: dh:330 dh:337 dh:351 dh:364 dh:375 dh:433 dh:444
+#, no-wrap
+msgid ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@\n"
+"\n"
+msgstr ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@\n"
+"\n"
+
+#. type: textblock
+#: dh:334
+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 ""
+"特定の debhelper コマンドへオプションを渡したい事がよくあります。これを簡単に"
+"行う方法は、そのコマンドへ override を追加することです。"
+
+#. type: verbatim
+#: dh:341
+#, 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"
+"\n"
+msgstr ""
+"\toverride_dh_strip:\n"
+"\t\tdh_strip -Xfoo\n"
+"\t\n"
+
+#. type: verbatim
+#: dh:344
+#, no-wrap
+msgid ""
+"\toverride_dh_auto_configure:\n"
+"\t\tdh_auto_configure -- --with-foo --disable-bar\n"
+"\n"
+msgstr ""
+"\toverride_dh_auto_configure:\n"
+"\t\tdh_auto_configure -- --with-foo --disable-bar\n"
+"\n"
+
+#. type: textblock
+#: dh:347
+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 "
+"either and instead run your own commands."
+msgstr ""
+"L<dh_auto_configure(1)> や L<dh_auto_build(1)> が処理をする際、何を処理すれば"
+"よいか判断できないような変わったパッケージがたまに存在します。ここでは、"
+"L<dh_auto_configure(1)> や L<dh_auto_build(1)> を実行せずに、代わりのコマンド"
+"を実行させる方法を示します。 "
+
+#. type: verbatim
+#: dh:355
+#, no-wrap
+msgid ""
+"\toverride_dh_auto_configure:\n"
+"\t\t./mondoconfig\n"
+"\n"
+msgstr ""
+"\toverride_dh_auto_configure:\n"
+"\t\t./mondoconfig\n"
+"\n"
+
+#. type: verbatim
+#: dh:358
+#, no-wrap
+msgid ""
+"\toverride_dh_auto_build:\n"
+"\t\tmake universe-explode-in-delight\n"
+"\n"
+msgstr ""
+"\toverride_dh_auto_build:\n"
+"\t\tmake universe-explode-in-delight\n"
+"\n"
+
+#. type: textblock
+#: dh:361
+msgid ""
+"Another common case is wanting to do something manually before or after a "
+"particular debhelper command is run."
+msgstr ""
+"別のよくある例として、特定の debhelper コマンドが実行される前後で手動で何かを"
+"したい場合があります。"
+
+#. type: verbatim
+#: dh:368
+#, fuzzy, no-wrap
+#| msgid ""
+#| "\toverride_dh_fixperms:\n"
+#| "\t\tdh_fixperms\n"
+#| "\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+#| "\n"
+msgid ""
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms:\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+"\n"
+msgstr ""
+"\toverride_dh_fixperms:\n"
+"\t\tdh_fixperms\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+"\n"
+
+#. type: textblock
+#: dh:372
+msgid ""
+"If you are on an older debhelper or compatibility level, the above example "
+"would have to be written as."
+msgstr ""
+
+#. type: verbatim
+#: dh:379
+#, fuzzy, no-wrap
+#| msgid ""
+#| "\toverride_dh_fixperms:\n"
+#| "\t\tdh_fixperms\n"
+#| "\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+#| "\n"
+msgid ""
+"\t# Older debhelper versions or using compat 9 or lower.\n"
+"\toverride_dh_fixperms:\n"
+"\t\tdh_fixperms\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+"\n"
+msgstr ""
+"\toverride_dh_fixperms:\n"
+"\t\tdh_fixperms\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+"\n"
+
+#. type: textblock
+#: dh:384
+#, fuzzy
+#| msgid ""
+#| "Python tools are not run by dh by default, due to the continual change in "
+#| "that area. (Before compatibility level v9, dh does run B<dh_pysupport>.) "
+#| "Here is how to use B<dh_python2>."
+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 ""
+"この分野の状況が常に変わっているため、デフォルトでは python 関連ツール は dh "
+"によって実行されません (互換性レベル v9 未満であれば、dh は B<dh_pysupport> "
+"を実行します)。ここでは、B<dh_python2> をどのようにして使うかを示します。"
+
+#. type: verbatim
+#: dh:387
+#, no-wrap
+msgid ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --with python2\n"
+"\n"
+msgstr ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --with python2\n"
+"\n"
+
+#. type: textblock
+#: dh:391
+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 ""
+"こちらは Perl による B<Module::Build> ビルドシステムを強制的に使う方法です。"
+"これは、debhelper が誤ってパッケージが MakeMaker を使っていると認識する場合に"
+"必要となります。"
+
+#. type: verbatim
+#: dh:395
+#, no-wrap
+msgid ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --buildsystem=perl_build\n"
+"\n"
+msgstr ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --buildsystem=perl_build\n"
+"\n"
+
+#. type: textblock
+#: dh:399
+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 "
+"subdirectory."
+msgstr ""
+"以下に B<dh_auto_>I<*> コマンドがどこにパッケージソースがあるかを変更する例を"
+"載せます。これはサブディレクトリにソースが存在するようなパッケージで使いま"
+"す。"
+
+#. type: verbatim
+#: dh:403
+#, no-wrap
+msgid ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --sourcedirectory=src\n"
+"\n"
+msgstr ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --sourcedirectory=src\n"
+"\n"
+
+#. type: textblock
+#: dh:407
+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 ""
+"B<dh_auto_>I<*> にサブディレクトリでビルドするように指定する方法を以下に示し"
+"ます。こちらを指定すると、B<clean> 処理でこれらディレクトリが取り除かれるよう"
+"になります:"
+
+#. type: verbatim
+#: dh:410
+#, no-wrap
+msgid ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --builddirectory=build\n"
+"\n"
+msgstr ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --builddirectory=build\n"
+"\n"
+
+#. type: textblock
+#: dh:414
+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 ""
+"パッケージが並列ビルド可能であれば、互換性レベル 10 を使うか dh に B<--"
+"parallel> を指定して下さい。すると B<dpkg-buildpackage -j> が有効になります。"
+
+#. type: verbatim
+#: dh:417
+#, no-wrap
+msgid ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --parallel\n"
+"\n"
+msgstr ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --parallel\n"
+"\n"
+
+#. type: textblock
+#: dh:421
+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 ""
+"パッケージが複数スレッドを使うと安定してビルド出来ない場合は、dh (あるいは関"
+"連する B<dh_auto_>I<*> コマンド)に B<--no-parallel> を指定して下さい。"
+
+#. type: verbatim
+#: dh:426
+#, no-wrap
+msgid ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --no-parallel\n"
+"\n"
+msgstr ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --no-parallel\n"
+"\n"
+
+#. type: textblock
+#: dh:430
+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 ""
+"ここでは、B<dh> に、実行してほしくないコマンドを実行させないようにする方法を"
+"示します。その場合、それらのコマンドに対する override ターゲットを空にするこ"
+"とにより行います。"
+
+#. type: verbatim
+#: dh:437
+#, no-wrap
+msgid ""
+"\t# Commands not to run:\n"
+"\toverride_dh_auto_test override_dh_compress override_dh_fixperms:\n"
+"\n"
+msgstr ""
+"\t# 実行させたくないコマンド:\n"
+"\toverride_dh_auto_test override_dh_compress override_dh_fixperms:\n"
+"\n"
+
+#. type: textblock
+#: dh:440
+msgid ""
+"A long build process for a separate documentation package can be separated "
+"out using architecture independent overrides. These will be skipped when "
+"running build-arch and binary-arch sequences."
+msgstr ""
+"ドキュメントパッケージを作成するのに時間がかかる場合があります。この場合、"
+"アーキテクチャ非依存用の override ターゲットを使ってビルドを分離することがで"
+"きます。こうすると、build-arch や binary-arch を実行するとき、ドキュメント"
+"パッケージのビルドが省略されます。"
+
+#. type: verbatim
+#: dh:448
+#, no-wrap
+msgid ""
+"\toverride_dh_auto_build-indep:\n"
+"\t\t$(MAKE) -C docs\n"
+"\n"
+msgstr ""
+"\toverride_dh_auto_build-indep:\n"
+"\t\t$(MAKE) -C docs\n"
+"\n"
+
+#. type: verbatim
+#: dh:451
+#, no-wrap
+msgid ""
+"\t# No tests needed for docs\n"
+"\toverride_dh_auto_test-indep:\n"
+"\n"
+msgstr ""
+"\t# doc ターゲット実行時はテストは不要\n"
+"\toverride_dh_auto_test-indep:\n"
+"\n"
+
+#. type: verbatim
+#: dh:454
+#, no-wrap
+msgid ""
+"\toverride_dh_auto_install-indep:\n"
+"\t\t$(MAKE) -C docs install\n"
+"\n"
+msgstr ""
+"\toverride_dh_auto_install-indep:\n"
+"\t\t$(MAKE) -C docs install\n"
+"\n"
+
+#. type: textblock
+#: dh:457
+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 "
+"building only documentation."
+msgstr ""
+"上の例に加え、ファイルに chmod を実行しなければならないがそれはアーキテクチャ"
+"依存パッケージをビルドする際のみ必要で、ドキュメントのみをビルドする時には実"
+"行しないとしたらどうなるでしょうか。"
+
+#. type: verbatim
+#: dh:461
+#, fuzzy, no-wrap
+#| msgid ""
+#| "\toverride_dh_fixperms:\n"
+#| "\t\tdh_fixperms\n"
+#| "\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+#| "\n"
+msgid ""
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms-arch:\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+"\n"
+msgstr ""
+"\toverride_dh_fixperms:\n"
+"\t\tdh_fixperms\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+"\n"
+
+#. type: =head1
+#: dh:465
+#, fuzzy
+#| msgid "DEBHELPER COMMANDS"
+msgid "DEBHELPER PROVIDED DH ADDONS"
+msgstr "DEBHELPER コマンド"
+
+#. type: textblock
+#: dh:467
+msgid ""
+"The primary purpose of B<dh> addons is to provide easy integration with "
+"third-party provided features for debhelper. However, debhelper itself also "
+"provide a few sequences that can be useful in some cases. These are "
+"documented in this list:"
+msgstr ""
+
+#. type: =item
+#: dh:474
+msgid "build-stamp"
+msgstr ""
+
+#. type: textblock
+#: dh:476
+msgid ""
+"A special addon for controlling whether B<dh> (in compat 10 or later) will "
+"create stamp files to tell whether the build target has been run "
+"successfully. See L</INTERNALS> for more details."
+msgstr ""
+
+#. type: textblock
+#: dh:480
+#, fuzzy
+#| msgid "The previous behaviour can restored by using B<--with build-stamp>"
+msgid ""
+"This addon is active by default but can disabled by using B<dh $@ --without "
+"build-stamp>"
+msgstr "B<--with build-stamp> を使えば以前の動作に戻すことが出来ます。"
+
+#. type: =item
+#: dh:483
+msgid "dwz (obsolete)"
+msgstr ""
+
+#. type: textblock
+#: dh:485
+msgid ""
+"Adds L<dh_dwz(1)> to the sequence in compat level 11 or below. Obsolete in "
+"compat 12 or later."
+msgstr ""
+
+#. type: =item
+#: dh:488
+msgid "elf-tools"
+msgstr ""
+
+#. type: textblock
+#: dh:490
+msgid ""
+"This addon adds tools related to ELF files to the sequence such as "
+"L<dh_strip(1)> and L<dh_shlibdeps(1)>"
+msgstr ""
+
+#. type: textblock
+#: dh:493
+msgid ""
+"This addon is I<conditionally> active by default for architecture specific "
+"packages - that is, it is skipped for arch:all packages. In the special "
+"case where you need these tools to work on arch:all packages, you can use "
+"B<--with elf-tools> to activate it unconditionally."
+msgstr ""
+
+#. type: =item
+#: dh:499
+msgid "installinitramfs (obsolete)"
+msgstr ""
+
+#. type: textblock
+#: dh:501
+msgid ""
+"Adds L<dh_installinitramfs(1)> to the sequence in compat level 11 or below. "
+"Obsolete in compat 12 or later."
+msgstr ""
+
+#. type: =item
+#: dh:504
+msgid "root-sequence (internal)"
+msgstr ""
+
+#. type: textblock
+#: dh:506
+msgid "This is reserved for internal usage."
+msgstr ""
+
+#. type: =item
+#: dh:508
+msgid "single-binary"
+msgstr ""
+
+#. type: textblock
+#: dh:510
+msgid ""
+"A special-purpose addon that makes debhelper run in \"single binary\" mode."
+msgstr ""
+
+#. type: textblock
+#: dh:512
+msgid ""
+"When active, it will pass B<< --destdir=debian/I<package>/ >> to "
+"L<dh_auto_install(1)>. This makes every file \"installed\" by the upstream "
+"build system part of the (only) binary package by default without having to "
+"use other helpers such as L<dh_install(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh:517
+msgid ""
+"The addon will refuse to activate when the source package lists 2 or more "
+"binary packages in F<debian/control> as a precaution."
+msgstr ""
+
+#. type: textblock
+#: dh:520
+msgid ""
+"Before compat 15. this behaviour was the default when there was only a "
+"single binary package listed in F<debian/control>. In compat 15 and later, "
+"this addon must explicitly be activated for this feature to work."
+msgstr ""
+
+#. type: textblock
+#: dh:524
+msgid ""
+"The rationale for requiring this as an explicit choice is that if it is "
+"implicit then debhelper will silently change behaviour on adding a new "
+"binary package. This has caused many RC bugs when maintainers renamed a "
+"binary and added transitional packages with the intention of supporting "
+"seamless upgrades. The result would often be two empty binary packages that "
+"were uploaded to archive with users frustrated as their \"upgrade\" removed "
+"their programs."
+msgstr ""
+
+#. type: =item
+#: dh:532
+msgid "systemd (obsolete)"
+msgstr ""
+
+#. type: textblock
+#: dh:534
+msgid ""
+"Adds L<dh_systemd_enable(1)> and L<dh_systemd_start(1)> to the sequence in "
+"compat level 10 or below. Obsolete in compat 11 or later."
+msgstr ""
+
+#. type: =head1
+#: dh:539
+msgid "INTERNALS"
+msgstr "内部動作"
+
+#. type: textblock
+#: dh:541
+msgid ""
+"If you're curious about B<dh>'s internals, here's how it works under the "
+"hood."
+msgstr ""
+"B<dh> の内部動作に興味がある人向けに、以下に内部でどのように動作しているのか"
+"を記載します。"
+
+#. type: textblock
+#: dh:543
+#, fuzzy
+#| 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. 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 been run for. These log files are then removed once the "
+#| "override target is complete."
+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 "
+"possible to avoid the stamp file by passing B<--without=build-stamp> to "
+"B<dh>. This makes \"no clean\" builds behave more like what some people "
+"expect at the expense of possibly running the build and test twice (the "
+"second time as root or under L<fakeroot(1)>)."
+msgstr ""
+"互換性レベル 10 (とそれ以降) では、B<dh> はビルド工程の完了後、再動作を避ける"
+"ためにスタンプファイル F<debian/debhelper-build-stamp> を作成します。"
+"override ターゲット内では、B<dh_*> コマンドはどのパッケージに対してコマンドが"
+"実行されたのか記録を取るためにログファイル F<debian/package.debhelper.log> を"
+"生成します。これらのログファイルは override ターゲットが完了した際に削除され"
+"ます。"
+
+#. type: textblock
+#: dh:551
+#, fuzzy
+#| 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. 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 been run for. These log files are then removed once the "
+#| "override target is complete."
+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 "
+"been run for. These log files are then removed once the override target is "
+"complete."
+msgstr ""
+"互換性レベル 10 (とそれ以降) では、B<dh> はビルド工程の完了後、再動作を避ける"
+"ためにスタンプファイル F<debian/debhelper-build-stamp> を作成します。"
+"override ターゲット内では、B<dh_*> コマンドはどのパッケージに対してコマンドが"
+"実行されたのか記録を取るためにログファイル F<debian/package.debhelper.log> を"
+"生成します。これらのログファイルは override ターゲットが完了した際に削除され"
+"ます。"
+
+#. type: textblock
+#: dh:556
+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> "
+"deletes.) So B<dh> can tell which commands have already been run, for which "
+"packages, and skip running those commands again."
+msgstr ""
+"互換性レベル 9 とそれ以前では、各 debhelper コマンドは F<debian/package."
+"debhelper.log> に実行がうまく行ったものを記録します (これは B<dh_clean> が消"
+"去します)。これにより、B<dh> は既にどのコマンドが実行されたか、あるいはどの"
+"パッケージに対して実行されたか、何のコマンドを再びスキップすればよいのかがわ"
+"かります。"
+
+#. type: textblock
+#: dh:561
+#, 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."
+msgstr ""
+"(互換性レベル 9 とそれ以前では) B<dh> が動作すると、ログを検査し、指定された"
+"一連の処理にてどんなコマンドが最後に実行されたと記録されているかを調べます。"
+"そして、次に実行すべきコマンドを実行します。 B<--until>, B<--before>, B<--"
+"after>, B<--remaining> オプションにより、この振る舞いを変更できます (ただし、"
+"互換性レベル 10 ではこれらは削除されています)。"
+
+#. type: textblock
+#: dh:565
+msgid ""
+"A sequence can also run dependent targets in debian/rules. For example, the "
+"\"binary\" sequence runs the \"install\" target."
+msgstr ""
+"dh に処理の流れの名前を指定することにより、debian/rules に記載した依存関係に"
+"あるターゲットも実行されます。例えば、\"binary\" という処理の流れを指定する"
+"と、\"install\" ターゲットも実行されます。"
+
+#. type: textblock
+#: dh:568
+msgid ""
+"B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass "
+"information through to debhelper commands that are run inside override "
+"targets. The contents (and indeed, existence) of this environment variable, "
+"as the name might suggest, is subject to change at any time."
+msgstr ""
+"B<dh> は、B<DH_INTERNAL_OPTIONS> 環境変数をチェックし、override ターゲットの"
+"中で実行される debhelper コマンドに情報を渡します。この環境変数に記載されてい"
+"る内容は (実際には環境変数が存在していると) 、その環境変数の名前が示唆すると"
+"おり、どの時点でも debhelper コマンドの動作に影響を与えます。"
+
+#. type: textblock
+#: dh:573
+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 "
+"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."
+msgstr ""
+"B<build-indep>, B<install-indep>, B<binary-indep> の一連の処理に記載されてい"
+"るコマンドには、アーキテクチャ非依存パッケージをビルドする時にだけ確実に作用"
+"するように B<-i> オプションを使って情報が引き渡されます。B<build-arch>, "
+"B<install-arch>, B<binary-arch> の一連の処理に対しては、B<-a> にて引き渡さ"
+"れ、アーキテクチャ依存パッケージにのみ確実に作用するように動作します。 "
+
+#. type: textblock
+#: dh:876 dh_auto_build:57 dh_auto_clean:59 dh_auto_configure:62
+#: dh_auto_install:107 dh_auto_test:68 dh_bugfiles:139 dh_builddeb:180
+#: dh_clean:193 dh_compress:247 dh_dwz:167 dh_fixperms:168 dh_gencontrol:212
+#: dh_icons:79 dh_install:381 dh_installchangelogs:369 dh_installcron:84
+#: dh_installdeb:423 dh_installdebconf:237 dh_installdirs:135
+#: dh_installdocs:441 dh_installemacsen:143 dh_installexamples:186
+#: dh_installifupdown:76 dh_installinfo:127 dh_installinit:417
+#: dh_installinitramfs:97 dh_installlogrotate:57 dh_installman:424
+#: dh_installmanpages:202 dh_installmenu:94 dh_installmime:67
+#: dh_installmodules:113 dh_installpam:75 dh_installppp:72 dh_installudev:106
+#: dh_installwm:134 dh_installxfonts:94 dh_link:170 dh_lintian:64
+#: dh_listpackages:38 dh_makeshlibs:460 dh_md5sums:122 dh_movefiles:165
+#: dh_perl:192 dh_prep:74 dh_shlibdeps:208 dh_strip:439 dh_testdir:66
+#: dh_testroot:97 dh_usrlocal:140
+msgid "This program is a part of debhelper."
+msgstr "このプログラムは debhelper の一部です。"
+
+#. type: textblock
+#: dh_auto_build:5
+msgid "dh_auto_build - automatically builds a package"
+msgstr "dh_auto_build - 自動的にパッケージをビルドする"
+
+#. type: textblock
+#: dh_auto_build:18
+msgid ""
+"B<dh_auto_build> [S<I<build system options>>] [S<I<debhelper options>>] "
+"[S<B<--> I<params>>]"
+msgstr ""
+"B<dh_auto_build> [S<I<build system オプション>>] [S<I<debhelper オプション"
+">>] [S<B<--> I<パラメータ>>]"
+
+#. type: textblock
+#: dh_auto_build:22
+msgid ""
+"B<dh_auto_build> is a debhelper program that tries to automatically build a "
+"package. It does so by running the appropriate command for the build system "
+"it detects the package uses. For example, if a F<Makefile> is found, this is "
+"done by running B<make> (or B<MAKE>, if the environment variable is set). If "
+"there's a F<setup.py>, or F<Build.PL>, it is run to build the package."
+msgstr ""
+"B<dh_auto_build> は、パッケージを自動的にビルドしようとする debhelper プログ"
+"ラムです。パッケージが利用していると検知したビルドシステムについて、適切なコ"
+"マンドを実行してビルドを行います。例えばもし F<Makefile> が見つかれば、"
+"B<make> を実行して処理を行います (あるいは B<MAKE> 環境変数が設定されている場"
+"合です)。F<setup.py> または F<Build.PL> が存在すれば、これを実行してパッケー"
+"ジをビルドします。"
+
+#. type: textblock
+#: dh_auto_build:28
+msgid ""
+"This is intended to work for about 90% of packages. If it doesn't work, "
+"you're encouraged to skip using B<dh_auto_build> at all, and just run the "
+"build process manually."
+msgstr ""
+"このコマンドは約 90% のパッケージについて処理が行えるようにしています。もしう"
+"まく動作しないようなパッケージに遭遇した場合は、B<dh_auto_build> を完全に省略"
+"して、ビルド作業を手動で実行してください。"
+
+#. type: textblock
+#: dh_auto_build:34 dh_auto_clean:35 dh_auto_configure:37 dh_auto_install:54
+#: dh_auto_test:36
+msgid ""
+"See L<debhelper(7)/B<BUILD SYSTEM OPTIONS>> for a list of common build "
+"system selection and control options."
+msgstr ""
+"L<debhelper(7)/B<ビルドシステム用オプション>> には、よく使われるビルドシステ"
+"ムと、制御オプションが列挙されています。"
+
+#. type: =item
+#: dh_auto_build:39 dh_auto_clean:40 dh_auto_configure:42 dh_auto_install:65
+#: dh_auto_test:41 dh_builddeb:48 dh_dwz:62 dh_gencontrol:42
+#: dh_installdebconf:72 dh_installinit:166 dh_makeshlibs:179 dh_shlibdeps:41
+msgid "B<--> I<params>"
+msgstr "B<--> I<params>"
+
+#. type: textblock
+#: dh_auto_build:41
+msgid ""
+"Pass I<params> to the program that is run, after the parameters that "
+"B<dh_auto_build> usually passes."
+msgstr ""
+"I<params> を B<dh_autobuild> にて実行しようとしているプログラムへ渡します。こ"
+"の B<--> の後に指定したパラメータが渡されます。"
+
+#. type: textblock
+#: dh_auto_clean:5
+msgid "dh_auto_clean - automatically cleans up after a build"
+msgstr "dh_auto_clean - ビルド後、自動的にビルドディレクトリを消去する"
+
+#. type: textblock
+#: dh_auto_clean:18
+msgid ""
+"B<dh_auto_clean> [S<I<build system options>>] [S<I<debhelper options>>] "
+"[S<B<--> I<params>>]"
+msgstr ""
+"B<dh_auto_clean> [S<I<build system オプション>>] [S<I<debhelper オプション"
+">>] [S<B<--> I<パラメータ>>]"
+
+#. type: textblock
+#: dh_auto_clean:22
+msgid ""
+"B<dh_auto_clean> is a debhelper program that tries to automatically clean up "
+"after a package build. It does so by running the appropriate command for the "
+"build system it detects the package uses. For example, if there's a "
+"F<Makefile> and it contains a B<distclean>, B<realclean>, or B<clean> "
+"target, then this is done by running B<make> (or B<MAKE>, if the environment "
+"variable is set). If there is a F<setup.py> or F<Build.PL>, it is run to "
+"clean the package."
+msgstr ""
+"B<dh_auto_clean> はパッケージビルド完了後に自動的にディレクトリを消去しようと"
+"する debhelpr プログラムです。このプログラムはパッケージのビルドに必要なビル"
+"ドシステムを割り出し、それに適したコマンドを実行する事で消去を行います。例え"
+"ば、F<Makefile> が存在し、かつ、そのファイルの中に B<distclean>, "
+"B<realclean>, B<clean> ターゲットが存在する場合、B<make> を実行することにより"
+"消去を行います (あるいは、B<MAKE> 環境変数が設定されている時も同様です)。も"
+"し F<setup.py> や F<Build.PL> が存在するのであれば、これらを実行してパッケー"
+"ジビルドディレクトリを消去します。"
+
+#. type: textblock
+#: dh_auto_clean:29
+msgid ""
+"This is intended to work for about 90% of packages. If it doesn't work, or "
+"tries to use the wrong clean target, you're encouraged to skip using "
+"B<dh_auto_clean> at all, and just run B<make clean> manually."
+msgstr ""
+"このコマンドは約 90 %のパッケージにて動作するように作られています。もし、うま"
+"く動作しないようなパッケージに遭遇した場合、間違った clean ターゲットを使おう"
+"としてしまうような場合、B<dh_auto_clean> をまったく使わずに、手動で "
+"B<makeclean> を実行するのをお勧めします。"
+
+#. type: textblock
+#: dh_auto_clean:42
+msgid ""
+"Pass I<params> to the program that is run, after the parameters that "
+"B<dh_auto_clean> usually passes."
+msgstr ""
+"I<params> を実行するプログラムに渡すには、B<dh_auto_clean> に通常指定するパラ"
+"メータの後に、I<params> を指定してください。"
+
+#. type: textblock
+#: dh_auto_configure:5
+msgid "dh_auto_configure - automatically configure a package prior to building"
+msgstr "dh_auto_configure - パッケージビルド前に自動的に configure を行う"
+
+#. type: textblock
+#: dh_auto_configure:18
+msgid ""
+"B<dh_auto_configure> [S<I<build system options>>] [S<I<debhelper options>>] "
+"[S<B<--> I<params>>]"
+msgstr ""
+"B<dh_auto_configure> [S<I<build system オプション>>] [S<I<debhelper オプショ"
+"ン>>] [S<B<--> I<パラメータ>>]"
+
+#. type: textblock
+#: dh_auto_configure:22
+msgid ""
+"B<dh_auto_configure> is a debhelper program that tries to automatically "
+"configure a package prior to building. It does so by running the appropriate "
+"command for the build system it detects the package uses. For example, it "
+"looks for and runs a F<./configure> script, F<Makefile.PL>, F<Build.PL>, or "
+"F<cmake>. A standard set of parameters is determined and passed to the "
+"program that is run. Some build systems, such as make, do not need a "
+"configure step; for these B<dh_auto_configure> will exit without doing "
+"anything."
+msgstr ""
+"B<dh_auto_configure> はパッケージをビルドする前に自動的に configure を実行す"
+"る debhelper プログラムです。このプログラムはパッケージのビルドに必要なビルド"
+"システムを割り出し、それに適したコマンドを実行して設定を行います。例えば、"
+"F<./configure> スクリプト、F<Makefile.PL>、F<Build.PL>、F<cmake> を探して実行"
+"します。一連の標準パラメータが指定され、実行するプログラムに引き渡されます。"
+"なお、make のようなビルドシステムの場合、事前に configure の実行が不要な場合"
+"があります。この場合 B<dh_auto_configure> は何もせずに終了します。"
+
+#. type: textblock
+#: dh_auto_configure:31
+msgid ""
+"This is intended to work for about 90% of packages. If it doesn't work, "
+"you're encouraged to skip using B<dh_auto_configure> at all, and just run "
+"F<./configure> or its equivalent manually."
+msgstr ""
+"このコマンドは 90% のパッケージで動作するように作られています。もし、動作しな"
+"いようなパッケージがあった場合は、B<dh_auto_configure> を全く使わないようにし"
+"て、代わりに F<./configure> や、同等の動作を行うコマンドを手動で実行してくだ"
+"さい。"
+
+#. type: textblock
+#: dh_auto_configure:44
+msgid ""
+"Pass I<params> to the program that is run, after the parameters that "
+"B<dh_auto_configure> usually passes. For example:"
+msgstr ""
+"I<params> を実行するプログラムに渡すには、B<dh_auto_configure> に通常指定する"
+"パラメータの後に、B<--> を、次に I<params> を指定してください。例:"
+
+#. type: verbatim
+#: dh_auto_configure:47
+#, no-wrap
+msgid ""
+" dh_auto_configure -- --with-foo --enable-bar\n"
+"\n"
+msgstr ""
+" dh_auto_configure -- --with-foo --enable-bar\n"
+"\n"
+
+#. type: textblock
+#: dh_auto_install:5
+msgid "dh_auto_install - automatically runs make install or similar"
+msgstr "dh_auto_install - make install や類似コマンドを自動的に実行する"
+
+#. type: textblock
+#: dh_auto_install:20
+msgid ""
+"B<dh_auto_install> [S<I<build system options>>] [S<I<debhelper options>>] "
+"[S<B<--> I<params>>]"
+msgstr ""
+"B<dh_auto_install> [S<I<build system オプション>>] [S<I<debhelper オプション"
+">>] [S<B<--> I<params>>]"
+
+#. type: textblock
+#: dh_auto_install:24
+msgid ""
+"B<dh_auto_install> is a debhelper program that tries to automatically "
+"install built files. It does so by running the appropriate command for the "
+"build system it detects the package uses. For example, if there's a "
+"F<Makefile> and it contains a B<install> target, then this is done by "
+"running B<make> (or B<MAKE>, if the environment variable is set). If there "
+"is a F<setup.py> or F<Build.PL>, it is used. Note that the Ant build system "
+"does not support installation, so B<dh_auto_install> will not install files "
+"built using Ant."
+msgstr ""
+"B<dh_auto_install> プログラムは、ビルドしたファイルを自動的にインストールしよ"
+"うとする debhelper プログラムです。パッケージが利用するビルドシステムを判定"
+"し、そのビルドシステムに対して適切なコマンドを実行することでインストールを行"
+"います。例えば、F<Makefile> が存在し、中に B<install> ターゲットが存在する場"
+"合 (あるいは、B<MAKE> 環境変数が設定されている場合)、B<make> を実行します)。"
+"もし、F<setup.py> や F<Build.PL> が存在すれば、こちらが利用されます。なお、"
+"Ant ビルドシステムはインストールをサポートしていません。そのため、"
+"B<dh_auto_install> は Ant を使ってビルドしたファイルをインストールしないこと"
+"に注意してください。"
+
+#. type: textblock
+#: dh_auto_install:32
+msgid ""
+"In compat 15 or later, B<dh_auto_install> will use F<debian/tmp> as the "
+"default B<--destdir> and should be moved from there to the appropriate "
+"package build directory using L<dh_install(1)> or similar tools. Though if "
+"the B<single-binary> addon for L<dh(1)> is activated, then it will pass an "
+"explicit B<< --destdir=debian/I<package>/ >> to B<dh_auto_install>."
+msgstr ""
+
+#. type: textblock
+#: dh_auto_install:38
+#, fuzzy
+#| msgid ""
+#| "Unless B<--destdir> option is specified, the files are installed into "
+#| "debian/I<package>/ if there is only one binary package. In the multiple "
+#| "binary package case, the files are instead installed into F<debian/tmp/>, "
+#| "and should be moved from there to the appropriate package build directory "
+#| "using L<dh_install(1)>."
+msgid ""
+"For earlier compat levels then unless B<--destdir> option is specified, the "
+"files are installed into debian/I<package>/ if there is only one binary "
+"package. In the multiple binary package case, the files are instead "
+"installed into F<debian/tmp/>, and should be moved from there to the "
+"appropriate package build directory using L<dh_install(1)> or similar tools."
+msgstr ""
+"B<--destdir> オプションを指定せず単一のバイナリのみ生成する場合、ファイルは "
+"debian/I<package>/ 以下にインストールされます。また、B<--destdir> オプション"
+"を指定せずに複数のバイナリパッケージを生成する場合は、代わりに F<debian/tmp/"
+"> 以下にインストールされます。この場合、生成したファイルは、L<dh_install(1)> "
+"を使って適切なパッケージビルドディレクトリに移動する必要があります。"
+
+#. type: textblock
+#: dh_auto_install:44
+msgid ""
+"B<DESTDIR> is used to tell make where to install the files. If the Makefile "
+"was generated by MakeMaker from a F<Makefile.PL>, it will automatically set "
+"B<PREFIX=/usr> too, since such Makefiles need that."
+msgstr ""
+"B<DESTDIR> は生成したファイルをどこに置くべきかを指定する時に利用します。も"
+"し Makefileが F<Makefile.PL> を使って MakeMaker から生成される場合、生成され"
+"た Makefile の為に、さらに自動的に B<PREFIX=/usr> がインストールディレクトリ"
+"として指定されます。"
+
+#. type: textblock
+#: dh_auto_install:48
+msgid ""
+"This is intended to work for about 90% of packages. If it doesn't work, or "
+"tries to use the wrong install target, you're encouraged to skip using "
+"B<dh_auto_install> at all, and just run make install manually."
+msgstr ""
+"このコマンドはほぼ 90 %のパッケージに対してうまく動作するように設計されていま"
+"す。うまく動かない場合、あるいは、間違ったインストールターゲットを使ってしま"
+"うような場合には、B<dh_auto_install> を完全に省略して make install を手動で実"
+"行することを推奨します。"
+
+#. type: =item
+#: dh_auto_install:59 dh_builddeb:38
+msgid "B<--destdir=>I<directory>"
+msgstr "B<--destdir=>I<directory>"
+
+#. type: textblock
+#: dh_auto_install:61
+msgid ""
+"Install files into the specified I<directory>. If this option is not "
+"specified, destination directory is determined automatically as described in "
+"the L</B<DESCRIPTION>> section."
+msgstr ""
+"指定した I<directory> 以下にファイルをインストールします。このオプションを指"
+"定しない場合、インストール先は L</B<説明>> 章で説明するディレクトリになるよう"
+"に自動的に指定されます。"
+
+#. type: textblock
+#: dh_auto_install:67
+msgid ""
+"Pass I<params> to the program that is run, after the parameters that "
+"B<dh_auto_install> usually passes."
+msgstr ""
+"I<params> を実行するプログラムに渡すには、B<dh_auto_install> に通常指定するパ"
+"ラメータの後に I<param> を指定してください。"
+
+#. type: textblock
+#: dh_auto_test:5
+msgid "dh_auto_test - automatically runs a package's test suites"
+msgstr "dh_auto_test - パッケージのテストスイートを自動的に実行する"
+
+#. type: textblock
+#: dh_auto_test:18
+msgid ""
+"B<dh_auto_test> [S<I<build system options>>] [S<I<debhelper options>>] "
+"[S<B<--> I<params>>]"
+msgstr ""
+"B<dh_auto_test> [S<I<build system オプション>>] [S<I<debhelper オプション>>] "
+"[S<B<--> I<params>>]"
+
+#. type: textblock
+#: dh_auto_test:22
+msgid ""
+"B<dh_auto_test> is a debhelper program that tries to automatically run a "
+"package's test suite. It does so by running the appropriate command for the "
+"build system it detects the package uses. For example, if there's a Makefile "
+"and it contains a B<test> or B<check> target, then this is done by running "
+"B<make> (or B<MAKE>, if the environment variable is set). If the test suite "
+"fails, the command will exit nonzero. If there's no test suite, it will exit "
+"zero without doing anything."
+msgstr ""
+"B<dh_auto_test> は、パッケージ付属のテストスイートを自動的に実行しようとする"
+"プログラムです。パッケージがどのようなビルドシステムを必要とするかを判定し、"
+"適切なコマンドを実行する事でこれを行います。例えば、もし Makefile が存在し、"
+"B<test> や B<check> ターゲットが存在する (あるいは環境変数 B<MAKE> が設定され"
+"ている) 場合、B<make> を実行します もし、テストスイートが失敗に終わった場合、"
+"このコマンドは OS へのコマンドのステータスとして、0 以外を返して終了します。"
+"もし、テスト用のターゲットが全く存在しなければ、何もせず 0 を返して終了しま"
+"す。"
+
+#. type: textblock
+#: dh_auto_test:30
+msgid ""
+"This is intended to work for about 90% of packages with a test suite. If it "
+"doesn't work, you're encouraged to skip using B<dh_auto_test> at all, and "
+"just run the test suite manually."
+msgstr ""
+"このコマンドは、テストスイートを含む 90 %のパッケージに対して動作するように作"
+"られています。もしうまく動作しないようであれば、B<dh_auto_test> を完全に省略"
+"し、テストスイートを手動で実行するようにしてください。"
+
+#. type: textblock
+#: dh_auto_test:43
+msgid ""
+"Pass I<params> to the program that is run, after the parameters that "
+"B<dh_auto_test> usually passes."
+msgstr ""
+"I<params> を動作するプログラムに渡したければ、B<dh_auto_test> へ通常指定する"
+"パラメータの後に I<params> を指定してください。"
+
+#. type: textblock
+#: dh_auto_test:50
+msgid ""
+"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nocheck>, no "
+"tests will be performed."
+msgstr ""
+"B<DEB_BUILD_OPTIONS> 環境変数に B<nocheck> が含まれていれば、テストは実行され"
+"ません。"
+
+#. type: textblock
+#: dh_bugfiles:5
+msgid ""
+"dh_bugfiles - install bug reporting customization files into package build "
+"directories"
+msgstr ""
+"dh_bugfiles - カスタマイズされたバグレポート用ファイルをインストールする"
+
+#. type: textblock
+#: dh_bugfiles:17
+msgid "B<dh_bugfiles> [B<-A>] [S<I<debhelper options>>]"
+msgstr "B<dh_bugfiles> [B<-A>] [S<I<debhelper オプション>>]"
+
+#. type: textblock
+#: dh_bugfiles:21
+msgid ""
+"B<dh_bugfiles> is a debhelper program that is responsible for installing bug "
+"reporting customization files (bug scripts and/or bug control files and/or "
+"presubj files) into package build directories."
+msgstr ""
+"B<dh_bugfiles> は、バグレポートのカスタマイズ用ファイル (バグスクリプト、バグ"
+"コントロールファイル、指定済み subject 用ファイル) をパッケージビルドディレク"
+"トリへインストールする debhelper プログラムです。"
+
+#. type: =head1
+#: dh_bugfiles:25 dh_clean:33 dh_compress:35 dh_install:40
+#: dh_installcatalogs:39 dh_installchangelogs:53 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 "ファイル"
+
+#. type: =item
+#: dh_bugfiles:29
+msgid "debian/I<package>.bug-script"
+msgstr "debian/I<package>.bug-script"
+
+#. type: textblock
+#: dh_bugfiles:31
+msgid ""
+"This is the script to be run by the bug reporting program for generating a "
+"bug report template. This file is installed as F<usr/share/bug/package> in "
+"the package build directory if no other types of bug reporting customization "
+"files are going to be installed for the package in question. Otherwise, this "
+"file is installed as F<usr/share/bug/package/script>. Finally, the installed "
+"script is given execute permissions."
+msgstr ""
+"このファイルは、バグレポートの雛形を生成するバグ報告用プログラムによって実行"
+"されるスクリプトです。処理対象のパッケージについて、他にバグレポートのカスタ"
+"マイズ用ファイルがインストールされない場合、このファイルがパッケージビルド"
+"ディレクトリ以下に F<usr/share/bug/package> としてインストールされます。カス"
+"タマイズ用ファイルがインストールされる場合は、このスクリプトファイルは F<usr/"
+"share/bug/package/script> としてインストールされます。そして、インストールさ"
+"れたファイルには実行権限が付与されます。"
+
+#. type: =item
+#: dh_bugfiles:38
+msgid "debian/I<package>.bug-control"
+msgstr "debian/I<package>.bug-control"
+
+#. type: textblock
+#: dh_bugfiles:40
+msgid ""
+"It is the bug control file containing some directions for the bug reporting "
+"tool. This file is installed as F<usr/share/bug/package/control> in the "
+"package build directory."
+msgstr ""
+"バグレポート用ツールのディレクトリ群の名前が記載されるバグコントロールファイ"
+"ルとなります。このファイルは、パッケージビルドディレクトリへ F<usr/share/bug/"
+"package/control> としてインストールされます。"
+
+#. type: =item
+#: dh_bugfiles:44
+msgid "debian/I<package>.bug-presubj"
+msgstr "debian/I<package>.bug-presubj"
+
+#. type: textblock
+#: dh_bugfiles:46
+msgid ""
+"The contents of this file are displayed to the user by the bug reporting "
+"tool before allowing the user to write a bug report on the package to the "
+"Debian Bug Tracking System. This file is installed as F<usr/share/bug/"
+"package/presubj> in the package build directory."
+msgstr ""
+"ユーザに Debian Bug Tracking System へバグレポートを記入させる前に、本ファイ"
+"ルの中身がバグレポートツールにて表示されます。このファイルはF<usr/share/bug/"
+"package/presubj> としてパッケージビルドディレクトリ以下にインストールされま"
+"す。"
+
+#. type: textblock
+#: dh_bugfiles:59
+msgid ""
+"Install F<debian/bug-*> files to ALL packages acted on when respective "
+"F<debian/package.bug-*> files do not exist. Normally, F<debian/bug-*> will "
+"be installed to the first package only."
+msgstr ""
+"F<debian/package.bug-*> が存在しない場合、ビルドされる全パッケージに "
+"F<debian/bug-*> がインストールされます。通常なら、F<debian/bug-*> は "
+"F<debian/control> に記載されている、最初のパッケージへのみインストールされる"
+"ものです。"
+
+#. type: textblock
+#: dh_bugfiles:135
+msgid "F</usr/share/doc/reportbug/README.developers.gz>"
+msgstr "F</usr/share/doc/reportbug/README.developers.gz>"
+
+#. type: textblock
+#: dh_bugfiles:137 dh_lintian:62
+msgid "L<debhelper(1)>"
+msgstr "L<debhelper(1)>"
+
+#. type: textblock
+#: dh_bugfiles:143
+msgid "Modestas Vainius <modestas@vainius.eu>"
+msgstr "Modestas Vainius <modestas@vainius.eu>"
+
+#. type: textblock
+#: dh_builddeb:7
+msgid "dh_builddeb - build Debian binary packages"
+msgstr "dh_builddeb - Debianバイナリパッケージのビルドを行う"
+
+#. 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>>]"
+msgstr ""
+"B<dh_builddeb> [S<I<debhelper オプション>>] [B<--destdir=>I<ディレクトリ>] "
+"[B<--filename=>I<名前>] [S<B<--> I<パラメータ>>]"
+
+#. type: textblock
+#: dh_builddeb:23
+msgid ""
+"B<dh_builddeb> simply calls L<dpkg-deb(1)> to build a Debian package or "
+"packages. It will also build dbgsym packages when L<dh_strip(1)> and "
+"L<dh_gencontrol(1)> have prepared them."
+msgstr ""
+"B<dh_builddeb> は、Debian パッケージもしくはパッケージ群をビルドするため "
+"L<dpkg-deb(1)> を単に呼びだすコマンドです。L<dh_strip(1)> と "
+"L<dh_gencontrol(1)> が準備されている場合には dbgsym パッケージもビルドしま"
+"す。"
+
+#. type: textblock
+#: dh_builddeb:27
+msgid ""
+"It supports building multiple binary packages in parallel, when enabled by "
+"DEB_BUILD_OPTIONS."
+msgstr ""
+"このコマンドは、DEB_BUILD_OPTIONS 環境変数に並列実行のオプションを設定するこ"
+"とで、複数のバイナリを並行してビルドできます。"
+
+#. type: textblock
+#: dh_builddeb:30
+msgid ""
+"When the I<Rules-Requires-Root> field is not (effectively) I<binary-"
+"targets>, B<dh_builddeb> will pass B<--root-owner-group> to L<dpkg-deb(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh_builddeb:40
+msgid ""
+"Use this if you want the generated F<.deb> files to be put in a directory "
+"other than the default of \"F<..>\"."
+msgstr ""
+"デフォルトの \"F<..>\" 以外のディレクトリに生成された F<.deb> ファイル群を置"
+"きたい場合に本オプションを使ってください。"
+
+#. type: =item
+#: dh_builddeb:43
+msgid "B<--filename=>I<name>"
+msgstr "B<--filename=>I<name>"
+
+#. type: textblock
+#: dh_builddeb:45
+msgid ""
+"Use this if you want to force the generated .deb file to have a particular "
+"file name. Does not work well if more than one .deb is generated!"
+msgstr ""
+"生成する .deb ファイルに特定のファイル名を強制的に指定したい場合にこのオプ"
+"ションを利用してください。複数の .deb ファイルが生成される場合にはうまく動作"
+"しません!"
+
+#. type: textblock
+#: dh_builddeb:50
+msgid "Pass I<params> to L<dpkg-deb(1)> when it is used to build the package."
+msgstr "パッケージをビルドする時に、I<params> を L<dpkg-deb(1)> へ渡します。"
+
+#. type: =item
+#: dh_builddeb:53
+msgid "B<-u>I<params>"
+msgstr "B<-u>I<params>"
+
+#. type: textblock
+#: dh_builddeb:55
+msgid ""
+"This is another way to pass I<params> to L<dpkg-deb(1)>. It is deprecated; "
+"use B<--> instead."
+msgstr ""
+"これは I<params> を L<dpkg-deb(1)> へ渡す為の別の手段となります。本オプション"
+"は廃止されています、代わりに B<--> を使ってください。"
+
+#. type: textblock
+#: dh_clean:5
+msgid "dh_clean - clean up package build directories"
+msgstr "dh_clean - パッケージビルドディレクトリを消去する"
+
+#. type: textblock
+#: dh_clean:17
+msgid ""
+"B<dh_clean> [S<I<debhelper options>>] [B<-k>] [B<-d>] [B<-X>I<item>] "
+"[S<I<path> ...>]"
+msgstr ""
+"B<dh_clean> [S<I<debhelper オプション>>] [B<-k>] [B<-d>] [B<-X>I<item>] "
+"[S<I<path> ...>]"
+
+#. type: textblock
+#: dh_clean:21
+msgid ""
+"B<dh_clean> is a debhelper program that is responsible for cleaning up. It "
+"should be the last step of the B<clean> target and other debhelper commands "
+"generally assume that B<dh_clean> will clean up after them."
+msgstr ""
+
+# FIXME: why-no-wrap?
+#. type: verbatim
+#: dh_clean:25
+#, fuzzy, no-wrap
+#| msgid ""
+#| "B<dh_clean> is a debhelper program that is responsible for cleaning up after a\n"
+#| "package is built. It removes the package build directories, and removes some\n"
+#| "other files including F<debian/files>, and any detritus left behind by other\n"
+#| "debhelper commands. It also removes common files that should not appear in a\n"
+#| "Debian diff:\n"
+#| " #*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp\n"
+#| "\n"
+msgid ""
+"It removes the package build directories, and removes some other files including\n"
+"F<debian/files>, and any detritus left behind by other debhelper commands. It\n"
+"also removes common files that should not appear in a Debian diff:\n"
+" #*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp\n"
+"\n"
+msgstr ""
+"B<dh_clean >はパッケージビルド後に掃除をする役目の debhelper コマンドです。\n"
+"これはパッケージビルドディレクトリや、F<debian/files> を含むファイル、\n"
+"他の debhelper コマンドが残してしまったゴミファイルを取り除きます。\n"
+"以下のような、Debian diff に含まれてはならないようなありふれたファイルも\n"
+"取り除きます。\n"
+" #*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp\n"
+"\n"
+
+#. type: textblock
+#: dh_clean:30
+msgid ""
+"It does not run \"make clean\" to clean up after the build process. Use "
+"L<dh_auto_clean(1)> to do things like that."
+msgstr ""
+"このコマンドはビルドが完了後、掃除をするために \"make clean\" を実行しませ"
+"ん。\"make clean\" を実行するような事がしたければ、L<dh_auto_clean(1)> を利用"
+"してください。"
+
+#. type: =item
+#: dh_clean:37
+msgid "F<debian/clean>"
+msgstr "F<debian/clean>"
+
+#. type: textblock
+#: dh_clean:39
+msgid "Can list other paths to be removed."
+msgstr "消去されるパスの一覧を出力できます。"
+
+#. type: textblock
+#: dh_clean:41
+msgid ""
+"Note that directories listed in this file B<must> end with a trailing "
+"slash. Any content in these directories will be removed as well."
+msgstr ""
+"このファイル内で記載されているディレクトリは最後がスラッシュで終わるB<必要が"
+"あります>。これらのディレクトリ内の内容は同様に削除されます。"
+
+#. type: textblock
+#: dh_clean:44 dh_install:59 dh_installcatalogs:51 dh_installdeb:102
+#: dh_installdirs:40 dh_installdocs:48 dh_installexamples:43 dh_installinfo:36
+#: dh_installman:81 dh_installwm:36 dh_link:64
+msgid ""
+"Supports substitution variables in compat 13 and later as documented in "
+"L<debhelper(7)>."
+msgstr ""
+
+#. type: =item
+#: dh_clean:53 dh_installchangelogs:81
+msgid "B<-k>, B<--keep>"
+msgstr "B<-k>, B<--keep>"
+
+#. type: textblock
+#: dh_clean:55
+msgid "This is deprecated, use L<dh_prep(1)> instead."
+msgstr "これは廃止されています。代わりに L<dh_prep(1)> を利用してください。"
+
+#. type: textblock
+#: dh_clean:57
+#, fuzzy
+#| msgid "The option is removed in compat 11."
+msgid "The option is removed in compat 12."
+msgstr "このオプションは互換性レベル 11 で廃止されています。"
+
+#. type: =item
+#: dh_clean:59
+msgid "B<-d>, B<--dirs-only>"
+msgstr "B<-d>, B<--dirs-only>"
+
+#. type: textblock
+#: dh_clean:61
+msgid ""
+"Only clean the package build directories, do not clean up any other files at "
+"all."
+msgstr ""
+"パッケージビルドディレクトリを削除するだけで、他のファイルには一切手をつけま"
+"せん。"
+
+#. type: =item
+#: dh_clean:64 dh_prep:33
+msgid "B<-X>I<item> B<--exclude=>I<item>"
+msgstr "B<-X>I<item> B<--exclude=>I<item>"
+
+#. type: textblock
+#: dh_clean:66
+msgid ""
+"Exclude files that contain I<item> anywhere in their filename from being "
+"deleted, even if they would normally be deleted. You may use this option "
+"multiple times to build up a list of things to exclude."
+msgstr ""
+"通常は消されるはずのファイルであっても、I<item> をファイル名の一部として含む"
+"もの全部を消去候補から除外します。本オプションを何度も指定することで、除外候"
+"補を複数指定することが可能です。"
+
+#. type: =item
+#: dh_clean:70
+msgid "I<path> ..."
+msgstr "I<path> ..."
+
+#. type: textblock
+#: dh_clean:72
+msgid "Delete these I<path>s too."
+msgstr "これらの I<path> も消去します。"
+
+#. type: textblock
+#: dh_clean:74
+#, fuzzy
+msgid ""
+"Note that directories passed as arguments B<must> end with a trailing "
+"slash. Any content in these directories will be removed as well."
+msgstr ""
+"引数として渡されるディレクトリはスラッシュ (/) 付きで終わることがB<必須>であ"
+"ることに注意して下さい。これらのディレクトリ中の内容は同様に削除されます。"
+
+#. type: textblock
+#: dh_compress:5
+msgid ""
+"dh_compress - compress files and fix symlinks in package build directories"
+msgstr ""
+"dh_compress - ビルドディレクトリでファイル圧縮とシンボリックリンクの修正を行"
+"う"
+
+#. type: textblock
+#: dh_compress:19
+msgid ""
+"B<dh_compress> [S<I<debhelper options>>] [B<-X>I<item>] [B<-A>] "
+"[S<I<file> ...>]"
+msgstr ""
+"B<dh_compress> [S<I<debhelper オプション>>] [B<-X>I<項目>] [B<-A>] [S<I<ファ"
+"イル> ...>]"
+
+#. type: textblock
+#: dh_compress:23
+msgid ""
+"B<dh_compress> is a debhelper program that is responsible for compressing "
+"the files in package build directories, and makes sure that any symlinks "
+"that pointed to the files before they were compressed are updated to point "
+"to the new files."
+msgstr ""
+"B<dh_compress> はパッケージビルドディレクトリにあるファイルを圧縮する役割を担"
+"う debhelper プログラムです。また、圧縮されるファイルをシンボリックリンクが指"
+"し示していた場合、圧縮後も正しく指すようにシンボリックリンクを更新します。"
+
+#. type: textblock
+#: dh_compress:28
+msgid ""
+"By default, B<dh_compress> compresses files that Debian policy mandates "
+"should be compressed, namely all files in F<usr/share/info>, F<usr/share/"
+"man>, files in F<usr/share/doc> that are larger than 4k in size, (except the "
+"F<copyright> file, F<.html> and other web files, image files, and files that "
+"appear to be already compressed based on their extensions), and all "
+"F<changelog> files. Plus PCF fonts underneath F<usr/share/fonts/X11/>"
+msgstr ""
+"デフォルトでは、B<dh_compress> は Debian ポリシーマニュアルの規則に従い圧縮す"
+"べきとされるファイルを圧縮します。この場合の圧縮対象のファイルの例としては、"
+"F<usr/share/info>、F<usr/share/man> の以下の全ファイル、F<usr/share/doc> 以下"
+"にある 4k を 越えるサイズの全ファイル (但し、F<copyright>、F<.html> ファイ"
+"ル、画像ファイル、また拡張子からすでに圧縮されていることがすでに明らかなファ"
+"イルは対象から除外されます) 、全 F<changelog> ファイルとなります。加えて "
+"F<usr/share/fonts/X11/> 以下の PCF フォントファイルも圧縮対象となります。"
+
+#. type: =item
+#: dh_compress:39
+msgid "debian/I<package>.compress"
+msgstr "debian/I<package>.compress"
+
+#. type: textblock
+#: dh_compress:41
+msgid "These files are deprecated."
+msgstr "これらのファイルは廃止されました。"
+
+#. type: textblock
+#: dh_compress:43
+#, fuzzy
+msgid ""
+"If this file exists, the default files are not compressed. Instead, the file "
+"is ran as a shell script, and all filenames that the shell script outputs "
+"will be compressed. The shell script will be run from inside the package "
+"build directory. Note though that using B<-X> is a much better idea in "
+"general; you should only use a F<debian/package.compress> file if you really "
+"need to."
+msgstr ""
+"このファイルが存在すると、デフォルトで圧縮対象となるファイルは、圧縮されなく"
+"なります。代わりにこのファイルはシェルスクリプトとして実行され、シェルスクリ"
+"プトの実行結果として得られるファイル名が圧縮対象となります。このシェルスクリ"
+"プトはパッケージビルドディレクトリ以下で実行されます。とはいえ、注意して欲し"
+"いのは、通常の用途では B<-X> の方が適していることです。その為、F<debian/"
+"package.compress> を使いたい場合は、本当に必要な時に限るべきです。"
+
+#. type: textblock
+#: dh_compress:58
+msgid ""
+"Exclude files that contain F<item> anywhere in their filename from being "
+"compressed. For example, B<-X.tiff> will exclude TIFF files from "
+"compression. You may use this option multiple times to build up a list of "
+"things to exclude."
+msgstr ""
+"ファイル名に F<item> が含まれると、このファイルは圧縮対象から除外されます。た"
+"とえば、B<-X.tiff> を指定すると、TIFF ファイルは圧縮されなくなります。また除"
+"外するものを複数指定するには、このオプションを複数並べることにより指定できま"
+"す。"
+
+#. type: textblock
+#: dh_compress:65
+msgid ""
+"Compress all files specified by command line parameters in ALL packages "
+"acted on."
+msgstr ""
+"処理対象となる全パッケージを対象に、コマンドラインパラメータで指定したファイ"
+"ル全てを圧縮します。"
+
+#. type: =item
+#: dh_compress:68 dh_installdocs:184 dh_installexamples:89 dh_installinfo:60
+#: dh_installmanpages:47 dh_movefiles:58 dh_testdir:30
+msgid "I<file> ..."
+msgstr "I<file> ..."
+
+#. type: textblock
+#: dh_compress:70
+msgid "Add these files to the list of files to compress."
+msgstr "これらファイルを圧縮対象のファイルとして追加します。"
+
+#. type: =head1
+#: dh_compress:74 dh_perl:65 dh_strip:133 dh_usrlocal:66
+msgid "CONFORMS TO"
+msgstr "確認すべき事"
+
+#. type: textblock
+#: dh_compress:76
+msgid "Debian policy, version 3.0"
+msgstr "Debian ポリシー バージョン 3.0"
+
+#. type: textblock
+#: dh_dwz:5
+msgid "dh_dwz - optimize DWARF debug information in ELF binaries via dwz"
+msgstr ""
+
+#. type: textblock
+#: dh_dwz:18
+#, fuzzy
+#| msgid ""
+#| "B<dh_installdebconf> [S<I<debhelper options>>] [B<-n>] [S<B<--> "
+#| "I<params>>]"
+msgid "B<dh_dwz> [S<I<debhelper options>>] [B<-X>I<item>] [S<B<--> I<params>>]"
+msgstr ""
+"B<dh_installdebconf> [S<I<debhelper options>>] [B<-n>] [S<B<--> I<params>>]"
+
+#. type: textblock
+#: dh_dwz:22
+msgid ""
+"B<dh_dwz> is a debhelper program that will optimize the (uncompressed) size "
+"of the DWARF debug information in ELF binaries. It does so by running "
+"L<dwz(1)> on all the ELF binaries in the package."
+msgstr ""
+
+#. type: =item
+#: dh_dwz:30
+msgid "B<--dwz-multifile>, B<--no-dwz-multifile>"
+msgstr ""
+
+#. type: textblock
+#: dh_dwz:32
+msgid ""
+"Whether L<dwz(1)> should generate a I<multifile> from the ELF binaries 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."
+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 not 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: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
+#: 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 "
+"things to exclude."
+msgstr ""
+"I<item> を名前に含むようなファイルを、デバッグ情報除去の対象から外します。も"
+"し、複数のファイルを処理させないように指定したければ、本オプションを複数回指"
+"定することによって行えます。"
+
+#. type: textblock
+#: 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:71
+#, fuzzy
+msgid ""
+"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
+"nothing will be stripped, in accordance with Debian policy (section 10.1 "
+"\"Binaries\")."
+msgstr ""
+"B<DEB_BUILD_OPTIONS> 環境変数に B<nostrip> が含まれていると、Debian ポリシー "
+"(10.1章\"Binaries\") に従ってデバッグシンボルをまったく取り除かなくなります。"
+"これはデバッグシンボルパッケージの自動生成を"
+
+#. type: textblock
+#: 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 "
+"contains B<nostrip>. This is because B<nostrip> is often used to optimize "
+"build times (e.g. for \"build and test\"-cycles) rather than optimizing for "
+"size."
+msgstr ""
+
+#. type: textblock
+#: dh_fixperms:5
+msgid "dh_fixperms - fix permissions of files in package build directories"
+msgstr "dh_fixperms - パッケージビルドディレクトリ内のファイル権限を修正する"
+
+#. type: textblock
+#: dh_fixperms:18
+msgid "B<dh_fixperms> [S<I<debhelper options>>] [B<-X>I<item>]"
+msgstr "B<dh_fixperms> [S<I<debhelper options>>] [B<-X>I<item>]"
+
+#. type: textblock
+#: dh_fixperms:22
+msgid ""
+"B<dh_fixperms> is a debhelper program that is responsible for setting the "
+"permissions of files and directories in package build directories to a sane "
+"state -- a state that complies with Debian policy."
+msgstr ""
+"B<dh_fixperms> はパッケージビルドディレクトリ配下でファイルとディレクトリの権"
+"限を設定する役割の debhelper プログラムです。また、設定される権限は正しいも"
+"の、つまり Debian ポリシーに従って設定されます。"
+
+#. type: textblock
+#: dh_fixperms:26
+#, fuzzy
+#| msgid ""
+#| "B<dh_fixperms> makes all files in F<usr/share/doc> in the package build "
+#| "directory (excluding files in the F<examples/> directory) be mode 644. It "
+#| "also changes the permissions of all man pages to mode 644. It makes all "
+#| "files be owned by root, and it removes group and other write permission "
+#| "from all files. It removes execute permissions from any libraries, "
+#| "headers, Perl modules, or desktop files that have it set. It makes all "
+#| "files in the standard F<bin> and F<sbin> directories, F<usr/games/> and "
+#| "F<etc/init.d> executable (since v4). Finally, it removes the setuid and "
+#| "setgid bits from all files in the package."
+msgid ""
+"B<dh_fixperms> makes all files in F<usr/share/doc> in the package build "
+"directory (excluding files in the F<examples/> directory) be mode 644. It "
+"also changes the permissions of all man pages to mode 644. It removes group "
+"and other write permission from all files. It removes execute permissions "
+"from any libraries, headers, Perl modules, or desktop files that have it "
+"set. It makes all files in the standard F<bin> and F<sbin> directories, "
+"F<usr/games/> and F<etc/init.d> executable (since v4). Finally, it removes "
+"the setuid and setgid bits from all files in the package."
+msgstr ""
+"B<dh_fixperms> はパッケージビルドディレクトリ以下の F<usr/share/doc> にあるす"
+"べてのファイル (F<examples/> 以下のファイルは除きます) のパーミッションを "
+"644 に設定します。また、すべての man ページのパーミッションも 644 に変更しま"
+"す。さらにこれらのファイルの所有者を root に設定し、全てのファイルから group "
+"や others に対する書き込み権限を除去します。また、ライブラリ、ヘッダファイ"
+"ル、Perl モジュール、そして desktop ファイルに実行権限が付与されている場合に"
+"権限を取り除きます。F<bin>、F<sbin>、F<usr/games/>、F<etc/init.d> ディレクト"
+"リ以下にあるファイルについては実行権限を付与します (互換性レベル v4 から利用"
+"できます)。最後に、パッケージ内の全てのファイルに対して setuid と setgid ビッ"
+"トが付与されている場合はこれらを無効にします。"
+
+#. type: textblock
+#: dh_fixperms:36
+msgid ""
+"When the I<Rules-Requires-Root> field has the (effective) value of I<binary-"
+"targets>, B<dh_fixperms> will also reset the ownership of all paths to "
+"\"root:root\"."
+msgstr ""
+
+#. type: =item
+#: dh_fixperms:44
+msgid "B<-X>I<item>, B<--exclude> I<item>"
+msgstr "B<-X>I<item>, B<--exclude> I<item>"
+
+#. type: textblock
+#: dh_fixperms:46
+msgid ""
+"Exclude files that contain I<item> anywhere in their filename from having "
+"their permissions changed. You may use this option multiple times to build "
+"up a list of things to exclude."
+msgstr ""
+"パーミッションの変更対象のファイルから、I<item> をファイル名の一部に持つもの"
+"を除外します。除外対象を列挙したい場合は、このオプションを複数回指定します。"
+
+#. type: textblock
+#: dh_gencontrol:5
+msgid "dh_gencontrol - generate and install control file"
+msgstr "dh_gencontrol - control ファイルを生成し、インストールする"
+
+#. type: textblock
+#: dh_gencontrol:18
+msgid "B<dh_gencontrol> [S<I<debhelper options>>] [S<B<--> I<params>>]"
+msgstr "B<dh_gencontrol> [S<I<debhelper options>>] [S<B<--> I<params>>]"
+
+#. type: textblock
+#: dh_gencontrol:22
+msgid ""
+"B<dh_gencontrol> is a debhelper program that is responsible for generating "
+"control files, and installing them into the I<DEBIAN> directory with the "
+"proper permissions."
+msgstr ""
+"B<dh_gencontrol> は I<DEBIAN> ディレクトリ以下に control ファイルを生成し、適"
+"切な権限を持つようにインストールする役目を持つ debhelper プログラムです。"
+
+#. type: textblock
+#: dh_gencontrol:26
+msgid ""
+"This program is merely a wrapper around L<dpkg-gencontrol(1)>, which calls "
+"it once for each package being acted on (plus related dbgsym packages), and "
+"passes in some additional useful flags."
+msgstr ""
+"このプログラムは単に L<dpkg-gencontrol(1)> のラッパーです。処理を行うべきそれ"
+"ぞれのパッケージ (関連する dbgsym パッケージも含む) に対し L<dpkg-"
+"gencontrol(1)> を都度呼び出し、同時にいくつかの便利なフラグも渡します。"
+
+#. type: textblock
+#: dh_gencontrol:30
+msgid ""
+"B<Note> that if you use B<dh_gencontrol>, you must also use "
+"L<dh_builddeb(1)> to build the packages. Otherwise, your build may fail to "
+"build as B<dh_gencontrol> (via L<dpkg-gencontrol(1)>) declares which "
+"packages are built. As debhelper automatically generates dbgsym packages, "
+"it some times adds additional packages, which will be built by "
+"L<dh_builddeb(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh_gencontrol:44
+msgid "Pass I<params> to L<dpkg-gencontrol(1)>."
+msgstr "I<params> を L<dpkg-gencontrol(1)> へ渡します。"
+
+#. type: =item
+#: dh_gencontrol:46
+msgid "B<-u>I<params>, B<--dpkg-gencontrol-params=>I<params>"
+msgstr "B<-u>I<params>, B<--dpkg-gencontrol-params=>I<params>"
+
+#. type: textblock
+#: dh_gencontrol:48
+msgid ""
+"This is another way to pass I<params> to L<dpkg-gencontrol(1)>. It is "
+"deprecated; use B<--> instead."
+msgstr ""
+"これは、I<params> を L<dpkg-gencontrol(1)> へ渡す別のやり方です。このオプショ"
+"ンは廃止されたので、代わりに B<--> を使ってください。"
+
+#. type: textblock
+#: dh_icons:5
+msgid "dh_icons - Update caches of Freedesktop icons"
+msgstr "dh_icons - Freedesktop 規格のアイコンキャッシュを更新する"
+
+#. type: textblock
+#: dh_icons:18
+msgid "B<dh_icons> [S<I<debhelper options>>] [B<-n>]"
+msgstr "B<dh_icons> [S<I<debhelper options>>] [B<-n>]"
+
+#. type: textblock
+#: dh_icons:22
+msgid ""
+"B<dh_icons> is a debhelper program that updates caches of Freedesktop icons "
+"when needed, using the B<update-icon-caches> program provided by GTK+2.12. "
+"Currently this program does not handle installation of the files, though it "
+"may do so at a later date, so should be run after icons are installed in the "
+"package build directories."
+msgstr ""
+"B<dh_icons> は、GTK+2.12 が提供する B<update-icon-caches> プログラムを使い、"
+"必要に応じて Freedesktop 規格のアイコンキャッシュを更新する debhelper プログ"
+"ラムです。現在のところ、このプログラムはアイコンキャッシュファイルをインス"
+"トールしませんが、将来的は行うでしょう。ですから、アイコンがパッケージビルド"
+"ディレクトリにインストールされた後で実行される必要があります。"
+
+#. type: textblock
+#: dh_icons:28
+msgid ""
+"It takes care of adding maintainer script fragments to call B<update-icon-"
+"caches> for icon directories. (This is not done for gnome and hicolor icons, "
+"as those are handled by triggers.) These commands are inserted into the "
+"maintainer scripts by L<dh_installdeb(1)>."
+msgstr ""
+"アイコンディレクトリに対して B<update-icon-caches> を呼び出すメンテナスクリプ"
+"ト部分の追加を行います (GNOME と hicolor アイコンについては行わず、これらはト"
+"リガーによって処理されます)。これらのコマンドは、L<dh_installdeb(1)> によりメ"
+"ンテナスクリプトへ組み込まれます。"
+
+#. type: =item
+#: dh_icons:37 dh_installcatalogs:60 dh_installdebconf:68 dh_installemacsen:60
+#: dh_installinit:81 dh_installinitramfs:47 dh_installmenu:48
+#: dh_installmodules:45 dh_installwm:51 dh_makeshlibs:147 dh_usrlocal:54
+msgid "B<-n>, B<--no-scripts>"
+msgstr "B<-n>, B<--no-scripts>"
+
+#. type: textblock
+#: dh_icons:39
+msgid "Do not modify maintainer scripts."
+msgstr "メンテナスクリプトの変更を行いません。"
+
+#. type: textblock
+#: dh_icons:77
+msgid "L<debhelper>"
+msgstr "L<debhelper>"
+
+#. type: textblock
+#: dh_icons:83
+msgid ""
+"Ross Burton <ross@burtonini.com> Jordi Mallach <jordi@debian.org> Josselin "
+"Mouette <joss@debian.org>"
+msgstr ""
+"Ross Burton <ross@burtonini.com> Jordi Mallach <jordi@debian.org> "
+"JosselinMouette <joss@debian.org>"
+
+#. type: textblock
+#: dh_install:5
+msgid "dh_install - install files into package build directories"
+msgstr "dh_install - パッケージビルドディレクトリにファイルをインストールする"
+
+#. type: textblock
+#: dh_install:17
+msgid ""
+"B<dh_install> [B<-X>I<item>] [B<--autodest>] [B<--sourcedir=>I<dir>] "
+"[S<I<debhelper options>>] [S<I<file|dir> ... I<destdir>>]"
+msgstr ""
+"B<dh_install> [B<-X>I<item>] [B<--autodest>] [B<--sourcedir=>I<dir>] "
+"[S<I<debhelper options>>] [S<I<file|dir> ... I<destdir>>]"
+
+#. type: textblock
+#: dh_install:21
+msgid ""
+"B<dh_install> is a debhelper program that handles installing files into "
+"package build directories. There are many B<dh_install>I<*> commands that "
+"handle installing specific types of files such as documentation, examples, "
+"man pages, and so on, and they should be used when possible as they often "
+"have extra intelligence for those particular tasks. B<dh_install>, then, is "
+"useful for installing everything else, for which no particular intelligence "
+"is needed. It is a replacement for the old B<dh_movefiles> command."
+msgstr ""
+"B<dh_install> はパッケージビルドディレクトリにファイルをインストールする "
+"debhelper プログラムです。なお、沢山の B<dh_install>I<*> コマンドは、文章や"
+"例、あるいは man ページ等のファイルの種類に応じたインストールを担います。こち"
+"らのコマンドは、特定の処理を行う為に各々専用の処理を持っていますので、可能な"
+"限り、これらのファイルをインストールするときには、B<dh_install>I<*> コマンド"
+"を使ってください。なお、B<dh_install> は、ファイルにあわせた特別な処理が不要"
+"なファイルをインストールする時に使うと良いでしょう。B<dh_install> は、以前存"
+"在した B<dh_movefiles> コマンドを置き換えるコマンドです。"
+
+#. type: textblock
+#: dh_install:29
+msgid ""
+"This program may be used in one of two ways. If you just have a file or two "
+"that the upstream Makefile does not install for you, you can run "
+"B<dh_install> on them to move them into place. On the other hand, maybe you "
+"have a large package that builds multiple binary packages. You can use the "
+"upstream F<Makefile> to install it all into F<debian/tmp>, and then use "
+"B<dh_install> to copy directories and files from there into the proper "
+"package build directories."
+msgstr ""
+"このプログラムは2つの用途で利用されます。1つ目は、単に1つ2つのファイルに"
+"ついて開発元 (upstream) の Makefile がインストールをしようとしない時、"
+"B<dh_install> を使ってこれらのファイルを目的の場所へ移動できます。2つ目とし"
+"ては、複数のバイナリパッケージをビルドするような大きなパッケージの元で利用す"
+"る場合であり、開発元 (upstream) の Makefile により、F<debian/tmp> へ一旦イン"
+"ストールしてから、B<dh_install> を使って適切なパッケージビルドディレクトリへ"
+"ディレクトリとファイルをコピーするのに使うというものです。"
+
+#. type: textblock
+#: dh_install:36
+#, fuzzy
+#| msgid ""
+#| "From debhelper compatibility level 7 on, B<dh_install> will fall back to "
+#| "looking in F<debian/tmp> for files, if it doesn't find them in the "
+#| "current directory (or wherever you've told it to look using B<--"
+#| "sourcedir>)."
+msgid ""
+"From debhelper compatibility level 7 on, B<dh_install> will fall back to "
+"looking in F<debian/tmp> for files, if it does not find them in the current "
+"directory (or wherever you've told it to look using B<--sourcedir>)."
+msgstr ""
+"debhelper の互換性レベル 7 から、 B<dh_install> はファイルをカレントディレク"
+"トリで見つけられなければ (あるいは B<--sourcedir> オプションを使って指定した"
+"ディレクトリの中を探してファイルが見けられなければ) 、自動的に F<debian/tmp> "
+"を探しにいくようになりました"
+
+#. type: =item
+#: dh_install:44
+msgid "debian/I<package>.install"
+msgstr "debian/I<package>.install"
+
+#. type: textblock
+#: dh_install:46
+#, fuzzy
+#| msgid ""
+#| "List the files to install into each package and the directory they should "
+#| "be installed to. The format is a set of lines, where each line lists a "
+#| "file or files to install, and at the end of the line tells the directory "
+#| "it should be installed in. The name of the files (or directories) to "
+#| "install should be given relative to the current directory, while the "
+#| "installation directory is given relative to the package build directory. "
+#| "You may use wildcards in the names of the files to install (in v3 mode "
+#| "and above)."
+msgid ""
+"List the files to install into each package and the directory they should be "
+"installed to. The format is a set of lines, where each line lists a file or "
+"files to install, and at the end of the line tells the directory it should "
+"be installed in. The name of the files (or directories) to install should be "
+"given relative to the current directory, while the installation directory is "
+"given relative to the package build directory. You may use wildcards in the "
+"names of the files to install."
+msgstr ""
+"各々のパッケージにインストールすべきファイルと、これらファイルがインストール"
+"されるべきディレクトリを列挙します。フォーマットとしては、一連の行から成り、"
+"1つの行には、最初に1つもしくは複数のインストールしたいファイルを書き、行の"
+"最後の部分には、インストールされる先のディレクトリ名を書いていきます。ファイ"
+"ルの名前 (あるいはディレクトリの名前) について、インストールしたい側はカレン"
+"トディレクトリからの相対パスで、また、インストールされる側のディレクトリの場"
+"合はパッケージビルドディレクトリからの相対パスで記載する必要があります。イン"
+"ストールする側のファイル名にはワイルドカードを使う事ができます (この機能は互"
+"換性レベルv3以上で利用可能です)。"
+
+#. type: textblock
+#: dh_install:54
+msgid ""
+"Note that if you list exactly one filename or wildcard-pattern on a line by "
+"itself, with no explicit destination, then B<dh_install> will automatically "
+"guess the destination to use, the same as if the --autodest option were used."
+msgstr ""
+"明示的にインストール先を記述せず、ただ1つのファイル名もしくはワイルドカード"
+"パターンを指定した行を列挙した場合は、--autodest オプションが使われた時同様"
+"に B<dh_install> は自動的に利用されるインストール先を推測します。"
+
+#. type: =item
+#: dh_install:62
+msgid "debian/not-installed"
+msgstr "debian/not-installed"
+
+#. type: textblock
+#: dh_install:64
+msgid ""
+"Used with the deprecated B<--list-missing> and B<--fail-missing> options. "
+"Please refer to L<dh_missing(1)> for the documentation of this file."
+msgstr ""
+
+#. type: =item
+#: dh_install:73
+msgid "B<--list-missing>"
+msgstr "B<--list-missing>"
+
+#. type: textblock
+#: dh_install:75
+msgid ""
+"B<Deprecated>: Please use B<dh_missing --list-missing> instead. If you use "
+"this option, B<dh_install> will call B<dh_missing> with that option after it "
+"has processed all the files. Please see L<dh_missing(1)> for the "
+"documentation of this option."
+msgstr ""
+
+#. type: =item
+#: dh_install:82
+msgid "B<--fail-missing>"
+msgstr "B<--fail-missing>"
+
+#. type: textblock
+#: dh_install:84
+msgid ""
+"B<Deprecated>: Please use B<dh_missing --fail-missing> instead. If you use "
+"this option, B<dh_install> will call B<dh_missing> with that option after it "
+"has processed all the files. Please see L<dh_missing(1)> for the "
+"documentation of this option."
+msgstr ""
+
+#. type: =item
+#: dh_install:91 dh_installdirs:62 dh_installdocs:114 dh_installexamples:57
+#: dh_installinfo:50 dh_installman:100 dh_movefiles:45
+msgid "B<--sourcedir=>I<dir>"
+msgstr "B<--sourcedir=>I<dir>"
+
+#. type: textblock
+#: dh_install:93
+msgid "Look in the specified directory for files to be installed."
+msgstr "インストールするファイルを指定されたディレクトリ内で探します。"
+
+#. type: textblock
+#: dh_install:95
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_install> automatically looks for files in F<debian/tmp> in debhelper "
+"compatibility level 7 and above."
+msgstr ""
+"このオプションは、B<dh_auto_>I<*> にあるような B<--sourcedirectory> とは異な"
+"る事に注意が必要です。このコマンドではあまりこのオプションは利用する機会があ"
+"りません。というのも B<dh_install> は互換性レベル v7 以上では自動的に "
+"F<debian/tmp> へファイルを探しに行く為です。"
+
+#. type: =item
+#: dh_install:100
+msgid "B<--autodest>"
+msgstr "B<--autodest>"
+
+#. type: textblock
+#: dh_install:102
+#, fuzzy
+msgid ""
+"Guess as the destination directory to install things to. If this is "
+"specified, you should not list destination directories in F<debian/package."
+"install> files or on the command line. Instead, B<dh_install> will guess as "
+"follows:"
+msgstr ""
+"インストール先のディレクトリを推定します。このオプションを指定した場合、"
+"F<debian/package.install> ファイルや、コマンドラインにインストール先のディレ"
+"クトリを列挙してはいけません。代わりに B<dh_install> は以下のルールに従いイン"
+"ストール先ディレクトリを推定します:"
+
+#. type: textblock
+#: dh_install:107
+msgid ""
+"Strip off F<debian/tmp> (or the sourcedir if one is given) from the front of "
+"the filename, if it is present, and install into the dirname of the "
+"filename. So if the filename is F<debian/tmp/usr/bin>, then that directory "
+"will be copied to F<debian/package/usr/>. If the filename is F<debian/tmp/"
+"etc/passwd>, it will be copied to F<debian/package/etc/>."
+msgstr ""
+"まず、インストール元のファイル名の先頭から F<debian/tmp> の文字列 (あるいは指"
+"定されていればソースディレクトリ名) を取り除きます。ファイル名が残っていれ"
+"ば、これをディレクトリ名としてその中にインストールします。つまり、ソースディ"
+"レクトリとして F<debian/tmp/usr/bin> が与えられると、ファイルのコピー先のディ"
+"レクトリは F<debian/package/usr/> となります。ファイル名が F<debian/tmp/etc/"
+"passwd> であれば、F<debian/package/etc/> へ行われます。"
+
+#. type: =item
+#: dh_install:113
+msgid "I<file|dir> ... I<destdir>"
+msgstr "I<file|dir> ... I<destdir>"
+
+#. type: textblock
+#: dh_install:115
+msgid ""
+"Lists files (or directories) to install and where to install them to. The "
+"files will be installed into the first package F<dh_install> acts on."
+msgstr ""
+"インストールするファイル (またはディレクトリ) と、どこへインストールするかに"
+"ついて列挙します。ファイルは F<dh_install> が処理する最初のパッケージへインス"
+"トールされます。"
+
+#. type: textblock
+#: dh_install:334
+msgid "Here are some small examples of configuration files for dh_install."
+msgstr ""
+
+#. type: verbatim
+#: dh_install:336
+#, no-wrap
+msgid ""
+" # Install my-prog into usr/bin (as \"usr/bin/my-prog\")\n"
+" my-prog usr/bin\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh_install:339
+#, no-wrap
+msgid ""
+" # Install a plugins directory into usr/share/my-prog\n"
+" # (as \"usr/share/my-prog/plugins/\")\n"
+" plugins usr/share/my-prog\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh_install:343
+#, no-wrap
+msgid ""
+" # Install a file with spaces in into usr/share/my-prog/data\n"
+" # (as \"usr/share/my-prog/data/my datafile with spaces.txt\")\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" my${Space}datafile${Space}with${Space}spaces.txt usr/share/my-prog/data\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: dh_install:348
+#, no-wrap
+msgid ""
+" # Install a library into the multi-arch lib directory\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" build/output/libfrop*.so.* usr/lib/${DEB_HOST_MULTIARCH}\n"
+"\n"
+msgstr ""
+
+#. type: =head1
+#: dh_install:352
+msgid "LIMITATIONS"
+msgstr "制限事項"
+
+#. type: textblock
+#: dh_install:354
+msgid ""
+"B<dh_install> cannot rename files or directories, it can only install them "
+"with the names they already have into wherever you want in the package build "
+"tree."
+msgstr ""
+"B<dh_install> はファイルやディレクトリをリネームできません。パッケージビルド"
+"ツリー内のどこへでも望む場所へ、既に付けられた名前でそれらをインストールする"
+"ことだけが可能です。"
+
+#. type: textblock
+#: dh_install:358
+msgid ""
+"However, renaming can be achieved by using B<dh-exec> with compatibility "
+"level 9 or later. An example debian/I<package>.install file using B<dh-"
+"exec> could look like:"
+msgstr ""
+"ですが、リネームは互換性レベル 9 以上で B<dh-exec> を使うことで実現できます。"
+"B<dh-exec> を使う debian/I<package>.install ファイルの例は以下のようになりま"
+"す:"
+
+#. type: verbatim
+#: dh_install:362
+#, no-wrap
+msgid ""
+" #!/usr/bin/dh-exec\n"
+" debian/default.conf => /etc/my-package/start.conf\n"
+"\n"
+msgstr ""
+" #!/usr/bin/dh-exec\n"
+" debian/default.conf => /etc/my-package/start.conf\n"
+"\n"
+
+#. type: textblock
+#: dh_install:365
+msgid "Please remember the following three things:"
+msgstr "以下の 3 点に留意して下さい:"
+
+#. type: =item
+#: dh_install:369
+msgid ""
+"* The package must be using compatibility level 9 or later (see "
+"L<debhelper(7)>)"
+msgstr ""
+"* パッケージは互換性レベル 9 以降を使う必要があります (L<debhelper(7)> 参照)"
+
+#. type: =item
+#: dh_install:371
+msgid "* The package will need a build-dependency on dh-exec."
+msgstr "* パッケージは dh-exec へのビルド依存が必要になります。"
+
+#. type: =item
+#: dh_install:373
+msgid "* The install file must be marked as executable."
+msgstr "* install ファイルは実行可能になっている必要があります。"
+
+#. type: textblock
+#: dh_installcatalogs:5
+msgid "dh_installcatalogs - install and register SGML Catalogs"
+msgstr "dh_installcatalogs - SGML カタログファイルをインストール・登録する"
+
+#. type: textblock
+#: dh_installcatalogs:19
+msgid "B<dh_installcatalogs> [S<I<debhelper options>>] [B<-n>]"
+msgstr "B<dh_installcatalogs> [S<I<debhelper options>>] [B<-n>]"
+
+#. type: textblock
+#: dh_installcatalogs:23
+msgid ""
+"B<dh_installcatalogs> is a debhelper program that installs and registers "
+"SGML catalogs. It complies with the Debian XML/SGML policy."
+msgstr ""
+"B<dh_installcatalogs> は SGML カタログをインストールし登録するプログラムで"
+"す。この動作は Debian XML/SGML ポリシーに準拠します。"
+
+#. type: textblock
+#: dh_installcatalogs:26
+msgid ""
+"Catalogs will be registered in a supercatalog, in F</etc/sgml/I<package>."
+"cat>."
+msgstr ""
+"カタログは F</etc/sgml/I<package>.cat> にある上位カタログに登録されます。"
+
+#. type: textblock
+#: dh_installcatalogs:29
+#, fuzzy
+msgid ""
+"This command automatically adds maintainer script snippets for registering "
+"and unregistering the catalogs and supercatalogs (unless B<-n> is used). "
+"These snippets are inserted into the maintainer scripts and the B<triggers> "
+"file by B<dh_installdeb>; see L<dh_installdeb(1)> for an explanation of "
+"Debhelper maintainer script snippets."
+msgstr ""
+"このコマンドは、カタログや上位カタログを登録・解除する為のメンテナスクリプト"
+"のスニペットを (B<-n> を指定しなければ) 自動的に付け加えます。これらのスニ"
+"ペットは B<dh_installdeb> によりメンテナスクリプトへ挿入されます。Debhelper "
+"メンテナスクリプトのスニペットについては、L<dh_installdeb(1)> を参照くださ"
+"い。"
+
+#. type: textblock
+#: dh_installcatalogs:36
+msgid ""
+"A dependency on B<sgml-base> will be added to B<${misc:Depends}>, so be sure "
+"your package uses that variable in F<debian/control>."
+msgstr ""
+"B<sgml-base> への依存関係に関する情報は B<${misc:Depends}> へ追加されるので、"
+"F<debian/control> で必ずこの変数を使ってください。"
+
+#. type: =item
+#: dh_installcatalogs:43
+msgid "debian/I<package>.sgmlcatalogs"
+msgstr "debian/I<package>.sgmlcatalogs"
+
+#. type: textblock
+#: dh_installcatalogs:45
+msgid ""
+"Lists the catalogs to be installed per package. Each line in that file "
+"should be of the form C<I<source> I<dest>>, where I<source> indicates where "
+"the catalog resides in the source tree, and I<dest> indicates the "
+"destination location for the catalog under the package build area. I<dest> "
+"should start with F</usr/share/sgml/>."
+msgstr ""
+"パッケージ毎にインストールすべきカタログを列挙します。このファイルには、各々"
+"の行が C<I<source> I<dest>> の形式で指定されている必要があります。ここで、"
+"I<source> はインストール元のカタログがソースのどこに入っているかを示し、ま"
+"た、I<dest> にはビルド領域以下のどこにカタログをインストールすべきかを示しま"
+"す。I<dest> は F</usr/share/sgml/> から始まる必要があります。"
+
+#. type: textblock
+#: dh_installcatalogs:62
+#, fuzzy
+msgid ""
+"Do not modify F<postinst>/F<postrm>/F<prerm> scripts nor add an activation "
+"trigger."
+msgstr ""
+"F<postinst>/F<postrm>/F<prerm> スクリプトを変更したり、アクティベーションのト"
+"リガーを追加しないでください。"
+
+#. type: textblock
+#: dh_installcatalogs:69 dh_installemacsen:77 dh_installinit:206
+#: dh_installmodules:59 dh_installudev:52 dh_installwm:68 dh_usrlocal:62
+msgid ""
+"Note that this command is not idempotent. L<dh_prep(1)> should be called "
+"between invocations of this command. Otherwise, it may cause multiple "
+"instances of the same text to be added to maintainer scripts."
+msgstr ""
+"このコマンドは複数回実行しても安全なコマンドではありません。このコマンドを複"
+"数回呼び出す際には必ず間に L<dh_prep(1)> を挿入してください。さもないと、メン"
+"テナスクリプト中に同じ内容のコードを繰り返し挿入してしまいます。"
+
+#. type: textblock
+#: dh_installcatalogs:132
+msgid "F</usr/share/doc/sgml-base-doc/>"
+msgstr "F</usr/share/doc/sgml-base-doc/>"
+
+#. type: textblock
+#: dh_installcatalogs:136
+msgid "Adam Di Carlo <aph@debian.org>"
+msgstr "Adam Di Carlo <aph@debian.org>"
+
+#. type: textblock
+#: dh_installchangelogs:5
+msgid ""
+"dh_installchangelogs - install changelogs into package build directories"
+msgstr ""
+"dh_installchangelogs - ビルドディレクトリに changelog をインストールする"
+
+#. type: textblock
+#: dh_installchangelogs:18
+#, fuzzy
+#| msgid ""
+#| "B<dh_installchangelogs> [S<I<debhelper options>>] [B<-k>] [B<-X>I<item>] "
+#| "[I<upstream>]"
+msgid ""
+"B<dh_installchangelogs> [S<I<debhelper options>>] [B<-k>] [B<-X>I<item>] "
+"[B<--no-trim>] [I<upstream>]"
+msgstr ""
+"B<dh_installchangelogs> [S<I<debhelper options>>] [B<-k>] [B<-X>I<item>] "
+"[I<upstream>]"
+
+#. type: textblock
+#: dh_installchangelogs:22
+msgid ""
+"B<dh_installchangelogs> is a debhelper program that is responsible for "
+"installing changelogs into package build directories."
+msgstr ""
+"B<dh_installchangelogs> はパッケージビルドディレクトリに changelog をインス"
+"トールを担当する debhelper コマンドです。"
+
+#. type: textblock
+#: dh_installchangelogs:25
+#, fuzzy
+#| msgid ""
+#| "An upstream F<changelog> file may be specified as an option. If none is "
+#| "specified, it looks for files with names that seem likely to be "
+#| "changelogs. (In compatibility level 7 and above.)"
+msgid ""
+"An upstream F<changelog> file may be specified as an option. If none is "
+"specified, B<dh_installchangelogs> may look for files with names that seem "
+"likely to be changelogs as described in the next paragraphs."
+msgstr ""
+"開発元 (upstream) に入っている F<changelog> ファイルはオプションとしても指定"
+"できます。何も指定しない場合、changelog とおぼしき名前を持つファイルを探しに"
+"行きます (これは互換レベル v7 以上で行われます)。"
+
+#. type: textblock
+#: dh_installchangelogs:29
+msgid ""
+"In non-native packages, B<dh_installchangelogs> will first look for "
+"changelog files installed by the upstream build system into F<< usr/share/"
+"doc/I<package> >> (of the package build directory) and rename the most "
+"likely candidate (if any) to F<< usr/share/doc/I<package>/changelog >>. "
+"Note that B<dh_installchangelogs> does I<not> look into any source directory "
+"(such as F<debian/tmp>). Otherwise, B<dh_installchangelogs> (at "
+"compatibility level 7 or any later) will look for changelog files in the "
+"source directory (e.g. the root or the F<docs> subdirectory). It will look "
+"for F<changelog>, F<changes> and F<history> optionally with common "
+"extensions (such as F<.txt>, F<.md> and F<.rst>)."
+msgstr ""
+
+#. type: textblock
+#: dh_installchangelogs:41
+#, fuzzy
+msgid ""
+"If a changelog file is specified and is an F<html> file (determined by file "
+"extension), it will be installed as F<usr/share/doc/package/changelog.html> "
+"instead. If the html changelog is converted to plain text, that variant can "
+"be specified as a second parameter. When no plain text variant is specified, "
+"a short F<usr/share/doc/package/changelog> is generated, pointing readers at "
+"the html changelog file."
+msgstr ""
+"開発元 (upstream) の changelog が F<html> ファイルである場合 (ファイル拡張子"
+"で判断されます)、代わりに F<usr/share/doc/package/changelog.html> としてイン"
+"ストールされます。html changelog が平文テキストに変換されると、亜種は2番め"
+"の upstream changelog ファイルとして指定できます。平文ではない"
+
+#. type: textblock
+#: dh_installchangelogs:48
+msgid ""
+"The B<debchange>-style Debian changelogs are trimmed to include only entries "
+"more recent than the release date of I<oldstable>. No trimming will be "
+"performed if the B<--no-trim> option is passed or if the "
+"B<DEB_BUILD_OPTIONS> environment variable contains B<notrimdch>."
+msgstr ""
+
+#. type: =item
+#: dh_installchangelogs:57
+msgid "F<debian/changelog>"
+msgstr "F<debian/changelog>"
+
+#. type: =item
+#: dh_installchangelogs:59
+msgid "F<debian/NEWS>"
+msgstr "F<debian/NEWS>"
+
+#. type: =item
+#: dh_installchangelogs:61
+msgid "debian/I<package>.changelog"
+msgstr "debian/I<package>.changelog"
+
+#. type: =item
+#: dh_installchangelogs:63
+msgid "debian/I<package>.NEWS"
+msgstr "debian/I<package>.NEWS"
+
+#. type: textblock
+#: dh_installchangelogs:65
+msgid ""
+"Automatically installed into usr/share/doc/I<package>/ in the package build "
+"directory."
+msgstr ""
+"これらのファイルは、パッケージビルドディレクトリ以下の usr/share/doc/"
+"I<package>/ 配下に自動的にインストールされます。"
+
+#. type: textblock
+#: dh_installchangelogs:68
+msgid ""
+"Use the package specific name if I<package> needs a different F<NEWS> or "
+"F<changelog> file."
+msgstr ""
+"I<package> が異なる F<NEWS> や F<changelog> ファイル名を使う必要がある場合"
+"は、パッケージ固有の名前を指定してください。"
+
+#. type: textblock
+#: dh_installchangelogs:71
+msgid ""
+"The F<changelog> file is installed with a name of changelog for native "
+"packages, and F<changelog.Debian> for non-native packages. The F<NEWS> file "
+"is always installed with a name of F<NEWS.Debian>."
+msgstr ""
+" F<changelog> ファイルは native パッケージ向けには changelog の名前でインス"
+"トールされ、非 native パッケージ向けには F<changelog.Debian> としてインストー"
+"ルされます。F<NEWS> は必ず F<NEWS.Debian> の名前でインストールされます。"
+
+#. type: textblock
+#: dh_installchangelogs:83
+#, fuzzy
+msgid ""
+"Keep the original name of the upstream changelog. This will be accomplished "
+"by installing the upstream changelog as F<changelog>, and making a symlink "
+"from that to the original name of the F<changelog> file. This can be useful "
+"if the upstream changelog has an unusual name, or if other documentation in "
+"the package refers to the F<changelog> file."
+msgstr ""
+"開発元 (upstream) 付属の changelog の名前を保持します。これは開発元 "
+"(upstream) 付属の changelog をF<changelog> としてインストールし、"
+"F<changelog> ファイルの元の名前でそのファイルにシンボリックリンクを張ります。"
+"これは開発元 (upstream) の changelog が通常ではない名前の場合、あるいはパッ"
+"ケージに含まれる別のドキュメントが F<changelog> ファイルを参照している時に便"
+"利かもしれません。"
+
+#. type: textblock
+#: dh_installchangelogs:91
+msgid ""
+"Exclude upstream F<changelog> files that contain I<item> anywhere in their "
+"filename from being installed."
+msgstr ""
+"I<item> をファイル名に含む開発元 (upstream) の F<changelog> ファイルをインス"
+"トール候補から除外します。"
+
+#. type: textblock
+#: dh_installchangelogs:94
+msgid "Note that directory name of the changelog is also part of the match."
+msgstr ""
+
+#. type: =item
+#: dh_installchangelogs:96
+#, fuzzy
+#| msgid "B<--no-start>"
+msgid "B<--no-trim>"
+msgstr "B<--no-start>"
+
+#. type: textblock
+#: dh_installchangelogs:98
+msgid ""
+"Install the full changelog, not its trimmed version that includes only "
+"recent entries."
+msgstr ""
+
+#. type: =item
+#: dh_installchangelogs:101
+msgid "I<upstream>"
+msgstr "I<upstream>"
+
+#. type: textblock
+#: dh_installchangelogs:103
+msgid "Install this file as the upstream changelog."
+msgstr ""
+"このファイルを開発元 (upstream) の changelog としてインストールします。"
+
+#. type: textblock
+#: dh_installcron:5
+msgid "dh_installcron - install cron scripts into etc/cron.*"
+msgstr "dh_installcron - cron スクリプトを etc/cron.* へインストールする"
+
+#. type: textblock
+#: dh_installcron:17
+msgid "B<dh_installcron> [S<B<debhelper options>>] [B<--name=>I<name>]"
+msgstr "B<dh_installcron> [S<B<debhelper options>>] [B<--name=>I<name>]"
+
+#. type: textblock
+#: dh_installcron:21
+msgid ""
+"B<dh_installcron> is a debhelper program that is responsible for installing "
+"cron scripts."
+msgstr ""
+"B<dh_installcron> は cron スクリプトをインストールする役目の debhelper プログ"
+"ラムです。"
+
+#. type: =item
+#: dh_installcron:28
+msgid "debian/I<package>.cron.daily"
+msgstr "debian/I<package>.cron.daily"
+
+#. type: =item
+#: dh_installcron:30
+msgid "debian/I<package>.cron.weekly"
+msgstr "debian/I<package>.cron.weekly"
+
+#. type: =item
+#: dh_installcron:32
+msgid "debian/I<package>.cron.monthly"
+msgstr "debian/I<package>.cron.monthly"
+
+#. type: =item
+#: dh_installcron:34
+#, fuzzy
+#| msgid "debian/I<package>.cron.daily"
+msgid "debian/I<package>.cron.yearly"
+msgstr "debian/I<package>.cron.daily"
+
+#. type: =item
+#: dh_installcron:36
+msgid "debian/I<package>.cron.hourly"
+msgstr "debian/I<package>.cron.hourly"
+
+#. type: =item
+#: dh_installcron:38
+msgid "debian/I<package>.cron.d"
+msgstr "debian/I<package>.cron.d"
+
+#. type: textblock
+#: dh_installcron:40
+msgid ""
+"Installed into the appropriate F<etc/cron.*/> directory in the package build "
+"directory."
+msgstr ""
+"これは、パッケージビルドディレクトリ以下にある適切な F<etc/cron.*/> にそれぞ"
+"れインストールされます。"
+
+#. type: =item
+#: dh_installcron:49 dh_installifupdown:46 dh_installinit:174
+#: dh_installlogcheck:49 dh_installlogrotate:29 dh_installmodules:49
+#: dh_installpam:42 dh_installppp:42 dh_installudev:38 dh_systemd_enable:94
+msgid "B<--name=>I<name>"
+msgstr "B<--name=>I<name>"
+
+#. type: textblock
+#: dh_installcron:51
+#, fuzzy
+msgid ""
+"Look for files named F<debian/package.name.cron.*> and install them as F<etc/"
+"cron.*/name>, instead of using the usual files and installing them as the "
+"package name."
+msgstr ""
+"F<debian/package.name.cron.*> という名前のファイルを探して F<etc/cron.*/"
+"name> としてインストールします。これは、通常のファイルを使わず、また、パッ"
+"ケージの名前でインストールしたく無い時に使います。"
+
+#. type: textblock
+#: dh_installdeb:5
+msgid "dh_installdeb - install files into the DEBIAN directory"
+msgstr "dh_installdeb - DEBIAN ディレクトリにファイルをインストールする"
+
+#. type: textblock
+#: dh_installdeb:17
+msgid "B<dh_installdeb> [S<I<debhelper options>>]"
+msgstr "B<dh_installdeb> [S<I<debhelper options>>]"
+
+#. type: textblock
+#: dh_installdeb:21
+msgid ""
+"B<dh_installdeb> is a debhelper program that is responsible for installing "
+"files into the F<DEBIAN> directories in package build directories with the "
+"correct permissions."
+msgstr ""
+"B<dh_installdeb> は、パッケージビルドディレクトリにある F<DEBIAN> ディレクト"
+"リ以下に、適切な権限を持った状態でファイルをインストールする役目の debhelper "
+"プログラムです。"
+
+#. type: =item
+#: dh_installdeb:29
+msgid "I<package>.postinst"
+msgstr "I<package>.postinst"
+
+#. type: =item
+#: dh_installdeb:31
+msgid "I<package>.preinst"
+msgstr "I<package>.preinst"
+
+#. type: =item
+#: dh_installdeb:33
+msgid "I<package>.postrm"
+msgstr "I<package>.postrm"
+
+#. type: =item
+#: dh_installdeb:35
+msgid "I<package>.prerm"
+msgstr "I<package>.prerm"
+
+#. type: textblock
+#: dh_installdeb:37
+msgid "These maintainer scripts are installed into the F<DEBIAN> directory."
+msgstr ""
+"これらのメンテナスクリプトは F<DEBIAN> ディレクトリ以下にインストールされま"
+"す。"
+
+#. type: textblock
+#: dh_installdeb:39
+msgid ""
+"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 ""
+"The B<#DEBHELPER#> token should be placed on its own line as it is often "
+"replaced by a multi-line shell script."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:48
+msgid "I<package>.triggers"
+msgstr "I<package>.triggers"
+
+#. type: =item
+#: dh_installdeb:50
+msgid "I<package>.shlibs"
+msgstr "I<package>.shlibs"
+
+#. type: textblock
+#: dh_installdeb:52
+msgid "These control files are installed into the F<DEBIAN> directory."
+msgstr ""
+"これらのファイル群は F<DEBIAN> ディレクトリ以下にインストールされます。"
+
+#. type: textblock
+#: dh_installdeb:54
+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:57
+msgid "I<package>.conffiles"
+msgstr "I<package>.conffiles"
+
+#. type: textblock
+#: dh_installdeb:59
+msgid ""
+"This file will be installed into the F<DEBIAN> directory. The provided file "
+"will be enriched by debhelper to include all the B<conffiles> auto-detected "
+"by debhelper (the maintainer should not list anything there as debhelper "
+"assumes it should handle that part)."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:64
+msgid ""
+"This file is primarily useful for using \"special\" entries such as the B<< "
+"remove-on-upgrade >> feature from dpkg."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:67
+msgid "I<package>.maintscript"
+msgstr "I<package>.maintscript"
+
+#. type: textblock
+#: dh_installdeb:69
+msgid ""
+"Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands and "
+"parameters. However, the \"maint-script-parameters\" should I<not> be "
+"included as debhelper will add those automatically."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:73
+msgid "Example:"
+msgstr "例:"
+
+#. type: verbatim
+#: dh_installdeb:75
+#, no-wrap
+msgid ""
+" # Correct\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo\n"
+" # INCORRECT\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo -- \"$@\"\n"
+"\n"
+msgstr ""
+" # 正解\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo\n"
+" # 不正解\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo -- \"$@\"\n"
+"\n"
+
+#. type: textblock
+#: dh_installdeb:80
+#, fuzzy
+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 "
+"C<mv_conffile /etc/oldconffile /etc/newconffile> will insert maintainer "
+"script snippets into all maintainer scripts sufficient to move that conffile."
+msgstr ""
+"このファイルに入っている各行は L<dpkg-maintscript-helper(1)> コマンドとパラ"
+"メータに関するものです。シェルのメタキャラクタはエスケープされるため、任意の"
+"シェルスクリプトをここに挿入することはできません。例えば、C<mv_conffile /etc/"
+"oldconffile /etc/newconffile> のような行は、F</etc/oldconffile> をこの行で示"
+"される F</etc/newconffile> へ移動できるように、全てのメンテナスクリプトに追加"
+"のスクリプトを挿入することを意味します。"
+
+#. type: textblock
+#: dh_installdeb:86
+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 "
+"embed arbitrary shell code in earlier compat levels."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:90
+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: textblock
+#: dh_installdeb:95
+msgid ""
+"Where possible, B<dh_installdeb> may choose to rewrite some or all of the "
+"entries into equivalent features supported in dpkg without relying on "
+"maintainer scripts at its sole discretion (examples include rewriting "
+"B<rm_conffile> into dpkg's B<remove-on-upgrade>). The minimum requirement "
+"for activating this feature is that debhelper runs in compat 10 or later."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:111 dh_installdebconf:76
+msgid "B<-D>I<TOKEN=VALUE>, B<--define> I<TOKEN=VALUE>"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:113 dh_installdebconf:78
+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:118 dh_installdebconf:83
+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:123 dh_installdebconf:88
+msgid ""
+"An explicit declared token with this parameter will replace built-in tokens."
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:126 dh_installdebconf:91
+msgid "Test examples to aid with the understanding:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:128
+#, 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:135 dh_installdebconf:100
+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:138
+msgid ""
+"It is also possible to 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:143 dh_installdebconf:108
+msgid "This can be used as in the following example:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installdeb:145
+#, 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:160
+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:164
+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:170 dh_installdebconf:135
+msgid "SUBSTITUTION IN MAINTAINER SCRIPTS"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:172
+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:177
+#, fuzzy
+#| msgid "DEBHELPER COMMANDS"
+msgid "#DEBHELPER#"
+msgstr "DEBHELPER コマンド"
+
+#. type: textblock
+#: dh_installdeb:179
+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:183 dh_installdebconf:142
+msgid "#DEB_HOST_I<NAME>#, #DEB_BUILD_I<NAME>#, #DEB_TARGET_I<NAME>#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:185 dh_installdebconf:144
+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:190 dh_installdebconf:149
+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:193 dh_installdebconf:152
+msgid "#ENV.I<NAME>#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:195 dh_installdebconf:154
+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:200 dh_installdebconf:159
+msgid ""
+"Note that there are limits on which names can be used (see L</Limitations in "
+"token names>)."
+msgstr ""
+
+#. type: =item
+#: dh_installdeb:203 dh_installdebconf:162
+msgid "#PACKAGE#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:205 dh_installdebconf:164
+msgid ""
+"This token is by default replaced by the package name, which will contain "
+"the concrete script."
+msgstr ""
+
+#. type: =head2
+#: dh_installdeb:210 dh_installdebconf:169
+msgid "Limitations in token names"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:212 dh_installdebconf:171
+msgid ""
+"All tokens intended to be substituted must match the regex: #[A-Za-z0-9_.+]+#"
+msgstr ""
+
+#. type: textblock
+#: dh_installdeb:214
+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 ""
+"dh_installdebconf - install files used by debconf in package build "
+"directories"
+msgstr ""
+"dh_installdebconf - ビルドディレクトリの debconf が使うファイルをインストール"
+"する"
+
+#. type: textblock
+#: dh_installdebconf:17
+msgid ""
+"B<dh_installdebconf> [S<I<debhelper options>>] [B<-n>] [S<B<--> I<params>>]"
+msgstr ""
+"B<dh_installdebconf> [S<I<debhelper options>>] [B<-n>] [S<B<--> I<params>>]"
+
+#. type: textblock
+#: dh_installdebconf:21
+msgid ""
+"B<dh_installdebconf> is a debhelper program that is responsible for "
+"installing files used by debconf into package build directories."
+msgstr ""
+"B<dh_installdebconf> は、debconf により使われるファイルをパッケージビルドディ"
+"レクトリへインストールする役割を持つ debhelper プログラムです。"
+
+#. type: textblock
+#: dh_installdebconf:24
+#, fuzzy
+msgid ""
+"It also automatically generates the F<postrm> commands needed to interface "
+"with debconf. The commands are added to the maintainer scripts by "
+"B<dh_installdeb>. See L<dh_installdeb(1)> for an explanation of how that "
+"works."
+msgstr ""
+"このコマンドは debconf に整合するのに必要な F<postrm> ファイルを自動的に生成"
+"します。このコマンドは B<dh_installdeb> によりメンテナスクリプトへ追加されま"
+"す。この追加に関する動作についての説明は、L<dh_installdeb(1)> にあります。"
+
+#. type: textblock
+#: dh_installdebconf:29
+msgid ""
+"Note that if you use debconf, your package probably needs to depend on it "
+"(it will be added to B<${misc:Depends}> by this program)."
+msgstr ""
+"debconf を使うと、パッケージは debconf に対して依存するという事に注意してくだ"
+"さい (本プログラムにより B<${misc:Depends}> へ依存関係の追加が行われます)。"
+
+#. type: textblock
+#: dh_installdebconf:32
+msgid ""
+"Note that for your config script to be called by B<dpkg>, your F<postinst> "
+"needs to source debconf's confmodule. B<dh_installdebconf> does not install "
+"this statement into the F<postinst> automatically as it is too hard to do it "
+"right."
+msgstr ""
+"B<dpkg> により設定用スクリプトが呼び出されることになりますが、F<postinst> "
+"ファイルには debconf の confmodule を含める必要があることに注意してください。"
+"B<dh_installdebconf> はこの作業を F<postinst> へ自動的に挿入しません。という"
+"のも、これを自動的に正しく行うのは非常に難しいからです。"
+
+#. type: =item
+#: dh_installdebconf:41
+msgid "debian/I<package>.config"
+msgstr "debian/I<package>.config"
+
+#. type: textblock
+#: dh_installdebconf:43
+msgid ""
+"This is the debconf F<config> script, and is installed into the F<DEBIAN> "
+"directory in the package build directory."
+msgstr ""
+"これはdebconfの F<config> スクリプトです。パッケージビルドディレクトリ以下に"
+"ある F<DEBIAN> ディレクトリにインストールされます。"
+
+#. type: textblock
+#: dh_installdebconf:46
+msgid ""
+"Inside the script, the token B<#DEBHELPER#> is replaced with shell script "
+"snippets generated by other debhelper commands."
+msgstr ""
+"本スクリプト内に記載されている B<#DEBHELPER#> という文言は他の debhelper コマ"
+"ンドにより生成されたシェルスクリプトのスニペットによって置き換えられます。"
+
+#. type: =item
+#: dh_installdebconf:49
+msgid "debian/I<package>.templates"
+msgstr "debian/I<package>.templates"
+
+#. type: textblock
+#: dh_installdebconf:51
+msgid ""
+"This is the debconf F<templates> file, and is installed into the F<DEBIAN> "
+"directory in the package build directory."
+msgstr ""
+"これは debconf の F<templates> ファイルです。パッケージビルドディレクトリの "
+"F<DEBIAN> ディレクトリ以下にインストールされます。 "
+
+#. type: =item
+#: dh_installdebconf:54
+msgid "F<debian/po/>"
+msgstr "F<debian/po/>"
+
+#. type: textblock
+#: dh_installdebconf:56
+msgid ""
+"If this directory is present, this program will automatically use "
+"L<po2debconf(1)> to generate merged templates files that include the "
+"translations from there."
+msgstr ""
+"もしこのディレクトリが存在すれば、このプログラムは自動的に L<po2debconf(1)> "
+"を呼び出し、このディレクトリ以下にある翻訳されたファイルを含む結合された "
+"debconf テンプレートファイルを生成します。"
+
+#. type: textblock
+#: dh_installdebconf:60
+msgid "For this to work, your package should build-depend on F<po-debconf>."
+msgstr ""
+"これが動作する為には、F<po-debconf> に関するビルド依存の指定がパッケージに必"
+"要です。"
+
+#. type: textblock
+#: dh_installdebconf:70
+msgid "Do not modify F<postrm> script."
+msgstr "F<postrm> ファイルの変更を行いません。"
+
+#. type: textblock
+#: dh_installdebconf:74
+msgid "Pass the params to B<po2debconf>."
+msgstr "B<po2debconf> へパラメータを引き渡します。"
+
+#. type: verbatim
+#: dh_installdebconf:93
+#, no-wrap
+msgid ""
+"\tcat >> debian/config <<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_installdebconf:103
+msgid ""
+"It is also possible to set package-specific values for a given token. This "
+"is useful when B<dh_installdebconf> 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: verbatim
+#: dh_installdebconf:110
+#, no-wrap
+msgid ""
+"\tcat >> debian/foo.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/bar.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/baz.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+" dh_installdebconf -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_installdebconf:125
+msgid ""
+"In this example, B<#TOKEN#> will expand to B<default> in F<debian/foo."
+"config>, to B<unique-bar-value> in F<debian/bar.config> and to B<unique-baz-"
+"value> in F<debian/baz.config>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdebconf:129
+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.config> and it "
+"will be replaced by B<unique-bar-value>."
+msgstr ""
+
+#. type: textblock
+#: dh_installdebconf:137
+msgid ""
+"The B<dh_installdebconf> will automatically replace the following tokens "
+"inside a provided maintainer script (if not replaced via B<-D>/B<--define>):"
+msgstr ""
+
+#. type: textblock
+#: dh_installdebconf:173
+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_installdebconf> to reject the command with an error in most cases."
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:5
+msgid "dh_installdirs - create subdirectories in package build directories"
+msgstr ""
+"dh_installdirs - パッケージビルドディレクトリ以下にサブディレクトリを作成する"
+
+#. type: textblock
+#: dh_installdirs:17
+#, fuzzy
+#| msgid ""
+#| "B<dh_movefiles> [S<I<debhelper options>>] [B<--sourcedir=>I<dir>] [B<-"
+#| "X>I<item>] [S<I<file> ...>]"
+msgid ""
+"B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [B<--sourcedir=>I<dir>] "
+"[B<--create-in-sourcedir>] [S<I<dir> ...>]"
+msgstr ""
+"B<dh_movefiles> [S<I<debhelper オプション>>] [B<--sourcedir=>I<ディレクトリ"
+">] [B<-X>I<item>] [S<I<ファイル> ...>]"
+
+#. type: textblock
+#: dh_installdirs:21
+msgid ""
+"B<dh_installdirs> is a debhelper program that is responsible for creating "
+"subdirectories in package build directories."
+msgstr ""
+"B<dh_installdirs> はパッケージビルドディレクトリ以下にサブディレクトリを作成"
+"する役目を持つ debhelper プログラムです。"
+
+#. type: textblock
+#: dh_installdirs:24
+msgid ""
+"Many packages can get away with omitting the call to B<dh_installdirs> "
+"completely. Notably, other B<dh_*> commands are expected to create "
+"directories as needed."
+msgstr ""
+
+#. type: =item
+#: dh_installdirs:32
+msgid "debian/I<package>.dirs"
+msgstr "debian/I<package>.dirs"
+
+#. type: textblock
+#: dh_installdirs:34
+msgid "Lists directories to be created in I<package>."
+msgstr "I<package> 以下に作るディレクトリを列挙します"
+
+#. type: textblock
+#: dh_installdirs:36
+msgid ""
+"Generally, there is no need to list directories created by the upstream "
+"build system or directories needed by other B<debhelper> commands."
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:51
+msgid ""
+"Create any directories specified by command line parameters in ALL packages "
+"acted on, not just the first."
+msgstr ""
+"コマンドラインパラメータに指定されたディレクトリを作成します。この場合、最初"
+"のパッケージのみならず全パッケージに作用します。"
+
+#. type: =item
+#: dh_installdirs:54
+msgid "B<--create-in-sourcedir>, B<--no-create-in-sourcedir>"
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:56
+msgid ""
+"Whether to create the specified directories in the source directory (usually "
+"F<debian/tmp>) I<in addition to> in the package build directory (usually F<< "
+"debian/I<package> >>)."
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:60
+#, fuzzy
+#| msgid "The default is to create debug symbol packages."
+msgid "The default is B<--no-create-in-sourcedir>."
+msgstr "デフォルトはデバッグシンボルパッケージを作成します。"
+
+#. type: textblock
+#: dh_installdirs:64
+msgid ""
+"Consider I<dir> the source directory for the packages acted on instead of "
+"the default (which is usually F<debian/tmp>)."
+msgstr ""
+
+#. type: textblock
+#: dh_installdirs:67
+msgid ""
+"Please note that this option is dependent on the B<--create-in-sourcedir> "
+"option (when B<--no-create-in-sourcedir> is in effect, this option does "
+"nothing in B<dh_installdirs>)."
+msgstr ""
+
+#. type: =item
+#: dh_installdirs:71
+msgid "I<dir> ..."
+msgstr "I<dir> ..."
+
+#. type: textblock
+#: dh_installdirs:73
+msgid ""
+"Create these directories in the package build directory of the first package "
+"acted on. (Or in all packages if B<-A> is specified.)"
+msgstr ""
+"動作する最初のパッケージのパッケージビルドディレクトリ以下に指定されたディレ"
+"クトリを作成します (あるいは、B<-A> が指定されれば、全パッケージのパッケージ"
+"ビルドディレクトリに対して行われます)。"
+
+#. type: textblock
+#: dh_installdocs:7
+msgid "dh_installdocs - install documentation into package build directories"
+msgstr ""
+"dh_installdocs - パッケージビルドディレクトリ以下にドキュメントをインストール"
+"する"
+
+#. type: textblock
+#: dh_installdocs:19
+msgid ""
+"B<dh_installdocs> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
+"[S<I<file> ...>]"
+msgstr ""
+"B<dh_installdocs> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
+"[S<I<file> ...>]"
+
+#. type: textblock
+#: dh_installdocs:23
+msgid ""
+"B<dh_installdocs> is a debhelper program that is responsible for installing "
+"documentation into F<usr/share/doc/package> in package build directories."
+msgstr ""
+"B<dh_installdocs> はパッケージビルドディレクトリ以下にある F<usr/share/doc/"
+"package> ディレクトリへドキュメントをインストールする役割を持つ debhelper プ"
+"ログラムです。"
+
+#. type: textblock
+#: dh_installdocs:26
+msgid ""
+"In compat 10 and earlier, L<dh_install(1)> may be a better tool for handling "
+"the upstream documentation, when upstream's own build system installs all "
+"the desired documentation correctly. In this case, B<dh_installdocs> is "
+"still useful for installing packaging related documentation (e.g. the "
+"F<debian/copyright> file)."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:31 dh_installexamples:27 dh_installinfo:24 dh_installman:69
+#, fuzzy
+#| msgid ""
+#| "From debhelper compatibility level 7 on, B<dh_install> will fall back to "
+#| "looking in F<debian/tmp> for files, if it doesn't find them in the "
+#| "current directory (or wherever you've told it to look using B<--"
+#| "sourcedir>)."
+msgid ""
+"From debhelper compatibility level 11 on, B<dh_install> will fall back to "
+"looking in F<debian/tmp> for files, if it does not find them in the current "
+"directory (or wherever you've told it to look using B<--sourcedir>)."
+msgstr ""
+"debhelper の互換性レベル 7 から、 B<dh_install> はファイルをカレントディレク"
+"トリで見つけられなければ (あるいは B<--sourcedir> オプションを使って指定した"
+"ディレクトリの中を探してファイルが見けられなければ) 、自動的に F<debian/tmp> "
+"を探しにいくようになりました"
+
+#. type: textblock
+#: dh_installdocs:35
+msgid ""
+"In compat 11 and later, B<dh_installdocs> offers many of the features that "
+"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
+#: dh_installdocs:44
+msgid "debian/I<package>.docs"
+msgstr "debian/I<package>.docs"
+
+#. type: textblock
+#: dh_installdocs:46
+msgid "List documentation files to be installed into I<package>."
+msgstr ""
+"I<package> にインストールすべきドキュメントファイルの一覧を列挙します。"
+
+#. type: =item
+#: dh_installdocs:51
+msgid "F<debian/copyright>"
+msgstr "F<debian/copyright>"
+
+#. type: textblock
+#: dh_installdocs:53
+#, fuzzy
+msgid ""
+"The copyright file is installed into all packages, unless a more specific "
+"copyright file is available."
+msgstr ""
+"より特定の copyright ファイルが利用できない限り、copyright ファイルは全ての"
+"パッケージにインストールされます。"
+
+#. type: =item
+#: dh_installdocs:56
+msgid "debian/I<package>.copyright"
+msgstr "debian/I<package>.copyright"
+
+#. type: =item
+#: dh_installdocs:58
+msgid "debian/I<package>.README.Debian"
+msgstr "debian/I<package>.README.Debian"
+
+#. type: =item
+#: dh_installdocs:60
+msgid "debian/I<package>.TODO"
+msgstr "debian/I<package>.TODO"
+
+#. type: textblock
+#: dh_installdocs:62
+#, fuzzy
+msgid ""
+"Each of these files is automatically installed if present for a I<package>."
+msgstr "I<package> があれば、これらのファイルは自動的にインストールされます。"
+
+#. type: =item
+#: dh_installdocs:65
+msgid "F<debian/README.Debian>"
+msgstr "F<debian/README.Debian>"
+
+#. type: =item
+#: dh_installdocs:67
+msgid "F<debian/TODO>"
+msgstr "F<debian/TODO>"
+
+#. type: textblock
+#: dh_installdocs:69
+msgid ""
+"These files are installed into the first binary package listed in debian/"
+"control."
+msgstr ""
+"これらのファイルは debian/control に最初に記載されているバイナリパッケージへ"
+"インストールされます。"
+
+#. type: textblock
+#: dh_installdocs:72
+msgid ""
+"Note that F<README.debian> files are also installed as F<README.Debian>, and "
+"F<TODO> files will be installed as F<TODO.Debian> in non-native packages."
+msgstr ""
+"非 native パッケージの元では、F<README.debian> ファイルは F<README.Debian> と"
+"してインストールされ、F<TODO> ファイルは F<TODO.Debian> としてインストールさ"
+"れます。"
+
+#. type: =item
+#: dh_installdocs:75
+msgid "debian/I<package>.doc-base"
+msgstr "debian/I<package>.doc-base"
+
+#. type: textblock
+#: dh_installdocs:77
+#, fuzzy
+msgid ""
+"Installed as doc-base control files. Note that the doc-id will be determined "
+"from the B<Document:> entry in the doc-base control file in question. In the "
+"event that multiple doc-base files in a single source package share the same "
+"doc-id, they will be installed to usr/share/doc-base/package instead of usr/"
+"share/doc-base/doc-id."
+msgstr ""
+"doc-base 制御ファイルとしてインストールされます。なお、doc-id は doc-base 制"
+"御ファイル中の B<Document:> エントリから決定されます。"
+
+#. type: =item
+#: dh_installdocs:83
+msgid "debian/I<package>.doc-base.*"
+msgstr "debian/I<package>.doc-base.*"
+
+#. type: textblock
+#: dh_installdocs:85
+#, fuzzy
+msgid ""
+"If your package needs to register more than one document, you need multiple "
+"doc-base files, and can name them like this. In the event that multiple doc-"
+"base files of this style in a single source package share the same doc-id, "
+"they will be installed to usr/share/doc-base/package-* instead of usr/share/"
+"doc-base/doc-id."
+msgstr ""
+"usr/share/doc-base/doc-id の代わりに usr/share/doc-base/package-* にインス"
+"トールされます。"
+
+#. type: textblock
+#: dh_installdocs:91
+msgid ""
+"Please be aware that this deduplication is currently done in memory only, so "
+"for now it requires B<dh_installdocs> to be called no more than once during "
+"the package build. Calling B<dh_installdocs -p>I<package> in combination "
+"with using F<debian/>I<package>F<.doc-base.*> files can lead to "
+"uninstallable packages. See L<https://bugs.debian.org/980903> for details."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:106 dh_installinfo:47 dh_installman:92
+msgid ""
+"Install all files specified by command line parameters in ALL packages acted "
+"on."
+msgstr ""
+"全パッケージに対して、コマンドラインパラメータに指定されたファイルを全てイン"
+"ストールします。"
+
+#. type: textblock
+#: dh_installdocs:111
+msgid ""
+"Exclude files that contain I<item> anywhere in their filename from being "
+"installed. Note that this includes doc-base files."
+msgstr ""
+"インストール対象のファイルから、I<item> をファイル名に含むものを除外します。"
+"これには doc-base のファイルも含む点に注意ください。"
+
+#. type: textblock
+#: dh_installdocs:116 dh_installexamples:59 dh_installinfo:52 dh_installman:102
+msgid ""
+"Look in the specified directory for files to be installed. This option "
+"requires compat 11 or later (it is silently ignored in compat 10 or earlier)."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:119 dh_installman:105
+#, fuzzy
+#| msgid ""
+#| "Note that this is not the same as the B<--sourcedirectory> option used by "
+#| "the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+#| "B<dh_install> automatically looks for files in F<debian/tmp> in debhelper "
+#| "compatibility level 7 and above."
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installman> automatically looks for files in F<debian/tmp> in debhelper "
+"compatibility level 11 and above."
+msgstr ""
+"このオプションは、B<dh_auto_>I<*> にあるような B<--sourcedirectory> とは異な"
+"る事に注意が必要です。このコマンドではあまりこのオプションは利用する機会があ"
+"りません。というのも B<dh_install> は互換性レベル v7 以上では自動的に "
+"F<debian/tmp> へファイルを探しに行く為です。"
+
+#. type: =item
+#: dh_installdocs:124 dh_installexamples:67
+#, fuzzy
+#| msgid "B<--mainpackage=>I<package>"
+msgid "B<--doc-main-package=>I<main-package>"
+msgstr "B<--mainpackage=>I<package>"
+
+#. type: textblock
+#: dh_installdocs:126 dh_installexamples:69
+msgid ""
+"Set the main package for a documentation package. This is used to install "
+"the documentation of the documentation package in F<< /usr/share/doc/I<main-"
+"package> >> as recommended by the Debian policy manual 3.9.7 in §12.3."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:131 dh_installexamples:74
+msgid ""
+"In compat 11 (or later), this option is only useful if debhelper's auto-"
+"detection of the main package is wrong. The option can also be used to "
+"silence a warning from debhelper when the auto-detection fails but the "
+"default happens to be correct."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:136
+msgid ""
+"This option cannot be used when B<dh_installdocs> is instructed to act on "
+"multiple packages. If you need this option, you will generally need to "
+"combine it with B<-p> to ensure exactly one package is acted on."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:141
+msgid ""
+"Please keep in mind that some documentation (the copyright file, README."
+"Debian, etc.) will be unaffected by this option."
+msgstr ""
+
+#. type: =item
+#: dh_installdocs:144
+msgid "B<--link-doc=>I<package>"
+msgstr "B<--link-doc=>I<package>"
+
+#. type: textblock
+#: dh_installdocs:146
+msgid ""
+"Make the documentation directory of all packages acted on be a symlink to "
+"the documentation directory of I<package>. This has no effect when acting on "
+"I<package> itself, or if the documentation directory to be created already "
+"exists when B<dh_installdocs> is run. To comply with policy, I<package> must "
+"be a binary package that comes from the same source package."
+msgstr ""
+"処理対象の全パッケージのドキュメンテーションディレクトリを、I<package> のド"
+"キュメンテーションディレクトリへのシンボリックリンクを張ることにより作成しま"
+"す。この動作は I<package> そのものには行われず、また、B<dh_installdocs> が動"
+"作する時に既に存在しているディレクトリに対しては行われません。ポリシーに準拠"
+"する為、I<package> は同じソースパッケージからビルドされるバイナリパッケージで"
+"ある必要があります。"
+
+#. type: textblock
+#: dh_installdocs:152
+msgid ""
+"debhelper will try to avoid installing files into linked documentation "
+"directories that would cause conflicts with the linked package. The B<-A> "
+"option will have no effect on packages with linked documentation "
+"directories, and F<copyright>, F<changelog>, F<README.Debian>, and F<TODO> "
+"files will not be installed."
+msgstr ""
+"debhelper はファイルをインストール時にシンボリックリンク先のパッケージとの競"
+"合を避ける為、シンボリックリンクで作成されているドキュメンテーションディレク"
+"トリにはファイルをインストールしません。B<-A> オプションはシンボリックリンク"
+"で作成されたディレクトリには作用しません。さらに、この場合、F<copyright>, "
+"F<changelog>, F<README.Debian>, F<TODO> ファイルはインストールされません。"
+
+#. type: textblock
+#: dh_installdocs:158
+#, fuzzy
+msgid ""
+"(An older method to accomplish the same thing, which is still supported, is "
+"to make the documentation directory of a package be a dangling symlink, "
+"before calling B<dh_installdocs>.)"
+msgstr ""
+"(同じ作用をする古い手法で、かつ、現在もなおサポートされているやり方として、"
+"B<dh_installdocs> を起動する前に、シンボリックリンクの指し示す先が実際には存"
+"在しないディレクトリへのシンボリックリンクをパッケージのドキュメンテーション"
+"ディレクトリとして、あらかじめ作成しておくという手があります)。"
+
+#. type: textblock
+#: dh_installdocs:162
+msgid ""
+"Please note that this option only applies to the documentation directory for "
+"the package itself. When the package ships documentation for another "
+"package (e.g. see B<--doc-main-package>), it will not use a symlink for the "
+"documentation of the other package."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:168
+msgid ""
+"B<CAVEAT 1>: If a previous version of the package was built without this "
+"option and is now built with it (or vice-versa), it requires a \"dir to "
+"symlink\" (or \"symlink to dir\") migration. Since debhelper has no "
+"knowledge of previous versions, you have to enable this migration itself."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:174
+msgid ""
+"This can be done by providing a \"debian/I<package>.maintscript\" file and "
+"using L<dh_installdeb(1)> to provide the relevant maintainer script snippets."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:178
+msgid ""
+"B<CAVEAT 2>: The use of B<--link-doc> should only be done when the packages "
+"have same \"architecture\" type. A link from an architecture independent "
+"package to an architecture dependent package (or vice versa) will not work. "
+"Since compat 10, debhelper will actively reject unsupported combinations."
+msgstr ""
+
+#. type: textblock
+#: dh_installdocs:186
+msgid ""
+"Install these files as documentation into the first package acted on. (Or in "
+"all packages if B<-A> is specified)."
+msgstr ""
+"作業予定の最初のパッケージに、これらのファイルをドキュメントファイルとしてイ"
+"ンストールします (あるいは B<-A> が指定されている場合は、ビルド予定の全ての"
+"パッケージに対してインストールします) "
+
+#. type: textblock
+#: dh_installdocs:193
+msgid "This is an example of a F<debian/package.docs> file:"
+msgstr "以下が F<debian/package.docs> ファイルの例です:"
+
+#. type: verbatim
+#: dh_installdocs:195
+#, no-wrap
+msgid ""
+" README\n"
+" TODO\n"
+" debian/notes-for-maintainers.txt\n"
+" docs/manual.txt\n"
+" docs/manual.pdf\n"
+" docs/manual-html/\n"
+"\n"
+msgstr ""
+" README\n"
+" TODO\n"
+" debian/notes-for-maintainers.txt\n"
+" docs/manual.txt\n"
+" docs/manual.pdf\n"
+" docs/manual-html/\n"
+"\n"
+
+#. type: textblock
+#: dh_installdocs:204
+#, fuzzy
+msgid ""
+"Note that B<dh_installdocs> will happily copy entire directory hierarchies "
+"if you ask it to (similar to B<cp -a>). If it is asked to install a "
+"directory, it will install the complete contents of the directory."
+msgstr ""
+"B<dh_installdocs> は、B<cp -a> と同じようにディレクトリ全体の階層まるごとコ"
+"ピーするように指定するのが良いと思われます。これはディレクトリをインストール"
+"するように指定する事により行い、この場合、ディレクトリの中身全部がインストー"
+"ルされます。"
+
+#. type: textblock
+#: dh_installemacsen:5
+msgid "dh_installemacsen - register an Emacs add on package"
+msgstr "dh_installemacsen - Emacsのアドオンパッケージを登録する"
+
+#. type: textblock
+#: dh_installemacsen:17
+msgid ""
+"B<dh_installemacsen> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
+"[B<--flavor=>I<foo>]"
+msgstr ""
+"B<dh_installemacsen> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
+"[B<--flavor=>I<foo>]"
+
+#. type: textblock
+#: dh_installemacsen:21
+msgid ""
+"B<dh_installemacsen> is a debhelper program that is responsible for "
+"installing files used by the Debian B<emacsen-common> package into package "
+"build directories."
+msgstr ""
+"B<dh_installemacsen> は、Debian B<emacsen-common> パッケージに利用されるファ"
+"イルをパッケージビルドディレクトリへインストールする役目の debhelper プログラ"
+"ムです。"
+
+#. type: textblock
+#: dh_installemacsen:25
+msgid ""
+"It also automatically generates the F<preinst> F<postinst> and F<prerm> "
+"commands needed to register a package as an Emacs add on package. The "
+"commands are added to the maintainer scripts by B<dh_installdeb>. See "
+"L<dh_installdeb(1)> for an explanation of how this works."
+msgstr ""
+"パッケージを Emacs アドオンパッケージとして登録するのに必要な F<postinst>, "
+"F<prerm>, F<prerm> を自動的に生成します。B<dh_installdeb> によって、コマンド"
+"がメンテナスクリプトに追加されます。どのように動作するかについては、"
+"L<dh_installdeb(1)> を参照ください。"
+
+#. type: =item
+#: dh_installemacsen:34
+msgid "debian/I<package>.emacsen-compat"
+msgstr "debian/I<package>.emacsen-compat"
+
+#. type: textblock
+#: dh_installemacsen:36
+msgid ""
+"Installed into F<usr/lib/emacsen-common/packages/compat/package> in the "
+"package build directory."
+msgstr ""
+"パッケージビルドディレクトリ内の F<usr/lib/emacsen-common/packages/compat/"
+"package> へインストールされます。"
+
+#. type: =item
+#: dh_installemacsen:39
+msgid "debian/I<package>.emacsen-install"
+msgstr "debian/I<package>.emacsen-install"
+
+#. type: textblock
+#: dh_installemacsen:41
+msgid ""
+"Installed into F<usr/lib/emacsen-common/packages/install/package> in the "
+"package build directory."
+msgstr ""
+"パッケージビルドディレクトリ内の F<usr/lib/emacsen-common/packages/install/"
+"package> へインストールされます。"
+
+#. type: =item
+#: dh_installemacsen:44
+msgid "debian/I<package>.emacsen-remove"
+msgstr "debian/I<package>.emacsen-remove"
+
+#. type: textblock
+#: dh_installemacsen:46
+msgid ""
+"Installed into F<usr/lib/emacsen-common/packages/remove/package> in the "
+"package build directory."
+msgstr ""
+"パッケージビルドディレクトリ内の F<usr/lib/emacsen-common/packages/remove/"
+"package> へインストールされます。"
+
+#. type: =item
+#: dh_installemacsen:49
+msgid "debian/I<package>.emacsen-startup"
+msgstr "debian/I<package>.emacsen-startup"
+
+#. type: textblock
+#: dh_installemacsen:51
+msgid ""
+"Installed into etc/emacs/site-start.d/50I<package>.el in the package build "
+"directory. Use B<--priority> to use a different priority than 50."
+msgstr ""
+"パッケージビルドディレクトリの etc/emacs/site-start.d/50I<package>.el へイン"
+"ストールします。優先順位を 50 以外を指定するには B<--priority> を使います。"
+
+#. type: textblock
+#: dh_installemacsen:62 dh_usrlocal:56
+msgid "Do not modify F<postinst>/F<prerm> scripts."
+msgstr "F<postinst>/F<prerm> を変更しません。"
+
+#. type: =item
+#: dh_installemacsen:64 dh_installwm:45
+msgid "B<--priority=>I<n>"
+msgstr "B<--priority=>I<n>"
+
+#. type: textblock
+#: dh_installemacsen:66
+msgid "Sets the priority number of a F<site-start.d> file. Default is 50."
+msgstr ""
+"F<site-start.d> ファイルに関して優先順位を指定します。デフォルトは 50 です。"
+
+#. type: =item
+#: dh_installemacsen:68
+msgid "B<--flavor=>I<foo>"
+msgstr "B<--flavor=>I<foo>"
+
+#. type: textblock
+#: dh_installemacsen:70
+msgid ""
+"Sets the flavor a F<site-start.d> file will be installed in. Default is "
+"B<emacs>, alternatives include B<xemacs> and B<emacs20>."
+msgstr ""
+"インストール予定の F<site-start.d> ファイルの形式を設定します。デフォルトは "
+"B<emacs> で、他に B<xemacs> と B<emacs20> 形式が存在します。"
+
+#. type: textblock
+#: 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>"
+
+#. type: textblock
+#: dh_installexamples:7
+msgid ""
+"dh_installexamples - install example files into package build directories"
+msgstr ""
+"dh_installexamples - 参考ファイルをビルドディレクトリへインストールする"
+
+#. type: textblock
+#: dh_installexamples:19
+msgid ""
+"B<dh_installexamples> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
+"[S<I<file> ...>]"
+msgstr ""
+"B<dh_installexamples> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
+"[S<I<file> ...>]"
+
+#. type: textblock
+#: dh_installexamples:23
+msgid ""
+"B<dh_installexamples> is a debhelper program that is responsible for "
+"installing examples into F<usr/share/doc/package/examples> in package build "
+"directories."
+msgstr ""
+"B<dh_installexamples> はパッケージビルドディレクトリにある F<usr/share/doc/"
+"package/examples> へ参考ファイルをインストールする役割の debhelper プログラム"
+"です。"
+
+#. type: =item
+#: dh_installexamples:35
+msgid "debian/I<package>.examples"
+msgstr "debian/I<package>.examples"
+
+#. type: textblock
+#: dh_installexamples:37
+#, fuzzy
+msgid "Lists example files or directories to be installed."
+msgstr ""
+"インストールする予定の例を示すファイルもしくは、ディレクトリを指定します。"
+
+#. type: textblock
+#: dh_installexamples:39
+msgid ""
+"If upstream provides an F<examples> directory, you will often want to use "
+"B<examples/*> rather than B<examples> in this file. The latter would create "
+"F<< /usr/share/doc/I<package>/examples/examples >>, which is rarely what you "
+"want."
+msgstr ""
+
+#. type: textblock
+#: dh_installexamples:54
+#, fuzzy
+msgid ""
+"Install any files specified by command line parameters in ALL packages acted "
+"on."
+msgstr ""
+"作業予定の全てのパッケージに対して、コマンドラインパラメータで指定されたファ"
+"イルをインストールします。"
+
+#. type: textblock
+#: dh_installexamples:62
+#, fuzzy
+#| msgid ""
+#| "Note that this is not the same as the B<--sourcedirectory> option used by "
+#| "the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+#| "B<dh_install> automatically looks for files in F<debian/tmp> in debhelper "
+#| "compatibility level 7 and above."
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installexamples> automatically looks for files in F<debian/tmp> in "
+"debhelper compatibility level 11 and above."
+msgstr ""
+"このオプションは、B<dh_auto_>I<*> にあるような B<--sourcedirectory> とは異な"
+"る事に注意が必要です。このコマンドではあまりこのオプションは利用する機会があ"
+"りません。というのも B<dh_install> は互換性レベル v7 以上では自動的に "
+"F<debian/tmp> へファイルを探しに行く為です。"
+
+#. type: textblock
+#: dh_installexamples:79
+msgid ""
+"This option cannot be used when B<dh_installexamples> is instructed to act "
+"on multiple packages. If you need this option, you will generally need to "
+"combine it with B<-p> to ensure exactly one package is acted on."
+msgstr ""
+
+#. type: textblock
+#: dh_installexamples:86
+msgid ""
+"Exclude files that contain I<item> anywhere in their filename from being "
+"installed."
+msgstr ""
+"I<item> をファイル名の一部として含んでいるファイルをインストール候補から除外"
+"します。"
+
+#. type: textblock
+#: dh_installexamples:91
+msgid ""
+"Install these files (or directories) as examples into the first package "
+"acted on. (Or into all packages if B<-A> is specified.)"
+msgstr ""
+"作業を行う最初のパッケージに、指定されたファイル (あるいはディレクトリ) を例"
+"を示す物としてインストールします (あるいは、B<-A>が指定された場合は、全ての"
+"パッケージに対してインストールを行います)。"
+
+#. type: textblock
+#: dh_installexamples:98
+msgid ""
+"Note that B<dh_installexamples> will happily copy entire directory "
+"hierarchies if you ask it to (similar to B<cp -a>). If it is asked to "
+"install a directory, it will install the complete contents of the directory."
+msgstr ""
+"特記すべき事として、もし指定されれば (B<cp -a> のように) 、ディレクトリ以下ま"
+"るごとコピーするようにすると便利です。もし、インストールもとディレクトリを指"
+"定すれば、このコマンドはディレクトリ以下全部をインストールします。"
+
+#. type: textblock
+#: dh_installifupdown:5
+msgid "dh_installifupdown - install if-up and if-down hooks"
+msgstr "dh_installifupdown - if-up と if-down フックをインストールします"
+
+#. type: textblock
+#: dh_installifupdown:17
+msgid "B<dh_installifupdown> [S<I<debhelper options>>] [B<--name=>I<name>]"
+msgstr "B<dh_installifupdown> [S<I<debhelper options>>] [B<--name=>I<name>]"
+
+#. type: textblock
+#: dh_installifupdown:21
+msgid ""
+"B<dh_installifupdown> is a debhelper program that is responsible for "
+"installing F<if-up>, F<if-down>, F<if-pre-up>, and F<if-post-down> hook "
+"scripts into package build directories."
+msgstr ""
+"B<dh_installifupdown> は F<if-up>, F<if-down>, F<if-pre-up>, F<if-post-down> "
+"フックをパッケージビルドディレクトリ以下にインストールする為の debhelper プロ"
+"グラムです。"
+
+#. type: =item
+#: dh_installifupdown:29
+msgid "debian/I<package>.if-up"
+msgstr "debian/I<package>.if-up"
+
+#. type: =item
+#: dh_installifupdown:31
+msgid "debian/I<package>.if-down"
+msgstr "debian/I<package>.if-down"
+
+#. type: =item
+#: dh_installifupdown:33
+msgid "debian/I<package>.if-pre-up"
+msgstr "debian/I<package>.if-pre-up"
+
+#. type: =item
+#: dh_installifupdown:35
+msgid "debian/I<package>.if-post-down"
+msgstr "debian/I<package>.if-post-down"
+
+#. type: textblock
+#: dh_installifupdown:37
+msgid ""
+"These files are installed into etc/network/if-*.d/I<package> in the package "
+"build directory."
+msgstr ""
+"これらファイルは、パッケージビルドディレクトリ以下にある、etc/network/if-*.d/"
+"I<package> 以下にインストールされます。"
+
+#. type: textblock
+#: dh_installifupdown:48
+msgid ""
+"Look for files named F<debian/package.name.if-*> and install them as F<etc/"
+"network/if-*/name>, instead of using the usual files and installing them as "
+"the package name."
+msgstr ""
+"F<debian/package.name.if-*> ファイルを見つけ出し、F<etc/network/if-*/name> へ"
+"インストールします。この時、本オプションを指定しない時に行われるような、通常"
+"ファイルのインストールとは違い、ファイルがパッケージ名としてインストールされ"
+"る事はありません。"
+
+#. type: textblock
+#: dh_installinfo:5
+msgid "dh_installinfo - install info files"
+msgstr "dh_installinfo - info ファイルをインストールする"
+
+#. type: textblock
+#: dh_installinfo:17
+msgid "B<dh_installinfo> [S<I<debhelper options>>] [B<-A>] [S<I<file> ...>]"
+msgstr "B<dh_installinfo> [S<I<debhelper options>>] [B<-A>] [S<I<file> ...>]"
+
+#. type: textblock
+#: dh_installinfo:21
+msgid ""
+"B<dh_installinfo> is a debhelper program that is responsible for installing "
+"info files into F<usr/share/info> in the package build directory."
+msgstr ""
+"B<dh_installinfo> は、パッケージビルドディレクトリ内の F<usr/share/info> ディ"
+"レクトリ以下に info ファイルをインストールします。"
+
+#. type: =item
+#: dh_installinfo:32
+msgid "debian/I<package>.info"
+msgstr "debian/I<package>.info"
+
+#. type: textblock
+#: dh_installinfo:34
+msgid "List info files to be installed."
+msgstr "インストールすべき info ファイルを列挙したものです。"
+
+#. type: textblock
+#: dh_installinfo:55
+#, fuzzy
+#| msgid ""
+#| "Note that this is not the same as the B<--sourcedirectory> option used by "
+#| "the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+#| "B<dh_install> automatically looks for files in F<debian/tmp> in debhelper "
+#| "compatibility level 7 and above."
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installinfo> automatically looks for files in F<debian/tmp> in "
+"debhelper compatibility level 11 and above."
+msgstr ""
+"このオプションは、B<dh_auto_>I<*> にあるような B<--sourcedirectory> とは異な"
+"る事に注意が必要です。このコマンドではあまりこのオプションは利用する機会があ"
+"りません。というのも B<dh_install> は互換性レベル v7 以上では自動的に "
+"F<debian/tmp> へファイルを探しに行く為です。"
+
+#. type: textblock
+#: dh_installinfo:62
+msgid ""
+"Install these info files into the first package acted on. (Or in all "
+"packages if B<-A> is specified)."
+msgstr ""
+"こちらにて指定される info ファイルを、処理を行う最初のパッケージにインストー"
+"ルします (B<-A> が指定されていれば、全パッケージに対してインストールされま"
+"す) "
+
+#. type: textblock
+#: dh_installinit:5
+msgid ""
+"dh_installinit - install service init files into package build directories"
+msgstr ""
+"dh_installinit - ビルドディレクトリに service init ファイルをインストールする"
+
+#. type: textblock
+#: dh_installinit:18
+msgid ""
+"B<dh_installinit> [S<I<debhelper options>>] [B<--name=>I<name>] [B<-n>] [B<-"
+"R>] [B<-r>] [B<-d>] [S<B<--> I<params>>]"
+msgstr ""
+"B<dh_installinit> [S<I<debhelper options>>] [B<--name=>I<name>] [B<-n>] [B<-"
+"R>] [B<-r>] [B<-d>] [S<B<--> I<params>>]"
+
+#. type: textblock
+#: dh_installinit:22
+#, fuzzy
+msgid ""
+"B<dh_installinit> is a debhelper program that is responsible for installing "
+"init scripts with associated defaults files. In compatibility levels up to "
+"and including 10, B<dh_installinit> will also install some systemd related "
+"files provided by the debian packaging (see the L</FILES> section below). "
+"In compatibility levels up to and including 11, B<dh_installinit> will also "
+"handle upstart jobs provided in the debian packaging (see the L</FILES> for "
+"more information on this as well)."
+msgstr ""
+"B<dh_installlint> は、デフォルトで利用される init スクリプトと、アップスター"
+"ト用のジョブファイルをパッケージビルドディレクトリへインストールする役目の "
+"debhelper プログラムです。"
+
+#. type: textblock
+#: dh_installinit:31
+msgid ""
+"It also automatically generates the F<postinst> and F<postrm> and F<prerm> "
+"commands needed to set up the symlinks in F</etc/rc*.d/> to start and stop "
+"the init scripts."
+msgstr ""
+"このコマンドは、F</etc/rc*.d/> 以下にシンボリックリンクを張り、start と stop "
+"手続きを持つような init スクリプトをセットアップするのに必要な F<postinst>, "
+"F<postrm>, F<prerm> コマンドを自動的に生成します。"
+
+#. type: textblock
+#: dh_installinit:35
+msgid ""
+"In compat 10 or earlier: If a package only ships a systemd service file and "
+"no sysvinit script is provided, you may want to exclude the call to "
+"dh_installinit for that package (e.g. via B<-N>). Otherwise, you may get "
+"warnings from lintian about init.d scripts not being included in the package."
+msgstr ""
+
+#. type: =item
+#: dh_installinit:45
+msgid "debian/I<package>.init"
+msgstr "debian/I<package>.init"
+
+#. type: textblock
+#: dh_installinit:47
+msgid ""
+"If this exists, it is installed into etc/init.d/I<package> in the package "
+"build directory."
+msgstr ""
+"もし本ファイルが存在すれば、パッケージビルドディレクトリ以下の etc/init/"
+"I<package> ディレクトリにインストールされます。"
+
+#. type: =item
+#: dh_installinit:50
+msgid "debian/I<package>.default"
+msgstr "debian/I<package>.default"
+
+#. type: textblock
+#: dh_installinit:52
+msgid ""
+"If this exists, it is installed into etc/default/I<package> in the package "
+"build directory."
+msgstr ""
+"もしこちらが存在すれば、パッケージビルドディレクトリ内の etc/default/"
+"I<package> へこのファイルをインストールします。"
+
+#. type: =item
+#: dh_installinit:55
+msgid "debian/I<package>.upstart"
+msgstr "debian/I<package>.upstart"
+
+#. type: textblock
+#: dh_installinit:57
+msgid ""
+"In compatibility level 11, this file will trigger an error with a reminder "
+"about ensuring the proper removal of the upstart file in the previous "
+"package version. Please consider using the \"rm_conffile\" feature from "
+"L<dh_installdeb(1)> to ensure the proper removal of previous upstart files."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:62
+#, fuzzy
+#| msgid ""
+#| "If this exists, it is installed into etc/init/I<package>.conf in the "
+#| "package build directory."
+msgid ""
+"In compatibility level 10, if this file exists, it is installed into etc/"
+"init/I<package>.conf in the package build directory."
+msgstr ""
+"もし本ファイルが存在すれば、パッケージビルドディレクトリ以下に etc/init/"
+"I<package>.conf ファイルとしてインストールされます。"
+
+#. type: =item
+#: dh_installinit:65
+msgid "debian/I<package>.service"
+msgstr "debian/I<package>.service"
+
+#. type: textblock
+#: dh_installinit:67
+#, fuzzy
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"service >> in the package build directory. Only used in compat levels 10 and "
+"below."
+msgstr ""
+"もし本ファイルが存在すれば、パッケージビルドディレクトリ以下に etc/init/"
+"I<package>.conf ファイルとしてインストールされます。"
+
+#. type: =item
+#: dh_installinit:70 dh_systemd_enable:50
+msgid "debian/I<package>.tmpfile"
+msgstr "debian/I<package>.tmpfile"
+
+#. type: textblock
+#: dh_installinit:72
+#, fuzzy
+msgid ""
+"If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in "
+"the package build directory. Only used in compat levels 10 and below."
+msgstr ""
+"もし本ファイルが存在すれば、パッケージビルドディレクトリ以下に etc/init/"
+"I<package>.conf ファイルとしてインストールされます。"
+
+#. type: textblock
+#: dh_installinit:83
+msgid "Do not modify F<postinst>/F<postrm>/F<prerm> scripts."
+msgstr "F<postinst>/F<postrm>/F<prerm> スクリプトは変更しないでください。"
+
+#. type: =item
+#: dh_installinit:85
+msgid "B<-o>, B<--only-scripts>"
+msgstr "B<-o>, B<--only-scripts>"
+
+#. type: textblock
+#: dh_installinit:87
+#, fuzzy
+msgid ""
+"Only modify F<postinst>/F<postrm>/F<prerm> scripts, do not actually install "
+"any init script, default files, upstart job or systemd service file. May be "
+"useful if the file is shipped and/or installed by upstream in a way that "
+"doesn't make it easy to let B<dh_installinit> find it."
+msgstr ""
+"本オプションが指定されていると、実際に init スクリプト、デフォルトに使うファ"
+"イル、upstart 用 job ファイルをインストールせず、F<postinst>/F<postrm>/"
+"F<prerm> スクリプトを変更するだけの動作となります。もし、initスクリプトや、"
+"upstart 用 job ファイルが、B<dh_installinit> にて容易に見つけられないようなや"
+"り方で、開発元 (upstream) に含まれていたり、あるいはインストールされているよ"
+"うな場合に都合が良いです。"
+
+#. type: textblock
+#: dh_installinit:92
+msgid ""
+"B<Caveat>: This will bypass all the regular checks and I<unconditionally> "
+"modify the scripts. You will almost certainly want to use this with B<-p> "
+"to limit, which packages are affected by the call. Example:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installinit:97
+#, no-wrap
+msgid ""
+" override_dh_installinit:\n"
+"\tdh_installinit -pfoo --only-scripts\n"
+"\tdh_installinit --remaining\n"
+"\n"
+msgstr ""
+" override_dh_installinit:\n"
+"\tdh_installinit -pfoo --only-scripts\n"
+"\tdh_installinit --remaining\n"
+"\n"
+
+#. type: =item
+#: dh_installinit:101
+msgid "B<-R>, B<--restart-after-upgrade>"
+msgstr "B<-R>, B<--restart-after-upgrade>"
+
+#. type: textblock
+#: dh_installinit:103
+#, fuzzy
+msgid ""
+"Do not stop the init script until after the package upgrade has been "
+"completed. This is the default behaviour in compat 10."
+msgstr ""
+"パッケージのアップグレードが完了するまで init スクリプトの stop 手続きを呼び"
+"出さないようにします。これはこのコマンドについて、デフォルトの振る舞いとは異"
+"なります。通常は、F<prerm> にて stop 手続きが呼ばれ、F<postinst> が start 手"
+"続きを再び呼び出します。"
+
+#. type: textblock
+#: dh_installinit:106
+#, fuzzy
+msgid ""
+"In early compat levels, the default was to stop the script in the F<prerm>, "
+"and starts it again in the F<postinst>."
+msgstr ""
+"パッケージのアップグレードが完了するまで init スクリプトの stop 手続きを呼び"
+"出さないようにします。これはこのコマンドについて、デフォルトの振る舞いとは異"
+"なります。通常は、F<prerm> にて stop 手続きが呼ばれ、F<postinst> が start 手"
+"続きを再び呼び出します。"
+
+#. type: textblock
+#: dh_installinit:109 dh_systemd_start:45
+msgid ""
+"This can be useful for daemons that should not have a possibly long downtime "
+"during upgrade. But you should make sure that the daemon will not get "
+"confused by the package being upgraded while it's running before using this "
+"option."
+msgstr ""
+"このオプションは、アップグレード中に長く動作が停止してはいけないような "
+"daemon を扱う際に便利です。しかしながら、このオプションを利用して "
+"dh_installinit が処理をしている間のアップグレード途中のパッケージを daemon が"
+"参照して混乱しないことを保証する必要があります。"
+
+#. type: =item
+#: dh_installinit:114 dh_systemd_start:50
+msgid "B<--no-restart-after-upgrade>"
+msgstr "B<--no-restart-after-upgrade>"
+
+#. type: textblock
+#: dh_installinit:116 dh_systemd_start:52
+msgid ""
+"Undo a previous B<--restart-after-upgrade> (or the default of compat 10). "
+"If no other options are given, this will cause the service to be stopped in "
+"the F<prerm> script and started again in the F<postinst> script."
+msgstr ""
+
+#. type: =item
+#: dh_installinit:121 dh_systemd_start:57
+msgid "B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>"
+msgstr "B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>"
+
+#. type: textblock
+#: dh_installinit:123
+msgid ""
+"Do not stop init script on upgrade. This has the side-effect of not "
+"restarting the service as a part of the upgrade."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:126
+msgid ""
+"If you want to restart the service with minimal downtime, please use B<--"
+"restart-after-upgrade> (default in compat 10 or later). If you want the "
+"service to be restarted but be stopped during the upgrade, then please use "
+"B<--no-restart-after-upgrade> (note the \"after-upgrade\")."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:131
+msgid ""
+"Note that the B<--no-restart-on-upgrade> alias is deprecated and will be "
+"removed in compat 12. This is to avoid confusion with the B<--no-restart-"
+"after-upgrade> option. The B<--no-stop-on-upgrade> variant was introduced "
+"in debhelper 10.2 (included in Debian stretch)."
+msgstr ""
+
+#. type: =item
+#: dh_installinit:136 dh_systemd_start:61
+msgid "B<--no-start>"
+msgstr "B<--no-start>"
+
+#. type: textblock
+#: dh_installinit:138
+msgid ""
+"Do not start the init script on install or upgrade, or stop it on removal. "
+"Only call B<update-rc.d>. Useful for rcS scripts."
+msgstr ""
+"インストール時、あるいはアップグレード時に init スクリプトを start させませ"
+"ん。あるいは、パッケージを削除する時にも stop 手続きが呼ばれなくなります。そ"
+"の一方で、B<update-rc.d> のみ呼び出されます。本オプションは rcS スクリプトを"
+"インストールする際に便利です。"
+
+#. type: =item
+#: dh_installinit:141 dh_systemd_enable:86
+msgid "B<--no-enable>"
+msgstr "B<--no-enable>"
+
+#. type: textblock
+#: dh_installinit:143
+msgid ""
+"Disable the init script on purge, but do not enable them on install. This "
+"implies a versioned dependency on B<< init-system-helpers (E<gt>= 1.51) >> "
+"as it is the first (functional) version that supports B<< update-rc.d "
+"E<lt>scriptE<gt> defaults-disabled >>."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:148
+msgid ""
+"B<Note> that this option does not affect whether the services are started. "
+"Please remember to also use B<--no-start> if the service should not be "
+"started."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:152
+#, fuzzy
+#| msgid "B<-u>I<params> B<--update-rcd-params=>I<params>"
+msgid ""
+"Cannot be combined with B<-u>I<params>, B<--update-rcd-params=>I<params>, or "
+"B<--> I<params>."
+msgstr "B<-u>I<params> B<--update-rcd-params=>I<params>"
+
+#. type: =item
+#: dh_installinit:155
+msgid "B<-d>, B<--remove-d>"
+msgstr "B<-d>, B<--remove-d>"
+
+#. type: textblock
+#: dh_installinit:157
+#, fuzzy
+msgid ""
+"Remove trailing B<d> from the name of the package, and use the result for "
+"the filename the upstart job file is installed as in F<etc/init/> , and for "
+"the filename the init script is installed as in etc/init.d and the default "
+"file is installed as in F<etc/default/>. This may be useful for daemons with "
+"names ending in B<d>. (Note: this takes precedence over the B<--init-script> "
+"parameter described below.)"
+msgstr ""
+"パッケージ名の最後の B<d> を取り除いたものをF<etc/init/>以下にインストールす"
+"るupstart 用 job ファイルの名前として利用します。あるいは、etc/init.d 以下に"
+"インストールするinitスクリプトの名前として利用します。さらに、F<etc/default/"
+"> 以下にインストールするファイルとしても利用します。これは、名前の最後が "
+"B<d> で終わるような daemon プログラムに便利な場合があります (後に述べる B<--"
+"init-script> パラメータが作用するより前に実行されます)。"
+
+#. type: =item
+#: dh_installinit:164
+msgid "B<-u>I<params> B<--update-rcd-params=>I<params>"
+msgstr "B<-u>I<params> B<--update-rcd-params=>I<params>"
+
+#. type: textblock
+#: dh_installinit:168
+#, fuzzy
+#| msgid ""
+#| "Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> will "
+#| "be passed to L<update-rc.d(8)>."
+msgid ""
+"Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> (or "
+"B<defaults-disabled> with B<--no-enable>) will be passed to L<update-rc."
+"d(8)>."
+msgstr ""
+"I<params> を L<update-rc.d(8)> へ渡します。もし指定されていなければ、"
+"B<defaults> パラメータが L<update-rc.d(8)> へ渡されます。"
+
+#. type: textblock
+#: dh_installinit:172
+msgid "Cannot be combined with B<--no-enable>."
+msgstr ""
+
+#. type: textblock
+#: dh_installinit:176
+msgid ""
+"Install the init script (and default file) as well as upstart job file using "
+"the filename I<name> instead of the default filename, which is the package "
+"name. When this parameter is used, B<dh_installinit> looks for and installs "
+"files named F<debian/package.name.init>, F<debian/package.name.default> and "
+"F<debian/package.name.upstart> instead of the usual F<debian/package.init>, "
+"F<debian/package.default> and F<debian/package.upstart>."
+msgstr ""
+"パッケージ名の代わりに、I<name> をファイル名とするファイルを、upstart 用 job "
+"ファイルや、init スクリプト (あるいはデフォルトのファイル) として利用します。"
+"このパラメータが利用されると、B<dh_installinit> は F<debian/package.name."
+"upstart>、F<debian/package.name.init>、F<debian/package.name.default> を探"
+"し、インストールを行います。この場合、通常使われる F<debian/package."
+"upstart>、F<debian/package.init>、F<debian/package.default> は利用されませ"
+"ん。"
+
+#. type: =item
+#: dh_installinit:184
+msgid "B<--init-script=>I<scriptname>"
+msgstr "B<--init-script=>I<scriptname>"
+
+#. type: textblock
+#: dh_installinit:186
+msgid ""
+"Use I<scriptname> as the filename the init script is installed as in F<etc/"
+"init.d/> (and also use it as the filename for the defaults file, if it is "
+"installed). If you use this parameter, B<dh_installinit> will look to see if "
+"a file in the F<debian/> directory exists that looks like F<package."
+"scriptname> and if so will install it as the init script in preference to "
+"the files it normally installs."
+msgstr ""
+"I<scriptname> を F<etc/init.d/> 以下にインストールする init スクリプトのファ"
+"イル名として利用します (デフォルトのファイルがインストールされるなら、その時"
+"の名前として利用する場合もあります) 。もしこのパラメータを利用すると、"
+"B<dh_installinit> は F<debian/> ディレクトリ以下に F<package.scriptname> のよ"
+"うな名前のファイルがあるかどうかを探し、通常インストールするファイルよりも、"
+"優先してこのような名前を持つファイルを init スクリプトとして扱うようになりま"
+"す。"
+
+#. type: textblock
+#: dh_installinit:193
+msgid ""
+"This parameter is deprecated, use the B<--name> parameter instead. This "
+"parameter is incompatible with the use of upstart jobs."
+msgstr ""
+"このパラメータは廃止されています。代わりに B<--name> パラメータを利用くださ"
+"い。なお、B<--init-script=>I<scriptname> では upstart 用 job ファイルを扱うよ"
+"うには出来ていません。"
+
+#. type: =item
+#: dh_installinit:196
+msgid "B<--error-handler=>I<function>"
+msgstr "B<--error-handler=>I<function>"
+
+#. type: textblock
+#: dh_installinit:198
+msgid ""
+"Call the named shell I<function> if running the init script fails. The "
+"function should be provided in the F<prerm> and F<postinst> scripts, before "
+"the B<#DEBHELPER#> token."
+msgstr ""
+"もしinitスクリプトの動作が失敗に終わった時、シェル関数の I<function> を呼び出"
+"すようにします。この関数は、F<prerm> や F<postinst> の中で定義されていなけれ"
+"ばならず、また、B<#DEBHELPER#> 句が現れるよりも前に定義されている必要がありま"
+"す。 "
+
+#. type: textblock
+#: dh_installinit:415
+#, 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:423
+msgid "Steve Langasek <steve.langasek@canonical.com>"
+msgstr "Steve Langasek <steve.langasek@canonical.com>"
+
+#. type: textblock
+#: dh_installinit:425
+msgid "Michael Stapelberg <stapelberg@debian.org>"
+msgstr "Michael Stapelberg <stapelberg@debian.org>"
+
+#. type: textblock
+#: dh_installinitramfs:5
+#, fuzzy
+#| msgid ""
+#| "dh_installinit - install service init files into package build directories"
+msgid "dh_installinitramfs - install initramfs hooks and setup maintscripts"
+msgstr ""
+"dh_installinit - ビルドディレクトリに service init ファイルをインストールする"
+
+#. type: textblock
+#: dh_installinitramfs:17
+#, fuzzy
+#| msgid "B<dh_installmenu> [S<B<debhelper options>>] [B<-n>]"
+msgid "B<dh_installinitramfs> [S<B<debhelper options>>] [B<-n>]"
+msgstr "B<dh_installmenu> [S<B<debhelper options>>] [B<-n>]"
+
+#. type: textblock
+#: dh_installinitramfs:21
+#, fuzzy
+#| msgid ""
+#| "B<dh_installmime> is a debhelper program that is responsible for "
+#| "installing mime files into package build directories."
+msgid ""
+"B<dh_installinitramfs> is a debhelper program that is responsible for "
+"installing Debian package provided initramfs hooks."
+msgstr ""
+"B<dh_installmime> はパッケージビルドディレクトリ以下に mime ファイル群をイン"
+"ストールする役目の debhelper プログラムです。"
+
+#. type: textblock
+#: dh_installinitramfs:24
+#, fuzzy
+#| msgid ""
+#| "It also automatically generates the F<postinst> and F<postrm> commands "
+#| "needed to interface with the Debian B<menu> package. These commands are "
+#| "inserted into the maintainer scripts by L<dh_installdeb(1)>."
+msgid ""
+"If B<dh_installinitramfs> installs or detects one or more initramfs hooks in "
+"the package, then it also automatically generates the noawait trigger "
+"B<update-initframfs> command needed to interface with the Debian initramfs "
+"system. This trigger is inserted into the packaging by L<dh_installdeb(1)>."
+msgstr ""
+"このプログラムは、Debian B<menu> と連携するのに必要な内容を含む F<postinst> "
+"と F<postrm> コマンドを自動的に生成します。生成された F<postinst> と "
+"F<postrm> コマンドは L<dh_installdeb(1)> によりメンテナスクリプトへ組み込まれ"
+"ます。"
+
+#. type: =item
+#: dh_installinitramfs:34
+#, fuzzy
+#| msgid "debian/I<package>.init"
+msgid "debian/I<package>.initramfs-hook"
+msgstr "debian/I<package>.init"
+
+#. type: textblock
+#: dh_installinitramfs:36
+msgid ""
+"Assumed to be an initramfs hook that will be installed into F<< usr/share/"
+"initramfs-tools/hooks/I<package> >> in the package build directory. See "
+"B<HOOK SCRIPTS> in L<initramfs-tools(8)> for more information about "
+"initramfs hooks."
+msgstr ""
+
+#. type: textblock
+#: dh_installinitramfs:49
+msgid ""
+"Do not add the B<update-initramfs> trigger even if it seems like the package "
+"might need it. The option is called B<--no-scripts> for historical reasons "
+"as B<dh_installinitramfs> would previously generate maintainer scripts that "
+"called B<update-initramfs -u>."
+msgstr ""
+
+#. type: textblock
+#: dh_installinitramfs:54
+msgid ""
+"Use this option, if you need to interface with the B<update-initramfs> "
+"system that is not satisfied by the noawait trigger (e.g. because you need "
+"the extra guarantees and head-aches of a await trigger)."
+msgstr ""
+
+#. type: textblock
+#: dh_installinitramfs:62
+#, fuzzy
+#| msgid ""
+#| "Note that this command is not idempotent. L<dh_prep(1)> should be called "
+#| "between invocations of this command. Otherwise, it may cause multiple "
+#| "instances of the same text to be added to maintainer scripts."
+msgid ""
+"Note that this command is not idempotent. L<dh_prep(1)> should be called "
+"between invocations of this command. Otherwise, it may cause multiple "
+"instances of the same text to be added to triggers file."
+msgstr ""
+"このコマンドは複数回実行しても安全なコマンドではありません。このコマンドを複"
+"数回呼び出す際には必ず間に L<dh_prep(1)> を挿入してください。さもないと、メン"
+"テナスクリプト中に同じ内容のコードを繰り返し挿入してしまいます。"
+
+#. type: textblock
+#: dh_installinitramfs:93
+#, fuzzy
+#| msgid "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
+msgid "L<debhelper(7)> L<update-initramfs(8)> L<initramfs-tools(8)>"
+msgstr "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
+
+#. type: textblock
+#: dh_installlogcheck:5
+msgid "dh_installlogcheck - install logcheck rulefiles into etc/logcheck/"
+msgstr ""
+"dh_installlogcheck - etc/logcheck/ に logcheck 用ルールファイルをインストール"
+"する"
+
+#. type: textblock
+#: dh_installlogcheck:17
+msgid "B<dh_installlogcheck> [S<I<debhelper options>>]"
+msgstr "B<dh_installlogcheck> [S<I<debhelper options>>]"
+
+#. type: textblock
+#: dh_installlogcheck:21
+msgid ""
+"B<dh_installlogcheck> is a debhelper program that is responsible for "
+"installing logcheck rule files."
+msgstr ""
+"B<dh_installlogcheck> は logcheck 用のルール定義ファイルをインストールする役"
+"目の debhelper プログラムです。"
+
+#. type: =item
+#: dh_installlogcheck:28
+msgid "debian/I<package>.logcheck.cracking"
+msgstr "debian/I<package>.logcheck.cracking"
+
+#. type: =item
+#: dh_installlogcheck:30
+msgid "debian/I<package>.logcheck.violations"
+msgstr "debian/I<package>.logcheck.violations"
+
+#. type: =item
+#: dh_installlogcheck:32
+msgid "debian/I<package>.logcheck.violations.ignore"
+msgstr "debian/I<package>.logcheck.violations.ignore"
+
+#. type: =item
+#: dh_installlogcheck:34
+msgid "debian/I<package>.logcheck.ignore.workstation"
+msgstr "debian/I<package>.logcheck.ignore.workstation"
+
+#. type: =item
+#: dh_installlogcheck:36
+msgid "debian/I<package>.logcheck.ignore.server"
+msgstr "debian/I<package>.logcheck.ignore.server"
+
+#. type: =item
+#: dh_installlogcheck:38
+msgid "debian/I<package>.logcheck.ignore.paranoid"
+msgstr "debian/I<package>.logcheck.ignore.paranoid"
+
+#. type: textblock
+#: dh_installlogcheck:40
+msgid ""
+"Each of these files, if present, are installed into corresponding "
+"subdirectories of F<etc/logcheck/> in package build directories."
+msgstr ""
+"これらのファイルが存在する場合、パッケージビルドディレクトリ内の F<etc/"
+"logcheck/> サブディレクトリ以下にファイルに応じてインストールされます。"
+
+#. type: textblock
+#: dh_installlogcheck:51
+msgid ""
+"Look for files named F<debian/package.name.logcheck.*> and install them into "
+"the corresponding subdirectories of F<etc/logcheck/>, but use the specified "
+"name instead of that of the package."
+msgstr ""
+"F<debian/package.name.logcheck.*> の名前を持つファイルを探し、これらを F<etc/"
+"logcheck/> 以下の各ファイルに応じた場所へインストールします。この時、パッケー"
+"ジの名前を使わず指定された名前を利用します。"
+
+#. type: verbatim
+#: dh_installlogcheck:85
+#, no-wrap
+msgid ""
+"This program is a part of debhelper.\n"
+" \n"
+msgstr ""
+"このプログラムはdebhelperの一部です。\n"
+" \n"
+
+#. type: textblock
+#: dh_installlogcheck:89
+msgid "Jon Middleton <jjm@debian.org>"
+msgstr "Jon Middleton <jjm@debian.org>"
+
+#. type: textblock
+#: dh_installlogrotate:5
+msgid "dh_installlogrotate - install logrotate config files"
+msgstr "dh_installlogrotate - logrotate用設定ファイルをインストールする"
+
+#. type: textblock
+#: dh_installlogrotate:17
+msgid "B<dh_installlogrotate> [S<I<debhelper options>>] [B<--name=>I<name>]"
+msgstr "B<dh_installlogrotate> [S<I<debhelper options>>] [B<--name=>I<name>]"
+
+#. type: textblock
+#: dh_installlogrotate:21
+msgid ""
+"B<dh_installlogrotate> is a debhelper program that is responsible for "
+"installing logrotate config files into F<etc/logrotate.d> in package build "
+"directories. Files named F<debian/package.logrotate> are installed."
+msgstr ""
+"B<dh_installlogrotate> はパッケージビルドディレクトリ内にある F<etc/"
+"logrotate.d> へ logrotate 用設定ファイルをインストールする役目の debhelper プ"
+"ログラムとなります。F<debian/package.logrotate> という名前を持つファイル群が"
+"インストールされます。"
+
+#. type: textblock
+#: dh_installlogrotate:31
+msgid ""
+"Look for files named F<debian/package.name.logrotate> and install them as "
+"F<etc/logrotate.d/name>, instead of using the usual files and installing "
+"them as the package name."
+msgstr ""
+"F<debian/package.name.logrotate> という名前を持つファイルを探し、F<etc/"
+"logrotate.d/name> としてインストールを行います。この場合、通常使うファイルを"
+"利用せず、パッケージ名を持つファイルとしてインストールは行いません。"
+
+#. type: textblock
+#: dh_installman:5
+msgid "dh_installman - install man pages into package build directories"
+msgstr ""
+"dh_installman - パッケージビルドディレクトリ以下に man ページをインストールす"
+"る"
+
+#. type: textblock
+#: dh_installman:18
+msgid "B<dh_installman> [S<I<debhelper options>>] [S<I<manpage> ...>]"
+msgstr "B<dh_installman> [S<I<debhelper options>>] [S<I<manpage> ...>]"
+
+#. type: textblock
+#: dh_installman:22
+#, fuzzy
+#| msgid ""
+#| "B<dh_installmanpages> is a debhelper program that is responsible for "
+#| "automatically installing man pages into F<usr/share/man/> in package "
+#| "build directories."
+msgid ""
+"B<dh_installman> is a debhelper program that handles installing man pages "
+"into the correct locations in package build directories."
+msgstr ""
+"B<dh_installmanpages> はパッケージビルドディレクトリ以下にある F<usr/share/"
+"man/> ディレクトリへ man ページを自動的にインストールする役目の debhelper プ"
+"ログラムです。"
+
+#. type: textblock
+#: dh_installman:25
+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 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
+#: dh_installman:32
+msgid ""
+"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 to "
+"UTF-8 and for converting F<.so> links (as described below). However, that "
+"part happens automatically without any explicit configuration."
+msgstr ""
+
+#. type: textblock
+#: dh_installman:38
+#, fuzzy
+#| msgid ""
+#| "B<dh_installman> is a debhelper program that handles installing man pages "
+#| "into the correct locations in package build directories. You tell it what "
+#| "man pages go in your packages, and it figures out where to install them "
+#| "based on the section field in their B<.TH> or B<.Dt> line. If you have a "
+#| "properly formatted B<.TH> or B<.Dt> line, your man page will be installed "
+#| "into the right directory, with the right name (this includes proper "
+#| "handling of pages with a subsection, like B<3perl>, which are placed in "
+#| "F<man3>, and given an extension of F<.3perl>). If your B<.TH> or B<.Dt> "
+#| "line is incorrect or missing, the program may guess wrong based on the "
+#| "file extension."
+msgid ""
+"You tell B<dh_installman> what man pages go in your packages, and it figures "
+"out where to install them based on the section field in their B<.TH> or B<."
+"Dt> line. If you have a properly formatted B<.TH> or B<.Dt> line, your man "
+"page will be installed into the right directory, with the right name (this "
+"includes proper handling of pages with a subsection, like B<3perl>, which "
+"are placed in F<man3>, and given an extension of F<.3perl>). If your B<.TH> "
+"or B<.Dt> line is incorrect or missing, the program may guess wrong based on "
+"the file extension."
+msgstr ""
+"B<dh_installman> は、パッケージビルドディレクトリ内の正しい位置に man ページ"
+"をインストールするd ebhelper プログラムです。パッケージにどんな man ページが"
+"入っているかを指定すると、各 man ページに記載されている B<.TH> や B<.Dt> 行に"
+"ある章番号に基づき man ページをどこにインストールすれば良いかを見つけ出しま"
+"す。書式どおりの正しい B<.TH> や B<.Dt> があれば、その man ページは正しいディ"
+"レクトリに、正しい名前でインストールされます (これは、例えば B<3perl>で あれ"
+"ば、適切なサブセクションに対する man ページとして扱われ、F<man3> 以下にインス"
+"トールされ、F<.3perl> という拡張子が与えられるという事も含みます)。もし、B<."
+"TH> や B<.Dt> が間違っていたり、あるいはなかったりした場合、プログラムはイン"
+"ストールしようとしている man ページのファイルの拡張子から、間違った判断をする"
+"可能性があります。"
+
+#. type: textblock
+#: dh_installman:47
+msgid ""
+"It also supports translated man pages, by looking for extensions like F<."
+"ll.8> and F<.ll_LL.8>, or by use of the B<--language> switch."
+msgstr ""
+"このコマンドは翻訳された man ページについても、F<.ll.8> や F<.ll_LL.8> の拡張"
+"子に持つファイルを探す事により、あるいは、B<--language> を指定することによっ"
+"て扱います。"
+
+#. type: textblock
+#: dh_installman:50
+msgid ""
+"If B<dh_installman> seems to install a man page into the wrong section or "
+"with the wrong extension, this is because the man page has the wrong section "
+"listed in its B<.TH> or B<.Dt> line. Edit the man page and correct the "
+"section, and B<dh_installman> will follow suit. See L<man(7)> for details "
+"about the B<.TH> section, and L<mdoc(7)> for the B<.Dt> section. If "
+"B<dh_installman> seems to install a man page into a directory like F</usr/"
+"share/man/pl/man1/>, that is because your program has a name like F<foo.pl>, "
+"and B<dh_installman> assumes that means it is translated into Polish. Use "
+"B<--language=C> to avoid this."
+msgstr ""
+"B<dh_installman> が間違った章番号や、間違った拡張子をつけて man ページをイン"
+"ストールするように見えるときがあります。これは、man ページが間違った章番号を "
+"B<.TH> や B<.Dt> 行に列挙しているのが原因です。この場合、man ページを編集し"
+"て、章番号を正しくすれば、B<dh_installman> は意図どおりに動作するようになりま"
+"す。B<.TH> 章についての詳細は L<man(7)> を参照ください。さらに、B<.Dt> 章につ"
+"いては、L<mdoc(7)> を参照ください。また、B<dh_installman> が F</usr/share/"
+"man/pl/man1/> のようなディレクトリへ man ページをインストールしてしまう場合が"
+"あります。これは、パッケージにF <foo.pl> のような名前を持つファイルがあり、"
+"B<dh_installman> がこれをポーランド語への翻訳済み man ページと勘違いする時と"
+"なります。この動作を避けるには、B<--language=C> を利用してください。"
+
+#. type: textblock
+#: dh_installman:60
+msgid ""
+"After the man page installation step, B<dh_installman> will check to see if "
+"any of the man pages in the temporary directories of any of the packages it "
+"is acting on contain F<.so> links. If so, it changes them to symlinks."
+msgstr ""
+"B<dh_installman> は、man ページをインストールした後に、処理を行ったパッケージ"
+"内の一時ディレクトリ以下にある全 man ページを対象に、F<.so> リンクを含むかど"
+"うかを確認します。もし存在するようであれば、その man ページ本体をシンボリック"
+"リンクへ変更します。"
+
+#. type: textblock
+#: dh_installman:64
+msgid ""
+"Also, B<dh_installman> will use man to guess the character encoding of each "
+"manual page and convert it to UTF-8. If the guesswork fails for some reason, "
+"you can override it using an encoding declaration. See L<manconv(1)> for "
+"details."
+msgstr ""
+"また、B<dh_installman> は man コマンドを使って、man ページの文字コードを推定"
+"し、UTF-8 に変換します。この推定作業は失敗に終わる事があるので、文字コード宣"
+"言文を使って検出されるべき文字コードの情報を上書きできます。詳細については "
+"L<manconv(1)> を参照ください。"
+
+#. type: =item
+#: dh_installman:77
+msgid "debian/I<package>.manpages"
+msgstr "debian/I<package>.manpages"
+
+#. type: textblock
+#: dh_installman:79
+msgid "Lists man pages to be installed."
+msgstr "インストールされるべき man ページを列挙したものです。"
+
+#. type: =item
+#: dh_installman:95
+msgid "B<--language=>I<ll>"
+msgstr "B<--language=>I<ll>"
+
+#. type: textblock
+#: dh_installman:97
+msgid ""
+"Use this to specify that the man pages being acted on are written in the "
+"specified language."
+msgstr ""
+"処理予定の man ページがどんな言語で記載されているかをこちらのオプションを使っ"
+"て指定します。"
+
+#. type: =item
+#: dh_installman:110
+msgid "I<manpage> ..."
+msgstr "I<manpage> ..."
+
+#. type: textblock
+#: dh_installman:112
+msgid ""
+"Install these man pages into the first package acted on. (Or in all packages "
+"if B<-A> is specified)."
+msgstr ""
+"最初に処理するパッケージにこれらの man ページをインストールします (あるいは、"
+"B<-A> が指定された場合は、全パッケージにインストールを行います) "
+
+#. type: textblock
+#: dh_installman:119
+msgid "An example F<debian/manpages> file could look like this:"
+msgstr ""
+
+#. type: verbatim
+#: dh_installman:121
+#, no-wrap
+msgid ""
+" doc/man/foo.1\n"
+" # Translations\n"
+" doc/man/foo.da.1\n"
+" doc/man/foo.de.1\n"
+" doc/man/foo.fr.1\n"
+" # NB: The following line is considered a polish translation\n"
+" # of \"foo.1\" (and not a manpage written in perl called \"foo.pl\")\n"
+" doc/man/foo.pl.1\n"
+" # ...\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: dh_installman:133
+msgid ""
+"An older version of this program, L<dh_installmanpages(1)>, is still used by "
+"some packages, and so is still included in debhelper. It is, however, "
+"deprecated, due to its counterintuitive and inconsistent interface. Use this "
+"program instead."
+msgstr ""
+"本プログラムの昔のバージョンのプログラムである L<dh_installmanpages(1)> を未"
+"だに利用しているパッケージが存在します。また、L<dh_installmanpages(1)> は未だ"
+"に debhelper に梱包されています。しかしながら、このプログラムは、非直感的で統"
+"一されていないインターフェースの為に、すでに廃止となっています。代わりに本プ"
+"ログラムを使ってください。"
+
+#. type: textblock
+#: dh_installmanpages:5
+msgid "dh_installmanpages - old-style man page installer (deprecated)"
+msgstr ""
+"dh_installmanpages - 古いスタイルの man ページのインストール用プログラム (廃"
+"止)"
+
+#. type: textblock
+#: dh_installmanpages:18
+msgid "B<dh_installmanpages> [S<I<debhelper options>>] [S<I<file> ...>]"
+msgstr "B<dh_installmanpages> [S<I<debhelper options>>] [S<I<file> ...>]"
+
+#. type: textblock
+#: dh_installmanpages:22
+msgid ""
+"B<dh_installmanpages> is a debhelper program that is responsible for "
+"automatically installing man pages into F<usr/share/man/> in package build "
+"directories."
+msgstr ""
+"B<dh_installmanpages> はパッケージビルドディレクトリ以下にある F<usr/share/"
+"man/> ディレクトリへ man ページを自動的にインストールする役目の debhelper プ"
+"ログラムです。"
+
+#. type: textblock
+#: dh_installmanpages:26
+msgid ""
+"This is a DWIM-style program, with an interface unlike the rest of "
+"debhelper. It is deprecated, and you are encouraged to use "
+"L<dh_installman(1)> instead."
+msgstr ""
+"これは、いわゆる「良きに計らえ (DWIM)」スタイルのプログラムであり、他の "
+"debhelper とはインターフェース仕様が異なります。本プログラムは廃止されている"
+"ので、代わりに L<dh_installman(1)> コマンドを使うようにしてください。"
+
+#. type: textblock
+#: dh_installmanpages:30
+msgid ""
+"B<dh_installmanpages> scans the current directory and all subdirectories for "
+"filenames that look like man pages. (Note that only real files are looked "
+"at; symlinks are ignored.) It uses L<file(1)> to verify that the files are "
+"in the correct format. Then, based on the files' extensions, it installs "
+"them into the correct man directory."
+msgstr ""
+"B<dh_installmanpages> は man ページらしき名前を持つファイルを、カレントディレ"
+"クトリや、カレントディレクトリ以下の全てのサブディレクトリで探し回ります "
+"(ファイルの実体のみが対象となります。つまり、シンボリックリンクは無視されま"
+"す)。本プログラムは、L<file(1)> コマンドを使ってファイルが正しいフォーマット"
+"であるかを検証します。その為、拡張子にしたがい、処理対象の man ページを正し"
+"い man ページ用ディレクトリへインストールします。"
+
+#. type: textblock
+#: dh_installmanpages:36
+msgid ""
+"All filenames specified as parameters will be skipped by "
+"B<dh_installmanpages>. This is useful if by default it installs some man "
+"pages that you do not want to be installed."
+msgstr ""
+"パラメータとして指定されているファイルは、全て B<dh_installmanpages> により無"
+"視されます。これは、デフォルトでは意図しない場所に man ページがインストールさ"
+"れてしまう場合に便利です。"
+
+#. type: textblock
+#: dh_installmanpages:40
+msgid ""
+"After the man page installation step, B<dh_installmanpages> will check to "
+"see if any of the man pages are F<.so> links. If so, it changes them to "
+"symlinks."
+msgstr ""
+"manページのインストールが終わったあと、B<dh_installmanpages> は処理対象の "
+"man ページが F<.so> リンクの対象であるかどうかを調べます。もしそうであれば、"
+"こちらをシンボリックリンクへ変更します。"
+
+#. type: textblock
+#: dh_installmanpages:49
+msgid ""
+"Do not install these files as man pages, even if they look like valid man "
+"pages."
+msgstr ""
+"有効な man ページのようにみえても、これらファイルを man ページとしてインス"
+"トールしないようにします。"
+
+#. type: =head1
+#: dh_installmanpages:54
+msgid "BUGS"
+msgstr "バグ"
+
+#. type: textblock
+#: dh_installmanpages:56
+msgid ""
+"B<dh_installmanpages> will install the man pages it finds into B<all> "
+"packages you tell it to act on, since it can't tell what package the man "
+"pages belong in. This is almost never what you really want (use B<-p> to "
+"work around this, or use the much better L<dh_installman(1)> program "
+"instead)."
+msgstr ""
+"B<dh_installmanpages> は作業するように指定した B<全パッケージ> で発見した "
+"man ページをいっぺんにインストールしてしまいます。これは、どのパッケージにど"
+"の man ページが対応しているかについて指定する方法がない為です。この動作は多く"
+"のケースで必ずしも望ましくない動作となります (B<-p> を指定する事により、本問"
+"題を回避できますが、もっと良いのは、L<dh_installman(1)> を代わりに使う事で"
+"す)。"
+
+#. type: textblock
+#: dh_installmanpages:61
+msgid "Files ending in F<.man> will be ignored."
+msgstr "F<.man> でファイル名が終わっているファイルは無視されます。"
+
+#. type: textblock
+#: dh_installmanpages:63
+msgid ""
+"Files specified as parameters that contain spaces in their filenames will "
+"not be processed properly."
+msgstr ""
+"スペースを含むファイル名を持つファイルをパラメータに指定すると、正しく扱われ"
+"ません。"
+
+#. type: textblock
+#: dh_installmenu:5
+msgid ""
+"dh_installmenu - install Debian menu files into package build directories"
+msgstr ""
+"dh_installmenu - ビルドディレクトリへ Debian メニューファイルをインストールす"
+"る"
+
+#. type: textblock
+#: dh_installmenu:17
+msgid "B<dh_installmenu> [S<B<debhelper options>>] [B<-n>]"
+msgstr "B<dh_installmenu> [S<B<debhelper options>>] [B<-n>]"
+
+#. type: textblock
+#: dh_installmenu:21
+msgid ""
+"B<dh_installmenu> is a debhelper program that is responsible for installing "
+"files used by the Debian B<menu> package into package build directories."
+msgstr ""
+"B<dh_installmenu> は Debian B<menu> パッケージを使ってパッケージビルドディレ"
+"クトリ以下にファイルをインストールする役目の debhelper プログラムです。"
+
+#. type: textblock
+#: dh_installmenu:24
+msgid ""
+"It also automatically generates the F<postinst> and F<postrm> commands "
+"needed to interface with the Debian B<menu> package. These commands are "
+"inserted into the maintainer scripts by L<dh_installdeb(1)>."
+msgstr ""
+"このプログラムは、Debian B<menu> と連携するのに必要な内容を含む F<postinst> "
+"と F<postrm> コマンドを自動的に生成します。生成された F<postinst> と "
+"F<postrm> コマンドは L<dh_installdeb(1)> によりメンテナスクリプトへ組み込まれ"
+"ます。"
+
+#. type: =item
+#: dh_installmenu:32
+msgid "debian/I<package>.menu"
+msgstr "debian/I<package>.menu"
+
+#. type: textblock
+#: dh_installmenu:34
+msgid ""
+"Debian menu files, installed into usr/share/menu/I<package> in the package "
+"build directory. See L<menufile(5)> for its format."
+msgstr ""
+"Debianメニューファイルです。パッケージビルドディレクトリ以下の usr/share/"
+"menu/I<package> へインストールされます。フォーマットについては "
+"L<menufile(5)> を参照ください。"
+
+#. type: =item
+#: dh_installmenu:37
+msgid "debian/I<package>.menu-method"
+msgstr "debian/I<package>.menu-method"
+
+#. type: textblock
+#: dh_installmenu:39
+msgid ""
+"Debian menu method files, installed into etc/menu-methods/I<package> in the "
+"package build directory."
+msgstr ""
+"Debian メニューメソッドファイルです。こちらはパッケージビルドディレクトリ以下"
+"にある etc/menu-methods/I<package> へインストールされます。"
+
+#. type: textblock
+#: dh_installmenu:50
+msgid "Do not modify F<postinst>/F<postrm> scripts."
+msgstr "F<postinst>/F<postrm> スクリプトを変更しません。"
+
+#. type: textblock
+#: dh_installmenu:90
+msgid "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
+msgstr "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
+
+#. type: textblock
+#: dh_installmime:5
+msgid "dh_installmime - install mime files into package build directories"
+msgstr "dh_installmime - mime ファイルをビルドディレクトリへインストールする"
+
+#. type: textblock
+#: dh_installmime:17
+msgid "B<dh_installmime> [S<I<debhelper options>>]"
+msgstr "B<dh_installmime> [S<I<debhelper options>>]"
+
+#. type: textblock
+#: dh_installmime:21
+msgid ""
+"B<dh_installmime> is a debhelper program that is responsible for installing "
+"mime files into package build directories."
+msgstr ""
+"B<dh_installmime> はパッケージビルドディレクトリ以下に mime ファイル群をイン"
+"ストールする役目の debhelper プログラムです。"
+
+#. type: =item
+#: dh_installmime:28
+msgid "debian/I<package>.mime"
+msgstr "debian/I<package>.mime"
+
+#. type: textblock
+#: dh_installmime:30
+msgid ""
+"Installed into usr/lib/mime/packages/I<package> in the package build "
+"directory."
+msgstr ""
+"パッケージビルドディレクトリ内の usr/lib/mime/packages/I<package> へインス"
+"トールされます。"
+
+#. type: =item
+#: dh_installmime:33
+msgid "debian/I<package>.sharedmimeinfo"
+msgstr "debian/I<package>.sharedmimeinfo"
+
+#. type: textblock
+#: dh_installmime:35
+msgid ""
+"Installed into /usr/share/mime/packages/I<package>.xml in the package build "
+"directory."
+msgstr ""
+"パッケージビルドディレクトリ内の /usr/share/mime/packages/I<package>.xml へイ"
+"ンストールされます。"
+
+#. type: textblock
+#: dh_installmodules:5
+msgid "dh_installmodules - register kernel modules"
+msgstr "dh_installmodules - カーネルモジュールを登録する"
+
+#. type: textblock
+#: dh_installmodules:18
+msgid ""
+"B<dh_installmodules> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>]"
+msgstr ""
+"B<dh_installmodules> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>]"
+
+#. type: textblock
+#: dh_installmodules:22
+msgid ""
+"B<dh_installmodules> is a debhelper program that is responsible for "
+"registering kernel modules."
+msgstr ""
+"B<dh_installmodules> は、カーネルモジュールを登録する役目の debhelper プログ"
+"ラムです。"
+
+#. type: textblock
+#: dh_installmodules:25
+msgid ""
+"Kernel modules are searched for in the package build directory and if found, "
+"F<preinst>, F<postinst> and F<postrm> commands are automatically generated "
+"to run B<depmod> and register the modules when the package is installed. "
+"These commands are inserted into the maintainer scripts by "
+"L<dh_installdeb(1)>."
+msgstr ""
+"パッケージビルドディレクトリ以下にて、カーネルモジュールを探し、見つけると、"
+"F<preinst>, F<postinst>, F<postrm> コマンドが自動的に生成されます。これらコマ"
+"ンドは、パッケージをインストールする際に、B<depmod> を実行し、カーネルモ"
+"ジュールを登録するような内容となっております。これらのコマンドは "
+"L<dh_installdeb(1)> によりメンテナスクリプトへ挿入されます。 "
+
+#. type: =item
+#: dh_installmodules:35
+msgid "debian/I<package>.modprobe"
+msgstr "debian/I<package>.modprobe"
+
+#. type: textblock
+#: dh_installmodules:37
+msgid ""
+"Installed to etc/modprobe.d/I<package>.conf in the package build directory."
+msgstr ""
+"これらファイルは、パッケージビルドディレクトリ以下の etc/modprobe.d/"
+"I<package>.conf へインストールされます。"
+
+#. type: textblock
+#: dh_installmodules:47
+msgid "Do not modify F<preinst>/F<postinst>/F<postrm> scripts."
+msgstr "F<preinst>/F<postinst>/F<postrm> スクリプトを変更しません。"
+
+#. type: textblock
+#: dh_installmodules:51
+msgid ""
+"When this parameter is used, B<dh_installmodules> looks for and installs "
+"files named debian/I<package>.I<name>.modprobe instead of the usual debian/"
+"I<package>.modprobe"
+msgstr ""
+"このパラメータが利用されると、B<dh_installmodules> は通常利用する debian/"
+"I<package>.modprobe ファイルの代わりに debian/I<package>.I<name>.modprobe "
+"ファイルをインストールします。"
+
+#. type: textblock
+#: dh_installpam:5
+msgid "dh_installpam - install pam support files"
+msgstr "dh_installpam - pam サポートファイルをインストールする"
+
+#. type: textblock
+#: dh_installpam:17
+msgid "B<dh_installpam> [S<I<debhelper options>>] [B<--name=>I<name>]"
+msgstr "B<dh_installpam> [S<I<debhelper options>>] [B<--name=>I<name>]"
+
+#. type: textblock
+#: dh_installpam:21
+msgid ""
+"B<dh_installpam> is a debhelper program that is responsible for installing "
+"files used by PAM into package build directories."
+msgstr ""
+"B<dh_installpam> はパッケージビルドディレクトリ以下に PAM で利用するファイル"
+"をインストールする役目の debhelper プログラムです。"
+
+#. type: =item
+#: dh_installpam:28
+msgid "debian/I<package>.pam"
+msgstr "debian/I<package>.pam"
+
+#. type: textblock
+#: dh_installpam:30
+#, fuzzy
+#| msgid "Installed into etc/pam.d/I<package> in the package build directory."
+msgid "Installed into usr/lib/pam.d/I<package> in the package build directory."
+msgstr ""
+"これらファイルはパッケージビルドディレクトリ内の etc/pam.d/I<package> へイン"
+"ストールされます。"
+
+#. type: textblock
+#: dh_installpam:32
+msgid ""
+"Until compatibility level 14 this file was installed under etc/pam.d/"
+"I<package>. Please consider using the \"rm_conffile\" feature from "
+"L<dh_installdeb(1)> to ensure the proper removal of previous PAM files."
+msgstr ""
+
+#. type: textblock
+#: dh_installpam:44
+#, fuzzy
+#| msgid ""
+#| "Look for files named debian/I<package>.I<name>.pam and install them as "
+#| "etc/pam.d/I<name>, instead of using the usual files and installing them "
+#| "using the package name."
+msgid ""
+"Look for files named debian/I<package>.I<name>.pam and install them as usr/"
+"lib/pam.d/I<name>, instead of using the usual files and installing them "
+"using the package name."
+msgstr ""
+"debian/I<package>.I<name>.pam と名のつくファイルを探し、etc/pam.d/I<name> 以"
+"下にこれらのファイルをインストールします。こちらのオプションを利用すると通常"
+"のファイルはインストール対象とはならず、パッケージの名前でインストールする動"
+"作もしなくなります。"
+
+#. type: textblock
+#: dh_installppp:5
+msgid "dh_installppp - install ppp ip-up and ip-down files"
+msgstr "dh_installppp - ppp 用の ip-up, ip-down ファイルをインストールする"
+
+#. type: textblock
+#: dh_installppp:17
+msgid "B<dh_installppp> [S<I<debhelper options>>] [B<--name=>I<name>]"
+msgstr "B<dh_installppp> [S<I<debhelper options>>] [B<--name=>I<name>]"
+
+#. type: textblock
+#: dh_installppp:21
+msgid ""
+"B<dh_installppp> is a debhelper program that is responsible for installing "
+"ppp ip-up and ip-down scripts into package build directories."
+msgstr ""
+"B<dh_installppp> は ppp 用の ip-up, ip-down スクリプトをパッケージビルドディ"
+"レクトリ以下にインストールする役目を持つ debhelper プログラムです。"
+
+#. type: =item
+#: dh_installppp:28
+msgid "debian/I<package>.ppp.ip-up"
+msgstr "debian/I<package>.ppp.ip-up"
+
+#. type: textblock
+#: dh_installppp:30
+msgid ""
+"Installed into etc/ppp/ip-up.d/I<package> in the package build directory."
+msgstr ""
+"これらファイルはパッケージビルドディレクトリ以下に etc/ppp/ip-up.d/"
+"I<package> としてインストールされます。"
+
+#. type: =item
+#: dh_installppp:32
+msgid "debian/I<package>.ppp.ip-down"
+msgstr "debian/I<package>.ppp.ip-down"
+
+#. type: textblock
+#: dh_installppp:34
+msgid ""
+"Installed into etc/ppp/ip-down.d/I<package> in the package build directory."
+msgstr ""
+"これらファイルは、パッケージビルドディレクトリ以下に etc/ppp/ip-down.d/"
+"I<package> としてインストールされます。"
+
+#. type: textblock
+#: dh_installppp:44
+msgid ""
+"Look for files named F<debian/package.name.ppp.ip-*> and install them as "
+"F<etc/ppp/ip-*/name>, instead of using the usual files and installing them "
+"as the package name."
+msgstr ""
+"F<debian/package.name.ppp.ip-*> と名前のつくファイルを探し、F<etc/ppp/ip-*/"
+"name> 以下にこれらをインストールします。こちらが指定されると、通常インストー"
+"ルされるファイルはインストール対象とならず、また、インストールの際にパッケー"
+"ジの名前としてインストールする動作を行いません。"
+
+#. type: textblock
+#: dh_installudev:5
+msgid "dh_installudev - install udev rules files"
+msgstr "dh_installudev - udev 用ルールファイルをインストールする"
+
+#. type: textblock
+#: dh_installudev:17
+msgid ""
+"B<dh_installudev> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>] [B<--"
+"priority=>I<priority>]"
+msgstr ""
+"B<dh_installudev> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>] [B<--"
+"priority=>I<priority>]"
+
+#. type: textblock
+#: dh_installudev:21
+msgid ""
+"B<dh_installudev> is a debhelper program that is responsible for installing "
+"B<udev> rules files."
+msgstr ""
+"B<dh_installudev> は B<udev> 用ルールファイルをインストールする役目を持つ "
+"debhelper プログラムです。"
+
+#. type: =item
+#: dh_installudev:28
+msgid "debian/I<package>.udev"
+msgstr "debian/I<package>.udev"
+
+#. type: textblock
+#: dh_installudev:30
+msgid "Installed into F<lib/udev/rules.d/> in the package build directory."
+msgstr ""
+"これらファイルは、パッケージビルドディレクトリ内の F<lib/udev/rules.d/> へイ"
+"ンストールされます。"
+
+#. type: textblock
+#: dh_installudev:40
+msgid ""
+"When this parameter is used, B<dh_installudev> looks for and installs files "
+"named debian/I<package>.I<name>.udev instead of the usual debian/I<package>."
+"udev."
+msgstr ""
+"このパラメータを利用する時は、B<dh_installudev> は debian/I<package>.I<name>."
+"udev と名前のあるファイルを探してインストールします。通常使われるはずの "
+"debian/I<package>.udev はこのパラメータが利用されている場合は利用されません。"
+
+#. type: =item
+#: dh_installudev:44
+msgid "B<--priority=>I<priority>"
+msgstr "B<--priority=>I<priority>"
+
+#. type: textblock
+#: dh_installudev:46
+msgid "Sets the priority the file. Default is 60."
+msgstr "ファイルの優先順位を指定します。デフォルトは 60 です。"
+
+#. type: textblock
+#: dh_installwm:5
+msgid "dh_installwm - register a window manager"
+msgstr "dh_installwm - ウィンドウマネージャを登録する"
+
+#. type: textblock
+#: dh_installwm:17
+msgid ""
+"B<dh_installwm> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
+"[S<I<wm> ...>]"
+msgstr ""
+"B<dh_installwm> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
+"[S<I<wm> ...>]"
+
+#. type: textblock
+#: dh_installwm:21
+#, fuzzy
+#| msgid ""
+#| "B<dh_installwm> is a debhelper program that is responsible for generating "
+#| "the F<postinst> and F<prerm> commands that register a window manager with "
+#| "L<update-alternatives(8)>. The window manager's man page is also "
+#| "registered as a slave symlink (in v6 mode and up), if it is found in "
+#| "F<usr/share/man/man1/> in the package build directory."
+msgid ""
+"B<dh_installwm> is a debhelper program that is responsible for generating "
+"the F<postinst> and F<prerm> commands that register a window manager with "
+"L<update-alternatives(8)>. The window manager's man page is also registered "
+"as a slave symlink (in v6 mode and up). It must be installed in F<usr/share/"
+"man/man1/> in the package build directory prior to calling B<dh_installwm>. "
+"In compat 9 and earlier, the manpage was optional."
+msgstr ""
+"B<dh_installwm> は、L<update-alternatives(8)> によりウインドウマネージャを登"
+"録するような F<postinst> と F<prerm> コマンドを生成する役割の debhelper プロ"
+"グラムとなります。もし、インストールしようとしているウインドウマネージャの "
+"man ページが、パッケージビルドディレクトリ以下の F<usr/share/man/man1/> に存"
+"在する場合、この man ページはパッケージビルドディレクトリ以下にシンボリックリ"
+"ンクで登録されます (互換性レベル v6 以上)。"
+
+#. type: =item
+#: dh_installwm:32
+msgid "debian/I<package>.wm"
+msgstr "debian/I<package>.wm"
+
+#. type: textblock
+#: dh_installwm:34
+msgid "List window manager programs to register."
+msgstr "登録すべきウインドウマネージャを列挙します。"
+
+#. type: textblock
+#: dh_installwm:47
+msgid ""
+"Set the priority of the window manager. Default is 20, which is too low for "
+"most window managers; see the Debian Policy document for instructions on "
+"calculating the correct value."
+msgstr ""
+"ウインドウマネージャの優先順位を設定します。デフォルトは 20 で、こちらはほと"
+"んどのウインドウマネージャには低すぎる優先順位です。正しい値を算出する手順に"
+"ついては、Debian ポリシーマニュアルを参照してください。"
+
+#. type: textblock
+#: dh_installwm:53
+msgid ""
+"Do not modify F<postinst>/F<prerm> scripts. Turns this command into a no-op."
+msgstr ""
+"F<postinst>/F<prerm> スクリプトを変更しません。このコマンドにより、スクリプト"
+"の動作については何も影響を与えないようにします。"
+
+#. type: textblock
+#: dh_installwm:57
+#, fuzzy
+#| msgid ""
+#| "Create any links specified by command line parameters in ALL packages "
+#| "acted on, not just the first."
+msgid ""
+"Modify scripts for window managers specified by command line parameters in "
+"ALL packages acted on, not just the first."
+msgstr ""
+"コマンドラインパラメータとして指定されているリンクを、単に最初に処理するパッ"
+"ケージのみではなく、作業する予定の全パッケージ対して作成します。"
+
+#. type: =item
+#: dh_installwm:60
+msgid "I<wm> ..."
+msgstr "I<wm> ..."
+
+#. type: textblock
+#: dh_installwm:62
+msgid "Window manager programs to register."
+msgstr "登録されるウインドウマネージャ。"
+
+#. type: textblock
+#: dh_installxfonts:5
+msgid "dh_installxfonts - register X fonts"
+msgstr "dh_installxfonts - X 用フォント群の登録を行う"
+
+#. type: textblock
+#: dh_installxfonts:17
+msgid "B<dh_installxfonts> [S<I<debhelper options>>]"
+msgstr "B<dh_installxfonts> [S<I<debhelper options>>]"
+
+#. type: textblock
+#: dh_installxfonts:21
+msgid ""
+"B<dh_installxfonts> is a debhelper program that is responsible for "
+"registering X fonts, so their corresponding F<fonts.dir>, F<fonts.alias>, "
+"and F<fonts.scale> be rebuilt properly at install time."
+msgstr ""
+"B<dh_installxfonts> は、X 用のフォントを登録し、フォントに関係する F<fonts."
+"dir>, F<fonts.alias>, F<fonts.scale> を再ビルドして正しい内容になるようにしま"
+"す。"
+
+#. type: textblock
+#: dh_installxfonts:25
+msgid ""
+"Before calling this program, you should have installed any X fonts provided "
+"by your package into the appropriate location in the package build "
+"directory, and if you have F<fonts.alias> or F<fonts.scale> files, you "
+"should install them into the correct location under F<etc/X11/fonts> in your "
+"package build directory."
+msgstr ""
+"このプログラムを呼び出す前に、パッケージビルドディレクトリ内の適切な場所に、"
+"パッケージが提供しようとしているX用のフォント全部をインストールしておく必要が"
+"あります。また、パッケージビルドディレクトリ以下の F<etc/X11/fonts> 以下の正"
+"しい場所に F<fonts.alias> や F<fonts.scale> ファイルをインストールしておく必"
+"要があります。"
+
+#. type: textblock
+#: dh_installxfonts:31
+msgid ""
+"Your package should depend on B<xfonts-utils> so that the B<update-fonts-"
+">I<*> commands are available. (This program adds that dependency to B<${misc:"
+"Depends}>.)"
+msgstr ""
+"B<update-fonts->I<*> コマンドが利用可能なように B<xfonts-utils> に対しての依"
+"存関係を記載しておく必要があります (本プログラムは B<${misc:Depends}> へこの"
+"依存関係を付け加えます)。"
+
+#. type: textblock
+#: dh_installxfonts:35
+msgid ""
+"This program automatically generates the F<postinst> and F<postrm> commands "
+"needed to register X fonts. These commands are inserted into the maintainer "
+"scripts by B<dh_installdeb>. See L<dh_installdeb(1)> for an explanation of "
+"how this works."
+msgstr ""
+"本プログラムは X フォントを登録するのに必要な F<postinst> と F<postrm> コマン"
+"ドを機械的に生成します。生成される F<postinst> と F<postrm> は "
+"B<dh_installdeb> により、メンテナスクリプトに挿入されます。こちらの動作につい"
+"ては、L<dh_installdeb(1)> を参照してください。"
+
+#. type: textblock
+#: dh_installxfonts:42
+msgid ""
+"See L<update-fonts-alias(8)>, L<update-fonts-scale(8)>, and L<update-fonts-"
+"dir(8)> for more information about X font installation."
+msgstr ""
+"X 用フォントのインストールについてさらに情報が必要な場合は、L<update-fonts-"
+"alias(8)>, L<update-fonts-scale(8)>, L<update-fonts-dir(8)> を参照してくださ"
+"い。"
+
+#. type: textblock
+#: dh_installxfonts:45
+msgid ""
+"See Debian policy, section 11.8.5. for details about doing fonts the Debian "
+"way."
+msgstr ""
+"Debian 流でのフォントの取扱い詳細については、Debian ポリシーマニュアルの "
+"11.8.5 章を参照してください。"
+
+#. type: textblock
+#: dh_link:5
+msgid "dh_link - create symlinks in package build directories"
+msgstr "dh_link - パッケージビルドディレクトリ内でシンボリックリンクを作成する"
+
+#. type: textblock
+#: dh_link:18
+msgid ""
+"B<dh_link> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<source "
+"destination> ...>]"
+msgstr ""
+"B<dh_link> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<source "
+"destination> ...>]"
+
+#. type: textblock
+#: dh_link:22
+msgid ""
+"B<dh_link> is a debhelper program that creates symlinks in package build "
+"directories."
+msgstr ""
+"B<dh_link> はパッケージビルドディレクトリ内でシンボリックリンクを作成する "
+"debhelper プログラムです。"
+
+#. type: textblock
+#: dh_link:25
+#, fuzzy
+#| msgid ""
+#| "B<dh_link> accepts a list of pairs of source and destination files. The "
+#| "source files are the already existing files that will be symlinked from. "
+#| "The destination files are the symlinks that will be created. There "
+#| "B<must> be an equal number of source and destination files specified."
+msgid ""
+"B<dh_link> accepts a list of pairs of source and destination files. The "
+"source files are the already existing files that will be symlinked from "
+"(called B<target> by L<ln(1)>). The destination files are the symlinks that "
+"will be created (called B<link name> by L<ln(1)>). There B<must> be an equal "
+"number of source and destination files specified."
+msgstr ""
+"B<dh_link> コマンドはリンクを張りたい元と先のファイル名をペアにしたものの一覧"
+"を受けとります。リンクを張る元のファイルはすでに実体のあるファイルを指定しま"
+"す。また、リンクを張りたい先のファイル名でシンボリックリンクが作成されます。"
+"リンクを張る元と先のファイル名は同じ数だけ指定することがB<必須>です。"
+
+#. type: textblock
+#: dh_link:32
+#, fuzzy
+#| msgid ""
+#| "Be sure you B<do> specify the full filename to both the source and "
+#| "destination files (unlike you would do if you were using something like "
+#| "L<ln(1)>)."
+msgid ""
+"Be sure you B<do> specify the absolute path to both the source and "
+"destination files (unlike you would do if you were using something like "
+"L<ln(1)>). Please note that the leading slash is optional."
+msgstr ""
+"リンク元と先の完全なファイル名を指定していることをB<必ず>確かめてください "
+"(L<ln(1)> か何かを使っている時とは違って入念に調べてください)。"
+
+#. type: textblock
+#: dh_link:36
+#, fuzzy
+msgid ""
+"B<dh_link> will generate symlinks that comply with Debian policy - absolute "
+"when policy says they should be absolute, and relative links with as short a "
+"path as possible. It will also create any subdirectories it needs to put the "
+"symlinks in."
+msgstr ""
+"B<dh_link> は Debian ポリシーに準拠した形でシンボリックリンクを生成します。こ"
+"れは、Debian ポリシーで、絶対パスで指定すべきものは絶対パスで、また、相対パス"
+"の場合はできる限り短いパス指定を持つシンボリックリンクを作成することになって"
+"いるからです。また、シンボリックリンクを張るのにサブディレクトリの作成が必要"
+"であれば、このコマンドはサブディレクトリを作成します。"
+
+#. type: textblock
+#: dh_link:41
+msgid "Any pre-existing destination files will be replaced with symlinks."
+msgstr ""
+"もしシンボリックリンクを作成しようとしている場所に同名のファイルが存在した場"
+"合は、シンボリックリンクに置き換えられます。"
+
+#. type: textblock
+#: dh_link:43
+msgid ""
+"B<dh_link> also scans the package build tree for existing symlinks which do "
+"not conform to Debian policy, and corrects them (v4 or later)."
+msgstr ""
+"B<dh_link> は、また、パッケージビルドツリー以下で、Debian ポリシーマニュアル"
+"違反であるようなすでに存在するシンボリックリンクを探し回り、そしてこれらを正"
+"しくなるように修正します (互換性レベル v4 以上)。"
+
+#. type: =item
+#: dh_link:50
+msgid "debian/I<package>.links"
+msgstr "debian/I<package>.links"
+
+#. type: textblock
+#: dh_link:52
+msgid ""
+"Lists pairs of source and destination files to be symlinked. Each pair "
+"should be put on its own line, with the source and destination separated by "
+"whitespace."
+msgstr ""
+"これらファイルにはお互いシンボリックリンクされるような元ファイル名と先ファイ"
+"ル名のリストを列挙します。それぞれのペアは1つの行に記載されなければならず、"
+"さらに元ファイル名と先ファイル名は空白で区切られていなければなりません。"
+
+#. type: textblock
+#: dh_link:56
+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 given in the same "
+"order as they would be given to L<ln(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh_link:61
+msgid ""
+"In contrast to L<ln(1)>, source and destination paths must be absolute (the "
+"leading slash is optional)."
+msgstr ""
+
+#. type: textblock
+#: dh_link:75
+msgid ""
+"Create any links specified by command line parameters in ALL packages acted "
+"on, not just the first."
+msgstr ""
+"コマンドラインパラメータとして指定されているリンクを、単に最初に処理するパッ"
+"ケージのみではなく、作業する予定の全パッケージ対して作成します。"
+
+#. type: textblock
+#: dh_link:80
+msgid ""
+"Exclude symlinks that contain I<item> anywhere in their filename from being "
+"corrected to comply with Debian policy."
+msgstr ""
+"ファイル名の一部に I<item> を含むシンボリックリンクを、Debian ポリシー準拠の"
+"為のリンク修正の対象から除外します。"
+
+#. type: =item
+#: dh_link:83
+msgid "I<source destination> ..."
+msgstr "I<source destination> ..."
+
+#. type: textblock
+#: dh_link:85
+msgid ""
+"Create a file named I<destination> as a link to a file named I<source>. Do "
+"this in the package build directory of the first package acted on. (Or in "
+"all packages if B<-A> is specified.)"
+msgstr ""
+"I<source> という名前へのリンクファイルとして I<destination> という名前のファ"
+"イルを作成します。最初にビルドされるパッケージビルドディレクトリ以下にてこの"
+"操作を行います (あるいは、B<-A> が指定されている場合は全パッケージに対して作"
+"業を行います)。"
+
+#. type: verbatim
+#: dh_link:93
+#, no-wrap
+msgid ""
+" dh_link usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+msgstr ""
+" dh_link usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+
+#. type: textblock
+#: dh_link:95
+msgid "Make F<bar.1> be a symlink to F<foo.1>"
+msgstr "F<foo.1> へのシンボリックリンクとして F<bar.1> を作成します。"
+
+#. type: verbatim
+#: dh_link:97
+#, no-wrap
+msgid ""
+" dh_link var/lib/foo usr/lib/foo \\\n"
+" usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+msgstr ""
+" dh_link var/lib/foo usr/lib/foo \\\n"
+" usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+
+#. type: textblock
+#: dh_link:100
+msgid ""
+"Make F</usr/lib/foo/> be a link to F</var/lib/foo/>, and F<bar.1> be a "
+"symlink to the F<foo.1>"
+msgstr ""
+"F</var/lib/foo/> へのシンボリックリンクとして F</usr/lib/foo/> を作成します。"
+"また、F<foo.1> へのシンボリックリンクとして、F<bar.1> を作成します。"
+
+#. type: verbatim
+#: dh_link:103
+#, fuzzy, no-wrap
+#| msgid ""
+#| " dh_link var/lib/foo usr/lib/foo \\\n"
+#| " usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+#| "\n"
+msgid ""
+" var/lib/foo usr/lib/foo\n"
+" usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+msgstr ""
+" dh_link var/lib/foo usr/lib/foo \\\n"
+" usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+
+#. type: textblock
+#: dh_link:106
+msgid "Same as above but as content for a debian/I<package>.links file."
+msgstr ""
+
+#. type: textblock
+#: dh_lintian:5
+msgid ""
+"dh_lintian - install lintian override files into package build directories"
+msgstr ""
+"dh_lintian - ビルドディレクトリに lintian への override ファイルをインストー"
+"ルする"
+
+#. type: textblock
+#: dh_lintian:17
+msgid "B<dh_lintian> [S<I<debhelper options>>]"
+msgstr "B<dh_lintian> [S<I<debhelper options>>]"
+
+#. type: textblock
+#: dh_lintian:21
+#, fuzzy
+msgid ""
+"B<dh_lintian> is a debhelper program that is responsible for installing "
+"override files used by lintian into package build directories."
+msgstr ""
+"B<dh_lintian> は、lintian によって利用される lintian 用の再定義用ファイルを、"
+"パッケージビルドディレクトリ以下にインストールする役目の debhelper プログラム"
+"です。"
+
+#. type: =item
+#: dh_lintian:28
+msgid "debian/I<package>.lintian-overrides"
+msgstr "debian/I<package>.lintian-overrides"
+
+#. type: textblock
+#: dh_lintian:30
+msgid ""
+"Installed into usr/share/lintian/overrides/I<package> in the package build "
+"directory. This file is used to suppress erroneous lintian diagnostics."
+msgstr ""
+"パッケージビルドディレクトリ以下の usr/share/lintian/overrides/I<package> へ"
+"インストールを行います。このファイルは、lintian が誤った診断をするのを防ぐ為"
+"に利用されます。"
+
+#. type: =item
+#: dh_lintian:34
+msgid "F<debian/source/lintian-overrides>"
+msgstr "F<debian/source/lintian-overrides>"
+
+#. type: textblock
+#: dh_lintian:36
+msgid ""
+"These files are not installed, but will be scanned by lintian to provide "
+"overrides for the source package."
+msgstr ""
+"これらファイルはインストールされません。しかしながら、ソースパッケージに対す"
+"る診断結果を再定義する為、lintian にて本ファイルの中身がスキャンされます。"
+
+#. type: textblock
+#: dh_lintian:66
+msgid "L<lintian(1)>"
+msgstr "L<lintian(1)>"
+
+#. type: textblock
+#: dh_lintian:70
+msgid "Steve Robbins <smr@debian.org>"
+msgstr "Steve Robbins <smr@debian.org>"
+
+#. type: textblock
+#: dh_listpackages:5
+msgid "dh_listpackages - list binary packages debhelper will act on"
+msgstr ""
+"dh_listpackages - debhelper が処理するバイナリパッケージの一覧を列挙する"
+
+#. type: textblock
+#: dh_listpackages:17
+msgid "B<dh_listpackages> [S<I<debhelper options>>]"
+msgstr "B<dh_listpackages> [S<I<debhelper options>>]"
+
+#. type: textblock
+#: dh_listpackages:21
+msgid ""
+"B<dh_listpackages> is a debhelper program that outputs a list of all binary "
+"packages debhelper commands will act on. If you pass it some options, it "
+"will change the list to match the packages other debhelper commands would "
+"act on if passed the same options."
+msgstr ""
+"B<dh_listpackages> は、debhelper により処理を行う必要のある全てのバイナリパッ"
+"ケージの一覧を得る事が出来る debhelper プログラムです。このプログラムに、ある"
+"オプションを渡すと、同じオプションを引き渡された他の debhelper コマンドへ処理"
+"させる予定のパッケージ一覧を、変更できます。"
+
+#. type: textblock
+#: dh_listpackages:26
+#, fuzzy
+#| msgid ""
+#| "These files are installed into the first binary package listed in debian/"
+#| "control."
+msgid "Packages are listed in the order they appear in F<debian/control>."
+msgstr ""
+"これらのファイルは debian/control に最初に記載されているバイナリパッケージへ"
+"インストールされます。"
+
+#. type: textblock
+#: dh_makeshlibs:5
+msgid ""
+"dh_makeshlibs - automatically create shlibs file and call dpkg-gensymbols"
+msgstr ""
+"dh_makeshlibs - 自動的に shlibs ファイルを作成し、dpkg-gensymbols を呼び出す"
+
+#. type: textblock
+#: dh_makeshlibs:17
+msgid ""
+"B<dh_makeshlibs> [S<I<debhelper options>>] [B<-m>I<major>] [B<-"
+"V>I<[dependencies]>] [B<-n>] [B<-X>I<item>] [S<B<--> I<params>>]"
+msgstr ""
+"B<dh_makeshlibs> [S<I<debhelper options>>] [B<-m>I<major>] [B<-"
+"V>I<[dependencies]>] [B<-n>] [B<-X>I<item>] [S<B<--> I<params>>]"
+
+#. type: textblock
+#: dh_makeshlibs:21
+msgid ""
+"B<dh_makeshlibs> is a debhelper program that automatically scans for shared "
+"libraries, and generates a shlibs file for the libraries it finds."
+msgstr ""
+"B<dh_makeshlibs> は自動的に共有ライブラリをスキャンし、見つけたライブラリに対"
+"する shlibs ファイルを生成する debhelper プログラムです。"
+
+#. type: textblock
+#: dh_makeshlibs:24
+msgid ""
+"It will also ensure that ldconfig is invoked during install and removal when "
+"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."
+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 are considering to migrate to using "
+"the 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:48
+msgid "debian/I<package>.shlibs"
+msgstr "debian/I<package>.shlibs"
+
+#. type: textblock
+#: 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 "
+"any libraries."
+msgstr ""
+
+#. type: textblock
+#: 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 ""
+"互換性レベル 9 以前では、このファイルは B<dh_makeshlibs> ではなく "
+"L<dh_installdeb(1)> によってインストールされる点に注意して下さい。"
+
+#. type: =item
+#: dh_makeshlibs:57
+msgid "debian/I<package>.symbols"
+msgstr "debian/I<package>.symbols"
+
+#. type: =item
+#: dh_makeshlibs:59
+msgid "debian/I<package>.symbols.I<arch>"
+msgstr "debian/I<package>.symbols.I<arch>"
+
+#. type: textblock
+#: 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 "
+"provide different symbols files for different architectures."
+msgstr ""
+"これらのシンボルファイルは、もし存在すれば、L<dpkg-gensymbols(1)> へ渡され、"
+"かかる処理とインストールが行われます。異なるアーキテクチャの元で異なるシンボ"
+"ルを利用するには、I<arch> を指定してください。"
+
+#. type: =item
+#: dh_makeshlibs:71
+msgid "B<-m>I<major>, B<--major=>I<major>"
+msgstr "B<-m>I<major>, B<--major=>I<major>"
+
+#. type: textblock
+#: 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 "
+"than it used to be, back in the bad old days when this program looked at "
+"library filenames rather than using objdump."
+msgstr ""
+"objdump をつかってライブラリの主バージョン番号を推定する代わりに、-m パラメー"
+"タのあとに主バージョン番号を設定できます。以前本プログラムはライブラリの主"
+"バージョン番号を求めるのに objdump を使わず、ライブラリのファイル名から判定し"
+"ていた為、このパラメータが便利だった事があります。"
+
+#. type: =item
+#: dh_makeshlibs:78
+msgid "B<-V>, B<-V>I<dependencies>"
+msgstr "B<-V>, B<-V>I<dependencies>"
+
+#. type: =item
+#: dh_makeshlibs:80
+msgid "B<--version-info>, B<--version-info=>I<dependencies>"
+msgstr "B<--version-info>, B<--version-info=>I<dependencies>"
+
+#. type: textblock
+#: 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: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:88
+msgid "The B<dh_makeshlibs> tool can generate dependencies in three variants:"
+msgstr ""
+
+#. type: =item
+#: dh_makeshlibs:92
+msgid "B<-VUpstream-Version>"
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"as shown here."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:98
+#, fuzzy
+#| msgid ""
+#| "Beware of using B<-V> without any parameters; 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 your "
+#| "library is prone to changing ABI without updating the upstream version "
+#| "number), so that if the maintainer screws up then they won't break. The "
+#| "flip side is that packages might end up with dependencies that are too "
+#| "tight and so find it harder to be upgraded."
+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 "
+"the library is prone to changing ABI without updating the upstream version "
+"number)."
+msgstr ""
+"B<-V> をパラメータ無しで指定する場合の注意事項は次の通りです。この場合、依存"
+"関係にあるパッケージに含まれる共有ライブラリはお互いに必要な依存関係を保って"
+"いられるという仮定に基づく保守的な設定です (なおビルド対象のパッケージに含ま"
+"れるライブラリについて、開発元 (upstream) のバージョン番号が新しくならないに"
+"も関わらず、あえて ABI を変更しなければならない場合は除きます)。メンテナが、"
+"依存関係解決が難しい為対応ができないような場合は、依存関係を破らざるを得ない"
+"ときがあります。また、アップグレードが容易に出来ないほど強い依存関係を生じる"
+"場合は、依存関係の変更をする必要があります。"
+
+#. type: textblock
+#: 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 "
+"often of minor temporary inconvenience and usually a lot better than the "
+"fall out caused by forgetting to bump the dependency information."
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"works)"
+msgstr ""
+
+#. type: =item
+#: dh_makeshlibs:113
+#, fuzzy
+#| msgid "B<-V>"
+msgid "B<-VNone>"
+msgstr "B<-V>"
+
+#. type: textblock
+#: 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: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 "
+"interfaces over time and packagers are recommended to use B<-VUpstream-"
+"Version> (or one of the other forms of B<-V>I<dependencies>)."
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"packages. Note that symbols are not supported for udeb packages, which "
+"solely relies on shlibs for dependency handling."
+msgstr ""
+
+#. type: =item
+#: dh_makeshlibs:128
+#, fuzzy
+#| msgid "B<--ddeb-migration=>I<package-relation>"
+msgid "B<-V>I<package-relation>"
+msgstr "B<--ddeb-migration=>I<package-relation>"
+
+#. type: textblock
+#: 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-"
+"package-name> B<(E<gt>>= I<some-package-version>B<)>\". Remember to include "
+"the package name."
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"dependency on a different package than the one containing the library."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:142
+msgid ""
+"When choosing a value for this option, please keep mind that if the package "
+"provides a symbols file, then that this is generally preferred over the "
+"shlibs file for regular .deb packages. See L<dpkg-shlibdeps(1)> for more "
+"information on this topic."
+msgstr ""
+
+#. type: textblock
+#: 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 "
+"B<dh_makeshlibs> would previously generate maintainer scripts that called "
+"B<ldconfig>."
+msgstr ""
+
+#. type: textblock
+#: dh_makeshlibs:156
+msgid ""
+"Exclude files that contain I<item> anywhere in their filename or directory "
+"from being treated as shared libraries."
+msgstr ""
+"I<item> が対象のファイルや格納されているディレクトリの名前に含まれている場"
+"合、共有ファイルとして扱うのを止めます。"
+
+#. type: =item
+#: dh_makeshlibs:159
+msgid "B<--add-udeb=>I<udeb>"
+msgstr "B<--add-udeb=>I<udeb>"
+
+#. type: textblock
+#: 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 "
+"package."
+msgstr ""
+"shlibs ファイルに udebs 用途の追加情報を作成し、通常のライブラリパッケージの"
+"名前を使う代わりに、I<udeb> を udebs のパッケージの名前として利用します。"
+
+#. type: textblock
+#: dh_makeshlibs:164
+msgid ""
+"This 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 "I<params> を L<dpkg-gensymbols(1)> へ引き渡します。"
+
+#. type: =item
+#: dh_makeshlibs:189
+#, fuzzy
+#| msgid "B<dh_makeshlibs -V>"
+msgid "B<dh_makeshlibs -VNone>"
+msgstr "B<dh_makeshlibs -V>"
+
+# FIXME: why no-wrap?
+#. type: verbatim
+#: dh_makeshlibs:191
+#, fuzzy, no-wrap
+msgid ""
+"Assuming this is a package named F<libfoobar1>, generates a shlibs file that\n"
+"looks something like:\n"
+" libfoobar 1 libfoobar1\n"
+"\n"
+msgstr ""
+"このパッケージの名前を F<libfoobar1> と仮定すると、このコマンドによって作成\n"
+"される shlibs ファイルは以下の通りとなります: \n"
+" libfoobar 1 libfoobar1\n"
+"\n"
+
+#. type: =item
+#: dh_makeshlibs:195
+#, fuzzy
+#| msgid "B<dh_makeshlibs -V>"
+msgid "B<dh_makeshlibs -VUpstream-Version>"
+msgstr "B<dh_makeshlibs -V>"
+
+# FIXME: unnecessary \n?
+#. type: verbatim
+#: dh_makeshlibs:197
+#, fuzzy, no-wrap
+msgid ""
+"Assuming the current version of the package is 1.1-3, generates a shlibs\n"
+"file that looks something like:\n"
+" libfoobar 1 libfoobar1 (>= 1.1)\n"
+"\n"
+msgstr ""
+"現在のパッケージのバージョンを 1.1-3 とすると、このコマンドで得られる shlibs ファイルは以下の通りです:\n"
+" libfoobar 1 libfoobar1 (>= 1.1)\n"
+"\n"
+
+#. type: =item
+#: 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:203
+#, no-wrap
+msgid ""
+"Generates a shlibs file that looks something like:\n"
+" libfoobar 1 libfoobar1 (>= 1.0)\n"
+"\n"
+msgstr ""
+"以下のような shlibs ファイルが生成されます:\n"
+" libfoobar 1 libfoobar1 (>= 1.0)\n"
+"\n"
+
+#. type: textblock
+#: dh_md5sums:5
+msgid "dh_md5sums - generate DEBIAN/md5sums file"
+msgstr "dh_md5sums - DEBIAN/md5sums ファイルを生成する"
+
+#. type: textblock
+#: dh_md5sums:18
+msgid ""
+"B<dh_md5sums> [S<I<debhelper options>>] [B<-x>] [B<-X>I<item>] [B<--include-"
+"conffiles>]"
+msgstr ""
+"B<dh_md5sums> [S<I<debhelper オプション>>] [B<-x>] [B<-X>I<item>] [B<--"
+"include-conffiles>]"
+
+#. type: textblock
+#: dh_md5sums:22
+msgid ""
+"B<dh_md5sums> is a debhelper program that is responsible for generating a "
+"F<DEBIAN/md5sums> file, which lists the md5sums of each file in the "
+"package. These files are used by B<dpkg --verify> or the L<debsums(1)> "
+"program."
+msgstr ""
+"B<dh_md5sums> は F<DEBIAN/md5sums> ファイルを生成する役目のプログラムです。な"
+"お、F<DEBIAN/md5sums> ファイルとはビルド対象のパッケージにあるファイルの "
+"md5sum 値を列挙したものです。これらファイルは B<dpkg --verify> または "
+"B<debsums> プログラムで利用されます。"
+
+#. type: textblock
+#: dh_md5sums:26
+msgid ""
+"All files in F<DEBIAN/> are omitted from the F<md5sums> file, as are all "
+"conffiles (unless you use the B<--include-conffiles> switch)."
+msgstr ""
+"F<DEBIAN/> 以下にある全ファイルは生成される F<md5sums> ファイルからは除外され"
+"ます。また同様に全ての conffile も除外されます (B<--include-conffiles> を指定"
+"した場合は別です) 。"
+
+#. type: textblock
+#: dh_md5sums:29
+msgid "The md5sums file is installed with proper permissions and ownerships."
+msgstr "md5sums ファイルは適切なパーミッションと所有者でインストールされます。"
+
+#. type: =item
+#: dh_md5sums:35
+msgid "B<-x>, B<--include-conffiles>"
+msgstr "B<-x>, B<--include-conffiles>"
+
+#. type: textblock
+#: dh_md5sums:37
+#, fuzzy
+#| msgid ""
+#| "Include conffiles in the md5sums list. Note that this information is "
+#| "redundant since it is included elsewhere in Debian packages."
+msgid ""
+"Include conffiles in the md5sums list. Note that this information is "
+"redundant since it is included in F</var/lib/dpkg/status> in Debian packages."
+msgstr ""
+"md5sum 値を取得するファイルとして conffile を含めます。この情報は Debian パッ"
+"ケージとは異なる場所にインストールされる為、補助目的の情報として扱われます"
+
+#. type: textblock
+#: dh_md5sums:42
+msgid ""
+"Exclude files that contain I<item> anywhere in their filename from being "
+"listed in the md5sums file."
+msgstr ""
+"md5sums ファイルに列挙されているファイル群から、I<item> をファイル名に持つ"
+"ファイルを除外します。"
+
+#. type: textblock
+#: dh_movefiles:5
+msgid "dh_movefiles - move files out of debian/tmp into subpackages"
+msgstr "dh_movefiles - debian/tmp からサブパッケージへファイルを移動する"
+
+#. type: textblock
+#: dh_movefiles:17
+msgid ""
+"B<dh_movefiles> [S<I<debhelper options>>] [B<--sourcedir=>I<dir>] [B<-"
+"X>I<item>] [S<I<file> ...>]"
+msgstr ""
+"B<dh_movefiles> [S<I<debhelper オプション>>] [B<--sourcedir=>I<ディレクトリ"
+">] [B<-X>I<item>] [S<I<ファイル> ...>]"
+
+#. type: textblock
+#: dh_movefiles:21
+msgid ""
+"B<dh_movefiles> is a debhelper program that is responsible for moving files "
+"out of F<debian/tmp> or some other directory and into other package build "
+"directories. This may be useful if your package has a F<Makefile> that "
+"installs everything into F<debian/tmp>, and you need to break that up into "
+"subpackages."
+msgstr ""
+"B<dh_movefiles> は、F<debian/tmp> ディレクトリや他のディレクトリから、別の"
+"パッケージビルドディレクトリへファイルを移動する役割を持つ debhelper プログラ"
+"ムです。これはパッケージしようとするソフトウェアに含まれる F<Makefile>フ ァイ"
+"ルにより、インストールすべき物が F<debian/tmp> へインストールされてしまうよう"
+"な場合に、これらを別々のディレクトリに後から仕分けたいような場合に便利です。"
+
+#. type: textblock
+#: dh_movefiles:26
+msgid ""
+"Note: B<dh_install> is a much better program, and you are recommended to use "
+"it instead of B<dh_movefiles>."
+msgstr ""
+"注意:B<dh_install> は B<dh_movefiles> よりもはるかに良いプログラムなので、"
+"B<dh_install> を利用することを推奨します。"
+
+#. type: =item
+#: dh_movefiles:33
+msgid "debian/I<package>.files"
+msgstr "debian/I<package>.files"
+
+#. type: textblock
+#: dh_movefiles:35
+msgid ""
+"Lists the files to be moved into a package, separated by whitespace. The "
+"filenames listed should be relative to F<debian/tmp/>. You can also list "
+"directory names, and the whole directory will be moved."
+msgstr ""
+"とあるパッケージへ移動したいファイルを、空白区切りで列挙します。ファイル名は"
+"必ず F<debian/tmp/> からの相対パスで指定しなければなりません。また、ディレク"
+"トリ名を指定することもでき、その場合は、ディレクトリをそのまま移動します。"
+
+#. type: textblock
+#: dh_movefiles:47
+msgid ""
+"Instead of moving files out of F<debian/tmp> (the default), this option "
+"makes it move files out of some other directory. Since the entire contents "
+"of the sourcedir is moved, specifying something like B<--sourcedir=/> is "
+"very unsafe, so to prevent mistakes, the sourcedir must be a relative "
+"filename; it cannot begin with a `B</>'."
+msgstr ""
+"F<debian/tmp> (デフォルトの移動元) からファイルを移動する代わりに、別のディレ"
+"クトリからファイルを移動するように指定します。なお、移動元ディレクトリにある"
+"全ファイルを移動する為、B<--sourcedir=/> のような指定は、非常に危険です。こう"
+"いった間違いを防ぐ為、移動元ディレクトリは相対パスしか受け付けないようにして"
+"あります。つまり、'B</>' で始まるディレクトリ指定は出来ません。"
+
+#. type: =item
+#: dh_movefiles:53
+msgid "B<-Xitem>, B<--exclude=item>"
+msgstr "B<-Xitem>, B<--exclude=item>"
+
+#. type: textblock
+#: dh_movefiles:55
+msgid ""
+"Exclude files that contain B<item> anywhere in their filename from being "
+"installed."
+msgstr ""
+"B<item> をファイル名のどこかに含むファイルはインストール候補から除外します。"
+
+#. type: textblock
+#: dh_movefiles:60
+msgid ""
+"Lists files to move. The filenames listed should be relative to F<debian/tmp/"
+">. You can also list directory names, and the whole directory will be moved. "
+"It is an error to list files here unless you use B<-p>, B<-i>, or B<-a> to "
+"tell B<dh_movefiles> which subpackage to put them in."
+msgstr ""
+"移動すべきファイルを列挙したファイルです。列挙されているファイルは F<debian/"
+"tmp/> からの相対パスである必要があります。ディレクトリ名を列挙することも出"
+"来、その場合は、各ディレクトリ全体を移動します。なお、B<-p>、B<-i>、B<-a> を"
+"使って B<dh_movefiles> にどのサブパッケージに移動すべきかを指定していない場合"
+"エラーが報告されます。 "
+
+#. type: textblock
+#: dh_movefiles:69
+msgid ""
+"Note that files are always moved out of F<debian/tmp> by default (even if "
+"you have instructed debhelper to use a compatibility level higher than one, "
+"which does not otherwise use debian/tmp for anything at all). The idea "
+"behind this is that the package that is being built can be told to install "
+"into F<debian/tmp>, and then files can be moved by B<dh_movefiles> from that "
+"directory. Any files or directories that remain are ignored, and get deleted "
+"by B<dh_clean> later."
+msgstr ""
+"デフォルト F<debian/tmp> からファイルを移動するという事になっています (もし "
+"debhelper が互換性レベル v1 以上で利用したとしても、debian/tmp 以外は利用され"
+"ません)。この背景として、ビルドされたパッケージは F<debian/tmp> に一旦インス"
+"トールし、後で B<dh_movefiles> コマンドにより F<debian/tmp> から移動するとい"
+"う考え方があります。なお移動されなかったファイルやディレクトリは無視され、後"
+"に B<dh_clean> によって消去されることとなります。"
+
+#. type: textblock
+#: dh_perl:5
+msgid "dh_perl - calculates Perl dependencies and cleans up after MakeMaker"
+msgstr ""
+"dh_perl - Perlへの依存関係を検討し、MakeMaker 実行後に生成したものを消去する"
+
+#. type: textblock
+#: dh_perl:20
+msgid "B<dh_perl> [S<I<debhelper options>>] [B<-d>] [S<I<library dirs> ...>]"
+msgstr ""
+"B<dh_perl> [S<I<debhelper オプション>>] [B<-d>] [S<I<ライブラリディレクトリ"
+"> ...>]"
+
+#. type: textblock
+#: dh_perl:24
+msgid ""
+"B<dh_perl> is a debhelper program that is responsible for generating the "
+"B<${perl:Depends}> substitutions and adding them to substvars files."
+msgstr ""
+"B<dh_perl> は B<${perl:Depends}> の内容を生成し、この依存情報に substvars "
+"ファイルの情報を付け加える役目の debhelper プログラムです。"
+
+#. type: textblock
+#: dh_perl:27
+msgid ""
+"The program will look at Perl scripts and modules in your package, and will "
+"use this information to generate a dependency on B<perl> or B<perlapi>. The "
+"dependency will be substituted into your package's F<control> file wherever "
+"you place the token B<${perl:Depends}>."
+msgstr ""
+"このプログラムはビルド対象のパッケージにある Perl スクリプトや Perl モジュー"
+"ルを検査し、B<perl> や B<perlapi> の依存関係を生成します。B<${perl:Depends}> "
+"句をビルド対象のパッケージの F<control> に記述すると、生成した依存関係の情報"
+"に置き換えられます。"
+
+#. type: textblock
+#: dh_perl:32
+msgid ""
+"B<dh_perl> also cleans up empty directories that MakeMaker can generate when "
+"installing Perl modules."
+msgstr ""
+"B<dh_perl> は、さらに、MakeMaker が Perl モジュールをインストールする際に生成"
+"した空のディレクトリを削除します。"
+
+#. type: =item
+#: dh_perl:39
+msgid "B<-d>"
+msgstr "B<-d>"
+
+#. type: textblock
+#: dh_perl:41
+msgid ""
+"In some specific cases you may want to depend on B<perl-base> rather than "
+"the full B<perl> package. If so, you can pass the -d option to make "
+"B<dh_perl> generate a dependency on the correct base package. This is only "
+"necessary for some packages that are included in the base system."
+msgstr ""
+"完全な B<perl> パッケージよりも B<perl-base> に依存したいような場合がありま"
+"す。この場合、-d オプションにて B<dh_perl> に正しいベースパッケージに対しての"
+"依存情報を生成させるようなオプションを渡す箏ができます。これはベースシステム"
+"が含まれるようなパッケージのみで必要です。"
+
+#. type: textblock
+#: dh_perl:46
+msgid ""
+"Note that this flag may cause no dependency on B<perl-base> to be generated "
+"at all. B<perl-base> is Essential, so its dependency can be left out, unless "
+"a versioned dependency is needed."
+msgstr ""
+"なお、このフラグを指定しても、B<perl-base> 本体に関する依存情報は、全く生成さ"
+"れません。というのも、B<perl-base> は非常に基礎的なパッケージなので、B<perl-"
+"base> に関する依存関係は通常特に指定しなくても問題が無い為です。ただ、B<perl-"
+"base> の特定のバージョンに依存が特に必要な場合はその限りではありません。"
+
+#. type: =item
+#: dh_perl:50
+msgid "B<-V>"
+msgstr "B<-V>"
+
+#. type: textblock
+#: dh_perl:52
+msgid ""
+"By default, scripts and architecture independent modules don't depend on any "
+"specific version of B<perl>. The B<-V> option causes the current version of "
+"the B<perl> (or B<perl-base> with B<-d>) package to be specified."
+msgstr ""
+"デフォルト、スクリプト本体とアーキテクチャから独立しているモジュールについて"
+"は、特定のバージョンの B<perl> に依存するような依存情報は生成されません。B<-"
+"V>オプションを指定すると、パッケージビルド中に使っているバージョンの B<perl> "
+"パッケージ (あるいは、B<-d> を指定していれば、現在の B<perl-base> のバージョ"
+"ン) を、パッケージの依存情報として設定します。"
+
+#. type: =item
+#: dh_perl:56
+msgid "I<library dirs>"
+msgstr "I<library dirs>"
+
+#. type: textblock
+#: dh_perl:58
+msgid ""
+"If your package installs Perl modules in non-standard directories, you can "
+"make B<dh_perl> check those directories by passing their names on the "
+"command line. It will only check the F<vendorlib> and F<vendorarch> "
+"directories by default."
+msgstr ""
+"Perlモジュールを非標準のディレクトリにインストールするようなパッケージをビル"
+"ドしているのであれば、コマンドラインからパッケージの名前を渡すことにより、"
+"B<dh_perl> に、これらのディレクトリを確認させる事が出来ます。デフォルトではこ"
+"のコマンドは F<vendorlib> と F<vendorarch> ディレクトリのみを確認します。"
+
+#. type: textblock
+#: dh_perl:67
+msgid "Debian policy, version 3.8.3"
+msgstr "Debian ポリシー バージョン 3.8.3"
+
+#. type: textblock
+#: dh_perl:69
+msgid "Perl policy, version 1.20"
+msgstr "Perl ポリシー バージョン 1.20"
+
+#. type: textblock
+#: dh_perl:196
+msgid "Brendan O'Dea <bod@debian.org>"
+msgstr "Brendan O'Dea <bod@debian.org>"
+
+#. type: textblock
+#: dh_prep:5
+msgid "dh_prep - perform cleanups in preparation for building a binary package"
+msgstr "dh_prep - バイナリパッケージビルドの事前準備として諸々の消去を行う"
+
+#. type: textblock
+#: dh_prep:17
+msgid "B<dh_prep> [S<I<debhelper options>>] [B<-X>I<item>]"
+msgstr "B<dh_prep> [S<I<debhelper オプション>>] [B<-X>I<item>]"
+
+#. type: textblock
+#: dh_prep:21
+msgid ""
+"B<dh_prep> is a debhelper program that performs some file cleanups in "
+"preparation for building a binary package. (This is what B<dh_clean -k> used "
+"to do.) It removes the package build directories, F<debian/tmp>, and some "
+"temp files that are generated when building a binary package."
+msgstr ""
+"B<dh_prep> はバイナリパッケージビルドの下準備時として諸々のファイル消去を行"
+"う debhelper プログラムです (これは B<dh_clean -k> が昔行っていた作業となりま"
+"す)。本プログラムはパッケージビルドディレクトリ、F<debian/tmp>、あるいは、"
+"パッケージビルド中に生成した一時ファイルを取り除きます。"
+
+#. type: textblock
+#: dh_prep:26
+msgid ""
+"It is typically run at the top of the B<binary-arch> and B<binary-indep> "
+"targets, or at the top of a target such as install that they depend on."
+msgstr ""
+"本プログラムは通常、B<binary-arch> や、B<binary-indep> ターゲット、あるいは、"
+"これらが依存するインストール関連のターゲットの一番最初の作業にて実行されるよ"
+"うにします。"
+
+#. type: textblock
+#: dh_prep:35
+#, fuzzy
+msgid ""
+"Exclude files that contain F<item> anywhere in their filename from being "
+"deleted, even if they would normally be deleted. You may use this option "
+"multiple times to build up a list of things to exclude."
+msgstr ""
+"削除対象の候補のファイルから、F<item> をファイル名に含むようなファイルを除外"
+"します。通常は消去されるようなファイルであっても、この場合では除外されます。"
+"複数の除外ファイルを列挙して指定するには、本オプションを複数回指定します。"
+
+#. type: textblock
+#: dh_shlibdeps:5
+msgid "dh_shlibdeps - calculate shared library dependencies"
+msgstr "dh_shlibdeps - 共有ライブラリの依存関係を計算する"
+
+#. type: textblock
+#: dh_shlibdeps:19
+msgid ""
+"B<dh_shlibdeps> [S<I<debhelper options>>] [B<-L>I<package>] [B<-"
+"l>I<directory>] [B<-X>I<item>] [S<B<--> I<params>>]"
+msgstr ""
+"B<dh_shlibdeps> [S<I<debhelper オプション>>] [B<-L>I<パッケージ>] [B<-l>I<"
+"ディレクトリ>] [B<-X>I<item>] [S<B<--> I<パラメータ>>]"
+
+#. type: textblock
+#: dh_shlibdeps:23
+msgid ""
+"B<dh_shlibdeps> is a debhelper program that is responsible for calculating "
+"shared library dependencies for packages."
+msgstr ""
+"B<dh_shlibdeps> は、ビルド中のパッケージに含まれる共有ライブラリの依存関係を"
+"計算する役目の debhelper プログラムです。"
+
+#. type: textblock
+#: dh_shlibdeps:26
+msgid ""
+"This program is merely a wrapper around L<dpkg-shlibdeps(1)> that calls it "
+"once for each package listed in the F<control> file, passing it a list of "
+"ELF executables and shared libraries it has found."
+msgstr ""
+"このプログラムは L<dpkg-shlibdeps(1)> の単なるラッパープログラムであり、"
+"L<dpkg-shlibdeps(1)> を F<control> ファイルに列挙したパッケージ各々について1"
+"度呼び出すような動作をします。また、同時に L<dpkg-shlibdeps(1)> へ、動作中見"
+"つけた ELF 実行ファイルや、共有ライブラリの一覧を引き渡します。"
+
+#. type: textblock
+#: dh_shlibdeps:36
+msgid ""
+"Exclude files that contain F<item> anywhere in their filename from being "
+"passed to B<dpkg-shlibdeps>. This will make their dependencies be ignored. "
+"This may be useful in some situations, but use it with caution. This option "
+"may be used more than once to exclude more than one thing."
+msgstr ""
+"F<item> を名前に含むファイルを、B<dpkg-shlibdeps> へ渡さないようにします。こ"
+"のオプションにより、指定されたファイルの依存関係検査は無視されるようになりま"
+"す。これは特定の状況下で便利な場合がありますが、気をつけて使って下さい。この"
+"オプションを使って除外を複数指定する場合は、繰り返し指定する事により行いま"
+"す。"
+
+#. type: textblock
+#: dh_shlibdeps:43
+msgid "Pass I<params> to L<dpkg-shlibdeps(1)>."
+msgstr "I<params> を L<dpkg-shlibdeps(1)> へ渡します。"
+
+#. type: =item
+#: dh_shlibdeps:45
+msgid "B<-u>I<params>, B<--dpkg-shlibdeps-params=>I<params>"
+msgstr "B<-u>I<params>, B<--dpkg-shlibdeps-params=>I<params>"
+
+#. type: textblock
+#: dh_shlibdeps:47
+msgid ""
+"This is another way to pass I<params> to L<dpkg-shlibdeps(1)>. It is "
+"deprecated; use B<--> instead."
+msgstr ""
+"このオプションは I<params> を L<dpkg-shlibdeps(1)> へ渡す別の方法となります。"
+"しかしながら、このオプションは廃止されました。代わりに B<--> を利用してくださ"
+"い。"
+
+#. type: =item
+#: dh_shlibdeps:50
+msgid "B<-l>I<directory>[B<:>I<directory> ...]"
+msgstr "B<-l>I<directory>[B<:>I<directory> ...]"
+
+#. type: textblock
+#: dh_shlibdeps:52
+msgid ""
+"With recent versions of B<dpkg-shlibdeps>, this option is generally not "
+"needed."
+msgstr ""
+"最近のバージョンの B<dpkg-shlibdeps> では、このオプションは概ね不要になってい"
+"ます。"
+
+#. type: textblock
+#: dh_shlibdeps:55
+#, fuzzy
+msgid ""
+"It tells B<dpkg-shlibdeps> (via its B<-l> parameter), to look for private "
+"package libraries in the specified directory (or directories -- separate "
+"with colons). With recent versions of B<dpkg-shlibdeps>, this is mostly only "
+"useful for packages that build multiple flavors of the same library, or "
+"other situations where the library is installed into a directory not on the "
+"regular library search path."
+msgstr ""
+"B<dpkg-shlibdeps> を実行する前に、B<LD_LIBRARY_PATH> 環境変数に、指定する予定"
+"のディレクトリ (あるいは、複数指定するならコロンで各ディレクトリ名を区切っ"
+"て) が指定されます。最近のバージョンの B<dpkg-shlibdeps> では、いくつか異なる"
+"設定でビルドしたライブラリを提供するパッケージを用意する場合、あるいは、通常"
+"のライブラリ探索パスにないディレクトリへライブラリをインストールするような場"
+"合にのみ役に立ちます。"
+
+#. type: =item
+#: dh_shlibdeps:63
+msgid "B<-L>I<package>, B<--libpackage=>I<package>"
+msgstr "B<-L>I<package>, B<--libpackage=>I<package>"
+
+#. type: textblock
+#: dh_shlibdeps:65
+#, fuzzy
+msgid ""
+"With recent versions of B<dpkg-shlibdeps>, this option is generally not "
+"needed, unless your package builds multiple flavors of the same library or "
+"is relying on F<debian/shlibs.local> for an internal library."
+msgstr ""
+"最近のバージョンの B<dpkg-shlibdeps> であれば、このオプションは概ね不要となり"
+"ます。ただし、複数の設定でライブラリをビルドするようなパッケージではその限り"
+"ではありません。"
+
+#. type: textblock
+#: dh_shlibdeps:69
+msgid ""
+"It tells B<dpkg-shlibdeps> (via its B<-S> parameter) to look first in the "
+"package build directory for the specified package, when searching for "
+"libraries, symbol files, and shlibs files."
+msgstr ""
+"ライブラリ、シンボルファイル、shlibs ファイルを探索する際に、B<dpkg-"
+"shlibdeps> へ (B<-S> パラメータを使い) パッケージのパッケージビルドディレクト"
+"リ内にて、最初に探す場所を指定するものです。"
+
+#. type: textblock
+#: dh_shlibdeps:73
+msgid ""
+"If needed, this can be passed multiple times with different package names."
+msgstr ""
+
+#. type: textblock
+#: dh_shlibdeps:80
+msgid ""
+"Suppose that your source package produces libfoo1, libfoo-dev, and libfoo-"
+"bin binary packages. libfoo-bin links against libfoo1, and should depend on "
+"it. In your rules file, first run B<dh_makeshlibs>, then B<dh_shlibdeps>:"
+msgstr ""
+"ここで、ビルド中のパッケージが libfoo1、libfoo-dev、libfoo-bin のバイナリパッ"
+"ケージを生成すると仮定します。libfoo-bin は libfoo1 にリンクしており、つまり"
+"は依存関係になければならない状態です。この場合、パッケージの rules ファイルと"
+"して、最初に B<dh_makeshlibs> を呼び出し、次に B<dh_shlibdeps> を呼び出す記述"
+"をしなければなりません:"
+
+#. type: verbatim
+#: dh_shlibdeps:84
+#, no-wrap
+msgid ""
+"\tdh_makeshlibs\n"
+"\tdh_shlibdeps\n"
+"\n"
+msgstr ""
+"\tdh_makeshlibs\n"
+"\tdh_shlibdeps\n"
+"\n"
+
+#. type: textblock
+#: dh_shlibdeps:87
+msgid ""
+"This will have the effect of generating automatically a shlibs file for "
+"libfoo1, and using that file and the libfoo1 library in the F<debian/libfoo1/"
+"usr/lib> directory to calculate shared library dependency information."
+msgstr ""
+"こちらの記述を行うと、共有ライブラリの依存関係を検討する為に、libfoo1 に関す"
+"る shlibs ファイルを自動的に生成し、生成された shlibs ファイル及び F<debian/"
+"libfoo1/usr/lib> 以下の libfoo1 ライブラリを使うようになります。"
+
+#. type: textblock
+#: dh_shlibdeps:92
+msgid ""
+"If a libbar1 package is also produced, that is an alternate build of libfoo, "
+"and is installed into F</usr/lib/bar/>, you can make libfoo-bin depend on "
+"libbar1 as follows:"
+msgstr ""
+"libbar1 パッケージを libfoo とは別にビルドし、F</usr/lib/bar/> へインストール"
+"してあるとします。この場合、libfoo-bin について libbar1 を以下のようにして依"
+"存させる事ができます。"
+
+#. type: verbatim
+#: dh_shlibdeps:96
+#, no-wrap
+msgid ""
+"\tdh_shlibdeps -Llibbar1 -l/usr/lib/bar\n"
+"\t\n"
+msgstr ""
+"\tdh_shlibdeps -Llibbar1 -l/usr/lib/bar\n"
+"\t\n"
+
+#. type: textblock
+#: dh_shlibdeps:206
+msgid "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
+msgstr "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
+
+#. type: textblock
+#: dh_strip:5
+msgid ""
+"dh_strip - strip executables, shared libraries, and some static libraries"
+msgstr ""
+"dh_strip - 実行ファイル、共有ファイル、静的ライブラリのデバッグ情報を削る"
+
+#. type: textblock
+#: dh_strip:18
+msgid ""
+"B<dh_strip> [S<I<debhelper options>>] [B<-X>I<item>] [B<--dbg-"
+"package=>I<package>] [B<--keep-debug>]"
+msgstr ""
+"B<dh_strip> [S<I<debhelper オプション>>] [B<-X>I<item>] [B<--dbg-package=>I<"
+"パッケージ>] [B<--keep-debug>]"
+
+#. type: textblock
+#: dh_strip:22
+#, fuzzy
+#| msgid ""
+#| "B<dh_strip> is a debhelper program that is responsible for stripping "
+#| "executables, shared libraries, and static libraries that are not used for "
+#| "debugging."
+msgid ""
+"B<dh_strip> is a debhelper program that is responsible for stripping out "
+"debug symbols in executables, shared libraries, and static libraries that "
+"are not needed during execution."
+msgstr ""
+"B<dh_strip> は、デバッグ目的で利用する必要のない実行ファイル、共有ライブラ"
+"リ、静的ライブラリからデバッグ情報を取り除く役目の debhelper プログラムです。"
+
+#. type: textblock
+#: dh_strip:26
+msgid ""
+"This program examines your package build directories and works out what to "
+"strip on its own. It uses L<file(1)> and file permissions and filenames to "
+"figure out what files are shared libraries (F<*.so>), executable binaries, "
+"and static (F<lib*.a>) and debugging libraries (F<lib*_g.a>, F<debug/*.so>), "
+"and strips each as much as is possible. (Which is not at all for debugging "
+"libraries.) In general it seems to make very good guesses, and will do the "
+"right thing in almost all cases."
+msgstr ""
+"本プログラムはパッケージビルドディレクトリ以下を探索し、どのファイルからデ"
+"バッグ情報を取り除くべきかを見つけ出します。本プログラムは、L<file(1)> コマン"
+"ドを利用し、ファイルパーミッション、ファイル名を利用して、どのファイルが共有"
+"ライブラリ (F<*.so>)、実行可能バイナリ、静的ライブラリ (F<lib*.a>)、デバッグ"
+"用ライブラリ (F<lib*_g.a>, F<debug/*.so>) であるかを判断し、該当する場合は、"
+"デバッグシンボルをできる限り取り除きます (デバッグ用ライブラリについては全く"
+"何もしません)。多くの場合で、本プログラムは非常に良い推定を行い、正しくデバッ"
+"グシンボルの除去を行います。"
+
+#. type: textblock
+#: dh_strip:34
+msgid ""
+"Since it is very hard to automatically guess if a file is a module, and hard "
+"to determine how to strip a module, B<dh_strip> does not currently deal with "
+"stripping binary modules such as F<.o> files."
+msgstr ""
+"自動的にファイルがモジュールであるかどうかを見分けるのは難しく、また、どう"
+"やってモジュールからデバッグ情報を除外すれば良いかを決定するのも難しい為、"
+"B<dh_strip> は、F<.o> を拡張子に持つファイルのようなバイナリモジュールからデ"
+"バッグ情報の除去を行う事について、未だサポートしていません。"
+
+#. type: =item
+#: dh_strip:48
+msgid "B<--dbg-package=>I<package>"
+msgstr "B<--dbg-package=>I<package>"
+
+#. type: textblock
+#: dh_strip:50 dh_strip:70
+msgid ""
+"B<This option is a now special purpose option that you normally do not "
+"need>. In most cases, there should be little reason to use this option for "
+"new source packages as debhelper automatically generates debug packages "
+"(\"dbgsym packages\"). B<If you have a manual --dbg-package> that you want "
+"to replace with an automatically generated debug symbol package, please see "
+"the B<--dbgsym-migration> option."
+msgstr ""
+"B<このオプションは、現在特別な目的のためのオプションであり、通常必要ありませ"
+"ん>。ほとんどの場合、新しいソースパッケージでは debhelper が自動的にデバッグ"
+"パッケージ (\"dbgsym パッケージ\") を生成するので、このオプションを使う理由は"
+"少ないはずです。B<手動で作られた --dbg-package> を自動生成されたデバッグシン"
+"ボルパッケージで置き換えたい場合は B<--dbgsym-migration> オプションを参照して"
+"下さい。"
+
+#. type: textblock
+#: dh_strip:58
+msgid ""
+"Causes B<dh_strip> to save debug symbols stripped from the packages it acts "
+"on as independent files in the package build directory of the specified "
+"debugging package."
+msgstr ""
+"B<dh_strip> を使ってパッケージからデバッグシンボルを取き、指定のデバッグ用"
+"パッケージのパッケージビルドディレクトリ内に独立したファイルとしてデバッグシ"
+"ンボルを保存します。"
+
+#. type: textblock
+#: dh_strip:62
+msgid ""
+"For example, if your packages are libfoo and foo and you want to include a "
+"I<foo-dbg> package with debugging symbols, use B<dh_strip --dbg-"
+"package=>I<foo-dbg>."
+msgstr ""
+"例えば、ビルド予定のパッケージとして、libfoo、foo があり、I<foo-dbg> パッケー"
+"ジにはデバッグシンボルを含めておきたい場合、B<dh_strip--dbg-package=>I<foo-"
+"dbg> を実行してください。"
+
+#. type: textblock
+#: dh_strip:65
+#, fuzzy
+msgid ""
+"This option implies B<--no-automatic-dbgsym> and I<cannot> be used with B<--"
+"automatic-dbgsym> or B<--dbgsym-migration>."
+msgstr ""
+"このオプションは B<--no-automatic-dbgsym> に伴っており、B<--automatic-"
+"dbgsym> や B<--dbgsym-migration> と同時に使うことはI<できません>。"
+
+#. type: =item
+#: dh_strip:68
+msgid "B<-k>, B<--keep-debug>"
+msgstr "B<-k>, B<--keep-debug>"
+
+#. type: textblock
+#: dh_strip:78
+msgid ""
+"Debug symbols will be retained, but split into an independent file in F<usr/"
+"lib/debug/> in the package build directory. B<--dbg-package> is easier to "
+"use than this option, but this option is more flexible."
+msgstr ""
+"デバッグシンボルが取り除かれる一方、パッケージビルドディレクトリ以下にある "
+"F<usr/lib/debug/> ディレクトリへ取り除いたデバッグシンボルを取り置きます。"
+"B<--dbg-package> オプションの方が本オプションよりも使うのは易しいのですが、本"
+"オプションは B<--dbg-package> オプションよりも柔軟な指定が可能です。"
+
+#. type: textblock
+#: dh_strip:82
+#, fuzzy
+msgid ""
+"This option implies B<--no-automatic-dbgsym> and I<cannot> be used with B<--"
+"automatic-dbgsym>."
+msgstr ""
+"このオプションは B<--no-automatic-dbgsym> に伴っており、B<--automatic-"
+"dbgsym> と同時に使うことはI<できません>。"
+
+#. type: =item
+#: dh_strip:85
+msgid "B<--dbgsym-migration=>I<package-relation>"
+msgstr "B<--dbgsym-migration=>I<package-relation>"
+
+#. type: textblock
+#: dh_strip:87
+msgid ""
+"This option is used to migrate from a manual \"-dbg\" package (created with "
+"B<--dbg-package>) to an automatic generated debug symbol package. This "
+"option should describe a valid B<Replaces>- and B<Breaks>-relation, which "
+"will be added to the debug symbol package to avoid file conflicts with the "
+"(now obsolete) -dbg package."
+msgstr ""
+"このオプションは、手動 (B<--dbg-package>) で作成した \"-dbg\" パッケージから"
+"自動生成されたデバッグシンボルパッケージへ移行するのに利用されます。このオプ"
+"ションでは、(現在では廃止となっている) -dbg パッケージとファイルが衝突するの"
+"を避けるためにデバッグシンボルパッケージに追加される正しい B<Replaces> 及び "
+"B<Breaks> の依存関係を記述する筈です。"
+
+#. type: textblock
+#: dh_strip:93
+#, fuzzy
+msgid ""
+"This option implies B<--automatic-dbgsym> and I<cannot> be used with B<--"
+"keep-debug>, B<--dbg-package> or B<--no-automatic-dbgsym>."
+msgstr ""
+"このオプションは B<--automatic-dbgsym> に伴っており、B<--keep-debug>, B<--"
+"dbg-package>, B<--no-automatic-dbgsym> と同時に使うことはI<できません>。"
+
+#. type: textblock
+#: dh_strip:96
+msgid "Examples:"
+msgstr "例:"
+
+#. type: verbatim
+#: dh_strip:98
+#, no-wrap
+msgid ""
+" dh_strip --dbgsym-migration='libfoo-dbg (<< 2.1-3~)'\n"
+"\n"
+msgstr ""
+" dh_strip --dbgsym-migration='libfoo-dbg (<< 2.1-3~)'\n"
+"\n"
+
+#. type: verbatim
+#: dh_strip:100
+#, no-wrap
+msgid ""
+" dh_strip --dbgsym-migration='libfoo-tools-dbg (<< 2.1-3~), libfoo2-dbg (<< 2.1-3~)'\n"
+"\n"
+msgstr ""
+" dh_strip --dbgsym-migration='libfoo-tools-dbg (<< 2.1-3~), libfoo2-dbg (<< 2.1-3~)'\n"
+"\n"
+
+#. type: =item
+#: dh_strip:102
+msgid "B<--automatic-dbgsym>, B<--no-automatic-dbgsym>"
+msgstr "B<--automatic-dbgsym>, B<--no-automatic-dbgsym>"
+
+#. type: textblock
+#: dh_strip:104
+msgid ""
+"Control whether B<dh_strip> should be creating debug symbol packages when "
+"possible."
+msgstr ""
+"可能な際に B<dh_strip> がデバッグシンボルパッケージを作るかどうかをコントロー"
+"ルします。"
+
+#. type: textblock
+#: dh_strip:107
+msgid "The default is to create debug symbol packages."
+msgstr "デフォルトはデバッグシンボルパッケージを作成します。"
+
+#. type: =item
+#: dh_strip:109
+msgid "B<--ddebs>, B<--no-ddebs>"
+msgstr "B<--ddebs>, B<--no-ddebs>"
+
+#. type: textblock
+#: dh_strip:111
+msgid "Historical name for B<--automatic-dbgsym> and B<--no-automatic-dbgsym>."
+msgstr "B<--automatic-dbgsym> と B<--no-automatic-dbgsym> の歴史的な名前です。"
+
+#. type: =item
+#: dh_strip:113
+msgid "B<--ddeb-migration=>I<package-relation>"
+msgstr "B<--ddeb-migration=>I<package-relation>"
+
+#. type: textblock
+#: dh_strip:115
+msgid "Historical name for B<--dbgsym-migration>."
+msgstr "B<--dbgsym-migration> の歴史的な名前です。"
+
+#. type: textblock
+#: dh_strip:121
+#, fuzzy
+msgid ""
+"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
+"nothing will be stripped, in accordance with Debian policy (section 10.1 "
+"\"Binaries\"). This will also inhibit the automatic creation of debug "
+"symbol packages."
+msgstr ""
+"B<DEB_BUILD_OPTIONS> 環境変数に B<nostrip> が含まれていると、Debian ポリシー "
+"(10.1章\"Binaries\") に従ってデバッグシンボルをまったく取り除かなくなります。"
+"これはデバッグシンボルパッケージの自動生成を"
+
+#. type: textblock
+#: dh_strip:126
+#, fuzzy
+msgid ""
+"The automatic creation of debug symbol packages can also be prevented by "
+"adding B<noautodbgsym> to the B<DEB_BUILD_OPTIONS> environment variable. "
+"However, B<dh_strip> will still add debuglinks to ELF binaries when this "
+"flag is set. This is to ensure that the regular deb package will be "
+"identical with and without this flag (assuming it is otherwise \"bit-for-"
+"bit\" reproducible)."
+msgstr ""
+"デバッグシンボルパッケージの自動作成は、B<DEB_BUILD_OPTIONS> 環境変数に "
+"B<noautodbgsym> を追加することでも抑制できます。しかし、B<dh_strip> はこのフ"
+"ラグが設定されている場合、それでもELF バイナリへの debuglink を追加します。"
+"(「1 bit も変わらない」reproducible ビルドであろうという仮定にも関わらず)"
+
+#. type: textblock
+#: dh_strip:135
+msgid "Debian policy, version 3.0.1"
+msgstr "Debian ポリシー バージョン 3.0.1"
+
+#. type: textblock
+#: dh_testdir:5
+msgid "dh_testdir - test directory before building Debian package"
+msgstr ""
+"dh_testdir - Debian パッケージをビルドする前にディレクトリの状態を検証する"
+
+#. type: textblock
+#: dh_testdir:17
+msgid "B<dh_testdir> [S<I<debhelper options>>] [S<I<file> ...>]"
+msgstr "B<dh_testdir> [S<I<debhelper オプション>>] [S<I<ファイル> ...>]"
+
+#. type: textblock
+#: dh_testdir:21
+msgid ""
+"B<dh_testdir> tries to make sure that you are in the correct directory when "
+"building a Debian package. It makes sure that the file F<debian/control> "
+"exists, as well as any other files you specify. If not, it exits with an "
+"error."
+msgstr ""
+"B<dh_testdir> コマンドは、Debian パッケージをビルドする際に、カレントディレク"
+"トリが正しいディレクトリにあるかどうかを確認しようとします。また、同様に "
+"F<debian/control> ファイルや、指定されている他のファイルがきちんと存在するか"
+"どうかも確かめます。もし、そうでない場合、戻り値にエラー値を指定して処理を終"
+"わります。"
+
+#. type: textblock
+#: dh_testdir:32
+msgid "Test for the existence of these files too."
+msgstr "これらのファイルの存在もあわせて確認します。"
+
+#. type: textblock
+#: dh_testroot:7
+#, fuzzy
+#| msgid "dh_testroot - ensure that a package is built as root"
+msgid ""
+"dh_testroot - ensure that a package is built with necessary level of root "
+"permissions"
+msgstr "dh_testroot - パッケージが root 権限の元でビルドされるかを確認する"
+
+#. type: textblock
+#: dh_testroot:11
+msgid "B<dh_testroot> [S<I<debhelper options>>]"
+msgstr "B<dh_testroot> [S<I<debhelper オプション>>]"
+
+#. type: textblock
+#: dh_testroot:15
+msgid ""
+"B<dh_testroot> is used to determine if the target is being run with suffient "
+"access to root(-like) features."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:18
+msgid ""
+"The definition of sufficient access depends on whether the builder (the tool "
+"invoking the F<debian/rules> target) supports the I<Rules-Requires-Root> "
+"(R³) field. If the builder supports R³, then it will set the environment "
+"variable I<DEB_RULES_REQUIRES_ROOT> and B<dh_testroot> will validate that "
+"the builder followed the minimum requirements for the given value of "
+"I<DEB_RULES_REQUIRES_ROOT>."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:25
+msgid ""
+"If the builder does not support I<Rules-Requires-Root>, then it will not set "
+"the I<DEB_RULES_REQUIRES_ROOT> environment variable. This will in turn make "
+"B<dh_testroot> (and the rest of debhelper) fall back to assuming that "
+"(fake)root is implied."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:30
+msgid ""
+"The following is a summary of how B<dh_testroot> behaves based on the "
+"I<DEB_RULES_REQUIRES_ROOT> environment variable (leading and trailing "
+"whitespace in the variable is ignored)."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:38
+msgid ""
+"If unset, or set to C<binary-targets>, then B<dh_testroot> asserts that it "
+"is run as root or under L<fakeroot(1)>."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:43
+msgid ""
+"If set to C<no>, then B<dh_testroot> returns successfully (without "
+"performing any additional checks)."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:48
+msgid ""
+"If set to any other value than the above, then B<dh_testroot> asserts that "
+"it is either run as root (or under L<fakeroot(1)>) or the builder has "
+"provided the B<DEB_GAIN_ROOT_CMD> environment variable (e.g. via dpkg-"
+"buildpackage -r)."
+msgstr ""
+
+#. type: textblock
+#: dh_testroot:55
+msgid ""
+"Please note that B<dh_testroot> does I<not> read the I<Rules-Requires-Root> "
+"field. Which implies that B<dh_testroot> may produce incorrect result if "
+"the builder lies in I<DEB_RULES_REQUIRES_ROOT>. On the flip side, it also "
+"enables things like testing for what will happen when "
+"I<DEB_RULES_REQUIRES_ROOT> is set to a given value."
+msgstr ""
+
+#. type: textblock
+#: dh_usrlocal:7
+msgid "dh_usrlocal - migrate usr/local directories to maintainer scripts"
+msgstr "dh_usrlocal - usr/local ディレクトリをメンテナスクリプトへ移行する"
+
+#. type: textblock
+#: dh_usrlocal:21
+msgid "B<dh_usrlocal> [S<I<debhelper options>>] [B<-n>]"
+msgstr "B<dh_usrlocal> [S<I<debhelper オプション>>] [B<-n>]"
+
+#. type: textblock
+#: dh_usrlocal:25
+msgid ""
+"B<dh_usrlocal> is a debhelper program that can be used for building packages "
+"that will provide a subdirectory in F</usr/local> when installed."
+msgstr ""
+"B<dh_usrlocal> コマンドはインストールの際に F</usr/local> 以下にサブディレク"
+"トリを作成するパッケージをビルドする時に使える debhelper プログラムです。"
+
+#. type: textblock
+#: dh_usrlocal:28
+msgid ""
+"It finds subdirectories of F<usr/local> in the package build directory, and "
+"removes them, replacing them with maintainer script snippets (unless B<-n> "
+"is used) to create the directories at install time, and remove them when the "
+"package is removed, in a manner compliant with Debian policy. These snippets "
+"are inserted into the maintainer scripts by B<dh_installdeb>. See "
+"L<dh_installdeb(1)> for an explanation of debhelper maintainer script "
+"snippets."
+msgstr ""
+"このコマンドは、パッケージビルドディレクトリにある F<usr/local> 以下のサブ"
+"ディレクトリを走査・削除し、Debian policy の内容に沿った形でインストール時に"
+"作成されたディレクトリを作成、及びパッケージ削除時に削除を実施するため、(B<-"
+"n> が使われてない限り) メンテナスクリプトのスニペットで置換します。これらのス"
+"ニペットは B<dh_installdeb> により、メンテナスクリプトへ挿入されます。"
+"debhelper のメンテナスクリプトのスニペットに関する説明については、"
+"L<dh_installdeb(1)> を参照して下さい。"
+
+#. type: textblock
+#: dh_usrlocal:36
+msgid ""
+"When the I<DEB_RULES_REQUIRES_ROOT> environment variable is not "
+"(effectively) I<binary-targets>, the directories in F</usr/local> will be "
+"handled as if they were owned by root:root (see below)."
+msgstr ""
+
+#. type: textblock
+#: dh_usrlocal:40
+msgid ""
+"When the I<DEB_RULES_REQUIRES_ROOT> environment variable has an effective "
+"value of I<binary-targets>, the owners, groups and permissions will be "
+"preserved with the sole exception where the directory is owned by root:root."
+msgstr ""
+
+#. type: textblock
+#: dh_usrlocal:44
+msgid ""
+"If a directory is owned by root:root, then ownership will be determined at "
+"install time. The ownership and permission bits will either be root:root "
+"mode 0755 or root:staff mode 02775. The actual choice depends on whether "
+"the system has F</etc/staff-group-for-usr-local> (as documented in the "
+"Debian Policy Manual §9.1.2 since version 4.1.4)"
+msgstr ""
+
+#. type: textblock
+#: dh_usrlocal:68
+msgid "Debian policy, version 2.2"
+msgstr "Debian ポリシー バージョン 2.2"
+
+#. type: textblock
+#: dh_usrlocal:144
+msgid "Andrew Stribblehill <ads@debian.org>"
+msgstr "Andrew Stribblehill <ads@debian.org>"
+
+#. type: textblock
+#: dh_systemd_enable:5
+msgid "dh_systemd_enable - enable/disable systemd unit files"
+msgstr "dh_systemd_enable - systemd unit ファイルを有効/無効にする"
+
+#. type: textblock
+#: dh_systemd_enable:18
+msgid ""
+"B<dh_systemd_enable> [S<I<debhelper options>>] [B<--no-enable>] [B<--"
+"name=>I<name>] [S<I<unit file> ...>]"
+msgstr ""
+"B<dh_systemd_enable> [S<I<debhelper オプション>>] [B<--no-enable>] [B<--"
+"name=>I<name>] [S<I<unit ファイル> ...>]"
+
+#. type: textblock
+#: dh_systemd_enable:22
+msgid ""
+"B<dh_systemd_enable> is a debhelper program that is responsible for enabling "
+"and disabling systemd unit files."
+msgstr ""
+"B<dh_systemd_enable> は systemd ユニットファイルの有効化・無効化を担当する "
+"debhelper プログラムです。"
+
+#. type: textblock
+#: dh_systemd_enable:25
+#, fuzzy
+msgid ""
+"In the simple case, it finds all unit files installed by a package (e.g. "
+"bacula-fd.service) and enables them. It is not necessary that the machine "
+"actually runs systemd during package installation time, enabling happens on "
+"all machines in order to be able to switch from sysvinit to systemd and back."
+msgstr ""
+"シンプルな場合には、パッケージによってインストールされた全ての unit ファイル "
+"(例: bacula-fd.service) を探して有効にします。sysvinit から systemd へスイッ"
+"チする、あるいは戻すことができるように"
+
+#. type: textblock
+#: dh_systemd_enable:30
+msgid ""
+"In the complex case, you can call B<dh_systemd_enable> and "
+"B<dh_systemd_start> manually (by overwriting the debian/rules targets) and "
+"specify flags per unit file. An example is colord, which ships colord."
+"service, a dbus-activated service without an [Install] section. This service "
+"file cannot be enabled or disabled (a state called \"static\" by systemd) "
+"because it has no [Install] section. Therefore, running dh_systemd_enable "
+"does not make sense."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:37
+msgid ""
+"For only generating blocks for specific service files, you need to pass them "
+"as arguments, e.g. B<dh_systemd_enable quota.service> and "
+"B<dh_systemd_enable --name=quotarpc quotarpc.service>."
+msgstr ""
+
+#. type: =item
+#: dh_systemd_enable:45
+#, fuzzy
+#| msgid "debian/I<package>.logcheck.ignore.server"
+msgid "debian/I<package>.service, debian/I<package>@.service"
+msgstr "debian/I<package>.logcheck.ignore.server"
+
+#. type: textblock
+#: dh_systemd_enable:47
+#, fuzzy
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"service >> (or F<< lib/systemd/system/I<package>@.service >>) in the package "
+"build directory."
+msgstr ""
+"もし本ファイルが存在すれば、パッケージビルドディレクトリ以下に etc/init/"
+"I<package>.conf ファイルとしてインストールされます。"
+
+#. type: textblock
+#: dh_systemd_enable:52
+#, fuzzy
+#| msgid ""
+#| "If this exists, it is installed into etc/init.d/I<package> in the package "
+#| "build directory."
+msgid ""
+"If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in "
+"the package build directory."
+msgstr ""
+"もし本ファイルが存在すれば、パッケージビルドディレクトリ以下の etc/init/"
+"I<package> ディレクトリにインストールされます。"
+
+#. type: =item
+#: dh_systemd_enable:55
+#, fuzzy
+#| msgid "debian/I<package>.manpages"
+msgid "debian/I<package>.target, debian/I<package>@.target"
+msgstr "debian/I<package>.manpages"
+
+#. type: textblock
+#: dh_systemd_enable:57
+#, fuzzy
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"target >> (or F<< lib/systemd/system/I<package>@.target >>) in the package "
+"build directory."
+msgstr ""
+"もし本ファイルが存在すれば、パッケージビルドディレクトリ以下に etc/init/"
+"I<package>.conf ファイルとしてインストールされます。"
+
+#. type: =item
+#: dh_systemd_enable:60
+#, fuzzy
+#| msgid "debian/I<package>.manpages"
+msgid "debian/I<package>.socket, debian/I<package>@.socket"
+msgstr "debian/I<package>.manpages"
+
+#. type: textblock
+#: dh_systemd_enable:62
+#, fuzzy
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"socket >> (or F<< lib/systemd/system/I<package>@.socket >>) in the package "
+"build directory."
+msgstr ""
+"もし本ファイルが存在すれば、パッケージビルドディレクトリ以下に etc/init/"
+"I<package>.conf ファイルとしてインストールされます。"
+
+#. type: =item
+#: dh_systemd_enable:65
+#, fuzzy
+#| msgid "debian/I<package>.menu"
+msgid "debian/I<package>.mount"
+msgstr "debian/I<package>.menu"
+
+#. type: textblock
+#: dh_systemd_enable:67
+#, fuzzy
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.mount "
+">> in the package build directory."
+msgstr ""
+"もし本ファイルが存在すれば、パッケージビルドディレクトリ以下に etc/init/"
+"I<package>.conf ファイルとしてインストールされます。"
+
+#. type: =item
+#: dh_systemd_enable:70
+#, fuzzy
+#| msgid "debian/I<package>.manpages"
+msgid "debian/I<package>.path, debian/I<package>@.path"
+msgstr "debian/I<package>.manpages"
+
+#. type: textblock
+#: dh_systemd_enable:72
+#, fuzzy
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.path "
+">> (or F<< lib/systemd/system/I<package>@.path >>) in the package build "
+"directory."
+msgstr ""
+"もし本ファイルが存在すれば、パッケージビルドディレクトリ以下に etc/init/"
+"I<package>.conf ファイルとしてインストールされます。"
+
+#. type: =item
+#: dh_systemd_enable:75
+#, fuzzy
+#| msgid "debian/I<package>.manpages"
+msgid "debian/I<package>.timer, debian/I<package>@.timer"
+msgstr "debian/I<package>.manpages"
+
+#. type: textblock
+#: dh_systemd_enable:77
+#, fuzzy
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.timer "
+">> (or F<< lib/systemd/system/I<package>@.timer >>) in the package build "
+"directory."
+msgstr ""
+"もし本ファイルが存在すれば、パッケージビルドディレクトリ以下に etc/init/"
+"I<package>.conf ファイルとしてインストールされます。"
+
+#. type: textblock
+#: dh_systemd_enable:88
+#, fuzzy
+msgid "Disable the service(s) on purge, but do not enable them on install."
+msgstr ""
+"完全削除 (purge) の際にサービスを無効にしますが、デフォルトでは有効にしませ"
+"ん。"
+
+#. type: textblock
+#: dh_systemd_enable:90
+msgid ""
+"B<Note> that this option does not affect whether the services are started. "
+"That is controlled by L<dh_systemd_start(1)> (using e.g. its B<--no-start> "
+"option)."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:96
+#, fuzzy
+msgid ""
+"Install the service file as I<name.service> instead of the default filename, "
+"which is the I<package.service>. When this parameter is used, "
+"B<dh_systemd_enable> looks for and installs files named F<debian/package."
+"name.service> instead of the usual F<debian/package.service>."
+msgstr ""
+"パッケージ名の代わりに、I<name> をファイル名とするファイルを、upstart 用 job "
+"ファイルや、init スクリプト (あるいはデフォルトのファイル) として利用します。"
+"このパラメータが利用されると、B<dh_installinit> は F<debian/package.name."
+"upstart>、F<debian/package.name.init>、F<debian/package.name.default> を探"
+"し、インストールを行います。この場合、通常使われる F<debian/package."
+"upstart>、F<debian/package.init>、F<debian/package.default> は利用されませ"
+"ん。"
+
+#. type: textblock
+#: dh_systemd_enable:105 dh_systemd_start:70
+msgid ""
+"Note that 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."
+msgstr ""
+"このコマンドには冪等性がありません。このコマンドを複数回呼び出す際には必ず間"
+"に L<dh_prep(1)> を (同じ引数を付けて) 挿入してください。さもないと、メンテナ"
+"スクリプト中に同じ内容のコードを繰り返し挿入してしまいます。"
+
+#. type: textblock
+#: dh_systemd_enable:110
+msgid ""
+"Note that B<dh_systemd_enable> should be run before B<dh_installinit>. The "
+"default sequence in B<dh> does the right thing, this note is only relevant "
+"when you are calling B<dh_systemd_enable> manually."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_enable:282
+msgid "L<dh_systemd_start(1)>, L<debhelper(7)>"
+msgstr "L<dh_systemd_start(1)>, L<debhelper(7)>"
+
+#. type: textblock
+#: dh_systemd_enable:286 dh_systemd_start:286
+msgid "pkg-systemd-maintainers@lists.alioth.debian.org"
+msgstr "pkg-systemd-maintainers@lists.alioth.debian.org"
+
+#. type: textblock
+#: dh_systemd_start:5
+msgid "dh_systemd_start - start/stop/restart systemd unit files"
+msgstr "dh_systemd_start - systemd ユニットファイルを start/stop/restart する"
+
+#. type: textblock
+#: dh_systemd_start:19
+msgid ""
+"B<dh_systemd_start> [S<I<debhelper options>>] [B<--restart-after-upgrade>] "
+"[B<--no-stop-on-upgrade>] [S<I<unit file> ...>]"
+msgstr ""
+"B<dh_systemd_start> [S<I<debhelper オプション>>] [B<--restart-after-"
+"upgrade>] [B<--no-stop-on-upgrade>] [S<I<unit ファイル> ...>]"
+
+#. type: textblock
+#: dh_systemd_start:23
+msgid ""
+"B<dh_systemd_start> is a debhelper program that is responsible for starting/"
+"stopping or restarting systemd unit files in case no corresponding sysv init "
+"script is available."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_start:27
+msgid ""
+"As with B<dh_installinit>, the unit file is stopped before upgrades and "
+"started afterwards (unless B<--restart-after-upgrade> is specified, in which "
+"case it will only be restarted after the upgrade). This logic is not used "
+"when there is a corresponding SysV init script because invoke-rc.d performs "
+"the stop/start/restart in that case."
+msgstr ""
+
+#. type: =item
+#: dh_systemd_start:37
+msgid "B<--restart-after-upgrade>"
+msgstr "B<--restart-after-upgrade>"
+
+#. type: textblock
+#: dh_systemd_start:39
+#, fuzzy
+msgid ""
+"Do not stop the unit file until after the package upgrade has been "
+"completed. This is the default behaviour in compat 10."
+msgstr ""
+"パッケージのアップグレードが完了するまで init スクリプトの stop 手続きを呼び"
+"出さないようにします。これはこのコマンドについて、デフォルトの振る舞いとは異"
+"なります。通常は、F<prerm> にて stop 手続きが呼ばれ、F<postinst> が start 手"
+"続きを再び呼び出します。"
+
+#. type: textblock
+#: dh_systemd_start:42
+#, fuzzy
+msgid ""
+"In earlier compat levels the default was to stop the unit file in the "
+"F<prerm>, and start it again in the F<postinst>."
+msgstr ""
+"パッケージのアップグレードが完了するまで init スクリプトの stop 手続きを呼び"
+"出さないようにします。これはこのコマンドについて、デフォルトの振る舞いとは異"
+"なります。通常は、F<prerm> にて stop 手続きが呼ばれ、F<postinst> が start 手"
+"続きを再び呼び出します。"
+
+#. type: textblock
+#: dh_systemd_start:59
+msgid "Do not stop service on upgrade."
+msgstr "サービスをアップグレード中に停止させません。"
+
+#. type: textblock
+#: dh_systemd_start:63
+msgid ""
+"Do not start the unit file after upgrades and after initial installation "
+"(the latter is only relevant for services without a corresponding init "
+"script)."
+msgstr ""
+
+#. type: textblock
+#: dh_systemd_start:75
+msgid ""
+"Note that B<dh_systemd_start> should be run after B<dh_installinit> so that "
+"it can detect corresponding SysV init scripts. The default sequence in B<dh> "
+"does the right thing, this note is only relevant when you are calling "
+"B<dh_systemd_start> manually."
+msgstr ""
+
+#. type: textblock
+#: strings-kept-translations.pod:7
+msgid "This compatibility level is open for beta testing; changes may occur."
+msgstr "この互換性レベルはベータテスト中です。変更が加わります。"
+
+#~ 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 ""
+#~ "B<1> を指定すると冗長出力モードになります。debhelper は動作する全てのコマ"
+#~ "ンドについて出力を行うようになります。また、autoconf のようなビルドシステ"
+#~ "ムについても冗長出力されたビルドログを有効にします。"
+
+#, fuzzy
+#~ msgid ""
+#~ "If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf "
+#~ "in the package build directory. (The tmpfiles.d mechanism is currently "
+#~ "only used by systemd.) Only used in compat levels 10 and below."
+#~ msgstr ""
+#~ "もし本ファイルが存在すれば、パッケージビルドディレクトリ以下に etc/init/"
+#~ "I<package>.conf ファイルとしてインストールされます。"
+
+#, fuzzy
+#~ msgid ""
+#~ "If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf "
+#~ "in the package build directory. (The tmpfiles.d mechanism is currently "
+#~ "only used by systemd.)"
+#~ msgstr ""
+#~ "もし本ファイルが存在すれば、パッケージビルドディレクトリ以下に etc/init/"
+#~ "I<package>.conf ファイルとしてインストールされます。"
+
+#, 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 - GConf デフォルトファイルをインストールし、スキーマに登録する"
+
+#~ msgid "B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>]"
+#~ msgstr "B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>]"
+
+#~ msgid ""
+#~ "B<dh_gconf> is a debhelper program that is responsible for installing "
+#~ "GConf defaults files and registering GConf schemas."
+#~ msgstr ""
+#~ "B<dh_gconf> は GConf 用デフォルトファイルをインストールし、GConf スキーマ"
+#~ "に登録する役割を担う debhelper プログラムです。"
+
+#~ msgid ""
+#~ "An appropriate dependency on gconf2 will be generated in B<${misc:Depends}"
+#~ ">."
+#~ msgstr "gconf2 に関する適切な依存関係が B<${misc:Depends}> に生成されます。"
+
+#~ msgid "debian/I<package>.gconf-defaults"
+#~ msgstr "debian/I<package>.gconf-defaults"
+
+#~ msgid ""
+#~ "Installed into F<usr/share/gconf/defaults/10_package> in the package "
+#~ "build directory, with I<package> replaced by the package name."
+#~ msgstr ""
+#~ "パッケージビルドディレクトリにある F<usr/share/gconf/defaults/10_package> "
+#~ "へインストールが行われます。なお、I<package> はパッケージ名で置き換えられ"
+#~ "ます。"
+
+#~ msgid "debian/I<package>.gconf-mandatory"
+#~ msgstr "debian/I<package>.gconf-mandatory"
+
+#~ msgid ""
+#~ "Installed into F<usr/share/gconf/mandatory/10_package> in the package "
+#~ "build directory, with I<package> replaced by the package name."
+#~ msgstr ""
+#~ "パッケージビルドディレクトリにある F<usr/share/gconf/"
+#~ "mandatory/10_package> にインストールされます。なお、I<package> はパッケー"
+#~ "ジ名で置き換えられます。"
+
+#~ msgid "B<--priority> I<priority>"
+#~ msgstr "B<--priority> I<priority>"
+
+#~ msgid ""
+#~ "Use I<priority> (which should be a 2-digit number) as the defaults "
+#~ "priority instead of B<10>. Higher values than ten can be used by derived "
+#~ "distributions (B<20>), CDD distributions (B<50>), or site-specific "
+#~ "packages (B<90>)."
+#~ msgstr ""
+#~ "I<priority> (これは2桁の数字である必要があります) をデフォルトの優先順位で"
+#~ "ある B<10> の代わりに利用します。用途によっては 10 より大きな値を利用する"
+#~ "ことができます。例えば、派生ディストリビューションの場合 (B<20>)、CDD ディ"
+#~ "ストリビューション (B<50>)、あるいはサイト独自のパッケージ (B<90>) となり"
+#~ "ます。"
+
+#~ msgid "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
+#~ msgstr "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
+
+#~ msgid ""
+#~ "B<dh_clean> should be the last debhelper command run in the B<clean> "
+#~ "target in F<debian/rules>."
+#~ msgstr ""
+#~ "B<dh_clean> は F<debian/rules> の B<clean> ターゲットで実行される一番最後"
+#~ "の debhelper コマンドであるべきです。"
+
+#~ msgid ""
+#~ "If there is an upstream F<changelog> file, it will be installed as F<usr/"
+#~ "share/doc/package/changelog> in the package build directory."
+#~ msgstr ""
+#~ "開発元 (upstream) の F<changelog> ファイルがある場合、パッケージビルドディ"
+#~ "レクトリ中に F<usr/share/doc/package/changelog> としてインストールされま"
+#~ "す。"
+
+#~ msgid "B<--ignore=>I<file>"
+#~ msgstr "B<--ignore=>I<file>"
+
+#~ msgid ""
+#~ "Ignore the specified file. This can be used if F<debian/> contains a "
+#~ "debhelper config file that a debhelper command should not act on. Note "
+#~ "that F<debian/compat>, F<debian/control>, and F<debian/changelog> can't "
+#~ "be ignored, but then, there should never be a reason to ignore those "
+#~ "files."
+#~ msgstr ""
+#~ "特定のファイルを無視します。F<debian/> 以下に実際には debhelper コマンドが"
+#~ "実行しては困るような debhelper 設定ファイルがあるような時に利用できます。"
+#~ "ただ、F<debian/compat>, F<debian/control>, F<debian/changelog> は無視する"
+#~ "事ができません。これは動作の都合上、これらのファイルを無視するわけにはいか"
+#~ "ないからです。"
+
+#~ msgid ""
+#~ "For example, if upstream ships a F<debian/init> that you don't want "
+#~ "B<dh_installinit> to install, use B<--ignore=debian/init>"
+#~ msgstr ""
+#~ "例えば、開発元 (upstream) が F<debian/init> を提供しているが "
+#~ "B<dh_installinit> でインストールして欲しくは無い場合、B<--ignore=debian/"
+#~ "init> を使うことになります。"
+
+#~ msgid ""
+#~ "Anything in this variable will be prepended to the command line arguments "
+#~ "of all debhelper commands."
+#~ msgstr ""
+#~ "この環境変数に指定したものは、すべての debhelper コマンドの末尾に指定され"
+#~ "るようになります。"
+
+#~ msgid ""
+#~ "\toverride_dh_fixperms-arch:\n"
+#~ "\t\tdh_fixperms\n"
+#~ "\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\toverride_dh_fixperms-arch:\n"
+#~ "\t\tdh_fixperms\n"
+#~ "\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+#~ "\n"
+
+#, 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 ""
+#~ "スクリプト中の B<#DEBHELPER#> の文言は、他の debhelper コマンドが生成する"
+#~ "シェルスクリプトのスニペットで置き換えられます。"
+
+#~ msgid "DEPRECATED OPTIONS"
+#~ msgstr "廃止されたオプション"
+
+#~ msgid ""
+#~ "The following options are deprecated. It's much better to use override "
+#~ "targets instead. They are B<not> available in compat 10."
+#~ msgstr ""
+#~ "以下のオプションは廃止されました。代わりに override ターゲットを使う事を強"
+#~ "く推奨します。互換性レベル 10 では利用B<できません>。"
+
+#~ msgid "B<--until> I<cmd>"
+#~ msgstr "B<--until> I<cmd>"
+
+#~ msgid "Run commands in the sequence until and including I<cmd>, then stop."
+#~ msgstr ""
+#~ "処理中、I<cmd> で指定されたコマンドに遭遇するまで実行し、最後に I<cmd> を"
+#~ "実行して停止します。"
+
+#~ msgid "B<--before> I<cmd>"
+#~ msgstr "B<--before> I<cmd>"
+
+#~ msgid "Run commands in the sequence before I<cmd>, then stop."
+#~ msgstr "I<cmd> で指定されたコマンドまで実行して停止します。"
+
+#~ msgid "B<--after> I<cmd>"
+#~ msgstr "B<--after> I<cmd>"
+
+#~ msgid "Run commands in the sequence that come after I<cmd>."
+#~ msgstr "I<cmd> で指定されたコマンドに続いて一連のコマンドを実行します。"
+
+#~ msgid "B<--remaining>"
+#~ msgstr "B<--remaining>"
+
+#~ msgid "Run all commands in the sequence that have yet to be run."
+#~ msgstr "一連の処理のうち、未だ実行していないコマンドを実行します。"
+
+#~ 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 ""
+#~ "以上のオプションでは、I<cmd> は debhelper コマンドの完全な名前を指定する"
+#~ "か、その一部の名前を指定することになります。あいまいさを排除するため、最初"
+#~ "に完全な名前で検索が行われます。名前が名前の一部で指定の場合に、複数の候補"
+#~ "が見つかることがありますが、その場合は処理の一連の流れの中で一番最後に見つ"
+#~ "かったものが利用されます。"
+
+#, fuzzy
+#~| msgid "dh - debhelper command sequencer"
+#~ msgid "The debhelper maintainers."
+#~ msgstr "dh - 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"
+
+#~ 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 ""
+#~ "パッケージは、利用する互換性レベルと同じ (あるいはそれ以上) のバージョン"
+#~ "の debhelper プログラムをビルド依存として設定する必要があります。互換性レ"
+#~ "ベル #RECOMMENDED_COMPAT# の場合、debian/control ファイルが以下の様になっ"
+#~ "ていることを確認してください:"
+
+#~ msgid "This control file will be installed into the F<DEBIAN> directory."
+#~ msgstr ""
+#~ "この control ファイルは F<DEBIAN> ディレクトリ以下にインストールされます。"
+
+#~ 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 ""
+#~ "互換性レベルが v3 以上の場合、パッケージ内の F<etc/> 以下の全ファイルは、"
+#~ "このプログラムにより conffile として自動的にフラグがつけらます。その為、い"
+#~ "ちいち自分で列挙する必要はありません。"
+
+#~ 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, "
+#~ "you can make the file executable, and write a program that outputs "
+#~ "whatever content is appropriate for a given situation. When you do so, "
+#~ "the output is not further processed to expand wildcards or strip comments."
+#~ msgstr ""
+#~ "これらファイルの文法は、読解・修正しやすいよう、意図的にシンプルにしてあり"
+#~ "ます。もし、さらに強力で複雑な事をしたければ、これらのファイルに実行権限を"
+#~ "付与し、状況にあった出力をするプログラムを作成してください。ただし、この場"
+#~ "合の出力結果では、後の処理でワイルドカードは展開されず、コメントも取り除か"
+#~ "れない事に気をつけてください。"
+
+#~ msgid "B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [S<I<dir> ...>]"
+#~ msgstr "B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [S<I<dir> ...>]"
+
+#~ msgid ""
+#~ "By default, the shlibs file generated by this program does not make "
+#~ "packages depend on any particular version of the package containing the "
+#~ "shared library. It may be necessary for you to add some version "
+#~ "dependency information to the shlibs file. If B<-V> is specified with no "
+#~ "dependency information, the current upstream version of the package is "
+#~ "plugged into a dependency that looks like \"I<packagename> B<(E<gt>>= "
+#~ "I<packageversion>B<)>\". Note that in debhelper compatibility levels "
+#~ "before v4, the Debian part of the package version number is also "
+#~ "included. If B<-V> is specified with parameters, the parameters can be "
+#~ "used to specify the exact dependency information needed (be sure to "
+#~ "include the package name)."
+#~ msgstr ""
+#~ "デフォルトでは、本プログラムにより生成される shlibs ファイルは、共有ライブ"
+#~ "ラリを含むパッケージの特定のバージョンに依存することが無いようにします。こ"
+#~ "れはshlibsファイルにバージョンに関する依存情報をパッケージ作成者により追加"
+#~ "する必要があるという事です。B<-V>が依存関係の情報無しで用いられると、アッ"
+#~ "プストリームのバージョン情報が \"I<packagename> "
+#~ "B<(E<gt>>=I<packageversion>B<)>\" の形式で依存関係へ挿入されます。"
+#~ "debhelper の互換性レベルが v4 未満の場合、パッケージのバージョン番号のう"
+#~ "ち Debian のバージョンを示す部分も、この依存関係の情報として含まれます。"
+#~ "B<-V> がパラメータと共に指定されると、このパラメータは後に必要とされる (ま"
+#~ "た、パッケージの名前として確実に含まれるように) 正確なバージョン依存情報と"
+#~ "して扱われます。"
+
+#~ msgid "B<dh_makeshlibs>"
+#~ msgstr "B<dh_makeshlibs>"
+
+#~ msgid ""
+#~ "Note for the first (or only) binary package listed in F<debian/control>, "
+#~ "debhelper will use F<debian/foo> when there's no F<debian/package.foo> "
+#~ "file."
+#~ msgstr ""
+#~ "F<debian/control> に記載されている最初の (あるいは唯一の) バイナリパッケー"
+#~ "ジは、debhelper は F<debian/package.foo> ファイルが無い場合には F<debian/"
+#~ "foo> ファイルを利用します。"
+
+#, fuzzy
+#~| msgid ""
+#~| "If the directories found in the build tree have unusual owners, groups, "
+#~| "or permissions, then those values will be preserved in the directories "
+#~| "made by the F<postinst> script. However, as a special exception, if a "
+#~| "directory is owned by root.root, it will be treated as if it is owned by "
+#~| "root.staff and is mode 2775. This is useful, since that is the group and "
+#~| "mode policy recommends for directories in F</usr/local>."
+#~ msgid ""
+#~ "When I<Rules-Requires-Root> has an effective value of I<binary-targets>, "
+#~ "the owners, groups and permissions will be preserved with one exception. "
+#~ "If the directory is owned by root:root, then ownership will be reset to "
+#~ "root:staff and mode will be reset to 02775. This is useful, since that is "
+#~ "the group and mode policy recommends for directories in F</usr/local>."
+#~ msgstr ""
+#~ "パッケージビルドツリー以下に通常ではない所有者、グループ、パーミッションを"
+#~ "持つサブディレクトリが存在すると、これらの情報は保存され、F<postinst> スク"
+#~ "リプトによって後で反映されます。しかしながら、特別な例外として、ディレクト"
+#~ "リが root.root のユーザ・グループとなっている場合、ユーザ・グループは "
+#~ "root.staff で、パーミッションは 2775 であるものとして扱われます。これは "
+#~ "F</usr/local> 以下のディレクトリを扱うのに都合が良い為です。"
+
+#~ msgid ""
+#~ "Please keep in mind that dh_install will B<not> expand wildcards in this "
+#~ "file."
+#~ msgstr ""
+#~ "dh_install は、このファイル内でワイルドカードをB<展開しない>点に注意して下"
+#~ "さい。"
+
+#~ msgid ""
+#~ "This option makes B<dh_install> keep track of the files it installs, and "
+#~ "then at the end, compare that list with the files in the source "
+#~ "directory. If any of the files (and symlinks) in the source directory "
+#~ "were not installed to somewhere, it will warn on stderr about that."
+#~ msgstr ""
+#~ "このオプションにより、B<dh_install> はインストールするファイル群を記録し、"
+#~ "そして最後にソースディレクトリにあるファイルの一覧と比較します。もし、ソー"
+#~ "スファイル中のファイル (もしくはシンボリックリンク) でインストールされてい"
+#~ "ないものが発見されると、警告を標準エラー出力に表示します。"
+
+#~ msgid ""
+#~ "This may be useful if you have a large package and want to make sure that "
+#~ "you don't miss installing newly added files in new upstream releases."
+#~ msgstr ""
+#~ "このオプションは大きなパッケージをつくろうとしていたり、開発元 (upstream) "
+#~ "の新しいリリースにて新たに増えたファイルをインストールし忘れないようにする"
+#~ "時に便利です。"
+
+#~ msgid ""
+#~ "Note that files that are excluded from being moved via the B<-X> option "
+#~ "are not warned about."
+#~ msgstr ""
+#~ "B<-X> オプションで除外したファイルは警告対象から除外される事にご注意くださ"
+#~ "い。"
+
+#~ msgid ""
+#~ "This option is like B<--list-missing>, except if a file was missed, it "
+#~ "will not only list the missing files, but also fail with a nonzero exit "
+#~ "code."
+#~ msgstr ""
+#~ "このオプションは B<--list-missing> と同じようなものですが、ファイルがイン"
+#~ "ストールされていないものがあるのを発見すると、そのファイルを列挙して教えて"
+#~ "くれるだけでなく、終了コードとして 0 以外を返して処理を失敗します。"
+
+#~ msgid "Participating in the open beta testing of new compat levels"
+#~ msgstr "新しい互換性レベルの公開ベータテストに参加する"
+
+#~ msgid ""
+#~ "It is possible to opt-in to the open beta testing of new compat levels. "
+#~ "This is done by setting the compat level to the string \"beta-tester\"."
+#~ msgstr ""
+#~ "新しい互換性レベルの公開ベータテストに参加することができます。これは、互換"
+#~ "性レベルを \"beta-tester\" という文字に設定することで実施します。"
+
+#~ msgid ""
+#~ "Packages using this compat level will automatically be upgraded to the "
+#~ "highest compatibility level in open beta. In periods without any open "
+#~ "beta versions, the compat level will be the highest stable compatibility "
+#~ "level."
+#~ msgstr ""
+#~ "この互換性レベルを使うパッケージは、公開ベータ状態にある最も高い互換性レベ"
+#~ "ルに自動的にアップグレードされます。公開ベータバージョンが存在しない期間で"
+#~ "は、互換性レベルは最も高い安定版互換性レベルになります。"
+
+#~ msgid "Please consider the following before opting in:"
+#~ msgstr "受け入れ前に以下の事柄を検討して下さい:"
+
+#~ msgid ""
+#~ "The automatic upgrade in compatibility level may cause the package (or a "
+#~ "feature in it) to stop functioning."
+#~ msgstr ""
+#~ "互換性レベルの自動アップグレードはパッケージ (あるいはパッケージの一部機"
+#~ "能) が動作しなくなる可能性があります。"
+
+#~ msgid ""
+#~ "Compatibility levels in open beta are still subject to change. We will "
+#~ "try to keep the changes to a minimal once the beta starts. However, "
+#~ "there are no guarantees that the compat will not change during the beta."
+#~ msgstr ""
+#~ "公開ベータ状態の互換性レベルは、依然として変更される可能性があります。ベー"
+#~ "タ開始後は変更を最小限に留めるようにします。ですが、ベータ期間中に互換性が"
+#~ "変わらないことの保証はありません。"
+
+#, fuzzy
+#~| msgid ""
+#~| "We will notify you via debian-devel@lists.debian.org before we start a "
+#~| "new open beta compat level. However, once the beta starts we expect "
+#~| "that you keep yourself up to date on changes to debhelper."
+#~ msgid ""
+#~ "We will notify you via debian-devel-announce@lists.debian.org or debian-"
+#~ "devel@lists.debian.org before we start a new open beta compat level. "
+#~ "However, once the beta starts we expect that you keep yourself up to date "
+#~ "on changes to debhelper for that compat level."
+#~ msgstr ""
+#~ "互換性レベルの新たな公開ベータを始める前に debian-devel@lists.debian.org "
+#~ "で通知します。ですが、一旦ベータテストが始まったら、debhelper の変更へ追随"
+#~ "することが期待されます。"
+
+#, fuzzy
+#~| msgid ""
+#~| "The \"beta-tester\" compatibility version in unstable and testing will "
+#~| "often be different than the one in stable-backports. Accordingly, it is "
+#~| "not recommended for packages being backported regularly."
+#~ msgid ""
+#~ "The \"beta-tester\" compatibility version in unstable and testing will "
+#~ "often be different than the one in stable. Accordingly, it is not "
+#~ "recommended for packages being backported regularly. Alternatively, "
+#~ "please be sure to add explicit versioned Build-Depends on debhelper, so "
+#~ "you get exactly the compatibility version you expect."
+#~ msgstr ""
+#~ "不安定版及びテスト版にある \"beta-tester\" 互換性バージョンは、しばしば "
+#~ "stable-backports のものとは異なります。従って、定期的にバックポートするの"
+#~ "は推奨されません。"
+
+#~ msgid ""
+#~ "You can always opt-out of the beta by resetting the compatibility level "
+#~ "of your package to a stable version."
+#~ msgstr ""
+#~ "パッケージの互換性レベルを安定版バージョンに戻せば、いつでもベータを辞める"
+#~ "ことが可能です。"
+
+#~ msgid "Should you still be interested in the open beta testing, please run:"
+#~ msgstr "公開ベータテストに興味がまだある場合は、以下を実行して下さい:"
+
+#~ msgid ""
+#~ " % echo beta-tester > debian/compat\n"
+#~ "\n"
+#~ msgstr ""
+#~ " % echo beta-tester > debian/compat\n"
+#~ "\n"
+
+#~ msgid "You will also need to ensure that debian/control contains:"
+#~ msgstr "debian/control が以下を含むことを確認する必要もあります:"
+
+#~ msgid ""
+#~ " Build-Depends: debhelper (>= 9.20160815~)\n"
+#~ "\n"
+#~ msgstr ""
+#~ " Build-Depends: debhelper (>= 9.20160815~)\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "To ensure that debhelper knows about the \"beta-tester\" compat level."
+#~ msgstr ""
+#~ "debhelper が \"beta-tester\" 互換性レベルを理解するのを保証するためです。"
+
+#~ msgid "This can be used without a F<debian/compat> file."
+#~ msgstr "これは F<debian/compat> ファイル無しで利用できます。"
+
+#~ msgid ""
+#~ "B<dh_testroot> simply checks to see if you are root. If not, it exits "
+#~ "with an error. Debian packages must be built as root, though you can use "
+#~ "L<fakeroot(1)>"
+#~ msgstr ""
+#~ "B<dh_testroot> は単に、root 権限でパッケージをビルドしようとしているかどう"
+#~ "かを確かめます。もし root 権限を持っていなければ、戻り値にエラー値を指定し"
+#~ "て処理を終わります。debian パッケージは root 権限でビルドされなければいけ"
+#~ "ません。もし root 権限でビルドできないのであれば、L<fakeroot(1)> を利用し"
+#~ "てください。"
+
+#~ msgid ""
+#~ "B<dh_installmenu> no longer installs F<menu> files. The F<menu-method> "
+#~ "files are still installed."
+#~ msgstr ""
+#~ "B<dh_installmenu> は F<menu> ファイルをインストールしなくなりました。まだ "
+#~ "F<menu-method> ファイルはインストールされます。"
+
+#~ msgid ""
+#~ "B<dh_installdocs> now installs user-supplied documentation (e.g. debian/"
+#~ "I<package>.docs) into F</usr/share/doc/mainpackage> rather than F</usr/"
+#~ "share/doc/package> by default as recommended by Debian Policy 3.9.7."
+#~ msgstr ""
+#~ "B<dh_installdocs> は、Debian ポリシー 3.9.7 の勧めに従って、ユーザーが提供"
+#~ "するドキュメントを、デフォルトでは F</usr/share/doc/package> ではなく F</"
+#~ "usr/share/doc/mainpackage> にインストールするようになりました。"
+
+#~ msgid ""
+#~ "If you need the old behaviour, it can be emulated by using the B<--"
+#~ "mainpackage> option."
+#~ msgstr ""
+#~ "以前の振る舞いが必要な場合、B<--mainpackage> オプションを使ってエミュレー"
+#~ "ションすることができます。"
+
+#~ msgid "Please remember to check/update your doc-base files."
+#~ msgstr "doc-base ファイルの確認と更新を忘れないで下さい。"
+
+#~ msgid "Do not stop init script on upgrade."
+#~ msgstr "init スクリプトをアップグレード中には停止させません。"
diff --git a/man/po4a/po/pt.po b/man/po4a/po/pt.po
index a6007bee..211f49fb 100644
--- a/man/po4a/po/pt.po
+++ b/man/po4a/po/pt.po
@@ -2,93 +2,96 @@
# Copyright (C) 2014 The debhelper's copyright holder.
# This file is distributed under the same license as the debhelper package.
#
-# Américo Monteiro <a_monteiro@gmx.com>, 2014.
+# Américo Monteiro <a_monteiro@gmx.com>, 2014 - 2023.
msgid ""
msgstr ""
-"Project-Id-Version: debhelper 9.20131227\n"
+"Project-Id-Version: debhelper 13.11.4\n"
"Report-Msgid-Bugs-To: debhelper@packages.debian.org\n"
-"POT-Creation-Date: 2014-10-03 15:16-0400\n"
-"PO-Revision-Date: 2014-08-13 17:54+0100\n"
+"POT-Creation-Date: 2023-08-14 19:10+0000\n"
+"PO-Revision-Date: 2023-01-07 22:34+0000\n"
"Last-Translator: Américo Monteiro <a_monteiro@gmx.com>\n"
-"Language-Team: Portuguese <traduz@debianpt.org>\n"
+"Language-Team: Portuguese <>\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Lokalize 1.4\n"
+"X-Generator: Lokalize 20.12.0\n"
#. type: =head1
-#: debhelper.pod:1 dh:3 dh_auto_build:3 dh_auto_clean:3 dh_auto_configure:3
-#: dh_auto_install:3 dh_auto_test:3 dh_bugfiles:3 dh_builddeb:3 dh_clean:3
-#: dh_compress:3 dh_desktop:3 dh_fixperms:3 dh_gconf:3 dh_gencontrol:3
-#: dh_icons:3 dh_install:3 dh_installcatalogs:3 dh_installchangelogs:3
-#: dh_installcron:3 dh_installdeb:3 dh_installdebconf:3 dh_installdirs:3
-#: dh_installdocs:3 dh_installemacsen:3 dh_installexamples:3
-#: dh_installifupdown:3 dh_installinfo:3 dh_installinit:3 dh_installlogcheck:3
-#: dh_installlogrotate:3 dh_installman:3 dh_installmanpages:3 dh_installmenu:3
-#: dh_installmime:3 dh_installmodules:3 dh_installpam:3 dh_installppp:3
-#: dh_installudev:3 dh_installwm:3 dh_installxfonts:3 dh_link:3 dh_lintian:3
-#: dh_listpackages:3 dh_makeshlibs:3 dh_md5sums:3 dh_movefiles:3 dh_perl:3
-#: dh_prep:3 dh_scrollkeeper:3 dh_shlibdeps:3 dh_strip:3 dh_suidregister:3
-#: dh_testdir:3 dh_testroot:3 dh_undocumented:3 dh_usrlocal:3
+#: debhelper.pod:3 debhelper-compat-upgrade-checklist.pod:3
+#: debhelper-obsolete-compat.pod:1 dh:3 dh_auto_build:3 dh_auto_clean:3
+#: dh_auto_configure:3 dh_auto_install:3 dh_auto_test:3 dh_bugfiles:3
+#: dh_builddeb:5 dh_clean:3 dh_compress:3 dh_dwz:3 dh_fixperms:3
+#: dh_gencontrol:3 dh_icons:3 dh_install:3 dh_installcatalogs:3
+#: dh_installchangelogs:3 dh_installcron:3 dh_installdeb:3 dh_installdebconf:3
+#: dh_installdirs:3 dh_installdocs:5 dh_installemacsen:3 dh_installexamples:5
+#: dh_installifupdown:3 dh_installinfo:3 dh_installinit:3 dh_installinitramfs:3
+#: dh_installlogcheck:3 dh_installlogrotate:3 dh_installman:3
+#: dh_installmanpages:3 dh_installmenu:3 dh_installmime:3 dh_installmodules:3
+#: dh_installpam:3 dh_installppp:3 dh_installudev:3 dh_installwm:3
+#: dh_installxfonts:3 dh_link:3 dh_lintian:3 dh_listpackages:3 dh_makeshlibs:3
+#: dh_md5sums:3 dh_movefiles:3 dh_perl:3 dh_prep:3 dh_shlibdeps:3 dh_strip:3
+#: dh_testdir:3 dh_testroot:5 dh_usrlocal:5 dh_systemd_enable:3
+#: dh_systemd_start:3
msgid "NAME"
msgstr "NOME"
#. type: textblock
-#: debhelper.pod:3
+#: debhelper.pod:5
msgid "debhelper - the debhelper tool suite"
msgstr "debhelper - a suite de ferramentas debhelper"
#. type: =head1
-#: debhelper.pod:5 dh:12 dh_auto_build:12 dh_auto_clean:13
-#: dh_auto_configure:12 dh_auto_install:15 dh_auto_test:13 dh_bugfiles:12
-#: dh_builddeb:12 dh_clean:12 dh_compress:13 dh_desktop:12 dh_fixperms:13
-#: dh_gconf:12 dh_gencontrol:12 dh_icons:13 dh_install:13
-#: dh_installcatalogs:14 dh_installchangelogs:12 dh_installcron:12
-#: dh_installdeb:12 dh_installdebconf:12 dh_installdirs:12 dh_installdocs:12
-#: dh_installemacsen:12 dh_installexamples:12 dh_installifupdown:12
-#: dh_installinfo:12 dh_installinit:13 dh_installlogcheck:12
-#: dh_installlogrotate:12 dh_installman:13 dh_installmanpages:13
-#: dh_installmenu:12 dh_installmime:12 dh_installmodules:13 dh_installpam:12
-#: dh_installppp:12 dh_installudev:13 dh_installwm:12 dh_installxfonts:12
-#: dh_link:13 dh_lintian:12 dh_listpackages:12 dh_makeshlibs:12 dh_md5sums:13
-#: dh_movefiles:12 dh_perl:14 dh_prep:12 dh_scrollkeeper:12 dh_shlibdeps:13
-#: dh_strip:13 dh_suidregister:7 dh_testdir:12 dh_testroot:7
-#: dh_undocumented:12 dh_usrlocal:15
+#: debhelper.pod:7 debhelper-compat-upgrade-checklist.pod:7
+#: debhelper-obsolete-compat.pod:5 dh:22 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_gencontrol:16 dh_icons:16 dh_install:15 dh_installcatalogs:17
+#: dh_installchangelogs:16 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:18
+#: 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 "SINOPSE"
+msgstr "RESUMO"
#. type: textblock
-#: debhelper.pod:7
+#: debhelper.pod:9
msgid ""
-"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-p>I<package>] "
-"[B<-N>I<package>] [B<-P>I<tmpdir>]"
+"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<--no-act>] [B<-p>I<package>] [B<-"
+"N>I<package>] [B<-P>I<tmpdir>]"
msgstr ""
-"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-p>I<pacote>] "
-"[B<-N>I<pacote>] [B<-P>I<tmpdir>]"
+"B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<--no-act>] [B<-p>I<package>] [B<-"
+"N>I<package>] [B<-P>I<tmpdir>]"
#. type: =head1
-#: debhelper.pod:9 dh:16 dh_auto_build:16 dh_auto_clean:17
-#: dh_auto_configure:16 dh_auto_install:19 dh_auto_test:17 dh_bugfiles:16
-#: dh_builddeb:16 dh_clean:16 dh_compress:17 dh_desktop:16 dh_fixperms:17
-#: dh_gconf:16 dh_gencontrol:16 dh_icons:17 dh_install:17
-#: dh_installcatalogs:18 dh_installchangelogs:16 dh_installcron:16
-#: dh_installdeb:16 dh_installdebconf:16 dh_installdirs:16 dh_installdocs:16
-#: dh_installemacsen:16 dh_installexamples:16 dh_installifupdown:16
-#: dh_installinfo:16 dh_installinit:17 dh_installlogcheck:16
-#: dh_installlogrotate:16 dh_installman:17 dh_installmanpages:17
-#: dh_installmenu:16 dh_installmime:16 dh_installmodules:17 dh_installpam:16
-#: dh_installppp:16 dh_installudev:17 dh_installwm:16 dh_installxfonts:16
-#: dh_link:17 dh_lintian:16 dh_listpackages:16 dh_makeshlibs:16 dh_md5sums:17
-#: dh_movefiles:16 dh_perl:18 dh_prep:16 dh_scrollkeeper:16 dh_shlibdeps:17
-#: dh_strip:17 dh_suidregister:11 dh_testdir:16 dh_testroot:11
-#: dh_undocumented:16 dh_usrlocal:19
+#: debhelper.pod:11 debhelper-compat-upgrade-checklist.pod:17 dh:26
+#: 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_gencontrol:20 dh_icons:20 dh_install:19
+#: dh_installcatalogs:21 dh_installchangelogs:20 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:22
+#: 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 "DESCRIÇÃO"
#. type: textblock
-#: debhelper.pod:11
+#: debhelper.pod:13
msgid ""
"Debhelper is used to help you build a Debian package. The philosophy behind "
"debhelper is to provide a collection of small, simple, and easily understood "
@@ -98,7 +101,7 @@ msgid ""
"and packages that use them will require only a rebuild to comply with the "
"new policy."
msgstr ""
-"Debhelper é usado para ajudá-lo a compilar um pacote Debian. A filosofia por "
+"Debhelper é usado para ajuda-lo a compilar um pacote Debian. A filosofia por "
"detrás de debhelper é disponibilizar uma colecção de ferramentas pequenas, "
"simples e de fácil compreensão que são usadas em F<debian/rules> para "
"automatizar vários aspectos comuns da compilação de um pacote. Isto "
@@ -108,7 +111,7 @@ msgstr ""
"para ficarem em conformidade com a nova política."
#. type: textblock
-#: debhelper.pod:19
+#: debhelper.pod:21
msgid ""
"A typical F<debian/rules> file that uses debhelper will call several "
"debhelper commands in sequence, or use L<dh(1)> to automate this process. "
@@ -121,7 +124,7 @@ msgstr ""
"ficheiros de regras que usam debhelper."
#. type: textblock
-#: debhelper.pod:23
+#: debhelper.pod:25
msgid ""
"To create a new Debian package using debhelper, you can just copy one of the "
"sample rules files and edit it by hand. Or you can try the B<dh-make> "
@@ -131,19 +134,32 @@ msgid ""
"debhelper."
msgstr ""
"Para criar um novo pacote Debian usando o debhelper, você pode copiar um dos "
-"ficheiros de regras exemplo e editá-lo à mão. Ou pode tentar o pacote B<dh-"
+"ficheiros de regras exemplo e edita-lo à mão. Ou pode tentar o pacote B<dh-"
"make>, o qual contém um comando L<dh_make|dh_make(1)> que automatiza "
"parcialmente o processo Para uma introdução mais gentil, o pacote Debian "
"B<maint-guide> contém um tutorial acerca de como fazer o seu primeiro pacote "
"usando o debhelper."
+#. type: textblock
+#: debhelper.pod:31
+msgid ""
+"Except where the tool explicitly denotes otherwise, all of the debhelper "
+"tools assume that they run from the root directory of an unpacked source "
+"package. This is so they can locate find files like F<debian/control> when "
+"needed."
+msgstr ""
+"Excepto onde a ferramenta explicitamente denota, caso contrário, todas as "
+"ferramentas do debhelper assumem que são corridas a partir do directório "
+"raiz de um pacote fonte descompactado. Isto é feito para que possam "
+"localizar e encontrar ficheiros como F<debian/control> quando necessário."
+
#. type: =head1
-#: debhelper.pod:29
+#: debhelper.pod:36
msgid "DEBHELPER COMMANDS"
msgstr "COMANDOS DO DEBHELPER"
#. type: textblock
-#: debhelper.pod:31
+#: debhelper.pod:38
msgid ""
"Here is the list of debhelper commands you can use. See their man pages for "
"additional documentation."
@@ -152,32 +168,32 @@ msgstr ""
"manuais para documentação adicional."
#. type: textblock
-#: debhelper.pod:36
+#: debhelper.pod:43
msgid "#LIST#"
msgstr "#LISTA#"
#. type: =head2
-#: debhelper.pod:40
+#: debhelper.pod:47
msgid "Deprecated Commands"
msgstr "Comandos Descontinuados"
#. type: textblock
-#: debhelper.pod:42
+#: debhelper.pod:49
msgid "A few debhelper commands are deprecated and should not be used."
msgstr "Alguns comandos debhelper estão descontinuados e não devem ser usados."
#. type: textblock
-#: debhelper.pod:46
+#: debhelper.pod:53
msgid "#LIST_DEPRECATED#"
msgstr "#LISTA_DE_DESCONTINUADOS#"
#. type: =head2
-#: debhelper.pod:50
+#: debhelper.pod:57
msgid "Other Commands"
msgstr "Outros comandos"
#. type: textblock
-#: debhelper.pod:52
+#: debhelper.pod:59
msgid ""
"If a program's name starts with B<dh_>, and the program is not on the above "
"lists, then it is not part of the debhelper package, but it should still "
@@ -188,12 +204,12 @@ msgstr ""
"funcionar como os outros programas descritos nesta página."
#. type: =head1
-#: debhelper.pod:56
+#: debhelper.pod:63
msgid "DEBHELPER CONFIG FILES"
msgstr "FICHEIROS DE CONFIGURAÇÃO DO DEBHELPER"
#. type: textblock
-#: debhelper.pod:58
+#: debhelper.pod:65
msgid ""
"Many debhelper commands make use of files in F<debian/> to control what they "
"do. Besides the common F<debian/changelog> and F<debian/control>, which are "
@@ -211,7 +227,7 @@ msgstr ""
"pacote no qual se está a actuar)."
#. type: textblock
-#: debhelper.pod:65
+#: debhelper.pod:72
msgid ""
"For example, B<dh_installdocs> uses files named F<debian/package.docs> to "
"list the documentation files it will install. See the man pages of "
@@ -228,17 +244,25 @@ msgstr ""
"pares de ficheiros e destinos ou formatos ligeiramente mais complicados."
#. type: textblock
-#: debhelper.pod:72
+#: debhelper.pod:79
msgid ""
"Note for the first (or only) binary package listed in F<debian/control>, "
-"debhelper will use F<debian/foo> when there's no F<debian/package.foo> file."
+"debhelper will use F<debian/foo> when there's no F<debian/I<package>.foo> "
+"file. However, it is often a good idea to keep the F<I<package>.> prefix as "
+"it is more explicit. The primary exception to this are files that debhelper "
+"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 ""
-"Note que para o primeiro (ou único) pacote binário listado em <debian/"
-"control>, o debhelper irá usar F<debian/foo> quando não existe nenhum "
-"ficheiro F<debian/package.foo>."
+"Nota para o primeiro (ou único) pacote binário listado em F<debian/control>, "
+"o debhelper irá usar F<debian/foo> quando não existe nenhum ficheiro "
+"F<debian/I<package>.foo>. No entanto, é geralmente uma boa ideia manter o "
+"prefixo F<I<package>.> pois é mais explícito. A principal excepção a isto "
+"são ficheiro que o debhelper instala por predefinição em todos os pacotes "
+"binários quando não tem um prefixo de pacote (tal como F<debian/copyright> "
+"ou F<debian/changelog>)."
#. type: textblock
-#: debhelper.pod:76
+#: debhelper.pod:87
msgid ""
"In some rare cases, you may want to have different versions of these files "
"for different architectures or OSes. If files named debian/I<package>.foo."
@@ -251,12 +275,12 @@ msgstr ""
"ficheiros para arquitecturas ou sistemas operativos diferentes. Se existirem "
"ficheiros chamados debian/I<pacote>.foo.I<ARCH> ou debian/I<pacote>.foo."
"I<OS>, onde I<ARCH> e I<OS> são o mesmo que o resultado de \"B<dpkg-"
-"architecture -qDEB_HOST_ARCH>\" / \"B<dpkg-architecture -qDEB_HOST_ARCH_OS>"
-"\", então eles irão ser usados em preferência de outros ficheiros mais "
-"gerais."
+"architecture -qDEB_HOST_ARCH>\" / \"B<dpkg-architecture -"
+"qDEB_HOST_ARCH_OS>\", então eles irão ser usados em preferência de outros "
+"ficheiros mais gerais."
#. type: textblock
-#: debhelper.pod:83
+#: debhelper.pod:94
msgid ""
"Mostly, these config files are used to specify lists of various types of "
"files. Documentation or example files to install, files to move, and so on. "
@@ -274,28 +298,358 @@ msgstr ""
"ignoradas."
#. type: textblock
-#: debhelper.pod:90
+#: debhelper.pod:101
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, "
-"you can make the file executable, and write a program that outputs whatever "
-"content is appropriate for a given situation. When you do so, the output is "
-"not further processed to expand wildcards or strip comments."
-msgstr ""
-"A sintaxe destes ficheiros é mantida propositadamente simples para os tornar "
-"fáceis de ler, perceber, e modificar. Se você preferir o poder e a "
-"complexidade, pode tornar o ficheiro executável, e escrever um programa que "
-"gere um conteúdo apropriado para uma dada situação seja ela qual for. Quando "
-"o fizer, o resultado já não é mais processado para expandir wildcards ou "
-"despojar comentários."
+"easy to read, understand, and modify."
+msgstr ""
+"A sintaxe destes ficheiros é mantida intencionalmente muito simples para os "
+"tornar fáceis de ler, compreender e modificar."
+
+#. type: =head2
+#: debhelper.pod:104
+msgid "Substitutions in debhelper config files"
+msgstr "Substituições em ficheiros de configuração do debhelper"
+
+#. type: textblock
+#: debhelper.pod:106
+msgid ""
+"In compatibility level 13 and later, it is possible to use simple "
+"substitutions in debhelper config files for the following tools:"
+msgstr ""
+"Em nível de compatibilidade 13 e posterior, é possível usar substituições "
+"simples em ficheiros de configuração do debhelper para as seguintes "
+"ferramentas:"
+
+#. type: =item
+#: debhelper.pod:111 debhelper.pod:115 debhelper.pod:119 debhelper.pod:123
+#: debhelper.pod:127 debhelper.pod:131 debhelper.pod:135 debhelper.pod:139
+#: debhelper.pod:143 debhelper.pod:147 debhelper.pod:151 debhelper.pod:155
+#: debhelper.pod:159 debhelper.pod:247 debhelper.pod:252
+msgid "*"
+msgstr "*"
+
+#. type: textblock
+#: debhelper.pod:113
+msgid "dh_clean"
+msgstr "dh_clean"
+
+#. type: textblock
+#: debhelper.pod:117
+msgid "dh_install"
+msgstr "dh_install"
+
+#. type: textblock
+#: debhelper.pod:121
+msgid "dh_installcatalogs"
+msgstr "dh_installcatalogs"
+
+#. type: textblock
+#: debhelper.pod:125
+msgid "dh_installdeb"
+msgstr "dh_installdeb"
+
+#. type: textblock
+#: debhelper.pod:129
+msgid "dh_installdirs"
+msgstr "dh_installdirs"
+
+#. type: textblock
+#: debhelper.pod:133
+msgid "dh_installdocs"
+msgstr "dh_installdocs"
+
+#. type: textblock
+#: debhelper.pod:137
+msgid "dh_installexamples"
+msgstr "dh_installexamples"
+
+#. type: textblock
+#: debhelper.pod:141
+msgid "dh_installinfo"
+msgstr "dh_installinfo"
+
+#. type: textblock
+#: debhelper.pod:145
+msgid "dh_installman"
+msgstr "dh_installman"
+
+#. type: textblock
+#: debhelper.pod:149
+msgid "dh_installwm"
+msgstr "dh_installwm"
+
+#. type: textblock
+#: debhelper.pod:153
+msgid "dh_link"
+msgstr "dh_link"
+
+#. type: textblock
+#: debhelper.pod:157
+msgid "dh_missing"
+msgstr "dh_missing"
+
+#. type: textblock
+#: debhelper.pod:161
+msgid "dh_ucf"
+msgstr "dh_ucf"
+
+#. type: textblock
+#: debhelper.pod:165
+msgid ""
+"All substitution variables are of the form I<${foo}> and the braces are "
+"mandatory. Variable names are case-sensitive and consist of alphanumerics "
+"(a-zA-Z0-9), hyphens (-), underscores (_), and colons (:). The first "
+"character must be an alphanumeric."
+msgstr ""
+"Todas as variáveis de substituição são do formato I<${foo}> e as chavetas "
+"são obrigatórias. Os nomes das variáveis são sensíveis a maiúscula/minúscula "
+"e consistem de alfanuméricos (a-zA-Z0-9), hífens (-), underscores (_), and "
+"dois pontos (:). O primeiro caractere tem de ser alfanumérico."
+
+#. type: textblock
+#: debhelper.pod:170
+msgid ""
+"If you need a literal dollar sign that cannot trigger a substitution, you "
+"can either use the B<${Dollar}> substitution or the sequence B<${}>."
+msgstr ""
+"Se precisar de um sinal literal de dollar que não despolete uma "
+"substituição, você pode ou usar a substituição de B<${Dollar}> ou a "
+"sequência B<${}>."
+
+#. type: textblock
+#: debhelper.pod:173
+msgid "The following expansions are available:"
+msgstr "As seguintes expansões estão disponíveis:"
+
+#. type: =item
+#: debhelper.pod:177
+msgid "B<DEB_HOST_*>, B<DEB_BUILD_*>, B<DEB_TARGET_*>"
+msgstr "B<DEB_HOST_*>, B<DEB_BUILD_*>, B<DEB_TARGET_*>"
+
+#. type: textblock
+#: debhelper.pod:179
+msgid ""
+"Expands to the relevant L<dpkg-architecture(1)> value (similar to I<dpkg-"
+"architecture -qVARIABLE_HERE>)."
+msgstr ""
+"Expande para o valor L<dpkg-architecture(1)> relevante (semelhante a I<dpkg-"
+"architecture -qVARIABLE_HERE>)."
+
+#. type: textblock
+#: debhelper.pod:182
+msgid ""
+"When in doubt, the B<DEB_HOST_*> variant is the one that will work both for "
+"native and cross builds."
+msgstr ""
+"Em caso de dúvida, a variante B<DEB_HOST_*> é aquela que irá trabalhar para "
+"ambas compilações nativas e cruzadas."
+
+#. type: textblock
+#: debhelper.pod:185
+msgid ""
+"For performance reasons, debhelper will attempt to resolve these names from "
+"the environment first before consulting L<dpkg-architecture(1)>. This is "
+"mostly mentioned for completeness as it will not matter for most cases."
+msgstr ""
+"Por razões de performance, o debhelper irá tentar resolver esses nomes "
+"primeiro a partir do ambiente antes de consultar L<dpkg-architecture(1)>. "
+"Isto é muito mencionado para plenitude pois não irá ter importância na "
+"maioria dos casos."
+
+#. type: =item
+#: debhelper.pod:190
+msgid "B<Dollar>"
+msgstr "B<Dollar>"
+
+#. type: textblock
+#: debhelper.pod:192
+msgid ""
+"Expands to a single literal B<$>-symbol. This symbol will I<never> be "
+"considered part of a substitution variable. That is:"
+msgstr ""
+"Expande para um símbolo literal único B<$>-symbol. Este símbolo I<nunca> irá "
+"ser considerado parte de uma variável de substituição. Isso é:"
+
+#. type: verbatim
+#: debhelper.pod:195
+#, no-wrap
+msgid ""
+" # Triggers an error\n"
+" ${NO_SUCH_TOKEN}\n"
+" # Expands to the literal value \"${NO_SUCH_TOKEN}\"\n"
+" ${Dollar}{NO_SUCH_TOKEN}\n"
+"\n"
+msgstr ""
+" # Triggers an error\n"
+" ${NO_SUCH_TOKEN}\n"
+" # Expands to the literal value \"${NO_SUCH_TOKEN}\"\n"
+" ${Dollar}{NO_SUCH_TOKEN}\n"
+"\n"
+
+#. type: textblock
+#: debhelper.pod:200
+msgid ""
+"This variable equivalent to the sequence B<${}> and the two can be used "
+"interchangeably."
+msgstr ""
+"Esta variável é equivalente à sequência B<${}> e as duas podem ser usadas "
+"alternadamente."
+
+#. type: =item
+#: debhelper.pod:203
+msgid "B<Newline>, B<Space>, B<Tab>"
+msgstr "B<Newline>, B<Space>, B<Tab>"
+
+#. type: textblock
+#: debhelper.pod:205
+msgid "Expands to a single ASCII newline, space and tab respectively."
+msgstr "Expande para uma nova linha ASCII única, espaço e tab respetivamente."
+
+#. type: textblock
+#: debhelper.pod:207
+msgid ""
+"This can be useful if you need to include a literal whitespace character (e."
+"g. space) where it would otherwise be stripped or used as a separator."
+msgstr ""
+"Isto pode ser útil se precisar de incluir um caractere literal de \"espaço "
+"em branco\" (ex. espaço) onde caso contrário ele iria ser descartado ou "
+"usado como um separador."
+
+#. type: =item
+#: debhelper.pod:211
+msgid "B<< env:I<NAME> >>"
+msgstr "B<< env:I<NAME> >>"
+
+#. type: textblock
+#: debhelper.pod:213
+msgid ""
+"Expands to the environment variable I<NAME>. The environment variable must "
+"be set (but can be set to the empty string)."
+msgstr ""
+"Expande para a variável de ambiente I<NAME>. A variável de ambiente tem de "
+"estar definida (mas pode estar definida para uma string vazia)."
+
+#. type: textblock
+#: debhelper.pod:218
+msgid ""
+"Note that all variables must expand to a defined value. As an example, if "
+"debhelper sees I<${env:FOO}>, then it will insist that the environment "
+"variable I<FOO> is set (it can be set to the empty string)."
+msgstr ""
+"Note que todas as variáveis têm de expandir para um valor definido. Como "
+"exemplo, se o debhelper vir I<${env:FOO}>, então ele irá insistir que a "
+"variável de ambiente I<FOO> está definida (pode estar definida para uma "
+"string vazia)."
+
+#. type: =head3
+#: debhelper.pod:222
+msgid "Substitution limits"
+msgstr "Limites de substituição"
+
+#. type: textblock
+#: debhelper.pod:224
+msgid ""
+"To avoid infinite loops and resource exhaustion, debhelper will stop with an "
+"error if the text contains many substitution variables (50) or they expand "
+"beyond a certain size (4096 characters or 3x length of the original input - "
+"whichever is bigger)."
+msgstr ""
+"Para evitar ciclos infinitos e exaustão de recursos, o debhelper irá parar "
+"com um erro se o texto conter muitas variáveis de substituição (50) ou se "
+"elas expandirem para lá de um determinado tamanho (4096 caracteres ou 3x o "
+"comprimento da entrada original - qual deles for maior)."
+
+#. type: =head2
+#: debhelper.pod:229
+msgid "Executable debhelper config files"
+msgstr "Ficheiros de configuração do debhelper executáveis."
+
+#. type: textblock
+#: debhelper.pod:231
+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 ""
+"Se precisar de flexibilidade adicional, muitas das ferramentas debhelper "
+"(ex, L<dh_install(1)>) suportam executar um ficheiro de configuração como um "
+"script."
+
+#. type: textblock
+#: debhelper.pod:234
+msgid ""
+"To use this feature, simply mark the config file as executable (e.g. B<< "
+"chmod +x debian/I<package>.install >>) and the tool will attempt to execute "
+"it and use the output of the script. In many cases, you can use L<dh-"
+"exec(1)> as interpreter of the config file to retain most of the original "
+"syntax while getting the additional flexibility you need."
+msgstr ""
+"Para usar esta funcionalidade, simplesmente marque o ficheiro de "
+"configuração como executável (ex. B<< chmod +x debian/I<package>.install >>) "
+"e a ferramenta irá tentar executa-lo e usar o resultado do script. Em muitos "
+"casos, você pode usar L<dh-exec(1)> como interpretador do ficheiro de "
+"configuração para reter a maioria da sintaxe original enquanto obtém a "
+"flexibilidade adicional que precisa."
+
+#. type: textblock
+#: debhelper.pod:242
+msgid ""
+"When using executable debhelper config files, please be aware of the "
+"following:"
+msgstr ""
+"Quando usar ficheiros de configuração executáveis do debhelper, por favor "
+"tenha em atenção o seguinte:"
+
+#. type: textblock
+#: debhelper.pod:249
+msgid ""
+"The executable config file B<must> exit with success (i.e. its return code "
+"should indicate success)."
+msgstr ""
+"O ficheiro de configuração executável B<must> termina com sucesso (isto é, o "
+"seu código de retorne deve indicar sucesso)."
+
+#. type: textblock
+#: debhelper.pod:254
+msgid ""
+"In compatibility level 13+, the output will be subject to substitutions (see "
+"L</Substitutions in debhelper config files>) where the tool support these. "
+"Remember to be careful if your generator I<also> provides substitutions as "
+"this can cause unnecessary confusion."
+msgstr ""
+"Em nível de compatibilidade 13+, o resultado será sujeito a substituições "
+"(veja L</Substituições em ficheiros de configuração do debhelper>) onde a "
+"ferramenta suportar estes. Lembre-se disto se o seu gerador I<também> "
+"disponibilizar substituições pois isto pode causar confusão desnecessária."
+
+#. type: textblock
+#: debhelper.pod:259
+msgid ""
+"Otherwise, the output will be used exactly as-is. Notably, debhelper will "
+"I<not> expand wildcards or strip comments or strip whitespace in the output."
+msgstr ""
+"Caso contrário, o resultado de saída irá ser usado exatamente como está. De "
+"notar que o debhelper I<não> irá expandir wildcards, nem retirar comentários "
+"ou espaços em branco ao resultado de saída."
+
+#. type: textblock
+#: debhelper.pod:265
+msgid ""
+"If you need the package to build on a file system where you cannot disable "
+"the executable bit, then you can use L<dh-exec(1)> and its B<strip-output> "
+"script."
+msgstr ""
+"Se precisar que o pacote compile num sistema de ficheiros onde não pode "
+"desactivar o bit de executável, então você pode usar L<dh-exec(1)> o o seu "
+"script B<strip-output>."
#. type: =head1
-#: debhelper.pod:96
+#: debhelper.pod:269
msgid "SHARED DEBHELPER OPTIONS"
msgstr "OPÇÕES DO DEBHELPER PARTILHADAS"
#. type: textblock
-#: debhelper.pod:98
+#: debhelper.pod:271
msgid ""
"The following command line options are supported by all debhelper programs."
msgstr ""
@@ -303,25 +657,34 @@ msgstr ""
"programas do debhelper."
#. type: =item
-#: debhelper.pod:102
+#: debhelper.pod:275
msgid "B<-v>, B<--verbose>"
msgstr "B<-v>, B<--verbose>"
#. type: textblock
-#: debhelper.pod:104
+#: debhelper.pod:277
+msgid "Verbose mode: show commands that modify the package build directory."
+msgstr ""
+"Modo detalhado: mostra os comandos que modificam o directório de compilação "
+"de pacotes."
+
+#. type: textblock
+#: debhelper.pod:279
msgid ""
-"Verbose mode: show all commands that modify the package build directory."
+"Note that verbose mode may also output other \"internal\" commands that do "
+"not directly affect the package build directory."
msgstr ""
-"Modo detalhado: mostra todos os comandos que modificam o directório de "
-"compilação de pacotes."
+"Note que o modo detalhado pode também gerar resultados de outros comandos "
+"\"internos\" que não afectam diretamente o directório de compilação de "
+"pacotes."
#. type: =item
-#: debhelper.pod:106 dh:64
+#: debhelper.pod:282 dh:307
msgid "B<--no-act>"
msgstr "B<--no-act>"
#. type: textblock
-#: debhelper.pod:108
+#: debhelper.pod:284
msgid ""
"Do not really do anything. If used with -v, the result is that the command "
"will output what it would have done."
@@ -330,36 +693,36 @@ msgstr ""
"mostra o que iria fazer."
#. type: =item
-#: debhelper.pod:111
+#: debhelper.pod:287
msgid "B<-a>, B<--arch>"
msgstr "B<-a>, B<--arch>"
#. type: textblock
-#: debhelper.pod:113
+#: debhelper.pod:289
msgid ""
-"Act on architecture dependent packages that should be built for the build "
-"architecture."
+"Act on architecture dependent packages that should be built for the "
+"B<DEB_HOST_ARCH> architecture."
msgstr ""
"Actua em pacotes dependentes da arquitectura que devem ser compilados para a "
-"arquitectura de compilação."
+"arquitectura de compilação B<DEB_HOST_ARCH>."
#. type: =item
-#: debhelper.pod:116
+#: debhelper.pod:292
msgid "B<-i>, B<--indep>"
msgstr "B<-i>, B<--indep>"
#. type: textblock
-#: debhelper.pod:118
+#: debhelper.pod:294
msgid "Act on all architecture independent packages."
msgstr "Actua em todos os pacotes independentes da arquitectura."
#. type: =item
-#: debhelper.pod:120
+#: debhelper.pod:296
msgid "B<-p>I<package>, B<--package=>I<package>"
msgstr "B<-p>I<pacote>, B<--package=>I<pacote>"
#. type: textblock
-#: debhelper.pod:122
+#: debhelper.pod:298
msgid ""
"Act on the package named I<package>. This option may be specified multiple "
"times to make debhelper operate on a given set of packages."
@@ -368,26 +731,27 @@ msgstr ""
"vezes para fazer o debhelper operar num determinado conjunto de pacotes."
#. type: =item
-#: debhelper.pod:125
+#: debhelper.pod:301
msgid "B<-s>, B<--same-arch>"
msgstr "B<-s>, B<--same-arch>"
#. type: textblock
-#: debhelper.pod:127
-msgid ""
-"This used to be a smarter version of the B<-a> flag, but the B<-a> flag is "
-"now equally smart."
-msgstr ""
-"Isto costumava ser uma versão mais inteligente da bandeira B<-a>, mas a "
-"bandeira B<-a> é agora igualmente inteligente."
+#: debhelper.pod:303
+msgid "Deprecated alias of B<-a>."
+msgstr "Alias descontinuado de B<-a>."
+
+#. type: textblock
+#: debhelper.pod:305 dh_install:80 dh_install:89
+msgid "This option is removed in compat 12."
+msgstr "Esta opção foi removida no nível de compatibilidade 12."
#. type: =item
-#: debhelper.pod:130
+#: debhelper.pod:307
msgid "B<-N>I<package>, B<--no-package=>I<package>"
msgstr "B<-N>I<pacote>, B<--no-package=>I<pacote>"
#. type: textblock
-#: debhelper.pod:132
+#: debhelper.pod:309
msgid ""
"Do not act on the specified package even if an B<-a>, B<-i>, or B<-p> option "
"lists the package as one that should be acted on."
@@ -396,12 +760,12 @@ msgstr ""
"listarem o pacote como um em que se deverá actuar."
#. type: =item
-#: debhelper.pod:135
+#: debhelper.pod:312
msgid "B<--remaining-packages>"
msgstr "B<--remaining-packages>"
#. type: textblock
-#: debhelper.pod:137
+#: debhelper.pod:314
msgid ""
"Do not act on the packages which have already been acted on by this "
"debhelper command earlier (i.e. if the command is present in the package "
@@ -417,40 +781,12 @@ msgstr ""
"definições predefinidas."
#. type: =item
-#: debhelper.pod:143
-msgid "B<--ignore=>I<file>"
-msgstr "B<--ignore=>I<ficheiro>"
-
-#. type: textblock
-#: debhelper.pod:145
-msgid ""
-"Ignore the specified file. This can be used if F<debian/> contains a "
-"debhelper config file that a debhelper command should not act on. Note that "
-"F<debian/compat>, F<debian/control>, and F<debian/changelog> can't be "
-"ignored, but then, there should never be a reason to ignore those files."
-msgstr ""
-"Ignora o ficheiro especificado. Isto pode ser usado se F<debian/> conter um "
-"ficheiro de configuração de debhelper que um comando debhelper não deve "
-"usar. Note que F<debian/compat>, F<debian/control>, e F<debian/changelog> "
-"não podem ser ignorados, mas também, nunca deverá existir uma razão para "
-"ignorar estes ficheiros."
-
-#. type: textblock
-#: debhelper.pod:150
-msgid ""
-"For example, if upstream ships a F<debian/init> that you don't want "
-"B<dh_installinit> to install, use B<--ignore=debian/init>"
-msgstr ""
-"Por exemplo, se o autor do programa juntar um F<debian/init> que você não "
-"quer que B<dh_installinit> instale, use B<--ignore=debian/init>"
-
-#. type: =item
-#: debhelper.pod:153
+#: debhelper.pod:320
msgid "B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>"
msgstr "B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>"
#. type: textblock
-#: debhelper.pod:155
+#: debhelper.pod:322
msgid ""
"Use I<tmpdir> for package build directory. The default is debian/I<package>"
msgstr ""
@@ -458,12 +794,12 @@ msgstr ""
"debian/I<pacote>"
#. type: =item
-#: debhelper.pod:157
+#: debhelper.pod:324
msgid "B<--mainpackage=>I<package>"
msgstr "B<--mainpackage=>I<pacote>"
#. type: textblock
-#: debhelper.pod:159
+#: debhelper.pod:326
msgid ""
"This little-used option changes the package which debhelper considers the "
"\"main package\", that is, the first one listed in F<debian/control>, and "
@@ -476,12 +812,12 @@ msgstr ""
"F<debian/package.foo> usuais."
#. type: =item
-#: debhelper.pod:164
+#: debhelper.pod:331
msgid "B<-O=>I<option>|I<bundle>"
msgstr "B<-O=>I<opção>|I<bundle>"
#. type: textblock
-#: debhelper.pod:166
+#: debhelper.pod:333
msgid ""
"This is used by L<dh(1)> when passing user-specified options to all the "
"commands it runs. If the command supports the specified option or option "
@@ -494,12 +830,12 @@ msgstr ""
"alguma parte do conjunto de opções), será ignorado."
#. type: =head1
-#: debhelper.pod:173
+#: debhelper.pod:340
msgid "COMMON DEBHELPER OPTIONS"
msgstr "OPÇÕES COMUNS DO DEBHELPER"
#. type: textblock
-#: debhelper.pod:175
+#: debhelper.pod:342
msgid ""
"The following command line options are supported by some debhelper "
"programs. See the man page of each program for a complete explanation of "
@@ -510,43 +846,43 @@ msgstr ""
"sobre o que cada opção faz."
#. type: =item
-#: debhelper.pod:181
+#: debhelper.pod:348
msgid "B<-n>"
msgstr "B<-n>"
#. type: textblock
-#: debhelper.pod:183
+#: debhelper.pod:350
msgid "Do not modify F<postinst>, F<postrm>, etc. scripts."
msgstr "Não modifique os scripts F<postinst>, F<postrm>, etc."
#. type: =item
-#: debhelper.pod:185 dh_compress:52 dh_install:81 dh_installchangelogs:71
-#: dh_installdocs:80 dh_installexamples:41 dh_link:62 dh_makeshlibs:81
-#: dh_md5sums:37 dh_shlibdeps:30 dh_strip:39
+#: debhelper.pod:352 dh_compress:56 dh_dwz:56 dh_installchangelogs:89
+#: dh_installdocs:109 dh_installexamples:84 dh_link:78 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<item>, B<--exclude=>I<item>"
#. type: textblock
-#: debhelper.pod:187
+#: debhelper.pod:354
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."
+"exclude more than one thing. The I<item> is typically part of a filename, "
+"and any file containing the specified text will be excluded."
msgstr ""
"Exclui um item do processamento. Esta opção pode ser usada várias vezes, "
-"para excluir mais do que uma coisa. O \\fIitem\\fR é tipicamente parte de um "
-"nome de ficheiro, e qualquer ficheiro que contenha o texto especificado será "
+"para excluir mais do que uma coisa. O I<item> é tipicamente parte de um nome "
+"de ficheiro, e qualquer ficheiro que contenha o texto especificado será "
"excluído."
#. type: =item
-#: debhelper.pod:191 dh_bugfiles:54 dh_compress:59 dh_installdirs:35
-#: dh_installdocs:75 dh_installexamples:36 dh_installinfo:35 dh_installman:65
-#: dh_link:57
+#: debhelper.pod:358 dh_bugfiles:57 dh_compress:63 dh_installdirs:49
+#: dh_installdocs:104 dh_installexamples:52 dh_installinfo:45 dh_installman:90
+#: dh_installwm:55 dh_link:73
msgid "B<-A>, B<--all>"
msgstr "B<-A>, B<--all>"
#. type: textblock
-#: debhelper.pod:193
+#: debhelper.pod:360
msgid ""
"Makes files or other items that are specified on the command line take "
"effect in ALL packages acted on, not just the first."
@@ -556,12 +892,12 @@ msgstr ""
"primeiro."
#. type: =head1
-#: debhelper.pod:198
+#: debhelper.pod:365
msgid "BUILD SYSTEM OPTIONS"
msgstr "OPÇÕES DO SISTEMA DE COMPILAÇÃO"
#. type: textblock
-#: debhelper.pod:200
+#: debhelper.pod:367
msgid ""
"The following command line options are supported by all of the "
"B<dh_auto_>I<*> debhelper programs. These programs support a variety of "
@@ -573,32 +909,41 @@ msgstr ""
"As seguintes opções de linha de comandos são suportadas por todos os "
"comandos B<dh_auto_>I<*> do debhelper. Estes programas suportam uma "
"variedade de sistemas de compilação, e normalmente determinam "
-"heurísticamente qual usar, e como os usar. Você pode usar estes opções de "
+"heuristicamente qual usar, e como os usar. Você pode usar estes opções de "
"linha de comandos para sobrepor o comportamento predefinido. Tipicamente "
"estas são passadas ao L<dh(1)>, o qual passa-as a todos os programas "
"B<dh_auto_>I<*>."
#. type: =item
-#: debhelper.pod:209
+#: debhelper.pod:376
msgid "B<-S>I<buildsystem>, B<--buildsystem=>I<buildsystem>"
-msgstr "B<-S>I<sistemacompilação>, B<--buildsystem=>I<sistemacompilação>"
+msgstr "B<-S>I<buildsystem>, B<--buildsystem=>I<buildsystem>"
#. type: textblock
-#: debhelper.pod:211
+#: debhelper.pod:378
msgid ""
"Force use of the specified I<buildsystem>, instead of trying to auto-select "
"one which might be applicable for the package."
msgstr ""
-"Força a utilização do |<sistemacompilação> especificado, em vez de tentar "
-"auto-seleccionar um que pode ser aplicável para o pacote."
+"Força a utilização do |<buildsystem> especificado, em vez de tentar auto-"
+"seleccionar um que pode ser aplicável para o pacote."
+
+#. type: textblock
+#: debhelper.pod:381
+msgid "Pass B<none> as I<buildsystem> to disable auto-selection."
+msgstr "Passa B<none> como I<buildsystem> para desactivar a auto-selecção."
#. type: =item
-#: debhelper.pod:214
-msgid "B<-D>I<directory>, B<--sourcedirectory=>I<directory>"
-msgstr "B<-D>I<directório>, B<--sourcedirectory=>I<directório>"
+#: debhelper.pod:383
+msgid ""
+"B<-D>I<directory>, B<--sourcedir=>I<directory>, B<--"
+"sourcedirectory=>I<directory>"
+msgstr ""
+"B<-D>I<directory>, B<--sourcedir=>I<directory>, B<--"
+"sourcedirectory=>I<directory>"
#. type: textblock
-#: debhelper.pod:216
+#: debhelper.pod:385
msgid ""
"Assume that the original package source tree is at the specified "
"I<directory> rather than the top level directory of the Debian source "
@@ -608,13 +953,32 @@ msgstr ""
"especificado em vez de estar no directório de nível de topo da árvore de "
"pacotes fonte de Debian."
+#. type: textblock
+#: debhelper.pod:389
+msgid ""
+"B<Warning>: The B<--sourcedir> variant matches a similar named option in "
+"B<dh_install> and B<dh_missing> (etc.) for historical reasons. While they "
+"have a similar name, they have very distinct purposes and in some cases it "
+"can cause errors when this variant is passed to B<dh> (when then passes it "
+"on to all tools)."
+msgstr ""
+"B<Aviso>: A variante B<--sourcedir> corresponde a uma opção de nome "
+"semelhante em B<dh_install> e B<dh_missing> (etc.) por razões históricas. "
+"Apesar de terem nomes semelhantes, elas têm objectivos muito distintos e em "
+"alguns casos podem causar erros quando esta variante é passada ao B<dh> "
+"(quando então passada para todas as ferramentas)."
+
#. type: =item
-#: debhelper.pod:220
-msgid "B<-B>[I<directory>], B<--builddirectory=>[I<directory>]"
-msgstr "B<-B>[I<directório>], B<--builddirectory=>[I<directório>]"
+#: debhelper.pod:395
+msgid ""
+"B<-B>[I<directory>], B<--builddir>[I<=directory>], B<--"
+"builddirectory>[I<=directory>]"
+msgstr ""
+"B<-B>[I<directory>], B<--builddir>[I<=directory>], B<--"
+"builddirectory>[I<=directory>]"
#. type: textblock
-#: debhelper.pod:222
+#: debhelper.pod:397
msgid ""
"Enable out of source building and use the specified I<directory> as the "
"build directory. If I<directory> parameter is omitted, a default build "
@@ -625,7 +989,7 @@ msgstr ""
"escolhido o directório de compilação predefinido."
#. type: textblock
-#: debhelper.pod:226
+#: debhelper.pod:401
msgid ""
"If this option is not specified, building will be done in source by default "
"unless the build system requires or prefers out of source tree building. In "
@@ -638,7 +1002,7 @@ msgstr ""
"compilação predefinido mesmo se B<--builddirectory> não seja especificado."
#. type: textblock
-#: debhelper.pod:231
+#: debhelper.pod:406
msgid ""
"If the build system prefers out of source tree building but still allows in "
"source building, the latter can be re-enabled by passing a build directory "
@@ -650,39 +1014,54 @@ msgstr ""
"o directório fonte."
#. type: =item
-#: debhelper.pod:235
-msgid "B<--parallel>"
-msgstr "B<--parallel>"
+#: debhelper.pod:410
+msgid "B<--parallel>, B<--no-parallel>"
+msgstr "B<--parallel>, B<--no-parallel>"
#. type: textblock
-#: debhelper.pod:237
+#: debhelper.pod:412
msgid ""
-"Enable parallel builds if underlying build system supports them. The number "
-"of parallel jobs is controlled by the B<DEB_BUILD_OPTIONS> environment "
-"variable (L<Debian Policy, section 4.9.1>) at build time. It might also be "
-"subject to a build system specific limit."
+"Control whether parallel builds should be used if underlying build system "
+"supports them. The number of parallel jobs is controlled by the "
+"B<DEB_BUILD_OPTIONS> environment variable (L<Debian Policy, section 4.9.1>) "
+"at build time. It might also be subject to a build system specific limit."
msgstr ""
-"Activa compilações paralelas se o sistema de compilação o suportar. O número "
-"de trabalhos paralelos é controlado pela variável de ambiente "
-"B<DEB_BUILD_OPTIONS> (L<Debian Policy, secção 4.9.1>) durante a compilação. "
-"Também pode servir como um limite específico do sistema de compilação."
+"Controla se devem ser usadas compilações paralelas se o sistema de "
+"compilação o suportar. O número de trabalhos paralelos é controlado pela "
+"variável de ambiente B<DEB_BUILD_OPTIONS> (L<Debian Policy, secção 4.9.1>) "
+"durante a compilação. Também pode servir como um limite específico do "
+"sistema de compilação."
#. type: textblock
-#: debhelper.pod:242
+#: debhelper.pod:418
msgid ""
-"If this option is not specified, debhelper currently defaults to not "
-"allowing parallel package builds."
+"If neither option is specified, debhelper currently defaults to B<--"
+"parallel> in compat 10 (or later) and B<--no-parallel> otherwise."
msgstr ""
-"Se esta opção não for especificada, presentemente o debhelper usa por "
-"predefinição a não autorização de compilação de pacotes em paralelo."
+"Se nenhuma destas opções for especificada, presentemente o debhelper usa por "
+"predefinição B<--parallel> em modo compatibilidade 10 (ou posterior) e B<--"
+"no-parallel> em caso contrário."
+
+#. type: textblock
+#: debhelper.pod:421
+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 "
+"this happens when B<DEB_BUILD_OPTIONS> does not have a I<parallel> parameter "
+"(or its value is 1)."
+msgstr ""
+"Como uma optimização, o B<dh> irá tentar evitar passar estas opções aos sub-"
+"processos, se estas forem desnecessárias e as únicas opções a passar. De "
+"notar que isto acontece quando B<DEB_BUILD_OPTIONS> não tem um parâmetro "
+"I<parallel> (ou o seu valor é 1)."
#. type: =item
-#: debhelper.pod:245
+#: debhelper.pod:426
msgid "B<--max-parallel=>I<maximum>"
msgstr "B<--max-parallel=>I<máximo>"
#. type: textblock
-#: debhelper.pod:247
+#: debhelper.pod:428
msgid ""
"This option implies B<--parallel> and allows further limiting the number of "
"jobs that can be used in a parallel build. If the package build is known to "
@@ -695,581 +1074,313 @@ msgstr ""
"você pode definir isto para o nível máximo que é sabido funcionar, ou que "
"deseje suportar."
-#. type: =item
-#: debhelper.pod:252 dh:60
-msgid "B<--list>, B<-l>"
-msgstr "B<--list>, B<-l>"
-
#. type: textblock
-#: debhelper.pod:254
+#: debhelper.pod:433
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."
+"Notably, setting the maximum to 1 is effectively the same as using B<--no-"
+"parallel>."
msgstr ""
-"Lista todos os sistemas de compilação suportados pelo debhelper neste "
-"sistema. A lista inclui ambos sistemas de compilação predefinidos e de "
-"terceiros (marcados como tal). Também mostra qual o sistema de compilação "
-"será seleccionado automaticamente, ou qual está especificado manualmente com "
-"a opção B<--buildsystem>."
+"De notar que, definir o máximo para 1 é efectivamente o mesmo que usar B<--"
+"no-parallel>."
-#. type: =head1
-#: debhelper.pod:261
-msgid "COMPATIBILITY LEVELS"
-msgstr "NÍVEIS DE COMPATIBILIDADE"
+#. type: =item
+#: debhelper.pod:436
+msgid "B<--reload-all-buildenv-variables>"
+msgstr "B<--reload-all-buildenv-variables>"
#. type: textblock
-#: debhelper.pod:263
+#: debhelper.pod:438
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 "
-"tell debhelper which compatibility level it should use, and it modifies its "
-"behavior in various ways."
+"By default, L<dh(1)> will compute several environment variables (e.g. by "
+"using L<dpkg-buildflags(1)>) and cache them to avoid having all B<dh_auto_*> "
+"tool recompute them."
msgstr ""
-"De tempos a tempos, precisam de ser feitas grandes alterações no debhelper "
-"que não compatíveis com as versões anteriores, para o manter limpo e bem "
-"construído quando as necessidades alteram e o seu autor ganha mais "
-"experiência. Para prevenir que tais grandes alterações danifiquem os pacotes "
-"existentes, foi introduzido o conceito de níveis de compatibilidade no "
-"debhelper. Você diz ao debhelper qual o nível de compatibilidade que ele "
-"deve usar, e ele modifica o seu comportamento de várias maneiras."
+"Por predefinição, o L<dh(1)> irá computar várias variáveis de ambiente (ex. "
+"ao usar L<dpkg-buildflags(1)>) e guarda-los em cache para evitar que todas "
+"as ferramentas B<dh_auto_*> os recompute."
#. type: textblock
-#: debhelper.pod:270
+#: debhelper.pod:442
msgid ""
-"Tell debhelper what compatibility level to use by writing a number to "
-"F<debian/compat>. For example, to turn on v9 mode:"
+"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 ""
-"Diz ao debhelper qual nível de compatibilidade deve usar ao escrever um "
-"número em F<debian/compat>. Por exemplo, para activar o modo v9:"
+"Quando se passa esta opção, a ferramenta B<dh_auto_*> concreta irá ignorar a "
+"cache de L<dh(1)> e re-despoletar uma recompilação destas variáveis. Isto é "
+"útil nos casos muito raros onde o pacote precisa de fazer múltiplas "
+"compilações mas com diferentes opções B<...FLAGS>. Um exemplo concreto seria "
+"precisar de alterar o parâmetro B<-O> em B<CFLAGS> na segunda compilação:"
#. type: verbatim
-#: debhelper.pod:273
+#: debhelper.pod:449
#, no-wrap
msgid ""
-" % echo 9 > debian/compat\n"
+" export DEB_CFLAGS_MAINT_APPEND=-O3\n"
"\n"
msgstr ""
-" % echo 9 > debian/compat\n"
+" export DEB_CFLAGS_MAINT_APPEND=-O3\n"
"\n"
-#. type: textblock
-#: debhelper.pod:275
-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 9, ensure debian/control has:"
-msgstr ""
-"O seu pacote também vai precisar de uma dependência de compilação de versão "
-"de uma versão do debhelper igual (ou maior que) ao nível de compatibilidade "
-"que o seu pacote usa. Portanto para nível de compatibilidade 9, certifique-"
-"se que debian/control tem:"
-
#. type: verbatim
-#: debhelper.pod:279
+#: debhelper.pod:451
#, no-wrap
msgid ""
-" Build-Depends: debhelper (>= 9)\n"
+" %:\n"
+" dh $@\n"
"\n"
msgstr ""
-" Build-Depends: debhelper (>= 9)\n"
+" %:\n"
+" dh $@\n"
"\n"
-#. type: textblock
-#: debhelper.pod:281
-msgid ""
-"Unless otherwise indicated, all debhelper documentation assumes that you are "
-"using the most recent compatibility level, and in most cases does not "
-"indicate if the behavior is different in an earlier compatibility level, so "
-"if you are not using the most recent compatibility level, you're advised to "
-"read below for notes about what is different in earlier compatibility levels."
-msgstr ""
-"A menos que seja indicado o contrário, toda a documentação do debhelper "
-"assume que você está a usar o nível de compatibilidade mais recente, e na "
-"maioria dos casos não indica se o comportamento é diferente num nível de "
-"compatibilidade anterior, portanto se não está a usar o nível de "
-"compatibilidade mais recente, você é aconselhado a procurar em baixo por "
-"notas acerca do que é diferente nos níveis de compatibilidade anteriores."
-
-#. type: textblock
-#: debhelper.pod:288
-msgid "These are the available compatibility levels:"
-msgstr "Estes são os níveis de compatibilidade disponíveis:"
-
-#. type: =item
-#: debhelper.pod:292
-msgid "v1"
-msgstr "v1"
-
-#. type: textblock
-#: debhelper.pod:294
-msgid ""
-"This is the original debhelper compatibility level, and so it is the default "
-"one. In this mode, debhelper will use F<debian/tmp> as the package tree "
-"directory for the first binary package listed in the control file, while "
-"using debian/I<package> for all other packages listed in the F<control> file."
-msgstr ""
-"Este é o nível de compatibilidade original do debhelper, e por isso é o "
-"predefinido. Neste modo, o debhelper irá usar F<debian/tmp> como o "
-"directório da árvore do pacote para o primeiro pacote binário listado no "
-"ficheiro de controle, enquanto usa debian/I<pacote> para todos os outros "
-"pacotes listados no ficheiro F<control>."
-
-#. type: textblock
-#: debhelper.pod:299 debhelper.pod:306 debhelper.pod:329 debhelper.pod:358
-msgid "This mode is deprecated."
-msgstr "Este modo está descontinuado."
-
-#. type: =item
-#: debhelper.pod:301
-msgid "v2"
-msgstr "v2"
-
-#. type: textblock
-#: debhelper.pod:303
-msgid ""
-"In this mode, debhelper will consistently use debian/I<package> as the "
-"package tree directory for every package that is built."
-msgstr ""
-"Neste modo, o debhelper irá consistentemente usar debian/I<pacote> como o "
-"directório da árvore do pacote para cada pacote que é compilado."
-
-#. type: =item
-#: debhelper.pod:308
-msgid "v3"
-msgstr "v3"
-
-#. type: textblock
-#: debhelper.pod:310
-msgid "This mode works like v2, with the following additions:"
-msgstr "Este modo funciona como v2, com as seguintes adições:"
-
-#. type: =item
-#: debhelper.pod:314 debhelper.pod:319 debhelper.pod:323 debhelper.pod:337
-#: debhelper.pod:342 debhelper.pod:347 debhelper.pod:352 debhelper.pod:366
-#: debhelper.pod:370 debhelper.pod:375 debhelper.pod:379 debhelper.pod:391
-#: debhelper.pod:396 debhelper.pod:402 debhelper.pod:408 debhelper.pod:421
-#: debhelper.pod:428 debhelper.pod:432 debhelper.pod:436 debhelper.pod:449
-#: debhelper.pod:453 debhelper.pod:461 debhelper.pod:466 debhelper.pod:480
-#: debhelper.pod:485 debhelper.pod:492 debhelper.pod:497 debhelper.pod:502
-#: debhelper.pod:506 debhelper.pod:512 debhelper.pod:517 debhelper.pod:522
-#: debhelper.pod:535 debhelper.pod:542
-msgid "-"
-msgstr "-"
-
-#. type: textblock
-#: debhelper.pod:316
-msgid ""
-"Debhelper config files support globbing via B<*> and B<?>, when appropriate. "
-"To turn this off and use those characters raw, just prefix with a backslash."
-msgstr ""
-"Os ficheiros de configuração do debhelper suportam englobamentos via B<*> e "
-"B<?>, onde apropriado. Para desligar isto e usar esses caracteres a cru, "
-"basta antecedê-los com uma barra invertida (backslash \"\")."
-
-#. type: textblock
-#: debhelper.pod:321
-msgid ""
-"B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call "
-"B<ldconfig>."
-msgstr ""
-"B<dh_makeshlibs> faz com que os scripts F<postinst> e F<postrm> chamem "
-"B<ldconfig>."
-
-#. type: textblock
-#: debhelper.pod:325
-msgid ""
-"Every file in F<etc/> is automatically flagged as a conffile by "
-"B<dh_installdeb>."
-msgstr ""
-"Qualquer ficheiro em F<etc/> é marcado automaticamente como um conffile "
-"(ficheiro de configuração) pelo B<dh_installdeb>."
-
-#. type: =item
-#: debhelper.pod:331
-msgid "v4"
-msgstr "v4"
-
-#. type: textblock
-#: debhelper.pod:333
-msgid "Changes from v3 are:"
-msgstr "As alterações a partir de v3 são:"
-
-#. type: textblock
-#: debhelper.pod:339
-msgid ""
-"B<dh_makeshlibs -V> will not include the Debian part of the version number "
-"in the generated dependency line in the shlibs file."
-msgstr ""
-"B<dh_makeshlibs -V> não irá incluir a parte Debian do número de versão na "
-"linha de dependência gerada no ficheiro shlibs."
-
-#. type: textblock
-#: debhelper.pod:344
-msgid ""
-"You are encouraged to put the new B<${misc:Depends}> into F<debian/control> "
-"to supplement the B<${shlibs:Depends}> field."
-msgstr ""
-"Você é encorajado a colocar o novo B<${misc:Depends}> em F<debian/control> "
-"para suplementar o campo B<${shlibs:Depends}>."
-
-#. type: textblock
-#: debhelper.pod:349
-msgid ""
-"B<dh_fixperms> will make all files in F<bin/> directories and in F<etc/init."
-"d> executable."
-msgstr ""
-"B<dh_fixperms> irá tornar em executáveis todos os ficheiros nos directórios "
-"F<bin/> e em F<etc/init.d>."
-
-#. type: textblock
-#: debhelper.pod:354
-msgid "B<dh_link> will correct existing links to conform with policy."
-msgstr ""
-"B<dh_link> irá corrigir os links existentes para ficarem em conformidade com "
-"a politica."
-
-#. type: =item
-#: debhelper.pod:360
-msgid "v5"
-msgstr "v5"
-
-#. type: textblock
-#: debhelper.pod:362
-msgid "Changes from v4 are:"
-msgstr "As alterações a partir de v4 são:"
-
-#. type: textblock
-#: debhelper.pod:368
-msgid "Comments are ignored in debhelper config files."
-msgstr "Comentários são ignorados nos ficheiros de configuração do debhelper."
-
-# http://de.wikipedia.org/wiki/Debugsymbol
-#. type: textblock
-#: debhelper.pod:372
-msgid ""
-"B<dh_strip --dbg-package> now specifies the name of a package to put "
-"debugging symbols in, not the packages to take the symbols from."
-msgstr ""
-"Agora B<dh_strip --dbg-package> especifica o nome de um pacote onde colocar "
-"símbolos de depuração, e não os pacotes de onde tirar os símbolos."
-
-#. type: textblock
-#: debhelper.pod:377
-msgid "B<dh_installdocs> skips installing empty files."
-msgstr "B<dh_installdocs> evita a instalação de ficheiros vazios."
-
-#. type: textblock
-#: debhelper.pod:381
-msgid "B<dh_install> errors out if wildcards expand to nothing."
-msgstr ""
-"B<dh_install> resulta em erro se as \"wildcards\" expandirem para nada."
-
-#. type: =item
-#: debhelper.pod:385
-msgid "v6"
-msgstr "v6"
-
-#. type: textblock
-#: debhelper.pod:387
-msgid "Changes from v5 are:"
-msgstr "As alterações a partir de v5 são:"
-
-#. type: textblock
-#: debhelper.pod:393
-msgid ""
-"Commands that generate maintainer script fragments will order the fragments "
-"in reverse order for the F<prerm> and F<postrm> scripts."
-msgstr ""
-"Os comandos que geram fragmentos de script de mantenedor irão ordenar os "
-"fragmentos em ordem reversa para os scripts F<prerm> e F<postrm>."
-
-#. type: textblock
-#: debhelper.pod:398
-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 "
-"directory."
-msgstr ""
-"B<dh_installwm> irá instalar uma ligação escrava de manual para F<x-window-"
-"manager.1.gz>, se vir o manual em F<usr/share/man/man1> no directório de "
-"compilação do pacote."
-
-#. type: textblock
-#: debhelper.pod:404
-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 ""
-"O B<dh_builddeb> anteriormente não apagava nada que correspondesse a "
-"B<DH_ALWAYS_EXCLUDE>, se estivesse definida uma lista de coisas a excluir, "
-"como B<CVS:.svn:.git>. Mas agora fá-lo."
-
-#. type: textblock
-#: debhelper.pod:410
+#. type: verbatim
+#: debhelper.pod:454
+#, no-wrap
msgid ""
-"B<dh_installman> allows overwriting existing man pages in the package build "
-"directory. In previous compatibility levels it silently refuses to do this."
+" 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 ""
-"B<dh_installman> permite a sobreposição de manuais existentes no directório "
-"de compilação do pacote. Nos níveis de compatibilidade anteriores recusava-"
-"se em silêncio a fazer isto."
-
-#. type: =item
-#: debhelper.pod:415
-msgid "v7"
-msgstr "v7"
-
-#. type: textblock
-#: debhelper.pod:417
-msgid "Changes from v6 are:"
-msgstr "As alterações a partir de v6 são:"
+" 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"
#. type: textblock
-#: debhelper.pod:423
+#: debhelper.pod:459
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 "
-"using B<--sourcedir>). This allows B<dh_install> to interoperate with "
-"B<dh_auto_install>, which installs to F<debian/tmp>, without needing any "
-"special parameters."
+"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 ""
-"B<dh_install>, irá regressar a procurar por ficheiros em F<debian/tmp> se "
-"não os encontrar no directório actual (ou onde você lhe disser para procurar "
-"usando B<--sourcedir>). Isto permite ao B<dh_install> inter-operar com o "
-"B<dh_auto_install>, o qual instala para F<debian/tmp>, sem precisar de "
-"nenhuns parâmetros especiais."
-
-#. type: textblock
-#: debhelper.pod:430
-msgid "B<dh_clean> will read F<debian/clean> and delete files listed there."
-msgstr "B<dh_clean> irá ler F<debian/clean> e apagar os ficheiros listados lá."
-
-#. type: textblock
-#: debhelper.pod:434
-msgid "B<dh_clean> will delete toplevel F<*-stamp> files."
-msgstr "B<dh_clean> irá apagar ficheiros F<*-stamp> do nível de topo."
+"Sem B<--reload-all-buildenv-variables> na segunda chamada ao "
+"L<dh_auto_configure(1)>, a alteração em B<DEB_CFLAGS_MAINT_APPEND> seria "
+"ignorada pois L<dh_auto_configure(1)> iria usar o valor em cache de <CFLAGS> "
+"definido por L<dh(1)>."
#. type: textblock
-#: debhelper.pod:438
+#: debhelper.pod:464
msgid ""
-"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
-"none is specified."
+"This option is only available with B<< debhelper (>= 12.7~) >> when the "
+"package uses compatibility level 9 or later."
msgstr ""
-"B<dh_installchangelogs> irá adivinhar qual ficheiro está no relatório de "
-"alterações da origem se nenhum for especificado."
+"Esta opção está apenas disponível com B<< debhelper (>= 12.7~) >> quando o "
+"pacote usar nível de compatibilidade 9 ou posterior."
#. type: =item
-#: debhelper.pod:443
-msgid "v8"
-msgstr "v8"
-
-#. type: textblock
-#: debhelper.pod:445
-msgid "Changes from v7 are:"
-msgstr "As alterações a partir de v7 são:"
-
-#. type: textblock
-#: debhelper.pod:451
-msgid ""
-"Commands will fail rather than warning when they are passed unknown options."
-msgstr ""
-"Os comandos irão falhar em vez de emitirem avisos quando lhes são passadas "
-"opções desconhecidas."
-
-#. type: textblock
-#: debhelper.pod:455
-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. "
-"Also, libraries in unusual locations that B<dpkg-gensymbols> would not have "
-"processed before will be passed to it, a behavior change that can cause some "
-"packages to fail to build."
-msgstr ""
-"B<dh_makeshlibs> irá correr B<dpkg-gensymbols> em todas as bibliotecas "
-"partilhadas para as quais gera ficheiros shlibs. Portanto o B<-X> pode ser "
-"usado para excluir bibliotecas. Também, as bibliotecas em localizações fora "
-"do habitual que o B<dpkg-gensymbols> não tenha processado antes serão "
-"passadas para ele, uma alteração no comportamento que pode causar que alguns "
-"pacotes falhem a compilar."
-
-#. type: textblock
-#: debhelper.pod:463
-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 $@>"
-"\"."
-msgstr ""
-"B<dh> requer que a sequência a correr seja especificada como o primeiro "
-"parâmetro, e quaisquer switches que venham depois dela. Isto é, use B<dh $@ "
-"--foo>\", e não \"B<dh --foo $@>"
+#: debhelper.pod:467 dh:299
+msgid "B<--list>, B<-l>"
+msgstr "B<--list>, B<-l>"
#. type: textblock
-#: debhelper.pod:468
+#: debhelper.pod:469
msgid ""
-"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
-"F<Makefile.PL>."
+"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 ""
-"B<dh_auto_>I<*> prefere usar o B<Module::Build> do Perl em preferência de "
-"F<Makefile.PL>."
-
-#. type: =item
-#: debhelper.pod:472
-msgid "v9"
-msgstr "v9"
-
-#. type: textblock
-#: debhelper.pod:474
-msgid "This is the recommended mode of operation."
-msgstr "Este é o modo de operação recomendado."
+"Lista todos os sistemas de compilação suportados pelo debhelper neste "
+"sistema. A lista inclui ambos sistemas de compilação predefinidos e de "
+"terceiros (marcados como tal). Também mostra qual o sistema de compilação "
+"será seleccionado automaticamente, ou qual está especificado manualmente com "
+"a opção B<--buildsystem>."
-#. type: textblock
+#. type: =head1
#: debhelper.pod:476
-msgid "Changes from v8 are:"
-msgstr "As alterações a partir de v8 são:"
+msgid "COMPATIBILITY LEVELS"
+msgstr "NÍVEIS DE COMPATIBILIDADE"
#. type: textblock
-#: debhelper.pod:482
+#: debhelper.pod:478
msgid ""
-"Multiarch support. In particular, B<dh_auto_configure> passes multiarch "
-"directories to autoconf in --libdir and --libexecdir."
+"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."
msgstr ""
-"Suporte a multi-arquitectura. Em particular, B<dh_auto_configure> passa "
-"directórios de multi-arquitectura ao autoconf em --libdir e --libexecdir."
+"De tempos a tempos, precisam de ser feitas grandes alterações no debhelper "
+"que não compatíveis com as versões anteriores, para o manter limpo e bem "
+"construído quando as necessidades alteram e o seu autor ganha mais "
+"experiência. Para prevenir que tais grandes alterações danifiquem os pacotes "
+"existentes, foi introduzido o conceito de níveis de compatibilidade no "
+"debhelper. Você deve dizer ao debhelper qual o nível de compatibilidade que "
+"ele deve usar, e ele modifica o seu comportamento de várias maneiras."
#. type: textblock
-#: debhelper.pod:487
+#: debhelper.pod:485
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 "
-"targets that exist in the rules file. There's no need to define an explicit "
-"binary target with explicit dependencies on the other targets."
+"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 ""
-"O dh tem conhecimento das dependências habituais entre metas em debian/"
-"rules. Por isso, o \"dh binary\" irá correr quaisquer metas de build, build-"
-"arch, build-indep, install, etc que existam no ficheiro de regras. Não há "
-"necessidade de definir uma meta binário explícito com dependências "
-"explícitas em outras metas."
+"No debhelper actual, você pode especificar o nível de compatibilidade em "
+"F<debian/control> ao adicionar um Build-Depends no pacote debhelper-compat. "
+"Por exemplo, para usar modo v#RECOMMENDED_COMPAT#, assegure que F<debian/"
+"control> tem:"
-#. type: textblock
-#: debhelper.pod:494
+#. type: verbatim
+#: debhelper.pod:489
+#, no-wrap
msgid ""
-"B<dh_strip> compresses debugging symbol files to reduce the installed size "
-"of -dbg packages."
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
+"\n"
msgstr ""
-"B<dh_strip> comprime ficheiros de símbolos de depuração para reduzir o "
-"tamanho instalado dos pacotes -dbg."
+" Build-Depends: debhelper-compat (= #RECOMMENDED_COMPAT#)\n"
+"\n"
#. type: textblock
-#: debhelper.pod:499
+#: debhelper.pod:491
msgid ""
-"B<dh_auto_configure> does not include the source package name in --"
-"libexecdir when using autoconf."
+"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 ""
-"B<dh_auto_configure> não inclui o nome do pacote fonte em --libexecdir "
-"quando usa autoconf."
+"Isto também serve como uma dependência de compilação de versão apropriada "
+"numa versão suficiente do pacote debhelper, assim você não precisa de "
+"especificar uma dependência de compilação de versão separada no pacote "
+"debhelper a menos que precise de um lançamento pontual específico do "
+"debhelper (tal como para a introdução de uma nova funcionalidade ou "
+"correcção de bug dentro de um nível de compatibilidade)."
#. type: textblock
-#: debhelper.pod:504
-msgid "B<dh> does not default to enabling --with=python-support"
-msgstr "B<dh> não tem por predefinição a activação de --with=python-support"
-
-#. type: textblock
-#: debhelper.pod:508
+#: debhelper.pod:497
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."
+"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, if only for selected commands, "
+"B<DH_COMPAT>)."
msgstr ""
-"Todos os programas debhelper B<dh_auto_>I<*> e B<dh> definem variáveis de "
-"ambiente listadas por B<dpkg-buildflags>, a menos que elas estejam já "
-"definidas."
+"Note que o debhelper não fornece debhelper-compat para os níveis de "
+"compatibilidade experimental ou beta; os pacotes que experimentem com esses "
+"níveis de compatibilidade devem usar F<debian/compat> ou, se apenas para "
+"comandos selecionados, B<DH_COMPAT>."
#. type: textblock
-#: debhelper.pod:514
+#: debhelper.pod:501
msgid ""
-"B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and LDFLAGS "
-"to perl F<Makefile.PL> and F<Build.PL>"
+"Prior versions of debhelper required specifying the compatibility level in "
+"the file F<debian/compat>, and current debhelper still supports this for "
+"backward compatibility. To use this method, the F<debian/compat> file 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 ""
-"B<dh_auto_configure> passa as B<dpkg-buildflags> CFLAGS, CPPFLAGS, e LDFLAGS "
-"para F<Makefile.PL> e F<Build.PL> de perl."
+"As versões anteriores do debhelper requeriam o nível de compatibilidade "
+"especificado no ficheiro F<debian/compat>, e o debhelper actual ainda "
+"suporta isto para compatibilidade com as versões anteriores Para usar este "
+"método, o ficheiro F<debian/compat> deve conter o nível de compatibilidade "
+"como um número singular, e nenhum outro conteúdo. Se você especificar o "
+"nível de compatibilidade neste método, o seu pacote vai também precisar duma "
+"dependência de compilação baseada em versão de uma versão do pacote "
+"debhelper igual (ou superior) ao nível de compatibilidade que o seu pacote "
+"usa. Assim, se você especificar o nível de compatibilidade "
+"#RECOMMENDED_COMPAT# em F<debian/compat>, assegure-se que F<debian/control> "
+"contém:"
-#. type: textblock
-#: debhelper.pod:519
+#. type: verbatim
+#: debhelper.pod:511
+#, no-wrap
msgid ""
-"B<dh_strip> puts separated debug symbols in a location based on their build-"
-"id."
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#~)\n"
+"\n"
msgstr ""
-"B<dh_strip> põe símbolos de depuração separados numa localização baseada no "
-"seu build-id."
+" Build-Depends: debhelper (>= #RECOMMENDED_COMPAT#~)\n"
+"\n"
#. type: textblock
-#: debhelper.pod:524
+#: debhelper.pod:513
msgid ""
-"Executable debhelper config files are run and their output used as the "
-"configuration."
+"Note that you must use either the build-dependency on debhelper-compat or "
+"the F<debian/compat> file. Whenever possible, the debhelper-compat build-"
+"dependency is recommended."
msgstr ""
-"Os ficheiros de configuração executáveis do debhelper são corridos e os seus "
-"resultados usados como configuração."
-
-#. type: =item
-#: debhelper.pod:529
-msgid "v10"
-msgstr "v10"
+"Note que você usar ou build-dependency em debhelper-compat ou o ficheiro "
+"F<debian/compat>. Sempre que possível, é recomendado a build-dependency do "
+"debhelper-compat."
#. type: textblock
-#: debhelper.pod:531
+#: debhelper.pod:517
msgid ""
-"This compatibility level is still open for development; use with caution."
+"If needed be, the B<DH_COMPAT> environment variable can be used to override "
+"the compat level for a given command. The feature is mostly useful for "
+"either temporarily upgrading a few commands to a new compat level or keeping "
+"a few commands on a lower compat level. The feature is best used sparingly "
+"as it effectively introduces special-cases into the F<debian/rules> file "
+"that may be surprising to maintainers or reviewers (or, in the long term, to "
+"yourself)."
msgstr ""
-"Este nível de compatibilidade ainda está aberto em desenvolvimento; use com "
-"cuidado."
-
-#. type: textblock
-#: debhelper.pod:533
-msgid "Changes from v9 are:"
-msgstr "As alterações a partir de v9 são:"
+"Se necessário, a variável de ambiente B<DH_COMPAT> pode ser usada para "
+"sobrepor o nível de compatibilidade para um dado comando. Esta "
+"funcionalidade é maioritariamente útil seja para actualizar temporariamente "
+"alguns comandos para um novo nível de compatibilidade ou manter alguns "
+"comandos num nível de compatibilidade inferior. Esta funcionalidade é melhor "
+"ser usada com moderação pois introduz efectivamente casos-especiais no "
+"ficheiro F<debian/rules> que podem ser surpreendentes para maintainers ou "
+"revisores (ou, a longo prazo, para si)."
#. type: textblock
-#: debhelper.pod:537
+#: debhelper.pod:525
msgid ""
-"B<dh_installinit> will no longer install a file named debian/I<package> as "
-"an init script."
+"Unless otherwise indicated, all debhelper documentation assumes that you are "
+"using the most recent compatibility level, and in most cases does not "
+"indicate if the behavior is different in an earlier compatibility level, so "
+"if you are not using the most recent compatibility level, you're advised to "
+"read below for notes about what is different in earlier compatibility levels."
msgstr ""
-"B<dh_installinit> não irá mais instalar um ficheiro chamado debian/I<pacote> "
-"como um script de iniciação (init)."
+"A menos que seja indicado o contrário, toda a documentação do debhelper "
+"assume que você está a usar o nível de compatibilidade mais recente, e na "
+"maioria dos casos não indica se o comportamento é diferente num nível de "
+"compatibilidade anterior, portanto se não está a usar o nível de "
+"compatibilidade mais recente, você é aconselhado a procurar em baixo por "
+"notas acerca do que é diferente nos níveis de compatibilidade anteriores."
+
+#. type: =head2
+#: debhelper.pod:532
+msgid "Supported compatibility levels"
+msgstr "Níveis de compatibilidade suportados"
#. type: textblock
-#: debhelper.pod:544
+#: debhelper.pod:534
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."
+"The list of supported compatibility levels and the related upgrade check "
+"list has moved to L<debhelper-compat-upgrade-checklist(7)>."
msgstr ""
-"B<dh> já não cria o directório de compilação do pacote quando salta a "
-"execução de comandos debhelper. Isto não vai afectar pacotes que apenas "
-"compilam com comandos debhelper, mas pode expor bugs em comandos não "
-"incluídos no debhelper."
+"A lista dos níveis de compatibilidade suportados e a lista de verificação de "
+"actualizações relacionadas foi movida para L<debhelper-compat-upgrade-"
+"checklist(7)>."
#. type: =head1
-#: debhelper.pod:553 dh_auto_test:45 dh_installcatalogs:59 dh_installdocs:121
-#: dh_installemacsen:72 dh_installexamples:53 dh_installinit:140
-#: dh_installman:82 dh_installmodules:54 dh_installudev:55 dh_installwm:54
-#: dh_installxfonts:37 dh_movefiles:64 dh_strip:68 dh_usrlocal:49
+#: debhelper.pod:537 dh_auto_test:48 dh_dwz:69 dh_installcatalogs:67
+#: dh_installdocs:202 dh_installemacsen:75 dh_installexamples:96
+#: dh_installinit:204 dh_installinitramfs:60 dh_installman:131
+#: dh_installmodules:57 dh_installudev:50 dh_installwm:66 dh_installxfonts:40
+#: dh_movefiles:67 dh_strip:119 dh_usrlocal:60 dh_systemd_enable:103
+#: dh_systemd_start:68
msgid "NOTES"
msgstr "NOTAS"
#. type: =head2
-#: debhelper.pod:555
+#: debhelper.pod:539
msgid "Multiple binary package support"
msgstr "Suporte a pacotes de múltiplos binários"
#. type: textblock
-#: debhelper.pod:557
+#: debhelper.pod:541
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 "
@@ -1284,11 +1395,11 @@ msgstr ""
"correm. No caso do seu pacote fonte gerar um pacote dependente de "
"arquitectura, e outro pacote independente da arquitectura, este não é o "
"comportamento correcto, porque você precisa de gerar os pacotes dependentes "
-"de arquitectura na meta F<debian/rules> binary-arch, e os pacotes "
-"independentes de arquitectura na meta F<debian/rules> binary-indep."
+"de arquitectura no alvo F<debian/rules> binary-arch, e os pacotes "
+"independentes de arquitectura no alvo F<debian/rules> binary-indep."
#. type: textblock
-#: debhelper.pod:565
+#: debhelper.pod:549
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<-"
@@ -1304,18 +1415,18 @@ msgstr ""
"excepções em baixo."
#. type: textblock
-#: debhelper.pod:571
+#: debhelper.pod:555
msgid ""
"First, any package whose B<Architecture> field in B<debian/control> does not "
-"match the build architecture will be excluded (L<Debian Policy, section "
-"5.6.8>)."
+"match the B<DEB_HOST_ARCH> architecture will be excluded (L<Debian Policy, "
+"section 5.6.8>)."
msgstr ""
"Primeiro, qualquer pacote cujo campo B<Architecture> em B<debian/control> "
-"não corresponda à arquitectura de compilação será excluído (L<Debian Policy, "
-"secção 5.6.8>)."
+"não corresponda à arquitectura B<DEB_HOST_ARCH> será excluído (L<Debian "
+"Policy, secção 5.6.8>)."
#. type: textblock
-#: debhelper.pod:575
+#: debhelper.pod:559
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 "
@@ -1327,13 +1438,88 @@ msgstr ""
"nas estrofes de pacotes binários em B<debian/control>, de acordo com a "
"política proposta em L<https://wiki.debian.org/BuildProfileSpec>."
+#. type: =head3
+#: debhelper.pod:564
+msgid "Interaction between package selections and Build-Profiles"
+msgstr "Interacção entre selecções de pacotes e Build-Profiles"
+
+#. type: textblock
+#: debhelper.pod:566
+msgid ""
+"Build-Profiles affect which packages are included in the package selections "
+"mechanisms in debhelper. Generally, the package selections are described "
+"from the assumption that all packages are enabled. This section describes "
+"how the selections react when a package is disabled due to the active Build-"
+"Profiles (or lack of active Build-Profiles)."
+msgstr ""
+"Build-Profiles afectam quais pacotes são incluídos nos mecanismos de "
+"selecção de pacotes do debhelper. Geralmente, as selecções de pacotes são "
+"descritas a partir do pressuposto que todos os pacotes estão activados. Esta "
+"secção descreve como as selecções reagem quando um pacote é desactivado "
+"devido a Build-Profiles activos (ou a falta de Build-Profiles activos)."
+
+#. type: =item
+#: debhelper.pod:574
+msgid "-a/--arch, -i/--indep OR no selection options (a raw \"dh_X\" call)"
+msgstr ""
+"-a/--arch, -i/--indep OU nenhuma opção de selecção (uma chamada \"dh_X\" "
+"crua)"
+
+#. type: textblock
+#: debhelper.pod:576
+msgid ""
+"The package disabled by Build-Profiles is silently excluded from the "
+"selection."
+msgstr ""
+"O pacote desactivado por Build-Profiles é excluído em silêncio da selecção."
+
+#. type: textblock
+#: debhelper.pod:579
+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 "
+"do the build in the first place."
+msgstr ""
+"Note que vai receber um aviso se I<todos> os pacotes relacionados com estas "
+"selecções estiverem desactivados. Nesse caso, geralmente não faz nenhum "
+"sentido sequer fazer a compilação."
+
+#. type: =item
+#: debhelper.pod:583
+msgid "-N I<package> / --no-package I<package>"
+msgstr "-N I<package> / --no-package I<package>"
+
+#. type: textblock
+#: debhelper.pod:585
+msgid "The option is accepted and effectively does nothing."
+msgstr "A opção é aceite e efectivamente não faz nada."
+
+#. type: =item
+#: debhelper.pod:587
+msgid "-p I<package> / --package I<package>"
+msgstr "-p I<package> / --package I<package>"
+
+#. type: textblock
+#: debhelper.pod:589
+msgid "The option is accepted, but debhelper will not act on the package."
+msgstr "A opção é aceite, mas o debhelper não irá actuar no pacote."
+
+#. type: textblock
+#: debhelper.pod:593
+msgid ""
+"Note that it does not matter whether a package is enabled or disabled by "
+"default."
+msgstr ""
+"Note que não importa se um pacote está activado ou desactivado por "
+"predefinição."
+
#. type: =head2
-#: debhelper.pod:580
+#: debhelper.pod:596
msgid "Automatic generation of Debian install scripts"
msgstr "Geração automática de scripts de instalação Debian"
#. type: textblock
-#: debhelper.pod:582
+#: debhelper.pod:598
msgid ""
"Some debhelper commands will automatically generate parts of Debian "
"maintainer scripts. If you want these automatically generated things "
@@ -1343,14 +1529,14 @@ msgid ""
"B<dh_installdeb>."
msgstr ""
"Alguns comandos do debhelper irão gerar automaticamente partes de scripts de "
-"mantenedor Debian. Se desejar que estas coisas geradas automaticamente sejam "
-"incluídas nos sues scripts de mantenedor Debian existentes, então você "
+"maintainer Debian. Se desejar que estas coisas geradas automaticamente sejam "
+"incluídas nos sues scripts de maintainer Debian existentes, então você "
"precisa adicionar B<#DEBHELPER#> aos seus scripts, no local onde o código "
"deverá ser adicionado. B<#DEBHELPER#> será substituído por qualquer código "
"auto-gerado quando você correr o B<dh_installdeb>."
#. type: textblock
-#: debhelper.pod:589
+#: debhelper.pod:605
msgid ""
"If a script does not exist at all and debhelper needs to add something to "
"it, then debhelper will create the complete script."
@@ -1359,7 +1545,7 @@ msgstr ""
"então o debhelper irá criar o script completo."
#. type: textblock
-#: debhelper.pod:592
+#: debhelper.pod:608
msgid ""
"All debhelper commands that automatically generate code in this way let it "
"be disabled by the -n parameter (see above)."
@@ -1368,43 +1554,57 @@ msgstr ""
"permitem que o seja desactivado pelo parâmetro -n (ver em cima)."
#. type: textblock
-#: debhelper.pod:595
+#: debhelper.pod:611
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 "
"is one way to do that (note that I made sure that $1, $2, etc are set with "
"the set command):"
msgstr ""
-"Note que o código inserido será código shell, portanto você não pode usá-lo "
-"directamente num script de Perl. Se desejar embebê-lo num script Perl, aqui "
+"Note que o código inserido será código shell, portanto você não pode usa-lo "
+"directamente num script de Perl. Se desejar embebe-lo num script Perl, aqui "
"está um modo de o fazer (note que Eu certifico-me que $1, $2, etc são "
"definidos com o comando \"set\"):"
#. type: verbatim
-#: debhelper.pod:600
+#: debhelper.pod:616
#, no-wrap
msgid ""
" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
" #DEBHELPER#\n"
" EOF\n"
-" system ($temp) / 256 == 0\n"
-" \tor die \"Problem with debhelper scripts: $!\";\n"
+" if (system($temp)) {\n"
+" my $exit_code = ($? >> 8) & 0xff;\n"
+" my $signal = $? & 0x7f;\n"
+" if ($exit_code) {\n"
+" die(\"The debhelper script failed with error code: ${exit_code}\");\n"
+" } else {\n"
+" die(\"The debhelper script was killed by signal: ${signal}\");\n"
+" }\n"
+" }\n"
"\n"
msgstr ""
" my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
" #DEBHELPER#\n"
" EOF\n"
-" system ($temp) / 256 == 0\n"
-" \tor die \"Problem with debhelper scripts: $!\";\n"
+" if (system($temp)) {\n"
+" my $exit_code = ($? >> 8) & 0xff;\n"
+" my $signal = $? & 0x7f;\n"
+" if ($exit_code) {\n"
+" die(\"The debhelper script failed with error code: ${exit_code}\");\n"
+" } else {\n"
+" die(\"The debhelper script was killed by signal: ${signal}\");\n"
+" }\n"
+" }\n"
"\n"
#. type: =head2
-#: debhelper.pod:606
+#: debhelper.pod:629
msgid "Automatic generation of miscellaneous dependencies."
msgstr "Geração automática de dependências variadas."
#. type: textblock
-#: debhelper.pod:608
+#: debhelper.pod:631
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 "
@@ -1423,21 +1623,21 @@ msgstr ""
"debhelper oferece um modo de automatizar isto."
#. type: textblock
-#: debhelper.pod:616
+#: debhelper.pod:639
msgid ""
"All commands of this type, besides documenting what dependencies may be "
-"needed on their man pages, will automatically generate a substvar called B<"
-"${misc:Depends}>. If you put that token into your F<debian/control> file, it "
-"will be expanded to the dependencies debhelper figures you need."
+"needed on their man pages, will automatically generate a substvar called "
+"B<${misc:Depends}>. If you put that token into your F<debian/control> file, "
+"it will be expanded to the dependencies debhelper figures you need."
msgstr ""
"Todos os comandos deste tipo, além de documentar quais dependências podem "
"ser necessárias nos seus manuais, irão gerar automaticamente um substvar "
-"chamado B<${misc:Depends}>. Se você colocar esse testemunho no seu ficheiro "
+"chamado B<${misc:Depends}>. Se você colocar esse token no seu ficheiro "
"F<debian/control>, será expandido às dependências que o debhelper descobre "
"que você precisa."
#. type: textblock
-#: debhelper.pod:621
+#: debhelper.pod:644
msgid ""
"This is entirely independent of the standard B<${shlibs:Depends}> generated "
"by L<dh_makeshlibs(1)>, and the B<${perl:Depends}> generated by "
@@ -1450,12 +1650,12 @@ msgstr ""
"corresponderem à realidade."
#. type: =head2
-#: debhelper.pod:626
+#: debhelper.pod:649
msgid "Package build directories"
msgstr "Directórios de compilação de pacotes"
#. type: textblock
-#: debhelper.pod:628
+#: debhelper.pod:651
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>."
@@ -1465,32 +1665,32 @@ msgstr ""
"I<pacote>."
#. type: textblock
-#: debhelper.pod:631
+#: debhelper.pod:654
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>"
-"\", will use B<debian/tmp> as the temporary directory. Note that if you use "
-"B<-P>, the debhelper programs can only be acting on a single package at a "
-"time. So if you have a package that builds many binary packages, you will "
+"supported by the B<-P> flag. For example, \"B<dh_installdocs -Pdebian/"
+"tmp>\", will use B<debian/tmp> as the temporary directory. Note that if you "
+"use B<-P>, the debhelper programs can only be acting on a single package at "
+"a time. So if you have a package that builds many binary packages, you will "
"need to also use the B<-p> flag to specify which binary package the "
"debhelper program will act on."
msgstr ""
"Por vezes, você pode querer usar outro directório temporário. Isto é "
-"suportado pela bandeira B<-P>, por exemplo, \"B<dh_installdocs -Pdebian/tmp>"
-"\", irá usar B<debian/tmp> como directório temporário. Note que se você usar "
-"B<-P>, os programas debhelper só podem actuar num pacote de cada vez. Por "
-"isso se tem um pacote que compila muitos pacotes binários, irá também "
+"suportado pela bandeira B<-P>, por exemplo, \"B<dh_installdocs -Pdebian/"
+"tmp>\", irá usar B<debian/tmp> como directório temporário. Note que se você "
+"usar B<-P>, os programas debhelper só podem actuar num pacote de cada vez. "
+"Por isso se tem um pacote que compila muitos pacotes binários, irá também "
"precisar de usar a bandeira B<-p> para especificar em qual pacote binário o "
"programa debhelper irá actuar."
#. type: =head2
-#: debhelper.pod:639
+#: debhelper.pod:662
msgid "udebs"
msgstr "udebs"
-# FIXME : an udeb
+# FIXME : a udeb
#. type: textblock
-#: debhelper.pod:641
+#: debhelper.pod:664
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>. "
@@ -1507,65 +1707,122 @@ msgstr ""
"F<preinst>, F<postrm>, F<prerm>, e F<config>, etc."
#. type: =head1
-#: debhelper.pod:648
+#: debhelper.pod:671
msgid "ENVIRONMENT"
msgstr "AMBIENTE"
+#. type: textblock
+#: debhelper.pod:673
+msgid ""
+"This section describes some of the environment variables that influences the "
+"behaviour of debhelper or which debhelper interacts with."
+msgstr ""
+"Esta secção descreve algumas das variáveis de ambiente que influenciam o "
+"comportamento do debhelper ou de quem o debhelper interage."
+
+#. type: textblock
+#: debhelper.pod:676
+msgid ""
+"It is important to note that these must be actual environment variables in "
+"order to affect the behaviour of debhelper (not simply F<Makefile> "
+"variables). To specify them properly in F<debian/rules>, be sure to "
+"\"B<export>\" them. For example, \"B<export DH_VERBOSE>\"."
+msgstr ""
+"É importante notar que estas que estas têm de ser mesmo variáveis de "
+"ambiente de modo a afectarem o comportamento do debhelper (e não "
+"simplesmente variáveis do F<Makefile>). Para as especificar correctamente em "
+"F<debian/rules>, assegure-se de lhes fazer \"B<export>\". Por exemplo, "
+"\"B<export DH_VERBOSE>\""
+
#. type: =item
-#: debhelper.pod:652
+#: debhelper.pod:683
msgid "B<DH_VERBOSE>"
msgstr "B<DH_VERBOSE>"
#. type: textblock
-#: debhelper.pod:654
+#: debhelper.pod:685
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."
+"Set to a non-empty value to enable verbose mode. Please see the B<-v> / B<--"
+"verbose> option for details."
msgstr ""
-"Defina para B<1> para activar o modo detalhado. O debhelper irá mostrar os "
-"resultados de cada comando que corre. Também activa relatórios de compilação "
-"detalhados para alguns sistemas de compilação como o autoconf."
+"Definir para um valor não-vazio para activar o modo detalhado. Por favor "
+"veja a opção B<-v> / B<--verbose> para detalhes."
#. type: =item
-#: debhelper.pod:657
+#: debhelper.pod:688
+msgid "B<DH_QUIET>"
+msgstr "B<DH_QUIET>"
+
+#. type: textblock
+#: debhelper.pod:690
+msgid ""
+"Set to a non-empty value to enable quiet mode. Debhelper will not output "
+"commands calling the upstream build system nor will dh print which "
+"subcommands are called and depending on the upstream build system might make "
+"that more quiet, too. This makes it easier to spot important messages but "
+"makes the output quite useless as buildd log."
+msgstr ""
+"Definir para um valor não-vazio para activar o modo silencioso. O Debhelper "
+"não irá escrever os comandos a chamar o sistema de compilação do autor nem o "
+"dh irá escrever quais sub-comandos são chamados e dependendo do sistema de "
+"compilação do autor, poderá também tornar isso mais silencioso. Isto "
+"facilita a identificação de mensagens importantes mas torna os resultados "
+"inúteis como relatório do buildd."
+
+#. type: textblock
+#: debhelper.pod:696
+msgid "Ignored if DH_VERBOSE is also set or B<-v> / B<--verbose> is passed."
+msgstr ""
+"É ignorado se DH_VERBOSE estiver também definido ou se for passado B<-v> / "
+"B<--verbose>."
+
+#. type: =item
+#: debhelper.pod:698
msgid "B<DH_COMPAT>"
msgstr "B<DH_COMPAT>"
#. type: textblock
-#: debhelper.pod:659
+#: debhelper.pod:700
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 temporariamente em que nível de compatibilidade o debhelper deve "
-"correr, sobrepondo qualquer valor em F<debian/compat>."
+"correr, sobrepondo qualquer valor especificado via Build-Depend em debhelper-"
+"compat ou via ficheiro F<debian/compat>."
#. type: =item
-#: debhelper.pod:662
+#: debhelper.pod:704
msgid "B<DH_NO_ACT>"
msgstr "B<DH_NO_ACT>"
#. type: textblock
-#: debhelper.pod:664
+#: debhelper.pod:706
msgid "Set to B<1> to enable no-act mode."
msgstr "Defina para B<1> para activar o modo no-act."
#. type: =item
-#: debhelper.pod:666
+#: debhelper.pod:708
msgid "B<DH_OPTIONS>"
msgstr "B<DH_OPTIONS>"
#. type: textblock
-#: debhelper.pod:668
+#: debhelper.pod:710
msgid ""
-"Anything in this variable will be prepended to the command line arguments of "
-"all debhelper commands."
+"All debhelper tools will parse command line arguments listed in this "
+"variable before any command option (as if they had been prepended to the "
+"command line arguments). Unfortunately, some third-party provided tools may "
+"not support this variable and will ignore these command line arguments."
msgstr ""
-"Qualquer coisa nesta variável será pre-confinada aos argumentos de linha de "
-"comandos de todos os comandos do debhelper."
+"Todas as ferramentas debhelper irão processar os argumentos de linha de "
+"comandos listados nesta variável antes de qualquer opção de comando (como se "
+"eles fossem anexados aos argumentos de linha de comandos). Infelizmente, "
+"algumas ferramentas disponibilizadas por terceiros podem não suportar esta "
+"variável e irão ignorar estes argumentos de linha de comandos."
#. type: textblock
-#: debhelper.pod:671
+#: debhelper.pod:715
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."
@@ -1574,12 +1831,12 @@ msgstr ""
"comando do debhelper, o que é geralmente melhor do que usar DH_OPTIONS."
#. type: =item
-#: debhelper.pod:674
+#: debhelper.pod:718
msgid "B<DH_ALWAYS_EXCLUDE>"
msgstr "B<DH_ALWAYS_EXCLUDE>"
#. type: textblock
-#: debhelper.pod:676
+#: debhelper.pod:720
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 "
@@ -1591,7 +1848,7 @@ msgstr ""
"sua árvore de compilação do pacote."
#. type: textblock
-#: debhelper.pod:680
+#: debhelper.pod:724
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 "
@@ -1609,7 +1866,7 @@ msgstr ""
"seu é compilado."
#. type: textblock
-#: debhelper.pod:687
+#: debhelper.pod:731
msgid ""
"Multiple things to exclude can be separated with colons, as in "
"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
@@ -1617,91 +1874,2468 @@ msgstr ""
"Várias coisas a excluir podem ser separadas com \"dois pontos\", como em "
"B<DH_ALWAYS_EXCLUDE=CVS:.svn>"
+#. type: =item
+#: debhelper.pod:734
+msgid "B<DH_EXTRA_ADDONS>"
+msgstr "B<DH_EXTRA_ADDONS>"
+
+#. type: textblock
+#: debhelper.pod:736
+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 "
+"addon to run with the --with flag in the debian/rules file. Any --without "
+"calls specifying an addon in this environment variable will not be run."
+msgstr ""
+"Se definido, isto adiciona os addons especificados do dh para serem corridos "
+"nos lugares apropriados na sequência de comandos. Isto é equivalente a "
+"especificar o addon a correr coma bandeira --with no ficheiro debian/rules "
+"file. Qualquer chamada --without que especifique um addon nesta variável de "
+"ambiente não será executada."
+
+#. type: textblock
+#: debhelper.pod:741
+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 "
+"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."
+msgstr ""
+"Isto destina-se a ser usado por downstreams ou configurações locais "
+"especificas que requeiram a execução dum addon do debhelper durante "
+"múltiplas compilações sem terem que aplica patch a um grande número de "
+"ficheiros de regras. Se de todo possível, isto deve ser evitado em favor de "
+"uma bandeira --with no ficheiro rules."
+
+#. type: =item
+#: debhelper.pod:746
+msgid "B<DH_COLORS>, B<DPKG_COLORS>"
+msgstr "B<DH_COLORS>, B<DPKG_COLORS>"
+
+#. type: textblock
+#: debhelper.pod:748
+msgid ""
+"These variables can be used to control whether debhelper commands should use "
+"colors in their textual output. Can be set to \"always\", \"auto\" (the "
+"default), or \"never\"."
+msgstr ""
+"Estas variáveis podem ser usadas para controlar se os comandos do debhelper "
+"devem usar cores nos resultados textuais. Podem ser definidas para "
+"\"always\", \"auto\" (a predefinição), ou \"never\"."
+
+#. type: textblock
+#: debhelper.pod:752
+msgid ""
+"Note that B<DPKG_COLOR> also affects a number of dpkg related tools and "
+"debhelper uses it on the assumption that you want the same color setting for "
+"dpkg and debhelper. In the off-hand chance you want different color setting "
+"for debhelper, you can use B<DH_COLORS> instead or in addition to "
+"B<DPKG_COLORS>."
+msgstr ""
+"Note que B<DPKG_COLOR> também afecta um número de ferramentas relacionadas "
+"ao dpkg e o debhelper usa-o na suposição que você quer a mesma definição de "
+"cor para o dpkg e debhelper. Na hipótese de você querer definição de cor "
+"diferente para o debhelper, pode usar B<DH_COLORS> em vez disso ou em adição "
+"a B<DPKG_COLORS>."
+
+#. type: =item
+#: debhelper.pod:758
+msgid "B<NO_COLOR>"
+msgstr "B<NO_COLOR>"
+
+#. type: textblock
+#: debhelper.pod:760
+msgid ""
+"If no explicit request for color has been given (e.g. B<DH_COLORS> and "
+"B<DPKG_COLORS> are both unset), the presence of this environment variable "
+"cause the default color setting to be \"never\"."
+msgstr ""
+"Se não for fornecido um pedido específico para cor (ex. B<DH_COLORS> e "
+"B<DPKG_COLORS> estão ambos não-definidos), a presença desta variável de "
+"ambiente faz com que a definição de cor predefinida seja \"never\"."
+
+#. type: textblock
+#: debhelper.pod:764
+msgid ""
+"The variable is defined according to L<https://no-color.org/>. In this "
+"project, the environment variables (such as B<DH_COLORS>) are considered an "
+"explicit request for color."
+msgstr ""
+"A variável é definida de acordo com L<https://no-color.org/>. Neste "
+"projecto, as variáveis de ambiente (tais como B<DH_COLORS>) são consideradas "
+"um requisito explícito para cor."
+
+#. type: =item
+#: debhelper.pod:768
+msgid ""
+"B<CFLAGS>, B<CPPFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, "
+"B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS>, B<LDFLAGS>"
+msgstr ""
+"B<CFLAGS>, B<CPPFLAGS>, B<CXXFLAGS>, B<OBJCFLAGS>, B<OBJCXXFLAGS>, "
+"B<GCJFLAGS>, B<FFLAGS>, B<FCFLAGS>, B<LDFLAGS>"
+
+#. type: textblock
+#: debhelper.pod:770
+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 ""
+"Por predefinição (em qualquer nível de compatibilidade não-abandonado). o "
+"debhelper irá automaticamente definir estas flags ao usar L<dpkg-"
+"buildflags(1)>, quando não estiverem definidas. Se você precisar de "
+"modificar as flags predefinidas, por favor use as funcionalidades de L<dpkg-"
+"buildflags(1)> para o fazer (ex. B<DEB_BUILD_MAINT_OPTIONS=hardening=all> ou "
+"B<DEB_CPPFLAGS_MAINT_APPEND=-DCUSTOM_MACRO=true>) em vez de definir a "
+"variável concreta directamente."
+
+#. type: =item
+#: debhelper.pod:777
+msgid "B<HOME>, B<XDG_*>"
+msgstr "B<HOME>, B<XDG_*>"
+
+#. type: textblock
+#: debhelper.pod:779
+msgid ""
+"In compat 13 and later, these environment variables are reset before "
+"invoking the upstream build system via the B<dh_auto_*> helpers. The "
+"variables B<HOME> (all B<dh_auto_*> helpers) and B<XDG_RUNTIME_DIR> "
+"(B<dh_auto_test> only) will be set to a writable directory. All remaining "
+"variables and B<XDG_RUNTIME_DIR> (except for during B<dh_auto_test>) will be "
+"cleared."
+msgstr ""
+"Em compatibilidade 13 e posterior, estas variáveis de ambiente são "
+"reiniciadas antes de invocar o sistema de compilação do autor via ajudantes "
+"do B<dh_auto_*>. As variáveis B<HOME> (todos os ajudantes B<dh_auto_*>) e "
+"B<XDG_RUNTIME_DIR> (apenas B<dh_auto_test>) irão ser definidas para um "
+"directório gravável. Todas as restantes variáveis e B<XDG_RUNTIME_DIR> "
+"(excepto para durante B<dh_auto_test>) irão ser limpas."
+
+#. type: textblock
+#: debhelper.pod:785
+msgid ""
+"The B<HOME> directory will be created as an empty directory but it will be "
+"reused between calls to B<dh_auto_*>. Any content will persist until "
+"explicitly deleted or B<dh_clean>."
+msgstr ""
+"O directório B<HOME> será criado como um directório vazio mas ele será "
+"reutilizado entre chamadas a B<dh_auto_*>. Qualquer conteúdo irá persistir "
+"até ser explicitamente apagado ou B<dh_clean>."
+
+#. type: =item
+#: debhelper.pod:789
+msgid "B<DEB_BUILD_OPTIONS>"
+msgstr "B<DEB_BUILD_OPTIONS>"
+
+#. type: textblock
+#: debhelper.pod:791
+msgid ""
+"Please see L</Supported flags in DEB_BUILD_OPTIONS> for this environment "
+"variable."
+msgstr ""
+"Por favor veja L</Bandeiras suportadas em DEB_BUILD_OPTIONS> para esta "
+"variável de ambiente."
+
+#. type: textblock
+#: debhelper.pod:794
+msgid ""
+"Please note that this variable should I<not> be altered by package "
+"maintainers inside F<debian/rules> to change the behaviour of debhelper. "
+"Instead, where the package maintainer need these features, they should look "
+"disabling the relevant feature directly (e.g. by overriding the concrete "
+"tools)."
+msgstr ""
+"Por favor note que esta variável I<não> deve ser alterada por maintainers de "
+"pacote dentro de F<debian/rules> para mudar o comportamento do debhelper. Em "
+"vez disso, onde o maintainer do pacote precisar destas funcionalidades, eles "
+"devem procurar desactivar a funcionalidade relevante directamente (ex. ao "
+"sobrepor as ferramentas concretas)."
+
+#. type: =item
+#: debhelper.pod:799
+msgid "B<DEB_BUILD_MAINT_OPTIONS>"
+msgstr "B<DEB_BUILD_MAINT_OPTIONS>"
+
+#. type: textblock
+#: debhelper.pod:801
+msgid ""
+"This is a dpkg specific environment variable (see e.g. L<dpkg-"
+"buildflags(1)>). The debhelper tool suite silently ignores it."
+msgstr ""
+"Esta é uma variável de ambiente especifica do dpkg (veja por ex. L<dpkg-"
+"buildflags(1)>). A suite de ferramentas do debhelper ignora-a em silêncio."
+
+#. type: textblock
+#: debhelper.pod:804
+msgid ""
+"It is documented here because it has a similar name to B<DEB_BUILD_OPTIONS>, "
+"which make some people mistakenly assume that debhelper will also react to "
+"this variable."
+msgstr ""
+"Está documentada aqui porque tem um nome semelhante a B<DEB_BUILD_OPTIONS>, "
+"o que faz com que algumas pessoas assumam em erro que o debhelper também vai "
+"reagir a esta variável."
+
+#. type: =head2
+#: debhelper.pod:810
+msgid "Supported flags in DEB_BUILD_OPTIONS"
+msgstr "Bandeiras suportadas em DEB_BUILD_OPTIONS"
+
+#. type: textblock
+#: debhelper.pod:812
+msgid ""
+"The debhelper tool suite reacts to the following flags in "
+"B<DEB_BUILD_OPTIONS>."
+msgstr ""
+"A suite de ferramentas debhelper reage às seguintes bandeiras em "
+"B<DEB_BUILD_OPTIONS>."
+
+#. type: =item
+#: debhelper.pod:816
+msgid "B<dherroron=obsolete-compat-levels>"
+msgstr "B<dherroron=obsolete-compat-levels>"
+
+#. type: textblock
+#: debhelper.pod:818
+msgid "I<This is a debhelper specific value.>"
+msgstr "I<Este é um valor específico do debhelper.>"
+
+#. type: textblock
+#: debhelper.pod:820
+msgid ""
+"When B<dherroron> is present and set to B<obsolete-compat-levels>, then "
+"debhelper tools will promote deprecation warnings for usage of old soon to "
+"be removed compat levels into errors."
+msgstr ""
+"Quando B<dherroron> está presente e definida para B<obsolete-compat-levels>, "
+"então as ferramentas debhelper irão promover para erros os avisos de "
+"descontinuidade de níveis de compatibilidade antigos e prestes a serem "
+"removidos."
+
+#. type: textblock
+#: debhelper.pod:824
+msgid ""
+"This is useful for automated checking for code relying on deprecated compat "
+"levels that is scheduled for removal."
+msgstr ""
+"Isto é útil para verificação automática de confiança de código em níveis de "
+"compatibilidade descontinuados que estão agendados para remoção."
+
+#. type: textblock
+#: debhelper.pod:827
+msgid "This option is intended for testing purposes; not production builds."
+msgstr ""
+"Esta opção destina-se a objectivos de teste; não compilações produtivas."
+
+#. type: =item
+#: debhelper.pod:829
+msgid "B<nostrip>"
+msgstr "B<nostrip>"
+
+#. type: textblock
+#: debhelper.pod:831 debhelper.pod:854 debhelper.pod:868
+msgid ""
+"I<This value will change the content of the debs being built. The .deb "
+"packages built when this is set is therefore not bit-for-bit reproducible "
+"with a regular build in the general case.>"
+msgstr ""
+"I<Este valor irá mudar o conteúdo dos debs a serem compilados. Os pacotes ."
+"deb compilados quando isto está definido são por isto não reproduzíveis bit-"
+"a-bit com uma compilação regular nas generalidade dos casos.>"
+
+#. type: textblock
+#: debhelper.pod:835
+msgid ""
+"This value will cause the official debhelper tools will skip actions and "
+"helpers that either remove, detach or deduplicate debugging symbols in ELF "
+"binaries."
+msgstr ""
+"Este valor irá fazer com que as ferramentas oficiais debhelper saltem acções "
+"e ajudantes que ou removem, desanexam ou duplicam símbolos em binários ELF."
+
+#. type: textblock
+#: debhelper.pod:839
+msgid "This value affects L<dh_dwz(1)> and L<dh_strip(1)>."
+msgstr "Este valor afecta L<dh_dwz(1)> e L<dh_strip(1)>."
+
+#. type: =item
+#: debhelper.pod:841
+msgid "B<nocheck>"
+msgstr "B<nocheck>"
+
+#. type: textblock
+#: debhelper.pod:843
+msgid ""
+"This value will cause the official debhelper build systems to skip runs of "
+"upstream test suites."
+msgstr ""
+"Este valor irá fazer com que os sistemas de compilação oficiais debhelper "
+"saltem execuções de suites de testes do autor original."
+
+#. type: textblock
+#: debhelper.pod:846
+msgid ""
+"Package maintainers looking to avoid running the upstream tests should "
+"B<not> rely on this. Instead, they can add an empty override target to skip "
+"B<dh_auto_test>."
+msgstr ""
+"Os maintainers de pacotes que procurem evitar correr os testes do autor "
+"B<não> devem confiar nisto. Em vez disto, eles podem adicionar um alvo de "
+"sobreposição vazio para saltar o B<dh_auto_test>."
+
+#. type: textblock
+#: debhelper.pod:850
+msgid "This value affects L<dh_auto_test(1)>."
+msgstr "Este valor afecta L<dh_auto_test(1)>."
+
+#. type: =item
+#: debhelper.pod:852
+msgid "B<nodoc>"
+msgstr "B<nodoc>"
+
+#. type: textblock
+#: debhelper.pod:858
+msgid ""
+"This value will cause several debhelper tools to skip installation of "
+"documentation such as manpages or upstream provided documentation. "
+"Additionally, the tools will also ignore if declared documentation is "
+"\"missing\" on the assumption that the documentation has not been built."
+msgstr ""
+"Este valor irá fazer com que várias ferramentas debhelper saltem a "
+"instalação de documentação tal como os manuais ou documentação fornecida "
+"pelo autor original. Adicionalmente, as ferramentas irão também ignorar se a "
+"documentação declarada está \"em falta\" assumindo que a documentação não "
+"foi compilada."
+
+#. type: textblock
+#: debhelper.pod:863
+msgid ""
+"This value effects tools I<like> L<dh_installdocs(1)>, which I<knows> it is "
+"working with documentation."
+msgstr ""
+"Este valor afecta ferramentas do I<tipo> L<dh_installdocs(1)>, que I<sabem> "
+"que estão a trabalhar com documentação."
+
+#. type: =item
+#: debhelper.pod:866
+msgid "B<notrimdch>"
+msgstr "B<notrimdch>"
+
+#. type: textblock
+#: debhelper.pod:872
+msgid ""
+"This value will cause L<dh_installchangelogs(1)> to act as if it had been "
+"passed the B<--no-trim> option, forcing it to forgo removing older entries "
+"from changelogs."
+msgstr ""
+"Este valor irá fazer o L<dh_installchangelogs(1)> actuar como se tivesse "
+"passado a opção B<--no-trim>, forçando-o a renunciar a remoção de entradas "
+"antigas dos registos de alterações."
+
+#. type: =item
+#: debhelper.pod:876
+msgid "B<noautodbgsym>, B<noddebs>"
+msgstr "B<noautodbgsym>, B<noddebs>"
+
+#. type: textblock
+#: debhelper.pod:878
+msgid ""
+"I<The official name is noautodbgsym. The noddebs variant is accepted for "
+"historical reasons.>"
+msgstr ""
+"I<O nome oficial é noautodbgsym. A variante noddebs é aceite por razões "
+"históricas.>"
+
+#. type: textblock
+#: debhelper.pod:881
+msgid ""
+"This value causes debhelper to skip the generation of automatically "
+"generated debug symbol packages."
+msgstr ""
+"Este valor faz com que o debhelper salte a geração de pacotes de símbolos de "
+"depuração gerados automaticamente."
+
+#. type: textblock
+#: debhelper.pod:884
+msgid "This value affects L<dh_strip(1)>."
+msgstr "Este valor afecta L<dh_strip(1)>."
+
+#. type: =item
+#: debhelper.pod:886
+msgid "B<parallel=N>"
+msgstr "B<parallel=N>"
+
+#. type: textblock
+#: debhelper.pod:888
+msgid ""
+"This value enables debhelper to use up to B<N> threads or processes (subject "
+"to parameters like B<--no-parallel> and B<--max-parallel=M>). Not all "
+"debhelper tools work with parallel tasks and may silently ignore the request."
+msgstr ""
+"Este valor habilita o debhelper a usar até B<N> linhas de processos "
+"(sujeitos a parâmetros como B<--no-parallel> e B<--max-parallel=M>). Nem "
+"todas as ferramentas debhelper trabalham com tarefas paralelas e podem "
+"ignorar o pedido em silêncio."
+
+#. type: textblock
+#: debhelper.pod:893
+msgid ""
+"This value affects many debhelper tools. Most notably B<dh_auto_*>, which "
+"will attempt to run the underlying upstream build system with that number of "
+"threads."
+msgstr ""
+"Este valor afecta muitas ferramentas debhelper. Mais notoriamente "
+"B<dh_auto_*>, a qual irá tentar correr o sistema de compilação subjacente do "
+"autor com esse número de linhas de execução."
+
+#. type: =item
+#: debhelper.pod:897
+msgid "B<terse>"
+msgstr "B<terse>"
+
+#. type: textblock
+#: debhelper.pod:899
+msgid ""
+"This value will cause the official debhelper build systems to configure "
+"upstream builds to be terse (i.e. reduce verbosity in their output). This "
+"is subject to the upstream and the debhelper build system supporting such "
+"features."
+msgstr ""
+"Este valor irá fazer com que os sistemas de compilação oficiais debhelper "
+"configurem as compilações do autor para serem concisas (isto é, reduzir os "
+"detalhes dos seus resultados). Isto está sujeito a que os sistemas de "
+"compilação do autor e do debhelper suportem tais funcionalidades."
+
+#. type: textblock
+#: debhelper.pod:904
+msgid ""
+"This value affects most B<dh_auto_*> tools directly. For commands provided "
+"by the debhelper package, it also causes the tools to act like the "
+"B<DH_QUIET> environment variable was non-empty."
+msgstr ""
+"Este valor afecta a maioria das ferramentas B<dh_auto_*> diretamente. Para "
+"comandos fornecidos pelo pacote debhelper, também faz com que as ferramentas "
+"actuem como se a variável de ambiente B<DH_QUIET> estiver não-vazia."
+
+#. type: textblock
+#: debhelper.pod:910
+msgid "Unknown flags are silently ignored."
+msgstr "Bandeiras desconhecidas são ignoradas em silêncio."
+
+#. type: textblock
+#: debhelper.pod:912
+msgid ""
+"Note third-party debhelper-like tools or third-party provided build systems "
+"may or may not react to the above flags. This tends to depend on "
+"implementation details of the tool."
+msgstr ""
+"Note que ferramentas de terceiros estilo-debhelper ou sistemas de compilação "
+"fornecidos por terceiros podem não reagir às bandeiras em cima. Isto tende a "
+"depender dos detalhes de implementação da ferramenta."
+
#. type: =head1
-#: debhelper.pod:692 dh:972 dh_auto_build:47 dh_auto_clean:50
-#: dh_auto_configure:52 dh_auto_install:92 dh_auto_test:63 dh_bugfiles:124
-#: dh_builddeb:124 dh_clean:147 dh_compress:210 dh_desktop:31 dh_fixperms:131
-#: dh_gconf:101 dh_gencontrol:78 dh_icons:71 dh_install:260
-#: dh_installcatalogs:122 dh_installchangelogs:241 dh_installcron:79
-#: dh_installdeb:142 dh_installdebconf:128 dh_installdirs:88
-#: dh_installdocs:337 dh_installemacsen:141 dh_installexamples:108
-#: dh_installifupdown:71 dh_installinfo:77 dh_installinit:324
-#: dh_installlogcheck:80 dh_installlogrotate:52 dh_installman:263
-#: dh_installmanpages:197 dh_installmenu:89 dh_installmime:63
-#: dh_installmodules:115 dh_installpam:61 dh_installppp:67 dh_installudev:117
-#: dh_installwm:110 dh_installxfonts:89 dh_link:228 dh_lintian:59
-#: dh_listpackages:30 dh_makeshlibs:264 dh_md5sums:90 dh_movefiles:170
-#: dh_perl:152 dh_prep:60 dh_scrollkeeper:28 dh_shlibdeps:152 dh_strip:242
-#: dh_suidregister:117 dh_testdir:53 dh_testroot:27 dh_undocumented:28
-#: dh_usrlocal:116
+#: debhelper.pod:916 debhelper-compat-upgrade-checklist.pod:758
+#: debhelper-obsolete-compat.pod:178 dh:872 dh_auto_build:53 dh_auto_clean:55
+#: dh_auto_configure:58 dh_auto_install:103 dh_auto_test:64 dh_bugfiles:133
+#: dh_builddeb:176 dh_clean:189 dh_compress:243 dh_dwz:163 dh_fixperms:164
+#: dh_gencontrol:208 dh_icons:75 dh_install:377 dh_installcatalogs:128
+#: dh_installchangelogs:365 dh_installcron:80 dh_installdeb:419
+#: dh_installdebconf:233 dh_installdirs:131 dh_installdocs:437
+#: dh_installemacsen:138 dh_installexamples:182 dh_installifupdown:72
+#: dh_installinfo:123 dh_installinit:413 dh_installinitramfs:91
+#: dh_installlogcheck:81 dh_installlogrotate:53 dh_installman:420
+#: dh_installmanpages:198 dh_installmenu:88 dh_installmime:63
+#: dh_installmodules:109 dh_installpam:71 dh_installppp:68 dh_installudev:102
+#: dh_installwm:130 dh_installxfonts:90 dh_link:166 dh_lintian:60
+#: dh_listpackages:34 dh_makeshlibs:456 dh_md5sums:118 dh_movefiles:161
+#: dh_perl:188 dh_prep:70 dh_shlibdeps:204 dh_strip:435 dh_testdir:62
+#: dh_testroot:93 dh_usrlocal:136 dh_systemd_enable:280 dh_systemd_start:280
msgid "SEE ALSO"
msgstr "VEJA TAMBÉM"
#. type: =item
-#: debhelper.pod:696
+#: debhelper.pod:920
+msgid "L<debhelper-compat-upgrade-checklist(7)>"
+msgstr "L<debhelper-compat-upgrade-checklist(7)>"
+
+#. type: textblock
+#: debhelper.pod:922
+msgid ""
+"List of supported compat levels and an upgrade checklist for each of them."
+msgstr ""
+"Lista de níveis de compatibilidade suportados e uma lista de verificação de "
+"actualização para cada um deles."
+
+#. type: =item
+#: debhelper.pod:924
msgid "F</usr/share/doc/debhelper/examples/>"
msgstr "F</usr/share/doc/debhelper/examples/>"
#. type: textblock
-#: debhelper.pod:698
+#: debhelper.pod:926
msgid "A set of example F<debian/rules> files that use debhelper."
msgstr "Um conjunto de ficheiros F<debian/rules> exemplo que usam debhelper."
#. type: =item
-#: debhelper.pod:700
-#, fuzzy
-#| msgid "L<http://kitenet.net/~joey/code/debhelper/>"
+#: debhelper.pod:928
msgid "L<http://joeyh.name/code/debhelper/>"
-msgstr "L<http://kitenet.net/~joey/code/debhelper/>"
+msgstr "L<http://joeyh.name/code/debhelper/>"
#. type: textblock
-#: debhelper.pod:702
+#: debhelper.pod:930
msgid "Debhelper web site."
msgstr "Sítio web do debhelper."
#. type: =head1
-#: debhelper.pod:706 dh:978 dh_auto_build:53 dh_auto_clean:56
-#: dh_auto_configure:58 dh_auto_install:98 dh_auto_test:69 dh_bugfiles:132
-#: dh_builddeb:130 dh_clean:153 dh_compress:216 dh_desktop:37 dh_fixperms:137
-#: dh_gconf:107 dh_gencontrol:84 dh_icons:77 dh_install:266
-#: dh_installcatalogs:128 dh_installchangelogs:247 dh_installcron:85
-#: dh_installdeb:148 dh_installdebconf:134 dh_installdirs:94
-#: dh_installdocs:343 dh_installemacsen:148 dh_installexamples:114
-#: dh_installifupdown:77 dh_installinfo:83 dh_installlogcheck:86
-#: dh_installlogrotate:58 dh_installman:269 dh_installmanpages:203
-#: dh_installmenu:97 dh_installmime:69 dh_installmodules:121 dh_installpam:67
-#: dh_installppp:73 dh_installudev:123 dh_installwm:116 dh_installxfonts:95
-#: dh_link:234 dh_lintian:67 dh_listpackages:36 dh_makeshlibs:270
-#: dh_md5sums:96 dh_movefiles:176 dh_perl:158 dh_prep:66 dh_scrollkeeper:34
-#: dh_shlibdeps:158 dh_strip:248 dh_suidregister:123 dh_testdir:59
-#: dh_testroot:33 dh_undocumented:34 dh_usrlocal:122
+#: debhelper.pod:934 dh:878 dh_auto_build:59 dh_auto_clean:61
+#: dh_auto_configure:64 dh_auto_install:109 dh_auto_test:70 dh_bugfiles:141
+#: dh_builddeb:182 dh_clean:195 dh_compress:249 dh_dwz:169 dh_fixperms:170
+#: dh_gencontrol:214 dh_icons:81 dh_install:383 dh_installcatalogs:134
+#: dh_installchangelogs:371 dh_installcron:86 dh_installdeb:425
+#: dh_installdebconf:239 dh_installdirs:137 dh_installdocs:443
+#: dh_installemacsen:145 dh_installexamples:188 dh_installifupdown:78
+#: dh_installinfo:129 dh_installinitramfs:99 dh_installlogcheck:87
+#: dh_installlogrotate:59 dh_installman:426 dh_installmanpages:204
+#: dh_installmenu:96 dh_installmime:69 dh_installmodules:115 dh_installpam:77
+#: dh_installppp:74 dh_installudev:108 dh_installwm:136 dh_installxfonts:96
+#: dh_link:172 dh_lintian:68 dh_listpackages:40 dh_makeshlibs:462
+#: dh_md5sums:124 dh_movefiles:167 dh_perl:194 dh_prep:76 dh_shlibdeps:210
+#: dh_strip:441 dh_testdir:68 dh_testroot:99 dh_usrlocal:142
msgid "AUTHOR"
msgstr "AUTOR"
#. type: textblock
-#: debhelper.pod:708 dh:980 dh_auto_build:55 dh_auto_clean:58
-#: dh_auto_configure:60 dh_auto_install:100 dh_auto_test:71 dh_builddeb:132
-#: dh_clean:155 dh_compress:218 dh_fixperms:139 dh_gencontrol:86
-#: dh_install:268 dh_installchangelogs:249 dh_installcron:87 dh_installdeb:150
-#: dh_installdebconf:136 dh_installdirs:96 dh_installdocs:345
-#: dh_installemacsen:150 dh_installexamples:116 dh_installifupdown:79
-#: dh_installinfo:85 dh_installinit:332 dh_installlogrotate:60
-#: dh_installman:271 dh_installmanpages:205 dh_installmenu:99
-#: dh_installmime:71 dh_installmodules:123 dh_installpam:69 dh_installppp:75
-#: dh_installudev:125 dh_installwm:118 dh_installxfonts:97 dh_link:236
-#: dh_listpackages:38 dh_makeshlibs:272 dh_md5sums:98 dh_movefiles:178
-#: dh_prep:68 dh_shlibdeps:160 dh_strip:250 dh_suidregister:125 dh_testdir:61
-#: dh_testroot:35 dh_undocumented:36
+#: debhelper.pod:936 dh:880 dh_auto_build:61 dh_auto_clean:63
+#: dh_auto_configure:66 dh_auto_install:111 dh_auto_test:72 dh_builddeb:184
+#: dh_clean:197 dh_compress:251 dh_fixperms:172 dh_gencontrol:216
+#: dh_install:385 dh_installchangelogs:373 dh_installcron:88 dh_installdeb:427
+#: dh_installdebconf:241 dh_installdirs:139 dh_installdocs:445
+#: dh_installemacsen:147 dh_installexamples:190 dh_installifupdown:80
+#: dh_installinfo:131 dh_installinit:421 dh_installlogrotate:61
+#: dh_installman:428 dh_installmanpages:206 dh_installmenu:98 dh_installmime:71
+#: dh_installmodules:117 dh_installpam:79 dh_installppp:76 dh_installudev:110
+#: dh_installwm:138 dh_installxfonts:98 dh_link:174 dh_listpackages:42
+#: dh_makeshlibs:464 dh_md5sums:126 dh_movefiles:169 dh_prep:78
+#: dh_shlibdeps:212 dh_strip:443 dh_testdir:70 dh_testroot:101
msgid "Joey Hess <joeyh@debian.org>"
msgstr "Joey Hess <joeyh@debian.org>"
#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:5
+msgid ""
+"debhelper-compat-upgrade-checklist - Upgrade checklist for supported "
+"debhelper compat levels"
+msgstr ""
+"debhelper-compat-upgrade-checklist - Actualiza a lista de verificação para "
+"níveis de compatibilidade do debhelper suportados."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:9
+msgid ""
+"This document is an upgrade checklist of all the supported debhelper compat "
+"levels. It also lists all the support debhelper compat levels."
+msgstr ""
+"Este documento é uma lista de verificação de actualização para todos os "
+"níveis de compatibilidade do debhelper suportados. Também lista todos os "
+"níveis de compatibilidade de debhelper suportados."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:12
+msgid ""
+"Information about how to declare the compat level is in L<debhelper(7)/"
+"COMPATIBILITY LEVELS>."
+msgstr ""
+"Informação sobre como declarar os níveis de compatibilidade está em "
+"L<debhelper(7)/NÍVEIS DE COMPATIBILIDADE>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:14
+msgid ""
+"If you are upgrading from a (now) obsolete compat level, then please refer "
+"to L<debhelper-obsolete-compat(7)>."
+msgstr ""
+"Se você está a actualizar a partir de um nível de compatibilidade (agora) "
+"obsoleto, então por favor consulte L<debhelper-obsolete-compat(7)>."
+
+#. type: =head2
+#: debhelper-compat-upgrade-checklist.pod:19
+msgid "Upgrade checklist for supported compatibility levels"
+msgstr ""
+"Actualizar lista de verificação para os níveis de compatibilidade suportados."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:21
+msgid "These are the available compatibility levels:"
+msgstr "Estes são os níveis de compatibilidade disponíveis:"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:25
+msgid "v15"
+msgstr "v15"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:27
+#: debhelper-compat-upgrade-checklist.pod:51 strings-kept-translations.pod:9
+msgid ""
+"This compatibility level is still open for development; use with caution."
+msgstr ""
+"Este nível de compatibilidade ainda está aberto em desenvolvimento; use com "
+"cuidado."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:29
+msgid "Changes from v14 are:"
+msgstr "As alterações a partir de v14 são:"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:33
+#: debhelper-compat-upgrade-checklist.pod:57
+#: debhelper-compat-upgrade-checklist.pod:63
+#: debhelper-compat-upgrade-checklist.pod:68
+#: debhelper-compat-upgrade-checklist.pod:74
+#: debhelper-compat-upgrade-checklist.pod:90
+#: debhelper-compat-upgrade-checklist.pod:95
+#: debhelper-compat-upgrade-checklist.pod:103
+#: debhelper-compat-upgrade-checklist.pod:110
+#: debhelper-compat-upgrade-checklist.pod:125
+#: debhelper-compat-upgrade-checklist.pod:133
+#: debhelper-compat-upgrade-checklist.pod:141
+#: debhelper-compat-upgrade-checklist.pod:150
+#: debhelper-compat-upgrade-checklist.pod:156
+#: debhelper-compat-upgrade-checklist.pod:166
+#: debhelper-compat-upgrade-checklist.pod:174
+#: debhelper-compat-upgrade-checklist.pod:180
+#: debhelper-compat-upgrade-checklist.pod:194
+#: debhelper-compat-upgrade-checklist.pod:205
+#: debhelper-compat-upgrade-checklist.pod:219
+#: debhelper-compat-upgrade-checklist.pod:230
+#: debhelper-compat-upgrade-checklist.pod:246
+#: debhelper-compat-upgrade-checklist.pod:256
+#: debhelper-compat-upgrade-checklist.pod:260
+#: debhelper-compat-upgrade-checklist.pod:265
+#: debhelper-compat-upgrade-checklist.pod:270
+#: debhelper-compat-upgrade-checklist.pod:277
+#: debhelper-compat-upgrade-checklist.pod:283
+#: debhelper-compat-upgrade-checklist.pod:291
+#: debhelper-compat-upgrade-checklist.pod:297
+#: debhelper-compat-upgrade-checklist.pod:301
+#: debhelper-compat-upgrade-checklist.pod:306
+#: debhelper-compat-upgrade-checklist.pod:311
+#: debhelper-compat-upgrade-checklist.pod:320
+#: debhelper-compat-upgrade-checklist.pod:336
+#: debhelper-compat-upgrade-checklist.pod:345
+#: debhelper-compat-upgrade-checklist.pod:361
+#: debhelper-compat-upgrade-checklist.pod:369
+#: debhelper-compat-upgrade-checklist.pod:374
+#: debhelper-compat-upgrade-checklist.pod:396
+#: debhelper-compat-upgrade-checklist.pod:402
+#: debhelper-compat-upgrade-checklist.pod:414
+#: debhelper-compat-upgrade-checklist.pod:422
+#: debhelper-compat-upgrade-checklist.pod:428
+#: debhelper-compat-upgrade-checklist.pod:433
+#: debhelper-compat-upgrade-checklist.pod:438
+#: debhelper-compat-upgrade-checklist.pod:443
+#: debhelper-compat-upgrade-checklist.pod:451
+#: debhelper-compat-upgrade-checklist.pod:461
+#: debhelper-compat-upgrade-checklist.pod:471
+#: debhelper-compat-upgrade-checklist.pod:478
+#: debhelper-compat-upgrade-checklist.pod:490
+#: debhelper-compat-upgrade-checklist.pod:495
+#: debhelper-compat-upgrade-checklist.pod:523
+#: debhelper-compat-upgrade-checklist.pod:540
+#: debhelper-compat-upgrade-checklist.pod:545
+#: debhelper-compat-upgrade-checklist.pod:551
+#: debhelper-compat-upgrade-checklist.pod:557
+#: debhelper-compat-upgrade-checklist.pod:562
+#: debhelper-compat-upgrade-checklist.pod:568
+#: debhelper-compat-upgrade-checklist.pod:577
+#: debhelper-compat-upgrade-checklist.pod:587
+#: debhelper-compat-upgrade-checklist.pod:593
+#: debhelper-compat-upgrade-checklist.pod:616
+#: debhelper-compat-upgrade-checklist.pod:623
+#: debhelper-compat-upgrade-checklist.pod:629
+#: debhelper-compat-upgrade-checklist.pod:635
+#: debhelper-compat-upgrade-checklist.pod:641
+#: debhelper-compat-upgrade-checklist.pod:661
+#: debhelper-compat-upgrade-checklist.pod:666
+#: debhelper-compat-upgrade-checklist.pod:673
+#: debhelper-compat-upgrade-checklist.pod:678
+#: debhelper-compat-upgrade-checklist.pod:683
+#: debhelper-compat-upgrade-checklist.pod:691
+#: debhelper-compat-upgrade-checklist.pod:697
+#: debhelper-compat-upgrade-checklist.pod:702
+#: debhelper-compat-upgrade-checklist.pod:707
+#: debhelper-compat-upgrade-checklist.pod:722
+#: debhelper-compat-upgrade-checklist.pod:726
+#: debhelper-compat-upgrade-checklist.pod:734
+#: debhelper-compat-upgrade-checklist.pod:739 debhelper-obsolete-compat.pod:29
+#: debhelper-obsolete-compat.pod:36 debhelper-obsolete-compat.pod:40
+#: debhelper-obsolete-compat.pod:44 debhelper-obsolete-compat.pod:57
+#: debhelper-obsolete-compat.pod:62 debhelper-obsolete-compat.pod:68
+#: debhelper-obsolete-compat.pod:74 debhelper-obsolete-compat.pod:89
+#: debhelper-obsolete-compat.pod:93 debhelper-obsolete-compat.pod:98
+#: debhelper-obsolete-compat.pod:102 debhelper-obsolete-compat.pod:114
+#: debhelper-obsolete-compat.pod:119 debhelper-obsolete-compat.pod:124
+#: debhelper-obsolete-compat.pod:129 debhelper-obsolete-compat.pod:143
+#: debhelper-obsolete-compat.pod:148 debhelper-obsolete-compat.pod:152
+#: dh_testroot:36 dh_testroot:41 dh_testroot:46
+msgid "-"
+msgstr "-"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:35
+msgid ""
+"The B<dh_auto_install> tool no longer defaults to B<< --destdir=debian/"
+"I<package> >> for source packages only producing a single binary. If this "
+"behaviour is wanted, the package should explicitly activate the B<single-"
+"binary> dh addon (e.g., by adding B<dh-sequence-single-binary> to B<Build-"
+"Depends>) or pass B<--destdir> to B<dh_auto_install>."
+msgstr ""
+"A ferramenta B<dh_auto_install> já não usa por predefinição B<< --"
+"destdir=debian/I<package> >> para pacotes fonte que apenas produzem um único "
+"binário. Se este comportamento é desejado, o pacote deve activar "
+"explicitamente o addon do dh B<single-binary> (ex. ao adicionar B<dh-"
+"sequence-single-binary> a B<Build-Depends>) ou passar B<--destdir> a "
+"B<dh_auto_install>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:41
+#: debhelper-compat-upgrade-checklist.pod:84
+msgid ""
+"The rationale for this change is to avoid \"surprises\" when adding a second "
+"binary package later. Previously, debhelper would silently change behaviour "
+"often resulting in empty binary packages being uploaded to the archive by "
+"mistake. With the new behaviour, the B<single-binary> addon will detect the "
+"mismatch and warn the maintainer of what is about to happen."
+msgstr ""
+"A razão para esta alteração é evitar \"surpresas\" ao adicionar um segundo "
+"pacote binário mais tarde. Anteriormente, o debhelper iria em silêncio "
+"alterar o comportamento muitas vezes resultado em pacotes binários vazios a "
+"serem enviados para o arquivo por engano. Com o novo comportamento, o addon "
+"B<single-binary> irá detectar a discrepância e avisar o maintainer do que "
+"está prestes a acontecer."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:49
+msgid "v14"
+msgstr "v14"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:53
+msgid "Changes from v13 are:"
+msgstr "As alterações a partir de v13 são:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:59
+msgid ""
+"The B<cmake> buildsystem now passes B<-DCMAKE_BUILD_RPATH_USE_ORIGIN=ON> to "
+"L<cmake(1)> to avoid some reproducibility issues."
+msgstr ""
+"O sistema de compilação B<cmake> agora passa B<-"
+"DCMAKE_BUILD_RPATH_USE_ORIGIN=ON> a L<cmake(1)> para evitar alguns problemas "
+"de reprodutibilidade."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:65
+msgid ""
+"The tool B<dh_installsysusers> is now included in the default sequence. This "
+"helper tool will process systemd sysusers files."
+msgstr ""
+"A ferramenta B<dh_installsysusers> está agora incluída na sequência "
+"predefinida. Esta ferramenta de ajuda irá processar ficheiros sysusers do "
+"systemd."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:70
+msgid ""
+"Use of the B<dh_gconf> command in override and hook targets now causes an "
+"error. The B<dh_gconf> command has been a no-op for years and was removed "
+"in debhelper 13.4."
+msgstr ""
+"Usar o comando B<dh_gconf> em alvos de sobreposição e hook agora causa um "
+"erro. O comando B<dh_gconf> foi um não-operativo durante anos e foi removido "
+"no debhelper 13.4."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:76
+msgid ""
+"The B<dh> sequencer will warn if the B<single-binary> addon is implicitly "
+"activated to warn maintainers of the pending compat 15 change in "
+"B<dh_auto_install>."
+msgstr ""
+"O sequenciador B<dh> irá avisar se o addon B<single-binary> for activado "
+"implicitamente para avisar os maintainers da pendente alteração na "
+"compatibilidade 15 em B<dh_auto_install>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:79
+msgid ""
+"Maintainers are urged to either explicitly activate the B<single-binary> "
+"addon to preserve the existing behaviour (e.g., by adding B<dh-sequence-"
+"single-binary> to Build-Depends), or explicitly passing B<--destdir> to "
+"B<dh_auto_install> if used and then passing B<--without single-binary> to "
+"B<dh> (the latter to silence the warning)."
+msgstr ""
+"Maintainers são incentivados a ou activar explicitamente o addon B<single-"
+"binary> para preservar o comportamento existente (ex. ao adicionar <dh-"
+"sequence-single-binary> a Build-Depends), ou passar explicitamente B<--"
+"destdir> a B<dh_auto_install> se usado e depois passar B<--without single-"
+"binary> a B<dh> (a última para silenciar o aviso)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:92
+msgid ""
+"The B<dh_installalternatives> tool will now be run after B<dh_link> rather "
+"than after B<dh_installinitramfs> in the default B<dh> sequence."
+msgstr ""
+"A ferramenta B<dh_installalternatives> irá agora correr após B<dh_link> em "
+"vez de após B<dh_installinitramfs> na sequência predefinida do B<dh>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:97
+msgid ""
+"The B<dh_installpam> tool will now install PAM configuration files under "
+"F<< /usr/lib/pam.d/I<package> >> instead of F<< /etc/pam.d/I<package> >>."
+msgstr ""
+"A ferramenta B<dh_installpam> irá agora instalar ficheiros de configuração "
+"do PAM sob F<< /usr/lib/pam.d/I<package> >> em vez de F<< /etc/pam.d/"
+"I<package> >>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:100
+msgid ""
+"Please consider using the \"rm_conffile\" feature from L<dh_installdeb(1)> "
+"to ensure the proper removal of previous PAM files."
+msgstr ""
+"Por favor considere usar a funcionalidade \"rm_conffile\" de "
+"L<dh_installdeb(1)> para assegurar a remoção apropriada dos ficheiros PAM "
+"anteriores."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:105
+msgid ""
+"The B<meson+ninja> and B<cmake> build systems now use B<meson install> and "
+"B<cmake --install>, respectively, instead of B<ninja install> and B<make "
+"install> in the L<dh_auto_install(1)> call. Any override of "
+"B<dh_auto_install> that passes extra parameters to the upstream build system "
+"should be reviewed."
+msgstr ""
+"Os sistemas de compilação B<meson+ninja> e B<cmake> agora usam B<meson "
+"install> e B<cmake --install>, respetivamente, em vez de B<ninja install> e "
+"B<make install> na chamada L<dh_auto_install(1)>. Qualquer sobreposição de "
+"B<dh_auto_install> que passe parâmetros extra ao sistema de compilação do "
+"autor deve ser revista."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:112
+msgid ""
+"The B<cmake> build system passes B<< -DBUILD_TESTING:BOOL=OFF >> to B<cmake> "
+"if B<DEB_BUILD_OPTIONS> contains B<nocheck> thus disabling CTest."
+msgstr ""
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:117
+msgid "v13"
+msgstr "v13"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:119
+msgid "This is the recommended mode of operation."
+msgstr "Este é o modo de operação recomendado."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:121
+msgid "Changes from v12 are:"
+msgstr "As alterações a partir de v12 são:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:127
+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 ""
+"O sistema de compilação B<meson+ninja> agora usa B<meson test> em vez de "
+"B<ninja test> quando corre a suite de testes. Qualquer sobreposição de "
+"B<dh_auto_test> que passe parâmetros extra ao testador original do autor "
+"deve ser revista, pois o B<meson test> não é compatível em linha de comandos "
+"com o B<ninja test>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:135
+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 ""
+"Todas as ferramentas tipo debhelper baseadas na biblioteca debhelper oficial "
+"(incluindo B<dh> e as ferramentas oficiais B<dh_*>) não aceitam mais "
+"parâmetros abreviados de comandos. Ao mesmo tempo, B<dh> agora optimiza as "
+"chamadas a ajudantes redundantes B<dh_*> mesmo quando passa opções longas da "
+"linha de comandos."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:143
+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). If you need them for B<*-indep> targets, you can add an explicit "
+"Build-Depends on B<dh-sequence-elf-tools>."
+msgstr ""
+"As ferramentas debhelper relacionadas com ELF (B<dh_dwz>, B<dh_strip>, "
+"B<dh_makeshlibs>, B<dh_shlibdeps>) são agora apenas executadas para os "
+"pacotes dependentes de arquitectura por predefinição (isto é, estão "
+"excluídas de alvos B<*-indep> e são passadas B<-a> por predefinição). Se "
+"você precisar delas para alvos B<*-indep>, você pode adicionar um Build-"
+"Depends explícito em B<dh-sequence-elf-tools>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:152
+msgid ""
+"The third-party B<gradle> build system (from B<gradle-debian-helper> "
+"package) now runs the upstream-provided test suite automatically. To "
+"suppress such behavior, override B<dh_auto_test>."
+msgstr ""
+"O sistema de compilação de terceiros B<gradle> (do pacote B<gradle-debian-"
+"helper>) agora corre a suite de testes disponibilizada pelo autor "
+"automaticamente. Para suprimir tal comportamento, sobreponha B<dh_auto_test>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:158
+msgid ""
+"The B<dh_installman> tool now aborts if it sees conflicting definitions of a "
+"manpage. This typically happens if the upstream build system is installing "
+"a compressed version and the package lists an uncompressed version of the "
+"manpage in F<< debian/I<package>.manpages >>. Often the easiest fix is to "
+"remove the manpage from F<< debian/I<package>.manpages >> (assuming both "
+"versions are identical)."
+msgstr ""
+"A ferramenta B<dh_installman> agora aborta se vir definições conflituosas de "
+"uma manpage. Isto tipicamente acontece se o sistema de compilação do autor "
+"está a instalar uma versão comprimida e o pacote lista uma versão "
+"descomprimida da manpage em F<< debian/I<package>.manpages >>. Muitas vezes "
+"a correção mais fácil é remover a manpage de F<< debian/I<package>.manpages "
+">> (assumindo que ambas as versões são idênticas)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:168
+msgid ""
+"The B<dh_auto_*> helpers now reset the environment variables B<HOME> and "
+"common B<XDG_*> variable. Please see description of the environment "
+"variables in L</ENVIRONMENT> for how this is handled."
+msgstr ""
+"Os ajudantes de B<dh_auto_*> agora reiniciam as variáveis de ambiente "
+"B<HOME> e variável comum B<XDG_*>. Por favor veja a descrição das variáveis "
+"de ambiente em L</ENVIRONMENT> para como lidar com isto."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:172
+msgid "I<This feature changed between debhelper 13 and debhelper 13.2.>"
+msgstr "I<Esta funcionalidade mudou entre debhelper 13 e debhelper 13.2.>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:176
+msgid ""
+"The B<dh> command will now error if an override or hook target for an "
+"obsolete command are present in F<debian/rules> (e.g. "
+"B<override_dh_systemd_enable:>)."
+msgstr ""
+"O comando B<dh> ir+a agora dar erro se estiver presente um alvo de "
+"sobreposição ou hook para um comando obsoleto em F<debian/rules> (ex."
+"B<override_dh_systemd_enable:>)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:182
+msgid ""
+"The B<dh_missing> command will now default to B<--fail-missing>. This can "
+"be reverted to a non-fatal warning by explicitly passing B<--list-missing> "
+"like it was in compat 12."
+msgstr ""
+"O comando B<dh_missing> irá agora usar por predefinição B<--fail-missing>. "
+"Isto pode ser revertido para um aviso não fatal ao passar explicitamente B<--"
+"list-missing> como era na compatibilidade 12."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:186
+msgid ""
+"If you do not want the warning either, please omit the call to "
+"B<dh_missing>. If you use the B<dh> command sequencer, then you can do this "
+"by inserting an empty override target in the F<debian/rules> file of the "
+"relevant package. As an example:"
+msgstr ""
+"Se você também não quiser o aviso, por favor omita a chamada ao "
+"B<dh_missing>. Se você usar o sequenciador de comandos B<dh>, então pode "
+"fazer isto ao inserir um alvo de sobreposição vazio no ficheiro F<debian/"
+"rules> do pacote relevante. Como exemplo:"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:191
+#, no-wrap
+msgid ""
+" # Disable dh_missing\n"
+" override_dh_missing:\n"
+"\n"
+msgstr ""
+" # Disable dh_missing\n"
+" override_dh_missing:\n"
+"\n"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:196
+msgid ""
+"The B<dh> command sequencer now runs B<dh_installtmpfiles> in the default "
+"sequence. The B<dh_installtmpfiles> takes over handling of tmpfiles.d "
+"configuration files. Related functionality in B<dh_installsystemd> is now "
+"disabled."
+msgstr ""
+"O sequenciador de comandos B<dh> agora corre B<dh_installtmpfiles> na "
+"sequência predefinida. O B<dh_installtmpfiles> assume o manusear dos "
+"ficheiros de configuração tmpfiles.d. A funcionalidade relacionada em "
+"B<dh_installsystemd> está agora desactivada."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:201
+msgid ""
+"Note that B<dh_installtmpfiles> responds to F<< debian/I<package>.tmpfiles "
+">> where B<dh_installsystemd> used a name without the trailing \"s\"."
+msgstr ""
+"Note que B<dh_installtmpfiles> responde a F<< debian/I<package>.tmpfiles >> "
+"onde B<dh_installsystemd> usou um nome sem o \"s\" final."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:207
+msgid ""
+"Many B<dh_*> tools now support limited variable expansion via the B<${foo}> "
+"syntax. In many cases, this can be used to reference paths that contain "
+"either spaces or L<dpkg-architecture(1)> values. While this can reduce the "
+"need for L<dh-exec(1)> in some cases, it is B<not> a replacement L<dh-"
+"exec(1)> in general. If you need filtering, renaming, etc., the package "
+"will still need L<dh-exec(1)>."
+msgstr ""
+"Muitas ferramentas B<dh_*> agora suportam expansão de variáveis limitada via "
+"sintaxe B<${foo}>. Em muitos casos, isto pode ser usado para referenciar "
+"caminhos que contêm ou espaços ou valores L<dpkg-architecture(1)>. Enquanto "
+"isto pode reduzir a necessidade de L<dh-exec(1)> em alguns casos, B<não> é "
+"um substituto de L<dh-exec(1)> em geral. Se você precisar de filtrar, "
+"renomear, etc... o pacote irá continuar a precisar de L<dh-exec(1)>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:214
+msgid ""
+"Please see L</Substitutions in debhelper config files> for syntax and "
+"available substitution variables. To B<dh_*> tool writers, substitution "
+"expansion occurs as a part of the B<filearray> and B<filedoublearray> "
+"functions."
+msgstr ""
+"Por favor veja L<Substituições em ficheiros de configuração do debhelper> "
+"para sintaxe e variáveis de substituição disponíveis. Para os escritores da "
+"ferramenta B<dh_*>, a expansão de substituição ocorre como parte das "
+"funções B<filearray> e B<filedoublearray>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:221
+msgid ""
+"The B<dh> command sequencer will now skip all hook and override targets for "
+"B<dh_auto_test>, B<dh_dwz> and B<dh_strip> when B<DEB_BUILD_OPTIONS> lists "
+"the relevant B<nocheck> / B<nostrip> options."
+msgstr ""
+"O sequenciador de comandos B<dh> irá agora saltar todos os alvos hook e de "
+"sobreposição para B<dh_auto_test>, B<dh_dwz> e B<dh_strip> quando "
+"B<DEB_BUILD_OPTIONS> listar as opções B<nocheck> / B<nostrip> relevantes."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:225
+msgid ""
+"Any package relying on these targets to always be run should instead move "
+"relevant logic out of those targets. E.g. non-test related packaging code "
+"from B<override_dh_auto_test> would have to be moved to "
+"B<execute_after_dh_auto_build> or B<execute_before_dh_auto_install>."
+msgstr ""
+"Qualquer pacote que se apoie nestes alvos para ser sempre corrido deve, em "
+"vez disto, mover a lógica relevante para fora destes alvos. Ex, código de "
+"empacotamento não relacionado com testes a partir de "
+"B<override_dh_auto_test> deverá ser movido para "
+"B<execute_after_dh_auto_build> ou B<execute_before_dh_auto_install>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:232
+msgid ""
+"The B<cmake> buildsystem now passes B<-"
+"DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON> to L<cmake(1)> to speed up automatic "
+"installation process. If for some reason you need previous behavior, "
+"override the flag:"
+msgstr ""
+"O sistema de compilação B<cmake> agora passa B<-"
+"DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON> ao L<cmake(1)> para acelerar o "
+"processo de instalação automática. Se por alguma razão você precisar do "
+"comportamento anterior, sobreponha a flag:"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:236
+#, no-wrap
+msgid ""
+" dh_auto_configure -- -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=OFF ...\n"
+"\n"
+msgstr ""
+" dh_auto_configure -- -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=OFF ...\n"
+"\n"
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:240
+msgid "v12"
+msgstr "v12"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:242
+msgid "Changes from v11 are:"
+msgstr "As alterações a partir de v11 são:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:248
+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>) "
+"is now the default."
+msgstr ""
+"A ferramenta B<dh_makeshlibs> agora gera ficheiros shlibs com dependência de "
+"versão por predefinição. Isto significa que B<-VUpstream-Version> (a.k.a. B<-"
+"V>) é agora a predefinição."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:252
+msgid ""
+"If an unversioned dependency in the shlibs file is wanted, this can be "
+"obtained by passing B<-VNone> instead. However, please see "
+"L<dh_makeshlibs(1)> for the caveat of unversioned dependencies."
+msgstr ""
+"Se é pedida uma dependência sem versão no ficheiros shlibs, isto pode ser "
+"conseguido ao passar B<-VNone> em substituição. No entanto, por favor veja "
+"L<dh_makeshlibs(1)> para a problemática das dependências sem versão."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:258
+msgid ""
+"The B<-s> (B<--same-arch>) option is removed. Please use B<-a> (B<--arch>) "
+"instead."
+msgstr ""
+"A opção B<-s> (B<--same-arch>) foi removida. Por favor use B<-a> (B<--arch>) "
+"em vez desta."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:262
+msgid ""
+"Invoking B<dh_clean -k> now causes an error instead of a deprecation warning."
+msgstr ""
+"Invocar B<dh_clean -k> agora causa um erro em vez de um aviso de "
+"descontinuação."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:267
+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 ""
+"A opção B<--no-restart-on-upgrade> em B<dh_installinit> foi removida. Por "
+"favor use o novo nome B<--no-stop-on-upgrade>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:272
+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 "
+"circumstance. This bug is now removed and will cause helpers that rely on "
+"the bug to fail with a \"command not found\"-error."
+msgstr ""
+"Existia um bug nas funções B<doit> (e similares) a partir de L<Debian::"
+"Debhelper::Dh_Lib> que fazia aparece uma linha de comandos numa "
+"circunstância particular. Este bug foi agora removido e irá fazer com que os "
+"ajudantes que contavam com esse bug falhem com um erro de \"comando não "
+"encontrado\"."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:279
+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 "
+"also see the files installed by other helpers."
+msgstr ""
+"O B<--list-missing> e B<--fail-missing> em B<dh_install> foram removidos. "
+"Por favor use B<dh_missing> e as suas opções correspondentes, o qual pode "
+"também ver os ficheiros instalados por outros ajudantes."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:285
+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 "
+"upstart configuration file. The error is there to remind the package "
+"maintainer to ensure the proper removal of the conffiles shipped in previous "
+"versions of the package (if any)."
+msgstr ""
+"O ajudante B<dh_installinit> já não instala configuração para o sistema de "
+"init upstart. Em vez disso, irá abortar a compilação se encontrar um "
+"ficheiro de configuração upstart antigo. O erro está lá para lembrar ao "
+"maintainer do pacote para assegurar a remoção apropriada dos ficheiros de "
+"configuração empacotados em versões anteriores do pacote (caso existam)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:293
+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 "
+"be invalid."
+msgstr ""
+"A ferramenta B<dh_installdeb> irá fazer validação básica de alguns comandos "
+"L<dpkg-maintscript-helper(1)> e irá terminar em erro se os comandos "
+"parecerem ser inválidos."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:299
+msgid "The B<dh_missing> tool will now default to B<--list-missing>."
+msgstr ""
+"A ferramenta B<dh_missing> irá agora usar por predefinição B<--list-missing>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:303
+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 ""
+"A ferramenta B<dh_makeshlibs> irá agora apenas passar bibliotecas para "
+"L<dpkg-gensymbols(1)> se o binário ELF tiver um SONAME (contendo \".so\")."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:308
+msgid ""
+"The B<dh_compress> tool no longer compresses examples (i.e. anything "
+"installed in F<</usr/share/doc/I<package>/examples>>.)"
+msgstr ""
+"A ferramenta B<dh_compress> não mais comprime exemplos (isto é, nada "
+"instalado em F<</usr/share/doc/I<pacote>/examples>>.)"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:313
+msgid ""
+"The standard sequence in B<dh> now includes B<dh_dwz> and "
+"B<dh_installinitramfs> by default. This makes the B<dwz> and "
+"B<installinitramfs> sequences obsolete and they will now fail with an "
+"error. If you want to skip these commands, then please insert an empty "
+"override target for them in F<debian/rules> (e.g. I<override_dh_dwz:>)"
+msgstr ""
+"A sequência standard em B<dh> agora inclui B<dh_dwz> e "
+"B<dh_installinitramfs> por predefinição. Isto tornas as sequências B<dwz> e "
+"B<installinitramfs> obsoletas e elas agora irão falhar com um erro. Se "
+"desejar saltar estes comandos, por favor insira um alvo de sobreposição "
+"vazio para eles em F<debian/rules> (ex. I<override_dh_dwz:>)"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:322
+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 "
+"should be B</usr/libexec> (per FHS 3.0, adopted in Debian Policy 4.1.5)."
+msgstr ""
+"Os sistemas de compilação B<meson> e B<autoconf> não mais definem "
+"explicitamente a variável B<--libexecdir> e assim apoia-se na predefinição "
+"do sistema de compilação - O qual deve ser B</usr/libexec> (por FHS 3.0, "
+"adoptado em Debian Policy 4.1.5)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:327
+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. "
+"via the following example:"
+msgstr ""
+"Se um determinado pacote original do autor não usar a predefinição correcta, "
+"o parâmetro pode muitas vezes ser passado manualmente via "
+"L<dh_auto_configure(1)>. Por exemplo via seguinte exemplo:"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:331
+#, no-wrap
+msgid ""
+" override_dh_auto_configure:\n"
+" \tdh_auto_configure -- --libexecdir=/usr/libexec\n"
+"\n"
+msgstr ""
+" override_dh_auto_configure:\n"
+" \tdh_auto_configure -- --libexecdir=/usr/libexec\n"
+"\n"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:334
+msgid "Note the B<--> before the B<--libexecdir> parameter."
+msgstr "Note o B<--> antes do parâmetro B<--libexecdir>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:338
+msgid "B<Retroactively removed in debhelper/13.5>:"
+msgstr "B<Retroativamente removido em debhelper/13.5>:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:340
+msgid ""
+"The B<dh_installdeb> tool would no longer installs the maintainer provided "
+"F<conffiles> file as it was deemed unnecessary. However, the B<remove-on-"
+"upgrade> from dpkg/1.20 made the file relevant again and B<dh_installdeb> "
+"now installs it again in compat levels 12+."
+msgstr ""
+"A ferramenta B<dh_installdeb> não iria mais instalar o ficheiro F<conffiles> "
+"fornecido pelo responsável pois isso foi considerado desnecessário. No "
+"entanto, o B<remove-on-upgrade> do dpkg/1.20 tornou o ficheiro relevante de "
+"novo e B<dh_installdeb> agora instala-o nos níveis de compatibilidade 12+."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:347
+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 ""
+"A ferramenta B<dh_installsystemd> não mais se apoia em B<dh_installinit> "
+"para lidar com os serviços do systemd que têm uma alternativa de sysvinit. "
+"ambas ferramentas devem agora ser usadas em tais casos para assegurar que o "
+"serviço é arrancado correctamente sob ambos sysvinit e systemd."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:352
+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 ""
+"Se tiver uma sobreposição para B<dh_installinit> (ex. para chama-lo com B<--"
+"no-start>) então irá provavelmente precisar agora também de um para "
+"B<dh_installsystemd>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:356
+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 ""
+"Esta alteração faz B<dh_installinit> injectar um I<misc:Pre-Depends> para "
+"B<< init-system-helpers (>= 1.54~) >>. Por favor assegure que o pacote "
+"lista B<${misc:Pre-Depends}> no seu campo B<Pre-Depends> antes de actualizar "
+"para a compatibilidade 12."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:363
+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 ""
+"Esta ferramenta de terceiros B<dh_golang> (do pacote B<dh-golang>) agora por "
+"predefinição honra a variável B<DH_GOLANG_EXCLUDES> para instalação fonte em "
+"pacotes -dev e não apenas durante o processo de compilação. Por favor defina "
+"B<DH_GOLANG_EXCLUDES_ALL> para falso para reverter para o comportamento "
+"anterior. Veja B<Debian::Debhelper::Buildsystem::golang(3pm)> para detalhes "
+"e exemplos"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:371
+msgid ""
+"B<dh_installsystemduser> is now included in the B<dh> standard sequence by "
+"default."
+msgstr ""
+"B<dh_installsystemduser> é agora incluído na sequência standard do B<dh> por "
+"predefinição."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:376
+msgid ""
+"The B<python-distutils> buildsystem is now removed. Please use the third-"
+"party build system B<pybuild> instead."
+msgstr ""
+"O sistema de compilação B<python-distutils> foi agora removido. Por favor "
+"use o sistema de compilação de terceiros B<pybuild> em substituição."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:381
+msgid "v11"
+msgstr "v11"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:383
+msgid "This mode is discouraged."
+msgstr "Este modo está desencorajado."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:385
+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 ""
+"A compatibilidade 11 é desencorajada para novos pacotes pois sofre de "
+"interação de características entre L<dh_installinit> e L<dh_installsystemd> "
+"o que causa com que os serviços não funcionem correctamente em alguns casos. "
+"Por favor considere usar modo de compatibilidade 10 ou 12 em vez deste. "
+"Mais detalhes sobre este problema estão disponíveis em Debian#887904 e "
+"L<https://lists.debian.org/debian-release/2019/04/msg01442.html>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:392
+msgid "Changes from v10 are:"
+msgstr "As alterações a partir de v10 são:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:398
+msgid ""
+"B<dh_installinit> no longer installs F<service> or F<tmpfile> files, nor "
+"generates maintainer scripts for those files. Please use the new "
+"B<dh_installsystemd> helper."
+msgstr ""
+"B<dh_installinit> já não instala ficheiros F<service> ou F<tmpfile>, nem "
+"gera scripts do maintainer para esses ficheiros, Por favor use o novo "
+"ajudante B<dh_installsystemd>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:404
+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> "
+"sequence for B<dh> has also been removed. If you need to disable the "
+"B<dh_installsystemd> helper tool, please use an empty override target."
+msgstr ""
+"Os ajudantes B<dh_systemd_enable>e B<dh_systemd_start> foram substituídos "
+"pelo novo ajudante B<dh_installsystemd>. Pela mesma razão, a sequência do "
+"B<systemd> para B<dh> foi também removida. Se você precisar de desactivar a "
+"ferramenta de ajuda B<dh_installsystemd>, por favor use um alvo de "
+"sobreposição vazio."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:410
+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 ""
+"Por favor note que a ferramenta B<dh_installsystemd> tem um comportamento "
+"ligeiramente diferente em alguns casos (ex. quando se usa o parâmetro B<--"
+"name>)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:416
+msgid ""
+"B<dh_installdirs> no longer creates debian/I<package> directories unless "
+"explicitly requested (or it has to create a subdirectory in it)."
+msgstr ""
+"B<dh_installdirs> já não cria directórios debian/I<pacote> a menos que tal "
+"seja explicitamente pedido (ou se tiver de criar um sub-directório nele)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:420
+msgid "The vast majority of all packages will be unaffected by this change."
+msgstr "A grande maioria dos pacotes não serão afectados por esta alteração."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:424
+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."
+msgstr ""
+"O sistema de compilação B<makefile> agora passa B<INSTALL=\"install --strip-"
+"program=true\"> para o L<make(1)>. Sistemas de compilação derivativos (ex. "
+"B<configure> ou B<cmake>) não são afectados por esta alteração."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:430
+msgid ""
+"The B<autoconf> buildsystem now passes B<--runstatedir=/run> to F<./"
+"configure>."
+msgstr ""
+"O sistema de compilação B<autoconf> agora passa B<--runstatedir=/run> para "
+"F<./configure>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:435
+msgid ""
+"The B<cmake> buildsystem now passes B<-DCMAKE_INSTALL_RUNSTATEDIR=/run> to "
+"L<cmake(1)>."
+msgstr ""
+"O sistema de compilação B<cmake> agora passa B<-DCMAKE_INSTALL_RUNSTATEDIR=/"
+"run> para L<cmake(1)>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:440
+msgid ""
+"B<dh_installman> will now prefer detecting the language from the path name "
+"rather than the extension."
+msgstr ""
+"B<dh_installman> irá agora preferir detectar a linguagem a partir do nome de "
+"caminho em vez de a extensão."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:445
+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. "
+"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_auto_install> irá agora apenas criar o directório de destino que "
+"precisa. Anteriormente, iria criar o directório de compilação de pacote para "
+"todos os pacotes. Isto não vai afectar pacotes que apenas compilam com "
+"comandos debhelper, mas pode expor bugs em comandos não incluídos no "
+"debhelper."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:453
+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 "
+"match anything or reference a path that does not exist."
+msgstr ""
+"Os ajudantes B<dh_installdocs>, B<dh_installexamples>, B<dh_installinfo>, e "
+"B<dh_installman> agora dão erro se a sua configuração tiver um padrão que "
+"não coincida com nada ou faça referência a um caminho que não exista."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:457
+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 "
+"specify documentation."
+msgstr ""
+"Excepções conhecidas incluem compilar com o perfil B<nodoc>, onde as "
+"ferramentas de cima irão permitir em silêncio correspondências falhadas onde "
+"os padrões são usados para especificar documentação."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:463
+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 "
+"as B<dh_install>. Furthermore, they now also fall back to F<debian/tmp> like "
+"B<dh_install>."
+msgstr ""
+"Os ajudantes B<dh_installdocs>, B<dh_installexamples>, B<dh_installinfo>, e "
+"B<dh_installman> agora aceitam o parâmetro B<--sourcedir> com o mesmo "
+"significado que B<dh_install>. Mais ainda, eles agora também retornam (em "
+"fall back) a F<debian/tmp> como B<dh_install>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:468
+msgid ""
+"Migration note: A bug in debhelper 11 up to 11.1.5 made B<dh_installinfo> "
+"incorrectly ignore B<--sourcedir>."
+msgstr ""
+"Nota de migração: Um bug no debhelper 11 até ao 11.1.5 faz com que "
+"B<dh_installinfo> ignore incorrectamente B<--sourcedir>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:473
+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 "
+"the B<PERL5LIB> environment variable. E.g. by adding B<export PERL5LIB=.> "
+"in their debian/rules file (or similar)."
+msgstr ""
+"Os sistemas de compilação B<perl-makemaker> e B<perl-build> já não passam B<-"
+"I.> ao perl. Os pacotes que ainda precisam deste comportamento podem emula-"
+"lo ao usar a variável de ambiente B<PERL5LIB>. Ex. ao adicionar B<export "
+"PERL5LIB=.> no seu ficheiro debian/rules (ou semelhante)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:480
+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 "
+"avoid a lot of packages failing to build at the same time."
+msgstr ""
+"A variável de ambiente B<PERL_USE_UNSAFE_INC> já não é definida pelo B<dh> "
+"ou nenhuma das ferramentas B<dh_auto_*>. Ela foi adicionada como um meio de "
+"contorno temporário evitar muitos pacotes a falharem a compilação ao mesmo "
+"tempo."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:485
+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 "
+"drops support for it, then this variable will be removed retroactively from "
+"existing compat levels as well."
+msgstr ""
+"Note que este item irá eventualmente tornar-se obsoleto pois o auto pretende "
+"abandonar o suporte para a variável de ambiente B<PERL_USE_UNSAFE_INC>. "
+"Quando o perl abandonar o para ala, então esta variável será também removida "
+"retroactivamente dos níveis de compatibilidade existentes."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:492
+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 ""
+"O ajudante B<dh_makeshlibs> irá agora terminar em erro se objdump retornar "
+"uma saída não-zero a partir da análise de um determinado ficheiro."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:497
+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 "
+"recommendation from Debian policy §12.3 (since version 3.9.7)."
+msgstr ""
+"As ferramentas B<dh_installdocs> e B<dh_installexamples> podem agora "
+"instalar I<a maioria> da documentação num caminho diferente para cumprir com "
+"a recomendação da política Debian §12.3 (desde versão 3.9.7)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:501
+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 "
+"change is not relevant for that source package and you can skip to the next "
+"change."
+msgstr ""
+"Note que um dado pacote fonte apenas contém um único pacote binário em "
+"F<debian/control> ou nenhum dos pacotes são pacotes I<-doc>, então esta "
+"alteração não é relevante para esse pacote fonte e você pode saltar a "
+"próxima alteração."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:506
+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<-"
+"doc> package. If they find such a I<doc-main-package>, they will now "
+"install the documentation into the path F<< /usr/share/doc/I<doc-main-"
+"package> >> in the given doc package. I.e. the path can change but the "
+"documentation is still shipped in the I<-doc> package."
+msgstr ""
+"Por predefinição, estas ferramentas irão agora tentar determinar um \"pacote "
+"principal para a documentação\" (chamado um I<doc-main-package> daqui em "
+"diante) para cada pacote I<-doc>. Se encontrarem o tal I<doc-main-package>, "
+"irão agora instalar a documentação em F<< /usr/share/doc/I<doc-main-package> "
+">> no pacote doc fornecido. Isto é, o caminho pode mudar mas a documentação "
+"será na mesma enviada no pacote I<-doc>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:514
+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 "
+"to diverge from Debian policy recommendation."
+msgstr ""
+"A opção B<--doc-main-package> pode ser usada quando a auto-detecção é "
+"insuficiente ou para reiniciar o caminho para o seu valor anterior se "
+"existir razão para divergir da recomendação da política Debian."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:518
+msgid ""
+"Some documentation will not be affected by this change. These exceptions "
+"include the copyright file, changelog files, README.Debian, etc. These "
+"files will still be installed in the path F<< /usr/share/doc/I<package> >>."
+msgstr ""
+"Alguma documentação não será afectada por esta alteração. Estas excepções "
+"incluem o ficheiro copyright, ficheiros changelog, README.Debian, etc. Estes "
+"ficheiros serão na mesma instalados no caminho F<< /usr/share/doc/I<pacote> "
+">>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:525
+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 "
+"for an ELF header to determine if a given file is an shared object or an ELF "
+"executable."
+msgstr ""
+"As ferramentas B<dh_strip> e B<dh_shlibdeps> já não usam mais padrões de "
+"nomes de ficheiros para determinar quais ficheiros processar. Em vez disso, "
+"elas abrem o ficheiro e procuram um cabeçalho ELF para determinar se um dado "
+"ficheiro é um objecto partilhado ou um executável ELF."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:530
+msgid "This change may cause the tools to process more files than previously."
+msgstr ""
+"Esta alteração fazer com que as ferramentas processem mais ficheiros que "
+"anteriormente."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:534
+msgid "v10"
+msgstr "v10"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:536
+msgid "Changes from v9 are:"
+msgstr "As alterações a partir de v9 são:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:542
+msgid ""
+"B<dh_installinit> will no longer installs a file named debian/I<package> as "
+"an init script."
+msgstr ""
+"B<dh_installinit> não irá mais instalar um ficheiro chamado debian/I<pacote> "
+"como um script de iniciação (init)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:547
+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 "
+"binNMUs."
+msgstr ""
+"O B<dh_installdocs> irá dar erro se detectar links criados com --link-doc "
+"entre pacotes de arquitectura \"all\" e não-\"all\" porque isso faz quebrar "
+"binNMUs."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:553
+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 ""
+"O B<dh_installdeb> já não instala um ficheiro debian/I<pacote>.shlibs "
+"disponibilizado pelo maintainer. Em vez disso, isto agora é feito pelo "
+"B<dh_makeshlibs>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:559
+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 ""
+"O B<dh_installwm> recusa-se a criar um pacote quebrado se não encontrar "
+"nenhuma página de manual (necessário para registo para a alternativa do x-"
+"window-manager)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:564
+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 irá predefinir para B<--parallel> em todos os sistemas de "
+"compilação que suportam compilação paralela. Isto pode ser desactivado "
+"usando B<--no-parallel> ou passando B<--max-parallel> com o valor de 1."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:570
+msgid ""
+"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."
+msgstr ""
+"O comando B<dh> não irá aceitar nenhum dos parâmetros de \"controle de "
+"sequência manua\" descontinuados (B<--before>, B<--after>, etc.). Por favor "
+"utilize alvos de sobreposição em vez destes."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:574
+msgid ""
+"B<Retroactively applied to earlier compat levels>: B<dh> no longer accepts "
+"any of these since debhelper/12.4."
+msgstr ""
+"B<Retroactively applied to earlier compat levels>: B<dh> já não aceita "
+"nenhum destes desde o debhelper/12.4."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:579
+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 "
+"the \"build\" sequence and skip it if it did."
+msgstr ""
+"O comando B<dh> não irá mais usar ficheiros log para seguir quais comandos "
+"foram executados. O comando B<dh> I<ainda> mantêm o seguimento se já correu "
+"a sequência de \"compilação\" e salta-a se já o fez."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:583
+msgid "The main effects of this are:"
+msgstr "Os principais efeitos disto são:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:589
+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 "
+"full \"clean and rebuild\" cycle)"
+msgstr ""
+"Com isto, é agora mais fácil de depurar as sequências I<install> ou/e "
+"I<binary> porque agora podem ser trivialmente re-executadas (sem ter que "
+"fazer um ciclo de \"limpar e recompilar\" completo."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:595
+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 "
+"happens in the same override target everything will work as before."
+msgstr ""
+"O principal embargo é que B<dh_*> agora apenas mantêm acompanhamento do que "
+"aconteceu num alvo de sobreposição singular. Quanto todas as chamadas a um "
+"dado comando B<dh_cmd> acontecem no mesmo alvo de sobreposição tudo irá "
+"funcionar como dantes."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:600
+msgid "Example of where it can go wrong:"
+msgstr "Exemplo de onde pode falhar:"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:602
+#, no-wrap
+msgid ""
+" override_dh_foo:\n"
+" dh_foo -pmy-pkg\n"
+"\n"
+msgstr ""
+" override_dh_foo:\n"
+" dh_foo -pmy-pkg\n"
+"\n"
+
+#. type: verbatim
+#: debhelper-compat-upgrade-checklist.pod:605
+#, no-wrap
+msgid ""
+" override_dh_bar:\n"
+" dh_bar\n"
+" dh_foo --remaining\n"
+"\n"
+msgstr ""
+" override_dh_bar:\n"
+" dh_bar\n"
+" dh_foo --remaining\n"
+"\n"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:609
+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 "
+"issue is not limited to B<--remaining>, but also includes B<-a>, B<-i>, etc."
+msgstr ""
+"Neste caso, a chamada a B<dh_foo --remaining> irá I<também> incluir I<my-"
+"pkg>, desde que B<dh_foo -pmy-pkg> tenha corrido num alvo de sobreposição "
+"separado. Este problema não está imitado a B<--remaining>, mas também inclui "
+"B<-a>, B<-i>, etc."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:618
+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 "
+"work properly and packages have begun to rely on the incomplete shell "
+"escaping (e.g. quoting file names)."
+msgstr ""
+"O comando B<dh_installdeb> agora faz \"escape de shell\" às linhas no "
+"ficheiro de configuração de F<maintscript>. Esta foi a intenção original mas "
+"não trabalhava correctamente e os pacotes começaram a confiar no \"escapar "
+"de shell\" incompleto (ex. ao mencionar nomes de ficheiros)."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:625
+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-"
+"upgrade>."
+msgstr ""
+"O comando B<dh_installinit> agora usa por predefinição B<--restart-after-"
+"upgrade>. Para pacotes que precisam do comportamento anterior, por favor use "
+"B<--no-restart-after-upgrade>."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:631
+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 ""
+"A sequência B<autoreconf> é agora activada por predefinição. Por favor passe "
+"B<--without autoreconf> ao B<dh> se isto não for desejável para um "
+"determinado pacote"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:637
+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 ""
+"A sequência B<systemd> é agora activada por predefinição. Por favor passe "
+"B<--without systemd> ao B<dh> se isto não for desejável para um determinado "
+"pacote."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:643
+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<Retroactively removed> B<dh> já não cria o directório de compilação do "
+"pacote quando salta a execução de comandos debhelper. Isto não vai afectar "
+"pacotes que apenas compilam com comandos debhelper, mas pode expor bugs em "
+"comandos não incluídos no debhelper."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:648
+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 ""
+"Esta funcionalidade de compatibilidade tinha um bug desde a sua inserção no "
+"debhelper/9.20130516 que o fazia falhar ao aplicar em compatibilidade 9 e "
+"anteriores. Como não tem havido relatórios de problemas causados por este "
+"bug nesses -5 anos, este item foi removido em vez de corrigido."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:655
+msgid "v9"
+msgstr "v9"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:657
+msgid "Changes from v8 are:"
+msgstr "As alterações a partir de v8 são:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:663
+msgid ""
+"Multiarch support. In particular, B<dh_auto_configure> passes multiarch "
+"directories to autoconf in --libdir and --libexecdir."
+msgstr ""
+"Suporte a multi-arquitectura. Em particular, B<dh_auto_configure> passa "
+"directórios de multi-arquitectura ao autoconf em --libdir e --libexecdir."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:668
+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 "
+"targets that exist in the rules file. There's no need to define an explicit "
+"binary target with explicit dependencies on the other targets."
+msgstr ""
+"O dh tem conhecimento das dependências habituais entre alvos em debian/"
+"rules. Por isso, o \"dh binary\" irá correr quaisquer alvos de build, build-"
+"arch, build-indep, install, etc que existam no ficheiro de regras. Não há "
+"necessidade de definir um alvo binário explícito com dependências explícitas "
+"em outros alvos."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:675
+msgid ""
+"B<dh_strip> compresses debugging symbol files to reduce the installed size "
+"of -dbg packages."
+msgstr ""
+"B<dh_strip> comprime ficheiros de símbolos de depuração para reduzir o "
+"tamanho instalado dos pacotes -dbg."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:680
+msgid ""
+"B<dh_auto_configure> does not include the source package name in --"
+"libexecdir when using autoconf."
+msgstr ""
+"B<dh_auto_configure> não inclui o nome do pacote fonte em --libexecdir "
+"quando usa autoconf."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:685
+msgid "B<dh> does not default to enabling --with=python-support"
+msgstr "B<dh> não tem por predefinição a activação de --with=python-support"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:687
+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 "
+"regardless of compat level)"
+msgstr ""
+"(Obsoleto: Pois a ferramenta B<dh_pysupport> foi removida a partir de Debian "
+"stretch. Desde o debhelper/10.3, B<dh> já não se activa esta sequência add-"
+"on independentemente do nível de compatibilidade)"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:693
+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 ""
+"Todos os programas debhelper B<dh_auto_>I<*> e B<dh> definem variáveis de "
+"ambiente listadas por B<dpkg-buildflags>, a menos que elas estejam já "
+"definidas."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:699
+msgid ""
+"B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and LDFLAGS "
+"to perl F<Makefile.PL> and F<Build.PL>"
+msgstr ""
+"B<dh_auto_configure> passa as B<dpkg-buildflags> CFLAGS, CPPFLAGS, e LDFLAGS "
+"para F<Makefile.PL> e F<Build.PL> de perl."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:704
+msgid ""
+"B<dh_strip> puts separated debug symbols in a location based on their build-"
+"id."
+msgstr ""
+"B<dh_strip> põe símbolos de depuração separados numa localização baseada no "
+"seu build-id."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:709
+msgid ""
+"Executable debhelper config files are run and their output used as the "
+"configuration."
+msgstr ""
+"Os ficheiros de configuração executáveis do debhelper são corridos e os seus "
+"resultados usados como configuração."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:714
+#: debhelper-compat-upgrade-checklist.pod:745
+#: debhelper-compat-upgrade-checklist.pod:749 debhelper-obsolete-compat.pod:81
+#: debhelper-obsolete-compat.pod:135 debhelper-obsolete-compat.pod:158
+#: debhelper-obsolete-compat.pod:165 debhelper-obsolete-compat.pod:174
+msgid "This mode is deprecated."
+msgstr "Este modo está descontinuado."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:716
+msgid "v8"
+msgstr "v8"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:718
+msgid "Changes from v7 are:"
+msgstr "As alterações a partir de v7 são:"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:724
+msgid ""
+"Commands will fail rather than warning when they are passed unknown options."
+msgstr ""
+"Os comandos irão falhar em vez de emitirem avisos quando lhes são passadas "
+"opções desconhecidas."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:728
+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. "
+"Also, libraries in unusual locations that B<dpkg-gensymbols> would not have "
+"processed before will be passed to it, a behavior change that can cause some "
+"packages to fail to build."
+msgstr ""
+"B<dh_makeshlibs> irá correr B<dpkg-gensymbols> em todas as bibliotecas "
+"partilhadas para as quais gera ficheiros shlibs. Portanto o B<-X> pode ser "
+"usado para excluir bibliotecas. Também, as bibliotecas em localizações fora "
+"do habitual que o B<dpkg-gensymbols> não tenha processado antes serão "
+"passadas para ele, uma alteração no comportamento que pode causar que alguns "
+"pacotes falhem a compilar."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:736
+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 "
+"$@>\"."
+msgstr ""
+"B<dh> requer que a sequência a correr seja especificada como o primeiro "
+"parâmetro, e quaisquer switches que venham depois dela. Isto é, use B<dh $@ "
+"--foo>\", e não \"B<dh --foo $@>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:741
+msgid ""
+"B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to "
+"F<Makefile.PL>."
+msgstr ""
+"B<dh_auto_>I<*> prefere usar o B<Module::Build> do Perl em preferência de "
+"F<Makefile.PL>."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:747 debhelper-obsolete-compat.pod:21
+msgid "v7"
+msgstr "v7"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:751 debhelper-obsolete-compat.pod:23
+msgid "This is the lowest supported compatibility level."
+msgstr "Este é o nível de compatibilidade mais baixo suportado."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:753
+msgid ""
+"If you are upgrading from an earlier compatibility level, please review "
+"L<debhelper-obsolete-compat(7)>."
+msgstr ""
+"Se você está a actualizar a partir de um nível de compatibilidade anterior, "
+"por favor reveja L<debhelper-obsolete-compat(7)>."
+
+#. type: =item
+#: debhelper-compat-upgrade-checklist.pod:762
+msgid "L<debhelper-obsolete-compat(7)>"
+msgstr "L<debhelper-obsolete-compat(7)>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:764
+msgid ""
+"Upgrading from a (now) obsolete compatibility level? This document covers "
+"the upgrade checklist up to the earliest supported level."
+msgstr ""
+"A actualizar a partir de um nível de compatibilidade (agora) obsoleto? Este "
+"documento a lista de verificação de actualização até ao nível suportado mais "
+"recente."
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:767 debhelper-obsolete-compat.pod:180
+#: dh:874 dh_auto_build:55 dh_auto_clean:57 dh_auto_configure:60
+#: dh_auto_install:105 dh_auto_test:66 dh_builddeb:178 dh_clean:191
+#: dh_compress:245 dh_dwz:165 dh_fixperms:166 dh_gencontrol:210 dh_install:379
+#: dh_installcatalogs:130 dh_installchangelogs:367 dh_installcron:82
+#: dh_installdeb:421 dh_installdebconf:235 dh_installdirs:133
+#: dh_installdocs:439 dh_installexamples:184 dh_installifupdown:74
+#: dh_installinfo:125 dh_installlogcheck:83 dh_installlogrotate:55
+#: dh_installman:422 dh_installmanpages:200 dh_installmime:65
+#: dh_installmodules:111 dh_installpam:73 dh_installppp:70 dh_installudev:104
+#: dh_installwm:132 dh_installxfonts:92 dh_link:168 dh_listpackages:36
+#: dh_makeshlibs:458 dh_md5sums:120 dh_movefiles:163 dh_perl:190 dh_prep:72
+#: dh_strip:437 dh_testdir:64 dh_testroot:95 dh_usrlocal:138
+#: dh_systemd_start:282
+msgid "L<debhelper(7)>"
+msgstr "L<debhelper(7)>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:769
+msgid ""
+"General information about the debhelper framework. This document also covers "
+"how to declare your chosen debhelper compat level."
+msgstr ""
+"Informação geral acerca da estrutura do debhelper. Este documento também "
+"cobre como declarar o seu nível de compatibilidade debhelper escolhido."
+
+#. type: =head1
+#: debhelper-compat-upgrade-checklist.pod:774 debhelper-obsolete-compat.pod:182
+#: dh_installinit:419 dh_systemd_enable:284 dh_systemd_start:284
+msgid "AUTHORS"
+msgstr "AUTORES"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:776 debhelper-obsolete-compat.pod:184
+#: dh_dwz:171 dh_installinitramfs:101
+msgid "Niels Thykier <niels@thykier.net>"
+msgstr "Niels Thykier <niels@thykier.net>"
+
+#. type: textblock
+#: debhelper-compat-upgrade-checklist.pod:778 debhelper-obsolete-compat.pod:186
+msgid "Joey Hess"
+msgstr "Joey Hess"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:3
+msgid "debhelper-obsolete-compat - List of no longer supported compat levels"
+msgstr ""
+"debhelper-obsolete-compat - Lista dos níveis de compatibilidade não mais "
+"suportados"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:7
+msgid ""
+"This document contains the upgrade guidelines from all compat levels which "
+"are no longer supported. Accordingly it is mostly for historical purposes "
+"and to assist people upgrading from a non-supported compat level to a "
+"supported level."
+msgstr ""
+"Este documento contém o guião de actualização a partir de todos os níveis de "
+"compatibilidade que já não são suportados. Consequentemente é principalmente "
+"para objectivos históricos e para ajudar pessoas a actualizarem a partir de "
+"um nível de compatibilidade não suportado para um nível suportado."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:12
+msgid "For upgrades from supported compat levels, please see L<debhelper(7)>."
+msgstr ""
+"Para actualizações a partir de níveis de compatibilidade suportados, por "
+"favor veja L<debhelper(7)>."
+
+#. type: =head1
+#: debhelper-obsolete-compat.pod:14
+msgid "UPGRADE LIST FOR COMPAT LEVELS"
+msgstr "ACTUALIZAÇÃO DE LISTA PARA NÍVEIS DE COMPATIBILIDADE"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:16
+msgid ""
+"The following is the list of now obsolete compat levels and their changes."
+msgstr ""
+"O seguinte é a lista dos níveis de compatibilidade agora obsoletos e as suas "
+"alterações."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:25
+msgid "Changes from v6 are:"
+msgstr "As alterações a partir de v6 são:"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:31
+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 "
+"using B<--sourcedir>). This allows B<dh_install> to interoperate with "
+"B<dh_auto_install>, which installs to F<debian/tmp>, without needing any "
+"special parameters."
+msgstr ""
+"B<dh_install>, irá regressar a procurar por ficheiros em F<debian/tmp> se "
+"não os encontrar no directório actual (ou onde você lhe disser para procurar "
+"usando B<--sourcedir>). Isto permite ao B<dh_install> inter-operar com o "
+"B<dh_auto_install>, o qual instala para F<debian/tmp>, sem precisar de "
+"nenhuns parâmetros especiais."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:38
+msgid "B<dh_clean> will read F<debian/clean> and delete files listed there."
+msgstr "B<dh_clean> irá ler F<debian/clean> e apagar os ficheiros listados lá."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:42
+msgid "B<dh_clean> will delete toplevel F<*-stamp> files."
+msgstr "B<dh_clean> irá apagar ficheiros F<*-stamp> do nível de topo."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:46
+msgid ""
+"B<dh_installchangelogs> will guess at what file is the upstream changelog if "
+"none is specified."
+msgstr ""
+"B<dh_installchangelogs> irá adivinhar qual ficheiro está no relatório de "
+"alterações da origem se nenhum for especificado."
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:51
+msgid "v6"
+msgstr "v6"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:53
+msgid "Changes from v5 are:"
+msgstr "As alterações a partir de v5 são:"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:59
+msgid ""
+"Commands that generate maintainer script fragments will order the fragments "
+"in reverse order for the F<prerm> and F<postrm> scripts."
+msgstr ""
+"Os comandos que geram fragmentos de script de maintainer irão ordenar os "
+"fragmentos em ordem reversa para os scripts F<prerm> e F<postrm>."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:64
+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 "
+"directory."
+msgstr ""
+"B<dh_installwm> irá instalar uma ligação escrava de manual para F<x-window-"
+"manager.1.gz>, se vir o manual em F<usr/share/man/man1> no directório de "
+"compilação do pacote."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:70
+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 ""
+"O B<dh_builddeb> anteriormente não apagava nada que correspondesse a "
+"B<DH_ALWAYS_EXCLUDE>, se estivesse definida uma lista de coisas a excluir, "
+"como B<CVS:.svn:.git>. Mas agora fá-lo."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:76
+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> permite a sobreposição de manuais existentes no directório "
+"de compilação do pacote. Nos níveis de compatibilidade anteriores recusava-"
+"se em silêncio a fazer isto."
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:83
+msgid "v5"
+msgstr "v5"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:85
+msgid "Changes from v4 are:"
+msgstr "As alterações a partir de v4 são:"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:91
+msgid "Comments are ignored in debhelper config files."
+msgstr "Comentários são ignorados nos ficheiros de configuração do debhelper."
+
+# http://de.wikipedia.org/wiki/Debugsymbol
+#. type: textblock
+#: debhelper-obsolete-compat.pod:95
+msgid ""
+"B<dh_strip --dbg-package> now specifies the name of a package to put "
+"debugging symbols in, not the packages to take the symbols from."
+msgstr ""
+"Agora B<dh_strip --dbg-package> especifica o nome de um pacote onde colocar "
+"símbolos de depuração, e não os pacotes de onde tirar os símbolos."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:100
+msgid "B<dh_installdocs> skips installing empty files."
+msgstr "B<dh_installdocs> evita a instalação de ficheiros vazios."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:104
+msgid "B<dh_install> errors out if wildcards expand to nothing."
+msgstr ""
+"B<dh_install> resulta em erro se as \"wildcards\" expandirem para nada."
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:108
+msgid "v4"
+msgstr "v4"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:110
+msgid "Changes from v3 are:"
+msgstr "As alterações a partir de v3 são:"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:116
+msgid ""
+"B<dh_makeshlibs -V> will not include the Debian part of the version number "
+"in the generated dependency line in the shlibs file."
+msgstr ""
+"B<dh_makeshlibs -V> não irá incluir a parte Debian do número de versão na "
+"linha de dependência gerada no ficheiro shlibs."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:121
+msgid ""
+"You are encouraged to put the new B<${misc:Depends}> into F<debian/control> "
+"to supplement the B<${shlibs:Depends}> field."
+msgstr ""
+"Você é encorajado a colocar o novo B<${misc:Depends}> em F<debian/control> "
+"para suplementar o campo B<${shlibs:Depends}>."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:126
+msgid ""
+"B<dh_fixperms> will make all files in F<bin/> directories and in F<etc/init."
+"d> executable."
+msgstr ""
+"B<dh_fixperms> irá tornar em executáveis todos os ficheiros nos directórios "
+"F<bin/> e em F<etc/init.d>."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:131
+msgid "B<dh_link> will correct existing links to conform with policy."
+msgstr ""
+"B<dh_link> irá corrigir os links existentes para ficarem em conformidade com "
+"a política."
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:137
+msgid "v3"
+msgstr "v3"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:139
+msgid "This mode works like v2, with the following additions:"
+msgstr "Este modo funciona como v2, com as seguintes adições:"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:145
+msgid ""
+"Debhelper config files support globbing via B<*> and B<?>, when appropriate. "
+"To turn this off and use those characters raw, just prefix with a backslash."
+msgstr ""
+"Os ficheiros de configuração do debhelper suportam englobamentos via B<*> e "
+"B<?>, onde apropriado. Para desligar isto e usar esses caracteres a cru, "
+"basta antecede-los com uma barra invertida (backslash \"\")."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:150
+msgid ""
+"B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call "
+"B<ldconfig>."
+msgstr ""
+"B<dh_makeshlibs> faz com que os scripts F<postinst> e F<postrm> chamem "
+"B<ldconfig>."
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:154
+msgid ""
+"Every file in F<etc/> is automatically flagged as a conffile by "
+"B<dh_installdeb>."
+msgstr ""
+"Qualquer ficheiro em F<etc/> é marcado automaticamente como um conffile "
+"(ficheiro de configuração) pelo B<dh_installdeb>."
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:160
+msgid "v2"
+msgstr "v2"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:162
+msgid ""
+"In this mode, debhelper will consistently use debian/I<package> as the "
+"package tree directory for every package that is built."
+msgstr ""
+"Neste modo, o debhelper irá consistentemente usar debian/I<pacote> como o "
+"directório da árvore do pacote para cada pacote que é compilado."
+
+#. type: =item
+#: debhelper-obsolete-compat.pod:167
+msgid "v1"
+msgstr "v1"
+
+#. type: textblock
+#: debhelper-obsolete-compat.pod:169
+msgid ""
+"This is the original debhelper compatibility level, and so it is the default "
+"one. In this mode, debhelper will use F<debian/tmp> as the package tree "
+"directory for the first binary package listed in the control file, while "
+"using debian/I<package> for all other packages listed in the F<control> file."
+msgstr ""
+"Este é o nível de compatibilidade original do debhelper, e por isso é o "
+"predefinido. Neste modo, o debhelper irá usar F<debian/tmp> como o "
+"directório da árvore do pacote para o primeiro pacote binário listado no "
+"ficheiro de controle, enquanto usa debian/I<pacote> para todos os outros "
+"pacotes listados no ficheiro F<control>."
+
+#. type: textblock
#: dh:5
msgid "dh - debhelper command sequencer"
-msgstr "dh - sequênciador de comandos do debhelper"
+msgstr "dh - sequenciador de comandos do debhelper"
#. type: textblock
-#: dh:14
+#: dh:24
msgid ""
"B<dh> I<sequence> [B<--with> I<addon>[B<,>I<addon> ...]] [B<--list>] "
"[S<I<debhelper options>>]"
@@ -1710,7 +4344,7 @@ msgstr ""
"[S<I<debhelper opções>>]"
#. type: textblock
-#: dh:18
+#: dh:28
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-"
@@ -1718,27 +4352,76 @@ msgid ""
"B<binary-arch>, B<binary-indep>, and B<binary>."
msgstr ""
"B<dh> corre uma sequência de comandos do debhelper. As I<sequência>s "
-"suportadas correspondem às metas de um ficheiro F<debian/rules>: B<build-"
+"suportadas correspondem aos alvos de um ficheiro F<debian/rules>: B<build-"
"arch>, B<build-indep>, B<build>, B<clean>, B<install-indep>, B<install-"
"arch>, B<install>, B<binary-arch>, B<binary-indep>, e B<binary>."
#. type: =head1
-#: dh:23
-msgid "OVERRIDE TARGETS"
-msgstr "METAS DE SOBREPOSIÇÃO"
+#: dh:33
+msgid "OVERRIDE AND HOOK TARGETS"
+msgstr "ALVOS DE SOBREPOSIÇÃO E HOOK"
#. type: textblock
-#: dh:25
+#: dh:35
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."
+"any step in a sequence, by defining an override target. It is also possible "
+"to inject a command before or after any step without affecting the step "
+"itself."
msgstr ""
"Um ficheiro F<debian/rules> que use B<dh> pode sobrepor o comando que é "
-"executado em qualquer passo numa sequência, ao se definir uma meta de "
-"sobreposição."
+"executado em qualquer passo numa sequência, ao se definir um alvo de "
+"sobreposição. É também possível injectar um comando antes ou depois de "
+"qualquer passo sem afectar o próprio passo."
+
+#. type: =head2
+#: dh:40
+msgid "Injecting commands before or after a step"
+msgstr "Injectando comandos antes e depois de um passo"
#. type: textblock
-#: dh:28
+#: dh:42
+msgid ""
+"I<Note>: This feature requires debhelper 12.8 or later plus the package must "
+"use compatibility mode 10 or later."
+msgstr ""
+"I<Nota>: Esta funcionalidade requer debhelper 12.8 ou posterior e o pacote "
+"tem de usar modo de compatibilidade 10 ou posterior."
+
+#. type: textblock
+#: dh:45
+msgid ""
+"To inject commands before I<dh_command>, add a target named "
+"B<execute_before_>I<dh_command> to the rules files. Similarly, if you want "
+"to inject commands after I<dh_command>, add the target "
+"B<execute_after_>I<dh_command>. Both targets can be used for the same "
+"I<dh_command> and also even if the command is overridden (as described in L</"
+"Overriding a command> below)."
+msgstr ""
+"Para injectar comandos antes de I<dh_command>, adicione um alvo chamado "
+"B<execute_before_>I<dh_command> aos ficheiros rules. De modo semelhante, se "
+"precisar de injectar comandos após I<dh_command>, adicione o alvo "
+"B<execute_after_>I<dh_command>. Ambos alvos podem ser usados para o mesmo "
+"I<dh_command> e também mesmo que o comando seja sobreposto (como descrito em "
+"L</Sobrepor um comando> em baixo)."
+
+#. type: textblock
+#: dh:52
+msgid ""
+"When these targets are defined, B<dh> will call the targets respectively "
+"before or after it would invoke I<dh_command> (or its override target)."
+msgstr ""
+"Quando estes alvos estão definidos, B<dh> irá chamar os alvos respetivamente "
+"antes ou depois de quando iria invocar I<dh_command> (ou os seus alvos de "
+"sobreposição)."
+
+#. type: =head2
+#: dh:55
+msgid "Overriding a command"
+msgstr "Sobrepor um comando"
+
+#. type: textblock
+#: dh:57
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 "
@@ -1746,50 +4429,541 @@ msgid ""
"additional options, or run entirely different commands instead. See examples "
"below."
msgstr ""
-"Para sobrepor o I<dh_command>, adicione uma meta chamada "
+"Para sobrepor o I<dh_command>, adicione um alvo chamado "
"B<override_>I<dh_command> ao ficheiro de regras. Em vez de correr "
-"normalmente I<dh_command>, o B<dh> irá chamar essa meta. A meta de "
+"normalmente I<dh_command>, o B<dh> irá chamar esse alvo. O alvo de "
"sobreposição pode depois correr o comando com opções adicionais, ou em vez "
"disso correr comandos completamente diferentes. Veja exemplos em baixo."
+#. type: =head2
+#: dh:63
+msgid "Architecture dependent/independent override and hook targets"
+msgstr "Alvos de sobreposição e hook dependentes/independentes da arquitectura"
+
+#. type: textblock
+#: dh:65
+msgid ""
+"The override and hook targets can also be defined to run only when building "
+"architecture dependent or architecture independent packages. Use targets "
+"with names like B<override_>I<dh_command>B<-arch> and "
+"B<execute_after_>I<dh_command>B<-indep>."
+msgstr ""
+"Os alvos de sobreposição e hook também podem ser definidos para correr "
+"apenas quando se compila pacotes dependentes ou independentes da "
+"arquitectura. Use alvos com nomes como B<override_>I<dh_command>B<-arch> e "
+"B<execute_after_>I<dh_command>B<-indep>."
+
+#. type: textblock
+#: dh:70
+msgid ""
+"This feature is available since debhelper 8.9.7 (for override targets) and "
+"12.8 (for hook targets)."
+msgstr ""
+"Esta funcionalidade está disponível desde debhelper 8.9.7 (para alvos de "
+"sobreposição) e 12.8 (para alvos hook)."
+
+#. type: =head2
+#: dh:73
+msgid "Completely empty targets"
+msgstr "Alvos completamente vazios"
+
+#. type: textblock
+#: dh:75
+msgid ""
+"As a special optimization, B<dh> will skip a target if it is completely "
+"empty and does not depend on any other target. This is mostly useful for "
+"override targets, where the command will simply be skipped without the "
+"overhead of invoking a dummy target."
+msgstr ""
+"Como uma optimização especial, B<dh> irá saltar um alvo se este estiver "
+"completamente vazio e não depender de nenhum outro alvo. Isto é muito útil "
+"para alvos de sobreposição, onde o comando irá simplesmente ser saltado sem "
+"a sobrecarga de invocar um alvo fantoche."
+
+#. type: textblock
+#: dh:80
+msgid "Note that the target has to be completely empty for this to work:"
+msgstr "Note que o alvo tem de estar completamente vazio para isto funcionar:"
+
+#. type: verbatim
+#: dh:82
+#, no-wrap
+msgid ""
+" # Skip dh_bar - the good and optimized way\n"
+" # Some rationale for skipping dh_bar goes here\n"
+" override_dh_bar:\n"
+"\n"
+msgstr ""
+" # Skip dh_bar - the good and optimized way\n"
+" # Some rationale for skipping dh_bar goes here\n"
+" override_dh_bar:\n"
+"\n"
+
+#. type: verbatim
+#: dh:87
+#, no-wrap
+msgid ""
+" # Skip dh_foo - the slow way\n"
+" override_dh_foo:\n"
+" # Some rationale for skipping dh_foo goes here\n"
+" # (these comments causes a dummy target to be run)\n"
+"\n"
+msgstr ""
+" # Skip dh_foo - the slow way\n"
+" override_dh_foo:\n"
+" # Some rationale for skipping dh_foo goes here\n"
+" # (these comments causes a dummy target to be run)\n"
+"\n"
+
+#. type: =head2
+#: dh:92
+msgid "Verifying targets are picked up by dh"
+msgstr "Verificando se os alvos são apanhados pelo dh"
+
+#. type: textblock
+#: dh:94
+msgid ""
+"As of debhelper 13.10, you can use L<dh_assistant(1)> to see which override "
+"and hook targets will be seen by B<dh>. Here is an example run of "
+"L<dh_assistant(1)> along with its output:"
+msgstr ""
+"A partir do debhelper 13.10, você pode usar L<dh_assistant(1)> para ver "
+"quais alvos de sobreposição e hook irão ser vistos pelo B<dh>. Aqui está um "
+"exemplo de execução do L<dh_assistant(1)> juntamente com os seus resultados:"
+
+#. type: verbatim
+#: dh:98
+#, no-wrap
+msgid ""
+" $ dh_assistant detect-hook-targets\n"
+" {\n"
+" \"commands-not-in-path\": [\n"
+" \"dh_foo\"\n"
+" ],\n"
+" \"hook-targets\": [\n"
+" {\n"
+" \"command\": \"dh_strip_nondeterminism\",\n"
+" \"is-empty\": true,\n"
+" \"package-section-param\": null,\n"
+" \"target-name\": \"override_dh_strip_nondeterminism\"\n"
+" },\n"
+" {\n"
+" \"command\": \"dh_foo\",\n"
+" \"is-empty\": false,\n"
+" \"package-section-param\": \"-a\",\n"
+" \"target-name\": \"override_dh_foo-arch\"\n"
+" }\n"
+" ]\n"
+" }\n"
+"\n"
+msgstr ""
+" $ dh_assistant detect-hook-targets\n"
+" {\n"
+" \"commands-not-in-path\": [\n"
+" \"dh_foo\"\n"
+" ],\n"
+" \"hook-targets\": [\n"
+" {\n"
+" \"command\": \"dh_strip_nondeterminism\",\n"
+" \"is-empty\": true,\n"
+" \"package-section-param\": null,\n"
+" \"target-name\": \"override_dh_strip_nondeterminism\"\n"
+" },\n"
+" {\n"
+" \"command\": \"dh_foo\",\n"
+" \"is-empty\": false,\n"
+" \"package-section-param\": \"-a\",\n"
+" \"target-name\": \"override_dh_foo-arch\"\n"
+" }\n"
+" ]\n"
+" }\n"
+"\n"
+
+#. type: textblock
+#: dh:119
+msgid ""
+"The B<commands-not-in-path> is useful for spotting mistakes in the hook "
+"target names. A non-empty value implies one of more hook targets are "
+"related to a command that is either not installed or no command with that "
+"name exists at all. It is generally worth double checking these."
+msgstr ""
+"O B<commands-not-in-path> é útil para detetar enganos nos nomes de alvo "
+"hook. Um valor não-vazio implica que um ou mais alvos hook estão "
+"relacionados com um comando que ou não está instalado ou não existe de todo "
+"um comando com esse nome. Geralmente é de valor verificar bem estes casos."
+
+#. type: textblock
+#: dh:124
+msgid ""
+"Additionally, the B<is-empty> attribute for each hook target can be used for "
+"seeing whether a hook target triggers the L</Completely empty targets> "
+"optimization."
+msgstr ""
+"Adicionalmente, o atributo B<is-empty> para cada alvo hook pode ser usado "
+"para se ver se um alvo hook despoleta a optimização L</Completely empty "
+"targets>."
+
+#. type: textblock
+#: dh:127
+msgid ""
+"If you are interested in the other attributes, please read the "
+"L<dh_assistant(1)> for the details."
+msgstr ""
+"Se você está interessado noutros atributos, por favor leia o "
+"L<dh_assistant(1)> para detalhes."
+
+#. type: =head3
+#: dh:130
+msgid ""
+"Verifying targets are picked up by dh (when debhelper is older than 13.10)"
+msgstr ""
+"Verificando se os alvos são apanhados pelo dh (quando o debhelper é mais "
+"antigo que 13.10)"
+
+#. type: textblock
+#: dh:134
+msgid ""
+"On older versions of debhelper, you have to use B<dh> with B<--no-act>. You "
+"can use the following command as an example:"
+msgstr ""
+"Em versões antigas do debhelper, você tem de usar B<dh> com B<--no-act>. "
+"Você pode usar o seguinte comando como um exemplo:"
+
+#. type: verbatim
+#: dh:137
+#, no-wrap
+msgid ""
+" $ dh binary --no-act | grep dh_install | head -n5\n"
+" dh_installdirs\n"
+" dh_install\n"
+" debian/rules execute_after_dh_install\n"
+" dh_installdocs\n"
+" dh_installchangelogs\n"
+"\n"
+msgstr ""
+" $ dh binary --no-act | grep dh_install | head -n5\n"
+" dh_installdirs\n"
+" dh_install\n"
+" debian/rules execute_after_dh_install\n"
+" dh_installdocs\n"
+" dh_installchangelogs\n"
+"\n"
+
+#. type: textblock
+#: dh:144
+msgid ""
+"The B<debian/rules execute_after_dh_install> in the output, which signals "
+"that B<dh> registered a B<execute_after_dh_install> target and would run it "
+"directly after L<dh_install(1)>."
+msgstr ""
+"O B<debian/rules execute_after_dh_install> no resultado, que assinala que "
+"B<dh> registou um alvo B<execute_after_dh_install> e o iria correr "
+"directamente após L<dh_install(1)>."
+
+#. type: textblock
+#: dh:148
+msgid ""
+"Note that L</Completely empty targets> will be omitted in the listing "
+"above. This makes it a bit harder to spot as you are looking for the "
+"omission of a command name. But otherwise, the principle remains the same."
+msgstr ""
+"Note que L</Alvos completamente vazios> irão ser omitidos na listagem em "
+"cima. Isto torna um pouco mais difícil detectar se você está a olhar para a "
+"omissão de um nome de comando. Mas caso contrário, o princípio continua o "
+"mesmo."
+
+#. type: =head2
+#: dh:152
+msgid "Caveats with hook targets and makefile conditionals"
+msgstr "Ressalvas com alvos hook e condicionais makefile"
+
+#. type: textblock
+#: dh:154
+msgid ""
+"If you choose to wrap a hook target in makefile conditionals, please be "
+"aware that B<dh> computes all the hook targets a head of time and caches the "
+"result for that run. Furthermore, the conditionals will be invoked again "
+"when B<dh> calls the hook target later and will assume the answer did not "
+"change."
+msgstr ""
+"Se você escolher envolver um alvo hook em condicionais makefile, por favor "
+"tenha em mente que B<dh> computa todos os alvos hook em adiantado e guarda "
+"em cache o resultado para essa execução. Mais ainda, as condicionais serão "
+"invocadas novamente quando B<dh> chamar o alvo hook mais tarde e irá assumir "
+"que a resposta não mudou."
+
#. type: textblock
-#: dh:34
+#: dh:160
msgid ""
-"Override targets can also be defined to run only when building architecture "
-"dependent or architecture independent packages. Use targets with names like "
-"B<override_>I<dh_command>B<-arch> and B<override_>I<dh_command>B<-indep>. "
-"(Note that to use this feature, you should Build-Depend on debhelper 8.9.7 "
-"or above.)"
+"The parsing and caching I<often> happens before B<dh> knows whether it will "
+"build arch:any (-a) or/and arch:all (-i) packages, which can produce "
+"confusing results - especially when L<dh_listpackages(1)> is part of the "
+"conditional."
msgstr ""
-"As metas de sobreposição também pode ser definidas para correr apenas quando "
-"se compila pacotes dependentes ou independentes da arquitectura. Use metas "
-"com nomes como B<override_>I<dh_command>B<-arch> e "
-"B<override_>I<dh_command>B<-indep>. (Note que para usar esta funcionalidade, "
-"você deve usar Build-Depend em debhelper 8.9.7 ou posterior.)"
+"A análise e cache ocorre I<muitas vezes> entes de B<dh> saber se vai "
+"compilar pacotes arch:any (-a) ou/e arch:all (-i), o que pode produzir "
+"resultados confusos - especialmente quando L<dh_listpackages(1)> é parte da "
+"condicional."
+
+#. type: textblock
+#: dh:165
+msgid ""
+"Most of the problems can be avoided by making the hook target unconditional "
+"and then have the \"body\" be partially or completely conditional. As an "
+"example:"
+msgstr ""
+"A maioria dos problemas podem ser evitados ao tornar o alvo hook "
+"incondicional e depois ter o \"corpo\" a ser parcial ou completamente "
+"condicional. Com exemplo:"
+
+#. type: verbatim
+#: dh:169
+#, no-wrap
+msgid ""
+" # SIMPLE: It is well-defined what happens. The hook target\n"
+" # is always considered. The \"maybe run this\" bit is\n"
+" # conditional but dh_foo is definitely skipped.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, \"maybe run this\"\n"
+" # is skipped.\n"
+" override_dh_foo:\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+" # SIMPLE: It is well-defined what happens. The hook target\n"
+" # is always considered. The \"maybe run this\" bit is\n"
+" # conditional but dh_foo is definitely skipped.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, \"maybe run this\"\n"
+" # is skipped.\n"
+" override_dh_foo:\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+
+#. type: verbatim
+#: dh:183
+#, no-wrap
+msgid ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The \"maybe run this\" bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar:\n"
+" : # Dummy command to force the target to always be run\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The \"maybe run this\" bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar:\n"
+" : # Dummy command to force the target to always be run\n"
+" ifneq (...)\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+
+#. type: verbatim
+#: dh:198
+#, no-wrap
+msgid ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" # Here, either dh_baz is run normally OR \"maybe run this\" is run\n"
+" # instead.\n"
+" #\n"
+" # And it gets even more complicated to reason about if dh needs to\n"
+" # recurse into debian/rules because you have an \"explicit\"\n"
+" # standard target (e.g. a \"build-arch:\" target separate from \"%:\").\n"
+" ifneq (...)\n"
+" override_dh_baz:\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+msgstr ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" # Here, either dh_baz is run normally OR \"maybe run this\" is run\n"
+" # instead.\n"
+" #\n"
+" # And it gets even more complicated to reason about if dh needs to\n"
+" # recurse into debian/rules because you have an \"explicit\"\n"
+" # standard target (e.g. a \"build-arch:\" target separate from \"%:\").\n"
+" ifneq (...)\n"
+" override_dh_baz:\n"
+" maybe run this\n"
+" endif\n"
+"\n"
+
+#. type: textblock
+#: dh:212
+msgid ""
+"These recipes are also relevant for conditional dependency targets, which "
+"are often seen in a variant of the following example:"
+msgstr ""
+"Estas receitas são também relevantes para alvos de dependência condicional, "
+"os quais são muitas vezes vistos numa variante do seguinte exemplo:"
+
+#. type: verbatim
+#: dh:215
+#, no-wrap
+msgid ""
+" COND_TASKS =\n"
+" ifneq (...)\n"
+" COND_TASKS += maybe-run-this\n"
+" endif\n"
+" ...\n"
+"\n"
+msgstr ""
+" COND_TASKS =\n"
+" ifneq (...)\n"
+" COND_TASKS += maybe-run-this\n"
+" endif\n"
+" ...\n"
+"\n"
+
+#. type: verbatim
+#: dh:221
+#, no-wrap
+msgid ""
+" maybe-run-this:\n"
+" ...\n"
+"\n"
+msgstr ""
+" maybe-run-this:\n"
+" ...\n"
+"\n"
+
+#. type: verbatim
+#: dh:224
+#, no-wrap
+msgid ""
+" # SIMPLE: It is well-defined what happens. Either the\n"
+" # $(COND_TASKS) are skipped or run.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, $(COND_TASKS)\n"
+" # is skipped.\n"
+" override_dh_foo: $(COND_TASKS)\n"
+"\n"
+msgstr ""
+" # SIMPLE: It is well-defined what happens. Either the\n"
+" # $(COND_TASKS) are skipped or run.\n"
+" #\n"
+" # Note: The conditional is evaluated \"twice\" where its\n"
+" # influences what happens. Once when dh check which hook\n"
+" # targets exist and once when the override_dh_foo hook target\n"
+" # is run. If *either* times return false, $(COND_TASKS)\n"
+" # is skipped.\n"
+" override_dh_foo: $(COND_TASKS)\n"
+"\n"
+
+#. type: verbatim
+#: dh:235
+#, no-wrap
+msgid ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The $(COND_TASKS) bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar: $(COND_TASKS)\n"
+" : # Dummy command to force the target to always be run\n"
+"\n"
+msgstr ""
+" # SIMPLE: This is also well-defined. The hook target is always\n"
+" # run and dh_bar is skipped. The $(COND_TASKS) bit is\n"
+" # conditional as one might expect.\n"
+" #\n"
+" # Note: The conditional is still evaluated multiple times (in\n"
+" # different process each time). However, only the evaluation\n"
+" # that happens when the hook target is run influences what\n"
+" # happens.\n"
+" override_dh_bar: $(COND_TASKS)\n"
+" : # Dummy command to force the target to always be run\n"
+"\n"
+
+#. type: verbatim
+#: dh:246
+#, no-wrap
+msgid ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" ifneq (...)\n"
+" override_dh_baz: $(COND_TASKS)\n"
+" endif\n"
+"\n"
+msgstr ""
+" # COMPLICATED: This case can be non-trivial and have sharp edges.\n"
+" # Use at your own peril if dh_listpackages in the conditional.\n"
+" #\n"
+" ifneq (...)\n"
+" override_dh_baz: $(COND_TASKS)\n"
+" endif\n"
+"\n"
+
+#. type: textblock
+#: dh:254
+msgid ""
+"When in doubt, pick the relevant B<SIMPLE> case in the examples above that "
+"match your need."
+msgstr ""
+"Em caso de dúvida, escolha o caso B<SIMPLE> relevante nos exemplos em cima "
+"que corresponda à sua necessidade."
#. type: =head1
-#: dh:41 dh_auto_build:28 dh_auto_clean:30 dh_auto_configure:31
-#: dh_auto_install:43 dh_auto_test:31 dh_bugfiles:50 dh_builddeb:24
-#: dh_clean:41 dh_compress:48 dh_fixperms:32 dh_gconf:39 dh_gencontrol:26
-#: dh_icons:30 dh_install:59 dh_installcatalogs:49 dh_installchangelogs:59
-#: dh_installcron:40 dh_installdebconf:61 dh_installdirs:31 dh_installdocs:71
-#: dh_installemacsen:53 dh_installexamples:32 dh_installifupdown:39
-#: dh_installinfo:31 dh_installinit:59 dh_installlogcheck:42
-#: dh_installlogrotate:22 dh_installman:61 dh_installmanpages:40
-#: dh_installmenu:41 dh_installmodules:38 dh_installpam:31 dh_installppp:35
-#: dh_installudev:35 dh_installwm:34 dh_link:53 dh_makeshlibs:43 dh_md5sums:28
-#: dh_movefiles:38 dh_perl:31 dh_prep:26 dh_shlibdeps:26 dh_strip:35
-#: dh_testdir:23 dh_usrlocal:39
+#: dh:257 dh_auto_build:32 dh_auto_clean:33 dh_auto_configure:35
+#: dh_auto_install:52 dh_auto_test:34 dh_bugfiles:53 dh_builddeb:34 dh_clean:49
+#: dh_compress:52 dh_dwz:26 dh_fixperms:40 dh_gencontrol:38 dh_icons:33
+#: dh_install:69 dh_installcatalogs:56 dh_installchangelogs:77
+#: dh_installcron:45 dh_installdeb:107 dh_installdebconf:64 dh_installdirs:45
+#: dh_installdocs:100 dh_installemacsen:56 dh_installexamples:48
+#: dh_installifupdown:42 dh_installinfo:41 dh_installinit:77
+#: dh_installinitramfs:43 dh_installlogcheck:45 dh_installlogrotate:25
+#: dh_installman:86 dh_installmanpages:43 dh_installmenu:44
+#: dh_installmodules:41 dh_installpam:38 dh_installppp:38 dh_installudev:34
+#: dh_installwm:41 dh_link:69 dh_makeshlibs:67 dh_md5sums:31 dh_movefiles:41
+#: dh_perl:35 dh_prep:29 dh_shlibdeps:30 dh_strip:38 dh_testdir:26
+#: dh_usrlocal:50 dh_systemd_enable:82 dh_systemd_start:33
msgid "OPTIONS"
msgstr "OPÇÕES"
#. type: =item
-#: dh:45
+#: dh:261
msgid "B<--with> I<addon>[B<,>I<addon> ...]"
msgstr "B<--with> I<addon>[B<,>I<addon> ...]"
#. type: textblock
-#: dh:47
+#: dh:263
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 "
@@ -1805,13 +4979,64 @@ msgstr ""
"disponibiliza comandos do debhelper. Veja o ficheiro F<PROGRAMMING> para "
"documentação acerca da sequência de interface de addons."
+#. type: textblock
+#: dh:270
+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>. 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 "
+"bootstrapping)."
+msgstr ""
+"Uma relação B<Build-Depends> no pacote B<dh-sequence->I<addon> implica um "
+"I<addon> B<--with>. Isto evita a necessidade de um B<--with> explícito em "
+"F<debian/rules> que apenas duplica o que já está declarado via dependências "
+"de compilação em F<debian/control>. A relação pode (desde 12.5) ser feita "
+"opcionalmente via por exemplo, build-profiles. Isto permite-lhe facilmente "
+"desativar um addon que é apenas útil com certos perfis (ex. para facilitar "
+"bootstrapping)."
+
+#. type: textblock
+#: dh:279
+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 ""
+"Desde o debhelper 12.5, que addons podem ser também activados em modo "
+"B<indep>-only (via B<Build-Depends-Indep>) ou modo B<arch>-only (via B<Build-"
+"Depends-Arch>). Tais addons estão apenas activos na sequência particular "
+"(ex. B<binary-indep>) o qual simplifica a gestão de dependências para "
+"compilações cruzadas (cross-builds)."
+
+#. type: textblock
+#: dh:285
+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 ""
+"Por favor note que os addons activados via B<Build-Depends-Indep> ou B<Build-"
+"Depends-Arch> estão sujeitos a limitações adicionais para assegurar que o "
+"resultado é determinista mesmo quando o addon está indisponível (ex. durante "
+"limpeza). Isto sugere que alguns addons são incompatíveis com essas "
+"restrições e só podem ser usadas via B<Build-Depends> (ou manualmente via "
+"F<debian/rules>). Actualmente, tais addons podem apenas adicionar comandos a "
+"sequências."
+
#. type: =item
-#: dh:54
+#: dh:293
msgid "B<--without> I<addon>"
msgstr "B<--without> I<addon>"
#. type: textblock
-#: dh:56
+#: dh:295
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, "
@@ -1822,12 +5047,22 @@ msgstr ""
"os listar separados por vírgulas."
#. type: textblock
-#: dh:62
+#: dh:301
msgid "List all available addons."
msgstr "Lista todos os addons disponíveis."
#. type: textblock
-#: dh:66
+#: dh:303
+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 ""
+"Quando chamado apenas com esta opção, o B<dh> pode ser chamado a partir de "
+"qualquer directório (isto é, não precisa de acesso a ficheiros de um pacote "
+"fonte)."
+
+#. type: textblock
+#: dh:309
msgid ""
"Prints commands that would run for a given sequence, but does not run them."
msgstr ""
@@ -1835,7 +5070,7 @@ msgstr ""
"corre."
#. type: textblock
-#: dh:68
+#: dh:311
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."
@@ -1844,7 +5079,7 @@ msgstr ""
"Com --no-act, é escrito em sequência a lista completa dos comandos."
#. type: textblock
-#: dh:73
+#: dh:316
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 "
@@ -1855,12 +5090,13 @@ msgstr ""
"assim como para opções mais especializadas."
#. type: =head1
-#: dh:77 dh_installdocs:110 dh_link:75 dh_makeshlibs:97 dh_shlibdeps:70
+#: dh:320 dh_install:332 dh_installdocs:191 dh_installman:117 dh_link:91
+#: dh_makeshlibs:185 dh_shlibdeps:78
msgid "EXAMPLES"
msgstr "EXEMPLOS"
#. type: textblock
-#: dh:79
+#: dh:322
msgid ""
"To see what commands are included in a sequence, without actually doing "
"anything:"
@@ -1869,7 +5105,7 @@ msgstr ""
"nada:"
#. type: verbatim
-#: dh:82
+#: dh:325
#, no-wrap
msgid ""
"\tdh binary-arch --no-act\n"
@@ -1879,7 +5115,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:84
+#: dh:327
msgid ""
"This is a very simple rules file, for packages where the default sequences "
"of commands work with no additional options."
@@ -1888,7 +5124,7 @@ msgstr ""
"de comandos predefinidas funcionam sem opções adicionais."
#. type: verbatim
-#: dh:87 dh:108 dh:121
+#: dh:330 dh:337 dh:351 dh:364 dh:375 dh:433 dh:444
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -1902,43 +5138,29 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:91
+#: dh:334
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 ""
"Muitas vezes você vai querer passar uma opção a um comando debhelper "
-"específico. A maneira mais fácil de o fazer é adicionar uma meta de "
+"específico. A maneira mais fácil de o fazer é adicionar um alvo de "
"sobreposição a esse comando."
#. type: verbatim
-#: dh:94 dh:179 dh:190
-#, 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:98
+#: dh:341
#, no-wrap
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"
+"\n"
#. type: verbatim
-#: dh:101
+#: dh:344
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -1950,7 +5172,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:104
+#: dh:347
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 "
@@ -1962,7 +5184,7 @@ msgstr ""
"comandos."
#. type: verbatim
-#: dh:112
+#: dh:355
#, no-wrap
msgid ""
"\toverride_dh_auto_configure:\n"
@@ -1974,7 +5196,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:115
+#: dh:358
#, no-wrap
msgid ""
"\toverride_dh_auto_build:\n"
@@ -1986,7 +5208,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:118
+#: dh:361
msgid ""
"Another common case is wanting to do something manually before or after a "
"particular debhelper command is run."
@@ -1995,59 +5217,55 @@ msgstr ""
"comando debhelper particular ser executado."
#. type: verbatim
-#: dh:125
+#: dh:368
#, no-wrap
msgid ""
-"\toverride_dh_fixperms:\n"
-"\t\tdh_fixperms\n"
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
-"\toverride_dh_fixperms:\n"
-"\t\tdh_fixperms\n"
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
#. type: textblock
-#: dh:129
+#: dh:372
msgid ""
-"If your package uses autotools and you want to freshen F<config.sub> and "
-"F<config.guess> with newer versions from the B<autotools-dev> package at "
-"build time, you can use some commands provided in B<autotools-dev> that "
-"automate it, like this."
+"If you are on an older debhelper or compatibility level, the above example "
+"would have to be written as."
msgstr ""
-"Se o seu pacote usa autotools e você quer refrescar os <config.sub> e "
-"F<config.guess> com versões mais recentes a partir do pacote B<autotools-"
-"dev> durante a compilação, você pode usar alguns comandos fornecidos pelo "
-"B<autotools-dev> que o automatizam, como isto."
+"Se você está num debhelper ou nível de compatibilidade antigo, o exemplo de "
+"cima terá que ser escrito assim:"
#. type: verbatim
-#: dh:134
+#: dh:379
#, no-wrap
msgid ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@ --with autotools_dev\n"
+"\t# Older debhelper versions or using compat 9 or lower.\n"
+"\toverride_dh_fixperms:\n"
+"\t\tdh_fixperms\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
-"\t#!/usr/bin/make -f\n"
-"\t%:\n"
-"\t\tdh $@ --with autotools_dev\n"
+"\t# Older debhelper versions or using compat 9 or lower.\n"
+"\toverride_dh_fixperms:\n"
+"\t\tdh_fixperms\n"
+"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
#. type: textblock
-#: dh:138
+#: dh:384
msgid ""
"Python tools are not run by dh by default, due to the continual change in "
-"that area. (Before compatibility level v9, dh does run B<dh_pysupport>.) "
-"Here is how to use B<dh_python2>."
+"that area. Here is how to use B<dh_python2>."
msgstr ""
-"Por predefinição, as ferramentas Python não são accionadas, devido às "
-"alterações contínuas nessa área. (Antes do nível de compatibilidade v9, o dh "
-"corre o B<dh_pysupport>.) Aqui está como usar o B<dh_python2>."
+"Por predefinição, as ferramentas Python não são acionadas, devido às "
+"alterações contínuas nessa área. Aqui está como usar o B<dh_python2>."
#. type: verbatim
-#: dh:142
+#: dh:387
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2061,7 +5279,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:146
+#: dh:391
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."
@@ -2071,7 +5289,7 @@ msgstr ""
"pacote usa MakeMaker."
#. type: verbatim
-#: dh:150
+#: dh:395
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2085,7 +5303,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:154
+#: dh:399
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 "
@@ -2096,7 +5314,7 @@ msgstr ""
"localizada num sub-directório."
#. type: verbatim
-#: dh:158
+#: dh:403
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2110,7 +5328,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:162
+#: dh:407
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>."
@@ -2119,7 +5337,7 @@ msgstr ""
"compilarem num sub-directório, o qual será removido em B<clean>."
#. type: verbatim
-#: dh:165
+#: dh:410
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2133,17 +5351,17 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:169
+#: dh:414
msgid ""
-"If your package can be built in parallel, you can support parallel building "
-"as follows. Then B<dpkg-buildpackage -j> will work."
+"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 ""
-"Se o seu pacote poder ser compilado em paralelo, você pode suportar a "
-"compilação em paralelo como se seque. Depois o B<dpkg-buildpackage -j> irá "
-"funcionar."
+"Se o seu pacote poder ser compilado em paralelo, por favor use "
+"compatibilidade 10 ou passe B<--parallel> ao dh. Assim o B<dpkg-buildpackage "
+"-j> irá funcionar."
#. type: verbatim
-#: dh:172
+#: dh:417
#, no-wrap
msgid ""
"\t#!/usr/bin/make -f\n"
@@ -2157,16 +5375,40 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:176
+#: dh:421
+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 ""
+"Se o seu pacote não pode ser compilado correctamente usando múltiplos "
+"processos, por favor passe B<--no-parallel> ao dh (ou ao comando "
+"B<dh_auto_>I<*> relevante):"
+
+#. type: verbatim
+#: dh:426
+#, no-wrap
+msgid ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --no-parallel\n"
+"\n"
+msgstr ""
+"\t#!/usr/bin/make -f\n"
+"\t%:\n"
+"\t\tdh $@ --no-parallel\n"
+"\n"
+
+#. type: textblock
+#: dh:430
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 ""
"Aqui está um modo de prevenir que o B<dh> corra vários comandos que você não "
-"quer que corram, ao definir metas de sobreposição vazias para cada comando."
+"quer que corram, ao definir alvos de sobreposição vazios para cada comando."
#. type: verbatim
-#: dh:183
+#: dh:437
#, no-wrap
msgid ""
"\t# Commands not to run:\n"
@@ -2178,7 +5420,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:186
+#: dh:440
msgid ""
"A long build process for a separate documentation package can be separated "
"out using architecture independent overrides. These will be skipped when "
@@ -2189,7 +5431,7 @@ msgstr ""
"Estes serão saltados quando se corre as sequências build-arch e binary-arch."
#. type: verbatim
-#: dh:194
+#: dh:448
#, no-wrap
msgid ""
"\toverride_dh_auto_build-indep:\n"
@@ -2201,7 +5443,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:197
+#: dh:451
#, no-wrap
msgid ""
"\t# No tests needed for docs\n"
@@ -2213,7 +5455,7 @@ msgstr ""
"\n"
#. type: verbatim
-#: dh:200
+#: dh:454
#, no-wrap
msgid ""
"\toverride_dh_auto_install-indep:\n"
@@ -2225,7 +5467,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh:203
+#: dh:457
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 "
@@ -2236,196 +5478,332 @@ msgstr ""
"pois ele não está presente quando compila apenas a documentação."
#. type: verbatim
-#: dh:207
+#: dh:461
#, no-wrap
msgid ""
-"\toverride_dh_fixperms-arch:\n"
-"\t\tdh_fixperms\n"
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms-arch:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
msgstr ""
-"\toverride_dh_fixperms-arch:\n"
-"\t\tdh_fixperms\n"
+"\t# Example assumes debhelper/12.8 and compat 10+\n"
+"\texecute_after_dh_fixperms-arch:\n"
"\t\tchmod 4755 debian/foo/usr/bin/foo\n"
"\n"
#. type: =head1
-#: dh:211
-msgid "INTERNALS"
-msgstr "INTERNOS"
+#: dh:465
+msgid "DEBHELPER PROVIDED DH ADDONS"
+msgstr "ADDONS DH FORNECIDOS PELO DEBHELPER"
#. type: textblock
-#: dh:213
+#: dh:467
msgid ""
-"If you're curious about B<dh>'s internals, here's how it works under the "
-"hood."
+"The primary purpose of B<dh> addons is to provide easy integration with "
+"third-party provided features for debhelper. However, debhelper itself also "
+"provide a few sequences that can be useful in some cases. These are "
+"documented in this list:"
msgstr ""
-"Se você está curioso sobre o funcionamento interno do B<dh>, aqui está como "
-"funciona por baixo da capota."
+"O objetivo principal dos addons do B<dh> é fornecer integração fácil com "
+"funcionalidades fornecidas por terceiros para o debhelper. No entanto, o "
+"próprio debhelper também fornece algumas sequências que podem ser úteis em "
+"alguns casos. Estas estão documentadas nesta lista:"
+
+#. type: =item
+#: dh:474
+msgid "build-stamp"
+msgstr "build-stamp"
#. type: textblock
-#: dh:215
+#: dh:476
msgid ""
-"Each debhelper command will record when it's successfully run in F<debian/"
-"package.debhelper.log>. (Which B<dh_clean> deletes.) So B<dh> can tell which "
-"commands have already been run, for which packages, and skip running those "
-"commands again."
+"A special addon for controlling whether B<dh> (in compat 10 or later) will "
+"create stamp files to tell whether the build target has been run "
+"successfully. See L</INTERNALS> for more details."
msgstr ""
-"Cada comando do debhelper irá gravar em F<debian/pacote.debhelper.log> "
-"quando é corrido com sucesso. (O qual B<dh_clean> apaga.) Portanto o B<dh> "
-"consegue dizer quais comandos já foram corridos, para quais pacotes, e evita "
-"correr esses comandos de novo."
+"Um addon especial para controlar se B<dh> (em compatibilidade 10 ou "
+"posterior) irá criar ficheiros stamp para dizer se o alvo de compilação "
+"correu com sucesso. Veja L</INTERNOS> para mais detalhes."
#. type: textblock
-#: dh:220
+#: dh:480
msgid ""
-"Each time B<dh> is run, 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."
+"This addon is active by default but can disabled by using B<dh $@ --without "
+"build-stamp>"
msgstr ""
-"De cada vez que B<dh> corre, examina o relatório, e encontra o último "
-"comando registado que está na sequência especificada. Depois continua com o "
-"próximo comando da sequência. As opções B<--until>, B<--before>, B<--after>, "
-"e B<--remaining> podem sobrepor este comportamento."
+"Este addon está activo por predefinição mas pode ser desactivado ao usar "
+"B<dh $@ --without build-stamp>"
+
+#. type: =item
+#: dh:483
+msgid "dwz (obsolete)"
+msgstr "dwz (obsoleto)"
#. type: textblock
-#: dh:225
+#: dh:485
msgid ""
-"A sequence can also run dependent targets in debian/rules. For example, the "
-"\"binary\" sequence runs the \"install\" target."
+"Adds L<dh_dwz(1)> to the sequence in compat level 11 or below. Obsolete in "
+"compat 12 or later."
msgstr ""
-"Uma sequência também pode correr metas dependentes em debian/rules. Por "
-"exemplo, a sequência \"binary\" corre a meta \"install\"."
+"Adiciona L<dh_dwz(1)> à sequência em compatibilidade 11 ou inferior. "
+"Obsoleto compatibilidade 12 ou posterior."
+
+#. type: =item
+#: dh:488
+msgid "elf-tools"
+msgstr "elf-tools"
#. type: textblock
-#: dh:228
+#: dh:490
msgid ""
-"B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass "
-"information through to debhelper commands that are run inside override "
-"targets. The contents (and indeed, existence) of this environment variable, "
-"as the name might suggest, is subject to change at any time."
+"This addon adds tools related to ELF files to the sequence such as "
+"L<dh_strip(1)> and L<dh_shlibdeps(1)>"
msgstr ""
-"B<dh> usa a variável de ambiente B<DH_INTERNAL_OPTIONS> para passar "
-"informação através dos comandos debhelper que são corridos dentro de metas "
-"de sobreposição. O conteúdo (e de facto a existência) desta variável de "
-"ambiente. como o nome sugere, está sujeito a alterações em qualquer altura."
+"Este addon adiciona ferramentas relativas a ficheiros ELF à sequência tal "
+"como L<dh_strip(1)> e L<dh_shlibdeps(1)>"
#. type: textblock
-#: dh:233
+#: dh:493
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 "
-"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."
+"This addon is I<conditionally> active by default for architecture specific "
+"packages - that is, it is skipped for arch:all packages. In the special "
+"case where you need these tools to work on arch:all packages, you can use "
+"B<--with elf-tools> to activate it unconditionally."
msgstr ""
-"Aos comandos nas sequências B<build-indep>, B<install-indep> e B<binary-"
-"indep> é passada a opção B<-i> para assegurar que eles apenas trabalham em "
-"pacotes independentes da arquitectura, e aos comandos nas sequências B<build-"
-"arch>, B<install-arch> e B<binary-arch> é passada a opção B<-a> para "
-"assegurar que eles apenas trabalham em pacotes dependentes da arquitectura."
+"Este addon está activo I<condicionalmente> por predefinição para pacotes "
+"específicos de arquitectura - isto é, é saltado para pacotes arch:all. Num "
+"caso especial que você precise destas ferramentas a funcionar em pacotes "
+"arch:all, você pode usar B<--with elf-tools> para o activar "
+"incondicionalmente."
-#. type: =head1
-#: dh:239
-msgid "DEPRECATED OPTIONS"
-msgstr "OPÇÕES DESCONTINUADAS"
+#. type: =item
+#: dh:499
+msgid "installinitramfs (obsolete)"
+msgstr "installinitramfs (obsoleto)"
#. type: textblock
-#: dh:241
+#: dh:501
msgid ""
-"The following options are deprecated. It's much better to use override "
-"targets instead."
+"Adds L<dh_installinitramfs(1)> to the sequence in compat level 11 or below. "
+"Obsolete in compat 12 or later."
msgstr ""
-"As seguintes opções estão descontinuadas. É muito melhor usar as metas de "
-"sobreposição em vez destes."
+"Adiciona L<dh_installinitramfs(1)> à sequência em compatibilidade 11 ou "
+"inferior. Obsoleto compatibilidade 12 ou posterior."
#. type: =item
-#: dh:246
-msgid "B<--until> I<cmd>"
-msgstr "B<--until> I<cmd>"
+#: dh:504
+msgid "root-sequence (internal)"
+msgstr "root-sequence (interno)"
#. type: textblock
-#: dh:248
-msgid "Run commands in the sequence until and including I<cmd>, then stop."
-msgstr "Corre comandos na sequência até e incluindo I<cmd>, depois pára."
+#: dh:506
+msgid "This is reserved for internal usage."
+msgstr "Isto está reservado para uso interno."
#. type: =item
-#: dh:250
-msgid "B<--before> I<cmd>"
-msgstr "B<--before> I<cmd>"
+#: dh:508
+msgid "single-binary"
+msgstr "single-binary"
#. type: textblock
-#: dh:252
-msgid "Run commands in the sequence before I<cmd>, then stop."
-msgstr "Corre comandos na sequência antes de I<cmd>, depois pára."
+#: dh:510
+msgid ""
+"A special-purpose addon that makes debhelper run in \"single binary\" mode."
+msgstr ""
+"Um addon de objetivo-especial que faz o debhelper em modo \"binário único\"."
-#. type: =item
-#: dh:254
-msgid "B<--after> I<cmd>"
-msgstr "B<--after> I<cmd>"
+#. type: textblock
+#: dh:512
+msgid ""
+"When active, it will pass B<< --destdir=debian/I<package>/ >> to "
+"L<dh_auto_install(1)>. This makes every file \"installed\" by the upstream "
+"build system part of the (only) binary package by default without having to "
+"use other helpers such as L<dh_install(1)>."
+msgstr ""
+"Quando activo, irá passar B<< --destdir=debian/I<package>/ >> ao "
+"L<dh_auto_install(1)>. Isto faz com que todos os ficheiros \"instalados\" "
+"pelo sistema de compilação do autor façam parte do (único) pacote binário "
+"por predefinição sem ter que se usar outros ajudantes como o "
+"L<dh_install(1)>."
+
+#. type: textblock
+#: dh:517
+msgid ""
+"The addon will refuse to activate when the source package lists 2 or more "
+"binary packages in F<debian/control> as a precaution."
+msgstr ""
+"Como precaução o addon irá recusar activar-se quando o pacote fonte listar 2 "
+"ou mais pacotes binários em F<debian/control>."
#. type: textblock
-#: dh:256
-msgid "Run commands in the sequence that come after I<cmd>."
-msgstr "Corre comandos na sequência que vêm depois de I<cmd>."
+#: dh:520
+msgid ""
+"Before compat 15. this behaviour was the default when there was only a "
+"single binary package listed in F<debian/control>. In compat 15 and later, "
+"this addon must explicitly be activated for this feature to work."
+msgstr ""
+"Antes da compatibilidade 15, este comportamento era o predefinido quando "
+"havia apenas um único pacote binário listado em F<debian/control>. Em "
+"compatibilidade 15 e posterior, este addon tem de ser activado "
+"explicitamente para que esta funcionalidade funcione."
+
+#. type: textblock
+#: dh:524
+msgid ""
+"The rationale for requiring this as an explicit choice is that if it is "
+"implicit then debhelper will silently change behaviour on adding a new "
+"binary package. This has caused many RC bugs when maintainers renamed a "
+"binary and added transitional packages with the intention of supporting "
+"seamless upgrades. The result would often be two empty binary packages that "
+"were uploaded to archive with users frustrated as their \"upgrade\" removed "
+"their programs."
+msgstr ""
+"A razão para se requerer isto como uma escolha explícita é que se fosse "
+"implícita então o debhelper iria mudar o comportamento em silêncio ao se "
+"adicionar um novo pacote binário. Isto causou muitos bugs RC quando os "
+"maintainers renomeavam um binário e adicionavam pacotes de transição com a "
+"intenção de suportar actualizações perfeitas. O resultado era muitas vezes "
+"dois pacotes binários vazios que eram enviados para o arquivo com os "
+"utilizadores frustrados pois a sua \"actualização\" removeu os seus "
+"programas."
#. type: =item
-#: dh:258
-msgid "B<--remaining>"
-msgstr "B<--remaining>"
+#: dh:532
+msgid "systemd (obsolete)"
+msgstr "systemd (obsoleto)"
+
+#. type: textblock
+#: dh:534
+msgid ""
+"Adds L<dh_systemd_enable(1)> and L<dh_systemd_start(1)> to the sequence in "
+"compat level 10 or below. Obsolete in compat 11 or later."
+msgstr ""
+"Adiciona L<dh_systemd_enable(1)> e L<dh_systemd_start(1)> à sequência em "
+"nível de compatibilidade 10 ou inferior. Obsoleto em compatibilidade 11 ou "
+"posterior."
+
+#. type: =head1
+#: dh:539
+msgid "INTERNALS"
+msgstr "INTERNOS"
#. type: textblock
-#: dh:260
-msgid "Run all commands in the sequence that have yet to be run."
-msgstr "Corre todos os comandos na sequência que ainda estão por correr."
+#: dh:541
+msgid ""
+"If you're curious about B<dh>'s internals, here's how it works under the "
+"hood."
+msgstr ""
+"Se você está curioso sobre o funcionamento interno do B<dh>, aqui está como "
+"funciona por baixo da capota."
#. type: textblock
-#: dh:264
+#: dh:543
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."
+"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 "
+"possible to avoid the stamp file by passing B<--without=build-stamp> to "
+"B<dh>. This makes \"no clean\" builds behave more like what some people "
+"expect at the expense of possibly running the build and test twice (the "
+"second time as root or under L<fakeroot(1)>)."
msgstr ""
-"Nas opções em cima, I<cmd> pode ser o nome completo de um comando debhelper, "
-"ou uma substring. Irá primeiro procurar por um comando na sequência que "
-"corresponda exactamente ao nome, para evitar qualquer ambiguidade. Se "
-"existirem múltiplas correspondências de substring, será usada a última da "
-"sequência."
+"No modo compatibilidade 10 (ou posterior), o B<dh> cria um ficheiro stamp "
+"<debian/debhelper-build-stamp> após os passo(s) de compilação estarem "
+"completos para evitar voltar a corre-los. É possível evitar o ficheiro stamp "
+"ao passar B<--without=build-stamp> para B<dh>. Isto faz com que "
+"compilações \"não limpas\" se comportem mais como o que algumas pessoas "
+"esperam à custa de possivelmente correrem a compilação e testa-la duas vezes "
+"(a segunda vez como root ou sob L<fakeroot(1)>)."
#. type: textblock
-#: dh:974 dh_auto_build:49 dh_auto_clean:52 dh_auto_configure:54
-#: dh_auto_install:94 dh_auto_test:65 dh_builddeb:126 dh_clean:149
-#: dh_compress:212 dh_fixperms:133 dh_gconf:103 dh_gencontrol:80
-#: dh_install:262 dh_installcatalogs:124 dh_installchangelogs:243
-#: dh_installcron:81 dh_installdeb:144 dh_installdebconf:130 dh_installdirs:90
-#: dh_installdocs:339 dh_installexamples:110 dh_installifupdown:73
-#: dh_installinfo:79 dh_installinit:326 dh_installlogcheck:82
-#: dh_installlogrotate:54 dh_installman:265 dh_installmanpages:199
-#: dh_installmime:65 dh_installmodules:117 dh_installpam:63 dh_installppp:69
-#: dh_installudev:119 dh_installwm:112 dh_installxfonts:91 dh_link:230
-#: dh_listpackages:32 dh_makeshlibs:266 dh_md5sums:92 dh_movefiles:172
-#: dh_perl:154 dh_prep:62 dh_strip:244 dh_suidregister:119 dh_testdir:55
-#: dh_testroot:29 dh_undocumented:30 dh_usrlocal:118
-msgid "L<debhelper(7)>"
-msgstr "L<debhelper(7)>"
+#: dh:551
+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 "
+"been run for. These log files are then removed once the override target is "
+"complete."
+msgstr ""
+"Dentro de um alvo de sobreposição, os comandos B<dh_*> irão criar um "
+"ficheiro de registo F<debian/package.debhelper.log> para manter "
+"acompanhamento de para quais pacotes os comando(s) têm corrido. Estes "
+"ficheiros log são depois removidos assim que o alvo de sobreposição estiver "
+"completo."
#. type: textblock
-#: dh:976 dh_auto_build:51 dh_auto_clean:54 dh_auto_configure:56
-#: dh_auto_install:96 dh_auto_test:67 dh_bugfiles:130 dh_builddeb:128
-#: dh_clean:151 dh_compress:214 dh_desktop:35 dh_fixperms:135 dh_gconf:105
-#: dh_gencontrol:82 dh_icons:75 dh_install:264 dh_installchangelogs:245
-#: dh_installcron:83 dh_installdeb:146 dh_installdebconf:132 dh_installdirs:92
-#: dh_installdocs:341 dh_installemacsen:146 dh_installexamples:112
-#: dh_installifupdown:75 dh_installinfo:81 dh_installinit:328
-#: dh_installlogrotate:56 dh_installman:267 dh_installmanpages:201
-#: dh_installmenu:95 dh_installmime:67 dh_installmodules:119 dh_installpam:65
-#: dh_installppp:71 dh_installudev:121 dh_installwm:114 dh_installxfonts:93
-#: dh_link:232 dh_lintian:63 dh_listpackages:34 dh_makeshlibs:268
-#: dh_md5sums:94 dh_movefiles:174 dh_perl:156 dh_prep:64 dh_scrollkeeper:32
-#: dh_shlibdeps:156 dh_strip:246 dh_suidregister:121 dh_testdir:57
-#: dh_testroot:31 dh_undocumented:32 dh_usrlocal:120
+#: dh:556
+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> "
+"deletes.) So B<dh> can tell which commands have already been run, for which "
+"packages, and skip running those commands again."
+msgstr ""
+"No modo de compatibilidade 9 e anteriores, cada comando do debhelper irá "
+"gravar em F<debian/pacote.debhelper.log> quando é corrido com sucesso. (O "
+"qual B<dh_clean> apaga.) Portanto o B<dh> consegue dizer quais comandos já "
+"foram corridos, para quais pacotes, e evita correr esses comandos de novo."
+
+#. type: textblock
+#: dh:561
+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."
+msgstr ""
+"De cada vez que B<dh> corre (no nível de compatibilidade 9 ou anterior), "
+"examina o relatório, e encontra o último comando registado que está na "
+"sequência especificada. Depois continua com o próximo comando da sequência."
+
+#. type: textblock
+#: dh:565
+msgid ""
+"A sequence can also run dependent targets in debian/rules. For example, the "
+"\"binary\" sequence runs the \"install\" target."
+msgstr ""
+"Uma sequência também pode correr alvos dependentes em debian/rules. Por "
+"exemplo, a sequência \"binary\" corre o alvo \"install\"."
+
+#. type: textblock
+#: dh:568
+msgid ""
+"B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass "
+"information through to debhelper commands that are run inside override "
+"targets. The contents (and indeed, existence) of this environment variable, "
+"as the name might suggest, is subject to change at any time."
+msgstr ""
+"B<dh> usa a variável de ambiente B<DH_INTERNAL_OPTIONS> para passar "
+"informação através dos comandos debhelper que são corridos dentro de alvos "
+"de sobreposição. O conteúdo (e de facto a existência) desta variável de "
+"ambiente. como o nome sugere, está sujeito a alterações em qualquer altura."
+
+#. type: textblock
+#: dh:573
+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 "
+"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."
+msgstr ""
+"Aos comandos nas sequências B<build-indep>, B<install-indep> e B<binary-"
+"indep> é passada a opção B<-i> para assegurar que eles apenas trabalham em "
+"pacotes independentes da arquitectura, e aos comandos nas sequências B<build-"
+"arch>, B<install-arch> e B<binary-arch> é passada a opção B<-a> para "
+"assegurar que eles apenas trabalham em pacotes dependentes da arquitectura."
+
+#. type: textblock
+#: dh:876 dh_auto_build:57 dh_auto_clean:59 dh_auto_configure:62
+#: dh_auto_install:107 dh_auto_test:68 dh_bugfiles:139 dh_builddeb:180
+#: dh_clean:193 dh_compress:247 dh_dwz:167 dh_fixperms:168 dh_gencontrol:212
+#: dh_icons:79 dh_install:381 dh_installchangelogs:369 dh_installcron:84
+#: dh_installdeb:423 dh_installdebconf:237 dh_installdirs:135
+#: dh_installdocs:441 dh_installemacsen:143 dh_installexamples:186
+#: dh_installifupdown:76 dh_installinfo:127 dh_installinit:417
+#: dh_installinitramfs:97 dh_installlogrotate:57 dh_installman:424
+#: dh_installmanpages:202 dh_installmenu:94 dh_installmime:67
+#: dh_installmodules:113 dh_installpam:75 dh_installppp:72 dh_installudev:106
+#: dh_installwm:134 dh_installxfonts:94 dh_link:170 dh_lintian:64
+#: dh_listpackages:38 dh_makeshlibs:460 dh_md5sums:122 dh_movefiles:165
+#: dh_perl:192 dh_prep:74 dh_shlibdeps:208 dh_strip:439 dh_testdir:66
+#: dh_testroot:97 dh_usrlocal:140
msgid "This program is a part of debhelper."
msgstr "Este programa é parte do debhelper."
@@ -2435,7 +5813,7 @@ msgid "dh_auto_build - automatically builds a package"
msgstr "dh_auto_build - compila automaticamente um pacote"
#. type: textblock
-#: dh_auto_build:14
+#: dh_auto_build:18
msgid ""
"B<dh_auto_build> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2444,7 +5822,7 @@ msgstr ""
"debhelper>>] [S<B<--> I<parâmetros>>]"
#. type: textblock
-#: dh_auto_build:18
+#: dh_auto_build:22
msgid ""
"B<dh_auto_build> is a debhelper program that tries to automatically build a "
"package. It does so by running the appropriate command for the build system "
@@ -2460,7 +5838,7 @@ msgstr ""
"mesmo é executado para compilar o pacote."
#. type: textblock
-#: dh_auto_build:24
+#: dh_auto_build:28
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, "
"you're encouraged to skip using B<dh_auto_build> at all, and just run the "
@@ -2471,8 +5849,8 @@ msgstr ""
"executar o processo de compilação manualmente."
#. type: textblock
-#: dh_auto_build:30 dh_auto_clean:32 dh_auto_configure:33 dh_auto_install:45
-#: dh_auto_test:33
+#: dh_auto_build:34 dh_auto_clean:35 dh_auto_configure:37 dh_auto_install:54
+#: dh_auto_test:36
msgid ""
"See L<debhelper(7)/B<BUILD SYSTEM OPTIONS>> for a list of common build "
"system selection and control options."
@@ -2481,14 +5859,14 @@ msgstr ""
"sistemas de compilação comuns e opções de controle."
#. type: =item
-#: dh_auto_build:35 dh_auto_clean:37 dh_auto_configure:38 dh_auto_install:56
-#: dh_auto_test:38 dh_builddeb:38 dh_gencontrol:30 dh_installdebconf:69
-#: dh_installinit:105 dh_makeshlibs:91 dh_shlibdeps:37
+#: dh_auto_build:39 dh_auto_clean:40 dh_auto_configure:42 dh_auto_install:65
+#: dh_auto_test:41 dh_builddeb:48 dh_dwz:62 dh_gencontrol:42
+#: dh_installdebconf:72 dh_installinit:166 dh_makeshlibs:179 dh_shlibdeps:41
msgid "B<--> I<params>"
msgstr "B<--> I<params>"
#. type: textblock
-#: dh_auto_build:37
+#: dh_auto_build:41
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_build> usually passes."
@@ -2502,7 +5880,7 @@ msgid "dh_auto_clean - automatically cleans up after a build"
msgstr "dh_auto_clean - limpa tudo automaticamente após uma compilação"
#. type: textblock
-#: dh_auto_clean:15
+#: dh_auto_clean:18
msgid ""
"B<dh_auto_clean> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2511,7 +5889,7 @@ msgstr ""
"debhelper>>] [S<B<--> I<parâmetros>>]"
#. type: textblock
-#: dh_auto_clean:19
+#: dh_auto_clean:22
msgid ""
"B<dh_auto_clean> is a debhelper program that tries to automatically clean up "
"after a package build. It does so by running the appropriate command for the "
@@ -2524,24 +5902,24 @@ msgstr ""
"B<dh_auto_clean> é um programa debhelper que tenta fazer limpeza automática "
"após a compilação de um pacote. Fá-lo ao correr o comando apropriado para o "
"sistema que compilação que detecta que o pacote usa. Por exemplo, se existir "
-"um F<Makefile> e se conter uma meta B<distclean>, B<realclean>, ou B<clean>, "
+"um F<Makefile> e se conter um alvo B<distclean>, B<realclean>, ou B<clean>, "
"então isto é feito ao correr B<make> (ou B<MAKE>, se a variável de ambiente "
"estiver definida). Se existir um F<setup.py>, ou F<Build.PL>, o mesmo é "
"executado para limpar o pacote."
#. type: textblock
-#: dh_auto_clean:26
+#: dh_auto_clean:29
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, or "
"tries to use the wrong clean target, you're encouraged to skip using "
"B<dh_auto_clean> at all, and just run B<make clean> manually."
msgstr ""
"Isto entende-se que deve funcionar com cerca de 90% dos pacotes. Se não "
-"funcionar, ou tentar usar a meta de limpeza errada, você é encorajado não "
+"funcionar, ou tentar usar o alvo de limpeza errado, você é encorajado não "
"usar mesmo o B<dh_auto_clean>, e correr o B<make clean> manualmente."
#. type: textblock
-#: dh_auto_clean:39
+#: dh_auto_clean:42
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_clean> usually passes."
@@ -2556,7 +5934,7 @@ msgstr ""
"dh_auto_configure - configura um pacote automaticamente antes da compilação"
#. type: textblock
-#: dh_auto_configure:14
+#: dh_auto_configure:18
msgid ""
"B<dh_auto_configure> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2565,7 +5943,7 @@ msgstr ""
"debhelper>>] [S<B<--> I<parâmetros>>]"
#. type: textblock
-#: dh_auto_configure:18
+#: dh_auto_configure:22
msgid ""
"B<dh_auto_configure> is a debhelper program that tries to automatically "
"configure a package prior to building. It does so by running the appropriate "
@@ -2586,7 +5964,7 @@ msgstr ""
"B<dh_auto_configure> irá terminar sem ter feito nada."
#. type: textblock
-#: dh_auto_configure:27
+#: dh_auto_configure:31
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, "
"you're encouraged to skip using B<dh_auto_configure> at all, and just run "
@@ -2597,7 +5975,7 @@ msgstr ""
"configure> ou o seu equivalente manualmente."
#. type: textblock
-#: dh_auto_configure:40
+#: dh_auto_configure:44
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_configure> usually passes. For example:"
@@ -2606,7 +5984,7 @@ msgstr ""
"B<dh_auto_configure> normalmente passa. Por exemplo:"
#. type: verbatim
-#: dh_auto_configure:43
+#: dh_auto_configure:47
#, no-wrap
msgid ""
" dh_auto_configure -- --with-foo --enable-bar\n"
@@ -2621,7 +5999,7 @@ msgid "dh_auto_install - automatically runs make install or similar"
msgstr "dh_auto_install - corre automaticamente \"make install\" ou semelhante"
#. type: textblock
-#: dh_auto_install:17
+#: dh_auto_install:20
msgid ""
"B<dh_auto_install> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2630,7 +6008,7 @@ msgstr ""
"debhelper>>] [S<B<--> I<parâmetros>>]"
#. type: textblock
-#: dh_auto_install:21
+#: dh_auto_install:24
msgid ""
"B<dh_auto_install> is a debhelper program that tries to automatically "
"install built files. It does so by running the appropriate command for the "
@@ -2644,29 +6022,46 @@ msgstr ""
"B<dh_auto_install> é um programa debhelper que tenta instalar "
"automaticamente ficheiros compilados. Fá-lo ao correr o comando apropriado "
"para o sistema de compilação que detecta que o pacote usa. Por exemplo, se "
-"existir um F<Makefile> e este conter uma meta B<install>, então isto é feito "
+"existir um F<Makefile> e este conter um alvo B<install>, então isto é feito "
"ao correr B<make> (ou B<MAKE>, se a variável de ambiente estiver definida). "
"Se existir um F<setup.py> ou F<Build.PL>, ele é usado. Note que o sistema de "
"compilação Ant não suporta instalação, portanto o B<dh_auto_install> não irá "
"instalar ficheiros compilados usando o Ant."
#. type: textblock
-#: dh_auto_install:29
+#: dh_auto_install:32
msgid ""
-"Unless B<--destdir> option is specified, the files are installed into debian/"
-"I<package>/ if there is only one binary package. In the multiple binary "
-"package case, the files are instead installed into F<debian/tmp/>, and "
-"should be moved from there to the appropriate package build directory using "
-"L<dh_install(1)>."
+"In compat 15 or later, B<dh_auto_install> will use F<debian/tmp> as the "
+"default B<--destdir> and should be moved from there to the appropriate "
+"package build directory using L<dh_install(1)> or similar tools. Though if "
+"the B<single-binary> addon for L<dh(1)> is activated, then it will pass an "
+"explicit B<< --destdir=debian/I<package>/ >> to B<dh_auto_install>."
msgstr ""
-"A menos que a opção B<--destdir> seja especificada, os ficheiros são "
-"instalados e, debian/I<pacote>/ se existir apenas um pacote binário. No caso "
-"de pacote de múltiplos binários, em vez disso os ficheiros são instalados em "
-"F<debian/tmp/>, e deverão ser movidos daí para o directório apropriado de "
-"compilação de pacote usando o L<dh_install(1)>."
+"Em compatibilidade 15 ou posterior, B<dh_auto_install> irá usar F<debian/"
+"tmp> como B<--destdir> predefinida e deve ser movida de lá para o directório "
+"de compilação de pacote apropriado usando L<dh_install(1)> ou ferramentas "
+"semelhantes. Contudo, se o addon B<single-binary> para L<dh(1)> estiver "
+"activo, então irá passar um B<< --destdir=debian/I<package>/ >> explícito "
+"para B<dh_auto_install>."
#. type: textblock
-#: dh_auto_install:35
+#: dh_auto_install:38
+msgid ""
+"For earlier compat levels then unless B<--destdir> option is specified, the "
+"files are installed into debian/I<package>/ if there is only one binary "
+"package. In the multiple binary package case, the files are instead "
+"installed into F<debian/tmp/>, and should be moved from there to the "
+"appropriate package build directory using L<dh_install(1)> or similar tools."
+msgstr ""
+"Para níveis de compatibilidade anteriores então a menos que a opção B<--"
+"destdir> seja especificada, os ficheiros são instalados em debian/I<pacote>/ "
+"se existir apenas um pacote binário. No caso de pacote de múltiplos "
+"binários, em vez disso os ficheiros são instalados em F<debian/tmp/>, e "
+"deverão ser movidos daí para o directório apropriado de compilação de pacote "
+"usando o L<dh_install(1)> ou ferramentas semelhantes."
+
+#. type: textblock
+#: dh_auto_install:44
msgid ""
"B<DESTDIR> is used to tell make where to install the files. If the Makefile "
"was generated by MakeMaker from a F<Makefile.PL>, it will automatically set "
@@ -2678,23 +6073,23 @@ msgstr ""
"disso."
#. type: textblock
-#: dh_auto_install:39
+#: dh_auto_install:48
msgid ""
"This is intended to work for about 90% of packages. If it doesn't work, or "
"tries to use the wrong install target, you're encouraged to skip using "
"B<dh_auto_install> at all, and just run make install manually."
msgstr ""
"Isto entende-se que deve funcionar com cerca de 90% dos pacotes. Se não "
-"funcionar, ou tente usar a meta de instalação errada, você é encorajado a "
+"funcionar, ou tente usar o alvo de instalação errado, você é encorajado a "
"não usar o B<dh_auto_install>, e correr o make install manualmente."
#. type: =item
-#: dh_auto_install:50 dh_builddeb:28
+#: dh_auto_install:59 dh_builddeb:38
msgid "B<--destdir=>I<directory>"
msgstr "B<--destdir=>I<directório>"
#. type: textblock
-#: dh_auto_install:52
+#: dh_auto_install:61
msgid ""
"Install files into the specified I<directory>. If this option is not "
"specified, destination directory is determined automatically as described in "
@@ -2705,7 +6100,7 @@ msgstr ""
"descrito na secção L</B<DESCRIÇÃO>>"
#. type: textblock
-#: dh_auto_install:58
+#: dh_auto_install:67
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_install> usually passes."
@@ -2719,7 +6114,7 @@ msgid "dh_auto_test - automatically runs a package's test suites"
msgstr "dh_auto_test - corre automaticamente os conjuntos de testes dum pacote"
#. type: textblock
-#: dh_auto_test:15
+#: dh_auto_test:18
msgid ""
"B<dh_auto_test> [S<I<build system options>>] [S<I<debhelper options>>] "
"[S<B<--> I<params>>]"
@@ -2728,7 +6123,7 @@ msgstr ""
"debhelper>>] [S<B<--> I<parâmetros>>]"
#. type: textblock
-#: dh_auto_test:19
+#: dh_auto_test:22
msgid ""
"B<dh_auto_test> is a debhelper program that tries to automatically run a "
"package's test suite. It does so by running the appropriate command for the "
@@ -2741,13 +6136,13 @@ msgstr ""
"B<dh_auto_test> é um programa debhelper que tenta correr automaticamente uma "
"suite de teste de um pacote. Fá-lo ao correr o comando apropriado para o "
"sistema de compilação que detecta que o pacote usa. Por exemplo, Se existir "
-"um Makefile e conter uma meta B<test> ou B<check>, então é feito ao correr "
+"um Makefile e conter um alvo B<test> ou B<check>, então é feito ao correr "
"B<make> (ou B<MAKE>, se a variável de ambiente estiver definida). Se a suite "
"de teste falhar, o comando irá terminar com não-zero. Se não existir uma "
"suite de teste, irá terminar com zero sem fazer nada."
#. type: textblock
-#: dh_auto_test:27
+#: dh_auto_test:30
msgid ""
"This is intended to work for about 90% of packages with a test suite. If it "
"doesn't work, you're encouraged to skip using B<dh_auto_test> at all, and "
@@ -2758,7 +6153,7 @@ msgstr ""
"correr a suite de teste manualmente."
#. type: textblock
-#: dh_auto_test:40
+#: dh_auto_test:43
msgid ""
"Pass I<params> to the program that is run, after the parameters that "
"B<dh_auto_test> usually passes."
@@ -2767,7 +6162,7 @@ msgstr ""
"B<dh_auto_test> normalmente passa."
#. type: textblock
-#: dh_auto_test:47
+#: dh_auto_test:50
msgid ""
"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nocheck>, no "
"tests will be performed."
@@ -2776,15 +6171,6 @@ msgstr ""
"teste será executado."
#. type: textblock
-#: dh_auto_test:50
-msgid ""
-"dh_auto_test does not run the test suite when a package is being cross "
-"compiled."
-msgstr ""
-"dh_auto_test não corre a suite de teste quando um pacote é compilado em "
-"cruzamento."
-
-#. type: textblock
#: dh_bugfiles:5
msgid ""
"dh_bugfiles - install bug reporting customization files into package build "
@@ -2794,12 +6180,12 @@ msgstr ""
"directórios de compilação de pacotes."
#. type: textblock
-#: dh_bugfiles:14
+#: dh_bugfiles:17
msgid "B<dh_bugfiles> [B<-A>] [S<I<debhelper options>>]"
msgstr "B<dh_bugfiles> [B<-A>] [S<I<debhelper opções>>]"
#. type: textblock
-#: dh_bugfiles:18
+#: dh_bugfiles:21
msgid ""
"B<dh_bugfiles> is a debhelper program that is responsible for installing bug "
"reporting customization files (bug scripts and/or bug control files and/or "
@@ -2811,24 +6197,25 @@ msgstr ""
"compilação de pacotes."
#. type: =head1
-#: dh_bugfiles:22 dh_clean:31 dh_compress:31 dh_gconf:23 dh_install:38
-#: dh_installcatalogs:35 dh_installchangelogs:35 dh_installcron:21
-#: dh_installdeb:22 dh_installdebconf:34 dh_installdirs:21 dh_installdocs:21
-#: dh_installemacsen:27 dh_installexamples:22 dh_installifupdown:22
-#: dh_installinfo:21 dh_installinit:27 dh_installlogcheck:21 dh_installman:51
-#: dh_installmenu:25 dh_installmime:21 dh_installmodules:28 dh_installpam:21
-#: dh_installppp:21 dh_installudev:25 dh_installwm:24 dh_link:41 dh_lintian:21
-#: dh_makeshlibs:29 dh_movefiles:26
+#: dh_bugfiles:25 dh_clean:33 dh_compress:35 dh_install:40
+#: dh_installcatalogs:39 dh_installchangelogs:53 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 "FICHEIROS"
#. type: =item
-#: dh_bugfiles:26
+#: dh_bugfiles:29
msgid "debian/I<package>.bug-script"
msgstr "debian/I<pacote>.bug-script"
#. type: textblock
-#: dh_bugfiles:28
+#: dh_bugfiles:31
msgid ""
"This is the script to be run by the bug reporting program for generating a "
"bug report template. This file is installed as F<usr/share/bug/package> in "
@@ -2846,12 +6233,12 @@ msgstr ""
"permissão de execução."
#. type: =item
-#: dh_bugfiles:35
+#: dh_bugfiles:38
msgid "debian/I<package>.bug-control"
msgstr "debian/I<pacote>.bug-control"
#. type: textblock
-#: dh_bugfiles:37
+#: dh_bugfiles:40
msgid ""
"It is the bug control file containing some directions for the bug reporting "
"tool. This file is installed as F<usr/share/bug/package/control> in the "
@@ -2862,12 +6249,12 @@ msgstr ""
"package/control> no directório de compilação do pacote."
#. type: =item
-#: dh_bugfiles:41
+#: dh_bugfiles:44
msgid "debian/I<package>.bug-presubj"
msgstr "debian/I<pacote>.bug-presubj"
#. type: textblock
-#: dh_bugfiles:43
+#: dh_bugfiles:46
msgid ""
"The contents of this file are displayed to the user by the bug reporting "
"tool before allowing the user to write a bug report on the package to the "
@@ -2880,7 +6267,7 @@ msgstr ""
"como F<usr/share/bug/package/presubj> no directório de compilação do pacote."
#. type: textblock
-#: dh_bugfiles:56
+#: dh_bugfiles:59
msgid ""
"Install F<debian/bug-*> files to ALL packages acted on when respective "
"F<debian/package.bug-*> files do not exist. Normally, F<debian/bug-*> will "
@@ -2891,45 +6278,47 @@ msgstr ""
"F<debian/bug-*> será instalado apenas no primeiro pacote."
#. type: textblock
-#: dh_bugfiles:126
+#: dh_bugfiles:135
msgid "F</usr/share/doc/reportbug/README.developers.gz>"
msgstr "F</usr/share/doc/reportbug/README.developers.gz>"
#. type: textblock
-#: dh_bugfiles:128 dh_lintian:61
+#: dh_bugfiles:137 dh_lintian:62
msgid "L<debhelper(1)>"
msgstr "L<debhelper(1)>"
#. type: textblock
-#: dh_bugfiles:134
+#: dh_bugfiles:143
msgid "Modestas Vainius <modestas@vainius.eu>"
msgstr "Modestas Vainius <modestas@vainius.eu>"
#. type: textblock
-#: dh_builddeb:5
+#: dh_builddeb:7
msgid "dh_builddeb - build Debian binary packages"
msgstr "dh_builddeb - compila pacotes binários Debian"
#. type: textblock
-#: dh_builddeb:14
+#: dh_builddeb:19
msgid ""
"B<dh_builddeb> [S<I<debhelper options>>] [B<--destdir=>I<directory>] [B<--"
"filename=>I<name>] [S<B<--> I<params>>]"
msgstr ""
-"B<dh_builddeb> [S<I<debhelper opções>>] [B<--destdir=>I<directório>] [B<--"
-"filename=>I<nome>] [S<B<--> I<params>>]"
+"B<dh_builddeb> [S<I<debhelper options>>] [B<--destdir=>I<directory>] [B<--"
+"filename=>I<name>] [S<B<--> I<params>>]"
#. type: textblock
-#: dh_builddeb:18
+#: dh_builddeb:23
msgid ""
"B<dh_builddeb> simply calls L<dpkg-deb(1)> to build a Debian package or "
-"packages."
+"packages. It will also build dbgsym packages when L<dh_strip(1)> and "
+"L<dh_gencontrol(1)> have prepared them."
msgstr ""
"B<dh_builddeb> chama simplesmente L<dpkg-deb(1)> para compilar um pacote ou "
-"vários pacotes Debian."
+"vários pacotes Debian. Também compila pacotes dbgsym quando foram preparados "
+"por L<dh_strip(1)> e L<dh_gencontrol(1)>."
#. type: textblock
-#: dh_builddeb:21
+#: dh_builddeb:27
msgid ""
"It supports building multiple binary packages in parallel, when enabled by "
"DEB_BUILD_OPTIONS."
@@ -2940,6 +6329,15 @@ msgstr ""
#. type: textblock
#: dh_builddeb:30
msgid ""
+"When the I<Rules-Requires-Root> field is not (effectively) I<binary-"
+"targets>, B<dh_builddeb> will pass B<--root-owner-group> to L<dpkg-deb(1)>."
+msgstr ""
+"Quando o campo I<Rules-Requires-Root> não for (efectivamente) I<binary-"
+"targets>, B<dh_builddeb> passará B<--root-owner-group> para L<dpkg-deb(1)>."
+
+#. type: textblock
+#: dh_builddeb:40
+msgid ""
"Use this if you want the generated F<.deb> files to be put in a directory "
"other than the default of \"F<..>\"."
msgstr ""
@@ -2947,12 +6345,12 @@ msgstr ""
"directório diferente da predefinição \"F<..>\"."
#. type: =item
-#: dh_builddeb:33
+#: dh_builddeb:43
msgid "B<--filename=>I<name>"
msgstr "B<--filename=>I<nome>"
#. type: textblock
-#: dh_builddeb:35
+#: dh_builddeb:45
msgid ""
"Use this if you want to force the generated .deb file to have a particular "
"file name. Does not work well if more than one .deb is generated!"
@@ -2961,18 +6359,18 @@ msgstr ""
"ficheiro particular. Não funciona bem se for gerado mais do que um .deb!"
#. type: textblock
-#: dh_builddeb:40
+#: dh_builddeb:50
msgid "Pass I<params> to L<dpkg-deb(1)> when it is used to build the package."
msgstr ""
"Passa I<params> para L<dpkg-deb(1)> quando é usado para compilar o pacote."
#. type: =item
-#: dh_builddeb:43
+#: dh_builddeb:53
msgid "B<-u>I<params>"
msgstr "B<-u>I<params>"
#. type: textblock
-#: dh_builddeb:45
+#: dh_builddeb:55
msgid ""
"This is another way to pass I<params> to L<dpkg-deb(1)>. It is deprecated; "
"use B<--> instead."
@@ -2986,36 +6384,43 @@ msgid "dh_clean - clean up package build directories"
msgstr "dh_clean - limpa os directórios de compilação de pacotes"
#. type: textblock
-#: dh_clean:14
+#: dh_clean:17
msgid ""
"B<dh_clean> [S<I<debhelper options>>] [B<-k>] [B<-d>] [B<-X>I<item>] "
-"[S<I<file> ...>]"
+"[S<I<path> ...>]"
msgstr ""
-"B<dh_clean> [S<I<debhelper opções>>] [B<-k>] [B<-d>] [B<-X>I<item>] "
-"[S<I<ficheiro> ...>]"
+"B<dh_clean> [S<I<debhelper options>>] [B<-k>] [B<-d>] [B<-X>I<item>] "
+"[S<I<path> ...>]"
+
+#. type: textblock
+#: dh_clean:21
+msgid ""
+"B<dh_clean> is a debhelper program that is responsible for cleaning up. It "
+"should be the last step of the B<clean> target and other debhelper commands "
+"generally assume that B<dh_clean> will clean up after them."
+msgstr ""
+"B<dh_clean> é um programa debhelper que é responsável pela limpeza. Ele deve "
+"estar no último passo do alvo B<clean> e o outros comandos debhelper "
+"geralmente assumem que B<dh_clean> irá limpar tudo depois deles."
#. type: verbatim
-#: dh_clean:18
+#: dh_clean:25
#, no-wrap
msgid ""
-"B<dh_clean> is a debhelper program that is responsible for cleaning up after a\n"
-"package is built. It removes the package build directories, and removes some\n"
-"other files including F<debian/files>, and any detritus left behind by other\n"
-"debhelper commands. It also removes common files that should not appear in a\n"
-"Debian diff:\n"
+"It removes the package build directories, and removes some other files including\n"
+"F<debian/files>, and any detritus left behind by other debhelper commands. It\n"
+"also removes common files that should not appear in a Debian diff:\n"
" #*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp\n"
"\n"
msgstr ""
-"B<dh_clean> é um programa debhelper que é responsável pela limpeza após\n"
-"um pacote ser compilado. Remove os directórios de compilação do pacote,\n"
-"e remove mais alguns ficheiros incluindo F<debian/files>, e quaisquer\n"
-"detritos deixados por outros comandos debhelper. Também remove ficheiros\n"
-"comuns que não deveriam aparecer num diff de Debian:\n"
+"Remove os directórios de compilação do pacote, e remove mais alguns ficheiros incluindo\n"
+"F<debian/files>, e quaisquer detritos deixados por outros comandos debhelper. Também\n"
+"remove ficheiros comuns que não deveriam aparecer num diff de Debian:\n"
" #*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp\n"
"\n"
#. type: textblock
-#: dh_clean:25
+#: dh_clean:30
msgid ""
"It does not run \"make clean\" to clean up after the build process. Use "
"L<dh_auto_clean(1)> to do things like that."
@@ -3023,42 +6428,58 @@ msgstr ""
"Não corre o \"make clean\" para limpara após o processo de compilação. Use "
"L<dh_auto_clean(1)> para fazer as coisas dessa maneira."
-#. type: textblock
-#: dh_clean:28
-msgid ""
-"B<dh_clean> should be the last debhelper command run in the B<clean> target "
-"in F<debian/rules>."
-msgstr ""
-"B<dh_clean> deve ser o último comando debhelper a correr na meta B<clean> em "
-"F<debian/rules>."
-
#. type: =item
-#: dh_clean:35
+#: dh_clean:37
msgid "F<debian/clean>"
msgstr "F<debian/clean>"
#. type: textblock
-#: dh_clean:37
-msgid "Can list other files to be removed."
-msgstr "Pode listar outros ficheiros para serem removidos."
+#: dh_clean:39
+msgid "Can list other paths to be removed."
+msgstr "Pode listar outros caminhos para serem removidos."
+
+#. type: textblock
+#: dh_clean:41
+msgid ""
+"Note that directories listed in this file B<must> end with a trailing "
+"slash. Any content in these directories will be removed as well."
+msgstr ""
+"Note que os directórios listados neste ficheiro B<devem> terminar com uma "
+"barra final. Qualquer conteúdo nestes directórios será também removido."
+
+#. type: textblock
+#: dh_clean:44 dh_install:59 dh_installcatalogs:51 dh_installdeb:102
+#: dh_installdirs:40 dh_installdocs:48 dh_installexamples:43 dh_installinfo:36
+#: dh_installman:81 dh_installwm:36 dh_link:64
+msgid ""
+"Supports substitution variables in compat 13 and later as documented in "
+"L<debhelper(7)>."
+msgstr ""
+"Suporta variáveis de substituição em compatibilidade 13 e posterior como "
+"documentado em L<debhelper(7)>."
#. type: =item
-#: dh_clean:45 dh_installchangelogs:63
+#: dh_clean:53 dh_installchangelogs:81
msgid "B<-k>, B<--keep>"
msgstr "B<-k>, B<--keep>"
#. type: textblock
-#: dh_clean:47
+#: dh_clean:55
msgid "This is deprecated, use L<dh_prep(1)> instead."
msgstr "Isto está descontinuado, use L<dh_prep(1)> em vez deste."
+#. type: textblock
+#: dh_clean:57
+msgid "The option is removed in compat 12."
+msgstr "A opção foi removida no nível de compatibilidade 12."
+
#. type: =item
-#: dh_clean:49
+#: dh_clean:59
msgid "B<-d>, B<--dirs-only>"
msgstr "B<-d>, B<--dirs-only>"
#. type: textblock
-#: dh_clean:51
+#: dh_clean:61
msgid ""
"Only clean the package build directories, do not clean up any other files at "
"all."
@@ -3067,12 +6488,12 @@ msgstr ""
"outros ficheiros."
#. type: =item
-#: dh_clean:54 dh_prep:30
+#: dh_clean:64 dh_prep:33
msgid "B<-X>I<item> B<--exclude=>I<item>"
msgstr "B<-X>I<item> B<--exclude=>I<item>"
#. type: textblock
-#: dh_clean:56
+#: dh_clean:66
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"deleted, even if they would normally be deleted. You may use this option "
@@ -3084,15 +6505,23 @@ msgstr ""
"excluir."
#. type: =item
-#: dh_clean:60 dh_compress:64 dh_installdocs:103 dh_installexamples:46
-#: dh_installinfo:40 dh_installmanpages:44 dh_movefiles:55 dh_testdir:27
-msgid "I<file> ..."
-msgstr "I<ficheiro> ..."
+#: dh_clean:70
+msgid "I<path> ..."
+msgstr "I<path> ..."
#. type: textblock
-#: dh_clean:62
-msgid "Delete these I<file>s too."
-msgstr "Apaga estes I<ficheiro>s também."
+#: dh_clean:72
+msgid "Delete these I<path>s too."
+msgstr "Apaga estes I<caminho>s também."
+
+#. type: textblock
+#: dh_clean:74
+msgid ""
+"Note that directories passed as arguments B<must> end with a trailing "
+"slash. Any content in these directories will be removed as well."
+msgstr ""
+"Note que os directórios passados como argumentos B<devem> terminar com uma "
+"barra final. Qualquer conteúdo nestes directórios será também removido."
#. type: textblock
#: dh_compress:5
@@ -3103,7 +6532,7 @@ msgstr ""
"compilação de pacotes"
#. type: textblock
-#: dh_compress:15
+#: dh_compress:19
msgid ""
"B<dh_compress> [S<I<debhelper options>>] [B<-X>I<item>] [B<-A>] "
"[S<I<file> ...>]"
@@ -3112,7 +6541,7 @@ msgstr ""
"[S<I<ficheiro> ...>]"
#. type: textblock
-#: dh_compress:19
+#: dh_compress:23
msgid ""
"B<dh_compress> is a debhelper program that is responsible for compressing "
"the files in package build directories, and makes sure that any symlinks "
@@ -3125,7 +6554,7 @@ msgstr ""
"serem comprimidos são actualizados para apontar para os novos ficheiros."
#. type: textblock
-#: dh_compress:24
+#: dh_compress:28
msgid ""
"By default, B<dh_compress> compresses files that Debian policy mandates "
"should be compressed, namely all files in F<usr/share/info>, F<usr/share/"
@@ -3143,17 +6572,17 @@ msgstr ""
"PCF à frente de F<usr/share/fonts/X11/>."
#. type: =item
-#: dh_compress:35
+#: dh_compress:39
msgid "debian/I<package>.compress"
msgstr "debian/I<pacote>.compress"
#. type: textblock
-#: dh_compress:37
+#: dh_compress:41
msgid "These files are deprecated."
msgstr "Estes ficheiros estão descontinuados."
#. type: textblock
-#: dh_compress:39
+#: dh_compress:43
msgid ""
"If this file exists, the default files are not compressed. Instead, the file "
"is ran as a shell script, and all filenames that the shell script outputs "
@@ -3170,7 +6599,7 @@ msgstr ""
"ficheiro F<debian/package.compress> apenas se realmente precisa de o fazer."
#. type: textblock
-#: dh_compress:54
+#: dh_compress:58
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"compressed. For example, B<-X.tiff> will exclude TIFF files from "
@@ -3183,7 +6612,7 @@ msgstr ""
"construir uma lista de coisas a excluir."
#. type: textblock
-#: dh_compress:61
+#: dh_compress:65
msgid ""
"Compress all files specified by command line parameters in ALL packages "
"acted on."
@@ -3191,61 +6620,159 @@ msgstr ""
"Comprime todos os ficheiros especificados por parâmetros de linha de "
"comandos em TODOS os pacotes que actua."
+#. type: =item
+#: dh_compress:68 dh_installdocs:184 dh_installexamples:89 dh_installinfo:60
+#: dh_installmanpages:47 dh_movefiles:58 dh_testdir:30
+msgid "I<file> ..."
+msgstr "I<ficheiro> ..."
+
#. type: textblock
-#: dh_compress:66
+#: dh_compress:70
msgid "Add these files to the list of files to compress."
msgstr "Adiciona estes ficheiros à lista de ficheiros para comprimir."
#. type: =head1
-#: dh_compress:70 dh_perl:61 dh_strip:74 dh_usrlocal:55
+#: dh_compress:74 dh_perl:65 dh_strip:133 dh_usrlocal:66
msgid "CONFORMS TO"
msgstr "EM CONFORMIDADE COM"
#. type: textblock
-#: dh_compress:72
+#: dh_compress:76
msgid "Debian policy, version 3.0"
msgstr "Debian policy, versão 3.0"
#. type: textblock
-#: dh_desktop:5
-msgid "dh_desktop - deprecated no-op"
-msgstr "dh_desktop - não-operacional descontinuado"
+#: dh_dwz:5
+msgid "dh_dwz - optimize DWARF debug information in ELF binaries via dwz"
+msgstr ""
+"dh_dwz - optimiza informação de depuração DWARF em binários ELF via dwz"
#. type: textblock
-#: dh_desktop:14
-msgid "B<dh_desktop> [S<I<debhelper options>>]"
-msgstr "B<dh_desktop> [S<I<debhelper opções>>]"
+#: dh_dwz:18
+msgid "B<dh_dwz> [S<I<debhelper options>>] [B<-X>I<item>] [S<B<--> I<params>>]"
+msgstr ""
+"B<dh_dwz> [S<I<debhelper opções>>] [B<-X>I<item>] [S<B<--> I<parâmetros>>]"
#. type: textblock
-#: dh_desktop:18
+#: dh_dwz:22
msgid ""
-"B<dh_desktop> was a debhelper program that registers F<.desktop> files. "
-"However, it no longer does anything, and is now deprecated."
+"B<dh_dwz> is a debhelper program that will optimize the (uncompressed) size "
+"of the DWARF debug information in ELF binaries. It does so by running "
+"L<dwz(1)> on all the ELF binaries in the package."
msgstr ""
-"B<dh_desktop> era um programa debhelper que registava ficheiros F<.desktop>. "
-"No entanto, já não faz nada, e agora está descontinuado."
+"B<dh_dwz> é um programa de debhelper que irá optimizar o tamanho (não "
+"comprimido) da informação de depuração DWARF nos binários ELF. Fá-lo ao "
+"correr L<dwz(1)> em todos os binários ELF no pacote."
+
+#. type: =item
+#: dh_dwz:30
+msgid "B<--dwz-multifile>, B<--no-dwz-multifile>"
+msgstr "B<--dwz-multifile>, B<--no-dwz-multifile>"
#. type: textblock
-#: dh_desktop:21
+#: dh_dwz:32
msgid ""
-"If a package ships F<desktop> files, they just need to be installed in the "
-"correct location (F</usr/share/applications>) and they will be registered by "
-"the appropriate tools for the corresponding desktop environments."
+"Whether L<dwz(1)> should generate a I<multifile> from the ELF binaries 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."
msgstr ""
-"Se o pacote embarcar ficheiros F<desktop>, eles apenas precisam de ser "
-"instalados na localização correcta (F</usr/share/applications>) e eles serão "
-"registados pelas ferramentas apropriadas para os ambientes de trabalho "
-"correspondentes."
+"Se L<dwz(1)> deve gerar um I<multifile> a partir de binários ELF no mesmo "
+"pacote. Quando activado, se um pacote conter pelo menos 2 binários ELF, "
+"B<dh_dwz> irá instruir L<dwz(1)> a gerar um multifile para o pacote."
#. type: textblock
-#: dh_desktop:33 dh_icons:73 dh_scrollkeeper:30
-msgid "L<debhelper>"
-msgstr "L<debhelper>"
+#: dh_dwz:37
+msgid ""
+"By default, B<dh_dwz> will attempt to create a multifile but will continue "
+"without if L<dwz(1)> does not 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 ""
+"Por predefinição, B<dh_dwz> irá tentar criar um multi-ficheiro mas irá "
+"continuar sem o fazer se L<dwz(1)> não criar um (mas mesmo assim acabar com "
+"sucesso). Isto é comum acontecer quando os ficheiros debug não contêm "
+"símbolos de depuração (ex. um -g em falta no compilador), ou quando os "
+"símbolos de depuração estão comprimidos (veja Debian bug #931891). Se B<--"
+"dwz-multifile> for passado, então B<dh_dwz> irá abortar com um erro se "
+"L<dwz(1)> não criar um multi-ficheiro."
+
+#. 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 ""
+"Note que estas opções podem não funcionar se um pacote conter mais binários "
+"ELF que possam caber numa única linha de comandos. Se isto for um problema, "
+"por favor passe B<--no-dwz-multifile> para contornar este problema."
+
+#. type: textblock
+#: dh_dwz:49
+msgid ""
+"The generated multifile will be compressed with B<objcopy --compress-debug-"
+"sections>."
+msgstr ""
+"O multifile gerado será comprimido com B<objcopy --compress-debug-sections>."
+
+#. 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 ""
+"Nota para pacotes B<udeb>: B<dh_dwz> nunca irá gerar multi-ficheiros para "
+"pacotes B<udeb>. Irá continuar a usar B<dwz> para reduzir o tamanho de "
+"ficheiros debug se encontrar algum."
+
+#. 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 "
+"things to exclude."
+msgstr ""
+"Exclui ficheiros que contenham I<item> em qualquer ponto do seu nome de "
+"serem despojados. Você pode usar esta opção várias vezes para construir uma "
+"lista de coisas a excluir."
#. type: textblock
-#: dh_desktop:39 dh_scrollkeeper:36
-msgid "Ross Burton <ross@burtonini.com>"
-msgstr "Ross Burton <ross@burtonini.com>"
+#: 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 ""
+"Passa I<parâmetros> para L<dwz(1)> quando processa binários ELF. Isto é "
+"maioritariamente útil para definir parâmetros relacionados com memória (ex. -"
+"l e -L)."
+
+#. type: textblock
+#: 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 "
+"\"Binaries\")."
+msgstr ""
+"Se a variável de ambiente B<DEB_BUILD_OPTIONS> conter B<nostrip>, nada será "
+"despojado, em conformidade com a política Debian (secção 10.1 \"Binários\")."
+
+#. type: textblock
+#: 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 "
+"contains B<nostrip>. This is because B<nostrip> is often used to optimize "
+"build times (e.g. for \"build and test\"-cycles) rather than optimizing for "
+"size."
+msgstr ""
+"Embora esta ferramenta tecnicamente não remover informação de depuração dos "
+"binários, é na mesma incluída quando a variável de ambiente "
+"B<DEB_BUILD_OPTIONS> contém B<nostrip>. Isto é assim porque B<nostrip> é "
+"muito usado para optimizar tempos de compilação (ex. para -cycles de "
+"\"compilar e testar\") em vez de optimizar para tamanho."
#. type: textblock
#: dh_fixperms:5
@@ -3255,12 +6782,12 @@ msgstr ""
"de pacotes"
#. type: textblock
-#: dh_fixperms:15
+#: dh_fixperms:18
msgid "B<dh_fixperms> [S<I<debhelper options>>] [B<-X>I<item>]"
msgstr "B<dh_fixperms> [S<I<debhelper opções>>] [B<-X>I<item>]"
#. type: textblock
-#: dh_fixperms:19
+#: dh_fixperms:22
msgid ""
"B<dh_fixperms> is a debhelper program that is responsible for setting the "
"permissions of files and directories in package build directories to a sane "
@@ -3268,40 +6795,49 @@ msgid ""
msgstr ""
"B<dh_fixperms> é um programa debhelper que é responsável por definir as "
"permissões dos ficheiros e directórios nos directórios de compilação de "
-"pacotes para um estado são -- um estado em conformidade com a politica de "
+"pacotes para um estado são -- um estado em conformidade com a política de "
"Debian."
#. type: textblock
-#: dh_fixperms:23
+#: dh_fixperms:26
msgid ""
"B<dh_fixperms> makes all files in F<usr/share/doc> in the package build "
"directory (excluding files in the F<examples/> directory) be mode 644. It "
-"also changes the permissions of all man pages to mode 644. It makes all "
-"files be owned by root, and it removes group and other write permission from "
-"all files. It removes execute permissions from any libraries, headers, Perl "
-"modules, or desktop files that have it set. It makes all files in the "
-"standard F<bin> and F<sbin> directories, F<usr/games/> and F<etc/init.d> "
-"executable (since v4). Finally, it removes the setuid and setgid bits from "
-"all files in the package."
+"also changes the permissions of all man pages to mode 644. It removes group "
+"and other write permission from all files. It removes execute permissions "
+"from any libraries, headers, Perl modules, or desktop files that have it "
+"set. It makes all files in the standard F<bin> and F<sbin> directories, "
+"F<usr/games/> and F<etc/init.d> executable (since v4). Finally, it removes "
+"the setuid and setgid bits from all files in the package."
msgstr ""
"B<dh_fixperms> faz com que todos os ficheiros em F<usr/share/doc> no "
"directório de compilação do pacote (excluindo os ficheiros no directório "
"F<examples/>) fiquem em modo 644. Também muda as permissões de todos os "
-"manuais para 644. Faz com que todos os ficheiros sejam propriedade do root, "
-"e remove o grupo e outras permissões de escrita de todos os ficheiros. "
-"Remove permissões de executável de todas as bibliotecas, cabeçalhos, módulos "
-"Perl, ou ficheiro desktop que as têm definidas. Faz todos os ficheiros nos "
-"directórios F<bin> e F<sbin> standard, F<usr/games/> e F<etc/init.d> "
-"executáveis (desde v4). Finalmente, remove os bits setuid e setgid de todos "
-"os ficheiros do pacote."
+"manuais para 644. Remove o grupo e outras permissões de escrita de todos os "
+"ficheiros. Remove permissões de executável de todas as bibliotecas, "
+"cabeçalhos, módulos Perl, ou ficheiro desktop que as têm definidas. Faz "
+"todos os ficheiros nos directórios F<bin> e F<sbin> standard, F<usr/games/> "
+"e F<etc/init.d> executáveis (desde v4). Finalmente, remove os bits setuid e "
+"setgid de todos os ficheiros do pacote."
-#. type: =item
+#. type: textblock
#: dh_fixperms:36
+msgid ""
+"When the I<Rules-Requires-Root> field has the (effective) value of I<binary-"
+"targets>, B<dh_fixperms> will also reset the ownership of all paths to "
+"\"root:root\"."
+msgstr ""
+"Quando o campo I<Rules-Requires-Root> tem o valor (efectivo) de I<binary-"
+"targets>, B<dh_fixperms> irá também reiniciar o proprietário de todos os "
+"caminhos para \"root:root\"."
+
+#. type: =item
+#: dh_fixperms:44
msgid "B<-X>I<item>, B<--exclude> I<item>"
msgstr "B<-X>I<item>, B<--exclude> I<item>"
#. type: textblock
-#: dh_fixperms:38
+#: dh_fixperms:46
msgid ""
"Exclude files that contain I<item> anywhere in their filename from having "
"their permissions changed. You may use this option multiple times to build "
@@ -3312,126 +6848,66 @@ msgstr ""
"várias vezes para construir uma lista de coisas a excluir."
#. type: textblock
-#: dh_gconf:5
-msgid "dh_gconf - install GConf defaults files and register schemas"
-msgstr "dh_gconf - instala ficheiros de predefinições GConf e regista schemas"
-
-#. type: textblock
-#: dh_gconf:14
-msgid "B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>]"
-msgstr "B<dh_gconf> [S<I<debhelper opções>>] [B<--priority=>I<prioridade>]"
-
-#. type: textblock
-#: dh_gconf:18
-msgid ""
-"B<dh_gconf> is a debhelper program that is responsible for installing GConf "
-"defaults files and registering GConf schemas."
-msgstr ""
-"B<dh_gconf> é um programa debhelper que é responsável por instalar ficheiros "
-"de predefinições de GConf e registar os esquemas GConf."
-
-#. type: textblock
-#: dh_gconf:21
-msgid ""
-"An appropriate dependency on gconf2 will be generated in B<${misc:Depends}>."
-msgstr ""
-"Uma dependência apropriada em gconf2 será gerada em B<${misc:Depends}>."
-
-#. type: =item
-#: dh_gconf:27
-msgid "debian/I<package>.gconf-defaults"
-msgstr "debian/I<pacote>.gconf-defaults"
-
-#. type: textblock
-#: dh_gconf:29
-msgid ""
-"Installed into F<usr/share/gconf/defaults/10_package> in the package build "
-"directory, with I<package> replaced by the package name."
-msgstr ""
-"Instalado em F<usr/share/gconf/defaults/10_pacote> no directório de "
-"compilação do pacote, com I<pacote> substituído pelo nome do pacote."
-
-#. type: =item
-#: dh_gconf:32
-msgid "debian/I<package>.gconf-mandatory"
-msgstr "debian/I<pacote>.gconf-mandatory"
-
-#. type: textblock
-#: dh_gconf:34
-msgid ""
-"Installed into F<usr/share/gconf/mandatory/10_package> in the package build "
-"directory, with I<package> replaced by the package name."
-msgstr ""
-"Instalado em F<usr/share/gconf/mandatory/10_pacote> no directório de "
-"compilação do pacote, com I<pacote> substituído pelo nome do pacote."
-
-#. type: =item
-#: dh_gconf:43
-msgid "B<--priority> I<priority>"
-msgstr "B<--priority> I<prioridade>"
-
-#. type: textblock
-#: dh_gconf:45
-msgid ""
-"Use I<priority> (which should be a 2-digit number) as the defaults priority "
-"instead of B<10>. Higher values than ten can be used by derived "
-"distributions (B<20>), CDD distributions (B<50>), or site-specific packages "
-"(B<90>)."
-msgstr ""
-"Usa I<prioridade> (que deve ser um número de dois dígitos) como a prioridade "
-"predefinida em vez de B<10>. Valores mais altos que dez podem ser usados por "
-"distribuições derivadas (B<20>), distribuições CDD (B<50>), ou pacotes "
-"específicos de site (B<90>)."
-
-#. type: textblock
-#: dh_gconf:109
-msgid "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
-msgstr "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
-
-#. type: textblock
#: dh_gencontrol:5
msgid "dh_gencontrol - generate and install control file"
msgstr "dh_gencontrol - gera e instala ficheiro de controle"
#. type: textblock
-#: dh_gencontrol:14
+#: dh_gencontrol:18
msgid "B<dh_gencontrol> [S<I<debhelper options>>] [S<B<--> I<params>>]"
msgstr "B<dh_gencontrol> [S<I<debhelper opções>>] [S<B<--> I<params>>]"
#. type: textblock
-#: dh_gencontrol:18
+#: dh_gencontrol:22
msgid ""
"B<dh_gencontrol> is a debhelper program that is responsible for generating "
"control files, and installing them into the I<DEBIAN> directory with the "
"proper permissions."
msgstr ""
"B<dh_gencontrol> é um programa debhelper que é responsável por gerar "
-"ficheiros de controle, e instalá-los no directório I<DEBIAN> com as "
+"ficheiros de controle, e instala-los no directório I<DEBIAN> com as "
"permissões apropriadas."
#. type: textblock
-#: dh_gencontrol:22
+#: dh_gencontrol:26
msgid ""
"This program is merely a wrapper around L<dpkg-gencontrol(1)>, which calls "
-"it once for each package being acted on, and passes in some additional "
-"useful flags."
+"it once for each package being acted on (plus related dbgsym packages), and "
+"passes in some additional useful flags."
msgstr ""
"Este programa é meramente um wrapper em volta de L<dpkg-gencontrol(1)>, o "
-"qual o chama uma vez por cada pacote em que actua, e passa para ele algumas "
-"bandeiras úteis adicionais."
+"qual o chama uma vez por cada pacote em que actua (mais os pacotes dbgsym "
+"relacionados), e passa para ele algumas bandeiras adicionais úteis."
#. type: textblock
-#: dh_gencontrol:32
+#: dh_gencontrol:30
+msgid ""
+"B<Note> that if you use B<dh_gencontrol>, you must also use "
+"L<dh_builddeb(1)> to build the packages. Otherwise, your build may fail to "
+"build as B<dh_gencontrol> (via L<dpkg-gencontrol(1)>) declares which "
+"packages are built. As debhelper automatically generates dbgsym packages, "
+"it some times adds additional packages, which will be built by "
+"L<dh_builddeb(1)>."
+msgstr ""
+"B<Note> que se você usar B<dh_gencontrol>, você também tem de usar "
+"L<dh_builddeb(1)> para compilar os pacotes. Caso contrário, a sua compilação "
+"pode falhar pois o B<dh_gencontrol> (via L<dpkg-gencontrol(1)>) declara "
+"quais pacotes são compilados. Como o debhelper gera automaticamente pacotes "
+"dbgsym, por vezes adiciona pacotes adicionais, que serão compilados por "
+"L<dh_builddeb(1)>."
+
+#. type: textblock
+#: dh_gencontrol:44
msgid "Pass I<params> to L<dpkg-gencontrol(1)>."
msgstr "Passa I<params> para L<dpkg-gencontrol(1)>."
#. type: =item
-#: dh_gencontrol:34
+#: dh_gencontrol:46
msgid "B<-u>I<params>, B<--dpkg-gencontrol-params=>I<params>"
msgstr "B<-u>I<params>, B<--dpkg-gencontrol-params=>I<params>"
#. type: textblock
-#: dh_gencontrol:36
+#: dh_gencontrol:48
msgid ""
"This is another way to pass I<params> to L<dpkg-gencontrol(1)>. It is "
"deprecated; use B<--> instead."
@@ -3445,12 +6921,12 @@ msgid "dh_icons - Update caches of Freedesktop icons"
msgstr "dh_icons - Actualiza a cache de ícones de Freedesktop"
#. type: textblock
-#: dh_icons:15
+#: dh_icons:18
msgid "B<dh_icons> [S<I<debhelper options>>] [B<-n>]"
msgstr "B<dh_icons> [S<I<debhelper opções>>] [B<-n>]"
#. type: textblock
-#: dh_icons:19
+#: dh_icons:22
msgid ""
"B<dh_icons> is a debhelper program that updates caches of Freedesktop icons "
"when needed, using the B<update-icon-caches> program provided by GTK+2.12. "
@@ -3466,32 +6942,37 @@ msgstr ""
"directórios de compilação dos pacotes."
#. type: textblock
-#: dh_icons:25
+#: dh_icons:28
msgid ""
"It takes care of adding maintainer script fragments to call B<update-icon-"
"caches> for icon directories. (This is not done for gnome and hicolor icons, "
"as those are handled by triggers.) These commands are inserted into the "
"maintainer scripts by L<dh_installdeb(1)>."
msgstr ""
-"Trata de adicionar fragmentos de script de mantenedor para chamar B<update-"
+"Trata de adicionar fragmentos de script de maintainer para chamar B<update-"
"icon-caches> para directórios de ícones. (Isto não é feito para ícones de "
"gnome ou hicolor, pois esses são manuseados por triggers.) Estes comandos "
-"são inseridos nos scripts de mantenedor pelo L<dh_installdeb(1)>."
+"são inseridos nos scripts de maintainer pelo L<dh_installdeb(1)>."
#. type: =item
-#: dh_icons:34 dh_installcatalogs:53 dh_installdebconf:65 dh_installemacsen:57
-#: dh_installinit:63 dh_installmenu:45 dh_installmodules:42 dh_installudev:49
-#: dh_installwm:44 dh_makeshlibs:77 dh_usrlocal:43
-msgid "B<-n>, B<--noscripts>"
-msgstr "B<-n>, B<--noscripts>"
+#: dh_icons:37 dh_installcatalogs:60 dh_installdebconf:68 dh_installemacsen:60
+#: dh_installinit:81 dh_installinitramfs:47 dh_installmenu:48
+#: dh_installmodules:45 dh_installwm:51 dh_makeshlibs:147 dh_usrlocal:54
+msgid "B<-n>, B<--no-scripts>"
+msgstr "B<-n>, B<--no-scripts>"
#. type: textblock
-#: dh_icons:36
+#: dh_icons:39
msgid "Do not modify maintainer scripts."
-msgstr "Não modifique os scripts do mantenedor."
+msgstr "Não modifique os scripts do maintainer."
#. type: textblock
-#: dh_icons:79
+#: dh_icons:77
+msgid "L<debhelper>"
+msgstr "L<debhelper>"
+
+#. type: textblock
+#: dh_icons:83
msgid ""
"Ross Burton <ross@burtonini.com> Jordi Mallach <jordi@debian.org> Josselin "
"Mouette <joss@debian.org>"
@@ -3505,7 +6986,7 @@ msgid "dh_install - install files into package build directories"
msgstr "dh_install - instala ficheiros em directórios de compilação de pacotes"
#. type: textblock
-#: dh_install:15
+#: dh_install:17
msgid ""
"B<dh_install> [B<-X>I<item>] [B<--autodest>] [B<--sourcedir=>I<dir>] "
"[S<I<debhelper options>>] [S<I<file|dir> ... I<destdir>>]"
@@ -3515,7 +6996,7 @@ msgstr ""
"destino>>]"
#. type: textblock
-#: dh_install:19
+#: dh_install:21
msgid ""
"B<dh_install> is a debhelper program that handles installing files into "
"package build directories. There are many B<dh_install>I<*> commands that "
@@ -3535,7 +7016,7 @@ msgstr ""
"um substituto do antigo comando B<dh_movefiles>."
#. type: textblock
-#: dh_install:27
+#: dh_install:29
msgid ""
"This program may be used in one of two ways. If you just have a file or two "
"that the upstream Makefile does not install for you, you can run "
@@ -3554,16 +7035,10 @@ msgstr ""
"directórios apropriados de compilação de pacotes."
#. type: textblock
-#: dh_install:34
-#, fuzzy
-#| msgid ""
-#| "From debhelper compatibility level 7 on, B<dh_install> will fall back to "
-#| "looking in F<debian/tmp> for files, if it doesn't find them in the "
-#| "current directory (or whereever you've told it to look using B<--"
-#| "sourcedir>)."
+#: dh_install:36
msgid ""
"From debhelper compatibility level 7 on, B<dh_install> will fall back to "
-"looking in F<debian/tmp> for files, if it doesn't find them in the current "
+"looking in F<debian/tmp> for files, if it does not find them in the current "
"directory (or wherever you've told it to look using B<--sourcedir>)."
msgstr ""
"Desde nível de compatibilidade 7 do debhelper em diante, o B<dh_install> irá "
@@ -3571,12 +7046,12 @@ msgstr ""
"actual (ou onde você o mandou procurar usando B<--sourcedir>)."
#. type: =item
-#: dh_install:42
+#: dh_install:44
msgid "debian/I<package>.install"
msgstr "debian/I<pacote>.install"
#. type: textblock
-#: dh_install:44
+#: dh_install:46
msgid ""
"List the files to install into each package and the directory they should be "
"installed to. The format is a set of lines, where each line lists a file or "
@@ -3584,7 +7059,7 @@ msgid ""
"be installed in. The name of the files (or directories) to install should be "
"given relative to the current directory, while the installation directory is "
"given relative to the package build directory. You may use wildcards in the "
-"names of the files to install (in v3 mode and above)."
+"names of the files to install."
msgstr ""
"Lista os ficheiros a instalar em cada pacote e o directório onde eles devem "
"ser instalados. O formato é um conjunto de linhas, onde cada linha lista um "
@@ -3593,10 +7068,10 @@ msgstr ""
"devem ser fornecidos relativamente ao directório actual, enquanto que o "
"directório de instalação é fornecido relativamente ao directório de "
"compilação do pacote. Você pode usar wildcards nos nomes dos ficheiros a "
-"instalar (em modo v3 e superior)."
+"instalar."
#. type: textblock
-#: dh_install:52
+#: dh_install:54
msgid ""
"Note that if you list exactly one filename or wildcard-pattern on a line by "
"itself, with no explicit destination, then B<dh_install> will automatically "
@@ -3608,79 +7083,68 @@ msgstr ""
"opção --autodest fosse usada."
#. type: =item
-#: dh_install:63
-msgid "B<--list-missing>"
-msgstr "B<--list-missing>"
+#: dh_install:62
+msgid "debian/not-installed"
+msgstr "debian/not-installed"
#. type: textblock
-#: dh_install:65
+#: dh_install:64
msgid ""
-"This option makes B<dh_install> keep track of the files it installs, and "
-"then at the end, compare that list with the files in the source directory. "
-"If any of the files (and symlinks) in the source directory were not "
-"installed to somewhere, it will warn on stderr about that."
+"Used with the deprecated B<--list-missing> and B<--fail-missing> options. "
+"Please refer to L<dh_missing(1)> for the documentation of this file."
msgstr ""
-"Esta opção faz o B<dh_install> manter um acompanhamento dos ficheiros que "
-"instala, e depois no final, compara essa lista com os ficheiros no "
-"directório fonte. Se algum dos ficheiros (e links simbólicos) no directório "
-"fonte não foi instalado para algum sítio, ele vai avisar no stderr acerca "
-"disso."
+"Usado com as opções B<--list-missing> e B<--fail-missing> descontinuadas. "
+"Por favor consulte L<dh_missing(1)> para a documentação deste ficheiro."
-#. type: textblock
-#: dh_install:70
-msgid ""
-"This may be useful if you have a large package and want to make sure that "
-"you don't miss installing newly added files in new upstream releases."
-msgstr ""
-"Isto pode ser útil se você tem um pacote grande e quer certificar-se que não "
-"se esquece de instalar ficheiros adicionados recentemente em novos "
-"lançamentos do autor original."
+#. type: =item
+#: dh_install:73
+msgid "B<--list-missing>"
+msgstr "B<--list-missing>"
#. type: textblock
-#: dh_install:73
+#: dh_install:75
msgid ""
-"Note that files that are excluded from being moved via the B<-X> option are "
-"not warned about."
+"B<Deprecated>: Please use B<dh_missing --list-missing> instead. If you use "
+"this option, B<dh_install> will call B<dh_missing> with that option after it "
+"has processed all the files. Please see L<dh_missing(1)> for the "
+"documentation of this option."
msgstr ""
-"Note que não há advertências sobre ficheiros que estão excluídos de serem "
-"movidos via opção B<-X>."
+"B<Descontinuado>: Por favor use B<dh_missing --list-missing> em vez deste. "
+"Se usar esta opção, o B<dh_install> irá chamar B<dh_missing> com essa opção "
+"após ter processado todos os ficheiros. Por favor veja L<dh_missing(1)> para "
+"a documentação sobre esta opção."
#. type: =item
-#: dh_install:76
+#: dh_install:82
msgid "B<--fail-missing>"
msgstr "B<--fail-missing>"
#. type: textblock
-#: dh_install:78
+#: dh_install:84
msgid ""
-"This option is like B<--list-missing>, except if a file was missed, it will "
-"not only list the missing files, but also fail with a nonzero exit code."
+"B<Deprecated>: Please use B<dh_missing --fail-missing> instead. If you use "
+"this option, B<dh_install> will call B<dh_missing> with that option after it "
+"has processed all the files. Please see L<dh_missing(1)> for the "
+"documentation of this option."
msgstr ""
-"Esta opção é como B<--list-missing>, excepto se um ficheiro estiver em "
-"falta, não irá apenas listar os ficheiros em falta, mas também vai falhar "
-"com um código exit não-zero."
-
-#. type: textblock
-#: dh_install:83 dh_installexamples:43
-msgid ""
-"Exclude files that contain I<item> anywhere in their filename from being "
-"installed."
-msgstr ""
-"Exclui de serem instalados ficheiros que tenham I<item> em qualquer ponto no "
-"seu nome de ficheiro."
+"B<Descontinuado>: Por favor use B<dh_missing --fail-missing> em vez deste. "
+"Se usar esta opção, B<dh_install> irá chamar B<dh_missing> com essa opção "
+"após ter processado todos os ficheiros. Por favor veja L<dh_missing(1)> para "
+"a documentação sobre esta opção."
#. type: =item
-#: dh_install:86 dh_movefiles:42
+#: dh_install:91 dh_installdirs:62 dh_installdocs:114 dh_installexamples:57
+#: dh_installinfo:50 dh_installman:100 dh_movefiles:45
msgid "B<--sourcedir=>I<dir>"
msgstr "B<--sourcedir=>I<directório>"
#. type: textblock
-#: dh_install:88
+#: dh_install:93
msgid "Look in the specified directory for files to be installed."
msgstr "Procura no directório especificado por ficheiros a instalar."
#. type: textblock
-#: dh_install:90
+#: dh_install:95
msgid ""
"Note that this is not the same as the B<--sourcedirectory> option used by "
"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
@@ -3693,12 +7157,12 @@ msgstr ""
"no nível de compatibilidade 7 e superiores do debhelper."
#. type: =item
-#: dh_install:95
+#: dh_install:100
msgid "B<--autodest>"
msgstr "B<--autodest>"
#. type: textblock
-#: dh_install:97
+#: dh_install:102
msgid ""
"Guess as the destination directory to install things to. If this is "
"specified, you should not list destination directories in F<debian/package."
@@ -3711,7 +7175,7 @@ msgstr ""
"B<dh_install> irá adivinhar no método que se segue:"
#. type: textblock
-#: dh_install:102
+#: dh_install:107
msgid ""
"Strip off F<debian/tmp> (or the sourcedir if one is given) from the front of "
"the filename, if it is present, and install into the dirname of the "
@@ -3727,12 +7191,12 @@ msgstr ""
"etc/>."
#. type: =item
-#: dh_install:108
+#: dh_install:113
msgid "I<file|dir> ... I<destdir>"
msgstr "I<ficheiro|dir> ... I<destdir>"
#. type: textblock
-#: dh_install:110
+#: dh_install:115
msgid ""
"Lists files (or directories) to install and where to install them to. The "
"files will be installed into the first package F<dh_install> acts on."
@@ -3740,24 +7204,131 @@ msgstr ""
"Lista ficheiros (ou directórios) a instalar e onde os instalar. Os "
"ficheiros serão instalados no primeiro pacote em que o F<dh_install> actua."
+#. type: textblock
+#: dh_install:334
+msgid "Here are some small examples of configuration files for dh_install."
+msgstr ""
+"Aqui estão alguns pequenos exemplos de ficheiros de configuração para "
+"dh_install."
+
+#. type: verbatim
+#: dh_install:336
+#, no-wrap
+msgid ""
+" # Install my-prog into usr/bin (as \"usr/bin/my-prog\")\n"
+" my-prog usr/bin\n"
+"\n"
+msgstr ""
+" # Install my-prog into usr/bin (as \"usr/bin/my-prog\")\n"
+" my-prog usr/bin\n"
+"\n"
+
+#. type: verbatim
+#: dh_install:339
+#, no-wrap
+msgid ""
+" # Install a plugins directory into usr/share/my-prog\n"
+" # (as \"usr/share/my-prog/plugins/\")\n"
+" plugins usr/share/my-prog\n"
+"\n"
+msgstr ""
+" # Install a plugins directory into usr/share/my-prog\n"
+" # (as \"usr/share/my-prog/plugins/\")\n"
+" plugins usr/share/my-prog\n"
+"\n"
+
+#. type: verbatim
+#: dh_install:343
+#, no-wrap
+msgid ""
+" # Install a file with spaces in into usr/share/my-prog/data\n"
+" # (as \"usr/share/my-prog/data/my datafile with spaces.txt\")\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" my${Space}datafile${Space}with${Space}spaces.txt usr/share/my-prog/data\n"
+"\n"
+msgstr ""
+" # Install a file with spaces in into usr/share/my-prog/data\n"
+" # (as \"usr/share/my-prog/data/my datafile with spaces.txt\")\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" my${Space}datafile${Space}with${Space}spaces.txt usr/share/my-prog/data\n"
+"\n"
+
+#. type: verbatim
+#: dh_install:348
+#, no-wrap
+msgid ""
+" # Install a library into the multi-arch lib directory\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" build/output/libfrop*.so.* usr/lib/${DEB_HOST_MULTIARCH}\n"
+"\n"
+msgstr ""
+" # Install a library into the multi-arch lib directory\n"
+" # ASSUMES COMPAT 13, where substitution patterns are available\n"
+" build/output/libfrop*.so.* usr/lib/${DEB_HOST_MULTIARCH}\n"
+"\n"
+
#. type: =head1
-#: dh_install:254
+#: dh_install:352
msgid "LIMITATIONS"
msgstr "LIMITAÇÕES"
+#. type: textblock
+#: dh_install:354
+msgid ""
+"B<dh_install> cannot rename files or directories, it can only install them "
+"with the names they already have into wherever you want in the package build "
+"tree."
+msgstr ""
+"B<dh_install> não pode renomear ficheiros ou directórios, pode apenas "
+"instala-los com os nomes que já têm para onde você os deseja na árvore de "
+"compilação do pacote."
+
+#. type: textblock
+#: dh_install:358
+msgid ""
+"However, renaming can be achieved by using B<dh-exec> with compatibility "
+"level 9 or later. An example debian/I<package>.install file using B<dh-"
+"exec> could look like:"
+msgstr ""
+"No entanto, o renomear pode ser conseguido ao usar o B<dh-exec> com "
+"compatibilidade 9 ou posterior. Um ficheiro exemplo debian/I<pacote>.install "
+"que usa o B<dh-exec> poderá ser parecer com:"
+
#. type: verbatim
-#: dh_install:256
+#: dh_install:362
#, no-wrap
msgid ""
-"B<dh_install> cannot rename files or directories, it can only install them\n"
-"with the names they already have into wherever you want in the package\n"
-"build tree.\n"
-" \n"
+" #!/usr/bin/dh-exec\n"
+" debian/default.conf => /etc/my-package/start.conf\n"
+"\n"
msgstr ""
-"B<dh_install> não pode renomear ficheiros ou directórios, pode apenas\n"
-"instalá-los com os nomes que já têm para onde você os deseja na árvore\n"
-"de compilação do pacote.\n"
-" \n"
+" #!/usr/bin/dh-exec\n"
+" debian/default.conf => /etc/my-package/start.conf\n"
+"\n"
+
+#. type: textblock
+#: dh_install:365
+msgid "Please remember the following three things:"
+msgstr "Por favor lembre-se das três coisas seguintes:"
+
+#. type: =item
+#: dh_install:369
+msgid ""
+"* The package must be using compatibility level 9 or later (see "
+"L<debhelper(7)>)"
+msgstr ""
+"* O pacote tem se usar nível de compatibilidade 9 ou superior veja "
+"L<debhelper(7)>)"
+
+#. type: =item
+#: dh_install:371
+msgid "* The package will need a build-dependency on dh-exec."
+msgstr "* O pacote irá precisar de uma dependência de compilação em dh-exec."
+
+#. type: =item
+#: dh_install:373
+msgid "* The install file must be marked as executable."
+msgstr "* O ficheiro install tem de ser marcado como executável."
#. type: textblock
#: dh_installcatalogs:5
@@ -3765,12 +7336,12 @@ msgid "dh_installcatalogs - install and register SGML Catalogs"
msgstr "dh_installcatalogs - instala e regista Catálogos SGML"
#. type: textblock
-#: dh_installcatalogs:16
+#: dh_installcatalogs:19
msgid "B<dh_installcatalogs> [S<I<debhelper options>>] [B<-n>]"
msgstr "B<dh_installcatalogs> [S<I<debhelper opções>>] [B<-n>]"
#. type: textblock
-#: dh_installcatalogs:20
+#: dh_installcatalogs:23
msgid ""
"B<dh_installcatalogs> is a debhelper program that installs and registers "
"SGML catalogs. It complies with the Debian XML/SGML policy."
@@ -3779,7 +7350,7 @@ msgstr ""
"catálogos SGML. Está em conformidade com a política XML/SGML de Debian."
#. type: textblock
-#: dh_installcatalogs:23
+#: dh_installcatalogs:26
msgid ""
"Catalogs will be registered in a supercatalog, in F</etc/sgml/I<package>."
"cat>."
@@ -3788,22 +7359,23 @@ msgstr ""
"cat>."
#. type: textblock
-#: dh_installcatalogs:26
+#: dh_installcatalogs:29
msgid ""
"This command automatically adds maintainer script snippets for registering "
"and unregistering the catalogs and supercatalogs (unless B<-n> is used). "
-"These snippets are inserted into the maintainer scripts by B<dh_installdeb>; "
-"see L<dh_installdeb(1)> for an explanation of Debhelper maintainer script "
-"snippets."
+"These snippets are inserted into the maintainer scripts and the B<triggers> "
+"file by B<dh_installdeb>; see L<dh_installdeb(1)> for an explanation of "
+"Debhelper maintainer script snippets."
msgstr ""
-"Este comando adiciona automaticamente fragmentos de script de mantenedor "
+"Este comando adiciona automaticamente fragmentos de script de maintainer "
"para registar e remover o registo de catálogos e super-catálogos (a menos "
"que B<-n> seja usado). Estes fragmentos são inseridos nos scripts de "
-"mantenedor pelo B<dh_installdeb>; veja L<dh_installdeb(1)> para uma "
-"explicação sobre fragmentos de script de mantenedor do Debhelper."
+"maintainer e o ficheiro B<triggers> pelo B<dh_installdeb>; veja "
+"L<dh_installdeb(1)> para uma explicação sobre fragmentos de script de "
+"maintainer do Debhelper."
#. type: textblock
-#: dh_installcatalogs:32
+#: dh_installcatalogs:36
msgid ""
"A dependency on B<sgml-base> will be added to B<${misc:Depends}>, so be sure "
"your package uses that variable in F<debian/control>."
@@ -3813,12 +7385,12 @@ msgstr ""
"control>."
#. type: =item
-#: dh_installcatalogs:39
+#: dh_installcatalogs:43
msgid "debian/I<package>.sgmlcatalogs"
msgstr "debian/I<pacote>.sgmlcatalogs"
#. type: textblock
-#: dh_installcatalogs:41
+#: dh_installcatalogs:45
msgid ""
"Lists the catalogs to be installed per package. Each line in that file "
"should be of the form C<I<source> I<dest>>, where I<source> indicates where "
@@ -3833,14 +7405,17 @@ msgstr ""
"começar com F</usr/share/sgml/>."
#. type: textblock
-#: dh_installcatalogs:55 dh_installinit:65
-msgid "Do not modify F<postinst>/F<postrm>/F<prerm> scripts."
-msgstr "Não modifique os scripts F<postinst>/F<postrm>/F<prerm>."
+#: dh_installcatalogs:62
+msgid ""
+"Do not modify F<postinst>/F<postrm>/F<prerm> scripts nor add an activation "
+"trigger."
+msgstr ""
+"Não modifique os scripts F<postinst>/F<postrm>/F<prerm> nem adicionem um "
+"trigger de activação."
#. type: textblock
-#: dh_installcatalogs:61 dh_installdocs:127 dh_installemacsen:74
-#: dh_installinit:142 dh_installmodules:56 dh_installudev:57 dh_installwm:56
-#: dh_usrlocal:51
+#: dh_installcatalogs:69 dh_installemacsen:77 dh_installinit:206
+#: dh_installmodules:59 dh_installudev:52 dh_installwm:68 dh_usrlocal:62
msgid ""
"Note that this command is not idempotent. L<dh_prep(1)> should be called "
"between invocations of this command. Otherwise, it may cause multiple "
@@ -3848,15 +7423,15 @@ msgid ""
msgstr ""
"Note que este comando não é idempotente. O L<dh_prep(1)> deve ser chamado "
"entre invocações deste comando. Caso contrário, pode causar múltiplas "
-"instâncias do mesmo texto a ser adicionado aos scripts do mantenedor."
+"instâncias do mesmo texto a ser adicionado aos scripts do maintainer."
#. type: textblock
-#: dh_installcatalogs:126
+#: dh_installcatalogs:132
msgid "F</usr/share/doc/sgml-base-doc/>"
msgstr "F</usr/share/doc/sgml-base-doc/>"
#. type: textblock
-#: dh_installcatalogs:130
+#: dh_installcatalogs:136
msgid "Adam Di Carlo <aph@debian.org>"
msgstr "Adam Di Carlo <aph@debian.org>"
@@ -3869,16 +7444,16 @@ msgstr ""
"directórios de compilação de pacotes."
#. type: textblock
-#: dh_installchangelogs:14
+#: dh_installchangelogs:18
msgid ""
"B<dh_installchangelogs> [S<I<debhelper options>>] [B<-k>] [B<-X>I<item>] "
-"[I<upstream>]"
+"[B<--no-trim>] [I<upstream>]"
msgstr ""
-"B<dh_installchangelogs> [S<I<debhelper opções>>] [B<-k>] [B<-X>I<item>] "
-"[I<upstream>]"
+"B<dh_installchangelogs> [S<I<debhelper opções>>] [B<-k>] [B<-X>I<item>] [B<--"
+"no-trim>] [I<upstream>]"
#. type: textblock
-#: dh_installchangelogs:18
+#: dh_installchangelogs:22
msgid ""
"B<dh_installchangelogs> is a debhelper program that is responsible for "
"installing changelogs into package build directories."
@@ -3888,66 +7463,96 @@ msgstr ""
"de pacotes."
#. type: textblock
-#: dh_installchangelogs:21
+#: dh_installchangelogs:25
msgid ""
"An upstream F<changelog> file may be specified as an option. If none is "
-"specified, it looks for files with names that seem likely to be changelogs. "
-"(In compatibility level 7 and above.)"
+"specified, B<dh_installchangelogs> may look for files with names that seem "
+"likely to be changelogs as described in the next paragraphs."
msgstr ""
"Pode ser especificado como uma opção um ficheiro F<changelog> do autor "
-"original (upstream) Se nenhum for especificado, procura ficheiros cujos "
-"nomes apontam provavelmente para relatórios de alterações. (No nível 7 de "
-"compatibilidade e níveis superiores.)"
+"original (upstream) Se nenhum for especificado, B<dh_installchangelogs> pode "
+"procurar por ficheiros cujos nomes apontam provavelmente para relatórios de "
+"alterações como descrito nos próximos parágrafos."
+
+#. type: textblock
+#: dh_installchangelogs:29
+msgid ""
+"In non-native packages, B<dh_installchangelogs> will first look for "
+"changelog files installed by the upstream build system into F<< usr/share/"
+"doc/I<package> >> (of the package build directory) and rename the most "
+"likely candidate (if any) to F<< usr/share/doc/I<package>/changelog >>. "
+"Note that B<dh_installchangelogs> does I<not> look into any source directory "
+"(such as F<debian/tmp>). Otherwise, B<dh_installchangelogs> (at "
+"compatibility level 7 or any later) will look for changelog files in the "
+"source directory (e.g. the root or the F<docs> subdirectory). It will look "
+"for F<changelog>, F<changes> and F<history> optionally with common "
+"extensions (such as F<.txt>, F<.md> and F<.rst>)."
+msgstr ""
+"Em pacotes não-nativos, o B<dh_installchangelogs> irá primeiro procurar por "
+"ficheiros changelog instalados pelo sistema de compilação do autor em F<< "
+"usr/share/doc/I<package> >> (do directório de compilação do pacote) e "
+"renomear o melhor candidato (se existir algum) para F<< usr/share/doc/"
+"I<pacote>/changelog >>. Note que B<dh_installchangelogs> I<não> procura "
+"nenhum directório fonte (tal como F<debian/tmp>). Caso contrário, "
+"B<dh_installchangelogs> (no nível de compatibilidade 7 ou posterior) irá "
+"procurar por ficheiros changelog no directório fonte (ex. a raiz do sub-"
+"directório F<docs>). Irá procurar por F<changelog>, F<changes> e F<history> "
+"opcionalmente com extensões comuns (tais como F<.txt>, F<.md> e F<.rst>)."
#. type: textblock
-#: dh_installchangelogs:25
+#: dh_installchangelogs:41
msgid ""
-"If there is an upstream F<changelog> file, it will be be installed as F<usr/"
-"share/doc/package/changelog> in the package build directory."
+"If a changelog file is specified and is an F<html> file (determined by file "
+"extension), it will be installed as F<usr/share/doc/package/changelog.html> "
+"instead. If the html changelog is converted to plain text, that variant can "
+"be specified as a second parameter. When no plain text variant is specified, "
+"a short F<usr/share/doc/package/changelog> is generated, pointing readers at "
+"the html changelog file."
msgstr ""
-"Se existir um ficheiro F<changelog> do autor, este será instalado como F<usr/"
-"share/doc/package/changelog> no directório de compilação do pacote."
+"Se um ficheiro changelog for especificado e se for um ficheiro F<html> "
+"(determinado pela extensão do ficheiro), em vez disso será instalado como "
+"F<usr/share/doc/package/changelog.html>. Se o relatório html for convertido "
+"para texto simples, essa variante pode ser especificada como um segundo "
+"parâmetro. Quando nenhuma variante de texto simples é especificada, é gerado "
+"um curto F<usr/share/doc/package/changelog>, apontando os leitores para o "
+"ficheiro de relatório em html."
#. type: textblock
-#: dh_installchangelogs:28
+#: dh_installchangelogs:48
msgid ""
-"If the upstream changelog is is a F<html> file (determined by file "
-"extension), it will be installed as F<usr/share/doc/package/changelog.html> "
-"instead. If the html changelog is converted to plain text, that variant can "
-"be specified as a second upstream changelog file. When no plain text variant "
-"is specified, a short F<usr/share/doc/package/changelog> is generated, "
-"pointing readers at the html changelog file."
+"The B<debchange>-style Debian changelogs are trimmed to include only entries "
+"more recent than the release date of I<oldstable>. No trimming will be "
+"performed if the B<--no-trim> option is passed or if the "
+"B<DEB_BUILD_OPTIONS> environment variable contains B<notrimdch>."
msgstr ""
-"Se o relatório de alterações do autor for um ficheiro F<html> (determinado "
-"pela extensão do ficheiro), em vez disso será instalado como F<usr/share/doc/"
-"package/changelog.html>. Se o relatório html for convertido para texto "
-"simples, essa variante pode ser especificada como o segundo ficheiro de "
-"relatório de alterações do autor. Quando nenhuma variante de texto simples é "
-"especificada, é gerado um curto F<usr/share/doc/package/changelog>, "
-"apontando os leitores para o ficheiro de relatório html."
+"Os registos de alterações Debian estilo-B<debchange> são cortados para "
+"incluir apenas entradas mais recentes que a data de lançamento de "
+"I<oldstable>. Nenhum corte será executado se a opção B<--no-trim> for "
+"passada ou se a variável de ambiente B<DEB_BUILD_OPTIONS> conter "
+"B<notrimdch>."
#. type: =item
-#: dh_installchangelogs:39
+#: dh_installchangelogs:57
msgid "F<debian/changelog>"
msgstr "F<debian/changelog>"
#. type: =item
-#: dh_installchangelogs:41
+#: dh_installchangelogs:59
msgid "F<debian/NEWS>"
msgstr "F<debian/NEWS>"
#. type: =item
-#: dh_installchangelogs:43
+#: dh_installchangelogs:61
msgid "debian/I<package>.changelog"
msgstr "debian/I<pacote>.changelog"
#. type: =item
-#: dh_installchangelogs:45
+#: dh_installchangelogs:63
msgid "debian/I<package>.NEWS"
msgstr "debian/I<pacote>.NEWS"
#. type: textblock
-#: dh_installchangelogs:47
+#: dh_installchangelogs:65
msgid ""
"Automatically installed into usr/share/doc/I<package>/ in the package build "
"directory."
@@ -3956,7 +7561,7 @@ msgstr ""
"compilação do pacote."
#. type: textblock
-#: dh_installchangelogs:50
+#: dh_installchangelogs:68
msgid ""
"Use the package specific name if I<package> needs a different F<NEWS> or "
"F<changelog> file."
@@ -3965,7 +7570,7 @@ msgstr ""
"F<NEWS> ou F<changelog> diferente."
#. type: textblock
-#: dh_installchangelogs:53
+#: dh_installchangelogs:71
msgid ""
"The F<changelog> file is installed with a name of changelog for native "
"packages, and F<changelog.Debian> for non-native packages. The F<NEWS> file "
@@ -3976,7 +7581,7 @@ msgstr ""
"F<NOTICIAS> é sempre instalado com o nome F<NEWS.Debian>."
#. type: textblock
-#: dh_installchangelogs:65
+#: dh_installchangelogs:83
msgid ""
"Keep the original name of the upstream changelog. This will be accomplished "
"by installing the upstream changelog as F<changelog>, and making a symlink "
@@ -3992,7 +7597,7 @@ msgstr ""
"F<changelog>."
#. type: textblock
-#: dh_installchangelogs:73
+#: dh_installchangelogs:91
msgid ""
"Exclude upstream F<changelog> files that contain I<item> anywhere in their "
"filename from being installed."
@@ -4000,13 +7605,33 @@ msgstr ""
"Exclui ficheiros F<changelog> do autor que contenham I<item> em qualquer "
"ponto do seu nome de ficheiro, de serem instalados."
+#. type: textblock
+#: dh_installchangelogs:94
+msgid "Note that directory name of the changelog is also part of the match."
+msgstr ""
+"Note que o nome de directório do changelog é também parte correspondente."
+
#. type: =item
-#: dh_installchangelogs:76
+#: dh_installchangelogs:96
+msgid "B<--no-trim>"
+msgstr "B<--no-trim>"
+
+#. type: textblock
+#: dh_installchangelogs:98
+msgid ""
+"Install the full changelog, not its trimmed version that includes only "
+"recent entries."
+msgstr ""
+"Instala o registo de alterações completo, não a sua versão cortada que só "
+"inclui as entradas recentes."
+
+#. type: =item
+#: dh_installchangelogs:101
msgid "I<upstream>"
msgstr "I<upstream>"
#. type: textblock
-#: dh_installchangelogs:78
+#: dh_installchangelogs:103
msgid "Install this file as the upstream changelog."
msgstr ""
"Instala este ficheiro como o registo de alterações (changelog) da origem."
@@ -4017,12 +7642,12 @@ msgid "dh_installcron - install cron scripts into etc/cron.*"
msgstr "dh_installcron - instala scripts do cron em etc/cron.*"
#. type: textblock
-#: dh_installcron:14
+#: dh_installcron:17
msgid "B<dh_installcron> [S<B<debhelper options>>] [B<--name=>I<name>]"
msgstr "B<dh_installcron> [S<B<debhelper opções>>] [B<--name=>I<nome>]"
#. type: textblock
-#: dh_installcron:18
+#: dh_installcron:21
msgid ""
"B<dh_installcron> is a debhelper program that is responsible for installing "
"cron scripts."
@@ -4031,32 +7656,37 @@ msgstr ""
"scripts do cron."
#. type: =item
-#: dh_installcron:25
+#: dh_installcron:28
msgid "debian/I<package>.cron.daily"
msgstr "debian/I<pacote>.cron.daily"
#. type: =item
-#: dh_installcron:27
+#: dh_installcron:30
msgid "debian/I<package>.cron.weekly"
msgstr "debian/I<pacote>.cron.weekly"
#. type: =item
-#: dh_installcron:29
+#: dh_installcron:32
msgid "debian/I<package>.cron.monthly"
msgstr "debian/I<pacote>.cron.monthly"
#. type: =item
-#: dh_installcron:31
+#: dh_installcron:34
+msgid "debian/I<package>.cron.yearly"
+msgstr "debian/I<pacote>.cron.yearly"
+
+#. type: =item
+#: dh_installcron:36
msgid "debian/I<package>.cron.hourly"
msgstr "debian/I<pacote>.cron.hourly"
#. type: =item
-#: dh_installcron:33
+#: dh_installcron:38
msgid "debian/I<package>.cron.d"
msgstr "debian/I<pacote>.cron.d"
#. type: textblock
-#: dh_installcron:35
+#: dh_installcron:40
msgid ""
"Installed into the appropriate F<etc/cron.*/> directory in the package build "
"directory."
@@ -4065,21 +7695,21 @@ msgstr ""
"compilação do pacote."
#. type: =item
-#: dh_installcron:44 dh_installifupdown:43 dh_installinit:110
-#: dh_installlogcheck:46 dh_installlogrotate:26 dh_installmodules:46
-#: dh_installpam:35 dh_installppp:39 dh_installudev:39
+#: dh_installcron:49 dh_installifupdown:46 dh_installinit:174
+#: dh_installlogcheck:49 dh_installlogrotate:29 dh_installmodules:49
+#: dh_installpam:42 dh_installppp:42 dh_installudev:38 dh_systemd_enable:94
msgid "B<--name=>I<name>"
msgstr "B<--name=>I<nome>"
#. type: textblock
-#: dh_installcron:46
+#: dh_installcron:51
msgid ""
"Look for files named F<debian/package.name.cron.*> and install them as F<etc/"
"cron.*/name>, instead of using the usual files and installing them as the "
"package name."
msgstr ""
"Procura ficheiros chamados F<debian/package.name.cron.*> e instala-os como "
-"F<etc/cron.*/name>, em vez de usar os ficheiros habituais e instalá-los como "
+"F<etc/cron.*/name>, em vez de usar os ficheiros habituais e instala-los como "
"o nome do pacote."
#. type: textblock
@@ -4088,12 +7718,12 @@ msgid "dh_installdeb - install files into the DEBIAN directory"
msgstr "dh_installdeb - instala ficheiros no directório DEBIAN"
#. type: textblock
-#: dh_installdeb:14
+#: dh_installdeb:17
msgid "B<dh_installdeb> [S<I<debhelper options>>]"
msgstr "B<dh_installdeb> [S<I<debhelper opções>>]"
#. type: textblock
-#: dh_installdeb:18
+#: dh_installdeb:21
msgid ""
"B<dh_installdeb> is a debhelper program that is responsible for installing "
"files into the F<DEBIAN> directories in package build directories with the "
@@ -4104,96 +7734,465 @@ msgstr ""
"com as permissões correctas."
#. type: =item
-#: dh_installdeb:26
+#: dh_installdeb:29
msgid "I<package>.postinst"
msgstr "I<pacote>.postinst"
#. type: =item
-#: dh_installdeb:28
+#: dh_installdeb:31
msgid "I<package>.preinst"
msgstr "I<pacote>.preinst"
#. type: =item
-#: dh_installdeb:30
+#: dh_installdeb:33
msgid "I<package>.postrm"
msgstr "I<pacote>.postrm"
#. type: =item
-#: dh_installdeb:32
+#: dh_installdeb:35
msgid "I<package>.prerm"
msgstr "I<pacote>.prerm"
#. type: textblock
-#: dh_installdeb:34
+#: dh_installdeb:37
msgid "These maintainer scripts are installed into the F<DEBIAN> directory."
-msgstr "Estes scripts de mantenedor são instalados no directório F<DEBIAN>."
+msgstr "Estes scripts de maintainer são instalados no directório F<DEBIAN>."
#. type: textblock
-#: dh_installdeb:36
+#: 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 ""
-"Dentro dos scripts, o sinal B<#DEBHELPER#> é substituído por fragmentos de "
-"script shell gerados por outros comandos do debhelper."
+"B<dh_installdeb> irá executar a substituição de tokens conhecidos do padrão "
+"B<#TOKEN#>. Em geral, os scripts irão querer incluir o B<#DEBHELPER#> para "
+"beneficiar dos scripts de shell gerados pelos comandos debhelper (incluindo "
+"commands (including aqueles de B<dh_installdeb> quando processa ficheiros "
+"I<package>.maintscript)."
+
+#. type: textblock
+#: dh_installdeb:45
+msgid ""
+"The B<#DEBHELPER#> token should be placed on its own line as it is often "
+"replaced by a multi-line shell script."
+msgstr ""
+"O token B<#DEBHELPER#> deve ser colocado na sua linha própria pois é muitas "
+"vezes substituído por um script de shell de multi-linhas."
#. type: =item
-#: dh_installdeb:39
+#: dh_installdeb:48
msgid "I<package>.triggers"
msgstr "I<pacote>.triggers"
#. type: =item
-#: dh_installdeb:41
+#: dh_installdeb:50
msgid "I<package>.shlibs"
msgstr "I<pacote>.shlibs"
#. type: textblock
-#: dh_installdeb:43
+#: dh_installdeb:52
msgid "These control files are installed into the F<DEBIAN> directory."
msgstr "Estes ficheiros de controle são instalados no directório F<DEBIAN>."
+#. type: textblock
+#: dh_installdeb:54
+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 ""
+"Note que o I<pacote>.shlibs é apenas instalado em nível de compatibilidade 9 "
+"e anteriores. Em compatibilidade 10, use L<dh_makeshlibs(1)>."
+
#. type: =item
-#: dh_installdeb:45
+#: dh_installdeb:57
msgid "I<package>.conffiles"
msgstr "I<pacote>.conffiles"
#. type: textblock
-#: dh_installdeb:47
-msgid "This control file will be installed into the F<DEBIAN> directory."
-msgstr "Este ficheiro de controle será instalado no directório F<DEBIAN>."
+#: dh_installdeb:59
+msgid ""
+"This file will be installed into the F<DEBIAN> directory. The provided file "
+"will be enriched by debhelper to include all the B<conffiles> auto-detected "
+"by debhelper (the maintainer should not list anything there as debhelper "
+"assumes it should handle that part)."
+msgstr ""
+"este ficheiro será instalado no directório F<DEBIAN>. O ficheiro fornecido "
+"será enriquecido pelo debhelper para incluir todos os B<conffiles> auto-"
+"detetados pelo debhelper (o responsável deve estar listado lá pois o "
+"debhelper assume que deve lidar com essa parte.)"
#. type: textblock
-#: dh_installdeb:49
+#: 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."
+"This file is primarily useful for using \"special\" entries such as the B<< "
+"remove-on-upgrade >> feature from dpkg."
msgstr ""
-"No modo de compatibilidade v3 ou mais alto, todos os ficheiros no directório "
-"F<etc/> de um pacote serão automaticamente marcados como ficheiros de "
-"configuração por este programa, por isso não é preciso listá-los manualmente "
-"aqui."
+"Este ficheiro é principalmente útil para usar entradas \"especiais\" tais "
+"como a funcionalidade B<< remove-on-upgrade >> do dpkg."
#. type: =item
-#: dh_installdeb:53
+#: dh_installdeb:67
msgid "I<package>.maintscript"
msgstr "I<pacote>.maintscript"
#. type: textblock
-#: dh_installdeb:55
+#: dh_installdeb:69
msgid ""
"Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands and "
-"parameters. Any shell metacharacters will be escaped, so arbitrary shell "
-"code cannot be inserted here. For example, a line such as C<mv_conffile /"
-"etc/oldconffile /etc/newconffile> will insert maintainer script snippets "
-"into all maintainer scripts sufficient to move that conffile."
+"parameters. However, the \"maint-script-parameters\" should I<not> be "
+"included as debhelper will add those automatically."
msgstr ""
"As linhas neste ficheiro correspondem a comandos e parâmetros de L<dpkg-"
-"maintscript-helper(1)>. Quaisquer meta-caracteres de shell serão \"escapados"
-"\" então não se pode inserir aqui código arbitrário de shell. Por exemplo, "
-"uma linha como C<mv_conffile /etc/oldconffile /etc/newconffile> irá inserir "
-"fragmentos de script de mantenedor em todos os scripts de mantenedor "
-"suficientes para mover esse ficheiro de configuração."
+"maintscript-helper(1)>. No entanto, os \"maint-script-parameters\" I<não> "
+"devem ser incluídos pois o debhelper irá adicionar esses automaticamente."
+
+#. type: textblock
+#: dh_installdeb:73
+msgid "Example:"
+msgstr "Exemplo:"
+
+#. type: verbatim
+#: dh_installdeb:75
+#, no-wrap
+msgid ""
+" # Correct\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo\n"
+" # INCORRECT\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo -- \"$@\"\n"
+"\n"
+msgstr ""
+" # Correct\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo\n"
+" # INCORRECT\n"
+" rm_conffile /etc/obsolete.conf 0.2~ foo -- \"$@\"\n"
+"\n"
+
+#. type: textblock
+#: dh_installdeb:80
+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 "
+"C<mv_conffile /etc/oldconffile /etc/newconffile> will insert maintainer "
+"script snippets into all maintainer scripts sufficient to move that conffile."
+msgstr ""
+"No nível de compatibilidade 10 ou posterior, quaisquer meta-caracteres de "
+"shell serão \"escapados\" então não se pode inserir aqui código arbitrário "
+"de shell. Por exemplo, uma linha como C<mv_conffile /etc/oldconffile /etc/"
+"newconffile> irá inserir fragmentos de script de maintainer em todos os "
+"scripts de maintainer suficientes para mover esse ficheiro de configuração."
+
+#. type: textblock
+#: dh_installdeb:86
+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 "
+"embed arbitrary shell code in earlier compat levels."
+msgstr ""
+"Foi também intenção de fazer escape de shell a meta-caracteres nos níveis de "
+"compatibilidade anteriores. No entanto, não funcionava correctamente e como "
+"tal era possível embeber código de shell arbitrário nos níveis de "
+"compatibilidade anteriores."
+
+#. type: textblock
+#: dh_installdeb:90
+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 ""
+"A ferramenta B<dh_installdeb> irá fazer alguma validação básica a alguns dos "
+"comandos listados neste ficheiro para apanhar enganos comuns. A validação é "
+"activada como um aviso desde compatibilidade 10 e como um erro a resolver na "
+"compatibilidade 12."
+
+#. type: textblock
+#: dh_installdeb:95
+msgid ""
+"Where possible, B<dh_installdeb> may choose to rewrite some or all of the "
+"entries into equivalent features supported in dpkg without relying on "
+"maintainer scripts at its sole discretion (examples include rewriting "
+"B<rm_conffile> into dpkg's B<remove-on-upgrade>). The minimum requirement "
+"for activating this feature is that debhelper runs in compat 10 or later."
+msgstr ""
+"Onde possível, o B<dh_installdeb> pode escolher rescrever algumas ou todas "
+"as entradas em funcionalidades equivalentes suportadas no dpkg sem se apoiar "
+"nos scripts do maintainer scripts a seu exclusivo critério (exemplos "
+"incluem rescrever B<rm_conffile> em B<remove-on-upgrade> do dpkg). O "
+"requerimento mínimo para activar esta funcionalidade é que o debhelper "
+"corra em compatibilidade 10 ou posterior."
+
+#. type: =item
+#: dh_installdeb:111 dh_installdebconf:76
+msgid "B<-D>I<TOKEN=VALUE>, B<--define> I<TOKEN=VALUE>"
+msgstr "B<-D>I<TOKEN=VALUE>, B<--define> I<TOKEN=VALUE>"
+
+#. type: textblock
+#: dh_installdeb:113 dh_installdebconf:78
+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 ""
+"Define tokens a serem substituídos dentro dos scripts do maintainer quando "
+"são gerados. Por favor note as limitações descritas em L</Limitações nos "
+"nomes dos tokens> também se aplicam a tokens definidos na linha de comandos. "
+"Nomes de tokens inválidos irão despoletar um erro."
+
+#. type: textblock
+#: dh_installdeb:118 dh_installdebconf:83
+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 ""
+"No caso simples, este parâmetro irá causar com que B<< #I<TOKEN># >> seja "
+"substituído por I<VALUE>. Se I<VALUE> começar com um I<@>-sign literal, "
+"então espera-se que I<VALUE> aponte para um ficheiro que contém o valor real "
+"a inserir."
+
+#. type: textblock
+#: dh_installdeb:123 dh_installdebconf:88
+msgid ""
+"An explicit declared token with this parameter will replace built-in tokens."
+msgstr ""
+"Um token declarado explicitamente com este parâmetro irá substituir tokens "
+"embutidos."
+
+#. type: textblock
+#: dh_installdeb:126 dh_installdebconf:91
+msgid "Test examples to aid with the understanding:"
+msgstr "Exemplos de testes para ajuda na compreensão:"
+
+#. type: verbatim
+#: dh_installdeb:128
+#, 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 ""
+"\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"
+
+#. type: textblock
+#: dh_installdeb:135 dh_installdebconf:100
+msgid ""
+"In this example, B<#SIMPLE#> will expand to B<direct> and B<#FILEBASED#> "
+"will expand to B<Complex value>."
+msgstr ""
+"Neste exemplo, B<#SIMPLE#> irá expandir para B<direct> e B<#FILEBASED#> irá "
+"expandir para B<Complex value>."
+
+#. type: textblock
+#: dh_installdeb:138
+msgid ""
+"It is also possible to 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 ""
+"É também possível definir valores específicos-de-pacote para um dado token. "
+"Isto é útil quando B<dh_installdeb> está a actuar em múltiplos pacotes que "
+"precisam de valores diferentes para o mesmo token. Isto é feito ao prefixar "
+"o nome do token com B<< pkg.I<nome-do-pacote>. >>."
+
+#. type: textblock
+#: dh_installdeb:143 dh_installdebconf:108
+msgid "This can be used as in the following example:"
+msgstr "Isto pode ser usado como no exemplo seguinte:"
+
+#. type: verbatim
+#: dh_installdeb:145
+#, 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 ""
+"\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"
+
+#. type: textblock
+#: dh_installdeb:160
+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 ""
+"Neste exemplo, B<#TOKEN#> irá expandir para B<default> em F<debian/foo."
+"postinst>, para B<unique-bar-value> em F<debian/bar.postinst> e para "
+"B<unique-baz-value> em F<debian/baz.postinst>."
+
+#. type: textblock
+#: dh_installdeb:164
+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 ""
+"Note que os tokens B<#pkg.*#> irão ser visíveis em todos os scripts que "
+"actuem. Ex, você pode referir a B<#pkg.bar.TOKEN#> dentro de F<debian/foo."
+"postinst> e ele será substituído por B<unique-bar-value>."
+
+#. type: =head1
+#: dh_installdeb:170 dh_installdebconf:135
+msgid "SUBSTITUTION IN MAINTAINER SCRIPTS"
+msgstr "SUBSTITUIÇÃO EM SCRIPTS DE MAINTAINER"
+
+#. type: textblock
+#: dh_installdeb:172
+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 ""
+"O B<dh_installdeb> irá substituir automaticamente os seguintes tokens dentro "
+"de um script disponibilizado pelo maintainer (se não for substituído via B<-"
+"D>/B<--define>):"
+
+#. type: =item
+#: dh_installdeb:177
+msgid "#DEBHELPER#"
+msgstr "#DEBHELPER#"
+
+#. type: textblock
+#: dh_installdeb:179
+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 ""
+"Este token é por predefinição substituído por excertos de shell de comandos "
+"debhelper gerados. Isto inclui os excertos gerados pelo B<dh_installdeb> a "
+"partir do ficheiro I<package>.maintscript (se presente)."
+
+#. type: =item
+#: dh_installdeb:183 dh_installdebconf:142
+msgid "#DEB_HOST_I<NAME>#, #DEB_BUILD_I<NAME>#, #DEB_TARGET_I<NAME>#"
+msgstr "#DEB_HOST_I<NAME>#, #DEB_BUILD_I<NAME>#, #DEB_TARGET_I<NAME>#"
+
+#. type: textblock
+#: dh_installdeb:185 dh_installdebconf:144
+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 ""
+"Estes tokens são substituídos pela variável respectiva a partir de L<dpkg-"
+"architecture(1)>. Em quase todos os casos, você vai querer usar a variante "
+"B<< #DEB_HOST_I<NAME> >> num script para assegurar que obtêm o valor "
+"correcto quando faz compilação cruzada."
+
+#. type: textblock
+#: dh_installdeb:190 dh_installdebconf:149
+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 ""
+"Na melhor das hipóteses, tokens deste padrão que não correspondam a uma "
+"variável em L<dpkg-architecture(1)> serão deixados como estão."
+
+#. type: =item
+#: dh_installdeb:193 dh_installdebconf:152
+msgid "#ENV.I<NAME>#"
+msgstr "#ENV.I<NAME>#"
+
+#. type: textblock
+#: dh_installdeb:195 dh_installdebconf:154
+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 ""
+"Estes tokens deste formato serão substituídos pelo valor da variável de "
+"ambiente correspondente. Se a variável de ambiente não estiver definida, o "
+"token é substituído pela string vazia."
+
+#. type: textblock
+#: dh_installdeb:200 dh_installdebconf:159
+msgid ""
+"Note that there are limits on which names can be used (see L</Limitations in "
+"token names>)."
+msgstr ""
+"Note que existem limites em quais nomes podem ser usados (veja L</Limitações "
+"nos nomes dos token>)."
+
+#. type: =item
+#: dh_installdeb:203 dh_installdebconf:162
+msgid "#PACKAGE#"
+msgstr "#PACKAGE#"
+
+#. type: textblock
+#: dh_installdeb:205 dh_installdebconf:164
+msgid ""
+"This token is by default replaced by the package name, which will contain "
+"the concrete script."
+msgstr ""
+"Este token é por predefinição substituído pelo nome do pacote, o qual irá "
+"conter o script concreto."
+
+#. type: =head2
+#: dh_installdeb:210 dh_installdebconf:169
+msgid "Limitations in token names"
+msgstr "Limitações nos nomes dos token"
+
+#. type: textblock
+#: dh_installdeb:212 dh_installdebconf:171
+msgid ""
+"All tokens intended to be substituted must match the regex: #[A-Za-z0-9_.+]+#"
+msgstr ""
+"Todos os tokens que se destinam a ser substituídos têm de corresponder ao "
+"regex: #[A-Za-z0-9_.+]+#"
+
+#. type: textblock
+#: dh_installdeb:214
+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 ""
+"Tokens que não correspondam a esse regex serão ignorados em silêncio se "
+"encontrados no script modelo. Nomes de token inválidos passados a B<-D> ou "
+"B<--define> irão causar que o B<dh_installdeb> rejeite o comando com um erro "
+"na maioria dos casos."
#. type: textblock
#: dh_installdebconf:5
@@ -4205,14 +8204,14 @@ msgstr ""
"compilação de pacotes"
#. type: textblock
-#: dh_installdebconf:14
+#: dh_installdebconf:17
msgid ""
"B<dh_installdebconf> [S<I<debhelper options>>] [B<-n>] [S<B<--> I<params>>]"
msgstr ""
"B<dh_installdebconf> [S<I<debhelper opções>>] [B<-n>] [S<B<--> I<params>>]"
#. type: textblock
-#: dh_installdebconf:18
+#: dh_installdebconf:21
msgid ""
"B<dh_installdebconf> is a debhelper program that is responsible for "
"installing files used by debconf into package build directories."
@@ -4221,7 +8220,7 @@ msgstr ""
"ficheiros usados pelo debconf em directórios de compilação de pacotes."
#. type: textblock
-#: dh_installdebconf:21
+#: dh_installdebconf:24
msgid ""
"It also automatically generates the F<postrm> commands needed to interface "
"with debconf. The commands are added to the maintainer scripts by "
@@ -4230,11 +8229,11 @@ msgid ""
msgstr ""
"Também gera automaticamente os comandos F<postrm> necessários para a "
"interface com o debconf. Os comandos são adicionados aos scripts do "
-"mantenedor pelo B<dh_installdeb>. Veja L<dh_installdeb(1)> para uma "
+"maintainer pelo B<dh_installdeb>. Veja L<dh_installdeb(1)> para uma "
"explicação de como isso funciona."
#. type: textblock
-#: dh_installdebconf:26
+#: dh_installdebconf:29
msgid ""
"Note that if you use debconf, your package probably needs to depend on it "
"(it will be added to B<${misc:Depends}> by this program)."
@@ -4243,7 +8242,7 @@ msgstr ""
"depender disso (será adicionado a B<${misc:Depends}> por este programa)."
#. type: textblock
-#: dh_installdebconf:29
+#: dh_installdebconf:32
msgid ""
"Note that for your config script to be called by B<dpkg>, your F<postinst> "
"needs to source debconf's confmodule. B<dh_installdebconf> does not install "
@@ -4256,12 +8255,12 @@ msgstr ""
"automaticamente porque é muito difícil de o fazer correctamente."
#. type: =item
-#: dh_installdebconf:38
+#: dh_installdebconf:41
msgid "debian/I<package>.config"
msgstr "debian/I<pacote>.config"
#. type: textblock
-#: dh_installdebconf:40
+#: dh_installdebconf:43
msgid ""
"This is the debconf F<config> script, and is installed into the F<DEBIAN> "
"directory in the package build directory."
@@ -4270,21 +8269,21 @@ msgstr ""
"no directório de compilação do pacote."
#. type: textblock
-#: dh_installdebconf:43
+#: dh_installdebconf:46
msgid ""
"Inside the script, the token B<#DEBHELPER#> is replaced with shell script "
"snippets generated by other debhelper commands."
msgstr ""
-"Dentro do script, o sinal B<#DEBHELPER#> é substituído por fragmentos de "
+"Dentro do script, o token B<#DEBHELPER#> é substituído por fragmentos de "
"script shell gerados por outros comandos do debhelper."
#. type: =item
-#: dh_installdebconf:46
+#: dh_installdebconf:49
msgid "debian/I<package>.templates"
msgstr "debian/I<pacote>.templates"
#. type: textblock
-#: dh_installdebconf:48
+#: dh_installdebconf:51
msgid ""
"This is the debconf F<templates> file, and is installed into the F<DEBIAN> "
"directory in the package build directory."
@@ -4293,12 +8292,12 @@ msgstr ""
"F<DEBIAN> no directório de compilação do pacote."
#. type: =item
-#: dh_installdebconf:51
+#: dh_installdebconf:54
msgid "F<debian/po/>"
msgstr "F<debian/po/>"
#. type: textblock
-#: dh_installdebconf:53
+#: dh_installdebconf:56
msgid ""
"If this directory is present, this program will automatically use "
"L<po2debconf(1)> to generate merged templates files that include the "
@@ -4309,22 +8308,135 @@ msgstr ""
"traduções de lá."
#. type: textblock
-#: dh_installdebconf:57
+#: dh_installdebconf:60
msgid "For this to work, your package should build-depend on F<po-debconf>."
msgstr ""
"Para que isto funcione, o seu pacote deve compilar dependendo de F<po-"
"debconf>."
#. type: textblock
-#: dh_installdebconf:67
+#: dh_installdebconf:70
msgid "Do not modify F<postrm> script."
msgstr "Não modifique o script F<postrm>."
#. type: textblock
-#: dh_installdebconf:71
+#: dh_installdebconf:74
msgid "Pass the params to B<po2debconf>."
msgstr "Passa os params para B<po2debconf>."
+#. type: verbatim
+#: dh_installdebconf:93
+#, no-wrap
+msgid ""
+"\tcat >> debian/config <<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 ""
+"\tcat >> debian/config <<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"
+
+#. type: textblock
+#: dh_installdebconf:103
+msgid ""
+"It is also possible to set package-specific values for a given token. This "
+"is useful when B<dh_installdebconf> 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 ""
+"É também possível definir valores específicos-de-pacote para um dado token. "
+"Isto é útil quando B<dh_installdebconf> está a actuar em múltiplos pacotes "
+"que precisam de valores diferentes para o mesmo token. Isto é feito ao "
+"prefixar o nome do token com B<< pkg.I<nome-do-pacote>. >>."
+
+#. type: verbatim
+#: dh_installdebconf:110
+#, no-wrap
+msgid ""
+"\tcat >> debian/foo.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/bar.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/baz.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+" dh_installdebconf -pfoo -pbar -pbaz --define TOKEN=default --define pkg.bar.TOKEN=unique-bar-value \\\n"
+" --define pkg.baz.TOKEN=unique-baz-value\n"
+"\n"
+msgstr ""
+"\tcat >> debian/foo.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/bar.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+"\tcat >> debian/baz.config <<EOF\n"
+"\t# Script for #PACKAGE#\n"
+"\t#TOKEN#\n"
+"\tEOF\n"
+" dh_installdebconf -pfoo -pbar -pbaz --define TOKEN=default --define pkg.bar.TOKEN=unique-bar-value \\\n"
+" --define pkg.baz.TOKEN=unique-baz-value\n"
+"\n"
+
+#. type: textblock
+#: dh_installdebconf:125
+msgid ""
+"In this example, B<#TOKEN#> will expand to B<default> in F<debian/foo."
+"config>, to B<unique-bar-value> in F<debian/bar.config> and to B<unique-baz-"
+"value> in F<debian/baz.config>."
+msgstr ""
+"Neste exemplo, B<#TOKEN#> irá expandir para B<default> em F<debian/foo."
+"config>, para B<unique-bar-value> em F<debian/bar.config> e para B<unique-"
+"baz-value> em F<debian/baz.config>."
+
+#. type: textblock
+#: dh_installdebconf:129
+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.config> and it "
+"will be replaced by B<unique-bar-value>."
+msgstr ""
+"Note que os tokens B<#pkg.*#> irão ser visíveis em todos os scripts que "
+"actuem. Ex, você pode referir a B<#pkg.bar.TOKEN#> dentro de F<debian/foo."
+"config> e ele será substituído por B<unique-bar-value>."
+
+#. type: textblock
+#: dh_installdebconf:137
+msgid ""
+"The B<dh_installdebconf> will automatically replace the following tokens "
+"inside a provided maintainer script (if not replaced via B<-D>/B<--define>):"
+msgstr ""
+"O B<dh_installdebconf> irá substituir automaticamente os seguintes tokens "
+"dentro de um script disponibilizado pelo maintainer (se não for substituído "
+"via B<-D>/B<--define>):"
+
+#. type: textblock
+#: dh_installdebconf:173
+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_installdebconf> to reject the command with an error in most cases."
+msgstr ""
+"Tokens que não correspondam a esse regex serão ignorados em silêncio se "
+"encontrados no script modelo. Nomes de token inválidos passados a B<-D> ou "
+"B<--define> irão causar que o B<dh_installdebconf> rejeite o comando com um "
+"erro na maioria dos casos."
+
#. type: textblock
#: dh_installdirs:5
msgid "dh_installdirs - create subdirectories in package build directories"
@@ -4333,12 +8445,16 @@ msgstr ""
"pacotes"
#. type: textblock
-#: dh_installdirs:14
-msgid "B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [S<I<dir> ...>]"
-msgstr "B<dh_installdirs> [S<I<debhelper opções>>] [B<-A>] [S<I<dir> ...>]"
+#: dh_installdirs:17
+msgid ""
+"B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [B<--sourcedir=>I<dir>] "
+"[B<--create-in-sourcedir>] [S<I<dir> ...>]"
+msgstr ""
+"B<dh_installdirs> [S<I<debhelper opções>>] [B<-A>] [B<--sourcedir=>I<dir>] "
+"[B<--create-in-sourcedir>] [S<I<dir> ...>]"
#. type: textblock
-#: dh_installdirs:18
+#: dh_installdirs:21
msgid ""
"B<dh_installdirs> is a debhelper program that is responsible for creating "
"subdirectories in package build directories."
@@ -4346,18 +8462,39 @@ msgstr ""
"B<dh_installdirs> é um programa debhelper que é responsável por criar sub-"
"directórios nos directórios de compilação de pacotes."
+#. type: textblock
+#: dh_installdirs:24
+msgid ""
+"Many packages can get away with omitting the call to B<dh_installdirs> "
+"completely. Notably, other B<dh_*> commands are expected to create "
+"directories as needed."
+msgstr ""
+"Muitos pacotes conseguem omitir completamente a chamada a B<dh_installdirs>. "
+"De notar, é de esperar que outros comandos B<dh_*> criem directórios quando "
+"é necessário."
+
#. type: =item
-#: dh_installdirs:25
+#: dh_installdirs:32
msgid "debian/I<package>.dirs"
msgstr "debian/I<pacote>.dirs"
#. type: textblock
-#: dh_installdirs:27
+#: dh_installdirs:34
msgid "Lists directories to be created in I<package>."
msgstr "Lista directórios a serem criados em I<pacote>."
#. type: textblock
-#: dh_installdirs:37
+#: dh_installdirs:36
+msgid ""
+"Generally, there is no need to list directories created by the upstream "
+"build system or directories needed by other B<debhelper> commands."
+msgstr ""
+"Geralmente, não há necessidade de listar os directórios criados pelo sistema "
+"de compilação do autor ou os directórios necessários por outros comandos "
+"B<debhelper>."
+
+#. type: textblock
+#: dh_installdirs:51
msgid ""
"Create any directories specified by command line parameters in ALL packages "
"acted on, not just the first."
@@ -4366,12 +8503,53 @@ msgstr ""
"em TODOS os pacotes em que actua, e não apenas no primeiro."
#. type: =item
-#: dh_installdirs:40
+#: dh_installdirs:54
+msgid "B<--create-in-sourcedir>, B<--no-create-in-sourcedir>"
+msgstr "B<--create-in-sourcedir>, B<--no-create-in-sourcedir>"
+
+#. type: textblock
+#: dh_installdirs:56
+msgid ""
+"Whether to create the specified directories in the source directory (usually "
+"F<debian/tmp>) I<in addition to> in the package build directory (usually F<< "
+"debian/I<package> >>)."
+msgstr ""
+"Ou para criar os directórios especificados no directório fonte (geralmente "
+"F<debian/tmp>) I<em adição para> no directório de compilação do pacote "
+"(geralmente F<< debian/I<package> >>)."
+
+#. type: textblock
+#: dh_installdirs:60
+msgid "The default is B<--no-create-in-sourcedir>."
+msgstr "A predefinição é B<--no-create-in-sourcedir>."
+
+#. type: textblock
+#: dh_installdirs:64
+msgid ""
+"Consider I<dir> the source directory for the packages acted on instead of "
+"the default (which is usually F<debian/tmp>)."
+msgstr ""
+"Considera I<dir> o directório fonte para os pacotes em actuação em vez da "
+"predefinição (que geralmente é F<debian/tmp>)."
+
+#. type: textblock
+#: dh_installdirs:67
+msgid ""
+"Please note that this option is dependent on the B<--create-in-sourcedir> "
+"option (when B<--no-create-in-sourcedir> is in effect, this option does "
+"nothing in B<dh_installdirs>)."
+msgstr ""
+"Por favor note que esta opção é dependente da opção B<--create-in-sourcedir> "
+"(quando B<--no-create-in-sourcedir> está em efeito, esta opção não faz nada "
+"em B<dh_installdirs>)."
+
+#. type: =item
+#: dh_installdirs:71
msgid "I<dir> ..."
msgstr "I<dir> ..."
#. type: textblock
-#: dh_installdirs:42
+#: dh_installdirs:73
msgid ""
"Create these directories in the package build directory of the first package "
"acted on. (Or in all packages if B<-A> is specified.)"
@@ -4380,13 +8558,13 @@ msgstr ""
"pacote em que actua. (Ou em todos os pacotes se for especificado B<-A>.)"
#. type: textblock
-#: dh_installdocs:5
+#: dh_installdocs:7
msgid "dh_installdocs - install documentation into package build directories"
msgstr ""
"dh_installdocs - instala documentação em directórios de compilação de pacotes"
#. type: textblock
-#: dh_installdocs:14
+#: dh_installdocs:19
msgid ""
"B<dh_installdocs> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
"[S<I<file> ...>]"
@@ -4395,7 +8573,7 @@ msgstr ""
"[S<I<ficheiro> ...>]"
#. type: textblock
-#: dh_installdocs:18
+#: dh_installdocs:23
msgid ""
"B<dh_installdocs> is a debhelper program that is responsible for installing "
"documentation into F<usr/share/doc/package> in package build directories."
@@ -4404,23 +8582,62 @@ msgstr ""
"documentação em F<usr/share/doc/package> nos directórios de compilação de "
"pacotes."
+#. type: textblock
+#: dh_installdocs:26
+msgid ""
+"In compat 10 and earlier, L<dh_install(1)> may be a better tool for handling "
+"the upstream documentation, when upstream's own build system installs all "
+"the desired documentation correctly. In this case, B<dh_installdocs> is "
+"still useful for installing packaging related documentation (e.g. the "
+"F<debian/copyright> file)."
+msgstr ""
+"Em compatibilidade 10 e anterior, L<dh_install(1)> pode ser a melhor "
+"ferramenta para lidar com a documentação do autor, quando o sistema de "
+"compilação próprio do autor instala toda a documentação desejada "
+"correctamente Neste caso, o B<dh_installdocs> ainda é útil para instalar "
+"documentação relacionada com o empacotamento (ex. o ficheiro F<debian/"
+"copyright>)."
+
+#. type: textblock
+#: dh_installdocs:31 dh_installexamples:27 dh_installinfo:24 dh_installman:69
+msgid ""
+"From debhelper compatibility level 11 on, B<dh_install> will fall back to "
+"looking in F<debian/tmp> for files, if it does not find them in the current "
+"directory (or wherever you've told it to look using B<--sourcedir>)."
+msgstr ""
+"Desde nível de compatibilidade 11 do debhelper em diante, o B<dh_install> "
+"irá procurar os ficheiros em F<debian/tmp>, se não os encontrar no "
+"directório actual (ou onde você o mandou procurar usando B<--sourcedir>)."
+
+#. type: textblock
+#: dh_installdocs:35
+msgid ""
+"In compat 11 and later, B<dh_installdocs> offers many of the features that "
+"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 ""
+"Em compatibilidade 11 e posterior, B<dh_installdocs> oferece muitas das "
+"características que o L<dh_install(1)> também tem. Mais ainda, o "
+"B<dh_installdocs> também suporta o perfil de compilação B<nodoc> para "
+"excluir documentação (independentemente do nível de compatibilidade)."
+
#. type: =item
-#: dh_installdocs:25
+#: dh_installdocs:44
msgid "debian/I<package>.docs"
msgstr "debian/I<pacote>.docs"
#. type: textblock
-#: dh_installdocs:27
+#: dh_installdocs:46
msgid "List documentation files to be installed into I<package>."
msgstr "Lista os ficheiros de documentação a serem instalados em I<pacote>."
#. type: =item
-#: dh_installdocs:29
+#: dh_installdocs:51
msgid "F<debian/copyright>"
msgstr "F<debian/copyright>"
#. type: textblock
-#: dh_installdocs:31
+#: dh_installdocs:53
msgid ""
"The copyright file is installed into all packages, unless a more specific "
"copyright file is available."
@@ -4429,22 +8646,22 @@ msgstr ""
"disponível um ficheiro de copyright mais específico."
#. type: =item
-#: dh_installdocs:34
+#: dh_installdocs:56
msgid "debian/I<package>.copyright"
msgstr "debian/I<pacote>.copyright"
#. type: =item
-#: dh_installdocs:36
+#: dh_installdocs:58
msgid "debian/I<package>.README.Debian"
msgstr "debian/I<pacote>.README.Debian"
#. type: =item
-#: dh_installdocs:38
+#: dh_installdocs:60
msgid "debian/I<package>.TODO"
msgstr "debian/I<pacote>.TODO"
#. type: textblock
-#: dh_installdocs:40
+#: dh_installdocs:62
msgid ""
"Each of these files is automatically installed if present for a I<package>."
msgstr ""
@@ -4452,17 +8669,17 @@ msgstr ""
"I<pacote>."
#. type: =item
-#: dh_installdocs:43
+#: dh_installdocs:65
msgid "F<debian/README.Debian>"
msgstr "F<debian/README.Debian>"
#. type: =item
-#: dh_installdocs:45
+#: dh_installdocs:67
msgid "F<debian/TODO>"
msgstr "F<debian/TODO>"
#. type: textblock
-#: dh_installdocs:47
+#: dh_installdocs:69
msgid ""
"These files are installed into the first binary package listed in debian/"
"control."
@@ -4471,7 +8688,7 @@ msgstr ""
"control."
#. type: textblock
-#: dh_installdocs:50
+#: dh_installdocs:72
msgid ""
"Note that F<README.debian> files are also installed as F<README.Debian>, and "
"F<TODO> files will be installed as F<TODO.Debian> in non-native packages."
@@ -4481,12 +8698,12 @@ msgstr ""
"pacotes não nativos."
#. type: =item
-#: dh_installdocs:53
+#: dh_installdocs:75
msgid "debian/I<package>.doc-base"
msgstr "debian/I<pacote>.doc-base"
#. type: textblock
-#: dh_installdocs:55
+#: dh_installdocs:77
msgid ""
"Installed as doc-base control files. Note that the doc-id will be determined "
"from the B<Document:> entry in the doc-base control file in question. In the "
@@ -4501,12 +8718,12 @@ msgstr ""
"base/package em vez de usr/share/doc-base/doc-id."
#. type: =item
-#: dh_installdocs:61
+#: dh_installdocs:83
msgid "debian/I<package>.doc-base.*"
msgstr "debian/I<pacote>.doc-base.*"
#. type: textblock
-#: dh_installdocs:63
+#: dh_installdocs:85
msgid ""
"If your package needs to register more than one document, you need multiple "
"doc-base files, and can name them like this. In the event that multiple doc-"
@@ -4515,13 +8732,29 @@ msgid ""
"doc-base/doc-id."
msgstr ""
"Se o seu pacote precisa de registar mais do que um documento, você precisa "
-"de vários ficheiros baseados em doc, e pode nomeá-los desta maneira. Na "
+"de vários ficheiros baseados em doc, e pode-os nomear desta maneira. Na "
"eventualidade de vários ficheiros baseados em doc deste estilo num único "
"pacote fonte partilharem o mesmo doc-id, serão instalados em usr/share/doc-"
"base/package-* em vez de usr/share/doc-base/doc-id."
#. type: textblock
-#: dh_installdocs:77 dh_installinfo:37 dh_installman:67
+#: dh_installdocs:91
+msgid ""
+"Please be aware that this deduplication is currently done in memory only, so "
+"for now it requires B<dh_installdocs> to be called no more than once during "
+"the package build. Calling B<dh_installdocs -p>I<package> in combination "
+"with using F<debian/>I<package>F<.doc-base.*> files can lead to "
+"uninstallable packages. See L<https://bugs.debian.org/980903> for details."
+msgstr ""
+"Por favor tenha atenção que esta de-duplicação é actualmente feita apenas em "
+"memória, assim por agora requer o B<dh_installdocs> seja chamado não mais do "
+"que uma vez durante a compilação do pacote. Chamar B<dh_installdocs -"
+"p>I<package> em combinação com o uso de ficheiros F<debian/>I<package>F<.doc-"
+"base.*> pode levar a pacotes não instaláveis. Veja L<https://bugs.debian."
+"org/980903> para detalhes."
+
+#. type: textblock
+#: dh_installdocs:106 dh_installinfo:47 dh_installman:92
msgid ""
"Install all files specified by command line parameters in ALL packages acted "
"on."
@@ -4530,7 +8763,7 @@ msgstr ""
"comandos em TODOS os pacotes em que actua."
#. type: textblock
-#: dh_installdocs:82
+#: dh_installdocs:111
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"installed. Note that this includes doc-base files."
@@ -4538,13 +8771,86 @@ msgstr ""
"Exclui da instalação ficheiros que contenham I<item> em qualquer ponto do "
"seu nome de ficheiro. Note que isto inclui ficheiros baseados em doc."
+#. type: textblock
+#: dh_installdocs:116 dh_installexamples:59 dh_installinfo:52 dh_installman:102
+msgid ""
+"Look in the specified directory for files to be installed. This option "
+"requires compat 11 or later (it is silently ignored in compat 10 or earlier)."
+msgstr ""
+"Procura no directório especificado por ficheiros para serem instalados. Esta "
+"opção requer compatibilidade 11 ou posterior (é ignorada em silêncio na "
+"compatibilidade 10 ou anterior)."
+
+#. type: textblock
+#: dh_installdocs:119 dh_installman:105
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installman> automatically looks for files in F<debian/tmp> in debhelper "
+"compatibility level 11 and above."
+msgstr ""
+"Note que isto não é o mesmo que a opção B<--sourcedirectory> usada pelos "
+"comandos B<dh_auto_>I<*>. Você raramente vai precisar de usar esta opção, "
+"pois o B<dh_installman> procura automaticamente por ficheiros em F<debian/"
+"tmp> no nível de compatibilidade 11 e superiores do debhelper."
+
#. type: =item
-#: dh_installdocs:85
+#: dh_installdocs:124 dh_installexamples:67
+msgid "B<--doc-main-package=>I<main-package>"
+msgstr "B<--doc-main-package=>I<main-package>"
+
+#. type: textblock
+#: dh_installdocs:126 dh_installexamples:69
+msgid ""
+"Set the main package for a documentation package. This is used to install "
+"the documentation of the documentation package in F<< /usr/share/doc/I<main-"
+"package> >> as recommended by the Debian policy manual 3.9.7 in §12.3."
+msgstr ""
+"Define o pacote principal para pacote de documentação. Isto é usado para a "
+"documentação do pacote de documentação em F<< /usr/share/doc/I<main-package> "
+">> como recomendado pelo manual de políticas Debian 3.9.7 em §12.3."
+
+#. type: textblock
+#: dh_installdocs:131 dh_installexamples:74
+msgid ""
+"In compat 11 (or later), this option is only useful if debhelper's auto-"
+"detection of the main package is wrong. The option can also be used to "
+"silence a warning from debhelper when the auto-detection fails but the "
+"default happens to be correct."
+msgstr ""
+"Em compatibilidade 11 (ou posterior), esta opção apenas é útil se a auto-"
+"detecção do debhelper do pacote principal está errada. A opção também pode "
+"ser usada para silenciar um aviso do debhelper quando a auto-detecção falha "
+"mas acontece a predefinição estar correcta."
+
+#. type: textblock
+#: dh_installdocs:136
+msgid ""
+"This option cannot be used when B<dh_installdocs> is instructed to act on "
+"multiple packages. If you need this option, you will generally need to "
+"combine it with B<-p> to ensure exactly one package is acted on."
+msgstr ""
+"Esta opção não pode ser usada quando o B<dh_installdocs> é instruído a "
+"actuar em múltiplos pacotes. Se precisar desta opção, você irá geralmente "
+"precisar de combina-la com B<-p> para assegurar exactamente que um pacote é "
+"actuado."
+
+#. type: textblock
+#: dh_installdocs:141
+msgid ""
+"Please keep in mind that some documentation (the copyright file, README."
+"Debian, etc.) will be unaffected by this option."
+msgstr ""
+"Por favor tenha em mente que alguma documentação (o ficheiro de copyright, "
+"README.Debian, etc.) não serão afectados por esta opção."
+
+#. type: =item
+#: dh_installdocs:144
msgid "B<--link-doc=>I<package>"
msgstr "B<--link-doc=>I<pacote>"
#. type: textblock
-#: dh_installdocs:87
+#: dh_installdocs:146
msgid ""
"Make the documentation directory of all packages acted on be a symlink to "
"the documentation directory of I<package>. This has no effect when acting on "
@@ -4560,7 +8866,7 @@ msgstr ""
"um pacote binário que vem do mesmo pacote fonte."
#. type: textblock
-#: dh_installdocs:93
+#: dh_installdocs:152
msgid ""
"debhelper will try to avoid installing files into linked documentation "
"directories that would cause conflicts with the linked package. The B<-A> "
@@ -4569,13 +8875,13 @@ msgid ""
"files will not be installed."
msgstr ""
"O debhelper irá tentar evitar instalar ficheiros em directórios de "
-"documentação \"linkados\" que poderão causar conflitos com o pacotes "
-"\"linkado\". A opção B<-A> não terá nenhum efeito em pacotes com directórios "
-"de documentação \"linkados\", e os ficheiros F<copyright>, F<changelog>, "
-"F<README.Debian>, e F<TODO> não serão instalados."
+"documentação vinculados que poderão causar conflitos com o pacote vinculado. "
+"A opção B<-A> não terá nenhum efeito em pacotes com directórios de "
+"documentação vinculados, e os ficheiros F<copyright>, F<changelog>, F<README."
+"Debian>, e F<TODO> não serão instalados."
#. type: textblock
-#: dh_installdocs:99
+#: dh_installdocs:158
msgid ""
"(An older method to accomplish the same thing, which is still supported, is "
"to make the documentation directory of a package be a dangling symlink, "
@@ -4586,7 +8892,58 @@ msgstr ""
"de chamar o B<dh_installdocs>.)"
#. type: textblock
-#: dh_installdocs:105
+#: dh_installdocs:162
+msgid ""
+"Please note that this option only applies to the documentation directory for "
+"the package itself. When the package ships documentation for another "
+"package (e.g. see B<--doc-main-package>), it will not use a symlink for the "
+"documentation of the other package."
+msgstr ""
+"Por favor note que esta opção apenas é aplicada ao directório de "
+"documentação para o próprio pacote. Quando o pacote embarca documentação "
+"para outro pacote (ex. veja B<--doc-main-package>), não irá usar um link "
+"simbólico para a documentação do outro pacote."
+
+#. type: textblock
+#: dh_installdocs:168
+msgid ""
+"B<CAVEAT 1>: If a previous version of the package was built without this "
+"option and is now built with it (or vice-versa), it requires a \"dir to "
+"symlink\" (or \"symlink to dir\") migration. Since debhelper has no "
+"knowledge of previous versions, you have to enable this migration itself."
+msgstr ""
+"B<CAVEAT 1>: Se uma versão anterior do pacote foi compilada sem esta opção e "
+"for agora compilada com ela (ou vice-versa), precisa de uma migração de dir "
+"para symlink\" (ou de \"symlink para dir\"). Como o debhelper não tem "
+"conhecimento das versões anteriores, você terá que ser o próprio a activar "
+"esta migração."
+
+#. type: textblock
+#: dh_installdocs:174
+msgid ""
+"This can be done by providing a \"debian/I<package>.maintscript\" file and "
+"using L<dh_installdeb(1)> to provide the relevant maintainer script snippets."
+msgstr ""
+"Isto pode ser feito ao fornecer um ficheiro \"debian/I<pacote>.maintscript\" "
+"e usar o L<dh_installdeb(1)> para fornecer os fragmentos relevantes do "
+"script do maintainer."
+
+#. type: textblock
+#: dh_installdocs:178
+msgid ""
+"B<CAVEAT 2>: The use of B<--link-doc> should only be done when the packages "
+"have same \"architecture\" type. A link from an architecture independent "
+"package to an architecture dependent package (or vice versa) will not work. "
+"Since compat 10, debhelper will actively reject unsupported combinations."
+msgstr ""
+"B<CAVEAT 2>: O uso de B<--link-doc> apenas deve ser feito quando os pacotes "
+"têm o mesmo tipo de \"arquitectura\". Um link de um pacote independente de "
+"uma arquitectura para um pacote depende de uma arquitectura (ou vice-versa) "
+"não irá funcionar. Desde compatibilidade 10, o debhelper irá rejeitar "
+"activamente combinações não suportadas."
+
+#. type: textblock
+#: dh_installdocs:186
msgid ""
"Install these files as documentation into the first package acted on. (Or in "
"all packages if B<-A> is specified)."
@@ -4595,12 +8952,12 @@ msgstr ""
"actua. (Ou em todos os pacotes se for especificado B<-A>)."
#. type: textblock
-#: dh_installdocs:112
+#: dh_installdocs:193
msgid "This is an example of a F<debian/package.docs> file:"
msgstr "Este é um exemplo de um ficheiro F<debian/package.docs>:"
#. type: verbatim
-#: dh_installdocs:114
+#: dh_installdocs:195
#, no-wrap
msgid ""
" README\n"
@@ -4620,7 +8977,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh_installdocs:123
+#: dh_installdocs:204
msgid ""
"Note that B<dh_installdocs> will happily copy entire directory hierarchies "
"if you ask it to (similar to B<cp -a>). If it is asked to install a "
@@ -4637,7 +8994,7 @@ msgid "dh_installemacsen - register an Emacs add on package"
msgstr "dh_installemacsen - regista uma adição Emacs no pacote"
#. type: textblock
-#: dh_installemacsen:14
+#: dh_installemacsen:17
msgid ""
"B<dh_installemacsen> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
"[B<--flavor=>I<foo>]"
@@ -4646,7 +9003,7 @@ msgstr ""
"[B<--flavor=>I<foo>]"
#. type: textblock
-#: dh_installemacsen:18
+#: dh_installemacsen:21
msgid ""
"B<dh_installemacsen> is a debhelper program that is responsible for "
"installing files used by the Debian B<emacsen-common> package into package "
@@ -4657,7 +9014,7 @@ msgstr ""
"compilação de pacotes."
#. type: textblock
-#: dh_installemacsen:22
+#: dh_installemacsen:25
msgid ""
"It also automatically generates the F<preinst> F<postinst> and F<prerm> "
"commands needed to register a package as an Emacs add on package. The "
@@ -4666,16 +9023,16 @@ msgid ""
msgstr ""
"Também gera automaticamente os comandos F<preinst> F<postinst> e F<prerm> "
"necessários para registar um pacote como uma adição Emacs no pacote. Os "
-"comandos são adicionados ao script do mantenedor pelo B<dh_installdeb>. Veja "
+"comandos são adicionados ao script do maintainer pelo B<dh_installdeb>. Veja "
"L<dh_installdeb(1)> para uma explicação de como isto funciona."
#. type: =item
-#: dh_installemacsen:31
+#: dh_installemacsen:34
msgid "debian/I<package>.emacsen-compat"
msgstr "debian/I<pacote>.emacsen-compat"
#. type: textblock
-#: dh_installemacsen:33
+#: dh_installemacsen:36
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/compat/package> in the "
"package build directory."
@@ -4684,12 +9041,12 @@ msgstr ""
"de compilação do pacote."
#. type: =item
-#: dh_installemacsen:36
+#: dh_installemacsen:39
msgid "debian/I<package>.emacsen-install"
msgstr "debian/I<pacote>.emacsen-install"
#. type: textblock
-#: dh_installemacsen:38
+#: dh_installemacsen:41
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/install/package> in the "
"package build directory."
@@ -4698,12 +9055,12 @@ msgstr ""
"directório de compilação do pacote."
#. type: =item
-#: dh_installemacsen:41
+#: dh_installemacsen:44
msgid "debian/I<package>.emacsen-remove"
msgstr "debian/I<pacote>.emacsen-remove"
#. type: textblock
-#: dh_installemacsen:43
+#: dh_installemacsen:46
msgid ""
"Installed into F<usr/lib/emacsen-common/packages/remove/package> in the "
"package build directory."
@@ -4712,12 +9069,12 @@ msgstr ""
"de compilação do pacote."
#. type: =item
-#: dh_installemacsen:46
+#: dh_installemacsen:49
msgid "debian/I<package>.emacsen-startup"
msgstr "debian/I<pacote>.emacsen-startup"
#. type: textblock
-#: dh_installemacsen:48
+#: dh_installemacsen:51
msgid ""
"Installed into etc/emacs/site-start.d/50I<package>.el in the package build "
"directory. Use B<--priority> to use a different priority than 50."
@@ -4727,29 +9084,29 @@ msgstr ""
"de 50."
#. type: textblock
-#: dh_installemacsen:59 dh_usrlocal:45
+#: dh_installemacsen:62 dh_usrlocal:56
msgid "Do not modify F<postinst>/F<prerm> scripts."
msgstr "Não modifique os scripts F<postinst>/F<prerm>."
#. type: =item
-#: dh_installemacsen:61 dh_installwm:38
+#: dh_installemacsen:64 dh_installwm:45
msgid "B<--priority=>I<n>"
msgstr "B<--priority=>I<n>"
#. type: textblock
-#: dh_installemacsen:63
+#: dh_installemacsen:66
msgid "Sets the priority number of a F<site-start.d> file. Default is 50."
msgstr ""
"Define o número de prioridade de um ficheiro F<site-start.d>. O valor "
"predefinido é 50."
#. type: =item
-#: dh_installemacsen:65
+#: dh_installemacsen:68
msgid "B<--flavor=>I<foo>"
msgstr "B<--flavor=>I<foo>"
#. type: textblock
-#: dh_installemacsen:67
+#: dh_installemacsen:70
msgid ""
"Sets the flavor a F<site-start.d> file will be installed in. Default is "
"B<emacs>, alternatives include B<xemacs> and B<emacs20>."
@@ -4758,13 +9115,13 @@ msgstr ""
"predefinição é B<emacs>, as alternativas incluem B<xemacs> e B<emacs20>."
#. type: textblock
-#: dh_installemacsen:143
+#: 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>"
#. type: textblock
-#: dh_installexamples:5
+#: dh_installexamples:7
msgid ""
"dh_installexamples - install example files into package build directories"
msgstr ""
@@ -4772,7 +9129,7 @@ msgstr ""
"de pacotes"
#. type: textblock
-#: dh_installexamples:14
+#: dh_installexamples:19
msgid ""
"B<dh_installexamples> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] "
"[S<I<file> ...>]"
@@ -4781,7 +9138,7 @@ msgstr ""
"[S<I<ficheiro> ...>]"
#. type: textblock
-#: dh_installexamples:18
+#: dh_installexamples:23
msgid ""
"B<dh_installexamples> is a debhelper program that is responsible for "
"installing examples into F<usr/share/doc/package/examples> in package build "
@@ -4792,17 +9149,30 @@ msgstr ""
"de pacotes."
#. type: =item
-#: dh_installexamples:26
+#: dh_installexamples:35
msgid "debian/I<package>.examples"
msgstr "debian/I<pacote>.examples"
#. type: textblock
-#: dh_installexamples:28
+#: dh_installexamples:37
msgid "Lists example files or directories to be installed."
msgstr "Lista ficheiros ou directórios exemplo para serem instalados."
#. type: textblock
-#: dh_installexamples:38
+#: dh_installexamples:39
+msgid ""
+"If upstream provides an F<examples> directory, you will often want to use "
+"B<examples/*> rather than B<examples> in this file. The latter would create "
+"F<< /usr/share/doc/I<package>/examples/examples >>, which is rarely what you "
+"want."
+msgstr ""
+"Se o autor fornecer um directório F<examples>, você vai muitas vezes querer "
+"usar B<examples/*> em vez de B<examples> neste ficheiro. O posterior irá "
+"criar F<< /usr/share/doc/I<pacote>/examples/examples >>, o que raramente é o "
+"que você quer."
+
+#. type: textblock
+#: dh_installexamples:54
msgid ""
"Install any files specified by command line parameters in ALL packages acted "
"on."
@@ -4811,7 +9181,41 @@ msgstr ""
"comandos em TODOS os pacotes em que actua."
#. type: textblock
-#: dh_installexamples:48
+#: dh_installexamples:62
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installexamples> automatically looks for files in F<debian/tmp> in "
+"debhelper compatibility level 11 and above."
+msgstr ""
+"Note que isto não é o mesmo que a opção B<--sourcedirectory> usada pelos "
+"comandos B<dh_auto_>I<*>. Você raramente vai precisar de usar esta opção, "
+"pois o B<dh_installexamples> procura automaticamente por ficheiros em "
+"F<debian/tmp> no nível de compatibilidade 11 e superiores do debhelper."
+
+#. type: textblock
+#: dh_installexamples:79
+msgid ""
+"This option cannot be used when B<dh_installexamples> is instructed to act "
+"on multiple packages. If you need this option, you will generally need to "
+"combine it with B<-p> to ensure exactly one package is acted on."
+msgstr ""
+"Esta opção não pode ser usada quando B<dh_installexamples> é instruído para "
+"actuar em múltiplos pacotes. Se precisar desta opção, você irá geralmente "
+"precisar de combina-la com B<-p> para assegurar exactamente que um pacote é "
+"actuado."
+
+#. type: textblock
+#: dh_installexamples:86
+msgid ""
+"Exclude files that contain I<item> anywhere in their filename from being "
+"installed."
+msgstr ""
+"Exclui de serem instalados ficheiros que tenham I<item> em qualquer ponto no "
+"seu nome de ficheiro."
+
+#. type: textblock
+#: dh_installexamples:91
msgid ""
"Install these files (or directories) as examples into the first package "
"acted on. (Or into all packages if B<-A> is specified.)"
@@ -4820,7 +9224,7 @@ msgstr ""
"que actua. (Ou em todos os pacotes se for especificado B<-A>)."
#. type: textblock
-#: dh_installexamples:55
+#: dh_installexamples:98
msgid ""
"Note that B<dh_installexamples> will happily copy entire directory "
"hierarchies if you ask it to (similar to B<cp -a>). If it is asked to "
@@ -4837,12 +9241,12 @@ msgid "dh_installifupdown - install if-up and if-down hooks"
msgstr "dh_installifupdown - instala os hooks if-up e if-down"
#. type: textblock
-#: dh_installifupdown:14
+#: dh_installifupdown:17
msgid "B<dh_installifupdown> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr "B<dh_installifupdown> [S<I<debhelper opções>>] [B<--name=>I<nome>]"
#. type: textblock
-#: dh_installifupdown:18
+#: dh_installifupdown:21
msgid ""
"B<dh_installifupdown> is a debhelper program that is responsible for "
"installing F<if-up>, F<if-down>, F<if-pre-up>, and F<if-post-down> hook "
@@ -4853,27 +9257,27 @@ msgstr ""
"directórios de compilação de pacotes"
#. type: =item
-#: dh_installifupdown:26
+#: dh_installifupdown:29
msgid "debian/I<package>.if-up"
msgstr "debian/I<pacote>.if-up"
#. type: =item
-#: dh_installifupdown:28
+#: dh_installifupdown:31
msgid "debian/I<package>.if-down"
msgstr "debian/I<pacote>.if-down"
#. type: =item
-#: dh_installifupdown:30
+#: dh_installifupdown:33
msgid "debian/I<package>.if-pre-up"
msgstr "debian/I<pacote>.if-pre-up"
#. type: =item
-#: dh_installifupdown:32
+#: dh_installifupdown:35
msgid "debian/I<package>.if-post-down"
msgstr "debian/I<pacote>.if-post-down"
#. type: textblock
-#: dh_installifupdown:34
+#: dh_installifupdown:37
msgid ""
"These files are installed into etc/network/if-*.d/I<package> in the package "
"build directory."
@@ -4882,7 +9286,7 @@ msgstr ""
"de compilação do pacote."
#. type: textblock
-#: dh_installifupdown:45
+#: dh_installifupdown:48
msgid ""
"Look for files named F<debian/package.name.if-*> and install them as F<etc/"
"network/if-*/name>, instead of using the usual files and installing them as "
@@ -4898,13 +9302,13 @@ msgid "dh_installinfo - install info files"
msgstr "dh_installinfo - instala ficheiros info"
#. type: textblock
-#: dh_installinfo:14
+#: dh_installinfo:17
msgid "B<dh_installinfo> [S<I<debhelper options>>] [B<-A>] [S<I<file> ...>]"
msgstr ""
"B<dh_installinfo> [S<I<debhelper opções>>] [B<-A>] [S<I<ficheiro> ...>]"
#. type: textblock
-#: dh_installinfo:18
+#: dh_installinfo:21
msgid ""
"B<dh_installinfo> is a debhelper program that is responsible for installing "
"info files into F<usr/share/info> in the package build directory."
@@ -4913,17 +9317,30 @@ msgstr ""
"ficheiros info em F<usr/share/info> no directório de compilação do pacote."
#. type: =item
-#: dh_installinfo:25
+#: dh_installinfo:32
msgid "debian/I<package>.info"
msgstr "debian/I<pacote>.info"
#. type: textblock
-#: dh_installinfo:27
+#: dh_installinfo:34
msgid "List info files to be installed."
msgstr "Lista ficheiros info a serem instalados."
#. type: textblock
-#: dh_installinfo:42
+#: dh_installinfo:55
+msgid ""
+"Note that this is not the same as the B<--sourcedirectory> option used by "
+"the B<dh_auto_>I<*> commands. You rarely need to use this option, since "
+"B<dh_installinfo> automatically looks for files in F<debian/tmp> in "
+"debhelper compatibility level 11 and above."
+msgstr ""
+"Note que isto não é o mesmo que a opção B<--sourcedirectory> usada pelos "
+"comandos B<dh_auto_>I<*>. Você raramente vai precisar de usar esta opção, "
+"pois o B<dh_installinfo> procura automaticamente por ficheiros em F<debian/"
+"tmp> no nível de compatibilidade 11 e superiores do debhelper."
+
+#. type: textblock
+#: dh_installinfo:62
msgid ""
"Install these info files into the first package acted on. (Or in all "
"packages if B<-A> is specified)."
@@ -4940,7 +9357,7 @@ msgstr ""
"de compilação de pacotes"
#. type: textblock
-#: dh_installinit:15
+#: dh_installinit:18
msgid ""
"B<dh_installinit> [S<I<debhelper options>>] [B<--name=>I<name>] [B<-n>] [B<-"
"R>] [B<-r>] [B<-d>] [S<B<--> I<params>>]"
@@ -4949,19 +9366,27 @@ msgstr ""
"R>] [B<-r>] [B<-d>] [S<B<--> I<params>>]"
#. type: textblock
-#: dh_installinit:19
+#: dh_installinit:22
msgid ""
"B<dh_installinit> is a debhelper program that is responsible for installing "
-"init scripts with associated defaults files, as well as upstart job files, "
-"and systemd service files into package build directories."
+"init scripts with associated defaults files. In compatibility levels up to "
+"and including 10, B<dh_installinit> will also install some systemd related "
+"files provided by the debian packaging (see the L</FILES> section below). "
+"In compatibility levels up to and including 11, B<dh_installinit> will also "
+"handle upstart jobs provided in the debian packaging (see the L</FILES> for "
+"more information on this as well)."
msgstr ""
"B<dh_installinit> é um programa debhelper que é responsável por instalar "
-"scripts init com os ficheiros de predefinições associados, assim como "
-"ficheiros de trabalhos upstart, e ficheiros de serviço do systemd em "
-"directórios de compilação de pacotes."
+"scripts init com os ficheiros de predefinições associados. Em níveis de "
+"compatibilidade até, e incluindo, 10, B<dh_installinit> ira também instalar "
+"alguns ficheiros relacionados com o systemd fornecidos pelo empacotamento "
+"debian (veja a secção L</FICHEIROS> em baixo). Em níveis de compatibilidade "
+"até, e incluindo, 11, B<dh_installinit> irá também lidar com trabalhos de "
+"arranque fornecidos pelo empacotamento debian (veja L</FICHEIROS> para mais "
+"informação sobre isto também)."
#. type: textblock
-#: dh_installinit:23
+#: dh_installinit:31
msgid ""
"It also automatically generates the F<postinst> and F<postrm> and F<prerm> "
"commands needed to set up the symlinks in F</etc/rc*.d/> to start and stop "
@@ -4971,13 +9396,27 @@ msgstr ""
"necessários para definir os links simbólicos em F</etc/rc*.d/> para iniciar "
"e parar os scripts init."
+#. type: textblock
+#: dh_installinit:35
+msgid ""
+"In compat 10 or earlier: If a package only ships a systemd service file and "
+"no sysvinit script is provided, you may want to exclude the call to "
+"dh_installinit for that package (e.g. via B<-N>). Otherwise, you may get "
+"warnings from lintian about init.d scripts not being included in the package."
+msgstr ""
+"Em compatibilidade 10 ou anterior: Se um pacote apenas embarcar um ficheiro "
+"de serviço do systemd e não for disponibilizado nenhum script de sysvinit, "
+"você pode querer excluir a chamada ao dh_installinit para esse pacote (ex. "
+"via B<-N>). Caso contrário, você pode obter avisos do lintian acerca de "
+"scripts init.d a não serem incluídos no pacote."
+
#. type: =item
-#: dh_installinit:31
+#: dh_installinit:45
msgid "debian/I<package>.init"
msgstr "debian/I<pacote>.init"
#. type: textblock
-#: dh_installinit:33
+#: dh_installinit:47
msgid ""
"If this exists, it is installed into etc/init.d/I<package> in the package "
"build directory."
@@ -4986,12 +9425,12 @@ msgstr ""
"compilação do pacote."
#. type: =item
-#: dh_installinit:36
+#: dh_installinit:50
msgid "debian/I<package>.default"
msgstr "debian/I<pacote>.default"
#. type: textblock
-#: dh_installinit:38
+#: dh_installinit:52
msgid ""
"If this exists, it is installed into etc/default/I<package> in the package "
"build directory."
@@ -5000,56 +9439,76 @@ msgstr ""
"compilação do pacote."
#. type: =item
-#: dh_installinit:41
+#: dh_installinit:55
msgid "debian/I<package>.upstart"
msgstr "debian/I<pacote>.upstart"
#. type: textblock
-#: dh_installinit:43
+#: dh_installinit:57
msgid ""
-"If this exists, it is installed into etc/init/I<package>.conf in the package "
-"build directory."
+"In compatibility level 11, this file will trigger an error with a reminder "
+"about ensuring the proper removal of the upstart file in the previous "
+"package version. Please consider using the \"rm_conffile\" feature from "
+"L<dh_installdeb(1)> to ensure the proper removal of previous upstart files."
msgstr ""
-"Se isto existir, é instalado em etc/init/I<pacote>.conf no directório de "
-"compilação do pacote."
+"Em nível de compatibilidade 11, este ficheiro irá disparar um erro com uma "
+"lembrança para assegurar a remoção apropriada do ficheiro upstart na versão "
+"anterior do pacote. Por favor consider usar a funcionalidade \"rm_conffile\" "
+"do L<dh_installdeb(1)> para assegurar a remoção apropriada de ficheiros "
+"upstart anteriores."
+
+#. type: textblock
+#: dh_installinit:62
+msgid ""
+"In compatibility level 10, if this file exists, it is installed into etc/"
+"init/I<package>.conf in the package build directory."
+msgstr ""
+"No nível de compatibilidade 10, se este ficheiro existir, é instalado em etc/"
+"init/I<pacote>.conf no directório de compilação do pacote."
#. type: =item
-#: dh_installinit:46
+#: dh_installinit:65
msgid "debian/I<package>.service"
msgstr "debian/I<pacote>.service"
#. type: textblock
-#: dh_installinit:48
+#: dh_installinit:67
msgid ""
-"If this exists, it is installed into lib/systemd/system/I<package>.service "
-"in the package build directory."
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"service >> in the package build directory. Only used in compat levels 10 and "
+"below."
msgstr ""
-"Se isto existir, é instalado em lib/systemd/system/I<pacote>.service no "
-"directório de compilação do pacote."
+"Se isto existir, é instalado em F<< lib/systemd/system/I<pacote>.service >> "
+"no directório de compilação do pacote. Apenas usado nos níveis de "
+"compatibilidade 10 e inferiores."
#. type: =item
-#: dh_installinit:51
+#: dh_installinit:70 dh_systemd_enable:50
msgid "debian/I<package>.tmpfile"
msgstr "debian/I<pacote>.tmpfile"
#. type: textblock
-#: dh_installinit:53
+#: dh_installinit:72
msgid ""
"If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in "
-"the package build directory. (The tmpfiles.d mechanism is currently only "
-"used by systemd.)"
+"the package build directory. Only used in compat levels 10 and below."
msgstr ""
"Se isto existir, é instalado em usr/lib/tmpfiles.d/I<pacote>.conf no "
-"directório de compilação do pacote. (Actualmente o mecanismo tmpfiles.d é "
-"usado apenas pelo systemd.)"
+"directório de compilação do pacote. Apenas usado nos níveis de "
+"compatibilidade 10 e inferiores."
+
+#. type: textblock
+#: dh_installinit:83
+msgid "Do not modify F<postinst>/F<postrm>/F<prerm> scripts."
+msgstr "Não modifique os scripts F<postinst>/F<postrm>/F<prerm>."
#. type: =item
-#: dh_installinit:67
-msgid "B<-o>, B<--onlyscripts>"
-msgstr "B<-o>, B<--onlyscripts>"
+#: dh_installinit:85
+msgid "B<-o>, B<--only-scripts>"
+msgstr "B<-o>, B<--only-scripts>"
#. type: textblock
-#: dh_installinit:69
+#: dh_installinit:87
msgid ""
"Only modify F<postinst>/F<postrm>/F<prerm> scripts, do not actually install "
"any init script, default files, upstart job or systemd service file. May be "
@@ -5060,26 +9519,59 @@ msgstr ""
"realidade nenhum script de init, ficheiros predefinidos, ficheiros de "
"trabalho upstart ou serviço do systemd. Pode ser útil se o ficheiro é "
"embarcado e/ou instalado pelo autor original num modo que não deixa ser "
-"fácil deixar o B<dh_installinit> encontrá-lo."
+"fácil deixar o B<dh_installinit> encontra-lo."
+
+#. type: textblock
+#: dh_installinit:92
+msgid ""
+"B<Caveat>: This will bypass all the regular checks and I<unconditionally> "
+"modify the scripts. You will almost certainly want to use this with B<-p> "
+"to limit, which packages are affected by the call. Example:"
+msgstr ""
+"B<Caveat>: Isto irá passar ao lado de todas as verificações regulares e "
+"modificar I<incondicionalmente> os scripts. Quase de certeza que você irá "
+"querer usar isto com B<-p> para limitar quais pacotes serão afectados pela "
+"chamada. Exemplo:"
+
+#. type: verbatim
+#: dh_installinit:97
+#, no-wrap
+msgid ""
+" override_dh_installinit:\n"
+"\tdh_installinit -pfoo --only-scripts\n"
+"\tdh_installinit --remaining\n"
+"\n"
+msgstr ""
+" override_dh_installinit:\n"
+"\tdh_installinit -pfoo --only-scripts\n"
+"\tdh_installinit --remaining\n"
+"\n"
#. type: =item
-#: dh_installinit:74
+#: dh_installinit:101
msgid "B<-R>, B<--restart-after-upgrade>"
msgstr "B<-R>, B<--restart-after-upgrade>"
#. type: textblock
-#: dh_installinit:76
+#: dh_installinit:103
msgid ""
"Do not stop the init script until after the package upgrade has been "
-"completed. This is different than the default behavior, which stops the "
-"script in the F<prerm>, and starts it again in the F<postinst>."
+"completed. This is the default behaviour in compat 10."
msgstr ""
-"Não pára o script de iniciação até que a actualização do pacote estejam "
-"completa. Isto é diferente do comportamento predefinido, o qual pára o "
-"script em F<prerm>, e arranca-o de novo em F<postinst>."
+"Não para o script de iniciação até que a actualização do pacote estejam "
+"completa. Este é o comportamento predefinido no nível compatibilidade 10."
#. type: textblock
-#: dh_installinit:80
+#: dh_installinit:106
+msgid ""
+"In early compat levels, the default was to stop the script in the F<prerm>, "
+"and starts it again in the F<postinst>."
+msgstr ""
+"Nos níveis de compatibilidade anteriores, a predefinição era parar o script "
+"em F<prerm>, e depois arranca-lo de novo no F<postinst>."
+
+#. type: textblock
+#: dh_installinit:109 dh_systemd_start:45
msgid ""
"This can be useful for daemons that should not have a possibly long downtime "
"during upgrade. But you should make sure that the daemon will not get "
@@ -5092,68 +9584,160 @@ msgstr ""
"actualizado enquanto ele está a correr antes de usar esta opção."
#. type: =item
-#: dh_installinit:85
-msgid "B<-r>, B<--no-restart-on-upgrade>"
-msgstr "B<-r>, B<--no-restart-on-upgrade>"
+#: dh_installinit:114 dh_systemd_start:50
+msgid "B<--no-restart-after-upgrade>"
+msgstr "B<--no-restart-after-upgrade>"
#. type: textblock
-#: dh_installinit:87
-msgid "Do not stop init script on upgrade."
-msgstr "Não pára o script de iniciação durante uma actualização."
+#: dh_installinit:116 dh_systemd_start:52
+msgid ""
+"Undo a previous B<--restart-after-upgrade> (or the default of compat 10). "
+"If no other options are given, this will cause the service to be stopped in "
+"the F<prerm> script and started again in the F<postinst> script."
+msgstr ""
+"Desfaz um B<--restart-after-upgrade> prévio (ou a predefinição do nível de "
+"compatibilidade 10). Se não forem dadas mais opções, isto irá causar com que "
+"o serviço seja parado no script F<prerm> e arrancado de novo no script "
+"F<postinst>."
#. type: =item
-#: dh_installinit:89
+#: dh_installinit:121 dh_systemd_start:57
+msgid "B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>"
+msgstr "B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade>"
+
+#. type: textblock
+#: dh_installinit:123
+msgid ""
+"Do not stop init script on upgrade. This has the side-effect of not "
+"restarting the service as a part of the upgrade."
+msgstr ""
+"Não para o script init na actualização. Isto tem o efeito secundário de não "
+"reiniciar o serviço como parte da actualização."
+
+#. type: textblock
+#: dh_installinit:126
+msgid ""
+"If you want to restart the service with minimal downtime, please use B<--"
+"restart-after-upgrade> (default in compat 10 or later). If you want the "
+"service to be restarted but be stopped during the upgrade, then please use "
+"B<--no-restart-after-upgrade> (note the \"after-upgrade\")."
+msgstr ""
+"Se desejar reiniciar o serviço com o tempo mínimo de desligado, por favor "
+"use B<--restart-after-upgrade> (predefinido em compatibilidade 10 ou "
+"posterior). Se desejar que o serviço seja reiniciado mas que fique parado "
+"durante a actualização, então por favor use B<--no-restart-after-upgrade> "
+"(repare no \"after-upgrade\")."
+
+#. type: textblock
+#: dh_installinit:131
+msgid ""
+"Note that the B<--no-restart-on-upgrade> alias is deprecated and will be "
+"removed in compat 12. This is to avoid confusion with the B<--no-restart-"
+"after-upgrade> option. The B<--no-stop-on-upgrade> variant was introduced "
+"in debhelper 10.2 (included in Debian stretch)."
+msgstr ""
+"Note que o alias B<--no-restart-on-upgrade> está descontinuado e será também "
+"removido em compatibilidade 12. Isto serve para evitar confusão com a opção "
+"B<--no-restart-after-upgrade>. A variante B<--no-stop-on-upgrade> foi "
+"introduzida no debhelper 10.2 (incluído em Debian stretch)."
+
+#. type: =item
+#: dh_installinit:136 dh_systemd_start:61
msgid "B<--no-start>"
msgstr "B<--no-start>"
#. type: textblock
-#: dh_installinit:91
+#: dh_installinit:138
msgid ""
"Do not start the init script on install or upgrade, or stop it on removal. "
"Only call B<update-rc.d>. Useful for rcS scripts."
msgstr ""
"Não inicia o script de init durante a instalação ou actualização, ou não o "
-"pára durante a remoção. Apenas chama B<update-rc.d>. Útil para scripts rcS."
+"para durante a remoção. Apenas chama B<update-rc.d>. Útil para scripts rcS."
+
+#. type: =item
+#: dh_installinit:141 dh_systemd_enable:86
+msgid "B<--no-enable>"
+msgstr "B<--no-enable>"
+
+#. type: textblock
+#: dh_installinit:143
+msgid ""
+"Disable the init script on purge, but do not enable them on install. This "
+"implies a versioned dependency on B<< init-system-helpers (E<gt>= 1.51) >> "
+"as it is the first (functional) version that supports B<< update-rc.d "
+"E<lt>scriptE<gt> defaults-disabled >>."
+msgstr ""
+"Desactiva o script de init na purga, mas não o activa na instalação. Isto "
+"implica uma dependência baseada na versão em B<< init-system-helpers (E<gt>= "
+"1.51) >> pois é a primeira versão funcional que suporta B<< update-rc.d "
+"E<lt>scriptE<gt> defaults-disabled >>."
+
+#. type: textblock
+#: dh_installinit:148
+msgid ""
+"B<Note> that this option does not affect whether the services are started. "
+"Please remember to also use B<--no-start> if the service should not be "
+"started."
+msgstr ""
+"B<Note> que esta opção não afecta se os serviços são arrancados. Por favor "
+"lembre-se de também usar B<--no-start> se o serviço não deverá ser arrancado."
+
+#. type: textblock
+#: dh_installinit:152
+msgid ""
+"Cannot be combined with B<-u>I<params>, B<--update-rcd-params=>I<params>, or "
+"B<--> I<params>."
+msgstr ""
+"Não pode ser combinado com B<-u>I<params>, B<--update-rcd-params=>I<params>, "
+"ou B<--> I<params>."
#. type: =item
-#: dh_installinit:94
+#: dh_installinit:155
msgid "B<-d>, B<--remove-d>"
msgstr "B<-d>, B<--remove-d>"
-# FIXME s#F<etc/default/> .#F<etc/default/>.#
+# FIXME s#F<etc/default/>.#F<etc/default/>.#
#. type: textblock
-#: dh_installinit:96
+#: dh_installinit:157
msgid ""
"Remove trailing B<d> from the name of the package, and use the result for "
"the filename the upstart job file is installed as in F<etc/init/> , and for "
"the filename the init script is installed as in etc/init.d and the default "
-"file is installed as in F<etc/default/> . This may be useful for daemons "
-"with names ending in B<d>. (Note: this takes precedence over the B<--init-"
-"script> parameter described below.)"
+"file is installed as in F<etc/default/>. This may be useful for daemons with "
+"names ending in B<d>. (Note: this takes precedence over the B<--init-script> "
+"parameter described below.)"
msgstr ""
"Remove o B<d> final do nome do pacote, e usa o resultado para o nome do "
-"ficheiro de trabalho upstar que é instalado em F<etc/init/> , e para o nome "
+"ficheiro de trabalho upstart que é instalado em F<etc/init/> , e para o nome "
"do ficheiro de script de iniciação que é instalado em etc/init.d e o "
-"ficheiro predefinido é instalado em F<etc/default/> . Isto pode ser útil "
-"para daemons com nomes que terminam em B<d>. (Note: isto toma precedência "
-"sobre o parâmetro B<--init-script> descrito em baixo)."
+"ficheiro predefinido é instalado em F<etc/default/>. Isto pode ser útil para "
+"daemons com nomes que terminam em B<d>. (Note: isto toma precedência sobre o "
+"parâmetro B<--init-script> descrito em baixo)."
#. type: =item
-#: dh_installinit:103
+#: dh_installinit:164
msgid "B<-u>I<params> B<--update-rcd-params=>I<params>"
msgstr "B<-u>I<params> B<--update-rcd-params=>I<params>"
#. type: textblock
-#: dh_installinit:107
+#: dh_installinit:168
msgid ""
-"Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> will be "
-"passed to L<update-rc.d(8)>."
+"Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> (or "
+"B<defaults-disabled> with B<--no-enable>) will be passed to L<update-rc."
+"d(8)>."
msgstr ""
-"Passa I<params> para L<update-rc.d(8)>. Se não for especificado, as "
-"B<predefinições> serão passadas para L<update-rc.d(8)>."
+"Passa I<parâmetros> para L<update-rc.d(8)>. Se não especificado, B<defaults> "
+"(ou B<defaults-disabled> com B<--no-enable>) será passado para L<update-rc."
+"d(8)>."
#. type: textblock
-#: dh_installinit:112
+#: dh_installinit:172
+msgid "Cannot be combined with B<--no-enable>."
+msgstr "Não pode ser combinado com B<--no-enable>."
+
+#. type: textblock
+#: dh_installinit:176
msgid ""
"Install the init script (and default file) as well as upstart job file using "
"the filename I<name> instead of the default filename, which is the package "
@@ -5171,12 +9755,12 @@ msgstr ""
"package.upstart>."
#. type: =item
-#: dh_installinit:120
+#: dh_installinit:184
msgid "B<--init-script=>I<scriptname>"
msgstr "B<--init-script=>I<nome-do-script>"
#. type: textblock
-#: dh_installinit:122
+#: dh_installinit:186
msgid ""
"Use I<scriptname> as the filename the init script is installed as in F<etc/"
"init.d/> (and also use it as the filename for the defaults file, if it is "
@@ -5193,7 +9777,7 @@ msgstr ""
"de iniciação em preferência dos ficheiros que normalmente instala."
#. type: textblock
-#: dh_installinit:129
+#: dh_installinit:193
msgid ""
"This parameter is deprecated, use the B<--name> parameter instead. This "
"parameter is incompatible with the use of upstart jobs."
@@ -5202,12 +9786,12 @@ msgstr ""
"Este parâmetro é incompatível com o uso de tarefas upstart."
#. type: =item
-#: dh_installinit:132
+#: dh_installinit:196
msgid "B<--error-handler=>I<function>"
msgstr "B<--error-handler=>I<função>"
#. type: textblock
-#: dh_installinit:134
+#: dh_installinit:198
msgid ""
"Call the named shell I<function> if running the init script fails. The "
"function should be provided in the F<prerm> and F<postinst> scripts, before "
@@ -5215,36 +9799,129 @@ msgid ""
msgstr ""
"Chama a I<função> de shell chamada se a execução do script de iniciação "
"falhar. A função deve ser disponibilizada nos scripts F<prerm> e "
-"F<postinst>, antes do símbolo B<#DEBHELPER#>."
+"F<postinst>, antes do token B<#DEBHELPER#>."
-#. type: =head1
-#: dh_installinit:330
-msgid "AUTHORS"
-msgstr "AUTORES"
+#. type: textblock
+#: dh_installinit:415
+msgid "L<debhelper(7)>, L<dh_installsystemd(1)>"
+msgstr "L<debhelper(7)>, L<dh_installsystemd(1)>"
#. type: textblock
-#: dh_installinit:334
+#: dh_installinit:423
msgid "Steve Langasek <steve.langasek@canonical.com>"
msgstr "Steve Langasek <steve.langasek@canonical.com>"
#. type: textblock
-#: dh_installinit:336
+#: dh_installinit:425
msgid "Michael Stapelberg <stapelberg@debian.org>"
msgstr "Michael Stapelberg <stapelberg@debian.org>"
#. type: textblock
+#: dh_installinitramfs:5
+msgid "dh_installinitramfs - install initramfs hooks and setup maintscripts"
+msgstr ""
+"dh_installinitramfs - instala hooks de initramfs e scripts principais de "
+"configuração"
+
+#. type: textblock
+#: dh_installinitramfs:17
+msgid "B<dh_installinitramfs> [S<B<debhelper options>>] [B<-n>]"
+msgstr "B<dh_installinitramfs> [S<B<opções do debhelper>>] [B<-n>]"
+
+#. type: textblock
+#: dh_installinitramfs:21
+msgid ""
+"B<dh_installinitramfs> is a debhelper program that is responsible for "
+"installing Debian package provided initramfs hooks."
+msgstr ""
+"B<dh_installinitramfs> é um programa debhelper que é responsável por "
+"instalar um pacote Debian que fornece hooks de initramfs"
+
+#. type: textblock
+#: dh_installinitramfs:24
+msgid ""
+"If B<dh_installinitramfs> installs or detects one or more initramfs hooks in "
+"the package, then it also automatically generates the noawait trigger "
+"B<update-initframfs> command needed to interface with the Debian initramfs "
+"system. This trigger is inserted into the packaging by L<dh_installdeb(1)>."
+msgstr ""
+"Se o B<dh_installinitramfs> instalar ou detectar um ou mais hooks de "
+"initramfs no pacote, então também gera automaticamente o comando B<update-"
+"initframfs> trigger noawait necessário para interagir com o sistema "
+"initramfs de Debian. Este trigger é inserido no empacotamento pelo "
+"L<dh_installdeb(1)>."
+
+#. type: =item
+#: dh_installinitramfs:34
+msgid "debian/I<package>.initramfs-hook"
+msgstr "debian/I<pacote>.initramfs-hook"
+
+#. type: textblock
+#: dh_installinitramfs:36
+msgid ""
+"Assumed to be an initramfs hook that will be installed into F<< usr/share/"
+"initramfs-tools/hooks/I<package> >> in the package build directory. See "
+"B<HOOK SCRIPTS> in L<initramfs-tools(8)> for more information about "
+"initramfs hooks."
+msgstr ""
+"Assumido ser um hook de initramfs que será instalado em F<< usr/share/"
+"initramfs-tools/hooks/I<package> >> no directório de compilação do pacote. "
+"Veja B<HOOK SCRIPTS> em L<initramfs-tools(8)> para mais informação acerca de "
+"hooks de initramfs."
+
+#. type: textblock
+#: dh_installinitramfs:49
+msgid ""
+"Do not add the B<update-initramfs> trigger even if it seems like the package "
+"might need it. The option is called B<--no-scripts> for historical reasons "
+"as B<dh_installinitramfs> would previously generate maintainer scripts that "
+"called B<update-initramfs -u>."
+msgstr ""
+"Não adiciona o trigger B<update-initramfs> mesmo que parece que o pacote "
+"possa precisar dele. A opção é chamada B<--no-scripts> por razões históricas "
+"pois o B<dh_installinitramfs> antes gerava scripts do maintainer que "
+"chamavam B<update-initramfs -u>."
+
+#. type: textblock
+#: dh_installinitramfs:54
+msgid ""
+"Use this option, if you need to interface with the B<update-initramfs> "
+"system that is not satisfied by the noawait trigger (e.g. because you need "
+"the extra guarantees and head-aches of a await trigger)."
+msgstr ""
+"Use esta opção, se precisar de interagir com o sistema B<update-initramfs> "
+"que não é satisfeito pelo trigger noawait (ex. porque você precisa de extra "
+"garantias e de head-aches de um trigger await)."
+
+#. type: textblock
+#: dh_installinitramfs:62
+msgid ""
+"Note that this command is not idempotent. L<dh_prep(1)> should be called "
+"between invocations of this command. Otherwise, it may cause multiple "
+"instances of the same text to be added to triggers file."
+msgstr ""
+"Note que este comando não é idempotente. O L<dh_prep(1)> deve ser chamado "
+"entre invocações deste comando. Caso contrário, pode causar múltiplas "
+"instâncias do mesmo texto a ser adicionado ao ficheiro triggers."
+
+#. type: textblock
+#: dh_installinitramfs:93
+msgid "L<debhelper(7)> L<update-initramfs(8)> L<initramfs-tools(8)>"
+msgstr "L<debhelper(7)> L<update-initramfs(8)> L<ferramentas-de-initramfs(8)>"
+
+#. type: textblock
#: dh_installlogcheck:5
msgid "dh_installlogcheck - install logcheck rulefiles into etc/logcheck/"
msgstr ""
"dh_installlogcheck - instala ficheiros de regras do logcheck em etc/logcheck/"
#. type: textblock
-#: dh_installlogcheck:14
+#: dh_installlogcheck:17
msgid "B<dh_installlogcheck> [S<I<debhelper options>>]"
msgstr "B<dh_installlogcheck> [S<I<debhelper opções>>]"
#. type: textblock
-#: dh_installlogcheck:18
+#: dh_installlogcheck:21
msgid ""
"B<dh_installlogcheck> is a debhelper program that is responsible for "
"installing logcheck rule files."
@@ -5253,37 +9930,37 @@ msgstr ""
"ficheiros de regras de verificação de relatórios (logcheck)."
#. type: =item
-#: dh_installlogcheck:25
+#: dh_installlogcheck:28
msgid "debian/I<package>.logcheck.cracking"
msgstr "debian/I<pacote>.logcheck.cracking"
#. type: =item
-#: dh_installlogcheck:27
+#: dh_installlogcheck:30
msgid "debian/I<package>.logcheck.violations"
msgstr "debian/I<pacote>.logcheck.violations"
#. type: =item
-#: dh_installlogcheck:29
+#: dh_installlogcheck:32
msgid "debian/I<package>.logcheck.violations.ignore"
msgstr "debian/I<pacote>.logcheck.violations.ignore"
#. type: =item
-#: dh_installlogcheck:31
+#: dh_installlogcheck:34
msgid "debian/I<package>.logcheck.ignore.workstation"
msgstr "debian/I<pacote>.logcheck.ignore.workstation"
#. type: =item
-#: dh_installlogcheck:33
+#: dh_installlogcheck:36
msgid "debian/I<package>.logcheck.ignore.server"
msgstr "debian/I<pacote>.logcheck.ignore.server"
#. type: =item
-#: dh_installlogcheck:35
+#: dh_installlogcheck:38
msgid "debian/I<package>.logcheck.ignore.paranoid"
msgstr "debian/I<pacote>.logcheck.ignore.paranoid"
#. type: textblock
-#: dh_installlogcheck:37
+#: dh_installlogcheck:40
msgid ""
"Each of these files, if present, are installed into corresponding "
"subdirectories of F<etc/logcheck/> in package build directories."
@@ -5292,7 +9969,7 @@ msgstr ""
"correspondentes de F<etc/logcheck/> nos directórios de compilação de pacotes."
#. type: textblock
-#: dh_installlogcheck:48
+#: dh_installlogcheck:51
msgid ""
"Look for files named F<debian/package.name.logcheck.*> and install them into "
"the corresponding subdirectories of F<etc/logcheck/>, but use the specified "
@@ -5303,7 +9980,7 @@ msgstr ""
"especificado em vez daquele do pacote."
#. type: verbatim
-#: dh_installlogcheck:84
+#: dh_installlogcheck:85
#, no-wrap
msgid ""
"This program is a part of debhelper.\n"
@@ -5313,7 +9990,7 @@ msgstr ""
" \n"
#. type: textblock
-#: dh_installlogcheck:88
+#: dh_installlogcheck:89
msgid "Jon Middleton <jjm@debian.org>"
msgstr "Jon Middleton <jjm@debian.org>"
@@ -5323,12 +10000,12 @@ msgid "dh_installlogrotate - install logrotate config files"
msgstr "dh_installlogrotate - instala ficheiros de configuração do logrotate"
#. type: textblock
-#: dh_installlogrotate:14
+#: dh_installlogrotate:17
msgid "B<dh_installlogrotate> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr "B<dh_installlogrotate> [S<I<debhelper opções>>] [B<--name=>I<nome>]"
#. type: textblock
-#: dh_installlogrotate:18
+#: dh_installlogrotate:21
msgid ""
"B<dh_installlogrotate> is a debhelper program that is responsible for "
"installing logrotate config files into F<etc/logrotate.d> in package build "
@@ -5340,14 +10017,14 @@ msgstr ""
"F<debian/pacote.logrotate>-"
#. type: textblock
-#: dh_installlogrotate:28
+#: dh_installlogrotate:31
msgid ""
"Look for files named F<debian/package.name.logrotate> and install them as "
"F<etc/logrotate.d/name>, instead of using the usual files and installing "
"them as the package name."
msgstr ""
"Procura ficheiros chamados F<debian/nome.pacote.logrotate> e instala-os como "
-"F<etc/logrotate.d/nome>, em vez de usar os ficheiros usuais e instalá-los "
+"F<etc/logrotate.d/nome>, em vez de usar os ficheiros usuais e instala-los "
"como o nome do pacote."
#. type: textblock
@@ -5358,36 +10035,74 @@ msgstr ""
"pacotes"
#. type: textblock
-#: dh_installman:15
+#: dh_installman:18
msgid "B<dh_installman> [S<I<debhelper options>>] [S<I<manpage> ...>]"
msgstr "B<dh_installman> [S<I<debhelper opções>>] [S<I<manpage> ...>]"
#. type: textblock
-#: dh_installman:19
+#: dh_installman:22
msgid ""
"B<dh_installman> is a debhelper program that handles installing man pages "
-"into the correct locations in package build directories. You tell it what "
-"man pages go in your packages, and it figures out where to install them "
-"based on the section field in their B<.TH> or B<.Dt> line. If you have a "
-"properly formatted B<.TH> or B<.Dt> line, your man page will be installed "
-"into the right directory, with the right name (this includes proper handling "
-"of pages with a subsection, like B<3perl>, which are placed in F<man3>, and "
-"given an extension of F<.3perl>). If your B<.TH> or B<.Dt> line is incorrect "
-"or missing, the program may guess wrong based on the file extension."
-msgstr ""
-"B<dh_installman> é um programa debhelper que lida com a instalação dos "
-"manuais (páginas man) nas localizações correctas nos directórios de "
-"compilação dos pacotes. Você diz-lhe quais manuais vão para os seus pacotes, "
-"e ele descobre onde os instalar com base no campo secção na sua linha B<.TH> "
-"ou B<.Dt>. Se você tem uma linha B<.TH> ou B<.Dt> correctamente formatada, o "
-"seu manual será instalado no directório correcto, com o nome correcto (isto "
+"into the correct locations in package build directories."
+msgstr ""
+"B<dh_installman> é um programa debhelper que lida com a instalação de "
+"paginas de manual (man pages) nas localizações correctas nos directórios de "
+"compilação de pacotes."
+
+#. type: textblock
+#: dh_installman:25
+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 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 ""
+"Em compatibilidade 10 e anteriores, este programa servia principalmente para "
+"quando o sistema de compilação do autor não os instalava apropriadamente "
+"como uma parte do seu passo de instalação (ou não possuía um passo de "
+"instalação). Em compatibilidade 11 e posterior, também suporta o predefinido "
+"searchdir plus --sourcedir como dh_install(1) e tem a vantagem de respeitar "
+"o perfil de compilação nodoc (ao contrário de dh_install(1))."
+
+#. type: textblock
+#: dh_installman:32
+msgid ""
+"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 to "
+"UTF-8 and for converting F<.so> links (as described below). However, that "
+"part happens automatically without any explicit configuration."
+msgstr ""
+"Mesmo que prefira usar L<dh_install(1)> para instalar os manuais, o "
+"B<dh_installman> pode ainda ser útil para converter a codificação da pagina "
+"de manual para UTF-8 e para converter links F<.so> (como descrito abaixo). "
+"No entanto, essa parte acontece automaticamente sem nenhuma configuração "
+"explícita."
+
+#. type: textblock
+#: dh_installman:38
+msgid ""
+"You tell B<dh_installman> what man pages go in your packages, and it figures "
+"out where to install them based on the section field in their B<.TH> or B<."
+"Dt> line. If you have a properly formatted B<.TH> or B<.Dt> line, your man "
+"page will be installed into the right directory, with the right name (this "
+"includes proper handling of pages with a subsection, like B<3perl>, which "
+"are placed in F<man3>, and given an extension of F<.3perl>). If your B<.TH> "
+"or B<.Dt> line is incorrect or missing, the program may guess wrong based on "
+"the file extension."
+msgstr ""
+"Você diz ao B<dh_installman> quais manuais vão para os seus pacotes, e ele "
+"descobre onde os instalar com base no campo secção na sua linha B<.TH> ou B<."
+"Dt>. Se você tem uma linha B<.TH> ou B<.Dt> correctamente formatada, o seu "
+"manual será instalado no directório correcto, com o nome correcto (isto "
"inclui o manuseamento apropriado de páginas com uma sub-secção, como "
"B<3perl>, a qual é colocada em F<man3>, e é-lhe dada uma extensão "
"F<.3perl>). Se a sua linha B<.TH> ou B<.Dt> está incorrecta ou em falta, o "
"programa pode adivinhar errado com base na extensão do ficheiro."
#. type: textblock
-#: dh_installman:29
+#: dh_installman:47
msgid ""
"It also supports translated man pages, by looking for extensions like F<."
"ll.8> and F<.ll_LL.8>, or by use of the B<--language> switch."
@@ -5396,7 +10111,7 @@ msgstr ""
"ll_LL.8>, ou pelo uso do switch B<--language>."
#. type: textblock
-#: dh_installman:32
+#: dh_installman:50
msgid ""
"If B<dh_installman> seems to install a man page into the wrong section or "
"with the wrong extension, this is because the man page has the wrong section "
@@ -5419,7 +10134,7 @@ msgstr ""
"para evitar isto."
#. type: textblock
-#: dh_installman:42
+#: dh_installman:60
msgid ""
"After the man page installation step, B<dh_installman> will check to see if "
"any of the man pages in the temporary directories of any of the packages it "
@@ -5430,7 +10145,7 @@ msgstr ""
"actua se contêm links F<.so>. Se sim, altera-os para links simbólicos."
#. type: textblock
-#: dh_installman:46
+#: dh_installman:64
msgid ""
"Also, B<dh_installman> will use man to guess the character encoding of each "
"manual page and convert it to UTF-8. If the guesswork fails for some reason, "
@@ -5438,27 +10153,27 @@ msgid ""
"details."
msgstr ""
"O B<dh_installman> também irá usa o man para adivinhar a codificação de "
-"caracteres de cada manual e convertê-los para UTF-8. Se o trabalho de "
+"caracteres de cada manual e converte-los para UTF-8. Se o trabalho de "
"adivinhar falhar por alguma razão, você pode-o sobrepor usando uma "
"declaração de codificação. Veja L<manconv(1)> para detalhes."
#. type: =item
-#: dh_installman:55
+#: dh_installman:77
msgid "debian/I<package>.manpages"
msgstr "debian/I<pacote>.manpages"
#. type: textblock
-#: dh_installman:57
+#: dh_installman:79
msgid "Lists man pages to be installed."
msgstr "Lista os manuais (man pages) a serem instalados."
#. type: =item
-#: dh_installman:70
+#: dh_installman:95
msgid "B<--language=>I<ll>"
msgstr "B<--language=>I<ll>"
#. type: textblock
-#: dh_installman:72
+#: dh_installman:97
msgid ""
"Use this to specify that the man pages being acted on are written in the "
"specified language."
@@ -5467,12 +10182,12 @@ msgstr ""
"na linguagem especificada."
#. type: =item
-#: dh_installman:75
+#: dh_installman:110
msgid "I<manpage> ..."
msgstr "I<manpage> ..."
#. type: textblock
-#: dh_installman:77
+#: dh_installman:112
msgid ""
"Install these man pages into the first package acted on. (Or in all packages "
"if B<-A> is specified)."
@@ -5481,7 +10196,38 @@ msgstr ""
"pacotes caso for especificado B<-A>)."
#. type: textblock
-#: dh_installman:84
+#: dh_installman:119
+msgid "An example F<debian/manpages> file could look like this:"
+msgstr "Um exemplo de ficheiro F<debian/manpages> poderá parecer como isto:"
+
+#. type: verbatim
+#: dh_installman:121
+#, no-wrap
+msgid ""
+" doc/man/foo.1\n"
+" # Translations\n"
+" doc/man/foo.da.1\n"
+" doc/man/foo.de.1\n"
+" doc/man/foo.fr.1\n"
+" # NB: The following line is considered a polish translation\n"
+" # of \"foo.1\" (and not a manpage written in perl called \"foo.pl\")\n"
+" doc/man/foo.pl.1\n"
+" # ...\n"
+"\n"
+msgstr ""
+" doc/man/foo.1\n"
+" # Translations\n"
+" doc/man/foo.da.1\n"
+" doc/man/foo.de.1\n"
+" doc/man/foo.fr.1\n"
+" # NB: The following line is considered a polish translation\n"
+" # of \"foo.1\" (and not a manpage written in perl called \"foo.pl\")\n"
+" doc/man/foo.pl.1\n"
+" # ...\n"
+"\n"
+
+#. type: textblock
+#: dh_installman:133
msgid ""
"An older version of this program, L<dh_installmanpages(1)>, is still used by "
"some packages, and so is still included in debhelper. It is, however, "
@@ -5500,12 +10246,12 @@ msgstr ""
"dh_installmanpages - instalador de manuais ao estilo antigo (descontinuado)"
#. type: textblock
-#: dh_installmanpages:15
+#: dh_installmanpages:18
msgid "B<dh_installmanpages> [S<I<debhelper options>>] [S<I<file> ...>]"
msgstr "B<dh_installmanpages> [S<I<debhelper opções>>] [S<I<ficheiro> ...>]"
#. type: textblock
-#: dh_installmanpages:19
+#: dh_installmanpages:22
msgid ""
"B<dh_installmanpages> is a debhelper program that is responsible for "
"automatically installing man pages into F<usr/share/man/> in package build "
@@ -5516,7 +10262,7 @@ msgstr ""
"compilação de pacotes."
#. type: textblock
-#: dh_installmanpages:23
+#: dh_installmanpages:26
msgid ""
"This is a DWIM-style program, with an interface unlike the rest of "
"debhelper. It is deprecated, and you are encouraged to use "
@@ -5527,7 +10273,7 @@ msgstr ""
"L<dh_installman(1)>."
#. type: textblock
-#: dh_installmanpages:27
+#: dh_installmanpages:30
msgid ""
"B<dh_installmanpages> scans the current directory and all subdirectories for "
"filenames that look like man pages. (Note that only real files are looked "
@@ -5543,7 +10289,7 @@ msgstr ""
"correcto."
#. type: textblock
-#: dh_installmanpages:33
+#: dh_installmanpages:36
msgid ""
"All filenames specified as parameters will be skipped by "
"B<dh_installmanpages>. This is useful if by default it installs some man "
@@ -5554,7 +10300,7 @@ msgstr ""
"manuais que você não deseja serem instalados."
#. type: textblock
-#: dh_installmanpages:37
+#: dh_installmanpages:40
msgid ""
"After the man page installation step, B<dh_installmanpages> will check to "
"see if any of the man pages are F<.so> links. If so, it changes them to "
@@ -5565,7 +10311,7 @@ msgstr ""
"simbólicos."
#. type: textblock
-#: dh_installmanpages:46
+#: dh_installmanpages:49
msgid ""
"Do not install these files as man pages, even if they look like valid man "
"pages."
@@ -5574,12 +10320,12 @@ msgstr ""
"\"man pages\" válidas."
#. type: =head1
-#: dh_installmanpages:51
+#: dh_installmanpages:54
msgid "BUGS"
msgstr "BUGS"
#. type: textblock
-#: dh_installmanpages:53
+#: dh_installmanpages:56
msgid ""
"B<dh_installmanpages> will install the man pages it finds into B<all> "
"packages you tell it to act on, since it can't tell what package the man "
@@ -5594,12 +10340,12 @@ msgstr ""
"vez deste)."
#. type: textblock
-#: dh_installmanpages:58
+#: dh_installmanpages:61
msgid "Files ending in F<.man> will be ignored."
msgstr "Os ficheiros que terminem em F<.man> serão ignorados."
#. type: textblock
-#: dh_installmanpages:60
+#: dh_installmanpages:63
msgid ""
"Files specified as parameters that contain spaces in their filenames will "
"not be processed properly."
@@ -5616,12 +10362,12 @@ msgstr ""
"compilação de pacotes"
#. type: textblock
-#: dh_installmenu:14
+#: dh_installmenu:17
msgid "B<dh_installmenu> [S<B<debhelper options>>] [B<-n>]"
msgstr "B<dh_installmenu> [S<B<debhelper opções>>] [B<-n>]"
#. type: textblock
-#: dh_installmenu:18
+#: dh_installmenu:21
msgid ""
"B<dh_installmenu> is a debhelper program that is responsible for installing "
"files used by the Debian B<menu> package into package build directories."
@@ -5631,7 +10377,7 @@ msgstr ""
"de pacotes."
#. type: textblock
-#: dh_installmenu:21
+#: dh_installmenu:24
msgid ""
"It also automatically generates the F<postinst> and F<postrm> commands "
"needed to interface with the Debian B<menu> package. These commands are "
@@ -5639,15 +10385,15 @@ msgid ""
msgstr ""
"Também gera automaticamente os comandos F<postinst> e F<postrm> necessários "
"para interagir com o pacote Debian B<menu>. Estes comandos são inseridos nos "
-"scripts do mantenedor pelo L<dh_installdeb(1)>."
+"scripts do maintainer pelo L<dh_installdeb(1)>."
#. type: =item
-#: dh_installmenu:29
+#: dh_installmenu:32
msgid "debian/I<package>.menu"
msgstr "debian/I<pacote>.menu"
#. type: textblock
-#: dh_installmenu:31
+#: dh_installmenu:34
msgid ""
"Debian menu files, installed into usr/share/menu/I<package> in the package "
"build directory. See L<menufile(5)> for its format."
@@ -5656,12 +10402,12 @@ msgstr ""
"directório de compilação do pacote. Veja L<menufile(5)> para o seu formato."
#. type: =item
-#: dh_installmenu:34
+#: dh_installmenu:37
msgid "debian/I<package>.menu-method"
msgstr "debian/I<pacote>.menu-method"
#. type: textblock
-#: dh_installmenu:36
+#: dh_installmenu:39
msgid ""
"Debian menu method files, installed into etc/menu-methods/I<package> in the "
"package build directory."
@@ -5670,12 +10416,12 @@ msgstr ""
"no directório de compilação do pacote."
#. type: textblock
-#: dh_installmenu:47 dh_makeshlibs:79
+#: dh_installmenu:50
msgid "Do not modify F<postinst>/F<postrm> scripts."
msgstr "Não modifique os scripts F<postinst>/F<postrm>."
#. type: textblock
-#: dh_installmenu:91
+#: dh_installmenu:90
msgid "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
msgstr "L<debhelper(7)> L<update-menus(1)> L<menufile(5)>"
@@ -5687,12 +10433,12 @@ msgstr ""
"pacotes"
#. type: textblock
-#: dh_installmime:14
+#: dh_installmime:17
msgid "B<dh_installmime> [S<I<debhelper options>>]"
msgstr "B<dh_installmime> [S<I<debhelper opções>>]"
#. type: textblock
-#: dh_installmime:18
+#: dh_installmime:21
msgid ""
"B<dh_installmime> is a debhelper program that is responsible for installing "
"mime files into package build directories."
@@ -5701,12 +10447,12 @@ msgstr ""
"ficheiros mime em directórios de compilação de pacotes."
#. type: =item
-#: dh_installmime:25
+#: dh_installmime:28
msgid "debian/I<package>.mime"
msgstr "debian/I<pacote>.mime"
#. type: textblock
-#: dh_installmime:27
+#: dh_installmime:30
msgid ""
"Installed into usr/lib/mime/packages/I<package> in the package build "
"directory."
@@ -5715,12 +10461,12 @@ msgstr ""
"do pacote."
#. type: =item
-#: dh_installmime:30
+#: dh_installmime:33
msgid "debian/I<package>.sharedmimeinfo"
msgstr "debian/I<pacote>.sharedmimeinfo"
#. type: textblock
-#: dh_installmime:32
+#: dh_installmime:35
msgid ""
"Installed into /usr/share/mime/packages/I<package>.xml in the package build "
"directory."
@@ -5734,14 +10480,14 @@ msgid "dh_installmodules - register kernel modules"
msgstr "dh_installmodules - regista módulos de kernel"
#. type: textblock
-#: dh_installmodules:15
+#: dh_installmodules:18
msgid ""
"B<dh_installmodules> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>]"
msgstr ""
"B<dh_installmodules> [S<I<debhelper opções>>] [B<-n>] [B<--name=>I<nome>]"
#. type: textblock
-#: dh_installmodules:19
+#: dh_installmodules:22
msgid ""
"B<dh_installmodules> is a debhelper program that is responsible for "
"registering kernel modules."
@@ -5750,7 +10496,7 @@ msgstr ""
"módulos de kernel."
#. type: textblock
-#: dh_installmodules:22
+#: dh_installmodules:25
msgid ""
"Kernel modules are searched for in the package build directory and if found, "
"F<preinst>, F<postinst> and F<postrm> commands are automatically generated "
@@ -5761,16 +10507,16 @@ msgstr ""
"São procurados módulos de kernel no directório de compilação do pacote, e se "
"encontrados, os comandos F<preinst>, F<postinst> e F<postrm> são gerados "
"automaticamente para correr o B<depmod> e registar os módulos quando o "
-"pacote é instalado. Estes comandos são inseridos nos scripts do mantenedor "
+"pacote é instalado. Estes comandos são inseridos nos scripts do maintainer "
"pelo L<dh_installdeb(1)>."
#. type: =item
-#: dh_installmodules:32
+#: dh_installmodules:35
msgid "debian/I<package>.modprobe"
msgstr "debian/I<pacote>.modprobe"
#. type: textblock
-#: dh_installmodules:34
+#: dh_installmodules:37
msgid ""
"Installed to etc/modprobe.d/I<package>.conf in the package build directory."
msgstr ""
@@ -5778,12 +10524,12 @@ msgstr ""
"pacote."
#. type: textblock
-#: dh_installmodules:44
+#: dh_installmodules:47
msgid "Do not modify F<preinst>/F<postinst>/F<postrm> scripts."
msgstr "Não modifique os scripts F<preinst>/F<postinst>/F<postrm>."
#. type: textblock
-#: dh_installmodules:48
+#: dh_installmodules:51
msgid ""
"When this parameter is used, B<dh_installmodules> looks for and installs "
"files named debian/I<package>.I<name>.modprobe instead of the usual debian/"
@@ -5799,12 +10545,12 @@ msgid "dh_installpam - install pam support files"
msgstr "dh_installpam - instala ficheiros de suporte ao pam"
#. type: textblock
-#: dh_installpam:14
+#: dh_installpam:17
msgid "B<dh_installpam> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr "B<dh_installpam> [S<I<debhelper opções>>] [B<--name=>I<nome>]"
#. type: textblock
-#: dh_installpam:18
+#: dh_installpam:21
msgid ""
"B<dh_installpam> is a debhelper program that is responsible for installing "
"files used by PAM into package build directories."
@@ -5813,26 +10559,38 @@ msgstr ""
"ficheiros usados pelo PAM nos directórios de compilação de pacotes."
#. type: =item
-#: dh_installpam:25
+#: dh_installpam:28
msgid "debian/I<package>.pam"
msgstr "debian/I<pacote>.pam"
#. type: textblock
-#: dh_installpam:27
-msgid "Installed into etc/pam.d/I<package> in the package build directory."
+#: dh_installpam:30
+msgid "Installed into usr/lib/pam.d/I<package> in the package build directory."
msgstr ""
-"Instalado em etc/pam.d/I<pacote> no directório de compilação do pacote."
+"Instalado em usr/lib/pam.d/I<pacote> no directório de compilação do pacote."
#. type: textblock
-#: dh_installpam:37
+#: dh_installpam:32
msgid ""
-"Look for files named debian/I<package>.I<name>.pam and install them as etc/"
-"pam.d/I<name>, instead of using the usual files and installing them using "
-"the package name."
+"Until compatibility level 14 this file was installed under etc/pam.d/"
+"I<package>. Please consider using the \"rm_conffile\" feature from "
+"L<dh_installdeb(1)> to ensure the proper removal of previous PAM files."
+msgstr ""
+"Ate ao nível de compatibilidade 14 este ficheiro era instalado sob etc/pam.d/"
+"I<pacote>. Por favor considere usar a funcionalidade \"rm_conffile\" do "
+"L<dh_installdeb(1)> para assegurar a remoção apropriada dos ficheiros PAM "
+"anteriores."
+
+#. type: textblock
+#: dh_installpam:44
+msgid ""
+"Look for files named debian/I<package>.I<name>.pam and install them as usr/"
+"lib/pam.d/I<name>, instead of using the usual files and installing them "
+"using the package name."
msgstr ""
"Procura ficheiros chamados debian/I<pacote>.I<nome>.pam e instala-os como "
-"etc/pam.d/I<nome>, em vez de usar os ficheiros habituais e de os instalar "
-"usando o nome do pacote."
+"usr/lib/pam.d/I<nome>, em vez de usar os ficheiros habituais e de os "
+"instalar usando o nome do pacote."
#. type: textblock
#: dh_installppp:5
@@ -5840,12 +10598,12 @@ msgid "dh_installppp - install ppp ip-up and ip-down files"
msgstr "dh_installppp - instala os ficheiros ip-up e ip-down do ppp"
#. type: textblock
-#: dh_installppp:14
+#: dh_installppp:17
msgid "B<dh_installppp> [S<I<debhelper options>>] [B<--name=>I<name>]"
msgstr "B<dh_installppp> [S<I<debhelper opções>>] [B<--name=>I<nome>]"
#. type: textblock
-#: dh_installppp:18
+#: dh_installppp:21
msgid ""
"B<dh_installppp> is a debhelper program that is responsible for installing "
"ppp ip-up and ip-down scripts into package build directories."
@@ -5854,24 +10612,24 @@ msgstr ""
"scripts ip-up e ip-down do ppp nos directórios de compilação de pacotes."
#. type: =item
-#: dh_installppp:25
+#: dh_installppp:28
msgid "debian/I<package>.ppp.ip-up"
msgstr "debian/I<pacote>.ppp.ip-up"
#. type: textblock
-#: dh_installppp:27
+#: dh_installppp:30
msgid ""
"Installed into etc/ppp/ip-up.d/I<package> in the package build directory."
msgstr ""
"Instalado em etc/ppp/ip-up.d/I<pacote> no directório de compilação do pacote."
#. type: =item
-#: dh_installppp:29
+#: dh_installppp:32
msgid "debian/I<package>.ppp.ip-down"
msgstr "debian/I<pacote>.ppp.ip-down"
#. type: textblock
-#: dh_installppp:31
+#: dh_installppp:34
msgid ""
"Installed into etc/ppp/ip-down.d/I<package> in the package build directory."
msgstr ""
@@ -5879,7 +10637,7 @@ msgstr ""
"pacote."
#. type: textblock
-#: dh_installppp:41
+#: dh_installppp:44
msgid ""
"Look for files named F<debian/package.name.ppp.ip-*> and install them as "
"F<etc/ppp/ip-*/name>, instead of using the usual files and installing them "
@@ -5895,7 +10653,7 @@ msgid "dh_installudev - install udev rules files"
msgstr "dh_installudev - instala ficheiros de regras do udev"
#. type: textblock
-#: dh_installudev:15
+#: dh_installudev:17
msgid ""
"B<dh_installudev> [S<I<debhelper options>>] [B<-n>] [B<--name=>I<name>] [B<--"
"priority=>I<priority>]"
@@ -5904,7 +10662,7 @@ msgstr ""
"priority=>I<prioridade>]"
#. type: textblock
-#: dh_installudev:19
+#: dh_installudev:21
msgid ""
"B<dh_installudev> is a debhelper program that is responsible for installing "
"B<udev> rules files."
@@ -5912,28 +10670,19 @@ msgstr ""
"B<dh_installudev> é um programa debhelper que é responsável por instalar "
"ficheiros de regras do B<udev>."
-#. type: textblock
-#: dh_installudev:22
-msgid ""
-"Code is added to the F<preinst> and F<postinst> to handle the upgrade from "
-"the old B<udev> rules file location."
-msgstr ""
-"É adicionado código a F<preinst> e a F<postinst> para lidar com a "
-"actualização a partir da antiga localização do ficheiro de regras do B<udev>."
-
#. type: =item
-#: dh_installudev:29
+#: dh_installudev:28
msgid "debian/I<package>.udev"
msgstr "debian/I<pacote>.udev"
#. type: textblock
-#: dh_installudev:31
+#: dh_installudev:30
msgid "Installed into F<lib/udev/rules.d/> in the package build directory."
msgstr ""
"Instalado em F<lib/udev/rules.d/> no directório de compilação do pacote."
#. type: textblock
-#: dh_installudev:41
+#: dh_installudev:40
msgid ""
"When this parameter is used, B<dh_installudev> looks for and installs files "
"named debian/I<package>.I<name>.udev instead of the usual debian/I<package>."
@@ -5944,27 +10693,22 @@ msgstr ""
"I<pacote>.udev."
#. type: =item
-#: dh_installudev:45
+#: dh_installudev:44
msgid "B<--priority=>I<priority>"
msgstr "B<--priority=>I<prioridade>"
#. type: textblock
-#: dh_installudev:47
+#: dh_installudev:46
msgid "Sets the priority the file. Default is 60."
msgstr "Define a prioridade do ficheiro. O valor predefinido é 60."
#. type: textblock
-#: dh_installudev:51
-msgid "Do not modify F<preinst>/F<postinst> scripts."
-msgstr "Não modifique os scripts F<preinst>/F<postinst>."
-
-#. type: textblock
#: dh_installwm:5
msgid "dh_installwm - register a window manager"
msgstr "dh_installwm - regista um gestor de janelas"
#. type: textblock
-#: dh_installwm:14
+#: dh_installwm:17
msgid ""
"B<dh_installwm> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] "
"[S<I<wm> ...>]"
@@ -5973,32 +10717,35 @@ msgstr ""
"[S<I<wm> ...>]"
#. type: textblock
-#: dh_installwm:18
+#: dh_installwm:21
msgid ""
"B<dh_installwm> is a debhelper program that is responsible for generating "
"the F<postinst> and F<prerm> commands that register a window manager with "
"L<update-alternatives(8)>. The window manager's man page is also registered "
-"as a slave symlink (in v6 mode and up), if it is found in F<usr/share/man/"
-"man1/> in the package build directory."
+"as a slave symlink (in v6 mode and up). It must be installed in F<usr/share/"
+"man/man1/> in the package build directory prior to calling B<dh_installwm>. "
+"In compat 9 and earlier, the manpage was optional."
msgstr ""
"B<dh_installwm> é um programa debhelper que é responsável por gerar os "
"comandos F<postinst> e F<prerm> que registam um gestor de janelas com "
"L<update-alternatives(8)>. O manual do gestor de janelas é também registado "
-"como um link simbólico escravo (em modo v6 e posterior), se tal for "
-"encontrado em F<usr/share/man/man1/> no directório de compilação do pacote."
+"como um link simbólico escravo (em modo v6 e posterior). Tem de ser "
+"instalado em F<usr/share/man/man1/> no directório de compilação do pacote "
+"antes da chamada B<dh_installwm>. Em compatibilidade 9 e anterior, a página "
+"de manual era opcional."
#. type: =item
-#: dh_installwm:28
+#: dh_installwm:32
msgid "debian/I<package>.wm"
msgstr "debian/I<pacote>.wm"
#. type: textblock
-#: dh_installwm:30
+#: dh_installwm:34
msgid "List window manager programs to register."
msgstr "Lista programas de gestão de janelas para registar."
#. type: textblock
-#: dh_installwm:40
+#: dh_installwm:47
msgid ""
"Set the priority of the window manager. Default is 20, which is too low for "
"most window managers; see the Debian Policy document for instructions on "
@@ -6009,20 +10756,29 @@ msgstr ""
"para instruções sobre como calcular o valor correcto."
#. type: textblock
-#: dh_installwm:46
+#: dh_installwm:53
msgid ""
"Do not modify F<postinst>/F<prerm> scripts. Turns this command into a no-op."
msgstr ""
"Não modifique os scripts F<postinst>/F<prerm>. Transforma este comando em "
"não-operacional (no-op)."
+#. type: textblock
+#: dh_installwm:57
+msgid ""
+"Modify scripts for window managers specified by command line parameters in "
+"ALL packages acted on, not just the first."
+msgstr ""
+"Modifica scripts para gestores de janelas especificados por parâmetros de "
+"linha de comandos em TODOS os pacotes em que actua, e não apenas no primeiro."
+
#. type: =item
-#: dh_installwm:48
+#: dh_installwm:60
msgid "I<wm> ..."
msgstr "I<wm> ..."
#. type: textblock
-#: dh_installwm:50
+#: dh_installwm:62
msgid "Window manager programs to register."
msgstr "Programas de gestão de janelas para registar."
@@ -6032,12 +10788,12 @@ msgid "dh_installxfonts - register X fonts"
msgstr "dh_installxfonts - regista fonts X"
#. type: textblock
-#: dh_installxfonts:14
+#: dh_installxfonts:17
msgid "B<dh_installxfonts> [S<I<debhelper options>>]"
msgstr "B<dh_installxfonts> [S<I<debhelper opções>>]"
#. type: textblock
-#: dh_installxfonts:18
+#: dh_installxfonts:21
msgid ""
"B<dh_installxfonts> is a debhelper program that is responsible for "
"registering X fonts, so their corresponding F<fonts.dir>, F<fonts.alias>, "
@@ -6049,7 +10805,7 @@ msgstr ""
"instalação."
#. type: textblock
-#: dh_installxfonts:22
+#: dh_installxfonts:25
msgid ""
"Before calling this program, you should have installed any X fonts provided "
"by your package into the appropriate location in the package build "
@@ -6060,22 +10816,22 @@ msgstr ""
"Antes de chamar este programa, você deve ter instalado quaisquer fonts X "
"disponibilizadas pelo seu pacote na localização apropriada no directório de "
"compilação do pacote, e você tem ficheiros F<fonts.alias> ou F<fonts.scale>, "
-"você deve instalá-los na localização correcta sob F<etc/X11/fonts> no seu "
+"você deve instala-los na localização correcta sob F<etc/X11/fonts> no seu "
"directório de compilação do pacote."
#. type: textblock
-#: dh_installxfonts:28
+#: dh_installxfonts:31
msgid ""
"Your package should depend on B<xfonts-utils> so that the B<update-fonts-"
">I<*> commands are available. (This program adds that dependency to B<${misc:"
"Depends}>.)"
msgstr ""
"O seu pacote deve depender de B<xfonts-utils> para que os comandos B<update-"
-"fonts->I<*> estejam disponíveis. (Este programa adiciona a dependência a B<"
-"${misc:Depends}>.)"
+"fonts->I<*> estejam disponíveis. (Este programa adiciona a dependência a "
+"B<${misc:Depends}>.)"
#. type: textblock
-#: dh_installxfonts:32
+#: dh_installxfonts:35
msgid ""
"This program automatically generates the F<postinst> and F<postrm> commands "
"needed to register X fonts. These commands are inserted into the maintainer "
@@ -6084,11 +10840,11 @@ msgid ""
msgstr ""
"Este programa gera automaticamente os comandos F<postinst> e F<postrm> "
"necessários para registar fonts do X. Estes comandos são inseridos nos "
-"scripts do mantenedor pelo B<dh_installdeb>. Veja L<dh_installdeb(1)> para "
+"scripts do maintainer pelo B<dh_installdeb>. Veja L<dh_installdeb(1)> para "
"uma explicação sobre como isto funciona."
#. type: textblock
-#: dh_installxfonts:39
+#: dh_installxfonts:42
msgid ""
"See L<update-fonts-alias(8)>, L<update-fonts-scale(8)>, and L<update-fonts-"
"dir(8)> for more information about X font installation."
@@ -6097,7 +10853,7 @@ msgstr ""
"dir(8)> para mais informação acerca de instalação de fonts X."
#. type: textblock
-#: dh_installxfonts:42
+#: dh_installxfonts:45
msgid ""
"See Debian policy, section 11.8.5. for details about doing fonts the Debian "
"way."
@@ -6112,7 +10868,7 @@ msgstr ""
"dh_link - cria links simbólicos em directórios de compilação de pacotes"
#. type: textblock
-#: dh_link:15
+#: dh_link:18
msgid ""
"B<dh_link> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<source "
"destination> ...>]"
@@ -6121,7 +10877,7 @@ msgstr ""
"destino> ...>]"
#. type: textblock
-#: dh_link:19
+#: dh_link:22
msgid ""
"B<dh_link> is a debhelper program that creates symlinks in package build "
"directories."
@@ -6130,37 +10886,39 @@ msgstr ""
"de compilação de pacotes."
#. type: textblock
-#: dh_link:22
+#: dh_link:25
msgid ""
"B<dh_link> accepts a list of pairs of source and destination files. The "
-"source files are the already existing files that will be symlinked from. The "
-"destination files are the symlinks that will be created. There B<must> be an "
-"equal number of source and destination files specified."
+"source files are the already existing files that will be symlinked from "
+"(called B<target> by L<ln(1)>). The destination files are the symlinks that "
+"will be created (called B<link name> by L<ln(1)>). There B<must> be an equal "
+"number of source and destination files specified."
msgstr ""
"B<dh_link> aceita uma lista de pares de ficheiros de fonte e destino. Os "
"ficheiros fonte são os ficheiros já existentes de onde se vai criar os links "
-"simbólicos. Os ficheiros de destino são os links simbólicos que irão ser "
-"criados. O número de ficheiros fonte e destino especificados B<tem> de ser "
+"simbólicos (chamados B<target> pelo L<ln(1)>). Os ficheiros de destino são "
+"os links simbólicos que irão ser criados (chamados B<link name> pelo "
+"L<ln(1)>). O número de ficheiros fonte e destino especificados B<tem> de ser "
"igual."
#. type: textblock
-#: dh_link:27
+#: dh_link:32
msgid ""
-"Be sure you B<do> specify the full filename to both the source and "
+"Be sure you B<do> specify the absolute path to both the source and "
"destination files (unlike you would do if you were using something like "
-"L<ln(1)>)."
+"L<ln(1)>). Please note that the leading slash is optional."
msgstr ""
-"Certifique-se que B<especifica> o nome de ficheiro completo para ambos "
-"ficheiros de fonte e destino (ao contrário do que faria se estivesse a usar "
-"algo como L<ln(1)>)."
+"Certifique-se que B<especifica> o caminho absoluto para ambos ficheiros de "
+"fonte e destino (ao contrário do que faria se estivesse a usar algo como "
+"L<ln(1)>). Por favor note que a barra de inicio é opcional."
#. type: textblock
-#: dh_link:31
+#: dh_link:36
msgid ""
"B<dh_link> will generate symlinks that comply with Debian policy - absolute "
"when policy says they should be absolute, and relative links with as short a "
-"path as possible. It will also create any subdirectories it needs to to put "
-"the symlinks in."
+"path as possible. It will also create any subdirectories it needs to put the "
+"symlinks in."
msgstr ""
"B<dh_link> irá gerar links simbólicos em conformidade com a política Debian "
"- absolutos quando a política diz que devem ser absolutos, e links relativos "
@@ -6168,14 +10926,14 @@ msgstr ""
"directórios que precise para pôr os links simbólicos lá dentro."
#. type: textblock
-#: dh_link:36
+#: dh_link:41
msgid "Any pre-existing destination files will be replaced with symlinks."
msgstr ""
"Quaisquer ficheiros de destino pré-existentes serão substituídos por links "
"simbólicos."
#. type: textblock
-#: dh_link:38
+#: dh_link:43
msgid ""
"B<dh_link> also scans the package build tree for existing symlinks which do "
"not conform to Debian policy, and corrects them (v4 or later)."
@@ -6185,12 +10943,12 @@ msgstr ""
"e corrige-os (v4 ou posterior)."
#. type: =item
-#: dh_link:45
+#: dh_link:50
msgid "debian/I<package>.links"
msgstr "debian/I<pacote>.links"
#. type: textblock
-#: dh_link:47
+#: dh_link:52
msgid ""
"Lists pairs of source and destination files to be symlinked. Each pair "
"should be put on its own line, with the source and destination separated by "
@@ -6201,7 +10959,29 @@ msgstr ""
"destino separados por um espaço em branco."
#. type: textblock
-#: dh_link:59
+#: dh_link:56
+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 given in the same "
+"order as they would be given to L<ln(1)>."
+msgstr ""
+"Em cada par o ficheiro fonte (chamado B<target> pelo L<ln(1)>) aparece "
+"primeiro e é seguido pelo ficheiro de destino (chamado B<link name> pelo "
+"L<ln(1)>). Assim os pares de fonte e destino em cada linha são fornecidos na "
+"mesma ordem como seriam fornecidos ao L<ln(1)>."
+
+#. type: textblock
+#: dh_link:61
+msgid ""
+"In contrast to L<ln(1)>, source and destination paths must be absolute (the "
+"leading slash is optional)."
+msgstr ""
+"Em contraste ao L<ln(1)>, os caminhos de fonte e destino têm de ser "
+"absolutos (a barra de inicio é opcional)."
+
+#. type: textblock
+#: dh_link:75
msgid ""
"Create any links specified by command line parameters in ALL packages acted "
"on, not just the first."
@@ -6210,21 +10990,21 @@ msgstr ""
"TODOS os pacotes em que actua, e não apenas no primeiro."
#. type: textblock
-#: dh_link:64
+#: dh_link:80
msgid ""
"Exclude symlinks that contain I<item> anywhere in their filename from being "
"corrected to comply with Debian policy."
msgstr ""
"Exclui links simbólicos que contêm I<item> em qualquer ponto do seu nome de "
-"serem corrigidos para ficarem em conformidade com a politica Debian."
+"serem corrigidos para ficarem em conformidade com a política Debian."
#. type: =item
-#: dh_link:67
+#: dh_link:83
msgid "I<source destination> ..."
msgstr "I<source destination> ..."
#. type: textblock
-#: dh_link:69
+#: dh_link:85
msgid ""
"Create a file named I<destination> as a link to a file named I<source>. Do "
"this in the package build directory of the first package acted on. (Or in "
@@ -6236,7 +11016,7 @@ msgstr ""
"A>.)"
#. type: verbatim
-#: dh_link:77
+#: dh_link:93
#, no-wrap
msgid ""
" dh_link usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
@@ -6246,12 +11026,12 @@ msgstr ""
"\n"
#. type: textblock
-#: dh_link:79
+#: dh_link:95
msgid "Make F<bar.1> be a symlink to F<foo.1>"
msgstr "Faz F<bar.1> ser um link simbólico para F<foo.1>"
#. type: verbatim
-#: dh_link:81
+#: dh_link:97
#, no-wrap
msgid ""
" dh_link var/lib/foo usr/lib/foo \\\n"
@@ -6263,7 +11043,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh_link:84
+#: dh_link:100
msgid ""
"Make F</usr/lib/foo/> be a link to F</var/lib/foo/>, and F<bar.1> be a "
"symlink to the F<foo.1>"
@@ -6271,6 +11051,24 @@ msgstr ""
"Faz F</usr/lib/foo/> ser um link para F</var/lib/foo/>, e F<bar.1> ser um "
"link simbólico para F<foo.1>"
+#. type: verbatim
+#: dh_link:103
+#, no-wrap
+msgid ""
+" var/lib/foo usr/lib/foo\n"
+" usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+msgstr ""
+" var/lib/foo usr/lib/foo\n"
+" usr/share/man/man1/foo.1 usr/share/man/man1/bar.1\n"
+"\n"
+
+#. type: textblock
+#: dh_link:106
+msgid "Same as above but as content for a debian/I<package>.links file."
+msgstr ""
+"O mesmo de cima mas como conteúdo para um ficheiro debian/I<package>.links."
+
#. type: textblock
#: dh_lintian:5
msgid ""
@@ -6280,12 +11078,12 @@ msgstr ""
"compilação de pacotes."
#. type: textblock
-#: dh_lintian:14
+#: dh_lintian:17
msgid "B<dh_lintian> [S<I<debhelper options>>]"
msgstr "B<dh_lintian> [S<I<debhelper opções>>]"
#. type: textblock
-#: dh_lintian:18
+#: dh_lintian:21
msgid ""
"B<dh_lintian> is a debhelper program that is responsible for installing "
"override files used by lintian into package build directories."
@@ -6295,12 +11093,12 @@ msgstr ""
"de pacotes."
#. type: =item
-#: dh_lintian:25
+#: dh_lintian:28
msgid "debian/I<package>.lintian-overrides"
msgstr "debian/I<pacote>.lintian-overrides"
#. type: textblock
-#: dh_lintian:27
+#: dh_lintian:30
msgid ""
"Installed into usr/share/lintian/overrides/I<package> in the package build "
"directory. This file is used to suppress erroneous lintian diagnostics."
@@ -6310,12 +11108,12 @@ msgstr ""
"lintian errados."
#. type: =item
-#: dh_lintian:31
+#: dh_lintian:34
msgid "F<debian/source/lintian-overrides>"
msgstr "F<debian/source/lintian-overrides>"
#. type: textblock
-#: dh_lintian:33
+#: dh_lintian:36
msgid ""
"These files are not installed, but will be scanned by lintian to provide "
"overrides for the source package."
@@ -6324,12 +11122,12 @@ msgstr ""
"disponibilizar sobreposições para o pacote fonte."
#. type: textblock
-#: dh_lintian:65
+#: dh_lintian:66
msgid "L<lintian(1)>"
msgstr "L<lintian(1)>"
#. type: textblock
-#: dh_lintian:69
+#: dh_lintian:70
msgid "Steve Robbins <smr@debian.org>"
msgstr "Steve Robbins <smr@debian.org>"
@@ -6340,12 +11138,12 @@ msgstr ""
"dh_listpackages - lista pacotes binários onde o debhelper não irá actuar"
#. type: textblock
-#: dh_listpackages:14
+#: dh_listpackages:17
msgid "B<dh_listpackages> [S<I<debhelper options>>]"
msgstr "B<dh_listpackages> [S<I<debhelper opções>>]"
#. type: textblock
-#: dh_listpackages:18
+#: dh_listpackages:21
msgid ""
"B<dh_listpackages> is a debhelper program that outputs a list of all binary "
"packages debhelper commands will act on. If you pass it some options, it "
@@ -6359,6 +11157,11 @@ msgstr ""
"opções."
#. type: textblock
+#: dh_listpackages:26
+msgid "Packages are listed in the order they appear in F<debian/control>."
+msgstr "Pacotes são listados na ordem que aparecem em F<debian/control>."
+
+#. type: textblock
#: dh_makeshlibs:5
msgid ""
"dh_makeshlibs - automatically create shlibs file and call dpkg-gensymbols"
@@ -6367,7 +11170,7 @@ msgstr ""
"gensymbols"
#. type: textblock
-#: dh_makeshlibs:14
+#: dh_makeshlibs:17
msgid ""
"B<dh_makeshlibs> [S<I<debhelper options>>] [B<-m>I<major>] [B<-"
"V>I<[dependencies]>] [B<-n>] [B<-X>I<item>] [S<B<--> I<params>>]"
@@ -6376,7 +11179,7 @@ msgstr ""
"V>I<[dependências]>] [B<-n>] [B<-X>I<item>] [S<B<--> I<parâmetros>>]"
#. type: textblock
-#: dh_makeshlibs:18
+#: dh_makeshlibs:21
msgid ""
"B<dh_makeshlibs> is a debhelper program that automatically scans for shared "
"libraries, and generates a shlibs file for the libraries it finds."
@@ -6386,40 +11189,90 @@ msgstr ""
"encontra."
#. type: textblock
-#: dh_makeshlibs:21
+#: dh_makeshlibs:24
msgid ""
-"It also adds a call to ldconfig in the F<postinst> and F<postrm> scripts (in "
-"v3 mode and above only) to any packages in which it finds shared libraries."
+"It will also ensure that ldconfig is invoked during install and removal when "
+"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."
msgstr ""
-"Também adiciona uma chamada ao ldconfig nos scripts F<postinst> e F<postrm> "
-"(apenas em modo v3 e superior) em quaisquer pacotes nos quais encontra "
-"bibliotecas partilhadas."
+"Também assegura que o ldconfig é invocado durante a instalação e remoção "
+"quando encontra bibliotecas partilhadas. Desde o debhelper 9.20151004, isto "
+"é feito via um trigger do dpkg. Nas versões mais antigas do debhelper, "
+"B<dh_makeshlibs> seria geralmente um script de maintainer para este objetivo."
#. type: textblock
-#: dh_makeshlibs:24
+#: 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 ""
+"Desde o debhelper 12.3, B<dh_makeshlibs> irá por predefinição adicionar uma "
+"linha I<udeb> adicional para udebs no ficheiro shlibs, quando o udeb tem o "
+"mesmo nome que o deb seguido por um sufixo \"-udeb\" (ex. se o deb for "
+"chamado \"libfoo1\", então o debhelper irá auto-detectar o udeb se ele for "
+"chamado \"libfoo1-udeb\"). Por favor use as opções B<--add-udeb> e B<--no-"
+"add-udeb> abaixo quando esta auto-detecção é insuficiente."
+
+#. type: textblock
+#: dh_makeshlibs:36
+msgid ""
+"If you previously used B<--add-udeb> and are considering to migrate to using "
+"the 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 ""
+"Se você usou anteriormente B<--add-udeb> e está a considerar migrar para a "
+"utilização da nova funcionalidade de auto-detecção em 12.3, então por favor "
+"lembre-se de testar que os ficheiros F<DEBIAN/shlibs> resultantes são os "
+"esperados. Existem alguns casos conhecidos, onde a auto-detecção é "
+"insuficiente. Estes incluem quando o udeb contem ficheiros biblioteca de "
+"múltiplos pacotes deb regulares ou quando os pacotes não seguem a convenção "
+"de nomes esperada."
+
+#. type: =item
+#: dh_makeshlibs:48
+msgid "debian/I<package>.shlibs"
+msgstr "debian/I<pacote>.shlibs"
+
+#. type: textblock
+#: dh_makeshlibs:50
msgid ""
-"Packages that support multiarch are detected, and a Pre-Dependency on "
-"multiarch-support is set in ${misc:Pre-Depends} ; you should make sure to "
-"put that token into an appropriate place in your debian/control file for "
-"packages supporting multiarch."
+"Installs this file, if present, into the package as DEBIAN/shlibs. If "
+"omitted, debhelper will generate a shlibs file automatically if it detects "
+"any libraries."
msgstr ""
-"Os pacotes que suportam multi-arquitectura são detectados, e é definida uma "
-"Pré-Dependência em multiarch-support em ${misc:Pre-Depends} ; você deve "
-"certificar-se de colocar esse testemunho num local apropriado no seu "
-"ficheiro debian/control para os pacotes que suportam multi-arquitectura."
+"Instala este ficheiro, se presente, no pacote como DEBIAN/shlibs. Se "
+"omitido, o debhelper irá gerar um ficheiro shlibs automaticamente se "
+"detectar quaisquer bibliotecas."
+
+#. type: textblock
+#: 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 ""
+"Note que em níveis de compatibilidade 9 e anteriores, este ficheiro era "
+"instalado pelo L<dh_installdeb(1)> em vez do B<dh_makeshlibs>."
#. type: =item
-#: dh_makeshlibs:33
+#: dh_makeshlibs:57
msgid "debian/I<package>.symbols"
msgstr "debian/I<pacote>.symbols"
#. type: =item
-#: dh_makeshlibs:35
+#: dh_makeshlibs:59
msgid "debian/I<package>.symbols.I<arch>"
msgstr "debian/I<pacote>.symbols.I<arquitectura>"
#. type: textblock
-#: dh_makeshlibs:37
+#: 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 "
@@ -6431,12 +11284,12 @@ msgstr ""
"para diferentes arquitecturas."
#. type: =item
-#: dh_makeshlibs:47
+#: dh_makeshlibs:71
msgid "B<-m>I<major>, B<--major=>I<major>"
msgstr "B<-m>I<major>, B<--major=>I<major>"
#. type: textblock
-#: dh_makeshlibs:49
+#: 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 "
@@ -6449,62 +11302,192 @@ msgstr ""
"olhava para os nomes de ficheiro das bibliotecas em vez de usar o objdump."
#. type: =item
-#: dh_makeshlibs:54
+#: dh_makeshlibs:78
msgid "B<-V>, B<-V>I<dependencies>"
msgstr "B<-V>, B<-V>I<dependências>"
#. type: =item
-#: dh_makeshlibs:56
+#: dh_makeshlibs:80
msgid "B<--version-info>, B<--version-info=>I<dependencies>"
msgstr "B<--version-info>, B<--version-info=>I<dependências>"
#. type: textblock
-#: dh_makeshlibs:58
-msgid ""
-"By default, the shlibs file generated by this program does not make packages "
-"depend on any particular version of the package containing the shared "
-"library. It may be necessary for you to add some version dependency "
-"information to the shlibs file. If B<-V> is specified with no dependency "
-"information, the current upstream version of the package is plugged into a "
-"dependency that looks like \"I<packagename> B<(E<gt>>= I<packageversion>B<)>"
-"\". Note that in debhelper compatibility levels before v4, the Debian part "
-"of the package version number is also included. If B<-V> is specified with "
-"parameters, the parameters can be used to specify the exact dependency "
-"information needed (be sure to include the package name)."
-msgstr ""
-"Por predefinição, o ficheiro shlibs gerado por este programa não torna os "
-"pacotes dependentes de nenhuma versão particular do pacote que contém a "
-"biblioteca partilhada. Poderá ser necessário para si adicionar alguma "
-"informação de dependência de versão ao ficheiro shlibs. Se B<-V> for "
-"especificado sem nenhuma informação de dependência, a actual versão do autor "
-"é ligada a uma dependência que se parece com \"I<nome-pacote> B<(E<gt>>= "
-"I<versão-pacote>B<)>\". Note que nos níveis de compatibilidade do debhelper "
-"anteriores a v4, também é incluída a parte Debian do número de versão do "
-"pacote. Se B<-V> for especificado com parâmetros, os parâmetros podem ser "
-"usados para especificar a informação de dependência exacta necessária "
-"(certifique-se que inclui o nome do pacote)."
-
-#. type: textblock
-#: dh_makeshlibs:69
-msgid ""
-"Beware of using B<-V> without any parameters; 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 your library is prone to changing "
-"ABI without updating the upstream version number), so that if the maintainer "
-"screws up then they won't break. The flip side is that packages might end up "
-"with dependencies that are too tight and so find it harder to be upgraded."
-msgstr ""
-"Cuidado ao usar B<-V> sem nenhuns parâmetros; isto é uma definição "
-"conservativa que assegura sempre que as dependências de bibliotecas "
-"partilhadas dos pacotes mais antigos são pelo menos tão justas o quanto "
-"precisam de ser (a menos que a sua biblioteca seja inclinada a alterar a ABI "
-"sem actualizar o número de versão do autor), para que se o mantenedor fizer "
-"asneira então elas não irão quebrar. O outro lado é que os pacotes podem "
-"acabar com dependências demasiado apertadas e devido a isso ser muito "
-"difíceis de serem actualizados."
-
-#. type: textblock
-#: dh_makeshlibs:83
+#: 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 ""
+"Se um ficheiro shlibs for gerado por este programa, esta opção controla que "
+"versão será usada na relação de dependência."
+
+#. type: textblock
+#: 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 ""
+"Em compatibilidade 12 e posterior, B<dh_makeshlibs> usa por predefinição B<-"
+"VUpstream-Version>. Em compatibilidade 11 e anterior o comportamento "
+"predefinido é como B<-VNone>."
+
+#. type: textblock
+#: dh_makeshlibs:88
+msgid "The B<dh_makeshlibs> tool can generate dependencies in three variants:"
+msgstr ""
+"A ferramenta B<dh_makeshlibs> pode gerar dependências em três variantes:"
+
+#. type: =item
+#: dh_makeshlibs:92
+msgid "B<-VUpstream-Version>"
+msgstr "B<-VUpstream-Version>"
+
+#. type: textblock
+#: 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 "
+"as shown here."
+msgstr ""
+"A dependência será \"I<packagename> B<(E<gt>>= I<packageversion>B<)>\". "
+"Note que I<Upstream-Version> é sensível a maiúsculas/minúsculas e tem de ser "
+"escrito exactamente como mostrado aqui."
+
+#. type: textblock
+#: 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 "
+"the library is prone to changing ABI without updating the upstream version "
+"number)."
+msgstr ""
+"Esta é uma definição conservativa que assegura sempre que as dependências de "
+"bibliotecas partilhadas dos pacotes mais antigos são pelo menos tão justas o "
+"quanto precisam de ser (a menos que a biblioteca seja inclinada a alterar a "
+"ABI sem actualizar o número de versão do autor)."
+
+#. type: textblock
+#: 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 "
+"often of minor temporary inconvenience and usually a lot better than the "
+"fall out caused by forgetting to bump the dependency information."
+msgstr ""
+"O reverso da medalha é que os pacotes podem acabar com dependências muito "
+"apertadas em alguns casos (note que um ficheiro symbols pode mitigar esta "
+"situação). Isto é geralmente uma inconveniência menor temporária e "
+"normalmente muito melhor que a falha causada ao esquecer de inserir a "
+"informação de dependência."
+
+#. type: textblock
+#: 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 "
+"works)"
+msgstr ""
+"Este formato explícito foi adicionado no debhelper/11.3. Nas versões "
+"anteriores, era usado em vez disto um B<-V> sem nenhuma informação de "
+"dependência (e esse formato ainda funciona)."
+
+#. type: =item
+#: dh_makeshlibs:113
+msgid "B<-VNone>"
+msgstr "B<-VNone>"
+
+#. type: textblock
+#: 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 ""
+"A dependência será \"I<packagename>\". Note que I<None> é sensível a "
+"maiúsculas/minúsculas e tem de ser escrito exactamente como mostrado aqui."
+
+#. type: textblock
+#: 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 "
+"interfaces over time and packagers are recommended to use B<-VUpstream-"
+"Version> (or one of the other forms of B<-V>I<dependencies>)."
+msgstr ""
+"Este formato é na generalidade não seguro sendo a única excepção se o autor "
+"original não estender a ABI de maneira nenhuma. No entanto, a maioria dos "
+"autores originais melhoram as suas interfaces com o passar do tempo e é "
+"recomendado que os pacotes usem B<-VUpstream-Version> (ou um dos outros "
+"formatos de B<-V>I<dependencies>)."
+
+#. type: textblock
+#: 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 "
+"packages. Note that symbols are not supported for udeb packages, which "
+"solely relies on shlibs for dependency handling."
+msgstr ""
+"Alternativamente, isto pode ser suficiente se (e apenas se) o pacote usar "
+"versão por símbolo (veja L<dpkg-gensymbols(1)>) e I<não> compilar nenhum "
+"pacote udeb. Note que symbols não são suportados para pacotes udeb, os quais "
+"apenas se apoiam em shlibs para manuseamento das dependências."
+
+#. type: =item
+#: dh_makeshlibs:128
+msgid "B<-V>I<package-relation>"
+msgstr "B<-V>I<package-relation>"
+
+#. type: textblock
+#: 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-"
+"package-name> B<(E<gt>>= I<some-package-version>B<)>\". Remember to include "
+"the package name."
+msgstr ""
+"Neste caso, o valor passado a B<-V> irá ser usado como uma relação de "
+"dependência. O I<package-relation> deve geralmente ser do formato \"I<algum-"
+"nome-pacote> B<(E<gt>>= I<alguma-versão-pacote>B<)>\". Lembre-se de incluir "
+"o nome do pacote."
+
+#. type: textblock
+#: 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 "
+"dependency on a different package than the one containing the library."
+msgstr ""
+"Note que o debhelper irá usar o calor I<como está> sem verificações de "
+"sanidade ou modificação. Em casos I<raros e especiais>, isto é preciso para "
+"gerar uma dependência num pacote diferente daquele que contém a biblioteca."
+
+#. type: textblock
+#: dh_makeshlibs:142
+msgid ""
+"When choosing a value for this option, please keep mind that if the package "
+"provides a symbols file, then that this is generally preferred over the "
+"shlibs file for regular .deb packages. See L<dpkg-shlibdeps(1)> for more "
+"information on this topic."
+msgstr ""
+"Quando escolher um valor para esta opção, por favor lembre-se que se o "
+"pacote fornecer um ficheiro symbols, então esse é geralmente preferido sobre "
+"o ficheiro shlibs para pacotes .deb regulares. Veja L<dpkg-shlibdeps(1)> "
+"para mais informação sobre este tópico."
+
+#. type: textblock
+#: 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 "
+"B<dh_makeshlibs> would previously generate maintainer scripts that called "
+"B<ldconfig>."
+msgstr ""
+"Não adiciona o trigger \"ldconfig\" mesmo que parece que o pacote possa "
+"precisar dele. A opção é chamada B<--no-scripts> por razões históricas pois "
+"o B<dh_makeshlibs> previamente gerava scripts do maintainer que chamavam "
+"B<ldconfig>."
+
+#. type: textblock
+#: dh_makeshlibs:156
msgid ""
"Exclude files that contain I<item> anywhere in their filename or directory "
"from being treated as shared libraries."
@@ -6513,12 +11496,12 @@ msgstr ""
"ficheiro ou directório de serem tratados como bibliotecas partilhadas."
#. type: =item
-#: dh_makeshlibs:86
+#: dh_makeshlibs:159
msgid "B<--add-udeb=>I<udeb>"
msgstr "B<--add-udeb=>I<udeb>"
#. type: textblock
-#: dh_makeshlibs:88
+#: 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 "
@@ -6529,17 +11512,57 @@ msgstr ""
"normal."
#. type: textblock
-#: dh_makeshlibs:93
+#: dh_makeshlibs:164
+msgid ""
+"This 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 ""
+"Esta opção é apenas útil para casos especiais tais como quando o debhelper "
+"não consegue auto-detectar o nome de pacote para o pacote udeb, quando o "
+"udeb irá conter bibliotecas de múltiplos pacotes deb, ou quando o udeb "
+"contem bibliotecas B<não> presentes no pacote deb."
+
+#. type: =item
+#: dh_makeshlibs:169
+msgid "B<--no-add-udeb>"
+msgstr "B<--no-add-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 ""
+"Não adiciona nenhumas linhas udeb ao ficheiro shlibs. Isto pode ser usado "
+"para desactivar a auto-detecção predefinida do udebs."
+
+#. 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 ""
+"Isto pode ser útil caso você não queira nenhum ficheiro shlibs para o udeb "
+"porque nenhum pacote irá depender dele. Ex. porque adicionar um pacote udeb "
+"para a biblioteca foi \"exagero\" e a biblioteca está embebida num pacote "
+"udeb diferente."
+
+#. type: textblock
+#: dh_makeshlibs:181
msgid "Pass I<params> to L<dpkg-gensymbols(1)>."
msgstr "Passa I<params> para L<dpkg-gensymbols(1)>."
#. type: =item
-#: dh_makeshlibs:101
-msgid "B<dh_makeshlibs>"
-msgstr "B<dh_makeshlibs>"
+#: dh_makeshlibs:189
+msgid "B<dh_makeshlibs -VNone>"
+msgstr "B<dh_makeshlibs -VNone>"
#. type: verbatim
-#: dh_makeshlibs:103
+#: dh_makeshlibs:191
#, no-wrap
msgid ""
"Assuming this is a package named F<libfoobar1>, generates a shlibs file that\n"
@@ -6553,12 +11576,12 @@ msgstr ""
"\n"
#. type: =item
-#: dh_makeshlibs:107
-msgid "B<dh_makeshlibs -V>"
-msgstr "B<dh_makeshlibs -V>"
+#: dh_makeshlibs:195
+msgid "B<dh_makeshlibs -VUpstream-Version>"
+msgstr "B<dh_makeshlibs -VUpstream-Version>"
#. type: verbatim
-#: dh_makeshlibs:109
+#: dh_makeshlibs:197
#, no-wrap
msgid ""
"Assuming the current version of the package is 1.1-3, generates a shlibs\n"
@@ -6572,12 +11595,12 @@ msgstr ""
"\n"
#. type: =item
-#: dh_makeshlibs:113
+#: 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:115
+#: dh_makeshlibs:203
#, no-wrap
msgid ""
"Generates a shlibs file that looks something like:\n"
@@ -6594,7 +11617,7 @@ msgid "dh_md5sums - generate DEBIAN/md5sums file"
msgstr "dh_md5sums - gera o ficheiro DEBIAN/md5sums"
#. type: textblock
-#: dh_md5sums:15
+#: dh_md5sums:18
msgid ""
"B<dh_md5sums> [S<I<debhelper options>>] [B<-x>] [B<-X>I<item>] [B<--include-"
"conffiles>]"
@@ -6603,18 +11626,20 @@ msgstr ""
"include-conffiles>]"
#. type: textblock
-#: dh_md5sums:19
+#: dh_md5sums:22
msgid ""
"B<dh_md5sums> is a debhelper program that is responsible for generating a "
"F<DEBIAN/md5sums> file, which lists the md5sums of each file in the "
-"package. These files are used by the B<debsums> package."
+"package. These files are used by B<dpkg --verify> or the L<debsums(1)> "
+"program."
msgstr ""
"B<dh_md5sums> é um programa debhelper que é responsável por gerar um "
"ficheiro F<DEBIAN/md5sums> o qual lista os md5sums de cada ficheiro no "
-"pacote. Estes ficheiros são usados pelo pacote B<debsums>."
+"pacote. Estes ficheiros são usados por B<dpkg --verify> ou pelo programa "
+"L<debsums(1)>."
#. type: textblock
-#: dh_md5sums:23
+#: dh_md5sums:26
msgid ""
"All files in F<DEBIAN/> are omitted from the F<md5sums> file, as are all "
"conffiles (unless you use the B<--include-conffiles> switch)."
@@ -6624,27 +11649,27 @@ msgstr ""
"include-conffiles>)."
#. type: textblock
-#: dh_md5sums:26
+#: dh_md5sums:29
msgid "The md5sums file is installed with proper permissions and ownerships."
msgstr "O ficheiro md5sums é instalado com o dono e permissões apropriadas."
#. type: =item
-#: dh_md5sums:32
+#: dh_md5sums:35
msgid "B<-x>, B<--include-conffiles>"
msgstr "B<-x>, B<--include-conffiles>"
#. type: textblock
-#: dh_md5sums:34
+#: dh_md5sums:37
msgid ""
"Include conffiles in the md5sums list. Note that this information is "
-"redundant since it is included elsewhere in Debian packages."
+"redundant since it is included in F</var/lib/dpkg/status> in Debian packages."
msgstr ""
"Inclui ficheiros de configuração na lista de md5sums. Note que esta "
-"informação é redundante pois isso está incluído noutro local nos pacotes "
-"Debian."
+"informação é redundante pois isso está incluído em F</var/lib/dpkg/status> "
+"nos pacotes Debian."
#. type: textblock
-#: dh_md5sums:39
+#: dh_md5sums:42
msgid ""
"Exclude files that contain I<item> anywhere in their filename from being "
"listed in the md5sums file."
@@ -6658,7 +11683,7 @@ msgid "dh_movefiles - move files out of debian/tmp into subpackages"
msgstr "dh_movefiles - move ficheiros de debian/tmp para sub-pacotes"
#. type: textblock
-#: dh_movefiles:14
+#: dh_movefiles:17
msgid ""
"B<dh_movefiles> [S<I<debhelper options>>] [B<--sourcedir=>I<dir>] [B<-"
"X>I<item>] [S<I<file> ...>]"
@@ -6667,7 +11692,7 @@ msgstr ""
"X>I<item>] [S<I<ficheiro> ...>]"
#. type: textblock
-#: dh_movefiles:18
+#: dh_movefiles:21
msgid ""
"B<dh_movefiles> is a debhelper program that is responsible for moving files "
"out of F<debian/tmp> or some other directory and into other package build "
@@ -6682,21 +11707,21 @@ msgstr ""
"em sub-pacotes."
#. type: textblock
-#: dh_movefiles:23
+#: dh_movefiles:26
msgid ""
"Note: B<dh_install> is a much better program, and you are recommended to use "
"it instead of B<dh_movefiles>."
msgstr ""
-"Nota: B<dh_install> é um programa muito melhor, e é recomendado usá-lo em "
+"Nota: B<dh_install> é um programa muito melhor, e é recomendado usa-lo em "
"vez do B<dh_movefiles>."
#. type: =item
-#: dh_movefiles:30
+#: dh_movefiles:33
msgid "debian/I<package>.files"
msgstr "debian/I<pacote>.files"
#. type: textblock
-#: dh_movefiles:32
+#: dh_movefiles:35
msgid ""
"Lists the files to be moved into a package, separated by whitespace. The "
"filenames listed should be relative to F<debian/tmp/>. You can also list "
@@ -6708,7 +11733,7 @@ msgstr ""
"inteiro."
#. type: textblock
-#: dh_movefiles:44
+#: dh_movefiles:47
msgid ""
"Instead of moving files out of F<debian/tmp> (the default), this option "
"makes it move files out of some other directory. Since the entire contents "
@@ -6723,12 +11748,12 @@ msgstr ""
"relativo; não pode começar com um `B</>'."
#. type: =item
-#: dh_movefiles:50
+#: dh_movefiles:53
msgid "B<-Xitem>, B<--exclude=item>"
msgstr "B<-Xitem>, B<--exclude=item>"
#. type: textblock
-#: dh_movefiles:52
+#: dh_movefiles:55
msgid ""
"Exclude files that contain B<item> anywhere in their filename from being "
"installed."
@@ -6737,7 +11762,7 @@ msgstr ""
"seu nome de ficheiro."
#. type: textblock
-#: dh_movefiles:57
+#: dh_movefiles:60
msgid ""
"Lists files to move. The filenames listed should be relative to F<debian/tmp/"
">. You can also list directory names, and the whole directory will be moved. "
@@ -6751,7 +11776,7 @@ msgstr ""
"pacote os deve colocar."
#. type: textblock
-#: dh_movefiles:66
+#: dh_movefiles:69
msgid ""
"Note that files are always moved out of F<debian/tmp> by default (even if "
"you have instructed debhelper to use a compatibility level higher than one, "
@@ -6776,23 +11801,23 @@ msgid "dh_perl - calculates Perl dependencies and cleans up after MakeMaker"
msgstr "dh_perl - calcula as dependências de Perl e limpa após MakeMaker"
#. type: textblock
-#: dh_perl:16
+#: dh_perl:20
msgid "B<dh_perl> [S<I<debhelper options>>] [B<-d>] [S<I<library dirs> ...>]"
msgstr ""
"B<dh_perl> [S<I<opções do debhelper>>] [B<-d>] [S<I<directórios de "
"bibliotecas> ...>]"
#. type: textblock
-#: dh_perl:20
+#: dh_perl:24
msgid ""
-"B<dh_perl> is a debhelper program that is responsible for generating the B<"
-"${perl:Depends}> substitutions and adding them to substvars files."
+"B<dh_perl> is a debhelper program that is responsible for generating the "
+"B<${perl:Depends}> substitutions and adding them to substvars files."
msgstr ""
"B<dh_perl> é um programa debhelper que é responsável por gerar as "
-"substituições B<${perl:Depends}> e adicioná-las aos ficheiros substvars."
+"substituições B<${perl:Depends}> e adiciona-las aos ficheiros substvars."
#. type: textblock
-#: dh_perl:23
+#: dh_perl:27
msgid ""
"The program will look at Perl scripts and modules in your package, and will "
"use this information to generate a dependency on B<perl> or B<perlapi>. The "
@@ -6802,10 +11827,10 @@ msgstr ""
"Este programa irá procurar scripts e módulos Perl no seu pacote, e irá usar "
"esta informação para gerar uma dependência em B<perl> ou B<perlapi>. A "
"dependência irá ser substituída no ficheiro F<control> do seu pacote onde "
-"você colocar o símbolo B<${perl:Depends}>."
+"você colocar o token B<${perl:Depends}>."
#. type: textblock
-#: dh_perl:28
+#: dh_perl:32
msgid ""
"B<dh_perl> also cleans up empty directories that MakeMaker can generate when "
"installing Perl modules."
@@ -6814,12 +11839,12 @@ msgstr ""
"instala módulos Perl."
#. type: =item
-#: dh_perl:35
+#: dh_perl:39
msgid "B<-d>"
msgstr "B<-d>"
#. type: textblock
-#: dh_perl:37
+#: dh_perl:41
msgid ""
"In some specific cases you may want to depend on B<perl-base> rather than "
"the full B<perl> package. If so, you can pass the -d option to make "
@@ -6832,7 +11857,7 @@ msgstr ""
"necessário para alguns pacotes que estão incluídos no sistema base."
#. type: textblock
-#: dh_perl:42
+#: dh_perl:46
msgid ""
"Note that this flag may cause no dependency on B<perl-base> to be generated "
"at all. B<perl-base> is Essential, so its dependency can be left out, unless "
@@ -6844,12 +11869,12 @@ msgstr ""
"dependência de determinada versão."
#. type: =item
-#: dh_perl:46
+#: dh_perl:50
msgid "B<-V>"
msgstr "B<-V>"
#. type: textblock
-#: dh_perl:48
+#: dh_perl:52
msgid ""
"By default, scripts and architecture independent modules don't depend on any "
"specific version of B<perl>. The B<-V> option causes the current version of "
@@ -6861,12 +11886,12 @@ msgstr ""
"d>)."
#. type: =item
-#: dh_perl:52
+#: dh_perl:56
msgid "I<library dirs>"
msgstr "I<directórios de bibliotecas>"
#. type: textblock
-#: dh_perl:54
+#: dh_perl:58
msgid ""
"If your package installs Perl modules in non-standard directories, you can "
"make B<dh_perl> check those directories by passing their names on the "
@@ -6879,17 +11904,17 @@ msgstr ""
"F<vendorlib> e F<vendorarch>."
#. type: textblock
-#: dh_perl:63
+#: dh_perl:67
msgid "Debian policy, version 3.8.3"
msgstr "Debian policy, versão 3.8.3"
#. type: textblock
-#: dh_perl:65
+#: dh_perl:69
msgid "Perl policy, version 1.20"
msgstr "Perl policy, versão 1.20"
#. type: textblock
-#: dh_perl:160
+#: dh_perl:196
msgid "Brendan O'Dea <bod@debian.org>"
msgstr "Brendan O'Dea <bod@debian.org>"
@@ -6901,12 +11926,12 @@ msgstr ""
"binário."
#. type: textblock
-#: dh_prep:14
+#: dh_prep:17
msgid "B<dh_prep> [S<I<debhelper options>>] [B<-X>I<item>]"
msgstr "B<dh_prep> [S<I<debhelper opções>>] [B<-X>I<item>]"
#. type: textblock
-#: dh_prep:18
+#: dh_prep:21
msgid ""
"B<dh_prep> is a debhelper program that performs some file cleanups in "
"preparation for building a binary package. (This is what B<dh_clean -k> used "
@@ -6920,16 +11945,16 @@ msgstr ""
"pacote binário."
#. type: textblock
-#: dh_prep:23
+#: dh_prep:26
msgid ""
"It is typically run at the top of the B<binary-arch> and B<binary-indep> "
"targets, or at the top of a target such as install that they depend on."
msgstr ""
-"Corre tipicamente no topo das metas B<binary-arch> e B<binary-indep>, ou no "
-"topo de uma meta tal que instala o que eles dependem de."
+"Corre tipicamente no topo dos alvos B<binary-arch> e B<binary-indep>, ou no "
+"topo de um alvo tal que instala o que eles dependem de."
#. type: textblock
-#: dh_prep:32
+#: dh_prep:35
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"deleted, even if they would normally be deleted. You may use this option "
@@ -6941,33 +11966,12 @@ msgstr ""
"excluir."
#. type: textblock
-#: dh_scrollkeeper:5
-msgid "dh_scrollkeeper - deprecated no-op"
-msgstr "dh_scrollkeeper - não-operativo descontinuado"
-
-#. type: textblock
-#: dh_scrollkeeper:14
-msgid "B<dh_scrollkeeper> [S<I<debhelper options>>] [B<-n>] [S<I<directory>>]"
-msgstr "B<dh_scrollkeeper> [S<I<debhelper opções>>] [B<-n>] [S<I<directório>>]"
-
-#. type: textblock
-#: dh_scrollkeeper:18
-msgid ""
-"B<dh_scrollkeeper> was a debhelper program that handled registering OMF "
-"files for ScrollKeeper. However, it no longer does anything, and is now "
-"deprecated."
-msgstr ""
-"B<dh_scrollkeeper> era um programa debhelper que lidava com o registo de "
-"ficheiros OMF para o ScrollKeeper. No entanto, já não faz nada, e agora está "
-"descontinuado."
-
-#. type: textblock
#: dh_shlibdeps:5
msgid "dh_shlibdeps - calculate shared library dependencies"
msgstr "dh_shlibdeps - calcula dependências de bibliotecas partilhadas"
#. type: textblock
-#: dh_shlibdeps:15
+#: dh_shlibdeps:19
msgid ""
"B<dh_shlibdeps> [S<I<debhelper options>>] [B<-L>I<package>] [B<-"
"l>I<directory>] [B<-X>I<item>] [S<B<--> I<params>>]"
@@ -6976,7 +11980,7 @@ msgstr ""
"l>I<directório>] [B<-X>I<item>] [S<B<--> I<params>>]"
#. type: textblock
-#: dh_shlibdeps:19
+#: dh_shlibdeps:23
msgid ""
"B<dh_shlibdeps> is a debhelper program that is responsible for calculating "
"shared library dependencies for packages."
@@ -6985,7 +11989,7 @@ msgstr ""
"dependências de bibliotecas partilhadas para os pacotes."
#. type: textblock
-#: dh_shlibdeps:22
+#: dh_shlibdeps:26
msgid ""
"This program is merely a wrapper around L<dpkg-shlibdeps(1)> that calls it "
"once for each package listed in the F<control> file, passing it a list of "
@@ -6996,7 +12000,7 @@ msgstr ""
"lhe uma lista de executáveis ELF e bibliotecas partilhadas que encontrou."
#. type: textblock
-#: dh_shlibdeps:32
+#: dh_shlibdeps:36
msgid ""
"Exclude files that contain F<item> anywhere in their filename from being "
"passed to B<dpkg-shlibdeps>. This will make their dependencies be ignored. "
@@ -7010,17 +12014,17 @@ msgstr ""
"excluir mais do que uma coisa."
#. type: textblock
-#: dh_shlibdeps:39
+#: dh_shlibdeps:43
msgid "Pass I<params> to L<dpkg-shlibdeps(1)>."
msgstr "Passa I<params> para L<dpkg-shlibdeps(1)>."
#. type: =item
-#: dh_shlibdeps:41
+#: dh_shlibdeps:45
msgid "B<-u>I<params>, B<--dpkg-shlibdeps-params=>I<params>"
msgstr "B<-u>I<params>, B<--dpkg-shlibdeps-params=>I<params>"
#. type: textblock
-#: dh_shlibdeps:43
+#: dh_shlibdeps:47
msgid ""
"This is another way to pass I<params> to L<dpkg-shlibdeps(1)>. It is "
"deprecated; use B<--> instead."
@@ -7029,12 +12033,12 @@ msgstr ""
"descontinuado, use B<--> em vez deste."
#. type: =item
-#: dh_shlibdeps:46
+#: dh_shlibdeps:50
msgid "B<-l>I<directory>[B<:>I<directory> ...]"
msgstr "B<-l>I<directório>[B<:>I<directório> ...]"
#. type: textblock
-#: dh_shlibdeps:48
+#: dh_shlibdeps:52
msgid ""
"With recent versions of B<dpkg-shlibdeps>, this option is generally not "
"needed."
@@ -7043,7 +12047,7 @@ msgstr ""
"necessária."
#. type: textblock
-#: dh_shlibdeps:51
+#: dh_shlibdeps:55
msgid ""
"It tells B<dpkg-shlibdeps> (via its B<-l> parameter), to look for private "
"package libraries in the specified directory (or directories -- separate "
@@ -7061,22 +12065,23 @@ msgstr ""
"de bibliotecas."
#. type: =item
-#: dh_shlibdeps:59
+#: dh_shlibdeps:63
msgid "B<-L>I<package>, B<--libpackage=>I<package>"
msgstr "B<-L>I<pacote>, B<--libpackage=>I<pacote>"
#. type: textblock
-#: dh_shlibdeps:61
+#: dh_shlibdeps:65
msgid ""
"With recent versions of B<dpkg-shlibdeps>, this option is generally not "
-"needed, unless your package builds multiple flavors of the same library."
+"needed, unless your package builds multiple flavors of the same library or "
+"is relying on F<debian/shlibs.local> for an internal library."
msgstr ""
"Com versões recentes do B<dpkg-shlibdeps>, esta opção geralmente não é "
"necessária, a menos que o seu pacote compile múltiplos \"sabores\" da mesma "
-"biblioteca."
+"biblioteca ou confie em F<debian/shlibs.local> para uma biblioteca interna."
#. type: textblock
-#: dh_shlibdeps:64
+#: dh_shlibdeps:69
msgid ""
"It tells B<dpkg-shlibdeps> (via its B<-S> parameter) to look first in the "
"package build directory for the specified package, when searching for "
@@ -7087,7 +12092,15 @@ msgstr ""
"procura por bibliotecas, ficheiros de símbolos, e ficheiros shlibs."
#. type: textblock
-#: dh_shlibdeps:72
+#: dh_shlibdeps:73
+msgid ""
+"If needed, this can be passed multiple times with different package names."
+msgstr ""
+"Se necessário, isto pode ser passado várias vezes com diferentes nomes de "
+"pacotes."
+
+#. type: textblock
+#: dh_shlibdeps:80
msgid ""
"Suppose that your source package produces libfoo1, libfoo-dev, and libfoo-"
"bin binary packages. libfoo-bin links against libfoo1, and should depend on "
@@ -7099,7 +12112,7 @@ msgstr ""
"B<dh_shlibdeps>:"
#. type: verbatim
-#: dh_shlibdeps:76
+#: dh_shlibdeps:84
#, no-wrap
msgid ""
"\tdh_makeshlibs\n"
@@ -7111,7 +12124,7 @@ msgstr ""
"\n"
#. type: textblock
-#: dh_shlibdeps:79
+#: dh_shlibdeps:87
msgid ""
"This will have the effect of generating automatically a shlibs file for "
"libfoo1, and using that file and the libfoo1 library in the F<debian/libfoo1/"
@@ -7123,7 +12136,7 @@ msgstr ""
"partilhada."
#. type: textblock
-#: dh_shlibdeps:84
+#: dh_shlibdeps:92
msgid ""
"If a libbar1 package is also produced, that is an alternate build of libfoo, "
"and is installed into F</usr/lib/bar/>, you can make libfoo-bin depend on "
@@ -7134,7 +12147,7 @@ msgstr ""
"dependente de libbar1 como se segue:"
#. type: verbatim
-#: dh_shlibdeps:88
+#: dh_shlibdeps:96
#, no-wrap
msgid ""
"\tdh_shlibdeps -Llibbar1 -l/usr/lib/bar\n"
@@ -7144,7 +12157,7 @@ msgstr ""
"\t\n"
#. type: textblock
-#: dh_shlibdeps:154
+#: dh_shlibdeps:206
msgid "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
msgstr "L<debhelper(7)>, L<dpkg-shlibdeps(1)>"
@@ -7157,7 +12170,7 @@ msgstr ""
"estáticas"
#. type: textblock
-#: dh_strip:15
+#: dh_strip:18
msgid ""
"B<dh_strip> [S<I<debhelper options>>] [B<-X>I<item>] [B<--dbg-"
"package=>I<package>] [B<--keep-debug>]"
@@ -7166,18 +12179,18 @@ msgstr ""
"package=>I<pacote>] [B<--keep-debug>]"
#. type: textblock
-#: dh_strip:19
+#: dh_strip:22
msgid ""
-"B<dh_strip> is a debhelper program that is responsible for stripping "
-"executables, shared libraries, and static libraries that are not used for "
-"debugging."
+"B<dh_strip> is a debhelper program that is responsible for stripping out "
+"debug symbols in executables, shared libraries, and static libraries that "
+"are not needed during execution."
msgstr ""
-"B<dh_strip> é um programa debhelper que é responsável por despojar "
-"executáveis, bibliotecas partilhadas, e bibliotecas estáticas que não são "
-"usadas para depuração."
+"B<dh_strip> é um programa debhelper que é responsável por retirar símbolos "
+"de depuração em executáveis, bibliotecas partilhadas, e bibliotecas "
+"estáticas que não são necessárias durante a execução."
#. type: textblock
-#: dh_strip:23
+#: dh_strip:26
msgid ""
"This program examines your package build directories and works out what to "
"strip on its own. It uses L<file(1)> and file permissions and filenames to "
@@ -7197,7 +12210,7 @@ msgstr ""
"todos os casos."
#. type: textblock
-#: dh_strip:31
+#: dh_strip:34
msgid ""
"Since it is very hard to automatically guess if a file is a module, and hard "
"to determine how to strip a module, B<dh_strip> does not currently deal with "
@@ -7207,24 +12220,30 @@ msgstr ""
"difícil determinar como despojar um módulo, o B<dh_strip> presentemente não "
"lida com o despojar de módulos binários como os ficheiros F<.o>."
-#. type: textblock
-#: dh_strip:41
-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 "
-"things to exclude."
-msgstr ""
-"Exclui ficheiros que contenham I<item> em qualquer ponto do seu nome de "
-"serem despojados. Você pode usar esta opção várias vezes para construir uma "
-"lista de coisas a excluir."
-
#. type: =item
-#: dh_strip:45
+#: dh_strip:48
msgid "B<--dbg-package=>I<package>"
msgstr "B<--dbg-package=>I<pacote>"
#. type: textblock
-#: dh_strip:47
+#: dh_strip:50 dh_strip:70
+msgid ""
+"B<This option is a now special purpose option that you normally do not "
+"need>. In most cases, there should be little reason to use this option for "
+"new source packages as debhelper automatically generates debug packages "
+"(\"dbgsym packages\"). B<If you have a manual --dbg-package> that you want "
+"to replace with an automatically generated debug symbol package, please see "
+"the B<--dbgsym-migration> option."
+msgstr ""
+"B<Esta opção é agora uma opção de objectivo especial que normalmente você "
+"não precisa>. Na maioria dos casos, deverá haver poucas razões para usar "
+"esta opção para novos pacotes fonte pois o debhelper gera automaticamente "
+"pacotes de depuração (pacotes \"dbgsym\"). B<Se você tem um --dbg-package "
+"manual> que deseja substituir por um pacote de símbolos de depuração gerado "
+"automaticamente, por favor veja a opção B<--dbgsym-migration>."
+
+#. type: textblock
+#: dh_strip:58
msgid ""
"Causes B<dh_strip> to save debug symbols stripped from the packages it acts "
"on as independent files in the package build directory of the specified "
@@ -7235,7 +12254,7 @@ msgstr ""
"do pacote de depuração especificado."
#. type: textblock
-#: dh_strip:51
+#: dh_strip:62
msgid ""
"For example, if your packages are libfoo and foo and you want to include a "
"I<foo-dbg> package with debugging symbols, use B<dh_strip --dbg-"
@@ -7246,28 +12265,21 @@ msgstr ""
"package=>I<foo-dbg>."
#. type: textblock
-#: dh_strip:54
+#: dh_strip:65
msgid ""
-"Note that this option behaves significantly different in debhelper "
-"compatibility levels 4 and below. Instead of specifying the name of a debug "
-"package to put symbols in, it specifies a package (or packages) which should "
-"have separated debug symbols, and the separated symbols are placed in "
-"packages with B<-dbg> added to their name."
+"This option implies B<--no-automatic-dbgsym> and I<cannot> be used with B<--"
+"automatic-dbgsym> or B<--dbgsym-migration>."
msgstr ""
-"Note que esta opção comporta-se de modo significativamente diferente nos "
-"níveis 4 e inferiores de compatibilidade do debhelper. Em vez de especificar "
-"o nome de um pacote de depuração para meter símbolos lá dentro, especifica "
-"um pacote (ou pacotes) que devem ter os símbolos de depuração separados, e "
-"os símbolos separados são colocados em pacotes com B<-dbg> adicionado ao seu "
-"nome."
+"Esta opção implica que B<--no-automatic-dbgsym> e I<não pode> ser usado com "
+"B<--automatic-dbgsym> ou B<--dbgsym-migration>."
#. type: =item
-#: dh_strip:60
+#: dh_strip:68
msgid "B<-k>, B<--keep-debug>"
msgstr "B<-k>, B<--keep-debug>"
#. type: textblock
-#: dh_strip:62
+#: dh_strip:78
msgid ""
"Debug symbols will be retained, but split into an independent file in F<usr/"
"lib/debug/> in the package build directory. B<--dbg-package> is easier to "
@@ -7279,80 +12291,141 @@ msgstr ""
"flexível."
#. type: textblock
-#: dh_strip:70
+#: dh_strip:82
msgid ""
-"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
-"nothing will be stripped, in accordance with Debian policy (section 10.1 "
-"\"Binaries\")."
+"This option implies B<--no-automatic-dbgsym> and I<cannot> be used with B<--"
+"automatic-dbgsym>."
msgstr ""
-"Se a variável de ambiente B<DEB_BUILD_OPTIONS> conter B<nostrip>, nada será "
-"despojado, em conformidade com a política Debian (secção 10.1 \"Binários\")."
+"Esta opção implica que B<--no-automatic-dbgsym> e I<cannot> seja usado com "
+"B<--automatic-dbgsym>."
-#. type: textblock
-#: dh_strip:76
-msgid "Debian policy, version 3.0.1"
-msgstr "Debian policy, versão 3.0.1"
-
-#. type: textblock
-#: dh_suidregister:5
-msgid "dh_suidregister - suid registration program (deprecated)"
-msgstr "dh_suidregister - programa de registo de suid (descontinuado)"
+#. type: =item
+#: dh_strip:85
+msgid "B<--dbgsym-migration=>I<package-relation>"
+msgstr "B<--dbgsym-migration=>I<package-relation>"
#. type: textblock
-#: dh_suidregister:9 dh_undocumented:14
-msgid "Do not run!"
-msgstr "Não correr!"
+#: dh_strip:87
+msgid ""
+"This option is used to migrate from a manual \"-dbg\" package (created with "
+"B<--dbg-package>) to an automatic generated debug symbol package. This "
+"option should describe a valid B<Replaces>- and B<Breaks>-relation, which "
+"will be added to the debug symbol package to avoid file conflicts with the "
+"(now obsolete) -dbg package."
+msgstr ""
+"Esta opção é usada para migrar de um pacote \"-dbg\" manual (criado com B<--"
+"dbg-package>) para um pacote de símbolos de depuração gerado "
+"automaticamente. Esta opção deve descrever uma relação B<Replaces>- e "
+"B<Breaks> válida, a qual será adicionada ao pacote de símbolos de depuração "
+"para evitar conflitos de ficheiros com o pacote -dbg (agora obsoleto)."
#. type: textblock
-#: dh_suidregister:13
+#: dh_strip:93
msgid ""
-"This program used to register suid and sgid files with L<suidregister(1)>, "
-"but with the introduction of L<dpkg-statoverride(8)>, registration of files "
-"in this way is unnecessary, and even harmful, so this program is deprecated "
-"and should not be used."
+"This option implies B<--automatic-dbgsym> and I<cannot> be used with B<--"
+"keep-debug>, B<--dbg-package> or B<--no-automatic-dbgsym>."
msgstr ""
-"Este programa era usado para registar ficheiros suid e sgid com o "
-"L<suidregister(1)>, mas com a introdução de L<dpkg-statoverride(8)>, o "
-"registo de ficheiros desta maneira é desnecessário, e até nocivo, então este "
-"programa está descontinuado e não deve ser usado."
-
-#. type: =head1
-#: dh_suidregister:18
-msgid "CONVERTING TO STATOVERRIDE"
-msgstr "CONVERTENDO PARA STATOVERRIDE"
+"Esta opção implica que B<--automatic-dbgsym> e I<cannot> seja usado com B<--"
+"keep-debug>, B<--dbg-package> ou B<--no-automatic-dbgsym>."
#. type: textblock
-#: dh_suidregister:20
+#: dh_strip:96
+msgid "Examples:"
+msgstr "Exemplos:"
+
+#. type: verbatim
+#: dh_strip:98
+#, no-wrap
msgid ""
-"Converting a package that uses this program to use the new statoverride "
-"mechanism is easy. Just remove the call to B<dh_suidregister> from F<debian/"
-"rules>, and add a versioned conflicts into your F<control> file, as follows:"
+" dh_strip --dbgsym-migration='libfoo-dbg (<< 2.1-3~)'\n"
+"\n"
msgstr ""
-"Converter um pacote que usa este programa para usar o novo mecanismo "
-"statoverride é fácil. Basta remover a chamada ao B<dh_suidregister> de "
-"F<debian/rules>, e adicionar um \"conflicts\" com versão no seu ficheiro "
-"F<control>, como se segue:"
+" dh_strip --dbgsym-migration='libfoo-dbg (<< 2.1-3~)'\n"
+"\n"
#. type: verbatim
-#: dh_suidregister:25
+#: dh_strip:100
#, no-wrap
msgid ""
-" Conflicts: suidmanager (<< 0.50)\n"
+" dh_strip --dbgsym-migration='libfoo-tools-dbg (<< 2.1-3~), libfoo2-dbg (<< 2.1-3~)'\n"
"\n"
msgstr ""
-" Conflicts: suidmanager (<< 0.50)\n"
+" dh_strip --dbgsym-migration='libfoo-tools-dbg (<< 2.1-3~), libfoo2-dbg (<< 2.1-3~)'\n"
"\n"
+#. type: =item
+#: dh_strip:102
+msgid "B<--automatic-dbgsym>, B<--no-automatic-dbgsym>"
+msgstr "B<--automatic-dbgsym>, B<--no-automatic-dbgsym>"
+
#. type: textblock
-#: dh_suidregister:27
+#: dh_strip:104
msgid ""
-"The conflicts is only necessary if your package used to register things with "
-"suidmanager; if it did not, you can just remove the call to this program "
-"from your rules file."
+"Control whether B<dh_strip> should be creating debug symbol packages when "
+"possible."
msgstr ""
-"O \"conflicts\" é apenas necessário se o seu pacote costumava registar as "
-"coisas com o suidmanager; se não o fazia, você pode simplesmente remover a "
-"chamada a este programa do seu ficheiro de regras."
+"Controla se o B<dh_strip> deve criar pacotes de símbolos de depuração quando "
+"possível."
+
+#. type: textblock
+#: dh_strip:107
+msgid "The default is to create debug symbol packages."
+msgstr "A predefinição é criar pacotes de símbolos de depuração."
+
+#. type: =item
+#: dh_strip:109
+msgid "B<--ddebs>, B<--no-ddebs>"
+msgstr "B<--ddebs>, B<--no-ddebs>"
+
+#. type: textblock
+#: dh_strip:111
+msgid "Historical name for B<--automatic-dbgsym> and B<--no-automatic-dbgsym>."
+msgstr "Nome histórico para B<--automatic-dbgsym> e B<--no-automatic-dbgsym>."
+
+#. type: =item
+#: dh_strip:113
+msgid "B<--ddeb-migration=>I<package-relation>"
+msgstr "B<--ddeb-migration=>I<package-relation>"
+
+#. type: textblock
+#: dh_strip:115
+msgid "Historical name for B<--dbgsym-migration>."
+msgstr "Nome histórico para B<--dbgsym-migration>."
+
+#. type: textblock
+#: dh_strip:121
+msgid ""
+"If the B<DEB_BUILD_OPTIONS> environment variable contains B<nostrip>, "
+"nothing will be stripped, in accordance with Debian policy (section 10.1 "
+"\"Binaries\"). This will also inhibit the automatic creation of debug "
+"symbol packages."
+msgstr ""
+"Se a variável de ambiente B<DEB_BUILD_OPTIONS> conter B<nostrip>, nada será "
+"despojado, em conformidade com a política Debian (secção 10.1 \"Binários\"). "
+"Isto irá também inibir a criação automática de pacotes de símbolos de "
+"depuração."
+
+#. type: textblock
+#: dh_strip:126
+msgid ""
+"The automatic creation of debug symbol packages can also be prevented by "
+"adding B<noautodbgsym> to the B<DEB_BUILD_OPTIONS> environment variable. "
+"However, B<dh_strip> will still add debuglinks to ELF binaries when this "
+"flag is set. This is to ensure that the regular deb package will be "
+"identical with and without this flag (assuming it is otherwise \"bit-for-"
+"bit\" reproducible)."
+msgstr ""
+"A criação automática de pacotes de símbolos de depuração também pode ser "
+"prevenida ao adicionar B<noautodbgsym> à variável de ambiente "
+"B<DEB_BUILD_OPTIONS>. No entanto, B<dh_strip> irá na mesma adicionar "
+"debuglinks aos binários ELF quando a bandeira estiver definida. Isto não "
+"garante que o pacote deb regular irá ser idêntico com e sem esta bandeira "
+"(assumindo que é caso contrário reproduzível \"bit por bit\"."
+
+#. type: textblock
+#: dh_strip:135
+msgid "Debian policy, version 3.0.1"
+msgstr "Debian policy, versão 3.0.1"
#. type: textblock
#: dh_testdir:5
@@ -7360,12 +12433,12 @@ msgid "dh_testdir - test directory before building Debian package"
msgstr "dh_testdir - testa o directório antes de compilar o pacote Debian"
#. type: textblock
-#: dh_testdir:14
+#: dh_testdir:17
msgid "B<dh_testdir> [S<I<debhelper options>>] [S<I<file> ...>]"
msgstr "B<dh_testdir> [S<I<debhelper opções>>] [S<I<ficheiro> ...>]"
#. type: textblock
-#: dh_testdir:18
+#: dh_testdir:21
msgid ""
"B<dh_testdir> tries to make sure that you are in the correct directory when "
"building a Debian package. It makes sure that the file F<debian/control> "
@@ -7378,63 +12451,132 @@ msgstr ""
"termina com um erro."
#. type: textblock
-#: dh_testdir:29
+#: dh_testdir:32
msgid "Test for the existence of these files too."
msgstr "Testa também a existência destes ficheiros."
#. type: textblock
-#: dh_testroot:5
-msgid "dh_testroot - ensure that a package is built as root"
-msgstr "dh_testroot - assegura que um pacote é compilado como root."
+#: dh_testroot:7
+msgid ""
+"dh_testroot - ensure that a package is built with necessary level of root "
+"permissions"
+msgstr ""
+"dh_testroot - assegura que um pacote é compilado com o nível necessário de "
+"permissões de root."
#. type: textblock
-#: dh_testroot:9
+#: dh_testroot:11
msgid "B<dh_testroot> [S<I<debhelper options>>]"
msgstr "B<dh_testroot> [S<I<debhelper opções>>]"
#. type: textblock
-#: dh_testroot:13
+#: dh_testroot:15
msgid ""
-"B<dh_testroot> simply checks to see if you are root. If not, it exits with "
-"an error. Debian packages must be built as root, though you can use "
-"L<fakeroot(1)>"
+"B<dh_testroot> is used to determine if the target is being run with suffient "
+"access to root(-like) features."
msgstr ""
-"B<dh_testroot> simplesmente verifica se você é root. Se não é, termina com "
-"um erro. Os pacotes Debian têm de ser compilados pelo root, embora você "
-"possa usar o L<fakeroot(1)>."
+"B<dh_testroot> é usado para determinar se um alvo está a ser corrido com "
+"acesso suficiente a funcionalidades de (tipo-)root."
#. type: textblock
-#: dh_undocumented:5
-msgid "dh_undocumented - undocumented.7 symlink program (deprecated no-op)"
+#: dh_testroot:18
+msgid ""
+"The definition of sufficient access depends on whether the builder (the tool "
+"invoking the F<debian/rules> target) supports the I<Rules-Requires-Root> "
+"(R³) field. If the builder supports R³, then it will set the environment "
+"variable I<DEB_RULES_REQUIRES_ROOT> and B<dh_testroot> will validate that "
+"the builder followed the minimum requirements for the given value of "
+"I<DEB_RULES_REQUIRES_ROOT>."
+msgstr ""
+"A definição de acesso suficiente depende em se o construtor (a ferramenta "
+"que invoca o alvo F<debian/rules>) suporta o campo I<Rules-Requires-Root> "
+"(R³). Se o construtor suportar R³, então irá regular a variável de ambiente "
+"I<DEB_RULES_REQUIRES_ROOT> e B<dh_testroot> irá validar que o construtor "
+"seguiu os requerimentos mínimos para a valor fornecido de "
+"I<DEB_RULES_REQUIRES_ROOT>."
+
+#. type: textblock
+#: dh_testroot:25
+msgid ""
+"If the builder does not support I<Rules-Requires-Root>, then it will not set "
+"the I<DEB_RULES_REQUIRES_ROOT> environment variable. This will in turn make "
+"B<dh_testroot> (and the rest of debhelper) fall back to assuming that "
+"(fake)root is implied."
+msgstr ""
+"Se o construtor não suportar I<Rules-Requires-Root>, então não irá regular a "
+"variável de ambiente I<DEB_RULES_REQUIRES_ROOT>. Isto irá fazer com que "
+"B<dh_testroot> (e o resto do debhelper) recorra a assumir que é implicado "
+"(fake)root."
+
+#. type: textblock
+#: dh_testroot:30
+msgid ""
+"The following is a summary of how B<dh_testroot> behaves based on the "
+"I<DEB_RULES_REQUIRES_ROOT> environment variable (leading and trailing "
+"whitespace in the variable is ignored)."
+msgstr ""
+"O seguinte é um sumário de como B<dh_testroot> se comporta baseado na "
+"variável de ambiente I<DEB_RULES_REQUIRES_ROOT> (os espaços em branco no "
+"inicio e no final na variável são ignorados)."
+
+#. type: textblock
+#: dh_testroot:38
+msgid ""
+"If unset, or set to C<binary-targets>, then B<dh_testroot> asserts that it "
+"is run as root or under L<fakeroot(1)>."
msgstr ""
-"dh_undocumented - programa de links simbólicos undocumented.7 (não-operativo "
-"descontinuado)"
+"Se não definido, ou definido para C<binary-targets>, então B<dh_testroot> "
+"deduz que é corrido como root ou sob L<fakeroot(1)>."
#. type: textblock
-#: dh_undocumented:18
+#: dh_testroot:43
msgid ""
-"This program used to make symlinks to the F<undocumented.7> man page for man "
-"pages not present in a package. Debian policy now frowns on use of the "
-"F<undocumented.7> man page, and so this program does nothing, and should not "
-"be used."
+"If set to C<no>, then B<dh_testroot> returns successfully (without "
+"performing any additional checks)."
msgstr ""
-"Este programa era usado para fazer links simbólicos para as páginas de "
-"manual F<undocumented.7> para manuais não presentes no pacote. A política "
-"Debian agora não vê com bons olhos o uso de manuais F<undocumented.7>, e por "
-"isso este programa não faz nada, e não deve ser usado."
+"Se definido para C<no>, então B<dh_testroot> retorna com sucesso (sem "
+"executar nenhuma verificação adicional)."
#. type: textblock
-#: dh_usrlocal:5
+#: dh_testroot:48
+msgid ""
+"If set to any other value than the above, then B<dh_testroot> asserts that "
+"it is either run as root (or under L<fakeroot(1)>) or the builder has "
+"provided the B<DEB_GAIN_ROOT_CMD> environment variable (e.g. via dpkg-"
+"buildpackage -r)."
+msgstr ""
+"Se definido para qualquer outro valor que o de cima, então B<dh_testroot> "
+"declara que ou é corrido como root (ou sob L<fakeroot(1)>) ou o construtor "
+"disponibilizou a variável de ambiente B<DEB_GAIN_ROOT_CMD> (ex. via dpkg-"
+"buildpackage -r)."
+
+#. type: textblock
+#: dh_testroot:55
+msgid ""
+"Please note that B<dh_testroot> does I<not> read the I<Rules-Requires-Root> "
+"field. Which implies that B<dh_testroot> may produce incorrect result if "
+"the builder lies in I<DEB_RULES_REQUIRES_ROOT>. On the flip side, it also "
+"enables things like testing for what will happen when "
+"I<DEB_RULES_REQUIRES_ROOT> is set to a given value."
+msgstr ""
+"Por favor note que B<dh_testroot> I<não> lê o campo I<Rules-Requires-Root>. "
+"O que implica que B<dh_testroot> pode produzir resultados incorrectos se o "
+"construtor apoiar-se em I<DEB_RULES_REQUIRES_ROOT>. Por outro lado, também "
+"activa coisas como testar o que irá acontecer quando "
+"I<DEB_RULES_REQUIRES_ROOT> está definida para um determinado valor."
+
+#. type: textblock
+#: dh_usrlocal:7
msgid "dh_usrlocal - migrate usr/local directories to maintainer scripts"
-msgstr "dh_usrlocal - migra directórios usr/local para scripts de mantenedor."
+msgstr "dh_usrlocal - migra directórios usr/local para scripts de maintainer."
#. type: textblock
-#: dh_usrlocal:17
+#: dh_usrlocal:21
msgid "B<dh_usrlocal> [S<I<debhelper options>>] [B<-n>]"
msgstr "B<dh_usrlocal> [S<I<debhelper opções>>] [B<-n>]"
#. type: textblock
-#: dh_usrlocal:21
+#: dh_usrlocal:25
msgid ""
"B<dh_usrlocal> is a debhelper program that can be used for building packages "
"that will provide a subdirectory in F</usr/local> when installed."
@@ -7444,7 +12586,7 @@ msgstr ""
"instalados."
#. type: textblock
-#: dh_usrlocal:24
+#: dh_usrlocal:28
msgid ""
"It finds subdirectories of F<usr/local> in the package build directory, and "
"removes them, replacing them with maintainer script snippets (unless B<-n> "
@@ -7455,37 +12597,1343 @@ msgid ""
"snippets."
msgstr ""
"Encontra sub-directórios de F<usr/local> no directório de compilação do "
-"pacote, e remove-os, substituindo-os por fragmentos de script de mantenedor "
+"pacote, e remove-os, substituindo-os por fragmentos de script de maintainer "
"(a menos que seja usado B<-n>) para criar os directórios durante a "
-"instalação, e removê-los quando o pacote é removido, num modo em "
+"instalação, e remove-los quando o pacote é removido, num modo em "
"conformidade com a política Debian. Estes fragmentos são inseridos nos "
-"scripts de mantenedor pelo B<dh_installdeb>. Veja L<dh_installdeb(1)> para "
-"uma explicação sobre fragmentos de scripts de mantenedor do debhelper."
+"scripts de maintainer pelo B<dh_installdeb>. Veja L<dh_installdeb(1)> para "
+"uma explicação sobre fragmentos de scripts de maintainer do debhelper."
+
+#. type: textblock
+#: dh_usrlocal:36
+msgid ""
+"When the I<DEB_RULES_REQUIRES_ROOT> environment variable is not "
+"(effectively) I<binary-targets>, the directories in F</usr/local> will be "
+"handled as if they were owned by root:root (see below)."
+msgstr ""
+"Quando a variável de ambiente I<DEB_RULES_REQUIRES_ROOT> não é "
+"(efectivamente) I<binary-targets>, os directórios em F</usr/local> serão "
+"lidados como se fossem da posse de root:root (veja em baixo)."
#. type: textblock
-#: dh_usrlocal:32
+#: dh_usrlocal:40
msgid ""
-"If the directories found in the build tree have unusual owners, groups, or "
-"permissions, then those values will be preserved in the directories made by "
-"the F<postinst> script. However, as a special exception, if a directory is "
-"owned by root.root, it will be treated as if it is owned by root.staff and "
-"is mode 2775. This is useful, since that is the group and mode policy "
-"recommends for directories in F</usr/local>."
+"When the I<DEB_RULES_REQUIRES_ROOT> environment variable has an effective "
+"value of I<binary-targets>, the owners, groups and permissions will be "
+"preserved with the sole exception where the directory is owned by root:root."
msgstr ""
-"Se os directórios encontrados na árvore de compilação tiverem donos, grupos, "
-"ou permissões fora do habitual, então esses valores serão preservados nos "
-"directórios feitos pelo script F<postinst>. No entanto, como uma excepção "
-"especial, se um directório for propriedade de root.root, será tratado como "
-"se fosse propriedade de root.staf e o seu modo em 2775. Isto é útil, pois é "
-"esse o grupo e modo que a política recomenda para directórios em F</usr/"
-"local>."
+"Quando a variável de ambiente I<DEB_RULES_REQUIRES_ROOT> tem um valor "
+"efectivo de I<binary-targets>, então donos, grupos e permissões serão "
+"preservados com a única excepção onde o directório é da posse de root:root."
#. type: textblock
-#: dh_usrlocal:57
+#: dh_usrlocal:44
+msgid ""
+"If a directory is owned by root:root, then ownership will be determined at "
+"install time. The ownership and permission bits will either be root:root "
+"mode 0755 or root:staff mode 02775. The actual choice depends on whether "
+"the system has F</etc/staff-group-for-usr-local> (as documented in the "
+"Debian Policy Manual §9.1.2 since version 4.1.4)"
+msgstr ""
+"Se um directório é da posse de root:root, então o dono é determinado na "
+"altura da instalação. Os bits de posse e permissões irão ser ou root:root "
+"modo 0755 ou root:staff modo 02775. A escolha depende em se o sistema tem "
+"F</etc/staff-group-for-usr-local> (como documentado no Manual de Política "
+"Debian §9.1.2 desde a versão 4.1.4)"
+
+#. type: textblock
+#: dh_usrlocal:68
msgid "Debian policy, version 2.2"
msgstr "Debian policy, versão 2.2"
#. type: textblock
-#: dh_usrlocal:124
+#: dh_usrlocal:144
msgid "Andrew Stribblehill <ads@debian.org>"
msgstr "Andrew Stribblehill <ads@debian.org>"
+
+#. type: textblock
+#: dh_systemd_enable:5
+msgid "dh_systemd_enable - enable/disable systemd unit files"
+msgstr "dh_systemd_enable - activa/desactiva ficheiros unit do systemd"
+
+#. type: textblock
+#: dh_systemd_enable:18
+msgid ""
+"B<dh_systemd_enable> [S<I<debhelper options>>] [B<--no-enable>] [B<--"
+"name=>I<name>] [S<I<unit file> ...>]"
+msgstr ""
+"B<dh_systemd_enable> [S<I<debhelper options>>] [B<--no-enable>] [B<--"
+"name=>I<name>] [S<I<unit file> ...>]"
+
+#. type: textblock
+#: dh_systemd_enable:22
+msgid ""
+"B<dh_systemd_enable> is a debhelper program that is responsible for enabling "
+"and disabling systemd unit files."
+msgstr ""
+"B<dh_systemd_enable>é um programa debhelper que é responsável por activar e "
+"desactivar ficheiros unit do systemd."
+
+#. type: textblock
+#: dh_systemd_enable:25
+msgid ""
+"In the simple case, it finds all unit files installed by a package (e.g. "
+"bacula-fd.service) and enables them. It is not necessary that the machine "
+"actually runs systemd during package installation time, enabling happens on "
+"all machines in order to be able to switch from sysvinit to systemd and back."
+msgstr ""
+"Num caso simples, encontra todos os ficheiros unit instados por um pacote "
+"(ex. bacula-fd.service) e activa-os. Não é necessário que a máquina esteja "
+"realmente a correr o systemd durante o tempo da instalação do pacote, a "
+"activação acontece em todas as máquinas de modo a ser possível mudar de "
+"sysvinit para systemd e vice-versa."
+
+#. type: textblock
+#: dh_systemd_enable:30
+msgid ""
+"In the complex case, you can call B<dh_systemd_enable> and "
+"B<dh_systemd_start> manually (by overwriting the debian/rules targets) and "
+"specify flags per unit file. An example is colord, which ships colord."
+"service, a dbus-activated service without an [Install] section. This service "
+"file cannot be enabled or disabled (a state called \"static\" by systemd) "
+"because it has no [Install] section. Therefore, running dh_systemd_enable "
+"does not make sense."
+msgstr ""
+"Num caso complexo, você pode chamar B<dh_systemd_enable> e "
+"B<dh_systemd_start> manualmente (ao sobrescrever os alvos debian/rules) e "
+"especificar bandeiras por cada ficheiro unit. Um exemplo é colord, o qual "
+"contém o serviço colord, um serviço dbus-activated sem uma secção [Install]. "
+"Este ficheiro de serviço não pode ser activado ou desactivado (um estado "
+"chamado \"static\" pelo systemd) porque não tem nenhuma secção [Install]. "
+"Assim sendo, correr dh_systemd_enable não faz qualquer sentido."
+
+#. type: textblock
+#: dh_systemd_enable:37
+msgid ""
+"For only generating blocks for specific service files, you need to pass them "
+"as arguments, e.g. B<dh_systemd_enable quota.service> and "
+"B<dh_systemd_enable --name=quotarpc quotarpc.service>."
+msgstr ""
+"Para apenas gerar blocos para ficheiros de serviço específicos, você precisa "
+"de passa-los como argumentos, exemplos B<dh_systemd_enable quota.service> e "
+"B<dh_systemd_enable --name=quotarpc quotarpc.service>."
+
+#. type: =item
+#: dh_systemd_enable:45
+msgid "debian/I<package>.service, debian/I<package>@.service"
+msgstr "debian/I<package>.service, debian/I<package>@.service"
+
+#. type: textblock
+#: dh_systemd_enable:47
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"service >> (or F<< lib/systemd/system/I<package>@.service >>) in the package "
+"build directory."
+msgstr ""
+"Se isto existir, é instalado em F<< lib/systemd/system/I<package>.service >> "
+"(or F<< lib/systemd/system/I<package>@.service >>) no directório de "
+"compilação do pacote."
+
+#. type: textblock
+#: dh_systemd_enable:52
+msgid ""
+"If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in "
+"the package build directory."
+msgstr ""
+"Se isto existir, está instalado em usr/lib/tmpfiles.d/I<pacote>.conf no "
+"directório de compilação do pacote."
+
+#. type: =item
+#: dh_systemd_enable:55
+msgid "debian/I<package>.target, debian/I<package>@.target"
+msgstr "debian/I<package>.target, debian/I<package>@.target"
+
+#. type: textblock
+#: dh_systemd_enable:57
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"target >> (or F<< lib/systemd/system/I<package>@.target >>) in the package "
+"build directory."
+msgstr ""
+"Se isto existir, é instalado em F<< lib/systemd/system/I<package>.target >> "
+"(ou F<< lib/systemd/system/I<package>@.target >>) no directório de "
+"compilação do pacote."
+
+#. type: =item
+#: dh_systemd_enable:60
+msgid "debian/I<package>.socket, debian/I<package>@.socket"
+msgstr "debian/I<package>.socket, debian/I<package>@.socket"
+
+#. type: textblock
+#: dh_systemd_enable:62
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>."
+"socket >> (or F<< lib/systemd/system/I<package>@.socket >>) in the package "
+"build directory."
+msgstr ""
+"Se isto existir, é instalado em F<< lib/systemd/system/I<package>.socket >> "
+"(ou F<< lib/systemd/system/I<package>@.socket >>) no directório de "
+"compilação do pacote."
+
+#. type: =item
+#: dh_systemd_enable:65
+msgid "debian/I<package>.mount"
+msgstr "debian/I<package>.mount"
+
+#. type: textblock
+#: dh_systemd_enable:67
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.mount "
+">> in the package build directory."
+msgstr ""
+"Se isto existir, é instalado em F<< lib/systemd/system/I<pacote>.mount >> no "
+"directório de compilação do pacote."
+
+#. type: =item
+#: dh_systemd_enable:70
+msgid "debian/I<package>.path, debian/I<package>@.path"
+msgstr "debian/I<package>.path, debian/I<package>@.path"
+
+#. type: textblock
+#: dh_systemd_enable:72
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.path "
+">> (or F<< lib/systemd/system/I<package>@.path >>) in the package build "
+"directory."
+msgstr ""
+"Se isto existir, é instalado em F<< lib/systemd/system/I<package>.path >> "
+"(ou F<< lib/systemd/system/I<package>@.path >>) no directório de compilação "
+"do pacote."
+
+#. type: =item
+#: dh_systemd_enable:75
+msgid "debian/I<package>.timer, debian/I<package>@.timer"
+msgstr "debian/I<package>.timer, debian/I<package>@.timer"
+
+#. type: textblock
+#: dh_systemd_enable:77
+msgid ""
+"If this exists, it is installed into F<< lib/systemd/system/I<package>.timer "
+">> (or F<< lib/systemd/system/I<package>@.timer >>) in the package build "
+"directory."
+msgstr ""
+"Se isto existir, é instalado em F<< lib/systemd/system/I<package>.timer >> "
+"(ou F<< lib/systemd/system/I<package>@.timer >>) no directório de compilação "
+"do pacote."
+
+#. type: textblock
+#: dh_systemd_enable:88
+msgid "Disable the service(s) on purge, but do not enable them on install."
+msgstr "Desactiva serviço(s) durante a purga, mas não os activa na instalação."
+
+#. type: textblock
+#: dh_systemd_enable:90
+msgid ""
+"B<Note> that this option does not affect whether the services are started. "
+"That is controlled by L<dh_systemd_start(1)> (using e.g. its B<--no-start> "
+"option)."
+msgstr ""
+"B<Note> que esta opção não afecta se os serviços são arrancados. Isso é "
+"controlado por L<dh_systemd_start(1)> (usando por exemplo a sua opção B<--no-"
+"start>)."
+
+#. type: textblock
+#: dh_systemd_enable:96
+msgid ""
+"Install the service file as I<name.service> instead of the default filename, "
+"which is the I<package.service>. When this parameter is used, "
+"B<dh_systemd_enable> looks for and installs files named F<debian/package."
+"name.service> instead of the usual F<debian/package.service>."
+msgstr ""
+"Instala o ficheiro de serviço como I<nome.serviço> em vez do nome de "
+"ficheiro predefinido, o qual é I<pacote.serviço> Quando este parâmetro é "
+"usado, o B<dh_systemd_enable> procura e instala ficheiros chamados F<debian/"
+"pacote.nome.serviço> em vez do habitual F<debian/pacote.serviço>."
+
+#. type: textblock
+#: dh_systemd_enable:105 dh_systemd_start:70
+msgid ""
+"Note that 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."
+msgstr ""
+"Note que este comando não é idempotente. O L<dh_prep(1)> deve ser chamado "
+"entre invocações deste comando (com os mesmos argumentos). Caso contrário, "
+"pode causar múltiplas instâncias do mesmo texto a ser adicionado aos scripts "
+"do maintainer."
+
+#. type: textblock
+#: dh_systemd_enable:110
+msgid ""
+"Note that B<dh_systemd_enable> should be run before B<dh_installinit>. The "
+"default sequence in B<dh> does the right thing, this note is only relevant "
+"when you are calling B<dh_systemd_enable> manually."
+msgstr ""
+"Note que B<dh_systemd_enable> deve correr antes de B<dh_installinit>. A "
+"sequência predefinida em B<dh> faz o correcto, esta nota é apenas relevante "
+"quando você está a chamar B<dh_systemd_enable> manualmente."
+
+#. type: textblock
+#: dh_systemd_enable:282
+msgid "L<dh_systemd_start(1)>, L<debhelper(7)>"
+msgstr "L<dh_systemd_start(1)>, L<debhelper(7)>"
+
+#. type: textblock
+#: dh_systemd_enable:286 dh_systemd_start:286
+msgid "pkg-systemd-maintainers@lists.alioth.debian.org"
+msgstr "pkg-systemd-maintainers@lists.alioth.debian.org"
+
+#. type: textblock
+#: dh_systemd_start:5
+msgid "dh_systemd_start - start/stop/restart systemd unit files"
+msgstr ""
+"dh_systemd_start - faz start/stop/restart aos ficheiros unit do systemd"
+
+#. type: textblock
+#: dh_systemd_start:19
+msgid ""
+"B<dh_systemd_start> [S<I<debhelper options>>] [B<--restart-after-upgrade>] "
+"[B<--no-stop-on-upgrade>] [S<I<unit file> ...>]"
+msgstr ""
+"B<dh_systemd_start> [S<I<debhelper options>>] [B<--restart-after-upgrade>] "
+"[B<--no-stop-on-upgrade>] [S<I<unit file> ...>]"
+
+#. type: textblock
+#: dh_systemd_start:23
+msgid ""
+"B<dh_systemd_start> is a debhelper program that is responsible for starting/"
+"stopping or restarting systemd unit files in case no corresponding sysv init "
+"script is available."
+msgstr ""
+"B<dh_systemd_start> é um programa debhelper que é responsável por arrancar/"
+"parar ou reiniciar ficheiros unit do systemd no caso de não estar disponível "
+"nenhum script sysv init correspondente."
+
+#. type: textblock
+#: dh_systemd_start:27
+msgid ""
+"As with B<dh_installinit>, the unit file is stopped before upgrades and "
+"started afterwards (unless B<--restart-after-upgrade> is specified, in which "
+"case it will only be restarted after the upgrade). This logic is not used "
+"when there is a corresponding SysV init script because invoke-rc.d performs "
+"the stop/start/restart in that case."
+msgstr ""
+"Como com B<dh_installinit>, o ficheiro unit é parado antes das actualizações "
+"e arrancado depois (a menos que B<--restart-after-upgrade> seja "
+"especificado, onde neste caso será apenas reiniciado após a actualização). "
+"Esta lógica não é usada quando existe um script de iniciação de SysV "
+"correspondente porque invoke-rc.d executa o stop/start/restart nesse caso."
+
+#. type: =item
+#: dh_systemd_start:37
+msgid "B<--restart-after-upgrade>"
+msgstr "B<--restart-after-upgrade>"
+
+#. type: textblock
+#: dh_systemd_start:39
+msgid ""
+"Do not stop the unit file until after the package upgrade has been "
+"completed. This is the default behaviour in compat 10."
+msgstr ""
+"Não para o ficheiro unit até que a actualização do pacote esteja completa. "
+"Este é o comportamento predefinido no nível de compatibilidade 10."
+
+#. type: textblock
+#: dh_systemd_start:42
+msgid ""
+"In earlier compat levels the default was to stop the unit file in the "
+"F<prerm>, and start it again in the F<postinst>."
+msgstr ""
+"Nos níveis de compatibilidade anteriores a predefinição era parar o ficheiro "
+"unit no F<prerm>, e arranca-lo de novo no F<postinst>.t>."
+
+#. type: textblock
+#: dh_systemd_start:59
+msgid "Do not stop service on upgrade."
+msgstr "Não para o serviço durante uma actualização."
+
+#. type: textblock
+#: dh_systemd_start:63
+msgid ""
+"Do not start the unit file after upgrades and after initial installation "
+"(the latter is only relevant for services without a corresponding init "
+"script)."
+msgstr ""
+"Não arranca o ficheiro unit após actualizações e após a instalação inicial "
+"(o seguinte é apenas relevante para serviços sem um script init "
+"correspondente)."
+
+#. type: textblock
+#: dh_systemd_start:75
+msgid ""
+"Note that B<dh_systemd_start> should be run after B<dh_installinit> so that "
+"it can detect corresponding SysV init scripts. The default sequence in B<dh> "
+"does the right thing, this note is only relevant when you are calling "
+"B<dh_systemd_start> manually."
+msgstr ""
+"Note que B<dh_systemd_start> deve correr após B<dh_installinit> para que "
+"possa detectar scripts init do SysV correspondentes. A sequência predefinida "
+"em B<dh> faz o correcto, esta nota é apenas relevante quando você está a "
+"chamar B<dh_systemd_start> manualmente."
+
+#. type: textblock
+#: strings-kept-translations.pod:7
+msgid "This compatibility level is open for beta testing; changes may occur."
+msgstr ""
+"Este nível de compatibilidade está aberto para testes beta: podem ocorrer "
+"alterações."
+
+#~ 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 ""
+#~ "Defina para B<1> para activar o modo detalhado. O debhelper irá mostrar "
+#~ "os resultados de cada comando que corre. Também activa relatórios de "
+#~ "compilação detalhados para alguns sistemas de compilação como o autoconf."
+
+#~ msgid "This value affects most B<dh_auto_*> tools."
+#~ msgstr "Este valor afecta a maioria das ferramentas B<dh_auto_*>."
+
+#~ msgid ""
+#~ "This can cause issues with running binaries directly from the build "
+#~ "directories as they might now require a manually set B<LD_LIBRARY_PATH>. "
+#~ "If you need to override this change, we recommend that you try to pass "
+#~ "the B<-DCMAKE_SKIP_RPATH=OFF> option first to see if that fixes the "
+#~ "problem (leaving B<CMAKE_BUILD_RPATH_USE_ORIGIN> at its new default). "
+#~ "This should undo the need for B<LD_LIBRARY_PATH> and avoid the "
+#~ "reproducibility issues on Linux, where B<$ORIGIN> is supported by the "
+#~ "runtime linkers."
+#~ msgstr ""
+#~ "Isto pode causar problemas com o correr binários directamente dos "
+#~ "directórios de compilação pois eles podem não requerer uma "
+#~ "B<LD_LIBRARY_PATH> definida manualmente. Se você precisa de sobrepor esta "
+#~ "alteração, nós recomendamos que tente passar a opção B<-"
+#~ "DCMAKE_SKIP_RPATH=OFF> primeiro para ver se isso corrige o problema "
+#~ "(deixando B<CMAKE_BUILD_RPATH_USE_ORIGIN> na sua nova predefinição). Isto "
+#~ "deve desfazer a necessidade de B<LD_LIBRARY_PATH> e evitar os problemas "
+#~ "de reprodutibilidade em Linux, onde B<$ORIGIN> é suportado pelos "
+#~ "vinculadores de tempo-de-execução."
+
+#~ msgid ""
+#~ "The tool B<dh_installsysusers> is now included in the default sequence. "
+#~ "It will cause units to be automatically started on installation, "
+#~ "restarted on upgrade and stopped on removal for every systemd user "
+#~ "instance running on the system."
+#~ msgstr ""
+#~ "A ferramenta B<dh_installsysusers> está agora incluída na sequência "
+#~ "predefinida. Irá fazer com que unidades sejam arrancadas automaticamente "
+#~ "na instalação, reiniciadas na actualização e paradas na remoção para cada "
+#~ "instância de utilizador de systemd a correr no sistema."
+
+#~ msgid ""
+#~ "If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf "
+#~ "in the package build directory. (The tmpfiles.d mechanism is currently "
+#~ "only used by systemd.) Only used in compat levels 10 and below."
+#~ msgstr ""
+#~ "Se isto existir, é instalado em usr/lib/tmpfiles.d/I<pacote>.conf no "
+#~ "directório de compilação do pacote. (Actualmente o mecanismo tmpfiles.d é "
+#~ "usado apenas pelo systemd.) Apenas usado nos níveis de compatibilidade 10 "
+#~ "e inferiores."
+
+#~ msgid ""
+#~ "If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf "
+#~ "in the package build directory. (The tmpfiles.d mechanism is currently "
+#~ "only used by systemd.)"
+#~ msgstr ""
+#~ "Se isto existir, é instalado em usr/lib/tmpfiles.d/I<pacote>.conf no "
+#~ "directório de compilação do pacote. (Actualmente o mecanismo tmpfiles.d é "
+#~ "usado apenas pelo systemd.)"
+
+#~ 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 ""
+#~ "Historicamente, este ficheiro era preciso para marcar manualmente "
+#~ "ficheiros como ficheiros de configuração (conffiles). No entanto, tem-se "
+#~ "tornado de facto obsoleto desde que o debhelper passou a computar "
+#~ "automaticamente quais os ficheiros devem ser marcados como ficheiros de "
+#~ "configuração."
+
+#~ msgid ""
+#~ "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 ""
+#~ "Em nível de compatibilidade até e incluindo 11, este ficheiro de controle "
+#~ "será instalado no directório F<DEBIAN>. Em nível de compatibilidade 12 e "
+#~ "posterior, o ficheiro é ignorado em silêncio."
+
+#~ msgid ""
+#~ "dh_gconf - install GConf defaults files and register schemas (deprecated)"
+#~ msgstr ""
+#~ "dh_gconf - instala ficheiros de predefinições GConf e regista schemas "
+#~ "(descontinuado)"
+
+#~ msgid "B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>]"
+#~ msgstr "B<dh_gconf> [S<I<debhelper opções>>] [B<--priority=>I<prioridade>]"
+
+#~ msgid ""
+#~ "B<dh_gconf> is a debhelper program that is responsible for installing "
+#~ "GConf defaults files and registering GConf schemas."
+#~ msgstr ""
+#~ "B<dh_gconf> é um programa debhelper que é responsável por instalar "
+#~ "ficheiros de predefinições de GConf e registar os esquemas GConf."
+
+#~ msgid ""
+#~ "An appropriate dependency on gconf2 will be generated in B<${misc:Depends}"
+#~ ">."
+#~ msgstr ""
+#~ "Uma dependência apropriada em gconf2 será gerada em B<${misc:Depends}>."
+
+#~ msgid "debian/I<package>.gconf-defaults"
+#~ msgstr "debian/I<pacote>.gconf-defaults"
+
+#~ msgid ""
+#~ "Installed into F<usr/share/gconf/defaults/10_package> in the package "
+#~ "build directory, with I<package> replaced by the package name."
+#~ msgstr ""
+#~ "Instalado em F<usr/share/gconf/defaults/10_pacote> no directório de "
+#~ "compilação do pacote, com I<pacote> substituído pelo nome do pacote."
+
+#~ msgid "debian/I<package>.gconf-mandatory"
+#~ msgstr "debian/I<pacote>.gconf-mandatory"
+
+#~ msgid ""
+#~ "Installed into F<usr/share/gconf/mandatory/10_package> in the package "
+#~ "build directory, with I<package> replaced by the package name."
+#~ msgstr ""
+#~ "Instalado em F<usr/share/gconf/mandatory/10_pacote> no directório de "
+#~ "compilação do pacote, com I<pacote> substituído pelo nome do pacote."
+
+#~ msgid "B<--priority> I<priority>"
+#~ msgstr "B<--priority> I<prioridade>"
+
+#~ msgid ""
+#~ "Use I<priority> (which should be a 2-digit number) as the defaults "
+#~ "priority instead of B<10>. Higher values than ten can be used by derived "
+#~ "distributions (B<20>), CDD distributions (B<50>), or site-specific "
+#~ "packages (B<90>)."
+#~ msgstr ""
+#~ "Usa I<prioridade> (que deve ser um número de dois dígitos) como a "
+#~ "prioridade predefinida em vez de B<10>. Valores mais altos que dez podem "
+#~ "ser usados por distribuições derivadas (B<20>), distribuições CDD "
+#~ "(B<50>), ou pacotes específicos de site (B<90>)."
+
+#~ msgid "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
+#~ msgstr "Ross Burton <ross@burtonini.com> Josselin Mouette <joss@debian.org>"
+
+#~ msgid ""
+#~ "B<dh_clean> should be the last debhelper command run in the B<clean> "
+#~ "target in F<debian/rules>."
+#~ msgstr ""
+#~ "B<dh_clean> deve ser o último comando debhelper a correr na meta B<clean> "
+#~ "em F<debian/rules>."
+
+#~ msgid ""
+#~ "If there is an upstream F<changelog> file, it will be installed as F<usr/"
+#~ "share/doc/package/changelog> in the package build directory."
+#~ msgstr ""
+#~ "Se existir um ficheiro F<changelog> do autor, este será instalado como "
+#~ "F<usr/share/doc/package/changelog> no directório de compilação do pacote."
+
+#~ msgid "B<--ignore=>I<file>"
+#~ msgstr "B<--ignore=>I<ficheiro>"
+
+#~ msgid ""
+#~ "Ignore the specified file. This can be used if F<debian/> contains a "
+#~ "debhelper config file that a debhelper command should not act on. Note "
+#~ "that F<debian/compat>, F<debian/control>, and F<debian/changelog> can't "
+#~ "be ignored, but then, there should never be a reason to ignore those "
+#~ "files."
+#~ msgstr ""
+#~ "Ignora o ficheiro especificado. Isto pode ser usado se F<debian/> conter "
+#~ "um ficheiro de configuração de debhelper que um comando debhelper não "
+#~ "deve usar. Note que F<debian/compat>, F<debian/control>, e F<debian/"
+#~ "changelog> não podem ser ignorados, mas também, nunca deverá existir uma "
+#~ "razão para ignorar estes ficheiros."
+
+#~ msgid ""
+#~ "For example, if upstream ships a F<debian/init> that you don't want "
+#~ "B<dh_installinit> to install, use B<--ignore=debian/init>"
+#~ msgstr ""
+#~ "Por exemplo, se o autor do programa juntar um F<debian/init> que você não "
+#~ "quer que B<dh_installinit> instale, use B<--ignore=debian/init>"
+
+#~ msgid ""
+#~ "Anything in this variable will be prepended to the command line arguments "
+#~ "of all debhelper commands."
+#~ msgstr ""
+#~ "Qualquer coisa nesta variável será pre-confinada aos argumentos de linha "
+#~ "de comandos de todos os comandos do debhelper."
+
+#~ msgid ""
+#~ "\toverride_dh_fixperms-arch:\n"
+#~ "\t\tdh_fixperms\n"
+#~ "\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\toverride_dh_fixperms-arch:\n"
+#~ "\t\tdh_fixperms\n"
+#~ "\t\tchmod 4755 debian/foo/usr/bin/foo\n"
+#~ "\n"
+
+#, 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 dos scripts, o sinal B<#DEBHELPER#> é substituído por fragmentos "
+#~ "de script shell gerados por outros comandos do debhelper."
+
+#~ msgid "DEPRECATED OPTIONS"
+#~ msgstr "OPÇÕES DESCONTINUADAS"
+
+#~ msgid ""
+#~ "The following options are deprecated. It's much better to use override "
+#~ "targets instead. They are B<not> available in compat 10."
+#~ msgstr ""
+#~ "As seguintes opções estão descontinuadas. É muito melhor usar as metas de "
+#~ "sobreposição em vez destes. Estas B<não> estão disponíveis no modo de "
+#~ "compatibilidade 10."
+
+#~ msgid "B<--until> I<cmd>"
+#~ msgstr "B<--until> I<cmd>"
+
+#~ msgid "Run commands in the sequence until and including I<cmd>, then stop."
+#~ msgstr "Corre comandos na sequência até e incluindo I<cmd>, depois pára."
+
+#~ msgid "B<--before> I<cmd>"
+#~ msgstr "B<--before> I<cmd>"
+
+#~ msgid "Run commands in the sequence before I<cmd>, then stop."
+#~ msgstr "Corre comandos na sequência antes de I<cmd>, depois pára."
+
+#~ msgid "B<--after> I<cmd>"
+#~ msgstr "B<--after> I<cmd>"
+
+#~ msgid "Run commands in the sequence that come after I<cmd>."
+#~ msgstr "Corre comandos na sequência que vêm depois de I<cmd>."
+
+#~ msgid "B<--remaining>"
+#~ msgstr "B<--remaining>"
+
+#~ msgid "Run all commands in the sequence that have yet to be run."
+#~ msgstr "Corre todos os comandos na sequência que ainda estão por correr."
+
+#~ 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 ""
+#~ "Nas opções em cima, I<cmd> pode ser o nome completo de um comando "
+#~ "debhelper, ou uma substring. Irá primeiro procurar por um comando na "
+#~ "sequência que corresponda exactamente ao nome, para evitar qualquer "
+#~ "ambiguidade. Se existirem múltiplas correspondências de substring, será "
+#~ "usada a última da sequência."
+
+#, fuzzy
+#~| msgid "dh - debhelper command sequencer"
+#~ msgid "The debhelper maintainers."
+#~ msgstr "dh - sequenciador de comandos do 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"
+
+#~ 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 ""
+#~ "O seu pacote também vai precisar de uma dependência de compilação de "
+#~ "versão de uma versão do debhelper igual (ou maior que) ao nível de "
+#~ "compatibilidade que o seu pacote usa. Portanto para nível de "
+#~ "compatibilidade #RECOMMENDED_COMPAT#, certifique-se que debian/control "
+#~ "tem:"
+
+#~ msgid "This control file will be installed into the F<DEBIAN> directory."
+#~ msgstr "Este ficheiro de controle será instalado no directório F<DEBIAN>."
+
+#~ 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 ""
+#~ "No modo de compatibilidade v3 ou mais alto, todos os ficheiros no "
+#~ "directório F<etc/> de um pacote serão automaticamente marcados como "
+#~ "ficheiros de configuração por este programa, por isso não é preciso listá-"
+#~ "los manualmente aqui."
+
+#~ 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-"
+#~ "doc> will have I<pkg> as main package if the latter exists). If a main "
+#~ "package is found, I<most> of the documentation will be installed into "
+#~ "F<< /usr/share/doc/I<main-pkg> >> by default as recommended by Debian "
+#~ "policy §12.3 since version 3.9.7. Notable exceptions include the "
+#~ "copyright file and changelog files."
+#~ msgstr ""
+#~ "As ferramentas B<dh_installdocs> e B<dh_installexamples> irão agora "
+#~ "tentar adivinha o \"pacote principal\" para um dado pacote de "
+#~ "documentação (ex. I<pkg-doc> irá ter I<pkg> como pacote principal se este "
+#~ "último existir). Se um pacote principal é encontrado, a I<maioria> da "
+#~ "documentação será instalada por predefinição em F<< /usr/share/doc/I<main-"
+#~ "pkg> >> como recomendado pela política Debian §12.3 desde a versão 3.9.7. "
+#~ "Excepções notáveis incluem o ficheiro de copyright e os ficheiros "
+#~ "changelog."
+
+#~ 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, "
+#~ "you can make the file executable, and write a program that outputs "
+#~ "whatever content is appropriate for a given situation. When you do so, "
+#~ "the output is not further processed to expand wildcards or strip comments."
+#~ msgstr ""
+#~ "A sintaxe destes ficheiros é mantida propositadamente simples para os "
+#~ "tornar fáceis de ler, perceber, e modificar. Se você preferir o poder e a "
+#~ "complexidade, pode tornar o ficheiro executável, e escrever um programa "
+#~ "que gere um conteúdo apropriado para uma dada situação seja ela qual for. "
+#~ "Quando o fizer, o resultado já não é mais processado para expandir "
+#~ "wildcards ou despojar comentários."
+
+#~ msgid "B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [S<I<dir> ...>]"
+#~ msgstr "B<dh_installdirs> [S<I<debhelper opções>>] [B<-A>] [S<I<dir> ...>]"
+
+#~ msgid ""
+#~ "By default, the shlibs file generated by this program does not make "
+#~ "packages depend on any particular version of the package containing the "
+#~ "shared library. It may be necessary for you to add some version "
+#~ "dependency information to the shlibs file. If B<-V> is specified with no "
+#~ "dependency information, the current upstream version of the package is "
+#~ "plugged into a dependency that looks like \"I<packagename> B<(E<gt>>= "
+#~ "I<packageversion>B<)>\". Note that in debhelper compatibility levels "
+#~ "before v4, the Debian part of the package version number is also "
+#~ "included. If B<-V> is specified with parameters, the parameters can be "
+#~ "used to specify the exact dependency information needed (be sure to "
+#~ "include the package name)."
+#~ msgstr ""
+#~ "Por predefinição, o ficheiro shlibs gerado por este programa não torna os "
+#~ "pacotes dependentes de nenhuma versão particular do pacote que contém a "
+#~ "biblioteca partilhada. Poderá ser necessário para si adicionar alguma "
+#~ "informação de dependência de versão ao ficheiro shlibs. Se B<-V> for "
+#~ "especificado sem nenhuma informação de dependência, a actual versão do "
+#~ "autor é ligada a uma dependência que se parece com \"I<nome-pacote> "
+#~ "B<(E<gt>>= I<versão-pacote>B<)>\". Note que nos níveis de compatibilidade "
+#~ "do debhelper anteriores a v4, também é incluída a parte Debian do número "
+#~ "de versão do pacote. Se B<-V> for especificado com parâmetros, os "
+#~ "parâmetros podem ser usados para especificar a informação de dependência "
+#~ "exacta necessária (certifique-se que inclui o nome do pacote)."
+
+#~ msgid "B<dh_makeshlibs>"
+#~ msgstr "B<dh_makeshlibs>"
+
+#~ msgid ""
+#~ "B<dh_testroot> is used to determine if the package has access under at "
+#~ "least the level of root access that it declared it needed via the Rules-"
+#~ "Requires-Root (R³) field."
+#~ msgstr ""
+#~ "B<dh_testroot> é usado para determinar se o pacote tem acesso a pelo "
+#~ "menos ao nível de acesso de raiz que declarou que precisava via campo "
+#~ "Rules-Requires-Root (R³)."
+
+#~ msgid ""
+#~ "The following is how B<dh_testroot> behaves based on the effective value "
+#~ "of the R³ field:"
+#~ msgstr ""
+#~ "O seguinte é como o B<dh_testroot> se comporta com base no valor efectivo "
+#~ "do campo R³."
+
+#~ msgid "\"binary-targets\""
+#~ msgstr "\"binary-targets\""
+
+#~ msgid "\"no\""
+#~ msgstr "\"no\""
+
+#~ msgid "B<dh_testroot> returns successfully."
+#~ msgstr "B<dh_testroot> retorna com sucesso."
+
+#~ msgid "Any other value than the above"
+#~ msgstr "Qualquer outro valor que não seja o de cima"
+
+#~ msgid ""
+#~ "For backwards compatibility, B<dh_testroot> will consider the absence of "
+#~ "the R³ field as if the R³ field was set to \"binary-targets\"."
+#~ msgstr ""
+#~ "Para compatibilidade com versões anteriores. B<dh_testroot> irá "
+#~ "considerar a ausência do campo R³ como se o campo R³ estivesse definido "
+#~ "para \"binary-targets\"."
+
+#~ msgid ""
+#~ "Note for the first (or only) binary package listed in F<debian/control>, "
+#~ "debhelper will use F<debian/foo> when there's no F<debian/package.foo> "
+#~ "file."
+#~ msgstr ""
+#~ "Note que para o primeiro (ou único) pacote binário listado em <debian/"
+#~ "control>, o debhelper irá usar F<debian/foo> quando não existe nenhum "
+#~ "ficheiro F<debian/package.foo>."
+
+#~ msgid ""
+#~ "When the I<Rules-Requires-Root> field is not (effectively) I<binary-"
+#~ "targets>, the directories in F</usr/local> will have ownership root:staff "
+#~ "and the mode will be 02775. These values have been chosen to comply with "
+#~ "the recommendations of the Debian policy for directories in F</usr/local>."
+#~ msgstr ""
+#~ "Quando o campo I<Rules-Requires-Root> não é (efectivamente) I<binary-"
+#~ "targets>, os directórios em F</usr/local> serão da propriedade root:staff "
+#~ "e o modo será 02775. Estes valores foram escolhidos para respeitar a "
+#~ "recomendação da política Debian para os directórios em F</usr/local>."
+
+#~ msgid ""
+#~ "When I<Rules-Requires-Root> has an effective value of I<binary-targets>, "
+#~ "the owners, groups and permissions will be preserved with one exception. "
+#~ "If the directory is owned by root:root, then ownership will be reset to "
+#~ "root:staff and mode will be reset to 02775. This is useful, since that is "
+#~ "the group and mode policy recommends for directories in F</usr/local>."
+#~ msgstr ""
+#~ "Quando I<Rules-Requires-Root> tem um valor efectivo de I<binary-targets>, "
+#~ "donos, grupo e permissões serão preservadas com uma excepção. Se o "
+#~ "directório for propriedade de root:root, então o dono será reiniciado "
+#~ "para root:staff e o modo será reiniciado para 02775. Isto é útil, pois é "
+#~ "o grupo e o modo que a política recomenda para os directórios em F</usr/"
+#~ "local>."
+
+#~ msgid ""
+#~ "B<Caveat>: This option silently does nothing in cmake versions prior to "
+#~ "3.8. Please keep this in mind if your package is regularly backported to "
+#~ "a suite (e.g. stretch-backports) where cmake is older than 3.8."
+#~ msgstr ""
+#~ "B<Caveat>: Esta opção não faz nada silenciosamente em versões do cmake "
+#~ "anteriores a 3.8. Por favor lembre-se disto se o seu pacote for portado "
+#~ "para trás para uma suite (ex. stretch-backports) onde o cmake é anterior "
+#~ "a 3.8."
+
+#~ msgid ""
+#~ "List the files that are deliberately not installed in I<any> binary "
+#~ "package. Paths listed in this file are (I<only>) ignored by the check "
+#~ "done via B<--list-missing> (or B<--fail-missing>). However, it is B<not> "
+#~ "a method to exclude files from being installed. Please use B<--exclude> "
+#~ "for that."
+#~ msgstr ""
+#~ "Lista os ficheiros que são deliberadamente não instalados em I<nenhum> "
+#~ "pacote binário. Os caminhos listados neste ficheiro são (I<apenas>) "
+#~ "ignorados pela verificação feita via B<--list-missing> (ou B<--fail-"
+#~ "missing>). No entanto, isto I<não> é um método para excluir ficheiros de "
+#~ "serem instalados. Por favor use B<--exclude> para isso."
+
+#~ msgid ""
+#~ "Please keep in mind that dh_install will B<not> expand wildcards in this "
+#~ "file."
+#~ msgstr ""
+#~ "Por favor tenha em mente que o dh_install B<não> irá expandir as "
+#~ "wildcards neste ficheiro."
+
+#~ msgid "B<Deprecated>: Please use B<dh_missing --list-missing> instead."
+#~ msgstr ""
+#~ "B<Descontinuado>: Por favor use B<dh_missing --list-missing> em vez deste."
+
+#~ msgid ""
+#~ "This option makes B<dh_install> keep track of the files it installs, and "
+#~ "then at the end, compare that list with the files in the source "
+#~ "directory. If any of the files (and symlinks) in the source directory "
+#~ "were not installed to somewhere, it will warn on stderr about that."
+#~ msgstr ""
+#~ "Esta opção faz o B<dh_install> manter um acompanhamento dos ficheiros que "
+#~ "instala, e depois no final, compara essa lista com os ficheiros no "
+#~ "directório fonte. Se algum dos ficheiros (e links simbólicos) no "
+#~ "directório fonte não foi instalado para algum sítio, ele vai avisar no "
+#~ "stderr acerca disso."
+
+#~ msgid ""
+#~ "This may be useful if you have a large package and want to make sure that "
+#~ "you don't miss installing newly added files in new upstream releases."
+#~ msgstr ""
+#~ "Isto pode ser útil se você tem um pacote grande e quer certificar-se que "
+#~ "não se esquece de instalar ficheiros adicionados recentemente em novos "
+#~ "lançamentos do autor original."
+
+#~ msgid ""
+#~ "Note that files that are excluded from being moved via the B<-X> option "
+#~ "are not warned about."
+#~ msgstr ""
+#~ "Note que não há advertências sobre ficheiros que estão excluídos de serem "
+#~ "movidos via opção B<-X>."
+
+#~ msgid "B<Deprecated>: Please use B<dh_missing --fail-missing> instead."
+#~ msgstr ""
+#~ "B<Descontinuado>: Por favor use B<dh_missing --fail-missing> em vez deste."
+
+#~ msgid ""
+#~ "This option is like B<--list-missing>, except if a file was missed, it "
+#~ "will not only list the missing files, but also fail with a nonzero exit "
+#~ "code."
+#~ msgstr ""
+#~ "Esta opção é como B<--list-missing>, excepto se um ficheiro estiver em "
+#~ "falta, não irá apenas listar os ficheiros em falta, mas também vai falhar "
+#~ "com um código exit não-zero."
+
+#~ msgid "Participating in the open beta testing of new compat levels"
+#~ msgstr "Participar no teste beta aberto dos novos níveis de compatibilidade"
+
+#~ msgid ""
+#~ "It is possible to opt-in to the open beta testing of new compat levels. "
+#~ "This is done by setting the compat level to the string \"beta-tester\"."
+#~ msgstr ""
+#~ "É possível aderir aos testes beta abertos dos novos níveis de "
+#~ "compatibilidade. Isto é feito ao definir o nível de compatibilidade para "
+#~ "a string \"beta-tester\"."
+
+#~ msgid ""
+#~ "Packages using this compat level will automatically be upgraded to the "
+#~ "highest compatibility level in open beta. In periods without any open "
+#~ "beta versions, the compat level will be the highest stable compatibility "
+#~ "level."
+#~ msgstr ""
+#~ "Os pacotes que usam este nível de compatibilidade serão automaticamente "
+#~ "actualizados para o nível mais alto de compatibilidade em beta aberto. Em "
+#~ "períodos sem nenhumas versões beta abertas, o nível de compatibilidade "
+#~ "será o nível de compatibilidade estável mais alto."
+
+#~ msgid "Please consider the following before opting in:"
+#~ msgstr "Por favor considere o seguinte antes de decidir como optar:"
+
+#~ msgid ""
+#~ "The automatic upgrade in compatibility level may cause the package (or a "
+#~ "feature in it) to stop functioning."
+#~ msgstr ""
+#~ "A actualização automática no nível de compatibilidade pode causar que o "
+#~ "pacote (ou alguma funcionalidade nele) deixe de funcionar."
+
+#~ msgid ""
+#~ "Compatibility levels in open beta are still subject to change. We will "
+#~ "try to keep the changes to a minimal once the beta starts. However, "
+#~ "there are no guarantees that the compat will not change during the beta."
+#~ msgstr ""
+#~ "Os níveis de compatibilidade em beta aberto ainda estão sujeitos a "
+#~ "alterações. Nós vamos tentar manter as alterações num mínimo assim que o "
+#~ "beta arranque. No entanto, não existem garantias que a compatibilidade "
+#~ "não altere durante o beta."
+
+#, fuzzy
+#~| msgid ""
+#~| "We will notify you via debian-devel@lists.debian.org before we start a "
+#~| "new open beta compat level. However, once the beta starts we expect "
+#~| "that you keep yourself up to date on changes to debhelper."
+#~ msgid ""
+#~ "We will notify you via debian-devel-announce@lists.debian.org or debian-"
+#~ "devel@lists.debian.org before we start a new open beta compat level. "
+#~ "However, once the beta starts we expect that you keep yourself up to date "
+#~ "on changes to debhelper for that compat level."
+#~ msgstr ""
+#~ "Nós iremos notificá-lo via debian-devel@lists.debian.org antes de "
+#~ "começarmos um novo nível de compatibilidade beta aberto. No entanto, "
+#~ "assim que o beta arrancar esperamos que você se mantenha actualizado nas "
+#~ "alterações para o debhelper."
+
+#, fuzzy
+#~| msgid ""
+#~| "The \"beta-tester\" compatibility version in unstable and testing will "
+#~| "often be different than the one in stable-backports. Accordingly, it is "
+#~| "not recommended for packages being backported regularly."
+#~ msgid ""
+#~ "The \"beta-tester\" compatibility version in unstable and testing will "
+#~ "often be different than the one in stable. Accordingly, it is not "
+#~ "recommended for packages being backported regularly. Alternatively, "
+#~ "please be sure to add explicit versioned Build-Depends on debhelper, so "
+#~ "you get exactly the compatibility version you expect."
+#~ msgstr ""
+#~ "A versão de compatibilidade \"beta-tester\" em unstable e testing será "
+#~ "muitas vezes diferente daquela nos backports de stable. Assim, não é "
+#~ "recomendada para pacotes que sejam colocados em backport regularmente."
+
+#~ msgid ""
+#~ "You can always opt-out of the beta by resetting the compatibility level "
+#~ "of your package to a stable version."
+#~ msgstr ""
+#~ "Você pode sempre deixar o beta ao repor o nível de compatibilidade do seu "
+#~ "pacote para uma versão estável."
+
+#~ msgid "Should you still be interested in the open beta testing, please run:"
+#~ msgstr ""
+#~ "Caso esteja ainda interessado no teste beta aberto, por favor execute:"
+
+#~ msgid ""
+#~ " % echo beta-tester > debian/compat\n"
+#~ "\n"
+#~ msgstr ""
+#~ " % echo beta-tester > debian/compat\n"
+#~ "\n"
+
+#~ msgid "You will also need to ensure that debian/control contains:"
+#~ msgstr "Você também precisa assegurar que debian/control tem:"
+
+#~ msgid ""
+#~ " Build-Depends: debhelper (>= 9.20160815~)\n"
+#~ "\n"
+#~ msgstr ""
+#~ " Build-Depends: debhelper (>= 9.20160815~)\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "To ensure that debhelper knows about the \"beta-tester\" compat level."
+#~ msgstr ""
+#~ "Para assegurar que o debhelper sabe acerca do nível de compatibilidade "
+#~ "\"beta-tester\"."
+
+#~ msgid "This can be used without a F<debian/compat> file."
+#~ msgstr "Este pode ser usado sem um ficheiro F<debian/compat>."
+
+#~ msgid ""
+#~ "B<dh_testroot> simply checks to see if you are root. If not, it exits "
+#~ "with an error. Debian packages must be built as root, though you can use "
+#~ "L<fakeroot(1)>"
+#~ msgstr ""
+#~ "B<dh_testroot> simplesmente verifica se você é root. Se não é, termina "
+#~ "com um erro. Os pacotes Debian têm de ser compilados pelo root, embora "
+#~ "você possa usar o L<fakeroot(1)>."
+
+#~ msgid ""
+#~ "B<dh_installmenu> no longer installs F<menu> files. The F<menu-method> "
+#~ "files are still installed."
+#~ msgstr ""
+#~ "B<dh_installmenu> já não instala ficheiros F<menu>. Os ficheiros F<menu-"
+#~ "method> continuam a ser instalados."
+
+#~ msgid ""
+#~ "B<dh> no longer creates a stamp (or log) file to record whether the build "
+#~ "already ran or not. This means that unless upstream's build system "
+#~ "correctly tracks this, the build will be run twice (once for the "
+#~ "\"build\" target and once for the \"binary\" target)."
+#~ msgstr ""
+#~ "B<dh> já não cria um ficheiro stamp (ou log) para gravar se a compilação "
+#~ "já correu ou não. Isto significa que a menos que o sistema de compilação "
+#~ "do autor (upstream) actual acompanhe isto, a compilação irá correr duas "
+#~ "vezes (uma vez para o alvo \"build\" e outra para o alvo \"binary\")."
+
+#~ msgid ""
+#~ "On the other hand, this means that rebuild without cleaning (e.g. B<dpkg-"
+#~ "buildpackage -nc>) will behave as most people would expect."
+#~ msgstr ""
+#~ "Por outro lado, isto significa que recompilar sem limpar (ex. B<dpkg-"
+#~ "buildpackage -nc>) irá ter o comportamento que a maioria das pessoas "
+#~ "iriam esperar."
+
+#~ msgid ""
+#~ "In compat 11, this file is no longer installed the format has been "
+#~ "deprecated. Please migrate to a desktop file instead."
+#~ msgstr ""
+#~ "No nível compatibilidade 11, este ficheiro não é mais instalado e o "
+#~ "formato foi descontinuado. Por favor migre para um ficheiro desktop em "
+#~ "vez deste."
+
+#~ msgid ""
+#~ "B<dh_installdocs> now installs user-supplied documentation (e.g. debian/"
+#~ "I<package>.docs) into F</usr/share/doc/mainpackage> rather than F</usr/"
+#~ "share/doc/package> by default as recommended by Debian Policy 3.9.7."
+#~ msgstr ""
+#~ "B<dh_installdocs> agora instala documentação fornecida por utilizador "
+#~ "(ex. debian/I<pacote>.docs) em F</usr/share/doc/mainpackage> em vez de F</"
+#~ "usr/share/doc/package> por predefinição como recomendado por Debian "
+#~ "Policy 3.9.7."
+
+#~ msgid ""
+#~ "If you need the old behaviour, it can be emulated by using the B<--"
+#~ "mainpackage> option."
+#~ msgstr ""
+#~ "Se você precisar do comportamento antigo, este pode ser emulado ao usar a "
+#~ "opção B<--mainpackage>."
+
+#~ msgid "Please remember to check/update your doc-base files."
+#~ msgstr ""
+#~ "Por favor lembre-se de verificar/actualizar os seus ficheiros doc-base."
+
+#~ msgid ""
+#~ "In compat 11 (or later), these will be installed into F</usr/share/doc/"
+#~ "mainpackage>. Previously it would be F</usr/share/doc/package>."
+#~ msgstr ""
+#~ "No nível de compatibilidade 11 (ou posterior), estes serão instalados em "
+#~ "F</usr/share/doc/mainpackage>. Previamente seria F</usr/share/doc/"
+#~ "package>."
+
+#~ msgid "Do not stop init script on upgrade."
+#~ msgstr "Não pára o script de iniciação durante uma actualização."
+
+#~ msgid ""
+#~ "dh_auto_test does not run the test suite when a package is being cross "
+#~ "compiled."
+#~ msgstr ""
+#~ "dh_auto_test não corre a suite de teste quando um pacote é compilado em "
+#~ "cruzamento."
+
+#~ msgid ""
+#~ "This used to be a smarter version of the B<-a> flag, but the B<-a> flag "
+#~ "is now equally smart."
+#~ msgstr ""
+#~ "Isto costumava ser uma versão mais inteligente da bandeira B<-a>, mas a "
+#~ "bandeira B<-a> é agora igualmente inteligente."
+
+#~ msgid ""
+#~ "If your package uses autotools and you want to freshen F<config.sub> and "
+#~ "F<config.guess> with newer versions from the B<autotools-dev> package at "
+#~ "build time, you can use some commands provided in B<autotools-dev> that "
+#~ "automate it, like this."
+#~ msgstr ""
+#~ "Se o seu pacote usa autotools e você quer refrescar os <config.sub> e "
+#~ "F<config.guess> com versões mais recentes a partir do pacote B<autotools-"
+#~ "dev> durante a compilação, você pode usar alguns comandos fornecidos pelo "
+#~ "B<autotools-dev> que o automatizam, como isto."
+
+#~ msgid ""
+#~ "\t#!/usr/bin/make -f\n"
+#~ "\t%:\n"
+#~ "\t\tdh $@ --with autotools_dev\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\t#!/usr/bin/make -f\n"
+#~ "\t%:\n"
+#~ "\t\tdh $@ --with autotools_dev\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Code is added to the F<preinst> and F<postinst> to handle the upgrade "
+#~ "from the old B<udev> rules file location."
+#~ msgstr ""
+#~ "É adicionado código a F<preinst> e a F<postinst> para lidar com a "
+#~ "actualização a partir da antiga localização do ficheiro de regras do "
+#~ "B<udev>."
+
+#~ msgid "Do not modify F<preinst>/F<postinst> scripts."
+#~ msgstr "Não modifique os scripts F<preinst>/F<postinst>."
+
+#~ msgid ""
+#~ "Note that this option behaves significantly different in debhelper "
+#~ "compatibility levels 4 and below. Instead of specifying the name of a "
+#~ "debug package to put symbols in, it specifies a package (or packages) "
+#~ "which should have separated debug symbols, and the separated symbols are "
+#~ "placed in packages with B<-dbg> added to their name."
+#~ msgstr ""
+#~ "Note que esta opção comporta-se de modo significativamente diferente nos "
+#~ "níveis 4 e inferiores de compatibilidade do debhelper. Em vez de "
+#~ "especificar o nome de um pacote de depuração para meter símbolos lá "
+#~ "dentro, especifica um pacote (ou pacotes) que devem ter os símbolos de "
+#~ "depuração separados, e os símbolos separados são colocados em pacotes com "
+#~ "B<-dbg> adicionado ao seu nome."
+
+#, fuzzy
+#~| msgid ""
+#~| "The creation of automatic \"ddebs\" can also be prevented by adding "
+#~| "B<noddebs> to the B<DEB_BUILD_OPTIONS> environment variable."
+#~ msgid ""
+#~ "The automatic creation of debug symbol packages can also be prevented by "
+#~ "adding B<noautodbgsym> to the B<DEB_BUILD_OPTIONS> environment variable."
+#~ msgstr ""
+#~ "A criação de \"ddebs\" automáticos também pode ser prevenida ao adicionar "
+#~ "B<noddebs> à variável de ambiente B<DEB_BUILD_OPTIONS>."
+
+#~ msgid "dh_desktop - deprecated no-op"
+#~ msgstr "dh_desktop - não-operacional descontinuado"
+
+#~ msgid "B<dh_desktop> [S<I<debhelper options>>]"
+#~ msgstr "B<dh_desktop> [S<I<debhelper opções>>]"
+
+#~ msgid ""
+#~ "B<dh_desktop> was a debhelper program that registers F<.desktop> files. "
+#~ "However, it no longer does anything, and is now deprecated."
+#~ msgstr ""
+#~ "B<dh_desktop> era um programa debhelper que registava ficheiros F<."
+#~ "desktop>. No entanto, já não faz nada, e agora está descontinuado."
+
+#~ msgid ""
+#~ "If a package ships F<desktop> files, they just need to be installed in "
+#~ "the correct location (F</usr/share/applications>) and they will be "
+#~ "registered by the appropriate tools for the corresponding desktop "
+#~ "environments."
+#~ msgstr ""
+#~ "Se o pacote embarcar ficheiros F<desktop>, eles apenas precisam de ser "
+#~ "instalados na localização correcta (F</usr/share/applications>) e eles "
+#~ "serão registados pelas ferramentas apropriadas para os ambientes de "
+#~ "trabalho correspondentes."
+
+#~ msgid "Ross Burton <ross@burtonini.com>"
+#~ msgstr "Ross Burton <ross@burtonini.com>"
+
+#~ msgid "dh_undocumented - undocumented.7 symlink program (deprecated no-op)"
+#~ msgstr ""
+#~ "dh_undocumented - programa de links simbólicos undocumented.7 (não-"
+#~ "operativo descontinuado)"
+
+#~ msgid "Do not run!"
+#~ msgstr "Não correr!"
+
+#~ msgid ""
+#~ "This program used to make symlinks to the F<undocumented.7> man page for "
+#~ "man pages not present in a package. Debian policy now frowns on use of "
+#~ "the F<undocumented.7> man page, and so this program does nothing, and "
+#~ "should not be used."
+#~ msgstr ""
+#~ "Este programa era usado para fazer links simbólicos para as páginas de "
+#~ "manual F<undocumented.7> para manuais não presentes no pacote. A política "
+#~ "Debian agora não vê com bons olhos o uso de manuais F<undocumented.7>, e "
+#~ "por isso este programa não faz nada, e não deve ser usado."
+
+#~ msgid ""
+#~ "It also adds a call to ldconfig in the F<postinst> and F<postrm> scripts "
+#~ "(in v3 mode and above only) to any packages in which it finds shared "
+#~ "libraries."
+#~ msgstr ""
+#~ "Também adiciona uma chamada ao ldconfig nos scripts F<postinst> e "
+#~ "F<postrm> (apenas em modo v3 e superior) em quaisquer pacotes nos quais "
+#~ "encontra bibliotecas partilhadas."
+
+#~ msgid "dh_scrollkeeper - deprecated no-op"
+#~ msgstr "dh_scrollkeeper - não-operativo descontinuado"
+
+#~ msgid ""
+#~ "B<dh_scrollkeeper> [S<I<debhelper options>>] [B<-n>] [S<I<directory>>]"
+#~ msgstr ""
+#~ "B<dh_scrollkeeper> [S<I<debhelper opções>>] [B<-n>] [S<I<directório>>]"
+
+#~ msgid ""
+#~ "B<dh_scrollkeeper> was a debhelper program that handled registering OMF "
+#~ "files for ScrollKeeper. However, it no longer does anything, and is now "
+#~ "deprecated."
+#~ msgstr ""
+#~ "B<dh_scrollkeeper> era um programa debhelper que lidava com o registo de "
+#~ "ficheiros OMF para o ScrollKeeper. No entanto, já não faz nada, e agora "
+#~ "está descontinuado."
+
+#~ msgid "dh_suidregister - suid registration program (deprecated)"
+#~ msgstr "dh_suidregister - programa de registo de suid (descontinuado)"
+
+#~ msgid ""
+#~ "This program used to register suid and sgid files with "
+#~ "L<suidregister(1)>, but with the introduction of L<dpkg-statoverride(8)>, "
+#~ "registration of files in this way is unnecessary, and even harmful, so "
+#~ "this program is deprecated and should not be used."
+#~ msgstr ""
+#~ "Este programa era usado para registar ficheiros suid e sgid com o "
+#~ "L<suidregister(1)>, mas com a introdução de L<dpkg-statoverride(8)>, o "
+#~ "registo de ficheiros desta maneira é desnecessário, e até nocivo, então "
+#~ "este programa está descontinuado e não deve ser usado."
+
+#~ msgid "CONVERTING TO STATOVERRIDE"
+#~ msgstr "CONVERTENDO PARA STATOVERRIDE"
+
+#~ msgid ""
+#~ "Converting a package that uses this program to use the new statoverride "
+#~ "mechanism is easy. Just remove the call to B<dh_suidregister> from "
+#~ "F<debian/rules>, and add a versioned conflicts into your F<control> file, "
+#~ "as follows:"
+#~ msgstr ""
+#~ "Converter um pacote que usa este programa para usar o novo mecanismo "
+#~ "statoverride é fácil. Basta remover a chamada ao B<dh_suidregister> de "
+#~ "F<debian/rules>, e adicionar um \"conflicts\" com versão no seu ficheiro "
+#~ "F<control>, como se segue:"
+
+#~ msgid ""
+#~ " Conflicts: suidmanager (<< 0.50)\n"
+#~ "\n"
+#~ msgstr ""
+#~ " Conflicts: suidmanager (<< 0.50)\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "The conflicts is only necessary if your package used to register things "
+#~ "with suidmanager; if it did not, you can just remove the call to this "
+#~ "program from your rules file."
+#~ msgstr ""
+#~ "O \"conflicts\" é apenas necessário se o seu pacote costumava registar as "
+#~ "coisas com o suidmanager; se não o fazia, você pode simplesmente remover "
+#~ "a chamada a este programa do seu ficheiro de regras."
+
+#~ msgid "comment"
+#~ msgstr "comment"
+
+#~ msgid ""
+#~ "Once the Debian archive supports ddebs, debhelper will generate ddebs by "
+#~ "default. Until then, this option does nothing except to allow you to pre-"
+#~ "emptively disable ddebs if you know the generated ddebs will not work for "
+#~ "your package."
+#~ msgstr ""
+#~ "Assim que o arquivo Debian suportar ddebs, o debhelper irá gerar ddebs "
+#~ "por predefinição. Até lá, esta opção não faz nada excepto permitir-lhe "
+#~ "preventivamente desactivar os ddebs quando sabe que os ddebs gerados não "
+#~ "irá funcionar com o seu pacote."
+
+#~ msgid ""
+#~ "If you want to test the ddebs feature, you can set the environment "
+#~ "variable I<DH_BUILD_DDEBS> to 1. Keep in mind that the Debian archive "
+#~ "does B<not> accept them yet. This variable is only a temporary safeguard "
+#~ "and will be removed once the archive is ready to accept ddebs."
+#~ msgstr ""
+#~ "Se desejar testar a funcionalidade ddebs, você pode definir a variável de "
+#~ "ambiente I<DH_BUILD_DDEBS> para 1. Lembre-se que o arquivo Debian ainda "
+#~ "B<não> os aceita. Esta variável é apenas uma segurança temporária e será "
+#~ "removida assim que o arquivo esteja pronto para aceitar ddebs."
+
+#~ msgid ""
+#~ "B<dh_makeshlibs> now invokes I<ldconfig -X> instead of just I<ldconfig> "
+#~ "in its generated maintainer scripts snippets. The new call will only "
+#~ "update the ld cache (instead of also updating symlinks)."
+#~ msgstr ""
+#~ "O B<dh_makeshlibs> agora invoca I<ldconfig -X> em vez de apenas fazer "
+#~ "I<ldconfig> nos fragmentos de script de mantenedor gerados. A nova "
+#~ "chamada irá apenas actualizar a cache ld (em vez de também actualizar os "
+#~ "symlinks)."
+
+#~ msgid ""
+#~ " my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
+#~ " #DEBHELPER#\n"
+#~ " EOF\n"
+#~ " system ($temp) / 256 == 0\n"
+#~ " \tor die \"Problem with debhelper scripts: $!\";\n"
+#~ "\n"
+#~ msgstr ""
+#~ " my $temp=\"set -e\\nset -- @ARGV\\n\" . << 'EOF';\n"
+#~ " #DEBHELPER#\n"
+#~ " EOF\n"
+#~ " system ($temp) / 256 == 0\n"
+#~ " \tor die \"Problem with debhelper scripts: $!\";\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Control whether B<dh_strip> should be creating ddebs when possible. By "
+#~ "default, B<dh_strip> will attempt to build ddebs and this option is "
+#~ "primarily useful for disabling this."
+#~ msgstr ""
+#~ "Controla se B<dh_strip> deverá criar ddebs quando possível. Por "
+#~ "predefinição, B<dh_strip> irá tentar compilar ddebs e esta opção é útil "
+#~ "principalmente para desactivar isto."
+
+#~ msgid ""
+#~ "Packages that support multiarch are detected, and a Pre-Dependency on "
+#~ "multiarch-support is set in ${misc:Pre-Depends} ; you should make sure to "
+#~ "put that token into an appropriate place in your debian/control file for "
+#~ "packages supporting multiarch."
+#~ msgstr ""
+#~ "Os pacotes que suportam multi-arquitectura são detectados, e é definida "
+#~ "uma Pré-Dependência em multiarch-support em ${misc:Pre-Depends} ; você "
+#~ "deve certificar-se de colocar esse testemunho num local apropriado no seu "
+#~ "ficheiro debian/control para os pacotes que suportam multi-arquitectura."
diff --git a/man/po4a/po4a.cfg b/man/po4a/po4a.cfg
index 311762f7..ee52d242 100644
--- a/man/po4a/po4a.cfg
+++ b/man/po4a/po4a.cfg
@@ -1,10 +1,13 @@
-[po4a_langs] fr es de pt
+[po4a_langs] fr es de pt ja
[po4a_paths] man/po4a/po/debhelper.pot $lang:man/po4a/po/$lang.po
[po4a_alias:pod] pod opt_fr:"-L ISO-8859-15 -A UTF-8"
[po4a_alias:pod] pod opt_es:"-L UTF-8 -A ISO-8859-15"
[po4a_alias:pod] pod opt_de:"-L ISO-8859-15 -A UTF-8"
[po4a_alias:pod] pod opt_pt:"-L UTF-8 -A UTF-8"
+[po4a_alias:pod] pod opt_ja:"-L UTF-8 -A UTF-8"
[type: pod] debhelper.pod $lang:man/$lang/debhelper.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
+[type: pod] debhelper-compat-upgrade-checklist.pod $lang:man/$lang/debhelper-compat-upgrade-checklist.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
+[type: pod] debhelper-obsolete-compat.pod $lang:man/$lang/debhelper-obsolete-compat.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh $lang:man/$lang/dh.pod add_fr:man/po4a/add.fr add_es:man/po4a/add3.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_auto_build $lang:man/$lang/dh_auto_build.pod add_fr:man/po4a/add.fr add_es:man/po4a/add3.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_auto_clean $lang:man/$lang/dh_auto_clean.pod add_fr:man/po4a/add.fr add_es:man/po4a/add3.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
@@ -15,9 +18,8 @@
[type: pod] dh_builddeb $lang:man/$lang/dh_builddeb.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_clean $lang:man/$lang/dh_clean.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_compress $lang:man/$lang/dh_compress.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
-[type: pod] dh_desktop $lang:man/$lang/dh_desktop.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
+[type: pod] dh_dwz $lang:man/$lang/dh_dwz.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_fixperms $lang:man/$lang/dh_fixperms.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
-[type: pod] dh_gconf $lang:man/$lang/dh_gconf.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_gencontrol $lang:man/$lang/dh_gencontrol.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_icons $lang:man/$lang/dh_icons.pod add_fr:man/po4a/add.fr add_es:man/po4a/add3.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_install $lang:man/$lang/dh_install.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
@@ -33,6 +35,7 @@
[type: pod] dh_installifupdown $lang:man/$lang/dh_installifupdown.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_installinfo $lang:man/$lang/dh_installinfo.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_installinit $lang:man/$lang/dh_installinit.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
+[type: pod] dh_installinitramfs $lang:man/$lang/dh_installinitramfs.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_installlogcheck $lang:man/$lang/dh_installlogcheck.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_installlogrotate $lang:man/$lang/dh_installlogrotate.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_installman $lang:man/$lang/dh_installman.pod add_fr:man/po4a/add.fr add_es:man/po4a/add1.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
@@ -53,11 +56,11 @@
[type: pod] dh_movefiles $lang:man/$lang/dh_movefiles.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_perl $lang:man/$lang/dh_perl.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_prep $lang:man/$lang/dh_prep.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
-[type: pod] dh_scrollkeeper $lang:man/$lang/dh_scrollkeeper.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_shlibdeps $lang:man/$lang/dh_shlibdeps.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_strip $lang:man/$lang/dh_strip.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
-[type: pod] dh_suidregister $lang:man/$lang/dh_suidregister.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_testdir $lang:man/$lang/dh_testdir.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_testroot $lang:man/$lang/dh_testroot.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
-[type: pod] dh_undocumented $lang:man/$lang/dh_undocumented.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
[type: pod] dh_usrlocal $lang:man/$lang/dh_usrlocal.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
+[type: pod] dh_systemd_enable $lang:man/$lang/dh_systemd_enable.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
+[type: pod] dh_systemd_start $lang:man/$lang/dh_systemd_start.pod add_fr:man/po4a/add.fr add_es:man/po4a/add2.es add_de:man/po4a/add.de add_pt:man/po4a/add.pt
+[type: pod] strings-kept-translations.pod $lang:man/$lang/strings-kept-translations.pod
diff --git a/run b/run
index 2c749764..f5c89f52 100755
--- a/run
+++ b/run
@@ -7,13 +7,10 @@ export PATH
# Ensure that builds are self-hosting, which means I have to use the .pm
# files in this package, not any that may be on the system.
-export PERL5LIB=$(pwd)
+export PERL5LIB=$(pwd)/lib
# If any automatic script generation is done in building this package,
# be sure to use the new templates from this package.
-export DH_AUTOSCRIPTDIR=$(pwd)/autoscripts
+export DH_DATAFILES=$(pwd)
-prog=$1
-shift 1
-
-exec $prog "$@"
+exec "$@"
diff --git a/strings-kept-translations.pod b/strings-kept-translations.pod
new file mode 100644
index 00000000..1c6aab2a
--- /dev/null
+++ b/strings-kept-translations.pod
@@ -0,0 +1,12 @@
+# This document contains strings that has been previously translated
+# and will (almost certainly) re-occur later. They are kept here
+# to avoid needing to have them re-translated.
+
+=pod
+
+This compatibility level is open for beta testing; changes may occur.
+
+This compatibility level is still open for development; use with caution.
+
+=cut
+
diff --git a/t/Dh_Lib/00-use.t b/t/Dh_Lib/00-use.t
new file mode 100755
index 00000000..dc8a966c
--- /dev/null
+++ b/t/Dh_Lib/00-use.t
@@ -0,0 +1,20 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Cwd;
+use Test::More tests => 2;
+
+use File::Temp qw(tempdir);
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+
+my $test_dir = tempdir(CLEANUP => 1);
+
+chdir($test_dir);
+
+# Packages that need to be able to (at least) load without requring
+# d/control or d/compat.
+
+use_ok('Debian::Debhelper::Dh_Lib', '!dirname');
+use_ok('Debian::Debhelper::Buildsystem');
diff --git a/t/Dh_Lib/control-parsing.t b/t/Dh_Lib/control-parsing.t
new file mode 100755
index 00000000..0658256d
--- /dev/null
+++ b/t/Dh_Lib/control-parsing.t
@@ -0,0 +1,36 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More;
+
+use Cwd qw(abs_path);
+use File::Basename qw(dirname);
+
+BEGIN {
+ my $dir = dirname(abs_path(__FILE__));
+ unshift(@INC, dirname($dir));
+ chdir($dir) or error("chdir($dir) failed: $!");
+};
+
+use Test::DH;
+
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+plan(tests => 10);
+
+is_deeply([getpackages()], [qw(foo-any foo-all)], 'packages list correct and in order');
+is_deeply([getpackages('both')], [qw(foo-any foo-all)], 'packages list correct and in order');
+is_deeply([getpackages('arch')], [qw(foo-any)], 'arch:linux-any');
+is_deeply([getpackages('indep')], [qw(foo-all)], 'arch:all');
+
+
+is(package_section('foo-any'), 'devel', 'binary section');
+is(package_section('foo-all'), 'misc', 'binary section (inherit from source)');
+
+
+is(package_declared_arch('foo-any'), 'linux-any', 'binary architecture (linux-any');
+is(package_declared_arch('foo-all'), 'all', 'binary architecture (all)');
+
+ok(! package_is_arch_all('foo-any'), 'foo-any is not arch:all');
+ok(package_is_arch_all('foo-all'), 'foo-all is arch:all');
diff --git a/t/Dh_Lib/debian/changelog b/t/Dh_Lib/debian/changelog
new file mode 100644
index 00000000..5850f0e2
--- /dev/null
+++ b/t/Dh_Lib/debian/changelog
@@ -0,0 +1,5 @@
+foo (1.0-1) unstable; urgency=low
+
+ * Initial release. (Closes: #XXXXXX)
+
+ -- Test <testing@nowhere> Mon, 11 Jul 2016 18:10:59 +0200
diff --git a/t/Dh_Lib/debian/control b/t/Dh_Lib/debian/control
new file mode 100644
index 00000000..b1f0aa38
--- /dev/null
+++ b/t/Dh_Lib/debian/control
@@ -0,0 +1,19 @@
+# Comment before the source field
+
+Source: foo
+Section: misc
+Priority: optional
+Maintainer: Test <testing@nowhere>
+Standards-Version: 3.9.8
+
+Package: foo-any
+Section: devel
+Architecture: linux-any
+Description: package foo-any
+ Package foo-any
+
+Package: foo-all
+Architecture: all
+Description: package foo-all
+ Package foo-all
+
diff --git a/t/Dh_Lib/path.t b/t/Dh_Lib/path.t
new file mode 100755
index 00000000..e5f90616
--- /dev/null
+++ b/t/Dh_Lib/path.t
@@ -0,0 +1,26 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More;
+
+use Cwd qw(abs_path);
+use File::Basename qw(dirname);
+use File::Temp qw(tempdir);
+
+BEGIN {
+ my $dir = dirname(abs_path(__FILE__));
+ unshift(@INC, dirname($dir));
+ chdir($dir) or error("chdir($dir) failed: $!");
+};
+
+use Test::DH;
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+plan(tests => 3);
+
+ok(!is_empty_dir(__FILE__), "is_empty_dir(file) is false");
+ok(!is_empty_dir(dirname(__FILE__)), "is_empty_dir(non-empty) is false");
+
+my $tempdir = tempdir(CLEANUP => 1);
+ok(is_empty_dir($tempdir), "is_empty_dir(new-temp-dir) is true");
diff --git a/t/Test/DH.pm b/t/Test/DH.pm
new file mode 100644
index 00000000..8d9e71fe
--- /dev/null
+++ b/t/Test/DH.pm
@@ -0,0 +1,212 @@
+package Test::DH;
+
+use strict;
+use warnings;
+
+use Test::More;
+
+use Cwd qw(getcwd realpath);
+use Errno qw(EEXIST);
+use Exporter qw(import);
+
+use File::Temp qw(tempdir);
+use File::Path qw(remove_tree make_path);
+use File::Basename qw(dirname);
+
+our $ROOT_DIR;
+
+BEGIN {
+ my $res = realpath(__FILE__) or die('Cannot resolve ' . __FILE__ . ": $!");
+ $ROOT_DIR = dirname(dirname(dirname($res)));
+};
+
+use lib "$ROOT_DIR/lib";
+
+# These should be done before Dh_lib is loaded.
+BEGIN {
+ $ENV{PATH} = "$ROOT_DIR:$ENV{PATH}" if $ENV{PATH} !~ m{\Q$ROOT_DIR\E/?:};
+ $ENV{PERL5LIB} = join(':', "${ROOT_DIR}/lib", (grep {defined} $ENV{PERL5LIB}))
+ if not $ENV{PERL5LIB} or $ENV{PERL5LIB} !~ m{\Q$ROOT_DIR\E(?:/lib)?/?:};
+ $ENV{DH_DATAFILES} = "${ROOT_DIR}/t/fixtures:${ROOT_DIR}";
+ # Nothing in the tests requires root.
+ $ENV{DEB_RULES_REQUIRES_ROOT} = 'no';
+ # Disable colors for good measure
+ $ENV{DH_COLORS} = 'never';
+ $ENV{DPKG_COLORS} = 'never';
+
+ # Drop DEB_BUILD_PROFILES and DEB_BUILD_OPTIONS so they don't interfere
+ delete($ENV{DEB_BUILD_PROFILES});
+ delete($ENV{DEB_BUILD_OPTIONS});
+};
+
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+our @EXPORT = qw(
+ each_compat_up_to_and_incl_subtest each_compat_subtest
+ each_compat_from_and_above_subtest run_dh_tool
+ create_empty_file readlines copy_file
+ error find_script non_deprecated_compat_levels
+ each_compat_from_x_to_and_incl_y_subtest
+);
+
+our ($TEST_DH_COMPAT);
+
+my $START_DIR = getcwd();
+my $TEST_DIR;
+
+
+sub copy_file {
+ my ($src, $dest, $mode) = @_;
+ $mode //= 0644;
+ return Debian::Debhelper::Dh_Lib::_install_file_to_path($mode, $src, $dest);
+}
+
+sub run_dh_tool {
+ my (@cmd) = @_;
+ my $compat = $TEST_DH_COMPAT;
+ my $options = ref($cmd[0]) ? shift(@cmd) : {};
+ my $pid;
+
+ $pid = fork() // BAIL_OUT("fork failed: $!");
+ if (not $pid) {
+ $ENV{DH_COMPAT} = $compat;
+ $ENV{DH_INTERNAL_TESTSUITE_SILENT_WARNINGS} = 1;
+ if (defined(my $env = $options->{env})) {
+ for my $k (sort(keys(%{$env}))) {
+ if (defined($env->{$k})) {
+ $ENV{$k} = $env->{$k};
+ } else {
+ delete($ENV{$k});
+ }
+ }
+ }
+ if ($options->{quiet}) {
+ open(STDOUT, '>', '/dev/null') or error("Reopen stdout: $!");
+ open(STDERR, '>', '/dev/null') or error("Reopen stderr: $!");
+ } else {
+ # If run under prove/TAP, we don't want to confuse the test runner.
+ open(STDOUT, '>&', *STDERR) or error("Redirect stdout to stderr: $!");
+ }
+ exec(@cmd);
+ }
+ waitpid($pid, 0) == $pid or BAIL_OUT("waitpid($pid) failed: $!");
+ return 1 if not $?;
+ return 0;
+}
+
+sub _prepare_test_root {
+ my $dir = tempdir(CLEANUP => 1);
+ if (not mkdir("$dir/debian", 0777)) {
+ error("mkdir $dir/debian failed: $!")
+ if $! != EEXIST;
+ } else {
+ # auto seed it
+ my @files = qw(
+ debian/control
+ debian/compat
+ debian/changelog
+ );
+ for my $file (@files) {
+ copy_file($file, "${dir}/${file}");
+ }
+ if (@::TEST_DH_EXTRA_TEMPLATE_FILES) {
+ my $test_dir = ($TEST_DIR //= dirname($0));
+ my $fixture_dir = $::TEST_DH_FIXTURE_DIR // '.';
+ my $actual_dir = "$test_dir/$fixture_dir";
+ for my $file (@::TEST_DH_EXTRA_TEMPLATE_FILES) {
+ if (index($file, '/') > -1) {
+ my $install_dir = dirname($file);
+ mkdirs($install_dir);
+ }
+ copy_file("${actual_dir}/${file}", "${dir}/${file}");
+ }
+ }
+ }
+ return $dir;
+}
+
+sub each_compat_from_x_to_and_incl_y_subtest($$&) {
+ my ($compat, $high_compat, $code) = @_;
+ my $lowest = Debian::Debhelper::Dh_Lib::MIN_COMPAT_LEVEL;
+ my $highest = Debian::Debhelper::Dh_Lib::MAX_COMPAT_LEVEL;
+ error("compat $compat is no longer support! Min compat $lowest")
+ if $compat < $lowest;
+ error("$high_compat is from the future! Max known is $highest")
+ if $high_compat > $highest;
+ subtest '' => sub {
+ # Keep $dir alive until the test is over
+ my $dir = _prepare_test_root;
+ chdir($dir) or error("chdir($dir): $!");
+ while ($compat <= $high_compat) {
+ local $TEST_DH_COMPAT = $compat;
+ $code->($compat);
+ ++$compat;
+ }
+ chdir($START_DIR) or error("chdir($START_DIR): $!");
+ };
+ return;
+}
+
+sub each_compat_up_to_and_incl_subtest($&) {
+ unshift(@_, Debian::Debhelper::Dh_Lib::MIN_COMPAT_LEVEL);
+ goto \&each_compat_from_x_to_and_incl_y_subtest;
+}
+
+sub each_compat_from_and_above_subtest($&) {
+ splice(@_, 1, 0, Debian::Debhelper::Dh_Lib::MAX_COMPAT_LEVEL);
+ goto \&each_compat_from_x_to_and_incl_y_subtest;
+}
+
+sub each_compat_subtest(&) {
+ unshift(@_,
+ Debian::Debhelper::Dh_Lib::MIN_COMPAT_LEVEL,
+ Debian::Debhelper::Dh_Lib::MAX_COMPAT_LEVEL);
+ goto \&each_compat_from_x_to_and_incl_y_subtest;
+}
+
+sub create_empty_file {
+ my ($file, $chmod) = @_;
+ open(my $fd, '>', $file) or die("open($file): $!\n");
+ close($fd) or die("close($file): $!\n");
+ if (defined($chmod)) {
+ chmod($chmod, $file)
+ or die(sprintf('chmod(%04o, %s): %s', $chmod, $file, $!));
+ }
+ return 1;
+}
+
+sub readlines {
+ my ($h) = @_;
+ my @lines = <$h>;
+ close $h;
+ chop @lines;
+ return \@lines;
+}
+
+# In *inst order (find_script will shuffle them around for *rm order)
+my @SNIPPET_FILE_TEMPLATES = (
+ 'debian/#PACKAGE#.#SCRIPT#.debhelper',
+ 'debian/.debhelper/generated/#PACKAGE#/#SCRIPT#.service',
+);
+
+sub find_script {
+ my ($package, $script) = @_;
+ my @files;
+ for my $template (@SNIPPET_FILE_TEMPLATES) {
+ my $file = ($template =~ s/#PACKAGE#/$package/r);
+ $file =~ s/#SCRIPT#/$script/;
+ push(@files, $file) if -f $file;
+ }
+ if ($script eq 'postrm' or $script eq 'prerm') {
+ @files = reverse(@files);
+ }
+ return @files;
+}
+
+sub non_deprecated_compat_levels() {
+ my $start = Debian::Debhelper::Dh_Lib::LOWEST_NON_DEPRECATED_COMPAT_LEVEL;
+ my $end = Debian::Debhelper::Dh_Lib::MAX_COMPAT_LEVEL;
+ return ($start..$end);
+}
+
+1;
diff --git a/t/buildsystems/01-build-system-basic-api.t b/t/buildsystems/01-build-system-basic-api.t
new file mode 100755
index 00000000..dfb26d22
--- /dev/null
+++ b/t/buildsystems/01-build-system-basic-api.t
@@ -0,0 +1,43 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More tests => 12;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+use Debian::Debhelper::Buildsystem;
+
+my $BS_CLASS = 'Debian::Debhelper::Buildsystem';
+
+
+build_system_path_apis();
+
+# Bulk tests
+sub build_system_path_apis {
+ ### Test Buildsystem class API methods
+ is( $BS_CLASS->canonpath("path/to/the/./nowhere/../../somewhere"),
+ "path/to/somewhere", "canonpath no1" );
+ is( $BS_CLASS->canonpath("path/to/../forward/../../somewhere"),
+ "somewhere","canonpath no2" );
+ is( $BS_CLASS->canonpath("path/to/../../../somewhere"),
+ "../somewhere","canonpath no3" );
+ is( $BS_CLASS->canonpath("./"), ".", "canonpath no4" );
+ is( $BS_CLASS->canonpath("/absolute/path/./somewhere/../to/nowhere"),
+ "/absolute/path/to/nowhere", "canonpath no5" );
+ is( $BS_CLASS->_rel2rel("path/my/file", "path/my", "/tmp"),
+ "file", "_rel2rel no1" );
+ is( $BS_CLASS->_rel2rel("path/dir/file", "path/my", "/tmp"),
+ "../dir/file", "_rel2rel no2" );
+ is( $BS_CLASS->_rel2rel("file", "/root/path/my", "/root"),
+ "/root/file", "_rel2rel abs no3" );
+ is( $BS_CLASS->_rel2rel(".", ".", "/tmp"), ".", "_rel2rel no4" );
+ is( $BS_CLASS->_rel2rel("path", "path/", "/tmp"), ".", "_rel2rel no5" );
+ is( $BS_CLASS->_rel2rel("/absolute/path", "anybase", "/tmp"),
+ "/absolute/path", "_rel2rel abs no6");
+ is( $BS_CLASS->_rel2rel("relative/path", "/absolute/base", "/tmp"),
+ "/tmp/relative/path", "_rel2rel abs no7");
+}
+
diff --git a/t/buildsystems/02-make-jobserver-makeflags.t b/t/buildsystems/02-make-jobserver-makeflags.t
new file mode 100755
index 00000000..9469759e
--- /dev/null
+++ b/t/buildsystems/02-make-jobserver-makeflags.t
@@ -0,0 +1,57 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More tests => 9;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+# Test clean_jobserver_makeflags.
+
+test_clean_jobserver_makeflags('--jobserver-fds=103,104 -j',
+ undef,
+ 'unset makeflags');
+
+test_clean_jobserver_makeflags('-a --jobserver-fds=103,104 -j -b',
+ '-a -b',
+ 'clean makeflags');
+
+test_clean_jobserver_makeflags(' --jobserver-fds=1,2 -j ',
+ undef,
+ 'unset makeflags');
+
+test_clean_jobserver_makeflags('-a -j -b',
+ '-a -j -b',
+ 'clean makeflags does not remove -j');
+
+test_clean_jobserver_makeflags('-a --jobs -b',
+ '-a --jobs -b',
+ 'clean makeflags does not remove --jobs');
+
+test_clean_jobserver_makeflags('-j6',
+ '-j6',
+ 'clean makeflags does not remove -j6');
+
+test_clean_jobserver_makeflags('-a -j6 --jobs=7',
+ '-a -j6 --jobs=7',
+ 'clean makeflags does not remove -j or --jobs');
+
+test_clean_jobserver_makeflags('-j6 --jobserver-fds=103,104 --jobs=8',
+ '-j6 --jobs=8',
+ 'jobserver options removed');
+
+test_clean_jobserver_makeflags('-j6 --jobserver-auth=103,104 --jobs=8',
+ '-j6 --jobs=8',
+ 'jobserver options removed');
+
+sub test_clean_jobserver_makeflags {
+ my ($orig, $expected, $test) = @_;
+
+ local $ENV{MAKEFLAGS} = $orig;
+ clean_jobserver_makeflags();
+ is($ENV{MAKEFLAGS}, $expected, $test);
+}
+
diff --git a/t/buildsystems/03-bs-auto-buildable.t b/t/buildsystems/03-bs-auto-buildable.t
new file mode 100755
index 00000000..df4405b2
--- /dev/null
+++ b/t/buildsystems/03-bs-auto-buildable.t
@@ -0,0 +1,218 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More tests => 187;
+
+use File::Temp qw(tempdir);
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+use Debian::Debhelper::Dh_Buildsystems;
+
+my @STEPS = qw(configure build test install clean);
+
+### Test check_auto_buildable() of each buildsystem
+sub test_check_auto_buildable {
+ my ($bs, $config, $expected) = @_;
+
+ if (! ref $expected) {
+ my %all_steps;
+ $all_steps{$_} = $expected foreach (@STEPS);
+ $expected = \%all_steps;
+ }
+ for my $step (@STEPS) {
+ my $e = 0;
+ if (exists $expected->{$step}) {
+ $e = $expected->{$step};
+ } elsif (exists $expected->{default}) {
+ $e = $expected->{default};
+ }
+ is( $bs->check_auto_buildable($step), $e,
+ $bs->NAME() . "($config): check_auto_buildable($step) == $e" );
+ }
+}
+
+sub test_autoselection {
+ my ($testname, $expected, %args) = @_;
+ for my $step (@STEPS) {
+ my $bs = load_buildsystem({'enable-thirdparty' => 0}, $step, @_);
+ my $e = $expected;
+ $e = $expected->{$step} if ref $expected;
+ if (defined $bs) {
+ is( $bs->NAME(), $e, "autoselection($testname): $step=".((defined $e)?$e:'undef') );
+ }
+ else {
+ is ( undef, $e, "autoselection($testname): $step=".((defined $e)?$e:'undef') );
+ }
+ &{$args{"code_$step"}}() if exists $args{"code_$step"};
+ }
+}
+
+my $TEMP_DIR = tempdir('tmp.XXXXXXX', CLEANUP => 1);
+my $sourcedir = "${TEMP_DIR}/source";
+my $builddir = "${TEMP_DIR}/build";
+my %options = (
+ 'builddir' => $builddir,
+ 'sourcedir' => $sourcedir,
+);
+make_path($sourcedir, $builddir);
+use Config;
+my $libpath = $ENV{AUTOPKGTEST_TMP} ? $Config{vendorlib} : "$Test::DH::ROOT_DIR/lib";
+my @bs = load_all_buildsystems([ $libpath ], %options);
+my %bs;
+my @names = map { $_->NAME() } @bs;
+
+ok(@Debian::Debhelper::Dh_Buildsystems::BUILDSYSTEMS >= 1, "some build systems are built in" );
+is_deeply( \@names, \@Debian::Debhelper::Dh_Buildsystems::BUILDSYSTEMS, "load_all_buildsystems() loads all built-in buildsystems" );
+
+# check_auto_buildable() fails with numeric 0
+for my $bs (@bs) {
+ test_check_auto_buildable($bs, "fails with numeric 0", 0);
+ $bs{$bs->NAME()} = $bs;
+}
+
+run_auto_buildable_tests();
+
+remove_tree($sourcedir, $builddir);
+make_path($sourcedir, $builddir);
+
+run_autoselection_tests();
+
+
+#### Bulk of test code ####
+
+sub run_auto_buildable_tests {
+ create_empty_file("${sourcedir}/configure", 0755);
+ test_check_auto_buildable($bs{autoconf}, "configure", { configure => 1, clean => 1 });
+ rm_files("${sourcedir}/configure");
+
+ create_empty_file("${sourcedir}/CMakeLists.txt");
+ test_check_auto_buildable($bs{'cmake+makefile'}, "CMakeLists.txt", { configure => 1, clean => 1 });
+ rm_files("${sourcedir}/CMakeLists.txt");
+
+ create_empty_file("${sourcedir}/Makefile.PL");
+ test_check_auto_buildable($bs{perl_makemaker}, "Makefile.PL", { configure => 1 });
+ rm_files("${sourcedir}/Makefile.PL");
+
+ create_empty_file("${sourcedir}/meson.build");
+ test_check_auto_buildable($bs{'meson+ninja'}, "meson.build", { configure => 1, clean => 1 });
+ # Leave meson.build
+
+ create_empty_file("${builddir}/build.ninja");
+ test_check_auto_buildable($bs{ninja}, "build.ninja", { configure => 1, build => 1, clean => 1, install => 1, test => 1 });
+ # Leave ninja.build
+
+ # Meson + ninja
+ test_check_auto_buildable($bs{'meson+ninja'}, "meson.build+build.ninja", { configure => 1, build => 1, clean => 1, install => 1, test => 1 });
+ rm_files("${sourcedir}/meson.build", "${builddir}/build.ninja");
+
+ # With Makefile
+ create_empty_file("$builddir/Makefile");
+ test_check_auto_buildable($bs{makefile}, "Makefile", 1);
+
+ # ... +autoconf
+ create_empty_file("${sourcedir}/configure", 0755);
+ test_check_auto_buildable($bs{autoconf}, "configure+Makefile", { configure => 1, test => 1, build => 1, install => 1, clean => 1 });
+ rm_files("${sourcedir}/configure");
+
+ # ... +cmake
+ create_empty_file("${sourcedir}/CMakeLists.txt");
+ test_check_auto_buildable($bs{'cmake+makefile'}, "CMakeLists.txt+Makefile", 1);
+ create_empty_file("$builddir/CMakeCache.txt"); # strong evidence that cmake was run
+ test_check_auto_buildable($bs{'cmake+makefile'}, "CMakeCache.txt+Makefile", 2);
+ rm_files("${builddir}/Makefile", "${sourcedir}/CMakeLists.txt");
+
+ # Makefile.PL forces in-source
+ #(see note in check_auto_buildable() why always 1 here)
+ create_empty_file("${sourcedir}/Makefile.PL");
+ create_empty_file("${sourcedir}/Makefile");
+ test_check_auto_buildable($bs{perl_makemaker}, "Makefile.PL+Makefile", 1);
+ rm_files("${sourcedir}/Makefile.PL", "${sourcedir}/Makefile");
+
+ # Perl Build.PL - handles always
+ test_check_auto_buildable($bs{perl_build}, "no Build.PL", 0);
+ create_empty_file("${sourcedir}/Build.PL");
+ test_check_auto_buildable($bs{perl_build}, "Build.PL", { configure => 1 });
+ create_empty_file("${sourcedir}/Build"); # forced in source
+ test_check_auto_buildable($bs{perl_build}, "Build.PL+Build", 1);
+ rm_files("${sourcedir}/Build.PL", "${sourcedir}/Build");
+
+ # Python Distutils
+ test_check_auto_buildable($bs{python_distutils}, "no setup.py", 0);
+ create_empty_file("${sourcedir}/setup.py");
+ test_check_auto_buildable($bs{python_distutils}, "setup.py", 1);
+ rm_files("${sourcedir}/setup.py");
+}
+
+sub run_autoselection_tests {
+ # Auto-select nothing when no supported build system can be found
+ # (see #557006).
+ test_autoselection("auto-selects nothing", undef, %options);
+
+ # Autoconf
+ create_empty_file("${sourcedir}/configure", 0755);
+ create_empty_file("${builddir}/Makefile");
+ test_autoselection("autoconf",
+ { configure => "autoconf", build => "autoconf",
+ test => "autoconf", install => "autoconf",
+ clean => "autoconf"
+ }, %options);
+ rm_files("${sourcedir}/configure", "${builddir}/Makefile");
+
+
+ # Perl Makemaker (build, test, clean fail with builddir set [not supported])
+ create_empty_file("${sourcedir}/Makefile.PL");
+ create_empty_file("${sourcedir}/Makefile");
+ test_autoselection("perl_makemaker", "perl_makemaker", %options);
+ rm_files("${sourcedir}/Makefile.PL", "${sourcedir}/Makefile");
+
+
+ # Makefile
+ create_empty_file("$builddir/Makefile");
+ test_autoselection("makefile", "makefile", %options);
+ rm_files("$builddir/Makefile");
+
+ # Python Distutils
+ create_empty_file("${sourcedir}/setup.py");
+ test_autoselection("python_distutils", "python_distutils", %options);
+ rm_files("${sourcedir}/setup.py");
+
+ # Perl Build
+ create_empty_file("${sourcedir}/Build.PL");
+ create_empty_file("${sourcedir}/Build");
+ test_autoselection("perl_build", "perl_build", %options);
+ rm_files("${sourcedir}/Build.PL", "${sourcedir}/Build");
+
+ # CMake
+ create_empty_file("${sourcedir}/CMakeLists.txt");
+ test_autoselection("cmake without CMakeCache.txt",
+ { configure => "cmake+makefile", build => "makefile",
+ test => "makefile", install => "makefile",
+ clean => "makefile"
+ },
+ %options,
+ code_configure => sub {
+ create_empty_file("$builddir/Makefile");
+ });
+ rm_files("${sourcedir}/CMakeLists.txt", "$builddir/Makefile");
+
+ create_empty_file("${sourcedir}/CMakeLists.txt");
+ test_autoselection("cmake with CMakeCache.txt",
+ "cmake+makefile",
+ %options,
+ code_configure => sub {
+ create_empty_file("$builddir/Makefile");
+ create_empty_file("$builddir/CMakeCache.txt");
+ });
+ rm_files("${sourcedir}/CMakeLists.txt", "$builddir/Makefile", "$builddir/CMakeCache.txt");
+
+ create_empty_file("${sourcedir}/CMakeLists.txt");
+ create_empty_file("$builddir/Makefile");
+ test_autoselection("cmake and existing Makefile", "makefile", %options);
+ rm_files("${sourcedir}/CMakeLists.txt", "$builddir/Makefile");
+
+};
+
diff --git a/t/buildsystems/04-dh_auto_do_autoconf.t b/t/buildsystems/04-dh_auto_do_autoconf.t
new file mode 100755
index 00000000..a1346e42
--- /dev/null
+++ b/t/buildsystems/04-dh_auto_do_autoconf.t
@@ -0,0 +1,88 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More tests => 31;
+
+use File::Temp qw(tempdir);
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+use Debian::Debhelper::Dh_Buildsystems;
+
+# Let the tests to be run from anywhere but currect directory
+# is expected to be the one where this test lives in.
+chdir File::Basename::dirname($0) or die "Unable to chdir to ".File::Basename::dirname($0);
+
+$Test::DH::TEST_DH_COMPAT = 10;
+
+# Build the autoconf test package
+sub dh_auto_do_autoconf {
+ my ($sourcedir, $builddir, %args) = @_;
+
+ my (@lines, @extra_args);
+ my $buildpath = $sourcedir;
+ my @dh_auto_args = ("-D", $sourcedir);
+ my $dh_auto_str = "-D $sourcedir";
+ if ($builddir) {
+ push @dh_auto_args, "-B", $builddir;
+ $dh_auto_str .= " -B $builddir";
+ $buildpath = $builddir;
+ }
+
+ my $do_dh_auto = sub {
+ my ($step) = @_;
+ my @extra_args;
+ my $extra_str = "";
+ if (exists $args{"${step}_args"}) {
+ push @extra_args, @{$args{"${step}_args"}};
+ $extra_str .= " $_" foreach (@extra_args);
+ }
+ ok(run_dh_tool({ 'quiet' => 1 }, "dh_auto_${step}", @dh_auto_args, '--', @extra_args),
+ "dh_auto_$step $dh_auto_str$extra_str");
+ return @extra_args;
+ };
+
+ @extra_args = &$do_dh_auto('configure');
+ ok ( -f "$buildpath/Makefile", "$buildpath/Makefile exists" );
+ @lines=();
+ if ( ok(open(FILE, '<', "$buildpath/stamp_configure"), "$buildpath/stamp_configure exists") ) {
+ @lines = @{readlines(\*FILE)};
+ close(FILE);
+ }
+ is_deeply( \@lines, \@extra_args, "$buildpath/stamp_configure contains extra args" );
+
+ &$do_dh_auto('build');
+ ok ( -f "$buildpath/stamp_build", "$buildpath/stamp_build exists" );
+ &$do_dh_auto('test');
+ @lines=();
+ if ( ok(open(FILE, '<', "$buildpath/stamp_test"), "$buildpath/stamp_test exists") ) {
+ @lines = @{readlines(\*FILE)};
+ close(FILE);
+ }
+ is_deeply( \@lines, [ "VERBOSE=1" ],
+ "$buildpath/stamp_test contains VERBOSE=1" );
+ &$do_dh_auto('install');
+ @lines=();
+ if ( ok(open(FILE, '<', "$buildpath/stamp_install"), "$buildpath/stamp_install exists") ) {
+ @lines = @{readlines(\*FILE)};
+ close(FILE);
+ }
+ is_deeply( \@lines, [ "DESTDIR=".Cwd::getcwd()."/debian/testpackage" ],
+ "$buildpath/stamp_install contains DESTDIR" );
+ &$do_dh_auto('clean');
+ if ($builddir) {
+ ok ( ! -e "$buildpath", "builddir $buildpath was removed" );
+ }
+ else {
+ ok ( ! -e "$buildpath/Makefile" && ! -e "$buildpath/stamp_configure", "Makefile and stamps gone" );
+ }
+ ok ( -x "$sourcedir/configure", "configure script renamins after clean" );
+}
+
+dh_auto_do_autoconf('autoconf');
+dh_auto_do_autoconf('autoconf', 'bld/dir', configure_args => [ "--extra-autoconf-configure-arg" ]);
+ok ( ! -e 'bld', "bld got deleted too" );
+
diff --git a/t/buildsystems/05-load-build-system.t b/t/buildsystems/05-load-build-system.t
new file mode 100755
index 00000000..23aed9fe
--- /dev/null
+++ b/t/buildsystems/05-load-build-system.t
@@ -0,0 +1,55 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Cwd;
+use Test::More tests => 3;
+
+use File::Temp qw(tempdir);
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+use Debian::Debhelper::Buildsystem;
+
+my $DIR = dirname($0);
+my $SCRIPT = './load-bs.pl'; # relative to $DIR
+my $BS_CWD = Cwd::realpath($DIR) or error("cannot resolve ${DIR}: $!");
+my $BS_CLASS = 'Debian::Debhelper::Buildsystem';
+my $bs = $BS_CLASS->new();
+my $default_builddir = $bs->DEFAULT_BUILD_DIRECTORY();
+delete($ENV{'TEST_DH_SYSTEM'});
+delete($ENV{'TEST_DH_STEP'});
+
+# NOTE: disabling parallel building explicitly (it might get automatically
+# enabled if run under dpkg-buildpackage -jX) to make output deterministic.
+is_deeply( try_load_bs(undef, 'configure', '--builddirectory=autoconf/bld dir', '--sourcedirectory',
+ 'autoconf', '--max-parallel=1'),
+ [ 'NAME=autoconf', 'builddir=autoconf/bld dir', "cwd=$BS_CWD", 'makecmd=make', 'parallel=1', 'sourcedir=autoconf' ],
+ "autoconf autoselection and sourcedir/builddir" );
+
+is_deeply( try_load_bs('autoconf', 'build', '-Sautoconf', '-D', 'autoconf', '--max-parallel=1'),
+ [ 'NAME=autoconf', 'builddir=undef', "cwd=$BS_CWD", 'makecmd=make', 'parallel=1', 'sourcedir=autoconf' ],
+ "forced autoconf and sourcedir" );
+
+is_deeply( try_load_bs('autoconf', 'build', '-B', '-Sautoconf', '--max-parallel=1'),
+ [ 'NAME=autoconf', "builddir=$default_builddir", "cwd=$BS_CWD", 'makecmd=make', 'parallel=1', 'sourcedir=.' ],
+ "forced autoconf and default build directory" );
+
+sub try_load_bs {
+ my ($system, $step, @params) = @_;
+ my @lines;
+ my $pid = open(my $fd, '-|') // die("fork: $!");
+
+ if (not $pid) {
+ chdir($DIR) or die("chdir($DIR): $!");
+ $ENV{'TEST_DH_SYSTEM'} = $system if defined($system);
+ $ENV{'TEST_DH_STEP'} = $step if defined($step);
+ exec($^X, $SCRIPT, @params);
+ }
+ @lines = map { chomp; $_ } <$fd>;
+ close($fd); # Ignore error
+ return \@lines;
+}
+
diff --git a/t/buildsystems/06-buildsystem-mkdir-rmdir.t b/t/buildsystems/06-buildsystem-mkdir-rmdir.t
new file mode 100755
index 00000000..c13b2536
--- /dev/null
+++ b/t/buildsystems/06-buildsystem-mkdir-rmdir.t
@@ -0,0 +1,51 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Cwd;
+use Test::More tests => 6;
+
+use File::Temp qw(tempdir);
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use File::Path qw(make_path);
+use Test::DH;
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+use Debian::Debhelper::Buildsystem;
+
+chdir(dirname($0)) or die("chdir: $!");
+my $TEMP_DIR = tempdir('tmp.XXXXXXX', CLEANUP => 1);
+my $sourcedir = $TEMP_DIR;
+my $builddir = "${TEMP_DIR}/build";
+my $BS_CLASS = 'Debian::Debhelper::Buildsystem';
+
+# Tests
+
+do_rmdir_builddir($sourcedir, $builddir);
+ok ( ! -e $builddir, "testing rmdir_builddir() 1: builddir parent '$builddir' deleted" );
+ok ( -d $sourcedir, "testing rmdir_builddir() 1: sourcedir '$sourcedir' remains" );
+
+$builddir = "$sourcedir/bld";
+do_rmdir_builddir($sourcedir, "$builddir/dir");
+ok ( ! -e $builddir, "testing rmdir_builddir() 2: builddir parent '$builddir' deleted" );
+ok ( -d $sourcedir, "testing rmdir_builddir() 2: sourcedir '$sourcedir' remains" );
+
+$builddir = "$sourcedir/bld";
+
+make_path($builddir, "$builddir/dir");
+create_empty_file("$builddir/afile");
+create_empty_file("$builddir/dir/afile2");
+do_rmdir_builddir($sourcedir, "$builddir/dir");
+ok ( ! -e "$builddir/dir", "testing rmdir_builddir() 3: builddir '$builddir/dir' not empty, but deleted" );
+ok ( -d $builddir, "testing rmdir_builddir() 3: builddir parent '$builddir' not empty, remains" );
+
+
+### Test Buildsystem::rmdir_builddir()
+sub do_rmdir_builddir {
+ my ($sourcedir, $builddir) = @_;
+ my $system;
+ $system = $BS_CLASS->new(builddir => $builddir, sourcedir => $sourcedir);
+ $system->mkdir_builddir();
+ $system->rmdir_builddir();
+}
+
diff --git a/t/buildsystems/autoconf/configure b/t/buildsystems/autoconf/configure
index adea14e6..50397837 100755
--- a/t/buildsystems/autoconf/configure
+++ b/t/buildsystems/autoconf/configure
@@ -13,15 +13,25 @@ my @OPTIONS=qw(
^--infodir=\$\{prefix\}/share/info$
^--sysconfdir=/etc$
^--localstatedir=/var$
- ^--libexecdir=\$\{prefix\}/lib/.*$
+ ^--libdir=\$\{prefix\}/lib/.*$
+ ^--disable-option-checking$
+ ^--disable-silent-rules$
^--disable-maintainer-mode$
^--disable-dependency-tracking$
);
+# Not always passed (e.g. --libexecdir is skipped in compat 12)
+my @OPTIONAL_ARGUMENTS = qw(
+ ^--libexecdir=\$\{prefix\}/lib/.*$
+);
+
# Verify if all command line arguments were passed
my @options = map { { regex => qr/$_/,
str => $_,
found => 0 } } @OPTIONS;
+push(@options, map { { regex => qr/$_/,
+ str => $_,
+ found => 1 } } @OPTIONAL_ARGUMENTS);
my @extra_args;
ARGV_LOOP: foreach my $arg (@ARGV) {
foreach my $opt (@options) {
@@ -50,7 +60,7 @@ all: stamp_configure \$(CONFIGURE)
# Tests if dh_auto_test executes 'check' target if 'test' does not exist
check: \$(CONFIGURE) stamp_build
- \@echo Tested > stamp_test
+ \@echo VERBOSE=\$(VERBOSE) > stamp_test
install: stamp_build
\@echo DESTDIR=\$(DESTDIR) > stamp_install
diff --git a/t/buildsystems/buildsystem_tests b/t/buildsystems/buildsystem_tests
deleted file mode 100755
index 98b3895e..00000000
--- a/t/buildsystems/buildsystem_tests
+++ /dev/null
@@ -1,641 +0,0 @@
-#!/usr/bin/perl
-
-use Test::More tests => 297;
-
-use strict;
-use warnings;
-use IPC::Open2;
-use Cwd ();
-use File::Temp qw(tempfile tempdir);
-use File::Basename ();
-
-# Let the tests to be run from anywhere but currect directory
-# is expected to be the one where this test lives in.
-chdir File::Basename::dirname($0) or die "Unable to chdir to ".File::Basename::dirname($0);
-
-use_ok( 'Debian::Debhelper::Dh_Lib' );
-use_ok( 'Debian::Debhelper::Buildsystem' );
-use_ok( 'Debian::Debhelper::Dh_Buildsystems' );
-
-my $TOPDIR = "../..";
-my @STEPS = qw(configure build test install clean);
-my $BS_CLASS = 'Debian::Debhelper::Buildsystem';
-
-my ($bs, @bs, %bs);
-my ($tmp, @tmp, %tmp);
-my ($tmpdir, $builddir, $default_builddir);
-
-### Common subs ####
-sub touch {
- my $file=shift;
- my $chmod=shift;
- open FILE, ">", $file and close FILE or die "Unable to touch $file";
- chmod $chmod, $file if defined $chmod;
-}
-
-sub cleandir {
- my $dir=shift;
- system ("find", $dir, "-type", "f", "-delete");
-}
-sub readlines {
- my $h=shift;
- my @lines = <$h>;
- close $h;
- chop @lines;
- return \@lines;
-}
-
-sub process_stdout {
- my ($cmdline, $stdin) = @_;
- my ($reader, $writer);
-
- my $pid = open2($reader, $writer, $cmdline) or die "Unable to exec $cmdline";
- print $writer $stdin if $stdin;
- close $writer;
- waitpid($pid, 0);
- $? = $? >> 8; # exit status
- return readlines($reader);
-}
-
-sub write_debian_rules {
- my $contents=shift;
- my $backup;
-
- if (-f "debian/rules") {
- (undef, $backup) = tempfile(DIR => ".", OPEN => 0);
- rename "debian/rules", $backup;
- }
- # Write debian/rules if requested
- if ($contents) {
- open(my $f, ">", "debian/rules");
- print $f $contents;;
- close($f);
- chmod 0755, "debian/rules";
- }
- return $backup;
-}
-
-### Test Buildsystem class API methods
-is( $BS_CLASS->canonpath("path/to/the/./nowhere/../../somewhere"),
- "path/to/somewhere", "canonpath no1" );
-is( $BS_CLASS->canonpath("path/to/../forward/../../somewhere"),
- "somewhere","canonpath no2" );
-is( $BS_CLASS->canonpath("path/to/../../../somewhere"),
- "../somewhere","canonpath no3" );
-is( $BS_CLASS->canonpath("./"), ".", "canonpath no4" );
-is( $BS_CLASS->canonpath("/absolute/path/./somewhere/../to/nowhere"),
- "/absolute/path/to/nowhere", "canonpath no5" );
-is( $BS_CLASS->_rel2rel("path/my/file", "path/my", "/tmp"),
- "file", "_rel2rel no1" );
-is( $BS_CLASS->_rel2rel("path/dir/file", "path/my", "/tmp"),
- "../dir/file", "_rel2rel no2" );
-is( $BS_CLASS->_rel2rel("file", "/root/path/my", "/root"),
- "/root/file", "_rel2rel abs no3" );
-is( $BS_CLASS->_rel2rel(".", ".", "/tmp"), ".", "_rel2rel no4" );
-is( $BS_CLASS->_rel2rel("path", "path/", "/tmp"), ".", "_rel2rel no5" );
-is( $BS_CLASS->_rel2rel("/absolute/path", "anybase", "/tmp"),
- "/absolute/path", "_rel2rel abs no6");
-is( $BS_CLASS->_rel2rel("relative/path", "/absolute/base", "/tmp"),
- "/tmp/relative/path", "_rel2rel abs no7");
-
-### Test Buildsystem class path API methods under different configurations
-sub test_buildsystem_paths_api {
- my ($bs, $config, $expected)=@_;
-
- my $api_is = sub {
- my ($got, $name)=@_;
- is( $got, $expected->{$name}, "paths API ($config): $name")
- };
-
- &$api_is( $bs->get_sourcedir(), 'get_sourcedir()' );
- &$api_is( $bs->get_sourcepath("a/b"), 'get_sourcepath(a/b)' );
- &$api_is( $bs->get_builddir(), 'get_builddir()' );
- &$api_is( $bs->get_buildpath(), 'get_buildpath()' );
- &$api_is( $bs->get_buildpath("a/b"), 'get_buildpath(a/b)' );
- &$api_is( $bs->get_source_rel2builddir(), 'get_source_rel2builddir()' );
- &$api_is( $bs->get_source_rel2builddir("a/b"), 'get_source_rel2builddir(a/b)' );
- &$api_is( $bs->get_build_rel2sourcedir(), 'get_build_rel2sourcedir()' );
- &$api_is( $bs->get_build_rel2sourcedir("a/b"), 'get_build_rel2sourcedir(a/b)' );
-}
-
-# Defaults
-$bs = $BS_CLASS->new();
-$default_builddir = $bs->DEFAULT_BUILD_DIRECTORY();
-%tmp = (
- "get_sourcedir()" => ".",
- "get_sourcepath(a/b)" => "./a/b",
- "get_builddir()" => undef,
- "get_buildpath()" => ".",
- "get_buildpath(a/b)" => "./a/b",
- "get_source_rel2builddir()" => ".",
- "get_source_rel2builddir(a/b)" => "./a/b",
- "get_build_rel2sourcedir()" => ".",
- "get_build_rel2sourcedir(a/b)" => "./a/b",
-);
-test_buildsystem_paths_api($bs, "no builddir, no sourcedir", \%tmp);
-
-# builddir=bld/dir
-$bs = $BS_CLASS->new(builddir => "bld/dir");
-%tmp = (
- "get_sourcedir()" => ".",
- "get_sourcepath(a/b)" => "./a/b",
- "get_builddir()" => "bld/dir",
- "get_buildpath()" => "bld/dir",
- "get_buildpath(a/b)" => "bld/dir/a/b",
- "get_source_rel2builddir()" => "../..",
- "get_source_rel2builddir(a/b)" => "../../a/b",
- "get_build_rel2sourcedir()" => "bld/dir",
- "get_build_rel2sourcedir(a/b)" => "bld/dir/a/b",
-);
-test_buildsystem_paths_api($bs, "builddir=bld/dir, no sourcedir", \%tmp);
-
-# Default builddir, sourcedir=autoconf
-$bs = $BS_CLASS->new(builddir => undef, sourcedir => "autoconf");
-%tmp = (
- "get_sourcedir()" => "autoconf",
- "get_sourcepath(a/b)" => "autoconf/a/b",
- "get_builddir()" => "$default_builddir",
- "get_buildpath()" => "$default_builddir",
- "get_buildpath(a/b)" => "$default_builddir/a/b",
- "get_source_rel2builddir()" => "../autoconf",
- "get_source_rel2builddir(a/b)" => "../autoconf/a/b",
- "get_build_rel2sourcedir()" => "../$default_builddir",
- "get_build_rel2sourcedir(a/b)" => "../$default_builddir/a/b",
-);
-test_buildsystem_paths_api($bs, "default builddir, sourcedir=autoconf", \%tmp);
-
-# sourcedir=autoconf (builddir should be dropped)
-$bs = $BS_CLASS->new(builddir => "autoconf", sourcedir => "autoconf");
-%tmp = (
- "get_sourcedir()" => "autoconf",
- "get_sourcepath(a/b)" => "autoconf/a/b",
- "get_builddir()" => undef,
- "get_buildpath()" => "autoconf",
- "get_buildpath(a/b)" => "autoconf/a/b",
- "get_source_rel2builddir()" => ".",
- "get_source_rel2builddir(a/b)" => "./a/b",
- "get_build_rel2sourcedir()" => ".",
- "get_build_rel2sourcedir(a/b)" => "./a/b",
-);
-test_buildsystem_paths_api($bs, "no builddir, sourcedir=autoconf", \%tmp);
-
-# Prefer out of source tree building when
-# sourcedir=builddir=autoconf hence builddir should be dropped.
-$bs->prefer_out_of_source_building(builddir => "autoconf");
-test_buildsystem_paths_api($bs, "out of source prefered, sourcedir=builddir", \%tmp);
-
-# builddir=bld/dir, sourcedir=autoconf. Should be the same as sourcedir=autoconf.
-$bs = $BS_CLASS->new(builddir => "bld/dir", sourcedir => "autoconf");
-$bs->enforce_in_source_building();
-test_buildsystem_paths_api($bs, "in source enforced, sourcedir=autoconf", \%tmp);
-
-# builddir=../bld/dir (relative to the curdir)
-$bs = $BS_CLASS->new(builddir => "bld/dir/", sourcedir => "autoconf");
-%tmp = (
- "get_sourcedir()" => "autoconf",
- "get_sourcepath(a/b)" => "autoconf/a/b",
- "get_builddir()" => "bld/dir",
- "get_buildpath()" => "bld/dir",
- "get_buildpath(a/b)" => "bld/dir/a/b",
- "get_source_rel2builddir()" => "../../autoconf",
- "get_source_rel2builddir(a/b)" => "../../autoconf/a/b",
- "get_build_rel2sourcedir()" => "../bld/dir",
- "get_build_rel2sourcedir(a/b)" => "../bld/dir/a/b",
-);
-test_buildsystem_paths_api($bs, "builddir=../bld/dir, sourcedir=autoconf", \%tmp);
-
-### Test check_auto_buildable() of each buildsystem
-sub test_check_auto_buildable {
- my $bs=shift;
- my $config=shift;
- my $expected=shift;
- my @steps=@_ || @STEPS;
-
- if (! ref $expected) {
- my %all_steps;
- $all_steps{$_} = $expected foreach (@steps);
- $expected = \%all_steps;
- }
- for my $step (@steps) {
- my $e = 0;
- if (exists $expected->{$step}) {
- $e = $expected->{$step};
- } elsif (exists $expected->{default}) {
- $e = $expected->{default};
- }
- is( $bs->check_auto_buildable($step), $e,
- $bs->NAME() . "($config): check_auto_buildable($step) == $e" );
- }
-}
-
-$tmpdir = tempdir("tmp.XXXXXX");
-$builddir = "$tmpdir/builddir";
-mkdir $builddir;
-%tmp = (
- builddir => "$tmpdir/builddir",
- sourcedir => $tmpdir
-);
-
-# Test if all buildsystems can be loaded
-@bs = load_all_buildsystems([ $INC[0] ], %tmp);
-@tmp = map { $_->NAME() } @bs;
-ok(@Debian::Debhelper::Dh_Buildsystems::BUILDSYSTEMS >= 1, "some build systems are built in" );
-is_deeply( \@tmp, \@Debian::Debhelper::Dh_Buildsystems::BUILDSYSTEMS, "load_all_buildsystems() loads all built-in buildsystems" );
-
-# check_auto_buildable() fails with numeric 0
-for $bs (@bs) {
- test_check_auto_buildable($bs, "fails with numeric 0", 0);
-}
-
-%bs = ();
-for $bs (@bs) {
- $bs{$bs->NAME()} = $bs;
-}
-
-touch "$tmpdir/configure", 0755;
-test_check_auto_buildable($bs{autoconf}, "configure", { configure => 1 });
-
-touch "$tmpdir/CMakeLists.txt";
-test_check_auto_buildable($bs{cmake}, "CMakeLists.txt", { configure => 1, clean => 1 });
-
-touch "$tmpdir/Makefile.PL";
-test_check_auto_buildable($bs{perl_makemaker}, "Makefile.PL", { configure => 1 });
-
-# With Makefile
-touch "$builddir/Makefile";
-test_check_auto_buildable($bs{makefile}, "Makefile", 1);
-test_check_auto_buildable($bs{autoconf}, "configure+Makefile", { configure => 1 });
-test_check_auto_buildable($bs{cmake}, "CMakeLists.txt+Makefile", 1);
-touch "$builddir/CMakeCache.txt"; # strong evidence that cmake was run
-test_check_auto_buildable($bs{cmake}, "CMakeCache.txt+Makefile", 2);
-
-# Makefile.PL forces in-source
-#(see note in check_auto_buildable() why always 1 here)
-unlink "$builddir/Makefile";
-touch "$tmpdir/Makefile";
-test_check_auto_buildable($bs{perl_makemaker}, "Makefile.PL+Makefile", 1);
-
-# Perl Build.PL - handles always
-test_check_auto_buildable($bs{perl_build}, "no Build.PL", 0);
-touch "$tmpdir/Build.PL";
-test_check_auto_buildable($bs{perl_build}, "Build.PL", { configure => 1 });
-touch "$tmpdir/Build"; # forced in source
-test_check_auto_buildable($bs{perl_build}, "Build.PL+Build", 1);
-
-# Python Distutils
-test_check_auto_buildable($bs{python_distutils}, "no setup.py", 0);
-touch "$tmpdir/setup.py";
-test_check_auto_buildable($bs{python_distutils}, "setup.py", 1);
-
-cleandir($tmpdir);
-
-### Now test if it can autoselect a proper buildsystem for a typical package
-sub test_autoselection {
- my $testname=shift;
- my $expected=shift;
- my %args=@_;
- for my $step (@STEPS) {
- my $bs = load_buildsystem(undef, $step, @_);
- my $e = $expected;
- $e = $expected->{$step} if ref $expected;
- if (defined $bs) {
- is( $bs->NAME(), $e, "autoselection($testname): $step=".((defined $e)?$e:'undef') );
- }
- else {
- is ( undef, $e, "autoselection($testname): $step=".((defined $e)?$e:'undef') );
- }
- &{$args{"code_$step"}}() if exists $args{"code_$step"};
- }
-}
-
-# Auto-select nothing when no supported build system can be found
-# (see #557006).
-test_autoselection("auto-selects nothing", undef, %tmp);
-
-# Autoconf
-touch "$tmpdir/configure", 0755;
-touch "$builddir/Makefile";
-test_autoselection("autoconf",
- { configure => "autoconf", build => "makefile",
- test => "makefile", install => "makefile", clean => "makefile" }, %tmp);
-cleandir $tmpdir;
-
-# Perl Makemaker (build, test, clean fail with builddir set [not supported])
-touch "$tmpdir/Makefile.PL";
-touch "$tmpdir/Makefile";
-test_autoselection("perl_makemaker", "perl_makemaker", %tmp);
-cleandir $tmpdir;
-
-# Makefile
-touch "$builddir/Makefile";
-test_autoselection("makefile", "makefile", %tmp);
-cleandir $tmpdir;
-
-# Python Distutils
-touch "$tmpdir/setup.py";
-test_autoselection("python_distutils", "python_distutils", %tmp);
-cleandir $tmpdir;
-
-# Perl Build
-touch "$tmpdir/Build.PL";
-touch "$tmpdir/Build";
-test_autoselection("perl_build", "perl_build", %tmp);
-cleandir $tmpdir;
-
-# CMake
-touch "$tmpdir/CMakeLists.txt";
-$tmp = sub {
- touch "$builddir/Makefile";
-};
-test_autoselection("cmake without CMakeCache.txt",
- { configure => "cmake", build => "makefile",
- test => "makefile", install => "makefile", clean => "makefile" }, %tmp,
- code_configure => $tmp);
-cleandir $tmpdir;
-
-touch "$tmpdir/CMakeLists.txt";
-$tmp = sub {
- touch "$builddir/Makefile";
- touch "$builddir/CMakeCache.txt";
-};
-test_autoselection("cmake with CMakeCache.txt",
- "cmake", %tmp, code_configure => $tmp);
-cleandir $tmpdir;
-
-touch "$tmpdir/CMakeLists.txt";
-touch "$builddir/Makefile";
-test_autoselection("cmake and existing Makefile", "makefile", %tmp);
-cleandir $tmpdir;
-
-### Test Buildsystem::rmdir_builddir()
-sub do_rmdir_builddir {
- my $builddir=shift;
- my $system;
- $system = $BS_CLASS->new(builddir => $builddir, sourcedir => $tmpdir);
- $system->mkdir_builddir();
- $system->rmdir_builddir();
-}
-
-$builddir = "$tmpdir/builddir";
-do_rmdir_builddir($builddir);
-ok ( ! -e $builddir, "testing rmdir_builddir() 1: builddir parent '$builddir' deleted" );
-ok ( -d $tmpdir, "testing rmdir_builddir() 1: sourcedir '$tmpdir' remains" );
-
-$builddir = "$tmpdir/bld";
-do_rmdir_builddir("$builddir/dir");
-ok ( ! -e $builddir, "testing rmdir_builddir() 2: builddir parent '$builddir' deleted" );
-ok ( -d $tmpdir, "testing rmdir_builddir() 2: sourcedir '$tmpdir' remains" );
-
-$builddir = "$tmpdir/bld";
-mkdir "$builddir";
-touch "$builddir/afile";
-mkdir "$builddir/dir";
-touch "$builddir/dir/afile2";
-do_rmdir_builddir("$builddir/dir");
-ok ( ! -e "$builddir/dir", "testing rmdir_builddir() 3: builddir '$builddir/dir' not empty, but deleted" );
-ok ( -d $builddir, "testing rmdir_builddir() 3: builddir parent '$builddir' not empty, remains" );
-
-cleandir $tmpdir;
-
-### Test buildsystems_init() and commandline/env argument handling
-sub get_load_bs_source {
- my ($system, $step)=@_;
- $step = (defined $step) ? "'$step'" : 'undef';
- $system = (defined $system) ? "'$system'" : 'undef';
-
-return <<EOF;
-use strict;
-use warnings;
-use Debian::Debhelper::Dh_Buildsystems;
-
-buildsystems_init();
-my \$bs = load_buildsystem($system, $step);
-if (defined \$bs) {
- print 'NAME=', \$bs->NAME(), "\\n";
- print \$_, "=", (defined \$bs->{\$_}) ? \$bs->{\$_} : 'undef', "\\n"
- foreach (sort keys \%\$bs);
-}
-EOF
-}
-
-$tmp = Cwd::getcwd();
-# NOTE: disabling parallel building explicitly (it might get automatically
-# enabled if run under dpkg-buildpackage -jX) to make output deterministic.
-is_deeply( process_stdout("$^X -- - --builddirectory='autoconf/bld dir' --sourcedirectory autoconf --max-parallel=1",
- get_load_bs_source(undef, "configure")),
- [ 'NAME=autoconf', 'builddir=autoconf/bld dir', "cwd=$tmp", 'makecmd=make', 'parallel=1', 'sourcedir=autoconf' ],
- "autoconf autoselection and sourcedir/builddir" );
-
-is_deeply( process_stdout("$^X -- - -Sautoconf -D autoconf --max-parallel=1", get_load_bs_source("autoconf", "build")),
- [ 'NAME=autoconf', 'builddir=undef', "cwd=$tmp", 'makecmd=make', 'parallel=1', 'sourcedir=autoconf' ],
- "forced autoconf and sourcedir" );
-
-is_deeply( process_stdout("$^X -- - -B -Sautoconf --max-parallel=1", get_load_bs_source("autoconf", "build")),
- [ 'NAME=autoconf', "builddir=$default_builddir", "cwd=$tmp", 'makecmd=make', 'parallel=1', 'sourcedir=.' ],
- "forced autoconf and default build directory" );
-
-# Build the autoconf test package
-sub dh_auto_do_autoconf {
- my $sourcedir=shift;
- my $builddir=shift;
- my %args=@_;
-
- my (@lines, @extra_args);
- my $buildpath = $sourcedir;
- my @dh_auto_args = ("-D", $sourcedir);
- my $dh_auto_str = "-D $sourcedir";
- if ($builddir) {
- push @dh_auto_args, "-B", $builddir;
- $dh_auto_str .= " -B $builddir";
- $buildpath = $builddir;
- }
-
- my $do_dh_auto = sub {
- my $step=shift;
- my @extra_args;
- my $extra_str = "";
- if (exists $args{"${step}_args"}) {
- push @extra_args, @{$args{"${step}_args"}};
- $extra_str .= " $_" foreach (@extra_args);
- }
- is ( system("$TOPDIR/dh_auto_$step", @dh_auto_args, "--", @extra_args), 0,
- "dh_auto_$step $dh_auto_str$extra_str" );
- return @extra_args;
- };
-
- @extra_args = &$do_dh_auto('configure');
- ok ( -f "$buildpath/Makefile", "$buildpath/Makefile exists" );
- @lines=();
- if (ok( open(FILE, "$buildpath/stamp_configure"), "$buildpath/stamp_configure exists") ) {
- @lines = @{readlines(\*FILE)};
- }
- is_deeply( \@lines, \@extra_args, "$buildpath/stamp_configure contains extra args" );
-
- &$do_dh_auto('build');
- ok ( -f "$buildpath/stamp_build", "$buildpath/stamp_build exists" );
- &$do_dh_auto('test');
- ok ( -f "$buildpath/stamp_test", "$buildpath/stamp_test exists" );
- &$do_dh_auto('install');
- @lines=();
- if ( ok(open(FILE, "$buildpath/stamp_install"), "$buildpath/stamp_install exists") ) {
- @lines = @{readlines(\*FILE)};
- }
- is_deeply( \@lines, [ "DESTDIR=".Cwd::getcwd()."/debian/testpackage" ],
- "$buildpath/stamp_install contains DESTDIR" );
- &$do_dh_auto('clean');
- if ($builddir) {
- ok ( ! -e "$buildpath", "builddir $buildpath was removed" );
- }
- else {
- ok ( ! -e "$buildpath/Makefile" && ! -e "$buildpath/stamp_configure", "Makefile and stamps gone" );
- }
- ok ( -x "$sourcedir/configure", "configure script renamins after clean" );
-}
-
-dh_auto_do_autoconf('autoconf');
-dh_auto_do_autoconf('autoconf', 'bld/dir', configure_args => [ "--extra-autoconf-configure-arg" ]);
-ok ( ! -e 'bld', "bld got deleted too" );
-
-#### Test parallel building and related options / routines
-@tmp = ( $ENV{MAKEFLAGS}, $ENV{DEB_BUILD_OPTIONS} );
-
-# Test clean_jobserver_makeflags.
-
-$ENV{MAKEFLAGS} = "--jobserver-fds=103,104 -j";
-clean_jobserver_makeflags();
-ok(! exists $ENV{MAKEFLAGS}, "unset makeflags");
-
-$ENV{MAKEFLAGS} = "-a --jobserver-fds=103,104 -j -b";
-clean_jobserver_makeflags();
-is($ENV{MAKEFLAGS}, "-a -b", "clean makeflags");
-
-$ENV{MAKEFLAGS} = " --jobserver-fds=1,2 -j ";
-clean_jobserver_makeflags();
-ok(! exists $ENV{MAKEFLAGS}, "unset makeflags");
-
-$ENV{MAKEFLAGS} = "-a -j -b";
-clean_jobserver_makeflags();
-is($ENV{MAKEFLAGS}, "-a -j -b", "clean makeflags does not remove -j");
-
-$ENV{MAKEFLAGS} = "-a --jobs -b";
-clean_jobserver_makeflags();
-is($ENV{MAKEFLAGS}, "-a --jobs -b", "clean makeflags does not remove --jobs");
-
-$ENV{MAKEFLAGS} = "-j6";
-clean_jobserver_makeflags();
-is($ENV{MAKEFLAGS}, "-j6", "clean makeflags does not remove -j6");
-
-$ENV{MAKEFLAGS} = "-a -j6 --jobs=7";
-clean_jobserver_makeflags();
-is($ENV{MAKEFLAGS}, "-a -j6 --jobs=7", "clean makeflags does not remove -j or --jobs");
-
-$ENV{MAKEFLAGS} = "-j6 --jobserver-fds=103,104 --jobs=8";
-clean_jobserver_makeflags();
-is($ENV{MAKEFLAGS}, "-j6 --jobs=8", "jobserver options removed");
-
-# Test parallel building with makefile build system.
-$ENV{MAKEFLAGS} = "";
-$ENV{DEB_BUILD_OPTIONS} = "";
-
-sub do_parallel_mk {
- my $dh_opts=shift || "";
- my $make_opts=shift || "";
- return process_stdout(
- "LANG=C LC_ALL=C LC_MESSAGES=C $TOPDIR/dh_auto_build -Smakefile $dh_opts " .
- "-- -s -f parallel.mk $make_opts 2>&1 >/dev/null", "");
-}
-
-sub test_isnt_parallel {
- my ($got, $desc) = @_;
- my @makemsgs = grep /^make[\d\[\]]*:/, @$got;
- if (@makemsgs) {
- like( $makemsgs[0], qr/Error 10/, $desc );
- }
- else {
- ok( scalar(@makemsgs) > 0, $desc );
- }
-}
-
-sub test_is_parallel {
- my ($got, $desc) = @_;
- is_deeply( $got, [] , $desc );
- is( $?, 0, "(exit status=0) $desc");
-}
-
-test_isnt_parallel( do_parallel_mk(),
- "No parallel by default" );
-test_isnt_parallel( do_parallel_mk("parallel"),
- "No parallel by default with --parallel" );
-test_isnt_parallel( do_parallel_mk("--max-parallel=5"),
- "No parallel by default with --max-parallel=5" );
-
-$ENV{DEB_BUILD_OPTIONS}="parallel=5";
-test_isnt_parallel( do_parallel_mk(),
- "DEB_BUILD_OPTIONS=parallel=5 without parallel options" );
-test_is_parallel( do_parallel_mk("--parallel"),
- "DEB_BUILD_OPTIONS=parallel=5 with --parallel" );
-test_is_parallel( do_parallel_mk("--max-parallel=2"),
- "DEB_BUILD_OPTIONS=parallel=5 with --max-parallel=2" );
-test_isnt_parallel( do_parallel_mk("--max-parallel=1"),
- "DEB_BUILD_OPTIONS=parallel=5 with --max-parallel=1" );
-
-$ENV{MAKEFLAGS} = "--jobserver-fds=105,106 -j";
-$ENV{DEB_BUILD_OPTIONS}="";
-test_isnt_parallel( do_parallel_mk(),
- "makefile.pm (no parallel): no make warnings about unavailable jobserver" );
-$ENV{DEB_BUILD_OPTIONS}="parallel=5";
-test_is_parallel( do_parallel_mk("--parallel"),
- "DEB_BUILD_OPTIONS=parallel=5: no make warnings about unavail parent jobserver" );
-
-$ENV{MAKEFLAGS} = "-j2";
-$ENV{DEB_BUILD_OPTIONS}="";
-test_isnt_parallel( do_parallel_mk(),
- "MAKEFLAGS=-j2: dh_auto_build ignores MAKEFLAGS" );
-test_isnt_parallel( do_parallel_mk("--max-parallel=1"),
- "MAKEFLAGS=-j2 with --max-parallel=1: dh_auto_build enforces -j1" );
-
-# Test dh dpkg-buildpackage -jX detection
-sub do_rules_for_parallel {
- my $cmdline=shift || "";
- my $stdin=shift || "";
- return process_stdout("LANG=C LC_ALL=C LC_MESSAGES=C PATH=$TOPDIR:\$PATH " .
- "make -f - $cmdline 2>&1 >/dev/null", $stdin);
-}
-
-doit("ln", "-sf", "parallel.mk", "Makefile");
-
-# Test if dh+override+$(MAKE) legacy punctuation hack work as before
-$ENV{MAKEFLAGS} = "-j5";
-$ENV{DEB_BUILD_OPTIONS} = "parallel=5";
-
-$tmp = write_debian_rules(<<'EOF');
-#!/usr/bin/make -f
-override_dh_auto_build:
- $(MAKE)
-%:
- @dh_clean > /dev/null 2>&1
- @+dh --buildsystem=makefile --after=dh_auto_configure --until=dh_auto_build $@ 2>/dev/null
- @dh_clean > /dev/null 2>&1
-EOF
-test_is_parallel( do_rules_for_parallel("build", "include debian/rules"),
- "legacy punctuation hacks: +dh, override with \$(MAKE)" );
-unlink "debian/rules";
-
-if (defined $tmp) {
- rename($tmp, "debian/rules");
-}
-else {
- unlink("debian/rules");
-}
-
-# Clean up after parallel testing
-END {
- system("rm", "-f", "Makefile");
-}
-$ENV{MAKEFLAGS} = $tmp[0] if defined $tmp[0];
-$ENV{DEB_BUILD_OPTIONS} = $tmp[1] if defined $tmp[1];
-
-END {
- system("rm", "-rf", $tmpdir);
- system("$TOPDIR/dh_clean");
-}
diff --git a/t/buildsystems/buildsystem_tests.t b/t/buildsystems/buildsystem_tests.t
new file mode 100755
index 00000000..eaa2380f
--- /dev/null
+++ b/t/buildsystems/buildsystem_tests.t
@@ -0,0 +1,293 @@
+#!/usr/bin/perl
+
+use Test::More tests => 85;
+
+use strict;
+use warnings;
+use IPC::Open2;
+use Cwd ();
+use File::Temp qw(tempfile);
+use File::Basename ();
+
+# Let the tests to be run from anywhere but currect directory
+# is expected to be the one where this test lives in.
+chdir File::Basename::dirname($0) or die "Unable to chdir to ".File::Basename::dirname($0);
+
+use_ok( 'Debian::Debhelper::Dh_Lib' );
+use_ok( 'Debian::Debhelper::Buildsystem' );
+use_ok( 'Debian::Debhelper::Dh_Buildsystems' );
+
+my $TOPDIR = $ENV{AUTOPKGTEST_TMP} ? '/usr/bin' : '../..';
+my @STEPS = qw(configure build test install clean);
+my $BS_CLASS = 'Debian::Debhelper::Buildsystem';
+
+my ($bs);
+my ($tmp, @tmp, %tmp);
+my ($default_builddir);
+
+### Common subs ####
+sub readlines {
+ my $h=shift;
+ my @lines = <$h>;
+ close $h;
+ chop @lines;
+ return \@lines;
+}
+
+sub process_stdout {
+ my ($cmdline, $stdin) = @_;
+ my ($reader, $writer);
+
+ my $pid = open2($reader, $writer, $cmdline) or die "Unable to exec $cmdline";
+ print $writer $stdin if $stdin;
+ close $writer;
+ waitpid($pid, 0);
+ $? = $? >> 8; # exit status
+ return readlines($reader);
+}
+
+sub write_debian_rules {
+ my $contents=shift;
+ my $backup;
+
+ if (-f "debian/rules") {
+ (undef, $backup) = tempfile(DIR => ".", OPEN => 0);
+ rename "debian/rules", $backup;
+ }
+ # Write debian/rules if requested
+ if ($contents) {
+ open(my $f, ">", "debian/rules");
+ print $f $contents;;
+ close($f);
+ chmod 0755, "debian/rules";
+ }
+ return $backup;
+}
+
+### Test Buildsystem class path API methods under different configurations
+sub test_buildsystem_paths_api {
+ my ($bs, $config, $expected)=@_;
+
+ my $api_is = sub {
+ my ($got, $name)=@_;
+ is( $got, $expected->{$name}, "paths API ($config): $name")
+ };
+
+ &$api_is( $bs->get_sourcedir(), 'get_sourcedir()' );
+ &$api_is( $bs->get_sourcepath("a/b"), 'get_sourcepath(a/b)' );
+ &$api_is( $bs->get_builddir(), 'get_builddir()' );
+ &$api_is( $bs->get_buildpath(), 'get_buildpath()' );
+ &$api_is( $bs->get_buildpath("a/b"), 'get_buildpath(a/b)' );
+ &$api_is( $bs->get_source_rel2builddir(), 'get_source_rel2builddir()' );
+ &$api_is( $bs->get_source_rel2builddir("a/b"), 'get_source_rel2builddir(a/b)' );
+ &$api_is( $bs->get_build_rel2sourcedir(), 'get_build_rel2sourcedir()' );
+ &$api_is( $bs->get_build_rel2sourcedir("a/b"), 'get_build_rel2sourcedir(a/b)' );
+}
+
+# Defaults
+$bs = $BS_CLASS->new();
+$default_builddir = $bs->DEFAULT_BUILD_DIRECTORY();
+%tmp = (
+ "get_sourcedir()" => ".",
+ "get_sourcepath(a/b)" => "./a/b",
+ "get_builddir()" => undef,
+ "get_buildpath()" => ".",
+ "get_buildpath(a/b)" => "./a/b",
+ "get_source_rel2builddir()" => ".",
+ "get_source_rel2builddir(a/b)" => "./a/b",
+ "get_build_rel2sourcedir()" => ".",
+ "get_build_rel2sourcedir(a/b)" => "./a/b",
+);
+test_buildsystem_paths_api($bs, "no builddir, no sourcedir", \%tmp);
+
+# builddir=bld/dir
+$bs = $BS_CLASS->new(builddir => "bld/dir");
+%tmp = (
+ "get_sourcedir()" => ".",
+ "get_sourcepath(a/b)" => "./a/b",
+ "get_builddir()" => "bld/dir",
+ "get_buildpath()" => "bld/dir",
+ "get_buildpath(a/b)" => "bld/dir/a/b",
+ "get_source_rel2builddir()" => "../..",
+ "get_source_rel2builddir(a/b)" => "../../a/b",
+ "get_build_rel2sourcedir()" => "bld/dir",
+ "get_build_rel2sourcedir(a/b)" => "bld/dir/a/b",
+);
+test_buildsystem_paths_api($bs, "builddir=bld/dir, no sourcedir", \%tmp);
+
+# Default builddir, sourcedir=autoconf
+$bs = $BS_CLASS->new(builddir => undef, sourcedir => "autoconf");
+%tmp = (
+ "get_sourcedir()" => "autoconf",
+ "get_sourcepath(a/b)" => "autoconf/a/b",
+ "get_builddir()" => "$default_builddir",
+ "get_buildpath()" => "$default_builddir",
+ "get_buildpath(a/b)" => "$default_builddir/a/b",
+ "get_source_rel2builddir()" => "../autoconf",
+ "get_source_rel2builddir(a/b)" => "../autoconf/a/b",
+ "get_build_rel2sourcedir()" => "../$default_builddir",
+ "get_build_rel2sourcedir(a/b)" => "../$default_builddir/a/b",
+);
+test_buildsystem_paths_api($bs, "default builddir, sourcedir=autoconf", \%tmp);
+
+# sourcedir=autoconf (builddir should be dropped)
+$bs = $BS_CLASS->new(builddir => "autoconf", sourcedir => "autoconf");
+%tmp = (
+ "get_sourcedir()" => "autoconf",
+ "get_sourcepath(a/b)" => "autoconf/a/b",
+ "get_builddir()" => undef,
+ "get_buildpath()" => "autoconf",
+ "get_buildpath(a/b)" => "autoconf/a/b",
+ "get_source_rel2builddir()" => ".",
+ "get_source_rel2builddir(a/b)" => "./a/b",
+ "get_build_rel2sourcedir()" => ".",
+ "get_build_rel2sourcedir(a/b)" => "./a/b",
+);
+test_buildsystem_paths_api($bs, "no builddir, sourcedir=autoconf", \%tmp);
+
+# Prefer out of source tree building when
+# sourcedir=builddir=autoconf hence builddir should be dropped.
+$bs->prefer_out_of_source_building(builddir => "autoconf");
+test_buildsystem_paths_api($bs, "out of source preferred, sourcedir=builddir", \%tmp);
+
+# builddir=bld/dir, sourcedir=autoconf. Should be the same as sourcedir=autoconf.
+$bs = $BS_CLASS->new(builddir => "bld/dir", sourcedir => "autoconf");
+$bs->enforce_in_source_building();
+test_buildsystem_paths_api($bs, "in source enforced, sourcedir=autoconf", \%tmp);
+
+# builddir=../bld/dir (relative to the curdir)
+$bs = $BS_CLASS->new(builddir => "bld/dir/", sourcedir => "autoconf");
+%tmp = (
+ "get_sourcedir()" => "autoconf",
+ "get_sourcepath(a/b)" => "autoconf/a/b",
+ "get_builddir()" => "bld/dir",
+ "get_buildpath()" => "bld/dir",
+ "get_buildpath(a/b)" => "bld/dir/a/b",
+ "get_source_rel2builddir()" => "../../autoconf",
+ "get_source_rel2builddir(a/b)" => "../../autoconf/a/b",
+ "get_build_rel2sourcedir()" => "../bld/dir",
+ "get_build_rel2sourcedir(a/b)" => "../bld/dir/a/b",
+);
+test_buildsystem_paths_api($bs, "builddir=../bld/dir, sourcedir=autoconf", \%tmp);
+
+#### Test parallel building and related options / routines
+@tmp = ( $ENV{MAKEFLAGS}, $ENV{DEB_BUILD_OPTIONS} );
+
+
+# Test parallel building with makefile build system.
+$ENV{MAKEFLAGS} = "";
+$ENV{DEB_BUILD_OPTIONS} = "";
+
+sub do_parallel_mk {
+ my $dh_opts=shift || "";
+ my $make_opts=shift || "";
+ return process_stdout(
+ "LANG=C LC_ALL=C LC_MESSAGES=C $TOPDIR/dh_auto_build -Smakefile $dh_opts " .
+ "-- -s -f parallel.mk $make_opts 2>&1 >/dev/null", "");
+}
+
+sub test_isnt_parallel {
+ my ($got, $desc) = @_;
+ my @makemsgs = grep /^make[\d\[\]]*:/, @$got;
+ if (@makemsgs) {
+ like( $makemsgs[0], qr/Error 10/, $desc );
+ }
+ else {
+ ok( scalar(@makemsgs) > 0, $desc );
+ }
+}
+
+sub test_is_parallel {
+ my ($got, $desc) = @_;
+ is_deeply( $got, [] , $desc );
+ is( $?, 0, "(exit status=0) $desc");
+}
+
+
+test_isnt_parallel( do_parallel_mk(),
+ "No parallel by default" );
+test_isnt_parallel( do_parallel_mk("parallel"),
+ "No parallel by default with --parallel" );
+test_isnt_parallel( do_parallel_mk("--max-parallel=5"),
+ "No parallel by default with --max-parallel=5" );
+
+$ENV{DEB_BUILD_OPTIONS}="parallel=5";
+{
+ local $ENV{DH_COMPAT} = 9;
+ # compat 9 is not parallel by default
+ test_isnt_parallel( do_parallel_mk(),
+ "DEB_BUILD_OPTIONS=parallel=5 without parallel options [c9]" );
+}
+
+# compat 10+ are parallel by default
+test_is_parallel( do_parallel_mk(),
+ "DEB_BUILD_OPTIONS=parallel=5 without parallel options [current compat]" );
+test_is_parallel( do_parallel_mk("--parallel"),
+ "DEB_BUILD_OPTIONS=parallel=5 with --parallel" );
+test_is_parallel( do_parallel_mk("--max-parallel=2"),
+ "DEB_BUILD_OPTIONS=parallel=5 with --max-parallel=2" );
+test_isnt_parallel( do_parallel_mk("--max-parallel=1"),
+ "DEB_BUILD_OPTIONS=parallel=5 with --max-parallel=1" );
+test_isnt_parallel( do_parallel_mk("--no-parallel"),
+ "DEB_BUILD_OPTIONS=parallel=5 with --no-parallel" );
+
+$ENV{MAKEFLAGS} = "--jobserver-fds=105,106 -j";
+$ENV{DEB_BUILD_OPTIONS}="";
+test_isnt_parallel( do_parallel_mk(),
+ "makefile.pm (no parallel): no make warnings about unavailable jobserver" );
+$ENV{DEB_BUILD_OPTIONS}="parallel=5";
+test_is_parallel( do_parallel_mk("--parallel"),
+ "DEB_BUILD_OPTIONS=parallel=5: no make warnings about unavail parent jobserver" );
+
+$ENV{MAKEFLAGS} = "-j2";
+$ENV{DEB_BUILD_OPTIONS}="";
+test_isnt_parallel( do_parallel_mk(),
+ "MAKEFLAGS=-j2: dh_auto_build ignores MAKEFLAGS" );
+test_isnt_parallel( do_parallel_mk("--max-parallel=1"),
+ "MAKEFLAGS=-j2 with --max-parallel=1: dh_auto_build enforces -j1" );
+
+# Test dh dpkg-buildpackage -jX detection
+sub do_rules_for_parallel {
+ my $cmdline=shift || "";
+ my $stdin=shift || "";
+ return process_stdout("LANG=C LC_ALL=C LC_MESSAGES=C PATH=$TOPDIR:\$PATH " .
+ "make -f - $cmdline 2>&1 >/dev/null", $stdin);
+}
+
+doit("ln", "-sf", "parallel.mk", "Makefile");
+
+# Test if dh+override+$(MAKE) legacy punctuation hack work as before
+$ENV{MAKEFLAGS} = "-j5";
+$ENV{DEB_BUILD_OPTIONS} = "parallel=5";
+
+$tmp = write_debian_rules(<<'EOF');
+#!/usr/bin/make -f
+export DEB_RULES_REQUIRES_ROOT:=no
+override_dh_auto_build:
+ $(MAKE)
+%:
+ @dh_clean > /dev/null 2>&1
+ @+dh $@ --buildsystem=makefile --without autoreconf 2>/dev/null
+ @dh_clean > /dev/null 2>&1
+EOF
+test_is_parallel( do_rules_for_parallel("build", "include debian/rules"),
+ "legacy punctuation hacks: +dh, override with \$(MAKE)" );
+unlink "debian/rules";
+
+if (defined $tmp) {
+ rename($tmp, "debian/rules");
+}
+else {
+ unlink("debian/rules");
+}
+
+# Clean up after parallel testing
+END {
+ system("rm", "-f", "Makefile");
+}
+$ENV{MAKEFLAGS} = $tmp[0] if defined $tmp[0];
+$ENV{DEB_BUILD_OPTIONS} = $tmp[1] if defined $tmp[1];
+
+END {
+ system("$TOPDIR/dh_clean");
+}
diff --git a/t/buildsystems/debian/compat b/t/buildsystems/debian/compat
deleted file mode 100644
index 7f8f011e..00000000
--- a/t/buildsystems/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-7
diff --git a/t/buildsystems/debian/control b/t/buildsystems/debian/control
index 7edd806e..9c3134b0 100644
--- a/t/buildsystems/debian/control
+++ b/t/buildsystems/debian/control
@@ -3,6 +3,8 @@ Section: devel
Priority: optional
Maintainer: Test <testing@nowhere>
Standards-Version: 3.8.1
+Build-Depends: debhelper-compat (= 12)
+Rules-Requires-Root: no
Package: testpackage
Architecture: all
diff --git a/t/buildsystems/load-bs.pl b/t/buildsystems/load-bs.pl
new file mode 100755
index 00000000..aeb5ea80
--- /dev/null
+++ b/t/buildsystems/load-bs.pl
@@ -0,0 +1,16 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Buildsystems;
+
+buildsystems_init();
+my $system = $ENV{'TEST_DH_SYSTEM'};
+my $step = $ENV{'TEST_DH_STEP'};
+my $bs = load_buildsystem($system, $step);
+if (defined $bs) {
+ print 'NAME=', $bs->NAME(), "\n";
+ print $_, "=", (defined $bs->{$_}) ? $bs->{$_} : 'undef', "\n"
+ foreach (sort keys %$bs);
+}
+
diff --git a/t/debhelper-compat/debian/control b/t/debhelper-compat/debian/control
new file mode 100644
index 00000000..1f18f4db
--- /dev/null
+++ b/t/debhelper-compat/debian/control
@@ -0,0 +1,12 @@
+Source: foo
+Section: misc
+Priority: optional
+Build-Depends: BUILD_DEPENDS
+Maintainer: Test <testing@nowhere>
+Rules-Requires-Root: no
+Standards-Version: 3.9.8
+
+Package: foo
+Architecture: all
+Description: package foo
+ Package foo
diff --git a/t/debhelper-compat/syntax.t b/t/debhelper-compat/syntax.t
new file mode 100755
index 00000000..7fe0307a
--- /dev/null
+++ b/t/debhelper-compat/syntax.t
@@ -0,0 +1,82 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename qw(dirname);
+use File::Temp qw(tempdir);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+my $TEST_DIR = dirname(__FILE__);
+
+sub test_build_depends {
+ my ($level, $build_depends) = @_;
+ my $dir = tempdir(CLEANUP => 1);
+ if (not mkdir("$dir/debian", 0777)) {
+ error("mkdir $dir/debian failed: $!");
+ }
+ open my $in, '<', "$TEST_DIR/debian/control" or
+ error("open $TEST_DIR/debian/control failed: $!");
+ open my $out, '>', "$dir/debian/control" or
+ error("open $dir/debian/control failed: $!");
+ while (<$in>) {
+ s/BUILD_DEPENDS/$build_depends/;
+ print $out $_ or
+ error("write to $dir/debian/control failed: $!");
+ }
+ close($out) or
+ error("close $dir/debian/control failed: $!");
+ close($in);
+
+ my $start_dir = Test::DH::getcwd();
+ chdir($dir) or error("chdir($dir): $!");
+
+ plan(tests => 5);
+
+ local $ENV{DH_INTERNAL_TESTSUITE_SILENT_WARNINGS} = 1;
+ Debian::Debhelper::Dh_Lib::resetpackages;
+ Debian::Debhelper::Dh_Lib::resetcompat;
+ my @pkgs = getpackages;
+ ok(scalar @pkgs == 1);
+ ok($pkgs[0] eq 'foo');
+
+ ok(compat($level));
+ ok(compat($level + 1));
+ ok(!compat($level - 1));
+
+ chdir($start_dir) or
+ error("chdir($start_dir): $!");
+}
+
+my @levels = non_deprecated_compat_levels;
+plan(tests => scalar @levels);
+
+for my $level (@levels) {
+ subtest "compat $level" => sub {
+ plan(tests => 7);
+ subtest 'only' => sub {
+ test_build_depends($level, "debhelper-compat (= $level)");
+ };
+ subtest 'first' => sub {
+ test_build_depends($level, "debhelper-compat (= $level), bar");
+ };
+ subtest 'second' => sub {
+ test_build_depends($level, "bar, debhelper-compat (= $level)");
+ };
+ subtest 'first-nl' => sub {
+ test_build_depends($level, "debhelper-compat (= $level),\n bar");
+ };
+ subtest 'second-nl' => sub {
+ test_build_depends($level, "bar,\n debhelper-compat (= $level)");
+ };
+ subtest 'nl-first' => sub {
+ test_build_depends($level, "\n debhelper-compat (= $level),\n bar");
+ };
+ subtest 'nl-second' => sub {
+ test_build_depends($level, "\n bar,\n debhelper-compat (= $level)");
+ };
+ };
+}
diff --git a/t/dh-lib b/t/dh-lib
deleted file mode 100755
index 772b1a1e..00000000
--- a/t/dh-lib
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/perl
-package Debian::Debhelper::Dh_Lib::Test;
-use strict;
-use warnings;
-use Test::More;
-
-plan(tests => 10);
-
-use_ok('Debian::Debhelper::Dh_Lib');
-
-sub ok_autoscript_result {
- ok(-f 'debian/testpackage.postinst.debhelper');
- open(F, 'debian/testpackage.postinst.debhelper') or die;
- my (@c) = <F>;
- close(F) or die;
- like(join('',@c), qr{update-rc\.d test-script test parms with"quote >/dev/null});
-}
-
-ok(unlink('debian/testpackage.postinst.debhelper') >= 0);
-
-ok(autoscript('testpackage', 'postinst', 'postinst-init',
- 's/#SCRIPT#/test-script/g; s/#INITPARMS#/test parms with\\"quote/g'));
-ok_autoscript_result;
-
-ok(unlink('debian/testpackage.postinst.debhelper') >= 0);
-
-ok(autoscript('testpackage', 'postinst', 'postinst-init',
- sub { s/#SCRIPT#/test-script/g; s/#INITPARMS#/test parms with"quote/g } ));
-ok_autoscript_result;
-
-ok(unlink('debian/testpackage.postinst.debhelper') >= 0);
diff --git a/t/dh-lib.t b/t/dh-lib.t
new file mode 100755
index 00000000..6e6f3cb1
--- /dev/null
+++ b/t/dh-lib.t
@@ -0,0 +1,63 @@
+#!/usr/bin/perl
+package Debian::Debhelper::Dh_Lib::Test;
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(__FILE__);
+use Test::DH;
+
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+plan(tests => 2);
+
+
+sub ok_autoscript_result {
+ ok(-f 'debian/testpackage.postinst.debhelper');
+ open(my $fd, '<', 'debian/testpackage.postinst.debhelper') or die("open test-poinst: $!");
+ my (@c) = <$fd>;
+ close($fd);
+ like(join('',@c), qr{update-rc\.d test-script test parms with"quote >/dev/null});
+}
+
+
+each_compat_subtest {
+
+ ok(autoscript('testpackage', 'postinst', 'postinst-init',
+ 's/#SCRIPT#/test-script/g; s/#INITPARMS#/test parms with\\"quote/g'));
+ ok_autoscript_result;
+
+ ok(rm_files('debian/testpackage.postinst.debhelper'));
+
+ ok(autoscript('testpackage', 'postinst', 'postinst-init',
+ sub { s/\#SCRIPT\#/test-script/g; s/\#INITPARMS\#/test parms with"quote/g } ));
+ ok_autoscript_result;
+
+ ok(rm_files('debian/testpackage.postinst.debhelper'));
+
+ ok(autoscript('testpackage', 'postinst', 'postinst-init',
+ { 'SCRIPT' => 'test-script', 'INITPARMS' => 'test parms with"quote' } ));
+ ok_autoscript_result;
+
+ ok(rm_files('debian/testpackage.postinst.debhelper'));
+};
+
+$ENV{'FOO'} = "test";
+my @SUBST_TEST_OK = (
+ ['unchanged', 'unchanged'],
+ ["unchanged\${\n}", "unchanged\${\n}"], # Newline is not an allowed part of ${}
+ ['raw dollar-sign ${}', 'raw dollar-sign $'],
+ ['${Dollar}${Space}${Dollar}', '$ $'],
+ ['Hello ${env:FOO}', 'Hello test'],
+ ['${Dollar}{Space}${}{Space}', '${Space}${Space}'], # We promise that ${Dollar}/${} never cause recursion
+ ['/usr/lib/${DEB_HOST_MULTIARCH}', '/usr/lib/' . dpkg_architecture_value('DEB_HOST_MULTIARCH')],
+);
+
+each_compat_subtest {
+ for my $test (@SUBST_TEST_OK) {
+ my ($input, $expected_output) = @{$test};
+ my $actual_output = Debian::Debhelper::Dh_Lib::_variable_substitution($input, 'test');
+ is($actual_output, $expected_output, qq{${input}" => "${actual_output}" (should be: "${expected_output})"});
+ }
+};
diff --git a/t/dh-sequencer.t b/t/dh-sequencer.t
new file mode 100755
index 00000000..f8643866
--- /dev/null
+++ b/t/dh-sequencer.t
@@ -0,0 +1,282 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More;
+
+use Debian::Debhelper::Sequence;
+use Debian::Debhelper::SequencerUtil;
+
+# Shorten variants of the sequences.
+my @bd = (qw{
+ dh_testdir
+ dh_auto_configure
+ dh_auto_build
+ dh_auto_test
+});
+my @i = (qw{
+ dh_testroot
+ dh_prep
+ dh_auto_install
+
+ dh_install
+ dh_missing
+});
+my @ba = (
+ {
+ 'command' => 'dh_strip',
+ 'command-options' => [],
+ 'sequence-limitation' => SEQUENCE_TYPE_ARCH_ONLY,
+ },
+ {
+ 'command' => 'dh_makeshlibs',
+ 'command-options' => [],
+ 'sequence-limitation' => SEQUENCE_TYPE_ARCH_ONLY,
+ },
+ {
+ 'command' => 'dh_shlibdeps',
+ 'command-options' => [],
+ 'sequence-limitation' => SEQUENCE_TYPE_ARCH_ONLY,
+ }
+);
+my @b=qw{
+ dh_installdeb
+ dh_gencontrol
+ dh_builddeb
+};
+my @c=qw{
+ dh_testdir
+ dh_auto_clean
+ dh_clean
+};
+
+my %sequences;
+
+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"), @ba, @b);
+_add_sequence('clean', SEQUENCE_NO_SUBSEQUENCES, @c);
+
+sub _cmd_names {
+ my (@input) = @_;
+ my @cmds;
+ for my $cmd (@input) {
+ if (ref($cmd) eq 'HASH') {
+ push(@cmds, $cmd->{'command'});
+ } else {
+ push(@cmds, $cmd);
+ }
+ }
+ return \@cmds;
+}
+
+my %sequences_unpacked = (
+ 'build-indep' => _cmd_names(@bd),
+ 'build-arch' => _cmd_names(@bd),
+ 'build' => _cmd_names(@bd),
+
+ 'install-indep' => _cmd_names(@bd, @i),
+ 'install-arch' => _cmd_names(@bd, @i),
+ 'install' => _cmd_names(@bd, @i),
+
+ 'binary-indep' => _cmd_names(@bd, @i, @b),
+ 'binary-arch' => _cmd_names(@bd, @i, @ba, @b),
+ 'binary' => _cmd_names(@bd, @i, @ba, @b),
+
+ 'clean' => _cmd_names(@c),
+);
+
+plan tests => 21 + 3 * scalar(keys(%sequences));
+
+# We will horse around with %EXPLICIT_TARGETS in this test; it should
+# definitely not attempt to read d/rules or the test will be break.
+$Debian::Debhelper::SequencerUtil::RULES_PARSED = 1;
+
+
+is_deeply(
+ [unpack_sequence(\%sequences, 'build')],
+ [[], $sequences_unpacked{'build'}],
+ 'Inlined build sequence matches build-indep/build-arch');
+
+is_deeply(
+ [unpack_sequence(\%sequences, 'install')],
+ [[], $sequences_unpacked{'install'}],
+ 'Inlined install sequence matches build-indep/build-arch + install commands');
+
+is_deeply(
+ [unpack_sequence(\%sequences, 'binary-arch')],
+ [[], $sequences_unpacked{'binary-arch'}],
+ 'Inlined binary-arch sequence has all the commands');
+
+is_deeply(
+ [unpack_sequence(\%sequences, 'binary-indep')],
+ [[], $sequences_unpacked{'binary-indep'}],
+ 'Inlined binary-indep sequence has all the commands except @bd');
+
+is_deeply(
+ [unpack_sequence(\%sequences, 'binary')],
+ [[], $sequences_unpacked{'binary'}],
+ 'Inlined binary sequence has all the commands');
+
+
+is_deeply(
+ [unpack_sequence(\%sequences, 'binary', 0, { 'build' => 1, 'build-arch' => 1, 'build-indep' => 1})],
+ [[], _cmd_names(@i, @ba, @b)],
+ 'Inlined binary sequence with build-* done has @i, @ba and @b');
+
+
+is_deeply(
+ [unpack_sequence(\%sequences, 'binary', 0, { 'build-arch' => 1, 'build-indep' => 1})],
+ [[], _cmd_names(@i, @ba, @b)],
+ 'Inlined binary sequence with build-* done has @i, @ba and @b');
+
+is_deeply(
+ [unpack_sequence(\%sequences, 'binary', 0, {}, 0)],
+ [[], _cmd_names(@bd, @i, @ba, @b)],
+ 'Inlined binary sequence and arch:all + arch:any is reduced to @bd, @i, @ba and @b');
+
+is_deeply(
+ [unpack_sequence(\%sequences, 'binary', 0, {}, FLAG_OPT_SOURCE_BUILDS_NO_ARCH_PACKAGES)],
+ [[], _cmd_names(@bd, @i, @b)],
+ 'Inlined binary sequence and not arch:any is reduced to @bd, @i and @b');
+
+is_deeply(
+ [unpack_sequence(\%sequences, 'binary', 0, {}, FLAG_OPT_SOURCE_BUILDS_NO_INDEP_PACKAGES)],
+ [[], _cmd_names(@bd, @i, @ba, @b)],
+ 'Inlined binary sequence and not arch:all is reduced to @bd, @i, @ba and @b');
+
+
+{
+ local $Debian::Debhelper::SequencerUtil::EXPLICIT_TARGETS{'build-arch'} = 1;
+ local $Debian::Debhelper::SequencerUtil::EXPLICIT_TARGETS{'build-indep'} = 1;
+
+ is_deeply(
+ [unpack_sequence(\%sequences, 'binary', 0, { 'build-arch' => 1, 'build-indep' => 1})],
+ [[], _cmd_names(@i, @ba, @b)],
+ 'Inlined binary sequence with build-* done has @i, @ba and @b');
+ my $actual = [unpack_sequence(\%sequences, 'binary')];
+ # @i should be "-i"-only, @ba + @b should be both.
+ # Unfortunately, unpack_sequence cannot show that.
+ my $expected = [[to_rules_target('build-arch'), to_rules_target('build-indep')], _cmd_names(@i, @ba, @b)];
+ # Permit some fuzz on the order between build-arch and build-arch
+ if ($actual->[0][0] eq to_rules_target('build-indep')) {
+ $expected->[0][0] = to_rules_target('build-indep');
+ $expected->[0][1] = to_rules_target('build-arch');
+ }
+ is_deeply(
+ $actual,
+ $expected,
+ 'Inlined binary sequence with explicit build-* has explicit d/rules build-{arch,indep} + @i, @ba, @b');
+
+ is_deeply(
+ [unpack_sequence(\%sequences, 'binary', 0, { 'build' => 1})],
+ [[], _cmd_names(@i, @ba, @b)],
+ 'Inlined binary sequence with explicit build-* but done build has only @i, @ba and @b');
+}
+
+{
+ local $Debian::Debhelper::SequencerUtil::EXPLICIT_TARGETS{'build-indep'} = 1;
+ is_deeply(
+ [ unpack_sequence(\%sequences, 'binary', 0, { 'build-arch' => 1 }) ],
+ [ [to_rules_target('build-indep')], _cmd_names(@i, @ba, @b) ],
+ 'Inlined binary sequence with build-arch done and build-indep explicit has d/rules build-indep + @i, @ba and @b');
+
+ is_deeply(
+ [ unpack_sequence(\%sequences, 'binary-arch', 0, { 'build-arch' => 1 }) ],
+ [ [], _cmd_names(@i, @ba, @b) ],
+ 'Inlined binary-arch sequence with build-arch done and build-indep explicit has @i, @ba and @b');
+
+
+ is_deeply(
+ [ unpack_sequence(\%sequences, 'binary-indep', 0, { 'build-arch' => 1 }) ],
+ [ [to_rules_target('build-indep')], _cmd_names(@i, @b) ],
+ 'Inlined binary-indep sequence with build-arch done and build-indep explicit has d/rules build-indep + @i and @b');
+}
+
+{
+ local $Debian::Debhelper::SequencerUtil::EXPLICIT_TARGETS{'build'} = 1;
+
+ is_deeply(
+ [unpack_sequence(\%sequences, 'binary')],
+ [[to_rules_target('build')], _cmd_names(@i, @ba, @b)],
+ 'Inlined binary sequence has all the commands but build target is opaque');
+
+ is_deeply(
+ [unpack_sequence(\%sequences, 'binary', 0, { 'build' => 1, 'build-arch' => 1, 'build-indep' => 1})],
+ [[], _cmd_names(@i, @ba, @b)],
+ 'Inlined binary sequence has all the commands with build-* done and not build-target');
+
+ is_deeply(
+ [unpack_sequence(\%sequences, 'build')],
+ [[], $sequences_unpacked{'build'}],
+ 'build sequence is inlineable');
+
+
+ # Compat <= 8 ignores explicit targets!
+ for my $seq_name (sort(keys(%sequences))) {
+ is_deeply(
+ [unpack_sequence(\%sequences, $seq_name, 1)],
+ [[], $sequences_unpacked{$seq_name}],
+ "Compat <= 8 ignores explicit build target in sequence ${seq_name}");
+ }
+}
+
+{
+ local $Debian::Debhelper::SequencerUtil::EXPLICIT_TARGETS{'install-arch'} = 1;
+
+ is_deeply(
+ [unpack_sequence(\%sequences, 'binary')],
+ # @bd_minimal, @bd and @i should be "-i"-only, @ba + @b should be both.
+ # Unfortunately, unpack_sequence cannot show that.
+ [[to_rules_target('install-arch')], _cmd_names(@bd, @i, @ba, @b)],
+ 'Inlined binary sequence has all the commands');
+
+ # Compat <= 8 ignores explicit targets!
+ for my $seq_name (sort(keys(%sequences))) {
+ is_deeply(
+ [unpack_sequence(\%sequences, $seq_name, 1)],
+ [[], $sequences_unpacked{$seq_name}],
+ "Compat <= 8 ignores explicit install-arch target in sequence ${seq_name}");
+ }
+}
+
+{
+ local $Debian::Debhelper::SequencerUtil::EXPLICIT_TARGETS{'install-arch'} = 1;
+ local $Debian::Debhelper::SequencerUtil::EXPLICIT_TARGETS{'build'} = 1;
+
+ my $actual = [unpack_sequence(\%sequences, 'binary')];
+ # @i should be "-i"-only, @ba + @b should be both.
+ # Unfortunately, unpack_sequence cannot show that.
+ my $expected = [[to_rules_target('build'), to_rules_target('install-arch')], _cmd_names(@i, @ba, @b)];
+ # Permit some fuzz on the order between build and install-arch
+ if ($actual->[0][0] eq to_rules_target('install-arch')) {
+ $expected->[0][0] = to_rules_target('install-arch');
+ $expected->[0][1] = to_rules_target('build');
+ }
+ is_deeply(
+ $actual,
+ $expected,
+ 'Inlined binary sequence has all the commands');
+
+ # Compat <= 8 ignores explicit targets!
+ for my $seq_name (sort(keys(%sequences))) {
+ is_deeply(
+ [unpack_sequence(\%sequences, $seq_name, 1)],
+ [[], $sequences_unpacked{$seq_name}],
+ "Compat <= 8 ignores explicit build + install-arch targets in sequence ${seq_name}");
+ }
+}
diff --git a/t/dh_compress.t b/t/dh_compress.t
new file mode 100755
index 00000000..1eb61567
--- /dev/null
+++ b/t/dh_compress.t
@@ -0,0 +1,114 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use File::Basename qw(dirname);
+use lib dirname(__FILE__);
+use Test::DH;
+
+use File::Path qw(make_path remove_tree);
+use Test::More;
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+my $PREFIX = 'debian/debhelper/usr/share/doc/debhelper';
+
+plan tests => 2;
+
+each_compat_subtest {
+ # we are testing compressing doc txt files
+ # foo.txt is 2k and bar.txt is 5k
+ mk_test_dir();
+
+ # default operation, bar.txt becomes bar.txt.gz and foo.txt is
+ # unchanged
+ ok(run_dh_tool('dh_compress'));
+
+ is_deeply(
+ [map { s{${PREFIX}/}{}; $_ } sort glob "$PREFIX/*"],
+ [qw|bar.txt.gz foo.txt|],
+ '5k txt doc compressed, 2k txt doc not compressed'
+ );
+
+ mk_test_dir();
+
+ # now if I want to pass both on the command line to dh_compress,
+ # it should compress both
+ ok(run_dh_tool('dh_compress', '--',
+ 'usr/share/doc/debhelper/foo.txt',
+ 'usr/share/doc/debhelper/bar.txt'));
+
+ is_deeply(
+ [map { s{${PREFIX}/}{}; $_ } sort glob "$PREFIX/*"],
+ [qw|bar.txt.gz foo.txt.gz|],
+ 'both 5k and 2k txt docs compressed'
+ );
+
+ mk_test_dir();
+
+ # absolute paths should also work
+ ok(run_dh_tool('dh_compress', '--',
+ '/usr/share/doc/debhelper/foo.txt',
+ '/usr/share/doc/debhelper/bar.txt'));
+
+ is_deeply(
+ [map { s{${PREFIX}/}{}; $_ } sort glob "$PREFIX/*"],
+ [qw|bar.txt.gz foo.txt.gz|],
+ 'both 5k and 2k txt docs compressed by absolute path args'
+ );
+
+ rm_test_dir();
+
+ mk_test_dir();
+
+ is(system('cp', '-la', "${PREFIX}/bar.txt", "${PREFIX}/hardlink.txt"), 0,
+ 'create hardlink');
+
+ ok(run_dh_tool('dh_compress'));
+
+ is_deeply(
+ [map { s{${PREFIX}/}{}; $_ } sort glob "$PREFIX/*"],
+ [qw|bar.txt.gz foo.txt hardlink.txt.gz|],
+ 'the 5k and its hardlink txt docs compressed'
+ );
+
+ # Verify that the hardlink is preserved.
+ my ($dev1, $inode1) = stat("${PREFIX}/bar.txt.gz") // error("stat ${PREFIX}/bar.txt.gz: $!");
+ my ($dev2, $inode2) = stat("${PREFIX}/hardlink.txt.gz") // error("stat ${PREFIX}/hardlink.txt.gz: $!");
+
+ is($dev1, $dev2, 'Still hardlinked');
+ is($inode1, $inode2, 'Still hardlinked');
+
+ rm_test_dir();
+};
+
+each_compat_from_and_above_subtest(12, sub {
+ make_path("${PREFIX}/examples");
+ create_file_of_size("${PREFIX}/examples/foo.py", 5120);
+ ok(run_dh_tool('dh_compress'));
+ ok(-f "${PREFIX}/examples/foo.py", "${PREFIX}/examples/foo.py is not compressed");
+ ok(! -f "${PREFIX}/examples/foo.py.gz", "${PREFIX}/examples/foo.py is not compressed");
+});
+
+sub create_file_of_size {
+ my ($filename, $size) = @_;
+ open(my $fh, '>', $filename) or error("open($filename) failed: $!");
+ print {$fh} 'X' x $size;
+ close($fh) or error("close($filename) failed: $!");
+}
+
+sub mk_test_dir {
+ rm_test_dir();
+
+ make_path($PREFIX);
+
+ create_file_of_size("${PREFIX}/foo.txt", 2048);
+ create_file_of_size("${PREFIX}/bar.txt", 5120);
+}
+
+sub rm_test_dir {
+ remove_tree('debian/debhelper');
+
+ rm_files('debian/debhelper.debhelper.log');
+}
+
diff --git a/t/dh_install b/t/dh_install
deleted file mode 100755
index 447a40a8..00000000
--- a/t/dh_install
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/perl
-use Test;
-plan(tests => 23);
-
-system("rm -rf debian/debhelper debian/tmp");
-
-# #537140: debian/tmp is explcitly specified despite being searched by
-# default in v7+
-system("mkdir -p debian/tmp/usr/bin; touch debian/tmp/usr/bin/foo; touch debian/tmp/usr/bin/bar");
-system("./dh_install", "debian/tmp/usr/bin/foo");
-ok(-e "debian/debhelper/usr/bin/foo");
-ok(! -e "debian/debhelper/usr/bin/bar");
-system("rm -rf debian/debhelper debian/tmp");
-
-# debian/tmp explicitly specified in filenames in older compat level
-system("mkdir -p debian/tmp/usr/bin; touch debian/tmp/usr/bin/foo; touch debian/tmp/usr/bin/bar");
-system("DH_COMPAT=6 ./dh_install debian/tmp/usr/bin/foo");
-ok(-e "debian/debhelper/usr/bin/foo");
-ok(! -e "debian/debhelper/usr/bin/bar");
-system("rm -rf debian/debhelper debian/tmp");
-
-# --sourcedir=debian/tmp in older compat level
-system("mkdir -p debian/tmp/usr/bin; touch debian/tmp/usr/bin/foo; touch debian/tmp/usr/bin/bar");
-system("DH_COMPAT=6 ./dh_install --sourcedir=debian/tmp usr/bin/foo");
-ok(-e "debian/debhelper/usr/bin/foo");
-ok(! -e "debian/debhelper/usr/bin/bar");
-system("rm -rf debian/debhelper debian/tmp");
-
-# redundant --sourcedir=debian/tmp in v7+
-system("mkdir -p debian/tmp/usr/bin; touch debian/tmp/usr/bin/foo; touch debian/tmp/usr/bin/bar");
-system("./dh_install --sourcedir=debian/tmp usr/bin/foo");
-ok(-e "debian/debhelper/usr/bin/foo");
-ok(! -e "debian/debhelper/usr/bin/bar");
-system("rm -rf debian/debhelper debian/tmp");
-
-# #537017: --sourcedir=debian/tmp/foo is used
-system("mkdir -p debian/tmp/foo/usr/bin; touch debian/tmp/foo/usr/bin/foo; touch debian/tmp/foo/usr/bin/bar");
-system("./dh_install", "--sourcedir=debian/tmp/foo", "usr/bin/bar");
-ok(-e "debian/debhelper/usr/bin/bar");
-ok(! -e "debian/debhelper/usr/bin/foo");
-system("rm -rf debian/debhelper debian/tmp");
-
-# #535367: installation of entire top-level directory from debian/tmp
-system("mkdir -p debian/tmp/usr/bin; touch debian/tmp/usr/bin/foo; touch debian/tmp/usr/bin/bar");
-system("./dh_install", "usr");
-ok(-e "debian/debhelper/usr/bin/foo");
-ok(-e "debian/debhelper/usr/bin/bar");
-system("rm -rf debian/debhelper debian/tmp");
-
-# #534565: fallback use of debian/tmp in v7+
-system("mkdir -p debian/tmp/usr/bin; touch debian/tmp/usr/bin/foo; touch debian/tmp/usr/bin/bar");
-system("./dh_install", "usr/bin");
-ok(-e "debian/debhelper/usr/bin/foo");
-ok(-e "debian/debhelper/usr/bin/bar");
-system("rm -rf debian/debhelper debian/tmp");
-
-# no fallback to debian/tmp before v7
-system("mkdir -p debian/tmp/usr/bin; touch debian/tmp/usr/bin/foo; touch debian/tmp/usr/bin/bar");
-system("DH_COMPAT=6 ./dh_install usr/bin 2>/dev/null");
-ok(! -e "debian/debhelper/usr/bin/foo");
-ok(! -e "debian/debhelper/usr/bin/bar");
-system("rm -rf debian/debhelper debian/tmp");
-
-# #534565: glob expands to dangling symlink -> should install the dangling link
-system("mkdir -p debian/tmp/usr/bin; ln -s broken debian/tmp/usr/bin/foo; touch debian/tmp/usr/bin/bar");
-system("./dh_install", "usr/bin/*");
-ok(-l "debian/debhelper/usr/bin/foo");
-ok(! -e "debian/debhelper/usr/bin/foo");
-ok(-e "debian/debhelper/usr/bin/bar");
-ok(! -l "debian/debhelper/usr/bin/bar");
-system("rm -rf debian/debhelper debian/tmp");
-
-# regular specification of file not in debian/tmp
-system("./dh_install", "dh_install", "usr/bin");
-ok(-e "debian/debhelper/usr/bin/dh_install");
-system("rm -rf debian/debhelper debian/tmp");
-
-# specification of file in source directory not in debian/tmp
-system("mkdir -p bar/usr/bin; touch bar/usr/bin/foo");
-system("./dh_install", "--sourcedir=bar", "usr/bin/foo");
-ok(-e "debian/debhelper/usr/bin/foo");
-system("rm -rf debian/debhelper bar");
-
-# specification of file in subdir, not in debian/tmp
-system("mkdir -p bar/usr/bin; touch bar/usr/bin/foo");
-system("./dh_install", "bar/usr/bin/foo");
-ok(-e "debian/debhelper/bar/usr/bin/foo");
-system("rm -rf debian/debhelper bar");
diff --git a/t/dh_install/01-basics.t b/t/dh_install/01-basics.t
new file mode 100755
index 00000000..b266196f
--- /dev/null
+++ b/t/dh_install/01-basics.t
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+plan(tests => 2);
+
+
+each_compat_subtest {
+ my ($compat) = @_;
+ # regular specification of file not in debian/tmp
+ create_empty_file('dh_install');
+ ok(run_dh_tool('dh_install', 'dh_install', 'usr/bin'));
+ ok(-e "debian/debhelper/usr/bin/dh_install");
+ remove_tree('debian/debhelper', 'debian/tmp');
+};
+
+each_compat_subtest {
+ my ($compat) = @_;
+ # specification of file in subdir, not in debian/tmp
+ make_path('bar/usr/bin');
+ create_empty_file('bar/usr/bin/foo');
+ ok(run_dh_tool('dh_install', 'bar/usr/bin/foo'));
+ ok(-e "debian/debhelper/bar/usr/bin/foo");
+ remove_tree('debian/debhelper', 'debian/tmp');
+};
+
diff --git a/t/dh_install/02-bugs-53XXXX.t b/t/dh_install/02-bugs-53XXXX.t
new file mode 100755
index 00000000..1c42489d
--- /dev/null
+++ b/t/dh_install/02-bugs-53XXXX.t
@@ -0,0 +1,65 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+plan(tests => 4);
+
+each_compat_from_and_above_subtest(7, sub {
+ my ($compat) = @_;
+ # #537140: debian/tmp is explcitly specified despite being searched by
+ # default in v7+
+
+ make_path('debian/tmp/usr/bin');
+ create_empty_file('debian/tmp/usr/bin/foo');
+ create_empty_file('debian/tmp/usr/bin/bar');
+ ok(run_dh_tool('dh_install', 'debian/tmp/usr/bin/foo'));
+ ok(-e "debian/debhelper/usr/bin/foo", "#537140 [${compat}]");
+ ok(! -e "debian/debhelper/usr/bin/bar", "#537140 [${compat}]");
+ remove_tree('debian/debhelper', 'debian/tmp');
+});
+
+each_compat_from_and_above_subtest(7, sub {
+ my ($compat) = @_;
+ # #534565: glob expands to dangling symlink -> should install the dangling link
+ make_path('debian/tmp/usr/bin');
+ make_symlink_raw_target('broken', 'debian/tmp/usr/bin/foo');
+ create_empty_file('debian/tmp/usr/bin/bar');
+ ok(run_dh_tool('dh_install', 'usr/bin/*'));
+ ok(-l "debian/debhelper/usr/bin/foo", "#534565 [${compat}]");
+ ok(!-e "debian/debhelper/usr/bin/foo", "#534565 [${compat}]");
+ ok(-e "debian/debhelper/usr/bin/bar", "#534565 [${compat}]");
+ ok(!-l "debian/debhelper/usr/bin/bar", "#534565 [${compat}]");
+ remove_tree('debian/debhelper', 'debian/tmp');
+});
+
+each_compat_subtest {
+ my ($compat) = @_;
+ # #537017: --sourcedir=debian/tmp/foo is used
+ make_path('debian/tmp/foo/usr/bin');
+ create_empty_file('debian/tmp/foo/usr/bin/foo');
+ create_empty_file('debian/tmp/foo/usr/bin/bar');
+ ok(run_dh_tool('dh_install', '--sourcedir=debian/tmp/foo', 'usr/bin/bar'));
+ ok(-e "debian/debhelper/usr/bin/bar", "#537017 [${compat}]");
+ ok(!-e "debian/debhelper/usr/bin/foo", "#537017 [${compat}]");
+ remove_tree('debian/debhelper', 'debian/tmp');
+};
+
+each_compat_from_and_above_subtest(7, sub {
+ my ($compat) = @_;
+ # #535367: installation of entire top-level directory from debian/tmp
+ make_path('debian/tmp/usr/bin');
+ create_empty_file('debian/tmp/usr/bin/foo');
+ create_empty_file('debian/tmp/usr/bin/bar');
+ ok(run_dh_tool('dh_install', 'usr'));
+ ok(-e "debian/debhelper/usr/bin/foo", "#535367 [${compat}]");
+ ok(-e "debian/debhelper/usr/bin/bar", "#535367 [${compat}]");
+ remove_tree('debian/debhelper', 'debian/tmp');
+});
+
diff --git a/t/dh_install/03-866570-dont-install-from-host.t b/t/dh_install/03-866570-dont-install-from-host.t
new file mode 100755
index 00000000..92345d1d
--- /dev/null
+++ b/t/dh_install/03-866570-dont-install-from-host.t
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+plan(tests => 1);
+
+each_compat_subtest {
+ my ($compat) = @_;
+ # #866570 - leading slashes must *not* pull things from the root FS.
+ make_path('bin');
+ create_empty_file('bin/grep-i-licious');
+ ok(run_dh_tool('dh_install', '/bin/grep*'));
+ ok(-e "debian/debhelper/bin/grep-i-licious", "#866570 [${compat}]");
+ ok(!-e "debian/debhelper/bin/grep", "#866570 [${compat}]");
+ remove_tree('debian/debhelper', 'debian/tmp');
+};
+
diff --git a/t/dh_install/04-sourcedir.t b/t/dh_install/04-sourcedir.t
new file mode 100755
index 00000000..83bd0065
--- /dev/null
+++ b/t/dh_install/04-sourcedir.t
@@ -0,0 +1,47 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+plan(tests => 3);
+
+
+each_compat_subtest {
+ my ($compat) = @_;
+ # redundant --sourcedir=debian/tmp in v7+
+ make_path('debian/tmp/usr/bin');
+ create_empty_file('debian/tmp/usr/bin/foo');
+ create_empty_file('debian/tmp/usr/bin/bar');
+ ok(run_dh_tool('dh_install', '--sourcedir=debian/tmp', 'usr/bin/foo'));
+ ok(-e "debian/debhelper/usr/bin/foo");
+ ok(! -e "debian/debhelper/usr/bin/bar");
+ remove_tree('debian/debhelper', 'debian/tmp');
+};
+
+each_compat_subtest {
+ my ($compat) = @_;
+ # #534565: fallback use of debian/tmp in v7+
+ make_path('debian/tmp/usr/bin');
+ create_empty_file('debian/tmp/usr/bin/foo');
+ create_empty_file('debian/tmp/usr/bin/bar');
+ ok(run_dh_tool('dh_install', 'usr'));
+ ok(-e "debian/debhelper/usr/bin/foo", "#534565 [${compat}]");
+ ok(-e "debian/debhelper/usr/bin/bar", "#534565 [${compat}]");
+ remove_tree('debian/debhelper', 'debian/tmp');
+};
+
+each_compat_subtest {
+ my ($compat) = @_;
+ # specification of file in source directory not in debian/tmp
+ make_path('bar/usr/bin');
+ create_empty_file('bar/usr/bin/foo');
+ ok(run_dh_tool('dh_install', '--sourcedir=bar', 'usr/bin/foo'));
+ ok(-e "debian/debhelper/usr/bin/foo");
+ remove_tree('debian/debhelper', 'debian/tmp');
+};
diff --git a/t/dh_installchangelogs/debian/control b/t/dh_installchangelogs/debian/control
new file mode 100644
index 00000000..4f4238eb
--- /dev/null
+++ b/t/dh_installchangelogs/debian/control
@@ -0,0 +1,10 @@
+Source: foo
+Section: misc
+Priority: optional
+Maintainer: Test <testing@nowhere>
+Standards-Version: 3.9.8
+
+Package: foo
+Architecture: all
+Description: package foo
+ Package foo
diff --git a/t/dh_installchangelogs/dh_installchangelogs.t b/t/dh_installchangelogs/dh_installchangelogs.t
new file mode 100755
index 00000000..989a552a
--- /dev/null
+++ b/t/dh_installchangelogs/dh_installchangelogs.t
@@ -0,0 +1,252 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use POSIX qw(locale_h);
+use Test::More;
+use Time::Piece;
+use Time::Seconds qw(ONE_MONTH ONE_YEAR);
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+
+use constant TEST_DIR => dirname($0);
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+));
+
+# Force Time::Piece to generate dch-compliant timestamps (i.e. in English).
+setlocale(LC_ALL, "C.UTF-8");
+
+use constant CUTOFF_DATE_STR => "2019-07-06"; # oldstable = Debian 10 Buster
+use constant CUTOFF_DATE => Time::Piece->strptime(CUTOFF_DATE_STR, "%Y-%m-%d");
+use constant MIN_NUM_ENTRIES => 4;
+
+sub install_changelog {
+ my ($latest_offset_years, $num_years, $is_binnmu) = @_;
+ $is_binnmu //= 0;
+
+ my $entry_date_first = CUTOFF_DATE->add_years($latest_offset_years);
+ my $entry_date_stop = $entry_date_first->add_years(-$num_years);
+
+ my $changelog = "${\TEST_DIR}/debian/changelog";
+
+ open(my $fd, ">", $changelog) or error("open($changelog): $!");
+
+ if ($is_binnmu) {
+ my $nmu_date = $entry_date_first->add_months(-1);
+ my $nmu_entry = entry_text($nmu_date, 1);
+ print($fd $nmu_entry);
+ }
+
+ # Add one entry every three months ~= four per year.
+ my $entry_date = $entry_date_first;
+ while ($entry_date > $entry_date_stop) {
+ my $entry = entry_text($entry_date, 0);
+ print($fd $entry);
+
+ $entry_date = $entry_date->add_months(-3);
+ }
+ close($fd);
+}
+
+sub entry_text {
+ my ($entry_date, $is_binnmu) = @_;
+ my $entry_date_str = $entry_date->strftime("%a, %d %b %Y %T %z");
+ my $ver = $entry_date->year . "." . $entry_date->mon . "-1";
+ my $binnmu_text = "";
+
+ if ($is_binnmu) {
+ $binnmu_text = " binary-only=yes";
+ $ver .= "+b1";
+ }
+
+ my $entry = "";
+ $entry .= "foo ($ver) unstable; urgency=low$binnmu_text\n\n";
+ $entry .= " * New release.\n\n";
+ $entry .= " -- Test <testing\@nowhere> $entry_date_str\n\n";
+
+ return $entry;
+}
+
+sub changelog_lines_pkg {
+ return changelog_lines("debian/changelog");
+}
+sub changelog_lines_installed {
+ return changelog_lines("debian/foo/usr/share/doc/foo/changelog.Debian");
+}
+sub changelog_lines_binnmu {
+ return changelog_lines("debian/foo/usr/share/doc/foo/changelog.Debian.all");
+}
+sub changelog_lines {
+ my ($changelog) = @_;
+ open(my $fd, $changelog) or error("open($changelog): $!");
+ my @lines = @{readlines($fd)};
+ @lines = grep(!/^$/, @lines);
+ return @lines;
+}
+
+sub dates_in_lines {
+ my @lines = @_;
+ my @lines_dates = grep(/^ -- /, @lines);
+ @lines_dates = map { (my $l = $_) =~ s/^\s*--\s+.*?\s+<[^>]*>\s+[A-Za-z]+, +//; $l } @lines_dates;
+ @lines_dates = map { Time::Piece->strptime($_, "%d %b %Y %T %z") } @lines_dates;
+ return @lines_dates;
+}
+
+plan(tests => 8);
+
+# Test changelog with only recent entries (< oldstable)
+my $years_after_cutoff = 2;
+my $years_of_changelog = 2;
+install_changelog($years_after_cutoff, $years_of_changelog);
+each_compat_subtest {
+ my @lines_orig = changelog_lines_pkg();
+ ok(run_dh_tool("dh_installchangelogs"));
+ my @lines = changelog_lines_installed();
+ my @comments = grep(/^#/, @lines);
+
+ is(@lines, @lines_orig);
+ is(@comments, 0);
+};
+
+# Test changelog with both recent and old entries
+$years_after_cutoff = 1;
+$years_of_changelog = 4;
+install_changelog($years_after_cutoff, $years_of_changelog);
+each_compat_subtest {
+ my @lines_orig = changelog_lines_pkg();
+ ok(run_dh_tool("dh_installchangelogs"));
+ my @lines = changelog_lines_installed();
+ my @entries = dates_in_lines(@lines);
+ my @entries_old = grep { $_ < CUTOFF_DATE } @entries;
+ my @comments = grep(/^#/, @lines);
+
+ cmp_ok(@lines, "<", @lines_orig);
+ cmp_ok(@entries, ">", 1);
+ is(@entries_old, 0);
+ cmp_ok(@comments, ">=", 1);
+};
+
+# Test changelog with only old entries
+$years_after_cutoff = -1;
+$years_of_changelog = 2;
+install_changelog($years_after_cutoff, $years_of_changelog);
+each_compat_subtest {
+ my @lines_orig = changelog_lines_pkg();
+ ok(run_dh_tool("dh_installchangelogs"));
+ my @lines = changelog_lines_installed();
+ my @entries = dates_in_lines(@lines);
+ my @entries_old = grep { $_ < CUTOFF_DATE } @entries;
+ my @comments = grep(/^#/, @lines);
+
+ cmp_ok(@lines, "<", @lines_orig);
+ is(@entries, MIN_NUM_ENTRIES);
+ is(@entries_old, MIN_NUM_ENTRIES);
+ cmp_ok(@comments, ">=", 1);
+};
+
+# Test changelog with only recent entries (< oldstable) + binNUM
+$years_after_cutoff = 2;
+$years_of_changelog = 2;
+install_changelog($years_after_cutoff, $years_of_changelog, 1);
+each_compat_subtest {
+ my @lines_orig = changelog_lines_pkg();
+ my @entries_orig = dates_in_lines(@lines_orig);
+ ok(run_dh_tool("dh_installchangelogs"));
+ my @lines = changelog_lines_installed();
+ my @entries = dates_in_lines(@lines);
+ my @entries_nmu = dates_in_lines(changelog_lines_binnmu());
+ my @comments = grep(/^#/, @lines);
+
+ is(@entries, @entries_orig-1);
+ is($entries[0], $entries_orig[1]);
+ is(@comments, 0);
+
+ is(@entries_nmu, 1);
+};
+
+# Test changelog with both recent and old entries + binNMU
+$years_after_cutoff = 1;
+$years_of_changelog = 4;
+install_changelog($years_after_cutoff, $years_of_changelog, 1);
+each_compat_subtest {
+ my @lines_orig = changelog_lines_pkg();
+ my @entries_orig = dates_in_lines(@lines_orig);
+ ok(run_dh_tool("dh_installchangelogs"));
+ my @lines = changelog_lines_installed();
+ my @entries = dates_in_lines(@lines);
+ my @entries_old = grep { $_ < CUTOFF_DATE } @entries;
+ my @entries_nmu = dates_in_lines(changelog_lines_binnmu());
+ my @comments = grep(/^#/, @lines);
+
+ cmp_ok(@entries, "<", @entries_orig-1);
+ is($entries[0], $entries_orig[1]);
+ is(@entries_old, 0);
+ cmp_ok(@comments, ">=", 1);
+
+ is(@entries_nmu, 1);
+};
+
+# Test changelog with only old entries + binNMU
+$years_after_cutoff = -1;
+$years_of_changelog = 2;
+install_changelog($years_after_cutoff, $years_of_changelog, 1);
+each_compat_subtest {
+ my @lines_orig = changelog_lines_pkg();
+ my @entries_orig = dates_in_lines(@lines_orig);
+ ok(run_dh_tool("dh_installchangelogs"));
+ my @lines = changelog_lines_installed();
+ my @entries = dates_in_lines(@lines);
+ my @entries_old = grep { $_ < CUTOFF_DATE } @entries;
+ my @entries_nmu = dates_in_lines(changelog_lines_binnmu());
+ my @comments = grep(/^#/, @lines);
+
+ is(@entries, MIN_NUM_ENTRIES);
+ is($entries[0], $entries_orig[1]);
+ is(@entries_old, MIN_NUM_ENTRIES);
+ cmp_ok(@comments, ">=", 1);
+
+ is(@entries_nmu, 1);
+};
+
+# Test changelog with both recent and old entries + --no-trim
+$years_after_cutoff = 1;
+$years_of_changelog = 4;
+install_changelog($years_after_cutoff, $years_of_changelog);
+each_compat_subtest {
+ my @lines_orig = changelog_lines_pkg();
+ ok(run_dh_tool("dh_installchangelogs", "--no-trim"));
+ my @lines = changelog_lines_installed();
+ my @entries = dates_in_lines(@lines);
+ my @entries_old = grep { $_ < CUTOFF_DATE } @entries;
+ my @comments = grep(/^#/, @lines);
+
+ is(@lines, @lines_orig);
+ cmp_ok(@entries, ">", 1);
+ cmp_ok(@entries_old, ">", 1);
+ is(@comments, 0);
+};
+
+# Test changelog with both recent and old entries + notrimdch
+$years_after_cutoff = 1;
+$years_of_changelog = 4;
+install_changelog($years_after_cutoff, $years_of_changelog);
+each_compat_subtest {
+ my @lines_orig = changelog_lines_pkg();
+ $ENV{DEB_BUILD_OPTIONS} = "notrimdch";
+ ok(run_dh_tool("dh_installchangelogs"));
+ my @lines = changelog_lines_installed();
+ my @entries = dates_in_lines(@lines);
+ my @entries_old = grep { $_ < CUTOFF_DATE } @entries;
+ my @comments = grep(/^#/, @lines);
+
+ is(@lines, @lines_orig);
+ cmp_ok(@entries, ">", 1);
+ cmp_ok(@entries_old, ">", 1);
+ is(@comments, 0);
+};
+
+unlink("${\TEST_DIR}/debian/changelog");
diff --git a/t/dh_installdocs/01-868204-ignore-broken-symlinks.t b/t/dh_installdocs/01-868204-ignore-broken-symlinks.t
new file mode 100755
index 00000000..b9801d24
--- /dev/null
+++ b/t/dh_installdocs/01-868204-ignore-broken-symlinks.t
@@ -0,0 +1,30 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+plan(tests => 1);
+
+each_compat_subtest {
+ my ($compat) = @_;
+ # #868204 - dh_installdocs did not replace dangling symlink
+ make_path('debian/debhelper/usr/share/doc/debhelper');
+ make_symlink_raw_target('../to/nowhere/bar',
+ 'debian/debhelper/usr/share/doc/debhelper/README.Debian');
+ create_empty_file('debian/README.Debian');
+
+ ok(-l 'debian/debhelper/usr/share/doc/debhelper/README.Debian');
+ ok(!-e 'debian/debhelper/usr/share/doc/debhelper/README.Debian');
+
+ ok(run_dh_tool('dh_installdocs'));
+ ok(!-l 'debian/debhelper/usr/share/doc/debhelper/README.Debian', "#868204 [${compat}]");
+ ok(-f 'debian/debhelper/usr/share/doc/debhelper/README.Debian', "#868204 [${compat}]");
+ remove_tree('debian/debhelper', 'debian/tmp');
+};
+
diff --git a/t/dh_installdocs/debian/changelog b/t/dh_installdocs/debian/changelog
new file mode 100644
index 00000000..5850f0e2
--- /dev/null
+++ b/t/dh_installdocs/debian/changelog
@@ -0,0 +1,5 @@
+foo (1.0-1) unstable; urgency=low
+
+ * Initial release. (Closes: #XXXXXX)
+
+ -- Test <testing@nowhere> Mon, 11 Jul 2016 18:10:59 +0200
diff --git a/t/dh_installdocs/debian/control b/t/dh_installdocs/debian/control
new file mode 100644
index 00000000..7e9a2282
--- /dev/null
+++ b/t/dh_installdocs/debian/control
@@ -0,0 +1,21 @@
+Source: foo
+Section: misc
+Priority: optional
+Maintainer: Test <testing@nowhere>
+Rules-Requires-Root: no
+Standards-Version: 3.9.8
+
+Package: foo
+Architecture: all
+Description: package foo
+ Package foo
+
+Package: bar
+Architecture: all
+Description: package bar
+ Package bar
+
+Package: baz
+Architecture: all
+Description: package baz
+ Package baz
diff --git a/t/dh_installdocs/debian/copyright b/t/dh_installdocs/debian/copyright
new file mode 100644
index 00000000..7e6ffb08
--- /dev/null
+++ b/t/dh_installdocs/debian/copyright
@@ -0,0 +1 @@
+Some test copyright file
diff --git a/t/dh_installdocs/debian/docfile b/t/dh_installdocs/debian/docfile
new file mode 100644
index 00000000..2719eecc
--- /dev/null
+++ b/t/dh_installdocs/debian/docfile
@@ -0,0 +1 @@
+This file must not be empty, or dh_installdocs won't install it.
diff --git a/t/dh_installdocs/dh_installdocs.t b/t/dh_installdocs/dh_installdocs.t
new file mode 100755
index 00000000..64f12546
--- /dev/null
+++ b/t/dh_installdocs/dh_installdocs.t
@@ -0,0 +1,75 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+
+use File::Path qw(remove_tree);
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+ debian/docfile
+ debian/copyright
+));
+
+plan(tests => 5);
+
+
+my $NODOC_PROFILE = {
+ 'env' => {
+ 'DEB_BUILD_PROFILES' => 'nodoc',
+ },
+};
+
+my $doc = "debian/docfile";
+
+each_compat_subtest {
+ ok(run_dh_tool('dh_installdocs', '-pbar', $doc));
+ ok(-e "debian/bar/usr/share/doc/bar/docfile");
+ remove_tree(qw(debian/foo debian/bar debian/baz));
+};
+
+each_compat_subtest {
+ #regression in debhelper 9.20160702 (#830309)
+ ok(run_dh_tool('dh_installdocs', '-pbaz', '--link-doc=foo', $doc));
+
+ ok(-l "debian/baz/usr/share/doc/baz");
+ ok(readlink("debian/baz/usr/share/doc/baz") eq 'foo');
+ ok(-e "debian/baz/usr/share/doc/foo/docfile");
+ remove_tree(qw(debian/foo debian/bar debian/baz));
+};
+
+each_compat_subtest {
+ ok(run_dh_tool('dh_installdocs', '-pfoo', '--link-doc=bar', $doc));
+
+ ok(-l "debian/foo/usr/share/doc/foo");
+ ok(readlink("debian/foo/usr/share/doc/foo") eq 'bar');
+ ok(-e "debian/foo/usr/share/doc/bar/docfile");
+ remove_tree(qw(debian/foo debian/bar debian/baz));
+};
+
+# ... and with nodoc
+
+each_compat_subtest {
+ # docs are ignored, but copyright file is still there
+ ok(run_dh_tool($NODOC_PROFILE, 'dh_installdocs', $doc));
+ for my $pkg (qw(foo bar baz)) {
+ ok(! -e "debian/$pkg/usr/share/doc/$pkg/docfile");
+ ok(-e "debian/$pkg/usr/share/doc/$pkg/copyright");
+ }
+ remove_tree(qw(debian/foo debian/bar debian/baz));
+};
+
+each_compat_subtest {
+ # docs are ignored, but symlinked doc dir is still there
+ ok(run_dh_tool($NODOC_PROFILE, 'dh_installdocs', '-pfoo', '--link-doc=bar', $doc));
+ ok(-l "debian/foo/usr/share/doc/foo");
+ ok(readlink("debian/foo/usr/share/doc/foo") eq 'bar');
+ ok(! -e "debian/foo/usr/share/doc/bar/docfile");
+ remove_tree(qw(debian/foo debian/bar debian/baz));
+};
+
diff --git a/t/dh_installgsettings/debian/changelog b/t/dh_installgsettings/debian/changelog
new file mode 100644
index 00000000..5850f0e2
--- /dev/null
+++ b/t/dh_installgsettings/debian/changelog
@@ -0,0 +1,5 @@
+foo (1.0-1) unstable; urgency=low
+
+ * Initial release. (Closes: #XXXXXX)
+
+ -- Test <testing@nowhere> Mon, 11 Jul 2016 18:10:59 +0200
diff --git a/t/dh_installgsettings/debian/control b/t/dh_installgsettings/debian/control
new file mode 100644
index 00000000..c3cb827c
--- /dev/null
+++ b/t/dh_installgsettings/debian/control
@@ -0,0 +1,17 @@
+Source: foo
+Section: misc
+Priority: optional
+Maintainer: Test <testing@nowhere>
+Standards-Version: 3.9.8
+
+Package: has-settings
+Architecture: all
+Depends: ${misc:Depends}
+Description: package has-settings
+ This package has a GSettings schema.
+
+Package: no-settings
+Architecture: all
+Depends: ${misc:Depends}
+Description: package no-settings
+ This package doesn't have a GSettings schema.
diff --git a/t/dh_installgsettings/dh_installgsettings.t b/t/dh_installgsettings/dh_installgsettings.t
new file mode 100755
index 00000000..fe76e8dc
--- /dev/null
+++ b/t/dh_installgsettings/dh_installgsettings.t
@@ -0,0 +1,49 @@
+#!/usr/bin/perl
+use strict;
+use Test::More tests => 1;
+
+use autodie;
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+));
+
+my $SCHEMAS = 'usr/share/glib-2.0/schemas';
+
+sub touch {
+ my $path = shift;
+ open(my $fh, '>>', $path);
+ close $fh;
+}
+
+sub slurp {
+ my $path = shift;
+ local $/ = undef;
+ open(my $fh, '<', $path);
+ my $contents = <$fh>;
+ close $fh;
+ return $contents;
+}
+
+each_compat_subtest {
+ make_path("debian/has-settings/$SCHEMAS");
+ touch("debian/has-settings/$SCHEMAS/com.example.HasSettings.xml");
+ make_path("debian/has-unimportant-settings/$SCHEMAS");
+ touch("debian/no-settings.substvars");
+ ok(run_dh_tool('dh_installgsettings', '-phas-settings'), 'run for has-settings');
+ ok(run_dh_tool('dh_installgsettings', '-pno-settings'), 'run for no-settings');
+ remove_tree(qw(debian/has-settings debian/has-unimportant-settings));
+ like(slurp('debian/has-settings.substvars'),
+ qr{^misc:Depends=dconf-gsettings-backend \| gsettings-backend$}m,
+ 'has-settings should depend on a backend');
+ unlike(slurp('debian/no-settings.substvars'),
+ qr{^misc:Depends=dconf-gsettings-backend \| gsettings-backend$}m,
+ 'no-settings should not depend on a backend');
+};
+
diff --git a/t/dh_installinit/debian/bar.other.init b/t/dh_installinit/debian/bar.other.init
new file mode 100644
index 00000000..ea948c58
--- /dev/null
+++ b/t/dh_installinit/debian/bar.other.init
@@ -0,0 +1,4 @@
+#!/bin/sh
+cat << 'EOF'
+I am init script to be installed into package "bar" into /etc/init.d/other path.
+EOF \ No newline at end of file
diff --git a/t/dh_installinit/debian/changelog b/t/dh_installinit/debian/changelog
new file mode 100644
index 00000000..5850f0e2
--- /dev/null
+++ b/t/dh_installinit/debian/changelog
@@ -0,0 +1,5 @@
+foo (1.0-1) unstable; urgency=low
+
+ * Initial release. (Closes: #XXXXXX)
+
+ -- Test <testing@nowhere> Mon, 11 Jul 2016 18:10:59 +0200
diff --git a/t/dh_installinit/debian/control b/t/dh_installinit/debian/control
new file mode 100644
index 00000000..48d4de2f
--- /dev/null
+++ b/t/dh_installinit/debian/control
@@ -0,0 +1,20 @@
+Source: foo
+Section: misc
+Priority: optional
+Maintainer: Test <testing@nowhere>
+Standards-Version: 3.9.8
+
+Package: foo
+Architecture: all
+Description: package foo
+ Package foo
+
+Package: bar
+Architecture: all
+Description: package bar
+ Package bar
+
+Package: baz
+Architecture: all
+Description: package baz
+ Package baz
diff --git a/t/dh_installinit/debian/foo.service b/t/dh_installinit/debian/foo.service
new file mode 100644
index 00000000..aa216362
--- /dev/null
+++ b/t/dh_installinit/debian/foo.service
@@ -0,0 +1,5 @@
+[Unit]
+Description=A unit
+
+[Service]
+ExecStart=/bin/true
diff --git a/t/dh_installinit/dh_installinit.t b/t/dh_installinit/dh_installinit.t
new file mode 100755
index 00000000..7a7817c3
--- /dev/null
+++ b/t/dh_installinit/dh_installinit.t
@@ -0,0 +1,44 @@
+#!/usr/bin/perl
+use strict;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+ debian/foo.service
+ debian/bar.other.init
+));
+
+plan(tests => 2);
+
+each_compat_up_to_and_incl_subtest(10, sub {
+ make_path(qw(debian/foo debian/bar debian/baz));
+ ok(run_dh_tool('dh_installinit'));
+ ok(-e "debian/foo/lib/systemd/system/foo.service");
+ ok(find_script('foo', 'postinst'));
+ ok(run_dh_tool('dh_clean'));
+
+});
+
+each_compat_from_and_above_subtest(11, sub {
+ make_path(qw(debian/foo debian/bar debian/baz));
+
+ ok(run_dh_tool('dh_installinit'));
+ ok(run_dh_tool({'quiet' => 1}, 'dh_installinit', '--name=other'));
+ ok(! -e "debian/foo/lib/systemd/system/foo.service");
+ ok(!find_script('foo', 'postinst'));
+ ok(run_dh_tool('dh_clean'));
+
+ make_path(qw(debian/foo/lib/systemd/system/ debian/bar debian/baz));
+ copy_file('debian/foo.service', 'debian/foo/lib/systemd/system/foo.service');
+ ok(run_dh_tool('dh_installinit'));
+ ok(!find_script('foo', 'postinst'));
+ ok(run_dh_tool('dh_clean'));
+});
+
diff --git a/t/dh_installman/01-basics.t b/t/dh_installman/01-basics.t
new file mode 100755
index 00000000..141059a5
--- /dev/null
+++ b/t/dh_installman/01-basics.t
@@ -0,0 +1,94 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+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;
+}
+
+if (has_man_db_tool('man') || has_man_db_tool('man-recode')) {
+ plan(tests => 2);
+} else {
+ plan(skip_all => 'Test requires man or man-recode');
+}
+
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ manpage-uncompressed.pod
+ manpage-compressed.pod
+ manpage-perl.pod
+ libmanpage.so.1.2.3.pod
+ libmanpage.so.9.2.3
+));
+
+each_compat_subtest {
+ my ($compat) = @_;
+ if (! -d 'generated-manpages') {
+ # Static data that can be reused. Generate only in the first test
+ make_path('generated-manpages');
+ for my $basename (qw(manpage-uncompressed manpage-compressed manpage-perl libmanpage.so.1.2.3)) {
+ doit('pod2man', '--utf8', '-c', 'Debhelper', '-r', '1.0', "${basename}.pod",
+ "generated-manpages/${basename}.1");
+ }
+ doit('pod2man', '--utf8', '-c', 'Debhelper', '-r', '1.0', '-s', '3', 'manpage-perl.pod',
+ 'generated-manpages/manpage-perl.3perl');
+ doit('gzip', '-9n', 'generated-manpages/manpage-compressed.1');
+ }
+ ok(run_dh_tool('dh_installman', 'generated-manpages/manpage-uncompressed.1',
+ 'generated-manpages/manpage-compressed.1.gz',
+ 'generated-manpages/manpage-perl.3perl',
+ 'generated-manpages/libmanpage.so.1.2.3.1',
+ 'libmanpage.so.9.2.3'));
+
+ ok(-e 'debian/debhelper/usr/share/man/man1/manpage-uncompressed.1');
+ ok(-e 'debian/debhelper/usr/share/man/man1/manpage-compressed.1');
+ ok(-e 'debian/debhelper/usr/share/man/man3/manpage-perl.3');
+ ok(-e 'debian/debhelper/usr/share/man/man1/libmanpage.so.1.2.3.1');
+ ok(! -e 'debian/debhelper/usr/share/man/man9/libmanpage.so.9.2.9.2.3');
+ ok(-l 'debian/debhelper/usr/share/man/man3/libmanpage.so.9.2.3');
+ remove_tree('debian/debhelper', 'debian/tmp', 'debian/.debhelper');
+};
+
+each_compat_subtest {
+ my ($compat) = @_;
+ if (! -d 'generated-manpages') {
+ # Static data that can be reused. Generate only in the first test
+ make_path('generated-manpages');
+ for my $basename (qw(manpage-uncompressed manpage-compressed libmanpage.so.1.2.3)) {
+ doit('pod2man', '--utf8', '-c', 'Debhelper', '-r', '1.0', "${basename}.pod",
+ "generated-manpages/${basename}.1");
+ }
+ doit('pod2man', '--utf8', '-c', 'Debhelper', '-r', '1.0', '-s', '3', 'manpage-perl.pod',
+ 'generated-manpages/manpage-perl.3perl');
+ doit('gzip', '-9n', 'generated-manpages/manpage-compressed.1');
+ }
+ mkdirs('debian/debhelper/usr/share/man/man1');
+ mkdirs('debian/debhelper/usr/share/man/man3');
+ copy_file('generated-manpages/manpage-uncompressed.1', 'debian/debhelper/usr/share/man/man1/manpage-uncompressed.1');
+ copy_file('generated-manpages/manpage-compressed.1.gz', 'debian/debhelper/usr/share/man/man1/manpage-compressed.1.gz');
+ copy_file('generated-manpages/manpage-perl.3perl', 'debian/debhelper/usr/share/man/man3/manpage-perl.3perl');
+ copy_file('generated-manpages/libmanpage.so.1.2.3.1', 'debian/debhelper/usr/share/man/man1/libmanpage.so.1.2.3.1');
+ copy_file('libmanpage.so.9.2.3', 'debian/debhelper/usr/share/man/man3/libmanpage.so.9.2.3');
+ ok(run_dh_tool('dh_installman'));
+ ok(-e 'debian/debhelper/usr/share/man/man1/manpage-uncompressed.1');
+ ok(-e 'debian/debhelper/usr/share/man/man1/manpage-compressed.1');
+ ok(-e 'debian/debhelper/usr/share/man/man3/manpage-perl.3perl');
+ ok(-e 'debian/debhelper/usr/share/man/man1/libmanpage.so.1.2.3.1');
+ ok(! -e 'debian/debhelper/usr/share/man/man9/libmanpage.so.9.2.9.2.3');
+ ok(-l 'debian/debhelper/usr/share/man/man3/libmanpage.so.9.2.3');
+ remove_tree('debian/debhelper', 'debian/tmp', 'debian/.debhelper');
+};
+
diff --git a/t/dh_installman/libmanpage.so.1.2.3.pod b/t/dh_installman/libmanpage.so.1.2.3.pod
new file mode 100644
index 00000000..0b68dec5
--- /dev/null
+++ b/t/dh_installman/libmanpage.so.1.2.3.pod
@@ -0,0 +1,17 @@
+=head1 NAME
+
+libmanpage.so.1.2.3 - Something very exciting
+
+=head1 SYNOPSIS
+
+This tool does not exist but would be awesome.
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+=head1 AUTHORS
+
+Niels Thykier <niels@thykier.net>
+
+=cut
diff --git a/t/dh_installman/libmanpage.so.9.2.3 b/t/dh_installman/libmanpage.so.9.2.3
new file mode 100644
index 00000000..07658f3c
--- /dev/null
+++ b/t/dh_installman/libmanpage.so.9.2.3
@@ -0,0 +1 @@
+.so man1/manpage-uncompressed.1
diff --git a/t/dh_installman/manpage-compressed.pod b/t/dh_installman/manpage-compressed.pod
new file mode 100644
index 00000000..d2c05968
--- /dev/null
+++ b/t/dh_installman/manpage-compressed.pod
@@ -0,0 +1,17 @@
+=head1 NAME
+
+manpage - Something very exciting
+
+=head1 SYNOPSIS
+
+This tool does not exist but would be awesome.
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+=head1 AUTHORS
+
+Niels Thykier <niels@thykier.net>
+
+=cut
diff --git a/t/dh_installman/manpage-perl.pod b/t/dh_installman/manpage-perl.pod
new file mode 100644
index 00000000..9b66d9d0
--- /dev/null
+++ b/t/dh_installman/manpage-perl.pod
@@ -0,0 +1,17 @@
+=head3 NAME
+
+manpage-uncompressed - Something very exciting
+
+=head3 SYNOPSIS
+
+This tool does not exist but would be awesome.
+
+=head3 SEE ALSO
+
+L<debhelper(7)>
+
+=head3 AUTHORS
+
+Niels Thykier <niels@thykier.net>
+
+=cut
diff --git a/t/dh_installman/manpage-uncompressed.pod b/t/dh_installman/manpage-uncompressed.pod
new file mode 100644
index 00000000..c95037cf
--- /dev/null
+++ b/t/dh_installman/manpage-uncompressed.pod
@@ -0,0 +1,17 @@
+=head1 NAME
+
+manpage-uncompressed - Something very exciting
+
+=head1 SYNOPSIS
+
+This tool does not exist but would be awesome.
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+=head1 AUTHORS
+
+Niels Thykier <niels@thykier.net>
+
+=cut
diff --git a/t/dh_installpam/debian/changelog b/t/dh_installpam/debian/changelog
new file mode 100644
index 00000000..5850f0e2
--- /dev/null
+++ b/t/dh_installpam/debian/changelog
@@ -0,0 +1,5 @@
+foo (1.0-1) unstable; urgency=low
+
+ * Initial release. (Closes: #XXXXXX)
+
+ -- Test <testing@nowhere> Mon, 11 Jul 2016 18:10:59 +0200
diff --git a/t/dh_installpam/debian/control b/t/dh_installpam/debian/control
new file mode 100644
index 00000000..c266f511
--- /dev/null
+++ b/t/dh_installpam/debian/control
@@ -0,0 +1,10 @@
+Source: foo
+Section: misc
+Priority: optional
+Maintainer: Test <testing@example.org>
+Standards-Version: 3.9.8
+
+Package: foo
+Architecture: all
+Description: package foo
+ Package foo
diff --git a/t/dh_installpam/debian/foo.pam b/t/dh_installpam/debian/foo.pam
new file mode 100644
index 00000000..fab1c8cf
--- /dev/null
+++ b/t/dh_installpam/debian/foo.pam
@@ -0,0 +1 @@
+@include common-auth
diff --git a/t/dh_installpam/dh_installpam.t b/t/dh_installpam/dh_installpam.t
new file mode 100755
index 00000000..4e76799c
--- /dev/null
+++ b/t/dh_installpam/dh_installpam.t
@@ -0,0 +1,38 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+use Test::More;
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+plan(tests => 2);
+
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+ debian/foo.pam
+));
+
+each_compat_up_to_and_incl_subtest(13, sub {
+ make_path(qw(debian/foo));
+ ok(run_dh_tool('dh_installpam'));
+
+ ok(-f 'debian/foo/etc/pam.d/foo');
+ ok(! -f 'debian/foo/usr/lib/pam.d/foo');
+
+ ok(run_dh_tool('dh_clean'));
+});
+
+each_compat_from_and_above_subtest(14, sub {
+ make_path(qw(debian/foo));
+ ok(run_dh_tool('dh_installpam'));
+
+ ok(! -f 'debian/foo/etc/pam.d/foo');
+ ok(-f 'debian/foo/usr/lib/pam.d/foo');
+
+ ok(run_dh_tool('dh_clean'));
+});
diff --git a/t/dh_installsystemd/debian/changelog b/t/dh_installsystemd/debian/changelog
new file mode 100644
index 00000000..5850f0e2
--- /dev/null
+++ b/t/dh_installsystemd/debian/changelog
@@ -0,0 +1,5 @@
+foo (1.0-1) unstable; urgency=low
+
+ * Initial release. (Closes: #XXXXXX)
+
+ -- Test <testing@nowhere> Mon, 11 Jul 2016 18:10:59 +0200
diff --git a/t/dh_installsystemd/debian/control b/t/dh_installsystemd/debian/control
new file mode 100644
index 00000000..48d4de2f
--- /dev/null
+++ b/t/dh_installsystemd/debian/control
@@ -0,0 +1,20 @@
+Source: foo
+Section: misc
+Priority: optional
+Maintainer: Test <testing@nowhere>
+Standards-Version: 3.9.8
+
+Package: foo
+Architecture: all
+Description: package foo
+ Package foo
+
+Package: bar
+Architecture: all
+Description: package bar
+ Package bar
+
+Package: baz
+Architecture: all
+Description: package baz
+ Package baz
diff --git a/t/dh_installsystemd/debian/foo.init b/t/dh_installsystemd/debian/foo.init
new file mode 100644
index 00000000..2b77921a
--- /dev/null
+++ b/t/dh_installsystemd/debian/foo.init
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+some script
+
diff --git a/t/dh_installsystemd/debian/foo.service b/t/dh_installsystemd/debian/foo.service
new file mode 100644
index 00000000..2b48a781
--- /dev/null
+++ b/t/dh_installsystemd/debian/foo.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=A unit
+
+[Service]
+ExecStart=/bin/true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/t/dh_installsystemd/debian/foo2.service b/t/dh_installsystemd/debian/foo2.service
new file mode 100644
index 00000000..42b94452
--- /dev/null
+++ b/t/dh_installsystemd/debian/foo2.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Another unit
+
+[Service]
+ExecStart=/bin/true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/t/dh_installsystemd/dh_installsystemd.t b/t/dh_installsystemd/dh_installsystemd.t
new file mode 100755
index 00000000..bbb4eb0d
--- /dev/null
+++ b/t/dh_installsystemd/dh_installsystemd.t
@@ -0,0 +1,255 @@
+#!/usr/bin/perl
+use strict;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+plan(tests => 4);
+
+sub write_file {
+ my ($path, $content) = @_;
+
+ my $dir = dirname($path);
+ mkdirs($dir);
+
+ open(my $fd, '>>', $path) or error("open($path) failed: $!");
+ print {$fd} $content . '\n';
+ close($fd) or error("close($path) failed: $!");
+}
+
+sub unit_is_enabled {
+ my ($package, $unit, $num_enables) = @_;
+ my @output;
+ my $matches;
+ my @postinst_snippets = find_script($package, 'postinst');
+ @output=`cat @postinst_snippets` if @postinst_snippets;
+ # Match exactly one tab; the "dont-enable" script has an "enable"
+ # line for re-enabling the service if the admin had it enabled.
+ # But we do not want to include that in our count.
+ $matches = grep { m{^\tif deb-systemd-helper .* was-enabled .*'\Q$unit\E\.service'} } @output;
+ ok($matches == $num_enables) or diag("$unit appears to have been enabled $matches times (expected $num_enables)");
+}
+
+sub unit_is_started {
+ my ($package, $unit, $num_starts, $num_stops) = @_;
+ my @output;
+ my $matches;
+ $num_stops = $num_stops // $num_starts;
+ my @postinst_snippets = find_script($package, 'postinst');
+ @output=`cat @postinst_snippets` if @postinst_snippets;
+ $matches = grep { m{deb-systemd-invoke \$_dh_action .*'\Q$unit\E.service'} } @output;
+ ok($matches == $num_starts) or diag("$unit appears to have been started $matches times (expected $num_starts)");
+ my @prerm_snippets = find_script($package, 'prerm');
+ @output=`cat @prerm_snippets` if @prerm_snippets;
+ $matches = grep { m{deb-systemd-invoke stop .*'\Q$unit\E.service'} } @output;
+ ok($matches == $num_stops) or diag("$unit appears to have been stopped $matches times (expected $num_stops)");
+}
+
+
+#
+# Test a simple source package defining a single binary package
+#
+our $TEST_DH_FIXTURE_DIR = 'simple';
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+ debian/foo.service
+));
+
+each_compat_subtest {
+ ok(run_dh_tool('dh_installsystemd'));
+ ok(-e 'debian/foo/lib/systemd/system/foo.service');
+ ok(find_script('foo', 'postinst'));
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 1);
+ ok(run_dh_tool('dh_clean'));
+
+ ok(run_dh_tool('dh_installsystemd', '--no-start'));
+ ok(-e 'debian/foo/lib/systemd/system/foo.service');
+ ok(find_script('foo', 'postinst'));
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 0, 0);
+ ok(run_dh_tool('dh_clean'));
+
+ ok(run_dh_tool('dh_installsystemd', '--no-start', 'foo.service'));
+ ok(-e 'debian/foo/lib/systemd/system/foo.service');
+ ok(find_script('foo', 'postinst'));
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 0, 0);
+ ok(run_dh_tool('dh_clean'));
+};
+
+
+#
+# Test a more complex source package defining three binary packages
+#
+$TEST_DH_FIXTURE_DIR = '.';
+@TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+ debian/foo.service
+ debian/foo2.service
+));
+
+each_compat_subtest {
+ ok(run_dh_tool( 'dh_installsystemd'));
+ ok(-e 'debian/foo/lib/systemd/system/foo.service');
+ ok(find_script('foo', 'postinst'));
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 1);
+ unit_is_enabled('foo', 'foo2', 0);
+ unit_is_started('foo', 'foo2', 0);
+ ok(run_dh_tool('dh_clean'));
+
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service');
+ ok(run_dh_tool('dh_installsystemd'));
+ ok(-e 'debian/foo/lib/systemd/system/foo.service');
+ ok(find_script('foo', 'postinst'));
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 1);
+ unit_is_enabled('foo', 'foo2', 1);
+ unit_is_started('foo', 'foo2', 1);
+ ok(run_dh_tool('dh_clean'));
+
+
+ # lib -> usr/lib (if we ever support that)
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service');
+ ok(run_dh_tool('dh_installsystemd'));
+ ok(-e 'debian/foo/lib/systemd/system/foo2.service');
+ ok(find_script('foo', 'postinst'));
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 1);
+ unit_is_enabled('foo', 'foo2', 1);
+ unit_is_started('foo', 'foo2', 1);
+ ok(run_dh_tool('dh_clean'));
+
+ # lib -> usr/lib with both no-empty (if we ever suport that)
+ make_path('debian/foo/lib/systemd/system/');
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service');
+ copy_file('debian/foo2.service', 'debian/foo/lib/systemd/system/bar.service');
+ ok(run_dh_tool('dh_installsystemd'));
+ ok(-e 'debian/foo/lib/systemd/system/bar.service');
+ ok(-e 'debian/foo/lib/systemd/system/foo2.service');
+ ok(find_script('foo', 'postinst'));
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 1);
+ unit_is_enabled('foo', 'foo2', 1);
+ unit_is_started('foo', 'foo2', 1);
+ ok(run_dh_tool('dh_clean'));
+
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service');
+ ok(run_dh_tool('dh_installsystemd', '--no-start'));
+ ok(-e 'debian/foo/lib/systemd/system/foo.service');
+ ok(find_script('foo', 'postinst'));
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 0, 0);
+ unit_is_enabled('foo', 'foo2', 1);
+ unit_is_started('foo', 'foo2', 0, 0);
+ ok(run_dh_tool('dh_clean'));
+
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service');
+ ok(run_dh_tool('dh_installsystemd', '-p', 'foo', '--no-start', 'foo.service'));
+ ok(run_dh_tool('dh_installsystemd', '-p', 'foo', 'foo2.service'));
+ ok(-e 'debian/foo/lib/systemd/system/foo.service');
+ ok(find_script('foo', 'postinst'));
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 0, 0);
+ unit_is_enabled('foo', 'foo2', 1);
+ unit_is_started('foo', 'foo2', 1);
+ ok(run_dh_tool('dh_clean'));
+
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service');
+ ok(run_dh_tool('dh_installsystemd', '-p', 'foo', '--no-enable', 'foo.service'));
+ ok(run_dh_tool('dh_installsystemd', '-p', 'foo', 'foo2.service'));
+ ok(-e 'debian/foo/lib/systemd/system/foo.service');
+ ok(find_script('foo', 'postinst'));
+ unit_is_enabled('foo', 'foo', 0);
+ unit_is_started('foo', 'foo', 1, 1);
+ unit_is_enabled('foo', 'foo2', 1);
+ unit_is_started('foo', 'foo2', 1);
+ ok(run_dh_tool('dh_clean'));
+
+ make_path('debian/foo/lib/systemd/system/');
+ ok(run_dh_tool('dh_installsystemd', '--no-restart-after-upgrade'));
+ my @foo_postinst = find_script('foo', 'postinst');
+ ok(@foo_postinst);
+ my $matches = @foo_postinst ? grep { m{deb-systemd-invoke start .*foo.service} } `cat @foo_postinst` : -1;
+ ok($matches == 1);
+ ok(run_dh_tool('dh_clean'));
+
+ # Quoting #764730
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo.service', 'debian/foo/lib/systemd/system/foo\x2dfuse.service');
+ ok(run_dh_tool('dh_installsystemd'));
+ unit_is_enabled('foo', 'foo\x2dfuse', 1);
+ unit_is_started('foo', 'foo\x2dfuse', 1);
+ ok(run_dh_tool('dh_clean'));
+
+ # --name flag #870768
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service');
+ ok(run_dh_tool('dh_installsystemd', '--name=foo'));
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 1);
+ unit_is_enabled('foo', 'foo2', 0);
+ unit_is_started('foo', 'foo2', 0);
+ ok(run_dh_tool('dh_installsystemd', '--name=foo2'));
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 1);
+ unit_is_enabled('foo', 'foo2', 1);
+ unit_is_started('foo', 'foo2', 1);
+ ok(run_dh_tool('dh_clean'));
+
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo.service', 'debian/foo/lib/systemd/system/target.service');
+ make_symlink_raw_target('target.service', 'debian/foo/lib/systemd/system/source.service');
+ ok(run_dh_tool('dh_installsystemd'));
+ unit_is_enabled('foo', 'foo', 1);
+ # Alias= realized by symlinks are not enabled in maintaner scripts
+ unit_is_enabled('foo', 'source', 0);
+ unit_is_enabled('foo', 'target', 1);
+ ok(run_dh_tool('dh_clean'));
+};
+
+each_compat_up_to_and_incl_subtest(11, sub {
+ make_path('debian/foo/lib/systemd/system/');
+ make_path('debian/foo/etc/init.d/');
+ copy_file('debian/foo.service', 'debian/foo/lib/systemd/system/target.service');
+ make_symlink_raw_target('target.service', 'debian/foo/lib/systemd/system/source.service');
+ write_file('debian/foo/etc/init.d/source', '# something');
+ ok(run_dh_tool('dh_installsystemd'));
+ unit_is_enabled('foo', 'foo', 1);
+ # Alias= realized by symlinks are not enabled in maintaner scripts
+ unit_is_enabled('foo', 'source', 0);
+ unit_is_enabled('foo', 'target', 1);
+ # The presence of a sysvinit script for the alias unit inhibits start of both
+ unit_is_started('foo', 'source', 0);
+ unit_is_started('foo', 'target', 0);
+ ok(run_dh_tool('dh_clean'));
+});
+
+each_compat_from_and_above_subtest(12, sub {
+ make_path('debian/foo/lib/systemd/system/');
+ make_path('debian/foo/etc/init.d/');
+ copy_file('debian/foo.service', 'debian/foo/lib/systemd/system/target.service');
+ make_symlink_raw_target('target.service', 'debian/foo/lib/systemd/system/source.service');
+ write_file('debian/foo/etc/init.d/source', '# something');
+ ok(run_dh_tool('dh_installsystemd'));
+ unit_is_enabled('foo', 'foo', 1);
+ # Alias= realized by symlinks are not enabled in maintaner scripts
+ unit_is_enabled('foo', 'source', 0);
+ unit_is_enabled('foo', 'target', 1);
+ unit_is_started('foo', 'source', 0);
+ unit_is_started('foo', 'target', 1);
+ ok(run_dh_tool('dh_clean'));
+});
diff --git a/t/dh_installsystemd/dh_installsystemd_tmpfiles.t b/t/dh_installsystemd/dh_installsystemd_tmpfiles.t
new file mode 100755
index 00000000..0fffe57b
--- /dev/null
+++ b/t/dh_installsystemd/dh_installsystemd_tmpfiles.t
@@ -0,0 +1,87 @@
+#!/usr/bin/perl
+use strict;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+ debian/foo.service
+ debian/foo.init
+));
+
+plan(tests => 3);
+
+
+# Units are installed and enabled
+each_compat_from_x_to_and_incl_y_subtest(11, 12, sub {
+ make_path('debian/foo/usr/lib/tmpfiles.d');
+ create_empty_file('debian/foo/usr/lib/tmpfiles.d/foo.conf');
+ ok(run_dh_tool('dh_installinit'));
+ ok(run_dh_tool('dh_installsystemd'));
+ ok(-e "debian/foo/etc/init.d/foo");
+ ok(-e "debian/foo/lib/systemd/system/foo.service");
+ my @postinst = find_script('foo', 'postinst');
+ # We should have two snippets (one for the tmpfiles and one for the services).
+ is(scalar(@postinst), 2);
+ if (scalar(@postinst) == 2) {
+ open(my $fd, '<', $postinst[0]) or error("open($postinst[0]) failed: $!");
+ my $early_snippet = readlines($fd);
+ close($fd);
+ open($fd, '<', $postinst[1]) or error("open($postinst[1]) failed: $!");
+ my $late_snippet = readlines($fd);
+ close($fd);
+ ok(! grep { m/(?:invoke|update)-rc.d|deb-systemd-invoke/ } @{$early_snippet});
+ ok(grep { m/(?:invoke|update)-rc.d|deb-systemd-invoke/ } @{$late_snippet});
+ ok(grep { m/systemd-tmpfiles/ } @{$early_snippet});
+ ok(! grep { m/systemd-tmpfiles/ } @{$late_snippet});
+ }
+ ok(run_dh_tool('dh_clean'));
+
+});
+
+each_compat_from_and_above_subtest(13, sub {
+ make_path('debian/foo/usr/lib/tmpfiles.d');
+ create_empty_file('debian/foo/usr/lib/tmpfiles.d/foo.conf');
+ ok(run_dh_tool('dh_installinit'));
+ ok(run_dh_tool('dh_installsystemd'));
+ ok(-e "debian/foo/etc/init.d/foo");
+ ok(-e "debian/foo/lib/systemd/system/foo.service");
+ my @postinst = find_script('foo', 'postinst');
+ # We should have one snippet (one for the services).
+ is(scalar(@postinst), 1);
+ if (scalar(@postinst) == 1) {
+ open(my $fd, '<', $postinst[0]) or error("open($postinst[0]) failed: $!");
+ my $snippet = readlines($fd);
+ close($fd);
+ ok(grep { m/(?:invoke|update)-rc.d|deb-systemd-invoke/ } @{$snippet});
+ ok(! grep { m/systemd-tmpfiles/ } @{$snippet});
+ }
+ ok(run_dh_tool('dh_clean'));
+});
+
+
+each_compat_from_and_above_subtest(13, sub {
+ make_path('debian/foo/usr/lib/tmpfiles.d');
+ create_empty_file('debian/foo/usr/lib/tmpfiles.d/foo.conf');
+ ok(run_dh_tool('dh_installtmpfiles'));
+ # dh_installtmpfiles do not install services
+ ok(!-e "debian/foo/etc/init.d/foo");
+ ok(!-e "debian/foo/lib/systemd/system/foo.service");
+ my @postinst = find_script('foo', 'postinst');
+ # We should have too snippets (one for the tmpfiles and one for the services).
+ is(scalar(@postinst), 1);
+ if (scalar(@postinst) == 1) {
+ open(my $fd, '<', $postinst[0]) or error("open($postinst[0]) failed: $!");
+ my $snippet = readlines($fd);
+ close($fd);
+ ok(! grep { m/(?:invoke|update)-rc.d|deb-systemd-invoke/ } @{$snippet});
+ ok(grep { m/systemd-tmpfiles/ } @{$snippet});
+ }
+ ok(run_dh_tool('dh_clean'));
+});
diff --git a/t/dh_installsystemd/dh_systemd.t b/t/dh_installsystemd/dh_systemd.t
new file mode 100755
index 00000000..c3c94015
--- /dev/null
+++ b/t/dh_installsystemd/dh_systemd.t
@@ -0,0 +1,123 @@
+#!/usr/bin/perl
+use strict;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use File::Path qw(remove_tree make_path);
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+ debian/foo.service
+ debian/foo2.service
+));
+
+plan(tests => 1);
+
+sub unit_is_enabled {
+ my ($package, $unit, $num_enables) = @_;
+ my @output;
+ my $matches;
+ @output=`cat debian/$package.postinst.debhelper`;
+ # Match exactly one tab; the "dont-enable" script has an "enable"
+ # line for re-enabling the service if the admin had it enabled.
+ # But we do not want to include that in our count.
+ $matches = grep { m{^\tif deb-systemd-helper .* was-enabled .*'\Q$unit\E\.service'} } @output;
+ ok($matches == $num_enables) or diag("$unit appears to have been enabled $matches times (expected $num_enables)");
+}
+sub unit_is_started {
+ my ($package, $unit, $num_starts, $num_stops) = @_;
+ my @output;
+ my $matches;
+ $num_stops = $num_stops // $num_starts;
+ @output=`cat debian/$package.postinst.debhelper`;
+ $matches = grep { m{deb-systemd-invoke \$_dh_action .*'\Q$unit\E.service'} } @output;
+ ok($matches == $num_starts) or diag("$unit appears to have been started $matches times (expected $num_starts)");
+ @output=`cat debian/$package.prerm.debhelper`;
+ $matches = grep { m{deb-systemd-invoke stop .*'\Q$unit\E.service'} } @output;
+ ok($matches == $num_stops) or diag("$unit appears to have been stopped $matches times (expected $num_stops)");
+}
+
+# Units are installed and enabled
+each_compat_from_x_to_and_incl_y_subtest(10, 10, sub {
+ ok(run_dh_tool('dh_systemd_enable'));
+ ok(run_dh_tool('dh_systemd_start'));
+ ok(-e "debian/foo/lib/systemd/system/foo.service");
+ ok(-e "debian/foo.postinst.debhelper");
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 1);
+ unit_is_enabled('foo', 'foo2', 0);
+ unit_is_started('foo', 'foo2', 0);
+ ok(run_dh_tool('dh_clean'));
+
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service');
+ ok(run_dh_tool('dh_systemd_enable'));
+ ok(run_dh_tool('dh_systemd_start'));
+ ok(-e "debian/foo/lib/systemd/system/foo.service");
+ ok(-e "debian/foo.postinst.debhelper");
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 1);
+ unit_is_enabled('foo', 'foo2', 1);
+ unit_is_started('foo', 'foo2', 1);
+ ok(run_dh_tool('dh_clean'));
+
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service');
+ ok(run_dh_tool('dh_systemd_enable'));
+ ok(run_dh_tool('dh_systemd_start', '--no-start'));
+ ok(-e "debian/foo/lib/systemd/system/foo.service");
+ ok(-e "debian/foo.postinst.debhelper");
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 0, 1); # present units are stopped on remove even if no start
+ unit_is_enabled('foo', 'foo2', 1);
+ unit_is_started('foo', 'foo2', 0, 1);
+ ok(run_dh_tool('dh_clean'));
+
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service');
+ ok(run_dh_tool('dh_systemd_enable'));
+ ok(run_dh_tool('dh_systemd_start', '--no-start', 'debian/foo.service'));
+ ok(run_dh_tool('dh_systemd_start', '-p', 'foo', 'foo2.service'));
+ ok(-e "debian/foo/lib/systemd/system/foo.service");
+ ok(-e "debian/foo.postinst.debhelper");
+ unit_is_enabled('foo', 'foo', 1);
+ unit_is_started('foo', 'foo', 0, 1);
+ unit_is_enabled('foo', 'foo2', 1);
+ unit_is_started('foo', 'foo2', 1);
+ ok(run_dh_tool('dh_clean'));
+
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service');
+ ok(run_dh_tool('dh_systemd_enable', '--no-enable', 'debian/foo.service'));
+ ok(run_dh_tool('dh_systemd_enable', '-p', 'foo', 'foo2.service'));
+ ok(run_dh_tool('dh_systemd_start'));
+ ok(-e "debian/foo/lib/systemd/system/foo.service");
+ ok(-e "debian/foo.postinst.debhelper");
+ unit_is_enabled('foo', 'foo', 0);
+ unit_is_started('foo', 'foo', 1, 1);
+ unit_is_enabled('foo', 'foo2', 1);
+ unit_is_started('foo', 'foo2', 1);
+ ok(run_dh_tool('dh_clean'));
+
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo.service', 'debian/foo/lib/systemd/system/foo.service');
+ ok(run_dh_tool('dh_systemd_start', '--no-restart-after-upgrade'));
+ my $matches = grep { m{deb-systemd-invoke start .*foo.service} } `cat debian/foo.postinst.debhelper`;
+ ok($matches == 1);
+ ok(run_dh_tool('dh_clean'));
+
+ # Quoting #764730
+ make_path('debian/foo/lib/systemd/system/');
+ copy_file('debian/foo.service', 'debian/foo/lib/systemd/system/foo\x2dfuse.service');
+ ok(run_dh_tool('dh_systemd_enable'));
+ ok(run_dh_tool('dh_systemd_start'));
+ unit_is_enabled('foo', 'foo\x2dfuse', 1);
+ unit_is_started('foo', 'foo\x2dfuse', 1);
+ ok(run_dh_tool('dh_clean'));
+});
+
+
diff --git a/t/dh_installsystemd/simple/debian/changelog b/t/dh_installsystemd/simple/debian/changelog
new file mode 100644
index 00000000..5b1a8fee
--- /dev/null
+++ b/t/dh_installsystemd/simple/debian/changelog
@@ -0,0 +1,5 @@
+foo (1.0-1) unstable; urgency=low
+
+ * Initial release. (Closes: #XXXXXX)
+
+ -- Test <test@example.org> Mon, 11 Jul 2016 18:10:59 +0200
diff --git a/t/dh_installsystemd/simple/debian/control b/t/dh_installsystemd/simple/debian/control
new file mode 100644
index 00000000..4f4238eb
--- /dev/null
+++ b/t/dh_installsystemd/simple/debian/control
@@ -0,0 +1,10 @@
+Source: foo
+Section: misc
+Priority: optional
+Maintainer: Test <testing@nowhere>
+Standards-Version: 3.9.8
+
+Package: foo
+Architecture: all
+Description: package foo
+ Package foo
diff --git a/t/dh_installsystemd/simple/debian/foo.service b/t/dh_installsystemd/simple/debian/foo.service
new file mode 100644
index 00000000..2b48a781
--- /dev/null
+++ b/t/dh_installsystemd/simple/debian/foo.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=A unit
+
+[Service]
+ExecStart=/bin/true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/t/dh_installsystemduser/debian/baz.user.service b/t/dh_installsystemduser/debian/baz.user.service
new file mode 100644
index 00000000..3af041de
--- /dev/null
+++ b/t/dh_installsystemduser/debian/baz.user.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Baz User Unit
+
+[Service]
+ExecStart=/bin/true
+
+[Install]
+WantedBy=default.target
diff --git a/t/dh_installsystemduser/debian/changelog b/t/dh_installsystemduser/debian/changelog
new file mode 100644
index 00000000..5850f0e2
--- /dev/null
+++ b/t/dh_installsystemduser/debian/changelog
@@ -0,0 +1,5 @@
+foo (1.0-1) unstable; urgency=low
+
+ * Initial release. (Closes: #XXXXXX)
+
+ -- Test <testing@nowhere> Mon, 11 Jul 2016 18:10:59 +0200
diff --git a/t/dh_installsystemduser/debian/control b/t/dh_installsystemduser/debian/control
new file mode 100644
index 00000000..adccbc63
--- /dev/null
+++ b/t/dh_installsystemduser/debian/control
@@ -0,0 +1,10 @@
+Source: foo
+Section: misc
+Priority: optional
+Maintainer: Test <testing@exampe.org>
+Standards-Version: 3.9.8
+
+Package: foo
+Architecture: all
+Description: package foo
+ Package foo
diff --git a/t/dh_installsystemduser/debian/foo.user.service b/t/dh_installsystemduser/debian/foo.user.service
new file mode 100644
index 00000000..7ef597d4
--- /dev/null
+++ b/t/dh_installsystemduser/debian/foo.user.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Foo User Unit
+
+[Service]
+ExecStart=/bin/true
+
+[Install]
+WantedBy=default.target
diff --git a/t/dh_installsystemduser/dh_installsystemduser.t b/t/dh_installsystemduser/dh_installsystemduser.t
new file mode 100755
index 00000000..51717280
--- /dev/null
+++ b/t/dh_installsystemduser/dh_installsystemduser.t
@@ -0,0 +1,112 @@
+#!/usr/bin/perl
+use strict;
+use Test::More;
+use File::Path qw(make_path);
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+plan(tests => 1);
+
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+ debian/foo.user.service
+ debian/baz.user.service
+));
+
+
+sub read_script {
+ my ($package, $name) = @_;
+ my @lines;
+
+ foreach my $script (find_script($package, $name)) {
+ open(my $fh, '<', $script) or die("open($script): $!");
+ push @lines, $_ for <$fh>;
+ close($fh);
+ }
+
+ return @lines;
+}
+
+sub _unit_check_user_enabled {
+ my ($package, $unit, $enabled) = @_;
+ my $verb = $enabled ? "is" : "isnt";
+ my $matches;
+
+ my @postinst = read_script($package, 'postinst');
+ # Match exactly two tab character. The "dont-enable" script has
+ # an "enable" line for re-enabling the service if the admin had it
+ # enabled, but we do not want to include that in our count.
+ $matches = grep { m{^\t\tif deb-systemd-helper( --\w+)* --user was-enabled.*'\Q$unit'} } @postinst;
+ is($matches, $enabled, "$unit $verb enabled");
+}
+
+sub _unit_check_user_started {
+ my ($package, $unit, $started) = @_;
+ my $verb = $started ? "is" : "isnt";
+ my $matches;
+
+ my @postinst = read_script($package, 'postinst');
+ # Match exactly two tab character. The "dont-enable" script has
+ # an "enable" line for re-enabling the service if the admin had it
+ # enabled, but we do not want to include that in our count.
+ $matches = grep { m{deb-systemd-invoke --user restart.*'\Q$unit'} } @postinst;
+ is($matches, $started, "$unit $verb started");
+
+ my @prerm = read_script($package, 'prerm');
+ $matches = grep { m{deb-systemd-invoke --user stop.*'\Q$unit'} } @prerm;
+ is($matches, $started, "$unit $verb stopped");
+}
+
+sub is_enabled { _unit_check_user_enabled(@_, 1); }
+sub isnt_enabled { _unit_check_user_enabled(@_, 0); }
+sub is_started { _unit_check_user_started(@_, 1); }
+sub isnt_started { _unit_check_user_started(@_, 0); }
+
+each_compat_subtest {
+ my ($compat) = @_;
+ make_path('debian/foo/usr/lib/systemd/user/');
+ copy_file('debian/foo.user.service', 'debian/foo/usr/lib/systemd/user/bar.service');
+ ok(run_dh_tool('dh_installsystemduser'));
+ ok(-e 'debian/foo/usr/lib/systemd/user/foo.service');
+ is_enabled('foo', 'foo.service');
+ is_enabled('foo', 'bar.service');
+ if ($compat > 13) {
+ is_started('foo', 'foo.service');
+ is_started('foo', 'bar.service');
+ } else {
+ isnt_started('foo', 'foo.service');
+ isnt_started('foo', 'bar.service');
+ }
+ ok(run_dh_tool('dh_clean'));
+
+ ok(run_dh_tool('dh_installsystemduser'));
+ ok(-e 'debian/foo/usr/lib/systemd/user/foo.service');
+ ok(! -e 'debian/foo/usr/lib/systemd/user/baz.service');
+ is_enabled('foo', 'foo.service');
+ isnt_enabled('foo', 'baz.service');
+ if ($compat > 13) {
+ is_started('foo', 'foo.service');
+ isnt_started('foo', 'baz.service');
+ } else {
+ isnt_started('foo', 'bar.service');
+ isnt_started('foo', 'baz.service');
+ }
+ ok(run_dh_tool('dh_clean'));
+
+ ok(run_dh_tool('dh_installsystemduser', '--name', 'baz'));
+ ok(! -e 'debian/foo/usr/lib/systemd/user/foo.service');
+ ok(-e 'debian/foo/usr/lib/systemd/user/baz.service');
+ isnt_enabled('foo', 'foo.service');
+ is_enabled('foo', 'baz.service');
+ if ($compat > 13) {
+ isnt_started('foo', 'foo.service');
+ is_started('foo', 'baz.service');
+ } else {
+ isnt_started('foo', 'foo.service');
+ isnt_started('foo', 'baz.service');
+ }
+ ok(run_dh_tool('dh_clean'));
+};
diff --git a/t/dh_link b/t/dh_link
deleted file mode 100755
index c6be35be..00000000
--- a/t/dh_link
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/perl
-use Test;
-plan(tests => 13);
-
-# It used to not make absolute links in this situation, and it should.
-# #37774
-system("./dh_link","etc/foo","usr/lib/bar");
-ok(readlink("debian/debhelper/usr/lib/bar"), "/etc/foo");
-
-# let's make sure it makes simple relative links ok.
-system("./dh_link","usr/bin/foo","usr/bin/bar");
-ok(readlink("debian/debhelper/usr/bin/bar"), "foo");
-system("./dh_link","sbin/foo","sbin/bar");
-ok(readlink("debian/debhelper/sbin/bar"), "foo");
-
-# ok, more complex relative links.
-system("./dh_link","usr/lib/1","usr/bin/2");
-ok(readlink("debian/debhelper/usr/bin/2"),"../lib/1");
-
-# Check conversion of relative symlink to different top-level directory
-# into absolute symlink. (#244157)
-system("mkdir -p debian/debhelper/usr/lib; mkdir -p debian/debhelper/lib; touch debian/debhelper/lib/libm.so; cd debian/debhelper/usr/lib; ln -sf ../../lib/libm.so");
-system("./dh_link");
-ok(readlink("debian/debhelper/usr/lib/libm.so"), "/lib/libm.so");
-
-# Check links to the current directory and below, they used to be
-# unnecessarily long (#346405).
-system("./dh_link","usr/lib/geant4","usr/lib/geant4/a");
-ok(readlink("debian/debhelper/usr/lib/geant4/a"), ".");
-system("./dh_link","usr/lib","usr/lib/geant4/b");
-ok(readlink("debian/debhelper/usr/lib/geant4/b"), "..");
-system("./dh_link","usr","usr/lib/geant4/c");
-ok(readlink("debian/debhelper/usr/lib/geant4/c"), "../..");
-system("./dh_link","/","usr/lib/geant4/d");
-ok(readlink("debian/debhelper/usr/lib/geant4/d"), "/");
-
-# Link to self.
-system("./dh_link usr/lib/foo usr/lib/foo 2>/dev/null");
-ok(! -l "debian/debhelper/usr/lib/foo");
-
-# Make sure the link conversion didn't change any of the previously made
-# links.
-ok(readlink("debian/debhelper/usr/lib/bar"), "/etc/foo");
-ok(readlink("debian/debhelper/usr/bin/bar"), "foo");
-ok(readlink("debian/debhelper/usr/bin/2"),"../lib/1");
diff --git a/t/dh_link/01-basic.t b/t/dh_link/01-basic.t
new file mode 100755
index 00000000..88c8e49c
--- /dev/null
+++ b/t/dh_link/01-basic.t
@@ -0,0 +1,50 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More;
+plan(tests => 1);
+
+use File::Path qw(remove_tree);
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+
+each_compat_subtest {
+
+ remove_tree('debian/debhelper');
+
+ # It used to not make absolute links in this situation, and it should.
+ # #37774
+ ok(run_dh_tool('dh_link', 'etc/foo', 'usr/lib/bar'));
+ ok(readlink("debian/debhelper/usr/lib/bar"), "/etc/foo");
+
+
+ # let's make sure it makes simple relative links ok.
+ ok(run_dh_tool('dh_link', 'usr/bin/foo', 'usr/bin/bar'));
+ ok(readlink("debian/debhelper/usr/bin/bar"), "foo");
+ ok(run_dh_tool('dh_link', 'sbin/foo', 'sbin/bar'));
+ ok(readlink("debian/debhelper/sbin/bar"), "foo");
+
+ # ok, more complex relative links.
+ ok(run_dh_tool('dh_link', 'usr/lib/1', 'usr/bin/2'));
+ ok(readlink("debian/debhelper/usr/bin/2"),"../lib/1");
+
+ # Check conversion of relative symlink to different top-level directory
+ # into absolute symlink. (#244157)
+ system("mkdir -p debian/debhelper/usr/lib; mkdir -p debian/debhelper/lib; touch debian/debhelper/lib/libm.so; cd debian/debhelper/usr/lib; ln -sf ../../lib/libm.so");
+ ok(run_dh_tool('dh_link'));
+ ok(readlink("debian/debhelper/usr/lib/libm.so"), "/lib/libm.so");
+
+ # Link to self.
+ ok(run_dh_tool({ 'quiet' => 1 }, 'dh_link', 'usr/lib/foo', 'usr/lib/foo'));
+ ok(! -l "debian/debhelper/usr/lib/foo");
+
+ # Make sure the link conversion didn't change any of the
+ # previously made links.
+ ok(readlink("debian/debhelper/usr/lib/bar"), "/etc/foo");
+ ok(readlink("debian/debhelper/usr/bin/bar"), "foo");
+ ok(readlink("debian/debhelper/usr/bin/2"),"../lib/1");
+};
+
diff --git a/t/dh_link/02-346405.t b/t/dh_link/02-346405.t
new file mode 100755
index 00000000..95053ca8
--- /dev/null
+++ b/t/dh_link/02-346405.t
@@ -0,0 +1,29 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More;
+plan(tests => 1);
+
+use File::Path qw(remove_tree);
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+
+each_compat_subtest {
+
+ remove_tree('debian/debhelper');
+
+ # Check links to the current directory and below, they used to be
+ # unnecessarily long (#346405).
+ ok(run_dh_tool('dh_link', 'usr/lib/geant4', 'usr/lib/geant4/a'));
+ ok(readlink("debian/debhelper/usr/lib/geant4/a"), ".");
+ ok(run_dh_tool('dh_link', 'usr/lib', 'usr/lib/geant4/b'));
+ ok(readlink("debian/debhelper/usr/lib/geant4/b"), "..");
+ ok(run_dh_tool('dh_link', 'usr', 'usr/lib/geant4/c'));
+ ok(readlink("debian/debhelper/usr/lib/geant4/c"), "../..");
+ ok(run_dh_tool('dh_link', '/', 'usr/lib/geant4/d'));
+ ok(readlink("debian/debhelper/usr/lib/geant4/d"), "/");
+};
+
diff --git a/t/dh_link/03-894229.t b/t/dh_link/03-894229.t
new file mode 100755
index 00000000..d42a3928
--- /dev/null
+++ b/t/dh_link/03-894229.t
@@ -0,0 +1,55 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More;
+plan(tests => 1);
+
+use File::Path qw(remove_tree);
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+use Test::DH;
+
+
+sub test_tricky {
+ my ($link_name, $denoted_dest, $expected_link_target) = @_;
+ my $tmpdir = 'debian/debhelper';
+ my $link_path = "${tmpdir}/${link_name}";
+
+ make_symlink($link_name, $denoted_dest, $tmpdir);
+ if (ok(-l $link_path, 'Link made in correct directory')) {
+ my $target = readlink($link_path);
+ is($target, $expected_link_target, 'Link points correctly')
+ or diag("Expected ${expected_link_target}, actual ${target}");
+ rm_files($link_path);
+ }
+ return;
+}
+
+sub test_invalid {
+ my ($link_name, $denoted_dest) = @_;
+ eval {
+ make_symlink($link_name, $denoted_dest);
+ };
+ like($@, qr{^(?:\S*:(?: error:)?\s*)?Invalid destination/link name});
+}
+
+each_compat_subtest {
+
+ remove_tree('debian/debhelper/a/b/c');
+
+ mkdirs('debian/debhelper/a/b/c');
+
+ test_invalid('../../wow', 'a');
+ # This is a can be made valid but at the moment we do not support
+ # it.
+ test_invalid('a/b/../link21', 'a');
+
+
+ test_tricky('//a/b/link03', 'a/b/c', 'c');
+ test_tricky('./a/link18', 'a', '.');
+ test_tricky('a/./b/link19', 'a/b', '.');
+};
+
diff --git a/t/dh_missing/01-no-missing.t b/t/dh_missing/01-no-missing.t
new file mode 100755
index 00000000..e3cd3116
--- /dev/null
+++ b/t/dh_missing/01-no-missing.t
@@ -0,0 +1,28 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+
+our $TEST_DH_FIXTURE_DIR = 'template';
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+ debian/foo.install
+ file-for-foo
+ Makefile
+));
+
+plan(tests => 1);
+
+each_compat_subtest {
+ # Verify dh_missing does not fail when all files are installed.
+ ok(run_dh_tool('dh_clean'));
+ is(system('make', 'install'), 0);
+ ok(run_dh_tool('dh_install', '--sourcedir', 'debian/tmp'));
+ ok(run_dh_tool('dh_missing', '--fail-missing'), 'dh_missing failed');
+};
+
diff --git a/t/dh_missing/02-fail-on-missing.t b/t/dh_missing/02-fail-on-missing.t
new file mode 100755
index 00000000..e97b6eba
--- /dev/null
+++ b/t/dh_missing/02-fail-on-missing.t
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+
+our $TEST_DH_FIXTURE_DIR = 'template';
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+ debian/foo.install
+ file-for-foo
+ Makefile
+));
+
+plan(tests => 1);
+
+each_compat_subtest {
+ # Verify dh_missing does fail when not all files are installed.
+ ok(run_dh_tool('dh_clean'));
+ is(system('make', 'installmore'), 0);
+ ok(run_dh_tool('dh_install', '--sourcedir', 'debian/tmp'));
+ ok(!run_dh_tool({ 'quiet' => 1 }, 'dh_missing', '--fail-missing'));
+
+ isnt($?, -1, 'dh_missing was executed');
+ ok(! ($? & 127), 'dh_missing did not die due to a signal');
+ my $exitcode = ($? >> 8);
+ is($exitcode, 255, 'dh_missing exited with exit code 255');
+};
+
diff --git a/t/dh_missing/03-dh_install-redirection.t b/t/dh_missing/03-dh_install-redirection.t
new file mode 100755
index 00000000..2235b086
--- /dev/null
+++ b/t/dh_missing/03-dh_install-redirection.t
@@ -0,0 +1,30 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+
+our $TEST_DH_FIXTURE_DIR = 'template';
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+ debian/foo.install
+ file-for-foo
+ Makefile
+));
+
+plan(tests => 1);
+
+each_compat_up_to_and_incl_subtest(10, sub {
+ # Verify that dh_install -X --fail-missing is passed through to dh_missing (#863447)
+ # dh_install -Xfile makes file-for-foo not be installed. Then we shouldn't
+ # complain about it not being missing.
+ ok(run_dh_tool('dh_clean'));
+ is(system('make', 'install'), 0);
+ ok(run_dh_tool({ 'quiet' => 1 }, 'dh_install', '--sourcedir', 'debian/tmp',
+ '-X', 'more', '--exclude', 'lots', '--fail-missing'));
+});
+
diff --git a/t/dh_missing/04-not-installed-glob.t b/t/dh_missing/04-not-installed-glob.t
new file mode 100755
index 00000000..b46eca3a
--- /dev/null
+++ b/t/dh_missing/04-not-installed-glob.t
@@ -0,0 +1,37 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+our $TEST_DH_FIXTURE_DIR = 'template';
+our @TEST_DH_EXTRA_TEMPLATE_FILES = (qw(
+ debian/changelog
+ debian/control
+ debian/foo.install
+ file-for-foo
+ Makefile
+));
+
+plan(tests => 1);
+
+each_compat_subtest {
+ rm_files('debian/not-installed');
+ open(my $fd, '>', 'debian/not-installed') or error("open(d/not-installed): $!");
+ # Non-glob match
+ print {$fd} "usr/bin/file-for-foo\n";
+ # Glob match (note that it must not match the above)
+ print {$fd} "usr/bin/file-for-foo-*\n";
+ # Non-matches (silently ignored)
+ print {$fd} "usr/bin/does-not-exist\n";
+ print {$fd} "usr/bin/does-not-exist-*\n";
+ close($fd) or error("close(d/not-installed: $!");
+ ok(run_dh_tool('dh_clean'));
+ is(system('make', 'installmore'), 0);
+ ok(run_dh_tool('dh_missing', '--fail-missing'));
+};
+
diff --git a/t/dh_missing/template/Makefile b/t/dh_missing/template/Makefile
new file mode 100644
index 00000000..e33e1dfc
--- /dev/null
+++ b/t/dh_missing/template/Makefile
@@ -0,0 +1,7 @@
+install:
+ install -m 755 -d debian/tmp/usr/bin
+ install -m 644 file-for-foo debian/tmp/usr/bin/file-for-foo
+
+installmore: install
+ install -m 644 file-for-foo debian/tmp/usr/bin/file-for-foo-more
+ install -m 644 file-for-foo debian/tmp/usr/bin/file-for-foo-lots
diff --git a/t/dh_missing/template/debian/changelog b/t/dh_missing/template/debian/changelog
new file mode 100644
index 00000000..5850f0e2
--- /dev/null
+++ b/t/dh_missing/template/debian/changelog
@@ -0,0 +1,5 @@
+foo (1.0-1) unstable; urgency=low
+
+ * Initial release. (Closes: #XXXXXX)
+
+ -- Test <testing@nowhere> Mon, 11 Jul 2016 18:10:59 +0200
diff --git a/t/dh_missing/template/debian/control b/t/dh_missing/template/debian/control
new file mode 100644
index 00000000..48d4de2f
--- /dev/null
+++ b/t/dh_missing/template/debian/control
@@ -0,0 +1,20 @@
+Source: foo
+Section: misc
+Priority: optional
+Maintainer: Test <testing@nowhere>
+Standards-Version: 3.9.8
+
+Package: foo
+Architecture: all
+Description: package foo
+ Package foo
+
+Package: bar
+Architecture: all
+Description: package bar
+ Package bar
+
+Package: baz
+Architecture: all
+Description: package baz
+ Package baz
diff --git a/t/dh_missing/template/debian/foo.install b/t/dh_missing/template/debian/foo.install
new file mode 100644
index 00000000..eddea57c
--- /dev/null
+++ b/t/dh_missing/template/debian/foo.install
@@ -0,0 +1 @@
+usr/bin/*-for-foo \ No newline at end of file
diff --git a/t/dh_missing/template/file-for-foo b/t/dh_missing/template/file-for-foo
new file mode 100644
index 00000000..8773f398
--- /dev/null
+++ b/t/dh_missing/template/file-for-foo
@@ -0,0 +1 @@
+file content \ No newline at end of file
diff --git a/t/dh_usrlocal/01-basic.t b/t/dh_usrlocal/01-basic.t
new file mode 100755
index 00000000..9b055161
--- /dev/null
+++ b/t/dh_usrlocal/01-basic.t
@@ -0,0 +1,157 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More;
+plan(tests => 1);
+
+use File::Path qw(remove_tree);
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+use Test::DH;
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+sub extract_generated_lines {
+ my ($file) = @_;
+ my (@lines, $marker);
+ return if not -f $file;
+ open(my $fd, '<', $file) or error("open($file) failed: $!");
+ while (my $line = <$fd>) {
+ chomp($line);
+ if (defined($marker)) {
+ last if $line eq $marker;
+ push(@lines, $line);
+ next;
+ }
+ if ($line =~ m{\s*<<\s*(\S+)\s*$}) {
+ $marker = $1;
+ }
+ }
+ close($fd);
+ return @lines;
+}
+
+
+sub perform_test {
+ my ($install_dirs, $expected_dirs_postinst, $expected_dirs_prerm) = @_;
+ my (@postinst, @prerm);
+ my @scripts = qw(
+ debian/debhelper.postinst.debhelper
+ debian/debhelper.prerm.debhelper
+ );
+
+ rm_files(@scripts);
+ remove_tree('debian/debhelper');
+ mkdirs(map { "debian/debhelper/$_" } @{$install_dirs});
+
+ ok(run_dh_tool('dh_usrlocal'));
+
+ @postinst = extract_generated_lines("debian/debhelper.postinst.debhelper");
+ @prerm = extract_generated_lines("debian/debhelper.prerm.debhelper");
+
+ is_deeply(\@postinst,
+ [map { "$_ default" } @{$expected_dirs_postinst}],
+ "Correct postinst"
+ ) or do { diag("postinst: $_") for @postinst; };
+ is_deeply(\@prerm,
+ $expected_dirs_prerm,
+ "Correct prerm"
+ ) or do { diag("prerm: $_") for @prerm; };
+}
+
+each_compat_subtest {
+
+ perform_test(
+ ['/usr/local/bar', '/usr/local/foo'],
+ ['/usr/local/bar', '/usr/local/foo'],
+ []
+ );
+
+ perform_test(
+ [
+ '/usr/local/foo/bar',
+ '/usr/local/foo/baz',
+ ],
+ [
+ '/usr/local/foo',
+ '/usr/local/foo/bar',
+ '/usr/local/foo/baz',
+ ],
+ [
+ '/usr/local/foo/bar',
+ '/usr/local/foo/baz',
+ ]
+ );
+
+ perform_test(
+ [qw(
+ /usr/local/a/a/a
+ /usr/local/a/a/b
+ /usr/local/a/b/a
+ /usr/local/a/b/b
+ /usr/local/b/a/a
+ /usr/local/b/a/b
+ /usr/local/b/b/a
+ /usr/local/b/b/b
+ )],
+ [qw(
+ /usr/local/a
+ /usr/local/a/a
+ /usr/local/a/a/a
+ /usr/local/a/a/b
+ /usr/local/a/b
+ /usr/local/a/b/a
+ /usr/local/a/b/b
+ /usr/local/b
+ /usr/local/b/a
+ /usr/local/b/a/a
+ /usr/local/b/a/b
+ /usr/local/b/b
+ /usr/local/b/b/a
+ /usr/local/b/b/b
+ )],
+ [qw(
+ /usr/local/a/a/a
+ /usr/local/a/a/b
+ /usr/local/a/a
+ /usr/local/a/b/a
+ /usr/local/a/b/b
+ /usr/local/a/b
+ /usr/local/b/a/a
+ /usr/local/b/a/b
+ /usr/local/b/a
+ /usr/local/b/b/a
+ /usr/local/b/b/b
+ /usr/local/b/b
+ )]
+ );
+
+ perform_test(
+ [
+ '/usr/local/foo/dir/somewhere',
+ '/usr/local/bar/another-dir/elsewhere',
+ '/usr/local/baz/foo+bar/thing',
+ ],
+ [
+ '/usr/local/bar',
+ '/usr/local/bar/another-dir',
+ '/usr/local/bar/another-dir/elsewhere',
+ '/usr/local/baz',
+ '/usr/local/baz/foo+bar',
+ '/usr/local/baz/foo+bar/thing',
+ '/usr/local/foo',
+ '/usr/local/foo/dir',
+ '/usr/local/foo/dir/somewhere',
+ ],
+ [
+ '/usr/local/bar/another-dir/elsewhere',
+ '/usr/local/bar/another-dir',
+ '/usr/local/baz/foo+bar/thing',
+ '/usr/local/baz/foo+bar',
+ '/usr/local/foo/dir/somewhere',
+ '/usr/local/foo/dir',
+ ]
+ );
+};
+
diff --git a/t/maintscript b/t/maintscript
deleted file mode 100644
index bf15d445..00000000
--- a/t/maintscript
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/perl
-use Test;
-plan(tests => 8);
-
-system("mkdir -p t/tmp/debian");
-system("cp debian/control t/tmp/debian");
-open(OUT, ">", "t/tmp/debian/maintscript") || die "$!";
-print OUT <<EOF;
-rm_conffile /etc/1
-mv_conffile /etc/2 /etc/3 1.0-1
-EOF
-close OUT;
-system("cd t/tmp && DH_COMPAT=7 fakeroot ../../dh_installdeb");
-for my $script (qw{postinst preinst prerm postrm}) {
- my @output=`cat t/tmp/debian/debhelper.$script.debhelper`;
- ok(grep { m{^dpkg-maintscript-helper rm_conffile /etc/1 -- "\$\@"$} } @output);
- ok(grep { m{^dpkg-maintscript-helper mv_conffile /etc/2 /etc/3 1\.0-1 -- "\$\@"$} } @output);
-}
-system("rm -rf t/tmp");
diff --git a/t/maintscript.t b/t/maintscript.t
new file mode 100755
index 00000000..cec4fab8
--- /dev/null
+++ b/t/maintscript.t
@@ -0,0 +1,70 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Path qw(remove_tree);
+use File::Basename qw(dirname);
+use lib dirname(__FILE__);
+use Test::DH;
+use Debian::Debhelper::Dh_Lib qw(!dirname);
+
+plan(tests => 2);
+
+each_compat_up_to_and_incl_subtest(10, sub {
+ my @scripts = qw{postinst preinst prerm postrm};
+ my $file = 'debian/maintscript';
+
+ remove_tree('debian/debhelper', 'debian/tmp');
+ rm_files(@scripts, $file);
+
+ open(my $fd, ">", $file) || die("open($file): $!");
+ print {$fd} <<EOF;
+rm_conffile /etc/1
+mv_conffile /etc/2 /etc/3 1.0-1
+EOF
+ close($fd) or die("close($file): $!\n");
+
+ run_dh_tool('dh_installdeb');
+
+ for my $script (@scripts) {
+ my @output=`cat debian/debhelper.$script.debhelper`;
+ ok(grep { m{^dpkg-maintscript-helper rm_conffile /etc/1 -- "\$\@"$} } @output);
+ ok(grep { m{^dpkg-maintscript-helper mv_conffile /etc/2 /etc/3 1\.0-1 -- "\$\@"$} } @output);
+ }
+});
+
+sub test_maintscript_syntax {
+ my ($contents) = @_;
+ my @scripts = map { ("debian/debhelper.${_}.debhelper", "debian/$_") } qw{postinst preinst prerm postrm};
+ my $file = 'debian/maintscript';
+
+
+ open(my $fd, ">", $file) or die("open($file): $!");
+ print {$fd} <<EOF;
+${contents}
+EOF
+ close($fd) or die("close($file): $!\n");
+
+ my $res = run_dh_tool( { 'quiet' => 1 }, 'dh_installdeb');
+
+ remove_tree('debian/debhelper', 'debian/tmp', 'debian/.debhelper');
+ rm_files(@scripts);
+
+ return $res;
+}
+
+# Negative tests
+each_compat_from_and_above_subtest(12, sub {
+ ok(!test_maintscript_syntax('rm_conffile foo 1.0~'), "rm_conffile absolute path check");
+ ok(!test_maintscript_syntax('rm_conffile /foo 1.0\~'), "rm_conffile version check");
+ ok(!test_maintscript_syntax('rm_conffile /foo 1.0~ some_pkg'), "rm_conffile package name check");
+ ok(!test_maintscript_syntax('rm_conffile /foo 1.0~ some-pkg --'), "rm_conffile separator check");
+
+ ok(!test_maintscript_syntax('mv_conffile foo /bar 1.0~'), "mv_conffile absolute (current) path check");
+ ok(!test_maintscript_syntax('mv_conffile /foo bar 1.0~'), "mv_conffile absolute (current) path check");
+ ok(!test_maintscript_syntax('mv_conffile /foo /bar 1.0\~'), "mv_conffile version check");
+ ok(!test_maintscript_syntax('mv_conffile /foo /bar 1.0~ some_pkg'), "mv_conffile package name check");
+ ok(!test_maintscript_syntax('mv_conffile /foo /bar 1.0~ some-pkg -- '), "mv_conffile separator check ");
+});
+
diff --git a/t/override_target b/t/override_target.t
index 28ceda84..235f904c 100755
--- a/t/override_target
+++ b/t/override_target.t
@@ -1,22 +1,30 @@
#!/usr/bin/perl
-use Test;
+use strict;
+use warnings;
+use Test::More;
plan(tests => 1);
# This test is here to detect breakage in
# dh's rules_explicit_target, which parses
# slightly internal make output.
system("mkdir -p t/tmp/debian");
-system("cp debian/control t/tmp/debian");
+system("cp debian/control debian/compat debian/changelog t/tmp/debian");
open (OUT, ">", "t/tmp/debian/rules") || die "$!";
+my $binpath = $ENV{AUTOPKGTEST_TMP} ? '/usr/bin' : '../..';
print OUT <<EOF;
#!/usr/bin/make -f
%:
- PATH=../..:\$\$PATH PERL5LIB=../.. ../../dh \$@
+ PATH=../..:\$\$PATH PERL5LIB=../../lib $binpath/dh \$@ --without autoreconf
+
+override_dh_update_autotools_config override_dh_strip_nondeterminism:
+
override_dh_auto_build:
echo "override called"
EOF
close OUT;
system("chmod +x t/tmp/debian/rules");
my @output=`cd t/tmp && debian/rules build 2>&1`;
-ok(grep { m/override called/ } @output);
+ok(grep { m/override called/ } @output) or do {
+ diag($_) for @output;
+};
system("rm -rf t/tmp");
diff --git a/t/pod b/t/pod
deleted file mode 100755
index 8a9c0bf0..00000000
--- a/t/pod
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-use Test::More;
-
-eval 'use Test::Pod';
-plan skip_all => 'Test::Pod required' if $@;
-
-all_pod_files_ok(grep { -x $_ } glob 'dh_*');
diff --git a/t/pod.t b/t/pod.t
new file mode 100755
index 00000000..444eed25
--- /dev/null
+++ b/t/pod.t
@@ -0,0 +1,10 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More;
+
+eval { require Test::Pod; Test::Pod->import; };
+plan skip_all => 'Test::Pod required' if $@;
+
+all_pod_files_ok('debhelper.pod', grep { -x $_ } 'dh', glob 'dh_*');
diff --git a/t/size b/t/size.t
index d8b98964..e759a474 100755
--- a/t/size
+++ b/t/size.t
@@ -3,9 +3,12 @@
# Debhelper is supposed to consist of small, simple, easy to understand
# programs. Programs growing in size and complexity without bounds is a
# bug.
+use strict;
+use warnings;
use Test::More;
-my @progs=grep { -x $_ } glob("dh_*");
+my $binpath = $ENV{AUTOPKGTEST_TMP} ? '/usr/bin' : '.';
+my @progs=grep { -x $_ } glob("$binpath/dh_*");
plan(tests => (@progs + @progs));
@@ -13,16 +16,16 @@ foreach my $file (@progs) {
my $lines=0;
my $maxlength=0;
- open(IN, $file) || die "open: $!";
+ open(my $fd, '<', $file) || die "open($file): $!";
my $cutting=0;
- while (<IN>) {
+ while (<$fd>) {
$cutting=1 if /^=/;
$cutting=0 if /^=cut/;
- next if $cutting || /^(=|\s*\#)/;
+ next if $cutting || /^(?:=|\s*(?:\#.*|[}]\s*)?$)/;
$lines++;
$maxlength=length($_) if length($_) > $maxlength;
}
- close IN;
+ close($fd);
print "# $file has $lines lines, max length is $maxlength\n";
ok($lines < 200, $file);
ok($maxlength < 160, $file);
diff --git a/t/syntax b/t/syntax
deleted file mode 100755
index 92455457..00000000
--- a/t/syntax
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/perl
-use Test;
-
-my @progs=grep { -x $_ } glob("dh_*"), "dh";
-my @libs=(glob("Debian/Debhelper/*.pm"), glob("Debian/Debhelper/*/*.pm"));
-
-plan(tests => (@progs + @libs));
-
-foreach my $file (@progs, @libs) {
- print "# Testing $file\n";
- ok(system("perl -c $file >/dev/null 2>&1"), 0);
-}
diff --git a/t/syntax/syntax-libs.t b/t/syntax/syntax-libs.t
new file mode 120000
index 00000000..fedf32e2
--- /dev/null
+++ b/t/syntax/syntax-libs.t
@@ -0,0 +1 @@
+syntax-progs.t \ No newline at end of file
diff --git a/t/syntax/syntax-progs.t b/t/syntax/syntax-progs.t
new file mode 100755
index 00000000..93d00bb3
--- /dev/null
+++ b/t/syntax/syntax-progs.t
@@ -0,0 +1,28 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename qw(dirname);
+use lib dirname(dirname(__FILE__));
+# Need Test::More to set PERL5LIB
+use Test::DH;
+
+use Config;
+my $binpath = $ENV{AUTOPKGTEST_TMP} ? '/usr/bin' : '.';
+my $libpath = $ENV{AUTOPKGTEST_TMP} ? $Config{vendorlib} : 'lib';
+
+my @targets;
+if ($0 =~ m{syntax-progs\.t$}) {
+ @targets = grep { -x $_ } glob("$binpath/dh_*"), "$binpath/dh";
+} else {
+ @targets = (glob("$libpath/Debian/Debhelper/*.pm"), glob("$libpath/Debian/Debhelper/*/*.pm"));
+}
+
+plan(tests => scalar(@targets));
+
+foreach my $file (@targets) {
+ is(system("perl -c $file >/dev/null 2>&1"), 0)
+ or diag("$file failed syntax check");
+}
+