Projects
home:revy:deepin-riscv-stage2
debhelper
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 2
View file
debhelper_13.5.2.dsc -> debhelper_13.11.4.dsc
Changed
@@ -1,21 +1,42 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + Format: 3.0 (native) Source: debhelper Binary: debhelper, libdebhelper-perl Architecture: all -Version: 13.5.2 +Version: 13.11.4 Maintainer: Debhelper Maintainers <debhelper@packages.debian.org> Uploaders: Niels Thykier <niels@thykier.net>, -Standards-Version: 4.5.1 +Standards-Version: 4.6.1 Vcs-Browser: https://salsa.debian.org/debian/debhelper Vcs-Git: https://salsa.debian.org/debian/debhelper.git Testsuite: autopkgtest-pkg-perl -Build-Depends: dpkg-dev (>= 1.18.0~), perl:any, po4a, man-db <pkg.debhelper.ci>, libtest-pod-perl <pkg.debhelper.ci> +Build-Depends: dpkg-dev (>= 1.18.0~), libtest-pod-perl <pkg.debhelper.ci>, man-db <pkg.debhelper.ci>, perl:any, po4a Package-List: debhelper deb devel optional arch=all libdebhelper-perl deb perl optional arch=all Checksums-Sha1: - 6be26e929af5c23b548f2c81bbe03dd5d322ec8a 563416 debhelper_13.5.2.tar.xz + dec667c5cde6bc71666e00e51f49501319958e8a 580484 debhelper_13.11.4.tar.xz Checksums-Sha256: - 9a088d631d6eb4990184dbbcf44251f2a1f7a6cef6527da0a841c4fbe75a2620 563416 debhelper_13.5.2.tar.xz + 9ed846bb34f1a5501894d06c9f30e4831f9c18e0b03e1a177ceac7eb63212b42 580484 debhelper_13.11.4.tar.xz Files: - ec9e69990d9cccc4cb685d4a33475339 563416 debhelper_13.5.2.tar.xz + ddb659a58a9b0da2ec0e5dbe73c5d69f 580484 debhelper_13.11.4.tar.xz + +-----BEGIN PGP SIGNATURE----- + +iQJGBAEBCgAwFiEE8f9dDX4ALfD+VfsMplt42+Z8eqwFAmOy8EkSHG5pZWxzQHRo +eWtpZXIubmV0AAoJEKZbeNvmfHqsatsQAKitmdxcaovw4p2hGdEJiqpoTdhWOQEG +rplgK4djw2v2PlueNeLAmyJaKoKHU+lVq6ggEFv0HpVwwy2I+ApC3EM44a5XRN1b +HLrjLELp9bAa7D6hVz/5TwK1LDynRX/pnEu4E9dxfkfF8SjF6vFARlUbN9YzngtT +Icx7Yj8pakv971AuBryXAkWCUfx9cRMNxh+iPfbiHLWF/ye9J+qU9JHbn4qF0UXg +MhlP5aaCD7BTE79Oygop1M5OPW+fOVcDDCKMi/ykyT9xA5P3iJ4EUZlkJyVHqFwQ +mQlqORYpcItQcglTOrgb6XURobf44qKf4VAUOgSspXL/loX2BscVecqir/+f8sUx +V7dnzBf3VsVck4Z2eLhk5QObeCceRJRZ3o4zJaFTVVdJLzaG5CU5dYdN0ZFHdRu7 +CQUy8mvX6iStmP0pBW9vqf+MqxBS6J1uv2xb3WIaH847QRb3AOqznNLUamOm7yxl +/J+2mjmmU6uqxZlomiZP1vcAh6JVufCYPyQANbQe26yEZ5buOiRekJocghkbpmKA +eTy82iVKV54jCTWJHcZYE1cy8R4BsvTRDRpCsF599Ht1XMjTT3BsgYPuO2RZQufw +StTwNReB4NkXvPQOQaPCX58VVlUzbKbNDteny56AGi1aIWTvk4qq+efARHt/Ex0q +5XB7IeaSbADe +=1oxz +-----END PGP SIGNATURE-----
View file
debhelper_13.11.4.tar.xz/.editorconfig
Added
@@ -0,0 +1,11 @@ +root = true + +* +end_of_line = lf +insert_final_newline = true + +*.py +indent_style = space + +*.{pl,pm} +indent_style = tab
View file
debhelper_13.5.2.tar.xz/CONTRIBUTING.md -> debhelper_13.11.4.tar.xz/CONTRIBUTING.md
Changed
@@ -69,7 +69,7 @@ costs. * Helpers / tools should generally *do the right thing* by default - (subject to backwards compatibility). If most people neeed some + (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).
View file
debhelper_13.5.2.tar.xz/Makefile -> debhelper_13.11.4.tar.xz/Makefile
Changed
@@ -65,7 +65,7 @@ LANG_TARGETS = endif -build: $(LANG_TARGETS) version debhelper.7 debhelper-obsolete-compat.7 $(MANPAGES) +build: $(LANG_TARGETS) version debhelper.7 debhelper-compat-upgrade-checklist.7 debhelper-obsolete-compat.7 $(MANPAGES) po4a-stamp: @@ -85,6 +85,9 @@ $(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 @@ -105,7 +108,7 @@ $(MAKEMANLIST) $(COMMANDS) | \ $(POD2MAN) $(POD2MAN_FLAGS) --name="debhelper" --section=7 > $@ -debhelper-obsolete-compat.7: debhelper-obsolete-compat.pod +%.7: %.pod $(POD2MAN) $(POD2MAN_FLAGS) --name="debhelper" --section=7 $^ > $@ clean: @@ -137,4 +140,4 @@ install -m 0644 lib/Debian/Debhelper/DH/*.pm $(DESTDIR)$(PERLLIBDIR)/DH test: version - MAKEFLAGS= HARNESS_OPTIONS=j$(TEST_JOBS) ./run perl -MTest::Harness -e 'runtests grep { ! /CVS/ && ! /\.svn/ && -f && -x && m/\.t$$/ } @ARGV' t/* t/*/* + MAKEFLAGS= prove -lrj$(TEST_JOBS) --timer t
View file
debhelper_13.5.2.tar.xz/autoscripts/postinst-init -> debhelper_13.11.4.tar.xz/autoscripts/postinst-init
Changed
@@ -1,6 +1,6 @@ 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# restart || #ERROR_HANDLER# + invoke-rc.d #INVOKE_RCD_PARAMS##SCRIPT# start || #ERROR_HANDLER# fi fi
View file
debhelper_13.11.4.tar.xz/autoscripts/postinst-init-restart
Added
@@ -0,0 +1,11 @@ +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 +fi
View file
debhelper_13.5.2.tar.xz/autoscripts/postinst-init-tmpfiles -> debhelper_13.11.4.tar.xz/autoscripts/postinst-init-tmpfiles
Changed
@@ -1,7 +1,5 @@ if "$1" = "configure" || "$1" = "abort-upgrade" || "$1" = "abort-deconfigure" || "$1" = "abort-remove" ; then - # In case this system is running systemd, we need to ensure that all - # necessary tmpfiles (if any) are created before starting. - if -z "${DPKG_ROOT:-}" && -d /run/systemd/system ; then - systemd-tmpfiles --create #TMPFILES# >/dev/null || true + if -x "$(command -v systemd-tmpfiles)" ; then + systemd-tmpfiles ${DPKG_ROOT:+--root="$DPKG_ROOT"} --create #TMPFILES# >/dev/null || true fi fi
View file
debhelper_13.5.2.tar.xz/autoscripts/postinst-menu -> debhelper_13.11.4.tar.xz/autoscripts/postinst-menu
Changed
@@ -1,3 +1,3 @@ -if "$1" = "configure" && -x "`command -v update-menus`" ; then +if "$1" = "configure" && -x "`command -v update-menus`" && -x "$DPKG_ROOT`command -v update-menus`" ; then update-menus fi
View file
debhelper_13.5.2.tar.xz/autoscripts/postinst-menu-method -> debhelper_13.11.4.tar.xz/autoscripts/postinst-menu-method
Changed
@@ -1,7 +1,7 @@ inst=/etc/menu-methods/#PACKAGE# if -f $inst ; then chmod a+x $inst - if -x "`command -v update-menus`" ; then + if -x "`command -v update-menus`" && -x "$DPKG_ROOT`command -v update-menus`" ; then update-menus fi fi
View file
debhelper_13.5.2.tar.xz/autoscripts/postinst-systemd-dont-enable -> debhelper_13.11.4.tar.xz/autoscripts/postinst-systemd-dont-enable
Changed
@@ -1,6 +1,6 @@ if "$1" = "configure" || "$1" = "abort-upgrade" || "$1" = "abort-deconfigure" || "$1" = "abort-remove" ; then if deb-systemd-helper debian-installed #UNITFILE#; then - # This will only remove masks created by d-s-h on package removal. + # 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
View file
debhelper_13.5.2.tar.xz/autoscripts/postinst-systemd-enable -> debhelper_13.11.4.tar.xz/autoscripts/postinst-systemd-enable
Changed
@@ -1,5 +1,5 @@ if "$1" = "configure" || "$1" = "abort-upgrade" || "$1" = "abort-deconfigure" || "$1" = "abort-remove" ; then - # This will only remove masks created by d-s-h on package removal. + # 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.
View file
debhelper_13.5.2.tar.xz/autoscripts/postinst-systemd-start -> debhelper_13.11.4.tar.xz/autoscripts/postinst-systemd-start
Changed
@@ -1,6 +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 restart #UNITFILES# >/dev/null || true + deb-systemd-invoke start #UNITFILES# >/dev/null || true fi fi
View file
debhelper_13.5.2.tar.xz/autoscripts/postinst-systemd-user-dont-enable -> debhelper_13.11.4.tar.xz/autoscripts/postinst-systemd-user-dont-enable
Changed
@@ -1,7 +1,7 @@ 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 - # This will only remove masks created by d-s-h on package removal. + # 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
View file
debhelper_13.5.2.tar.xz/autoscripts/postinst-systemd-user-enable -> debhelper_13.11.4.tar.xz/autoscripts/postinst-systemd-user-enable
Changed
@@ -1,6 +1,6 @@ if "$1" = "configure" || "$1" = "abort-upgrade" || "$1" = "abort-deconfigure" || "$1" = "abort-remove" ; then if -z "${DPKG_ROOT:-}" ; then - # This will only remove masks created by d-s-h on package removal. + # 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.
View file
debhelper_13.11.4.tar.xz/autoscripts/postinst-systemd-user-restart
Added
@@ -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
View file
debhelper_13.5.2.tar.xz/autoscripts/postinst-sysusers -> debhelper_13.11.4.tar.xz/autoscripts/postinst-sysusers
Changed
@@ -1,5 +1,3 @@ if "$1" = "configure" || "$1" = "abort-upgrade" || "$1" = "abort-deconfigure" || "$1" = "abort-remove" ; then - if -z "${DPKG_ROOT:-}" ; then - systemd-sysusers #CONFILE_BASENAME# - fi + systemd-sysusers ${DPKG_ROOT:+--root="$DPKG_ROOT"} #CONFILE_BASENAME# fi
View file
debhelper_13.5.2.tar.xz/autoscripts/postrm-init -> debhelper_13.11.4.tar.xz/autoscripts/postrm-init
Changed
@@ -1,3 +1,6 @@ +if "$1" = "remove" && -x "/etc/init.d/#SCRIPT#" ; then + chmod -x "/etc/init.d/#SCRIPT#" >/dev/null || true +fi if -z "${DPKG_ROOT:-}" && "$1" = "purge" ; then update-rc.d #SCRIPT# remove >/dev/null fi
View file
debhelper_13.5.2.tar.xz/autoscripts/postrm-menu -> debhelper_13.11.4.tar.xz/autoscripts/postrm-menu
Changed
@@ -1,1 +1,1 @@ -if -x "`command -v update-menus`" ; then update-menus ; fi +if -x "`command -v update-menus`" && -x "$DPKG_ROOT`command -v update-menus`" ; then update-menus ; fi
View file
debhelper_13.5.2.tar.xz/autoscripts/postrm-menu-method -> debhelper_13.11.4.tar.xz/autoscripts/postrm-menu-method
Changed
@@ -1,3 +1,3 @@ inst=/etc/menu-methods/#PACKAGE# if "$1" = "remove" && -f "$inst" ; then chmod a-x $inst ; fi -if -x "`command -v update-menus`" ; then update-menus ; fi +if -x "`command -v update-menus`" && -x "$DPKG_ROOT`command -v update-menus`" ; then update-menus ; fi
View file
debhelper_13.5.2.tar.xz/autoscripts/postrm-systemd -> debhelper_13.11.4.tar.xz/autoscripts/postrm-systemd
Changed
@@ -1,12 +1,5 @@ -if "$1" = "remove" ; then - if -x "/usr/bin/deb-systemd-helper" ; then - deb-systemd-helper mask #UNITFILES# >/dev/null || true - fi -fi - if "$1" = "purge" ; then if -x "/usr/bin/deb-systemd-helper" ; then deb-systemd-helper purge #UNITFILES# >/dev/null || true - deb-systemd-helper unmask #UNITFILES# >/dev/null || true fi fi
View file
debhelper_13.5.2.tar.xz/autoscripts/postrm-systemd-user -> debhelper_13.11.4.tar.xz/autoscripts/postrm-systemd-user
Changed
@@ -1,12 +1,5 @@ -if "$1" = "remove" ; then - if -z "${DPKG_ROOT:-}" && -x "/usr/bin/deb-systemd-helper" ; then - deb-systemd-helper --user mask #UNITFILES# >/dev/null || true - fi -fi - if "$1" = "purge" ; then if -z "${DPKG_ROOT:-}" && -x "/usr/bin/deb-systemd-helper" ; then deb-systemd-helper --user purge #UNITFILES# >/dev/null || true - deb-systemd-helper --user unmask #UNITFILES# >/dev/null || true fi fi
View file
debhelper_13.11.4.tar.xz/autoscripts/postrm-systemd-user-reload-only
Added
@@ -0,0 +1,3 @@ +if -z "${DPKG_ROOT:-}" && "$1" = remove && -d /run/systemd/system ; then + systemctl --global daemon-reload >/dev/null || true +fi
View file
debhelper_13.11.4.tar.xz/autoscripts/preinst-init-chmod
Added
@@ -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
View file
debhelper_13.11.4.tar.xz/autoscripts/preinst-init-stop
Added
@@ -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
View file
debhelper_13.11.4.tar.xz/autoscripts/preinst-systemd-stop
Added
@@ -0,0 +1,3 @@ +if -z "${DPKG_ROOT:-}" && "$1" = upgrade && -d /run/systemd/system ; then + deb-systemd-invoke stop #UNITFILES# >/dev/null || true +fi
View file
debhelper_13.11.4.tar.xz/autoscripts/prerm-systemd-user-stop
Added
@@ -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
View file
debhelper_13.11.4.tar.xz/debhelper-compat-upgrade-checklist.pod
Added
@@ -0,0 +1,775 @@ +=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 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 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. + +=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". +
View file
debhelper_13.5.2.tar.xz/debhelper-obsolete-compat.pod -> debhelper_13.11.4.tar.xz/debhelper-obsolete-compat.pod
Changed
@@ -18,45 +18,93 @@ =over 4 -=item v1 +=item v7 -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 is the lowest supported compatibility level. -This mode is deprecated. +Changes from v6 are: -=item v2 +=over 8 -In this mode, debhelper will consistently use debian/I<package> -as the package tree directory for every package that is built. +=item - -This mode is deprecated. +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 v3 +=item - -This mode works like v2, with the following additions: +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 - -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. +Commands that generate maintainer script fragments will order the +fragments in reverse order for the F<prerm> and F<postrm> scripts. =item - -B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call B<ldconfig>. +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 - -Every file in F<etc/> is automatically flagged as a conffile by B<dh_installdeb>. +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: @@ -86,32 +134,44 @@ This mode is deprecated. -=item v5 - -This is the lowest supported compatibility level. +=item v3 -Changes from v4 are: +This mode works like v2, with the following additions: =over 8 =item - -Comments are ignored in debhelper config files. +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_strip --dbg-package> now specifies the name of a package to put debugging -symbols in, not the packages to take the symbols from. +B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call B<ldconfig>. =item - -B<dh_installdocs> skips installing empty files. +Every file in F<etc/> is automatically flagged as a conffile by B<dh_installdeb>. -=item - +=back -B<dh_install> errors out if wildcards expand to nothing. +This mode is deprecated. -=back +=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
View file
debhelper_13.5.2.tar.xz/debhelper.pod -> debhelper_13.11.4.tar.xz/debhelper.pod
Changed
@@ -274,7 +274,10 @@ =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> @@ -432,8 +435,8 @@ =item B<--reload-all-buildenv-variables> -By default, L<dh(1)> will compute several environment (e.g. by using -L<dpkg-buildflags(1)>) and cache them to avoid having all B<dh_auto_*> +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 @@ -475,7 +478,7 @@ 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 +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. @@ -493,12 +496,11 @@ 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>. +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, though a package may not specify a compatibility level via -multiple methods at once. To use this method, F<debian/compat> should contain +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 @@ -508,6 +510,18 @@ 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 indicate if the behavior is different in an earlier compatibility level, so @@ -517,786 +531,8 @@ =head2 Supported compatibility levels -These are the available compatibility levels: - -=over 4 - -=item v5 - -This is the lowest supported compatibility level. - -If you are upgrading from an earlier compatibility level, please -review L<debhelper-obsolete-compat(7)>. - -This mode is deprecated. - -=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 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 - -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 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 -
View file
debhelper_13.5.2.tar.xz/debian/changelog -> debhelper_13.11.4.tar.xz/debian/changelog
Changed
@@ -1,3 +1,356 @@ +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
View file
debhelper_13.5.2.tar.xz/debian/control -> debhelper_13.11.4.tar.xz/debian/control
Changed
@@ -4,12 +4,12 @@ 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, - man-db <pkg.debhelper.ci>, - libtest-pod-perl <pkg.debhelper.ci>, Rules-Requires-Root: no -Standards-Version: 4.5.1 +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 @@ -31,12 +31,12 @@ dpkg-dev (>= 1.18.2~), dwz (>= 0.12.20190711), file (>= 3.23), + libdebhelper-perl (= ${source:Version}), libdpkg-perl (>= 1.17.14), man-db, - libdebhelper-perl (= ${source:Version}), po-debconf, ${misc:Depends}, - ${perl: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 @@ -48,13 +48,14 @@ # 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:CompatLevels}, - dh-sequence-dwz, +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 @@ -68,9 +69,9 @@ Section: perl Architecture: all Depends: ${misc:Depends}, - ${perl:Depends} -Replaces: debhelper (<< 12.6~) -Breaks: debhelper (<< 12.6~) + ${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
View file
debhelper_13.11.4.tar.xz/debian/debhelper.docs
Changed
(renamed from debian/docs)
View file
debhelper_13.11.4.tar.xz/debian/debhelper.examples
Changed
(renamed from debian/examples)
View file
debhelper_13.11.4.tar.xz/debian/debhelper.manpages
Changed
(renamed from debian/manpages)
View file
debhelper_13.11.4.tar.xz/debian/gbp.conf
Added
@@ -0,0 +1,6 @@ +DEFAULT +debian-branch = main + +dch +multimaint-merge = true +ignore-regex = (Signed-off|Acked|Tested|Reviewed)-by:|Fix-For:|Fixes:
View file
debhelper_13.5.2.tar.xz/dh -> debhelper_13.11.4.tar.xz/dh
Changed
@@ -65,15 +65,16 @@ 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>. +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. -This is mostly useful for override targets, where the command will simply be +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: @@ -90,8 +91,48 @@ =head2 Verifying targets are picked up by dh -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: +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 @@ -709,6 +750,22 @@ parse_dh_cmd_options(@ARGV_orig); +_hoist_profile_into_dbo('nodoc'); +_hoist_profile_into_dbo('nocheck'); + +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'); + } + 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') +} + # Figure out at what point in the sequence to start for each package. my (%logged, %startpoint, $completed_sequences); @@ -803,6 +860,14 @@ } } +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 and but not in DEB_BUILD_OPTIONS"); + } +} =head1 SEE ALSO
View file
debhelper_13.5.2.tar.xz/dh_assistant -> debhelper_13.11.4.tar.xz/dh_assistant
Changed
@@ -26,9 +26,54 @@ 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 supported-compat-levels (JSON, CRFA) +=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> @@ -37,9 +82,9 @@ This command accepts no options or arguments. -=item which-build-system (JSON) +=head2 which-build-system (JSON) -B<Synopsis>: B<dh_assistant> B<which-build-system> S<I<build step>> S<I<build system options>> +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 @@ -96,7 +141,7 @@ 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 current null by default. +Note that if not specified, this value is currently null by default. =item * @@ -111,10 +156,131 @@ =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.
View file
debhelper_13.5.2.tar.xz/dh_builddeb -> debhelper_13.11.4.tar.xz/dh_builddeb
Changed
@@ -80,7 +80,7 @@ my ($package, $destdir, $cmd, $rename_sub) = @_; my $build_dir = "debian/.debhelper/scratch-space/build-${package}"; my ($dpkg_filename, $desired_filename); - install_dir($build_dir); + mkdirs($build_dir); doit(@${cmd}, $build_dir); opendir(my $fd, $build_dir) or error("opendir($build_dir) failed: $!"); for my $name (readdir($fd)) { @@ -107,6 +107,8 @@ 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); @@ -131,7 +133,7 @@ if ($dbgsym) { my $dbgsym_tmpdir = dbgsym_tmpdir($package); - my @cmd = ("dpkg-deb", @dpkg_options, @{$dh{U_PARAMS}}, + 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}); @@ -142,15 +144,7 @@ next; } if (exists $ENV{DH_ALWAYS_EXCLUDE} && length $ENV{DH_ALWAYS_EXCLUDE}) { - if (! compat(5)) { - 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}); - } + complex_doit("find $tmp $dh{EXCLUDE_FIND} | xargs rm -rf"); } if (! is_udeb($package)) { doit("dpkg-deb", @dpkg_options, @{$dh{U_PARAMS}}, "--build", $tmp, $dh{DESTDIR}.$dh{FILENAME});
View file
debhelper_13.5.2.tar.xz/dh_compress -> debhelper_13.11.4.tar.xz/dh_compress
Changed
@@ -137,6 +137,7 @@ ! -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" \\
View file
debhelper_13.5.2.tar.xz/dh_dwz -> debhelper_13.11.4.tar.xz/dh_dwz
Changed
@@ -135,13 +135,14 @@ 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}/usr/lib/debug/.dwz/${ma_dir}"); + doit('rmdir', '-p', '--ignore-fail-on-non-empty', "${tmp}/${dwz_dir}"); } } else { xargs($unique_files, 'dwz', @{$dh{U_PARAMS}}, '--');
View file
debhelper_13.5.2.tar.xz/dh_installalternatives -> debhelper_13.11.4.tar.xz/dh_installalternatives
Changed
@@ -99,9 +99,16 @@ if (index($link_name, '/') > -1) { error(qq{Invalid link name "${link_name}" in "${alternatives_file}": Must not contain slash}); } - if ( ! -f "${tmpdir}/${impl_path}") { + 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}"; @@ -133,9 +140,14 @@ . 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}"}) if $trailing; + . qq{ in "${alternatives_file}"}); warning("Dependent links must consist of exactly 3 space-separated values"); $error_with_def = 1; }
View file
debhelper_13.5.2.tar.xz/dh_installchangelogs -> debhelper_13.11.4.tar.xz/dh_installchangelogs
Changed
@@ -9,12 +9,13 @@ 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 @@ -44,6 +45,11 @@ 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 =over 4 @@ -87,6 +93,11 @@ 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. @@ -95,63 +106,18 @@ =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_binary_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 $stat8, $stat9, $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 $stat8, $stat9, $output_fn; - - if (should_use_root()) { - chown(0, 0, $output_fn, $output_fn_binary) or error("chown: $!"); - } - - umask $mask; - - return 1; - } - else { - close $input; - return 0; - } -} - init(options => { 'keep|k' => \$dh{K_FLAG}, + 'no-trim' => \$dh{NO_TRIM}, }); my $news_name="NEWS.Debian"; my $changelog_name="changelog.Debian"; +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 = $ARGV0; my $default_upstream_text=$default_upstream; @@ -192,6 +158,107 @@ return; } +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; + } + + 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; + } + + 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; + } + + # 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";
View file
debhelper_13.5.2.tar.xz/dh_installcron -> debhelper_13.11.4.tar.xz/dh_installcron
Changed
@@ -31,6 +31,8 @@ =item debian/I<package>.cron.monthly +=item debian/I<package>.cron.yearly + =item debian/I<package>.cron.hourly =item debian/I<package>.cron.d @@ -56,11 +58,11 @@ init(); -# PROMISE: DH NOOP WITHOUT cron.hourly cron.daily cron.weekly cron.monthly cron.d cli-options() +# 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) { install_dir("$tmp/etc/cron.$type");
View file
debhelper_13.5.2.tar.xz/dh_installdeb -> debhelper_13.11.4.tar.xz/dh_installdeb
Changed
@@ -312,7 +312,7 @@ } # Install debian scripts. - my $package_subst = per_package_subst($package, \%PROVIDED_SUBST); + my $package_subst = debhelper_script_per_package_subst($package, \%PROVIDED_SUBST); foreach my $script (qw{postinst preinst prerm postrm}) { debhelper_script_subst($package, $script, $package_subst); } @@ -416,23 +416,6 @@ } } -sub per_package_subst { - my ($package, $provided_subst) = @_; - my %vars = %{$provided_subst}; - $vars{'PACKAGE'} = $package if not exists($vars{'PACKAGE'}); - for my $var (keys(%{$provided_subst})) { - if ($var !~ $Debian::Debhelper::Dh_Lib::MAINTSCRIPT_TOKEN_REGEX) { - warning("User defined token ${var} does not match ${Debian::Debhelper::Dh_Lib::MAINTSCRIPT_TOKEN_REGEX}"); - error("Invalid provided token ${var}: It cannot be substituted as it does not follow the token name rules"); - } - if ($var =~ m/^pkg.\Q${package}\E.(.+)$/) { - my $new_key = $1; - $vars{$new_key} = $provided_subst->{$var}; - } - } - return \%vars; -} - =head1 SEE ALSO L<debhelper(7)>
View file
debhelper_13.5.2.tar.xz/dh_installdebconf -> debhelper_13.11.4.tar.xz/dh_installdebconf
Changed
@@ -73,11 +73,114 @@ 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})) { @@ -94,7 +197,9 @@ 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 '') {
View file
debhelper_13.5.2.tar.xz/dh_installexamples -> debhelper_13.11.4.tar.xz/dh_installexamples
Changed
@@ -36,6 +36,10 @@ 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)>.
View file
debhelper_13.5.2.tar.xz/dh_installinit -> debhelper_13.11.4.tar.xz/dh_installinit
Changed
@@ -70,8 +70,7 @@ =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.) Only used in compat levels 10 and below. +package build directory. Only used in compat levels 10 and below. =back @@ -366,45 +365,31 @@ } if (! $dh{NOSCRIPTS}) { + 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', - { - 'SCRIPT' => $script, 'INITPARMS' => $params, 'ERROR_HANDLER' => $dh{ERROR_HANDLER}, - 'INVOKE_RCD_PARAMS' => $update_rcd_params, - }, - \%snippet_options); + autoscript($package, 'postinst', 'postinst-init-restart', $replace, \%snippet_options); } else { # update-rc.d, and start script - autoscript($package, 'postinst', 'postinst-init', - { - 'SCRIPT' => $script, 'INITPARMS' => $params, 'ERROR_HANDLER' => $dh{ERROR_HANDLER}, - 'INVOKE_RCD_PARAMS' => $update_rcd_params, - }, - \%snippet_options); - } - - if ($dh{R_FLAG} || $dh{RESTART_AFTER_UPGRADE}) { - # stops script only on remove - autoscript($package, 'prerm', 'prerm-init-norestart', - { - 'SCRIPT' => $script, 'ERROR_HANDLER' => $dh{ERROR_HANDLER}, - 'INVOKE_RCD_PARAMS' => $update_rcd_params, - }, - \%snippet_options); - } - else { - # always stops script - autoscript($package, 'prerm', 'prerm-init', - { - 'SCRIPT' => $script, 'ERROR_HANDLER' => $dh{ERROR_HANDLER}, - 'INVOKE_RCD_PARAMS' => $update_rcd_params, - }, - \%snippet_options); + 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 @@ -414,9 +399,7 @@ } else { # just update-rc.d - autoscript($package,"postinst", "postinst-init-nostart", - { 'SCRIPT' => $script, 'INITPARMS' => $params, 'ERROR_HANDLER' => $dh{ERROR_HANDLER} }, - \%snippet_options); + autoscript($package,"postinst", "postinst-init-nostart", $replace, \%snippet_options); } # removes rc.d links
View file
debhelper_13.5.2.tar.xz/dh_installman -> debhelper_13.11.4.tar.xz/dh_installman
Changed
@@ -210,7 +210,7 @@ close($fd); # Failing that, we can try to get it from the filename. if (!$section) { - ($section) = $basename =~ m/\.(1-9\S*)/; + ($section) = $basename =~ m/\.(1-9\w*)$/; } # Now get the numeric component of the section. @@ -236,6 +236,10 @@ # language code to the filename, so detect that and # redirect to appropriate directory, stripping the code. ($langcode) = $basename =~ m/\.(a-za-z(?:_A-ZA-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}; @@ -253,7 +257,6 @@ my $instpage = "$destdir$instname.$section"; next if -l $instpage; - next if -e _ && compat(5); install_dir($destdir); if ($gz) {
View file
debhelper_13.5.2.tar.xz/dh_installpam -> debhelper_13.11.4.tar.xz/dh_installpam
Changed
@@ -27,7 +27,11 @@ =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 @@ -38,7 +42,7 @@ =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 @@ -53,9 +57,14 @@ 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 '') { - install_dir("$tmp/etc/pam.d"); - install_file($pam,"$tmp/etc/pam.d/".pkgfilename($package)); + install_dir("$tmp/$pamd_dir"); + install_file($pam,"$tmp/$pamd_dir/".pkgfilename($package)); } }
View file
debhelper_13.5.2.tar.xz/dh_installsystemd -> debhelper_13.11.4.tar.xz/dh_installsystemd
Changed
@@ -253,12 +253,12 @@ my @installed; return unless -d $lib_systemd_system; - opendir(my $dh, $lib_systemd_system) or error("Cannot opendir($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 -l $path or -f _; - if (-l _) { + next unless -f $path; + if (-l "$path") { my $dest = basename(readlink($path)); $aliases->{$dest} //= ; push @{$aliases->{$dest}}, $name; @@ -419,7 +419,8 @@ $snippet = 'postinst-systemd-restartnostart'; $replace->{RESTART_ACTION} = 'try-restart'; } else { - $snippet = 'postinst-systemd-start'; + $snippet = 'postinst-systemd-restart'; + $replace->{RESTART_ACTION} = 'restart'; } autoscript($package, 'postinst', $snippet, $replace, \%options); } elsif (!$dh{NO_START}) { @@ -427,13 +428,13 @@ autoscript($package, 'postinst', 'postinst-systemd-start', $replace, \%options); } - if ($dh{R_FLAG} || $dh{RESTART_AFTER_UPGRADE}) { - # stop service only on remove - autoscript($package, 'prerm', 'prerm-systemd-restart', $replace, \%options); - } elsif (!$dh{NO_START}) { - # always stop service - autoscript($package, 'prerm', 'prerm-systemd', $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.
View file
debhelper_13.5.2.tar.xz/dh_installsystemduser -> debhelper_13.11.4.tar.xz/dh_installsystemduser
Changed
@@ -19,10 +19,10 @@ =head1 DESCRIPTION B<dh_installsystemduser> finds the systemd user instance service files -installed by a package and generates F<postinst>, and F<prerm> code -blocks for enabling and disabling the corresponding systemd user -instance services, when the package is installed, updated, or -removed. These snippets are added to the maintainer scripts by +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 @@ -190,7 +190,7 @@ # Generate postinst and prerm code blocks to enable and disable units foreach my $package (@{$dh{DOPACKAGES}}) { - my (@args, @enable_units, %aliases); + my (@args, @start_units, @enable_units, %aliases); my $tmpdir = tmpdir($package); my @units = list_installed_user_units($tmpdir, \%aliases); @@ -240,9 +240,11 @@ 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 @@ -255,6 +257,24 @@ } 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
View file
debhelper_13.5.2.tar.xz/dh_installsysusers -> debhelper_13.11.4.tar.xz/dh_installsysusers
Changed
@@ -87,16 +87,21 @@ } if (! $dh{NOSCRIPTS} && ($sysusers ne '' || -d $sysusers_targetdir)) { - my $has_sysuser = 0; + 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$}; - autoscript($package, 'postinst', 'postinst-sysusers', { 'CONFILE_BASENAME' => $entry }); - $has_sysuser = 1; + push @sysusers_files, $entry; } closedir($dir_fd); - addsubstvar($package, "misc:Depends", "systemd | systemd-standalone-sysusers | systemd-sysusers") - if $has_sysuser; + + 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"); } }
View file
debhelper_13.5.2.tar.xz/dh_installwm -> debhelper_13.11.4.tar.xz/dh_installwm
Changed
@@ -109,13 +109,11 @@ 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", { 'WM' => $wm, 'WMMAN' => "${wmman}.gz" , '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; } } if (not compat(9) and not $nodocs) {
View file
debhelper_13.5.2.tar.xz/dh_md5sums -> debhelper_13.11.4.tar.xz/dh_md5sums
Changed
@@ -35,7 +35,7 @@ =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>
View file
debhelper_13.5.2.tar.xz/dh_perl -> debhelper_13.11.4.tar.xz/dh_perl
Changed
@@ -11,6 +11,7 @@ use Config; use File::Find; use Debian::Debhelper::Dh_Lib; +use constant DISTRO_PERL => $^X; our $VERSION = DH_BUILTIN_VERSION; @@ -128,10 +129,15 @@ return unless -f and (-x _ or /\.pl$/); return unless open(my $fd, '<', $_); - if (read($fd, local $_, 32) and m%^#!\s*(/usr/bin/perl|/usr/bin/env\s+perl)\s%) { + 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($fd); + rewrite_shebang($path) if $rewrite_shebang; }; find({ wanted => $check_script, @@ -151,8 +157,8 @@ # no need to depend on an un-versioned perl-base -- it's # essential - addsubstvar($package, "perl:Depends", $perlarch) - 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 @@ -171,6 +177,14 @@ } } +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)>
View file
debhelper_13.5.2.tar.xz/dh_systemd_enable -> debhelper_13.11.4.tar.xz/dh_systemd_enable
Changed
@@ -50,8 +50,7 @@ =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. =item debian/I<package>.target, debian/I<package>@.target
View file
debhelper_13.5.2.tar.xz/dh_systemd_start -> debhelper_13.11.4.tar.xz/dh_systemd_start
Changed
@@ -246,7 +246,8 @@ $snippet = 'postinst-systemd-restartnostart'; $restart_action = 'try-restart'; } else { - $snippet = 'postinst-systemd-start'; + $snippet = 'postinst-systemd-restart'; + $restart_action = 'restart'; } $sd_autoscript->("postinst", $snippet, $restart_action); } elsif (!$dh{NO_START}) {
View file
debhelper_13.11.4.tar.xz/doc/PROGRAMMING.md
Added
@@ -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. +
View file
debhelper_13.5.2.tar.xz/lib/Debian/Debhelper/Buildsystem.pm -> debhelper_13.11.4.tar.xz/lib/Debian/Debhelper/Buildsystem.pm
Changed
@@ -413,7 +413,7 @@ sub mkdir_builddir { my $this=shift; if ($this->get_builddir()) { - install_dir($this->get_builddir()); + mkdirs($this->get_builddir()); } }
View file
debhelper_13.5.2.tar.xz/lib/Debian/Debhelper/Buildsystem/autoconf.pm -> debhelper_13.11.4.tar.xz/lib/Debian/Debhelper/Buildsystem/autoconf.pm
Changed
@@ -8,7 +8,7 @@ use strict; use warnings; -use Debian::Debhelper::Dh_Lib qw(%dh dpkg_architecture_value sourcepackage compat); +use Debian::Debhelper::Dh_Lib qw(%dh dpkg_architecture_value get_buildoption sourcepackage compat); use parent qw(Debian::Debhelper::Buildsystem::makefile); sub DESCRIPTION { @@ -85,7 +85,13 @@ 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", @_); }
View file
debhelper_13.5.2.tar.xz/lib/Debian/Debhelper/Buildsystem/cmake.pm -> debhelper_13.11.4.tar.xz/lib/Debian/Debhelper/Buildsystem/cmake.pm
Changed
@@ -8,7 +8,7 @@ use strict; use warnings; -use Debian::Debhelper::Dh_Lib qw(%dh compat dpkg_architecture_value error is_cross_compiling get_buildoption); +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( @@ -19,6 +19,7 @@ -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 = ( @@ -87,8 +88,8 @@ 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 - push(@flags, "-DCMAKE_SKIP_RPATH=ON", '-DCMAKE_BUILD_RPATH_USE_ORIGIN=ON') if not compat(13); + # 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}"); @@ -177,4 +178,25 @@ 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, + } + ); + print_and_doit(\%options, 'cmake', '--install', $this->get_buildpath, @_); + } + return 1; +} + 1
View file
debhelper_13.5.2.tar.xz/lib/Debian/Debhelper/Buildsystem/makefile.pm -> debhelper_13.11.4.tar.xz/lib/Debian/Debhelper/Buildsystem/makefile.pm
Changed
@@ -142,11 +142,17 @@ 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 ref($this) eq 'Debian::Debhelper::Buildsystem::makefile' - and is_cross_compiling()) { + 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))) {
View file
debhelper_13.5.2.tar.xz/lib/Debian/Debhelper/Buildsystem/meson.pm -> debhelper_13.11.4.tar.xz/lib/Debian/Debhelper/Buildsystem/meson.pm
Changed
@@ -94,7 +94,7 @@ my %options = ( update_env => { LC_ALL => 'C.UTF-8'}, ); - $this->doit_in_builddir(\%options, "meson", $this->get_source_rel2builddir(), @opts, @_); + $this->doit_in_builddir(\%options, "meson", "setup", $this->get_source_rel2builddir(), @opts, @_); }; if ($@) { if (-e $this->get_buildpath("meson-logs/meson-log.txt")) { @@ -134,6 +134,25 @@ 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 => { + 'LC_ALL' => 'C.UTF-8', + } + ); + $this->doit_in_builddir(\%options, 'meson', 'install', '--destdir', $destdir, @args); + } + return 1; +} + 1
View file
debhelper_13.5.2.tar.xz/lib/Debian/Debhelper/Dh_Getopt.pm -> debhelper_13.11.4.tar.xz/lib/Debian/Debhelper/Dh_Getopt.pm
Changed
@@ -11,7 +11,7 @@ use Debian::Debhelper::Dh_Lib; use Getopt::Long; -my (%exclude_package, %internal_excluded_package, %explicitly_reqested_packages, %profile_enabled_packages, +my (%exclude_package, %internal_excluded_package, %explicitly_requested_packages, %profile_enabled_packages, $profile_excluded_pkg); sub showhelp { @@ -44,7 +44,7 @@ elsif ($option eq 'p' or $option eq 'package') { assert_opt_is_known_package($value, '-p/--package'); %profile_enabled_packages = map { $_ => 1 } getpackages('both') if not %profile_enabled_packages; - $explicitly_reqested_packages{$value} = 1; + $explicitly_requested_packages{$value} = 1; # Silently ignore packages that are not enabled by the # profile. if (exists($profile_enabled_packages{$value})) { @@ -73,7 +73,8 @@ } # Add another item to the exclude list. -sub AddExclude { my($option,$value)=@_; +sub AddExclude { + my($option,$value)=@_; push @{$dh{EXCLUDE}},$value; } @@ -228,7 +229,7 @@ @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"); } } @@ -272,12 +273,10 @@ # 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}) { @@ -292,16 +291,16 @@ if (! defined $dh{DOPACKAGES} || ! @{$dh{DOPACKAGES}}) { if (! $dh{BLOCK_NOOP_WARNINGS}) { my %archs; - if (%explicitly_reqested_packages) { + 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_reqested_packages))) { + for my $pkg (sort(keys(%explicitly_requested_packages))) { if (exists($internal_excluded_package{$pkg}) or not exists($profile_enabled_packages{$pkg})) { - delete($explicitly_reqested_packages{$pkg}); + delete($explicitly_requested_packages{$pkg}); } } - if (not %explicitly_reqested_packages) { + 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); @@ -317,11 +316,11 @@ } 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
View file
debhelper_13.5.2.tar.xz/lib/Debian/Debhelper/Dh_Lib.pm -> debhelper_13.11.4.tar.xz/lib/Debian/Debhelper/Dh_Lib.pm
Changed
@@ -17,7 +17,7 @@ use constant { # Lowest compat level supported - 'MIN_COMPAT_LEVEL' => 5, + 'MIN_COMPAT_LEVEL' => 7, # Lowest compat level that does *not* cause deprecation # warnings 'LOWEST_NON_DEPRECATED_COMPAT_LEVEL' => 10, @@ -54,7 +54,7 @@ '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' => 7, + 'MIN_COMPAT_LEVEL_NOT_SCHEDULED_FOR_REMOVAL' => MIN_COMPAT_LEVEL, }; @@ -124,6 +124,7 @@ package_multiarch package_section package_arch + package_type process_pkg compute_doc_main_package isnative @@ -133,6 +134,7 @@ qw( basename dirname + mkdirs install_file install_prog install_lib @@ -193,6 +195,7 @@ 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 @@ -202,6 +205,7 @@ write_log commit_override_log debhelper_script_subst + debhelper_script_per_package_subst is_make_jobserver_unavailable clean_jobserver_makeflags set_buildflags @@ -225,6 +229,7 @@ (?: - 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: # @@ -372,7 +377,7 @@ # expect. return if not -f 'debian/control'; if (compat(9, 1) || $ENV{DH_INTERNAL_OVERRIDE}) { - write_log(basename($0), @{$dh{DOPACKAGES}}); + write_log($TOOL_NAME, @{$dh{DOPACKAGES}}); } } @@ -484,6 +489,35 @@ 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 { $cmd0 } @cmd or error('exec (for cmd: ' . escape_shell(@cmd) . ") failed: $!"); +} + sub _doit { my (@cmd) = @_; my $options = ref($cmd0) ? shift(@cmd) : undef; @@ -497,29 +531,7 @@ return 1 if $dh{NO_ACT}; my $pid = fork() // error("fork(): $!"); if (not $pid) { - if (defined($options)) { - if (defined(my $dir = $options->{chdir})) { - if ($dir ne '.') { - chdir($dir) or error("chdir(\"${dir}\") failed: $!"); - } - } - open(STDIN, '<', '/dev/null') or error("redirect STDIN failed: $!"); - if (defined(my $output = $options->{stdout})) { - open(STDOUT, '>', $output) or error("redirect STDOUT failed: $!"); - } - 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 { $cmd0 } @cmd; + _post_fork_setup_and_exec(1, $options, @cmd) // error("Assertion error: sub should not return!"); } return waitpid($pid, 0) == $pid && $? == 0; } @@ -528,8 +540,6 @@ my (@cmd) = @_; my $options = ref($cmd0) ? shift(@cmd) : {}; my $cmd_line = escape_shell(@cmd); - use Carp qw(confess); - confess("??") if ref($options) ne 'HASH'; if (defined(my $update_env = $options->{update_env})) { my $need_env = 0; my @params; @@ -560,8 +570,12 @@ sub qx_cmd { my (@cmd) = @_; + my $options = ref($cmd0) ? shift(@cmd) : undef; my ($output, @output); - open(my $fd, '-|', @cmd) or error('fork+exec (' . escape_shell(@cmd) . "): $!"); + 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 { @@ -655,28 +669,42 @@ } } -sub install_dir { - my @to_create = grep { not -d $_ } @_; - return if not @to_create; + +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; } - verbose_print(sprintf('install -d %s', escape_shell(@to_create))) - if $dh{VERBOSE}; - return 1 if $dh{NO_ACT}; + 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(@to_create, { - # 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, - }); + File::Path::make_path(@dirs, \%opts); }; if (my $err = "$@") { $err =~ s/\s+at\s+\S+\s+line\s+\d+\.?\n//; error($err); } + return; +} +
View file
debhelper_13.11.4.tar.xz/lib/Debian/Debhelper/Sequence/installsysusers.pm
Added
@@ -0,0 +1,9 @@ +#!/usr/bin/perl +# Enable dh_installsysusers + +use strict; +use warnings; + +insert_after('dh_install', 'dh_installsysusers'); + +1;
View file
debhelper_13.5.2.tar.xz/lib/Debian/Debhelper/Sequence/root_sequence.pm -> debhelper_13.11.4.tar.xz/lib/Debian/Debhelper/Sequence/root_sequence.pm
Changed
@@ -48,8 +48,8 @@ dh_installinfo dh_installinit }, - $include_if_compat_X_or_newer->(13, 'dh_installtmpfiles'), $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{ @@ -64,8 +64,8 @@ dh_installgsettings }, (!compat(11) ? qw(dh_installinitramfs) : qw()), + (compat(13) ? qw(dh_installalternatives) : qw()), qw{ - dh_installalternatives dh_bugfiles dh_ucf dh_lintian @@ -74,6 +74,9 @@ dh_usrlocal dh_link +}, + (!compat(13) ? qw(dh_installalternatives) : qw()), +qw{ dh_installwm dh_installxfonts dh_strip_nondeterminism
View file
debhelper_13.5.2.tar.xz/man/po4a/po/de.po -> debhelper_13.11.4.tar.xz/man/po4a/po/de.po
Changed
@@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: debhelper 12.9\n" "Report-Msgid-Bugs-To: debhelper@packages.debian.org\n" -"POT-Creation-Date: 2021-08-30 19:48+0000\n" +"POT-Creation-Date: 2022-11-20 19:46+0100\n" "PO-Revision-Date: 2020-02-07 19:21+0100\n" "Last-Translator: Erik Pfannenstein <debianignatz@gmx.de>\n" "Language-Team: German <debian-l10n-german@lists.debian.org>\n" @@ -18,9 +18,10 @@ "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. type: =head1 -#: debhelper.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 +#: 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 @@ -41,19 +42,20 @@ msgstr "debhelper - die Debhelper-Werkzeugsammlung" #. type: =head1 -#: debhelper.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:15 dh_installcron:15 -#: dh_installdeb:15 dh_installdebconf:15 dh_installdirs:15 dh_installdocs:17 +#: 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:17 +#: 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" @@ -69,19 +71,19 @@ "N>I<Paket> B<-P>I<temporäres_Verzeichnis>" #. type: =head1 -#: debhelper.pod:11 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:19 dh_installcron:19 dh_installdeb:19 -#: dh_installdebconf:19 dh_installdirs:19 dh_installdocs:21 +#: 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:21 +#: 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" @@ -670,18 +672,31 @@ #. 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 "" +"Detailreicher Modus: zeigt alle Befehle, die das Paketbauverzeichnis ändern" + +#. 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 "" "Detailreicher Modus: zeigt alle Befehle, die das Paketbauverzeichnis ändern" #. type: =item -#: debhelper.pod:279 dh:266 +#: debhelper.pod:282 dh:307 msgid "B<--no-act>" msgstr "B<--no-act>" #. type: textblock -#: debhelper.pod:281 +#: 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." @@ -690,12 +705,12 @@ "Ergebnis ausgegeben, was der Befehl getan hätte." #. type: =item -#: debhelper.pod:284 +#: debhelper.pod:287 msgid "B<-a>, B<--arch>" msgstr "B<-a>, B<--arch>" #. type: textblock -#: debhelper.pod:286 +#: debhelper.pod:289 msgid "" "Act on architecture dependent packages that should be built for the " "B<DEB_HOST_ARCH> architecture." @@ -704,22 +719,22 @@ "B<DEB_HOST_ARCH> gebaut werden sollen." #. type: =item -#: debhelper.pod:289 +#: debhelper.pod:292 msgid "B<-i>, B<--indep>" msgstr "B<-i>, B<--indep>" #. type: textblock -#: debhelper.pod:291 +#: debhelper.pod:294 msgid "Act on all architecture independent packages." msgstr "wirkt sich auf alle architektur-unabhängigen Pakete aus." #. type: =item -#: debhelper.pod:293 +#: 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:295 +#: 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." @@ -729,27 +744,27 @@ "arbeitet." #. type: =item -#: debhelper.pod:298 +#: debhelper.pod:301 msgid "B<-s>, B<--same-arch>" msgstr "B<-s>, B<--same-arch>" #. type: textblock -#: debhelper.pod:300 +#: debhelper.pod:303 msgid "Deprecated alias of B<-a>." msgstr "missbilligter Alias von B<-a>." #. type: textblock -#: debhelper.pod:302 dh_install:80 dh_install:89 +#: 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:304 +#: 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:306 +#: 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." @@ -758,12 +773,12 @@ "a>, B<-i> oder B<-p> das Paket als ein zu verarbeitendes auflisten." #. type: =item -#: debhelper.pod:309 +#: debhelper.pod:312 msgid "B<--remaining-packages>" msgstr "B<--remaining-packages>" #. type: textblock -#: debhelper.pod:311 +#: debhelper.pod:314
View file
debhelper_13.5.2.tar.xz/man/po4a/po/debhelper.pot -> debhelper_13.11.4.tar.xz/man/po4a/po/debhelper.pot
Changed
@@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2021-08-30 19:48+0000\n" +"POT-Creation-Date: 2022-11-20 19:46+0100\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" @@ -17,9 +17,10 @@ "Content-Transfer-Encoding: 8bit\n" #. type: =head1 -#: debhelper.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 +#: 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 @@ -40,19 +41,20 @@ msgstr "" #. type: =head1 -#: debhelper.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:15 dh_installcron:15 -#: dh_installdeb:15 dh_installdebconf:15 dh_installdirs:15 dh_installdocs:17 +#: 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:17 +#: 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" @@ -66,19 +68,19 @@ msgstr "" #. type: =head1 -#: debhelper.pod:11 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:19 dh_installcron:19 dh_installdeb:19 -#: dh_installdebconf:19 dh_installdirs:19 dh_installdocs:21 +#: 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:21 +#: 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" @@ -528,89 +530,96 @@ #. type: textblock #: debhelper.pod:277 -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 +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:279 dh:266 +#: debhelper.pod:282 dh:307 msgid "B<--no-act>" msgstr "" #. type: textblock -#: debhelper.pod:281 +#: 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:284 +#: debhelper.pod:287 msgid "B<-a>, B<--arch>" msgstr "" #. type: textblock -#: debhelper.pod:286 +#: debhelper.pod:289 msgid "" "Act on architecture dependent packages that should be built for the " "B<DEB_HOST_ARCH> architecture." msgstr "" #. type: =item -#: debhelper.pod:289 +#: debhelper.pod:292 msgid "B<-i>, B<--indep>" msgstr "" #. type: textblock -#: debhelper.pod:291 +#: debhelper.pod:294 msgid "Act on all architecture independent packages." msgstr "" #. type: =item -#: debhelper.pod:293 +#: debhelper.pod:296 msgid "B<-p>I<package>, B<--package=>I<package>" msgstr "" #. type: textblock -#: debhelper.pod:295 +#: 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:298 +#: debhelper.pod:301 msgid "B<-s>, B<--same-arch>" msgstr "" #. type: textblock -#: debhelper.pod:300 +#: debhelper.pod:303 msgid "Deprecated alias of B<-a>." msgstr "" #. type: textblock -#: debhelper.pod:302 dh_install:80 dh_install:89 +#: debhelper.pod:305 dh_install:80 dh_install:89 msgid "This option is removed in compat 12." msgstr "" #. type: =item -#: debhelper.pod:304 +#: debhelper.pod:307 msgid "B<-N>I<package>, B<--no-package=>I<package>" msgstr "" #. type: textblock -#: debhelper.pod:306 +#: 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:309 +#: debhelper.pod:312 msgid "B<--remaining-packages>" msgstr "" #. type: textblock -#: debhelper.pod:311 +#: 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 " @@ -620,22 +629,22 @@ msgstr "" #. type: =item -#: debhelper.pod:317 +#: debhelper.pod:320 msgid "B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>" msgstr ""
View file
debhelper_13.5.2.tar.xz/man/po4a/po/es.po -> debhelper_13.11.4.tar.xz/man/po4a/po/es.po
Changed
@@ -31,7 +31,7 @@ msgstr "" "Project-Id-Version: debhelper 9.20120609\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-30 19:48+0000\n" +"POT-Creation-Date: 2022-11-20 19:46+0100\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,9 +44,10 @@ # type: =head1 #. type: =head1 -#: debhelper.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 +#: 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 @@ -69,19 +70,20 @@ # type: =head1 #. type: =head1 -#: debhelper.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:15 dh_installcron:15 -#: dh_installdeb:15 dh_installdebconf:15 dh_installdirs:15 dh_installdocs:17 +#: 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:17 +#: 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" @@ -103,19 +105,19 @@ # type: =head1 #. type: =head1 -#: debhelper.pod:11 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:19 dh_installcron:19 dh_installdeb:19 -#: dh_installdebconf:19 dh_installdirs:19 dh_installdocs:21 +#: 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:21 +#: 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" @@ -644,21 +646,36 @@ # type: textblock #. 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 "" +"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:279 dh:266 +#: debhelper.pod:282 dh:307 msgid "B<--no-act>" msgstr "B<--no-act>" # type: textblock #. type: textblock -#: debhelper.pod:281 +#: 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." @@ -668,13 +685,13 @@ # type: =item #. type: =item -#: debhelper.pod:284 +#: debhelper.pod:287 msgid "B<-a>, B<--arch>" msgstr "B<-a>, B<--arch>" # type: textblock #. type: textblock -#: debhelper.pod:286 +#: debhelper.pod:289 #, fuzzy #| msgid "" #| "Act on architecture dependent packages that should be built for the build " @@ -688,25 +705,25 @@ # type: =item #. type: =item -#: debhelper.pod:289 +#: debhelper.pod:292 msgid "B<-i>, B<--indep>" msgstr "B<-i>, B<--indep>" # type: textblock #. type: textblock -#: debhelper.pod:291 +#: 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:293 +#: 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:295 +#: 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." @@ -717,29 +734,29 @@ # type: =item #. type: =item -#: debhelper.pod:298 +#: debhelper.pod:301 msgid "B<-s>, B<--same-arch>" msgstr "B<-s>, B<--same-arch>" #. type: textblock -#: debhelper.pod:300 +#: debhelper.pod:303 msgid "Deprecated alias of B<-a>." msgstr "" #. type: textblock -#: debhelper.pod:302 dh_install:80 dh_install:89 +#: debhelper.pod:305 dh_install:80 dh_install:89 msgid "This option is removed in compat 12." msgstr "" # type: =item #. type: =item -#: debhelper.pod:304 +#: 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:306 +#: 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." @@ -749,12 +766,12 @@
View file
debhelper_13.5.2.tar.xz/man/po4a/po/fr.po -> debhelper_13.11.4.tar.xz/man/po4a/po/fr.po
Changed
@@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: debhelper manpages\n" -"POT-Creation-Date: 2021-08-30 19:48+0000\n" +"POT-Creation-Date: 2022-11-20 19:46+0100\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" @@ -19,9 +19,10 @@ # type: =head1 #. type: =head1 -#: debhelper.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 +#: 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 @@ -44,19 +45,20 @@ # type: =head1 #. type: =head1 -#: debhelper.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:15 dh_installcron:15 -#: dh_installdeb:15 dh_installdebconf:15 dh_installdirs:15 dh_installdocs:17 +#: 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:17 +#: 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" @@ -74,19 +76,19 @@ # type: =head1 #. type: =head1 -#: debhelper.pod:11 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:19 dh_installcron:19 dh_installdeb:19 -#: dh_installdebconf:19 dh_installdirs:19 dh_installdocs:21 +#: 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:21 +#: 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" @@ -694,21 +696,36 @@ # type: textblock #. 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 "" +"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:279 dh:266 +#: debhelper.pod:282 dh:307 msgid "B<--no-act>" msgstr "B<--no-act>" # type: textblock #. type: textblock -#: debhelper.pod:281 +#: 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." @@ -719,13 +736,13 @@ # type: =item #. type: =item -#: debhelper.pod:284 +#: debhelper.pod:287 msgid "B<-a>, B<--arch>" msgstr "B<-a>, B<--arch>" # type: textblock #. type: textblock -#: debhelper.pod:286 +#: debhelper.pod:289 msgid "" "Act on architecture dependent packages that should be built for the " "B<DEB_HOST_ARCH> architecture." @@ -734,25 +751,25 @@ # type: =item #. type: =item -#: debhelper.pod:289 +#: debhelper.pod:292 msgid "B<-i>, B<--indep>" msgstr "B<-i>, B<--indep>" # type: textblock #. type: textblock -#: debhelper.pod:291 +#: 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:293 +#: 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:295 +#: 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." @@ -762,29 +779,29 @@ # type: =item #. type: =item -#: debhelper.pod:298 +#: debhelper.pod:301 msgid "B<-s>, B<--same-arch>" msgstr "B<-s>, B<--same-arch>" #. type: textblock -#: debhelper.pod:300 +#: debhelper.pod:303 msgid "Deprecated alias of B<-a>." msgstr "Alias obsolète pour B<-a>." #. type: textblock -#: debhelper.pod:302 dh_install:80 dh_install:89 +#: 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:304 +#: 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:306 +#: 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." @@ -794,12 +811,12 @@
View file
debhelper_13.5.2.tar.xz/man/po4a/po/ja.po -> debhelper_13.11.4.tar.xz/man/po4a/po/ja.po
Changed
@@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: debhelper 9.20141107\n" -"POT-Creation-Date: 2021-08-30 19:48+0000\n" +"POT-Creation-Date: 2022-11-20 19:46+0100\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" @@ -17,9 +17,10 @@ "Last-Reviewer: Hideki Yamane <henrich@debian.org>\n" #. type: =head1 -#: debhelper.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 +#: 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 @@ -40,19 +41,20 @@ msgstr "debhelper - debhelper 関連ツール群" #. type: =head1 -#: debhelper.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:15 dh_installcron:15 -#: dh_installdeb:15 dh_installdebconf:15 dh_installdirs:15 dh_installdocs:17 +#: 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:17 +#: 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" @@ -68,19 +70,19 @@ "N>I<package> B<-P>I<tmpdir>" #. type: =head1 -#: debhelper.pod:11 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:19 dh_installcron:19 dh_installdeb:19 -#: dh_installdebconf:19 dh_installdirs:19 dh_installdocs:21 +#: 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:21 +#: 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" @@ -584,19 +586,33 @@ #. 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 "" -"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 "" "冗長出力モード。パッケージビルドディレクトリを変更するようなコマンドを全て表" "示します。" #. type: =item -#: debhelper.pod:279 dh:266 +#: debhelper.pod:282 dh:307 msgid "B<--no-act>" msgstr "B<--no-act>" #. type: textblock -#: debhelper.pod:281 +#: 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." @@ -605,12 +621,12 @@ "行うかが出力されます。" #. type: =item -#: debhelper.pod:284 +#: debhelper.pod:287 msgid "B<-a>, B<--arch>" msgstr "B<-a>, B<--arch>" #. type: textblock -#: debhelper.pod:286 +#: debhelper.pod:289 msgid "" "Act on architecture dependent packages that should be built for the " "B<DEB_HOST_ARCH> architecture." @@ -619,22 +635,22 @@ "るように動作します。" #. type: =item -#: debhelper.pod:289 +#: debhelper.pod:292 msgid "B<-i>, B<--indep>" msgstr "B<-i>, B<--indep>" #. type: textblock -#: debhelper.pod:291 +#: debhelper.pod:294 msgid "Act on all architecture independent packages." msgstr "全てのアーキテクチャ非依存パッケージに対して処理を行います。" #. type: =item -#: debhelper.pod:293 +#: 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:295 +#: 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." @@ -643,29 +659,29 @@ "debhelper に処理させる際には、繰り返し列挙して指定してください。" #. type: =item -#: debhelper.pod:298 +#: debhelper.pod:301 msgid "B<-s>, B<--same-arch>" msgstr "B<-s>, B<--same-arch>" #. type: textblock -#: debhelper.pod:300 +#: debhelper.pod:303 msgid "Deprecated alias of B<-a>." msgstr "廃止された B<-a> のエイリアスです。" #. type: textblock -#: debhelper.pod:302 dh_install:80 dh_install:89 +#: 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:304 +#: 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:306 +#: 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." @@ -674,12 +690,12 @@ "指定されているパッケージについては処理を行わないようにします。" #. type: =item -#: debhelper.pod:309 +#: debhelper.pod:312 msgid "B<--remaining-packages>" msgstr "B<--remaining-packages>"
View file
debhelper_13.5.2.tar.xz/man/po4a/po/pt.po -> debhelper_13.11.4.tar.xz/man/po4a/po/pt.po
Changed
@@ -2,13 +2,13 @@ # 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 to 2021. +# Américo Monteiro <a_monteiro@gmx.com>, 2014 to 2022. msgid "" msgstr "" -"Project-Id-Version: debhelper 13.3.2\n" +"Project-Id-Version: debhelper 13.9.1\n" "Report-Msgid-Bugs-To: debhelper@packages.debian.org\n" -"POT-Creation-Date: 2021-08-30 19:48+0000\n" -"PO-Revision-Date: 2021-02-01 14:37+0000\n" +"POT-Creation-Date: 2022-11-20 19:46+0100\n" +"PO-Revision-Date: 2022-09-05 22:19+0100\n" "Last-Translator: Américo Monteiro <a_monteiro@gmx.com>\n" "Language-Team: Portuguese <>\n" "Language: pt\n" @@ -16,12 +16,13 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 2.0\n" +"X-Generator: Lokalize 20.12.0\n" #. type: =head1 -#: debhelper.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 +#: 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 @@ -42,19 +43,20 @@ msgstr "debhelper - a suite de ferramentas debhelper" #. type: =head1 -#: debhelper.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:15 dh_installcron:15 -#: dh_installdeb:15 dh_installdebconf:15 dh_installdirs:15 dh_installdocs:17 +#: 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:17 +#: 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" @@ -70,19 +72,19 @@ "N>I<package> B<-P>I<tmpdir>" #. type: =head1 -#: debhelper.pod:11 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:19 dh_installcron:19 dh_installdeb:19 -#: dh_installdebconf:19 dh_installdirs:19 dh_installdocs:21 +#: 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:21 +#: 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" @@ -273,9 +275,9 @@ "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:94 @@ -661,19 +663,33 @@ #. 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 "" +"Modo detalhado: mostra todos os comandos que modificam o directório de " +"compilação de pacotes." + +#. 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 detalhado: mostra todos os comandos que modificam o directório de " "compilação de pacotes." #. type: =item -#: debhelper.pod:279 dh:266 +#: debhelper.pod:282 dh:307 msgid "B<--no-act>" msgstr "B<--no-act>" #. type: textblock -#: debhelper.pod:281 +#: 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." @@ -682,12 +698,12 @@ "mostra o que iria fazer." #. type: =item -#: debhelper.pod:284 +#: debhelper.pod:287 msgid "B<-a>, B<--arch>" msgstr "B<-a>, B<--arch>" #. type: textblock -#: debhelper.pod:286 +#: debhelper.pod:289 msgid "" "Act on architecture dependent packages that should be built for the " "B<DEB_HOST_ARCH> architecture." @@ -696,22 +712,22 @@ "arquitectura de compilação B<DEB_HOST_ARCH>." #. type: =item -#: debhelper.pod:289 +#: debhelper.pod:292 msgid "B<-i>, B<--indep>" msgstr "B<-i>, B<--indep>" #. type: textblock -#: debhelper.pod:291 +#: debhelper.pod:294 msgid "Act on all architecture independent packages." msgstr "Actua em todos os pacotes independentes da arquitectura." #. type: =item -#: debhelper.pod:293 +#: 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:295 +#: 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." @@ -720,27 +736,27 @@ "vezes para fazer o debhelper operar num determinado conjunto de pacotes." #. type: =item -#: debhelper.pod:298 +#: debhelper.pod:301 msgid "B<-s>, B<--same-arch>" msgstr "B<-s>, B<--same-arch>" #. type: textblock -#: debhelper.pod:300 +#: debhelper.pod:303 msgid "Deprecated alias of B<-a>." msgstr "Alias descontinuado de B<-a>." #. type: textblock -#: debhelper.pod:302 dh_install:80 dh_install:89
View file
debhelper_13.5.2.tar.xz/man/po4a/po4a.cfg -> debhelper_13.11.4.tar.xz/man/po4a/po4a.cfg
Changed
@@ -6,6 +6,7 @@ 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
View file
debhelper_13.5.2.tar.xz/t/Test/DH.pm -> debhelper_13.11.4.tar.xz/t/Test/DH.pm
Changed
@@ -44,7 +44,7 @@ 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 + create_empty_file readlines copy_file error find_script non_deprecated_compat_levels each_compat_from_x_to_and_incl_y_subtest ); @@ -54,6 +54,13 @@ 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; @@ -100,7 +107,7 @@ debian/changelog ); for my $file (@files) { - install_file($file, "${dir}/${file}"); + copy_file($file, "${dir}/${file}"); } if (@::TEST_DH_EXTRA_TEMPLATE_FILES) { my $test_dir = ($TEST_DIR //= dirname($0)); @@ -109,9 +116,9 @@ for my $file (@::TEST_DH_EXTRA_TEMPLATE_FILES) { if (index($file, '/') > -1) { my $install_dir = dirname($file); - install_dir($install_dir); + mkdirs($install_dir); } - install_file("${actual_dir}/${file}", "${dir}/${file}"); + copy_file("${actual_dir}/${file}", "${dir}/${file}"); } } }
View file
debhelper_13.5.2.tar.xz/t/dh_install/04-sourcedir.t -> debhelper_13.11.4.tar.xz/t/dh_install/04-sourcedir.t
Changed
@@ -9,34 +9,10 @@ use File::Path qw(remove_tree make_path); use Debian::Debhelper::Dh_Lib qw(!dirname); -plan(tests => 6); +plan(tests => 3); -each_compat_up_to_and_incl_subtest(6, sub { - my ($compat) = @_; - # debian/tmp explicitly specified in filenames in older compat level - 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"); - ok(!-e "debian/debhelper/usr/bin/bar"); - remove_tree('debian/debhelper', 'debian/tmp'); -}); - -each_compat_up_to_and_incl_subtest(6, sub { - my ($compat) = @_; - # --sourcedir=debian/tmp in older compat level - 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_from_and_above_subtest(7, sub { +each_compat_subtest { my ($compat) = @_; # redundant --sourcedir=debian/tmp in v7+ make_path('debian/tmp/usr/bin'); @@ -46,9 +22,9 @@ ok(-e "debian/debhelper/usr/bin/foo"); ok(! -e "debian/debhelper/usr/bin/bar"); remove_tree('debian/debhelper', 'debian/tmp'); -}); +}; -each_compat_from_and_above_subtest(7, sub { +each_compat_subtest { my ($compat) = @_; # #534565: fallback use of debian/tmp in v7+ make_path('debian/tmp/usr/bin'); @@ -58,20 +34,7 @@ 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_up_to_and_incl_subtest(6, sub { - my ($compat) = @_; - # no fallback to debian/tmp before 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({ 'quiet' => 1 }, 'dh_install', 'usr')); - 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) = @_;
View file
debhelper_13.11.4.tar.xz/t/dh_installchangelogs
Added
+(directory)
View file
debhelper_13.11.4.tar.xz/t/dh_installchangelogs/debian
Added
+(directory)
View file
debhelper_13.11.4.tar.xz/t/dh_installchangelogs/debian/control
Added
@@ -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
View file
debhelper_13.11.4.tar.xz/t/dh_installchangelogs/dh_installchangelogs.t
Added
@@ -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($entries0, $entries_orig1); + 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($entries0, $entries_orig1); + 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);
View file
debhelper_13.5.2.tar.xz/t/dh_installinit/dh_installinit.t -> debhelper_13.11.4.tar.xz/t/dh_installinit/dh_installinit.t
Changed
@@ -36,7 +36,7 @@ ok(run_dh_tool('dh_clean')); make_path(qw(debian/foo/lib/systemd/system/ debian/bar debian/baz)); - install_file('debian/foo.service', 'debian/foo/lib/systemd/system/foo.service'); + 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'));
View file
debhelper_13.5.2.tar.xz/t/dh_installman/01-basics.t -> debhelper_13.11.4.tar.xz/t/dh_installman/01-basics.t
Changed
@@ -29,6 +29,9 @@ 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 { @@ -36,16 +39,26 @@ 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)) { + 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-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'); }; @@ -54,18 +67,28 @@ 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)) { + 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'); } - install_dir('debian/debhelper/usr/share/man/man1'); - install_file('generated-manpages/manpage-uncompressed.1', 'debian/debhelper/usr/share/man/man1/manpage-uncompressed.1'); - install_file('generated-manpages/manpage-compressed.1.gz', 'debian/debhelper/usr/share/man/man1/manpage-compressed.1.gz'); + 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'); };
View file
debhelper_13.11.4.tar.xz/t/dh_installman/libmanpage.so.1.2.3.pod
Added
@@ -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
View file
debhelper_13.11.4.tar.xz/t/dh_installman/libmanpage.so.9.2.3
Added
@@ -0,0 +1,1 @@ +.so man1/manpage-uncompressed.1
View file
debhelper_13.11.4.tar.xz/t/dh_installman/manpage-perl.pod
Added
@@ -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
View file
debhelper_13.11.4.tar.xz/t/dh_installpam
Added
+(directory)
View file
debhelper_13.11.4.tar.xz/t/dh_installpam/debian
Added
+(directory)
View file
debhelper_13.11.4.tar.xz/t/dh_installpam/debian/changelog
Added
@@ -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
View file
debhelper_13.11.4.tar.xz/t/dh_installpam/debian/control
Added
@@ -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
View file
debhelper_13.11.4.tar.xz/t/dh_installpam/debian/foo.pam
Added
@@ -0,0 +1,1 @@ +@include common-auth
View file
debhelper_13.11.4.tar.xz/t/dh_installpam/dh_installpam.t
Added
@@ -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')); +});
View file
debhelper_13.5.2.tar.xz/t/dh_installsystemd/dh_installsystemd.t -> debhelper_13.11.4.tar.xz/t/dh_installsystemd/dh_installsystemd.t
Changed
@@ -14,7 +14,7 @@ my ($path, $content) = @_; my $dir = dirname($path); - install_dir($dir); + mkdirs($dir); open(my $fd, '>>', $path) or error("open($path) failed: $!"); print {$fd} $content . '\n'; @@ -22,10 +22,9 @@ } sub unit_is_enabled { - my ($package, $unit, $num_enables, $num_masks) = @_; + my ($package, $unit, $num_enables) = @_; my @output; my $matches; - $num_masks = $num_masks // $num_enables; 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" @@ -33,10 +32,6 @@ # 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)"); - my @postrm_snippets = find_script($package, 'postrm'); - @output=`cat @postrm_snippets` if @postrm_snippets; - $matches = grep { m{deb-systemd-helper mask.*'\Q$unit\E\.service'} } @output; - ok($matches == $num_masks) or diag("$unit appears to have been masked $matches times (expected $num_masks)"); } sub unit_is_started { @@ -46,7 +41,7 @@ $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 restart .*'\Q$unit\E.service'} } @output; + $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; @@ -111,7 +106,7 @@ ok(run_dh_tool('dh_clean')); make_path('debian/foo/lib/systemd/system/'); - install_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service'); + 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')); @@ -124,7 +119,7 @@ # lib -> usr/lib (if we ever support that) make_path('debian/foo/lib/systemd/system/'); - install_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service'); + 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')); @@ -137,8 +132,8 @@ # 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/'); - install_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service'); - install_file('debian/foo2.service', 'debian/foo/lib/systemd/system/bar.service'); + 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'); @@ -150,7 +145,7 @@ ok(run_dh_tool('dh_clean')); make_path('debian/foo/lib/systemd/system/'); - install_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service'); + 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')); @@ -161,7 +156,7 @@ ok(run_dh_tool('dh_clean')); make_path('debian/foo/lib/systemd/system/'); - install_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service'); + 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'); @@ -173,12 +168,12 @@ ok(run_dh_tool('dh_clean')); make_path('debian/foo/lib/systemd/system/'); - install_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service'); + 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, 1); # Disabled units are still masked on removal + 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); @@ -188,13 +183,13 @@ 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 restart .*foo.service} } `cat @foo_postinst` : -1; + 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/'); - install_file('debian/foo.service', 'debian/foo/lib/systemd/system/foo\x2dfuse.service'); + 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); @@ -202,7 +197,7 @@ # --name flag #870768 make_path('debian/foo/lib/systemd/system/'); - install_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service'); + 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); @@ -216,7 +211,7 @@ ok(run_dh_tool('dh_clean')); make_path('debian/foo/lib/systemd/system/'); - install_file('debian/foo.service', 'debian/foo/lib/systemd/system/target.service'); + 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); @@ -229,7 +224,7 @@ each_compat_up_to_and_incl_subtest(11, sub { make_path('debian/foo/lib/systemd/system/'); make_path('debian/foo/etc/init.d/'); - install_file('debian/foo.service', 'debian/foo/lib/systemd/system/target.service'); + 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')); @@ -246,7 +241,7 @@ each_compat_from_and_above_subtest(12, sub { make_path('debian/foo/lib/systemd/system/'); make_path('debian/foo/etc/init.d/'); - install_file('debian/foo.service', 'debian/foo/lib/systemd/system/target.service'); + 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'));
View file
debhelper_13.5.2.tar.xz/t/dh_installsystemd/dh_systemd.t -> debhelper_13.11.4.tar.xz/t/dh_installsystemd/dh_systemd.t
Changed
@@ -18,19 +18,15 @@ plan(tests => 1); sub unit_is_enabled { - my ($package, $unit, $num_enables, $num_masks) = @_; + my ($package, $unit, $num_enables) = @_; my @output; my $matches; - $num_masks = $num_masks // $num_enables; @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)"); - @output=`cat debian/$package.postrm.debhelper`; - $matches = grep { m{deb-systemd-helper mask.*'\Q$unit\E\.service'} } @output; - ok($matches == $num_masks) or diag("$unit appears to have been masked $matches times (expected $num_masks)"); } sub unit_is_started { my ($package, $unit, $num_starts, $num_stops) = @_; @@ -38,7 +34,7 @@ my $matches; $num_stops = $num_stops // $num_starts; @output=`cat debian/$package.postinst.debhelper`; - $matches = grep { m{deb-systemd-invoke restart .*'\Q$unit\E.service'} } @output; + $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; @@ -58,7 +54,7 @@ ok(run_dh_tool('dh_clean')); make_path('debian/foo/lib/systemd/system/'); - install_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service'); + 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"); @@ -70,7 +66,7 @@ ok(run_dh_tool('dh_clean')); make_path('debian/foo/lib/systemd/system/'); - install_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service'); + 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"); @@ -82,7 +78,7 @@ ok(run_dh_tool('dh_clean')); make_path('debian/foo/lib/systemd/system/'); - install_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service'); + 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')); @@ -95,28 +91,28 @@ ok(run_dh_tool('dh_clean')); make_path('debian/foo/lib/systemd/system/'); - install_file('debian/foo2.service', 'debian/foo/lib/systemd/system/foo2.service'); + 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, 1); # Disabled units are still masked on removal + 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/'); - install_file('debian/foo.service', 'debian/foo/lib/systemd/system/foo.service'); + 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 restart .*foo.service} } `cat debian/foo.postinst.debhelper`; + 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/'); - install_file('debian/foo.service', 'debian/foo/lib/systemd/system/foo\x2dfuse.service'); + 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);
View file
debhelper_13.5.2.tar.xz/t/dh_installsystemduser/dh_installsystemduser.t -> debhelper_13.11.4.tar.xz/t/dh_installsystemduser/dh_installsystemduser.t
Changed
@@ -41,22 +41,45 @@ # 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 @postrm = read_script($package, 'postrm'); - $matches = grep { m{deb-systemd-helper( --\w+)* --user mask.*'\Q$unit'} } @postrm; - is($matches, $enabled, "$unit $verb masked"); + 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/'); - install_file('debian/foo.user.service', 'debian/foo/usr/lib/systemd/user/bar.service'); + 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')); @@ -64,6 +87,13 @@ 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')); @@ -71,5 +101,12 @@ 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')); };
View file
debhelper_13.5.2.tar.xz/t/dh_link/03-894229.t -> debhelper_13.11.4.tar.xz/t/dh_link/03-894229.t
Changed
@@ -40,7 +40,7 @@ remove_tree('debian/debhelper/a/b/c'); - install_dir('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
View file
debhelper_13.5.2.tar.xz/t/dh_usrlocal/01-basic.t -> debhelper_13.11.4.tar.xz/t/dh_usrlocal/01-basic.t
Changed
@@ -43,7 +43,7 @@ rm_files(@scripts); remove_tree('debian/debhelper'); - install_dir(map { "debian/debhelper/$_" } @{$install_dirs}); + mkdirs(map { "debian/debhelper/$_" } @{$install_dirs}); ok(run_dh_tool('dh_usrlocal'));
View file
debhelper_13.5.2.tar.xz/doc/PROGRAMMING
Deleted
@@ -1,604 +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. - -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 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 --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
View file
debhelper_13.5.2.tar.xz/empty
Deleted
-(directory)
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2