diff -Nru debhelper-9.20160115ubuntu3/autoscripts/postinst-init debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-init --- debhelper-9.20160115ubuntu3/autoscripts/postinst-init 2016-01-19 18:54:31.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-init 2016-10-01 07:53:35.000000000 +0000 @@ -1,8 +1,6 @@ if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ]; then if [ -x "/etc/init.d/#SCRIPT#" ]; then update-rc.d #SCRIPT# #INITPARMS# >/dev/null - fi - if [ -x "/etc/init.d/#SCRIPT#" ] || [ -e "/etc/init/#SCRIPT#.conf" ]; then invoke-rc.d #SCRIPT# start || #ERROR_HANDLER# fi fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/postinst-init-restart debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-init-restart --- debhelper-9.20160115ubuntu3/autoscripts/postinst-init-restart 2016-01-19 18:54:31.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-init-restart 2016-10-01 07:53:35.000000000 +0000 @@ -1,8 +1,6 @@ if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ]; then if [ -x "/etc/init.d/#SCRIPT#" ]; then update-rc.d #SCRIPT# #INITPARMS# >/dev/null - fi - if [ -x "/etc/init.d/#SCRIPT#" ] || [ -e "/etc/init/#SCRIPT#.conf" ]; then if [ -n "$2" ]; then _dh_action=restart else diff -Nru debhelper-9.20160115ubuntu3/autoscripts/postinst-makeshlibs debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-makeshlibs --- debhelper-9.20160115ubuntu3/autoscripts/postinst-makeshlibs 2016-01-15 20:19:12.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-makeshlibs 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -if [ "$1" = "configure" ]; then - ldconfig -fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/postinst-moveconffile debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-moveconffile --- debhelper-9.20160115ubuntu3/autoscripts/postinst-moveconffile 2016-01-06 15:55:12.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-moveconffile 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -if [ "$1" = configure ]; then - if [ -e "#OLD#" ]; then - echo "Preserving user changes to #NEW# ..." - if [ -e "#NEW#" ]; then - mv -f "#NEW#" "#NEW#.dpkg-new" - fi - mv -f "#OLD#" "#NEW#" - fi -fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/postinst-suid debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-suid --- debhelper-9.20160115ubuntu3/autoscripts/postinst-suid 2014-11-16 15:43:09.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-suid 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -if [ "$1" = "configure" ]; then - if which suidregister >/dev/null 2>&1 && [ -e /etc/suid.conf ]; then - suidregister -s #PACKAGE# /#FILE# #OWNER# #GROUP# #PERMS# - elif [ -e /#FILE# ]; then - chown #OWNER#:#GROUP# /#FILE# - chmod #PERMS# /#FILE# - fi -fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/postinst-systemd-dont-enable debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-systemd-dont-enable --- debhelper-9.20160115ubuntu3/autoscripts/postinst-systemd-dont-enable 1970-01-01 00:00:00.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-systemd-dont-enable 2016-10-01 08:13:53.000000000 +0000 @@ -0,0 +1,13 @@ +if deb-systemd-helper debian-installed #UNITFILE#; then + # This will only remove masks created by d-s-h on package removal. + deb-systemd-helper unmask #UNITFILE# >/dev/null || true + + if deb-systemd-helper --quiet was-enabled #UNITFILE#; then + # Create new symlinks, if any. + deb-systemd-helper enable #UNITFILE# >/dev/null || true + fi +fi + +# Update the statefile to add new symlinks (if any), which need to be cleaned +# up on purge. Also remove old symlinks. +deb-systemd-helper update-state #UNITFILE# >/dev/null || true diff -Nru debhelper-9.20160115ubuntu3/autoscripts/postinst-systemd-enable debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-systemd-enable --- debhelper-9.20160115ubuntu3/autoscripts/postinst-systemd-enable 1970-01-01 00:00:00.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-systemd-enable 2016-10-01 08:13:53.000000000 +0000 @@ -0,0 +1,13 @@ +# This will only remove masks created by d-s-h on package removal. +deb-systemd-helper unmask #UNITFILE# >/dev/null || true + +# was-enabled defaults to true, so new installations run enable. +if deb-systemd-helper --quiet was-enabled #UNITFILE#; then + # Enables the unit on first installation, creates new + # symlinks on upgrades if the unit file has changed. + deb-systemd-helper enable #UNITFILE# >/dev/null || true +else + # Update the statefile to add new symlinks (if any), which need to be + # cleaned up on purge. Also remove old symlinks. + deb-systemd-helper update-state #UNITFILE# >/dev/null || true +fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/postinst-systemd-restart debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-systemd-restart --- debhelper-9.20160115ubuntu3/autoscripts/postinst-systemd-restart 1970-01-01 00:00:00.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-systemd-restart 2016-10-01 08:13:53.000000000 +0000 @@ -0,0 +1,9 @@ +if [ -d /run/systemd/system ]; then + systemctl --system daemon-reload >/dev/null || true + if [ -n "$2" ]; then + _dh_action=try-restart + else + _dh_action=start + fi + deb-systemd-invoke $_dh_action #UNITFILES# >/dev/null || true +fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/postinst-systemd-start debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-systemd-start --- debhelper-9.20160115ubuntu3/autoscripts/postinst-systemd-start 1970-01-01 00:00:00.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postinst-systemd-start 2016-10-01 08:13:53.000000000 +0000 @@ -0,0 +1,4 @@ +if [ -d /run/systemd/system ]; then + systemctl --system daemon-reload >/dev/null || true + deb-systemd-invoke start #UNITFILES# >/dev/null || true +fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/postrm-makeshlibs debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postrm-makeshlibs --- debhelper-9.20160115ubuntu3/autoscripts/postrm-makeshlibs 2016-01-15 20:19:12.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postrm-makeshlibs 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -if [ "$1" = "remove" ]; then - ldconfig -fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/postrm-suid debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postrm-suid --- debhelper-9.20160115ubuntu3/autoscripts/postrm-suid 2014-11-16 15:43:09.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postrm-suid 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -if [ "$1" = remove ] && [ -e /etc/suid.conf ] && \ - which suidunregister >/dev/null 2>&1; then - suidunregister -s #PACKAGE# /#FILE# -fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/postrm-systemd debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postrm-systemd --- debhelper-9.20160115ubuntu3/autoscripts/postrm-systemd 1970-01-01 00:00:00.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postrm-systemd 2016-10-01 08:13:53.000000000 +0000 @@ -0,0 +1,12 @@ +if [ "$1" = "remove" ]; then + if [ -x "/usr/bin/deb-systemd-helper" ]; then + deb-systemd-helper mask #UNITFILES# >/dev/null + fi +fi + +if [ "$1" = "purge" ]; then + if [ -x "/usr/bin/deb-systemd-helper" ]; then + deb-systemd-helper purge #UNITFILES# >/dev/null + deb-systemd-helper unmask #UNITFILES# >/dev/null + fi +fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/postrm-systemd-reload-only debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postrm-systemd-reload-only --- debhelper-9.20160115ubuntu3/autoscripts/postrm-systemd-reload-only 1970-01-01 00:00:00.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/postrm-systemd-reload-only 2016-10-01 08:13:53.000000000 +0000 @@ -0,0 +1,3 @@ +if [ -d /run/systemd/system ]; then + systemctl --system daemon-reload >/dev/null || true +fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/preinst-moveconffile debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/preinst-moveconffile --- debhelper-9.20160115ubuntu3/autoscripts/preinst-moveconffile 2016-01-06 15:55:12.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/preinst-moveconffile 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -if [ "$1" = install ] || [ "$1" = upgrade ]; then - if [ -e "#OLD#" ]; then - if [ "`md5sum \"#OLD#\" | sed -e \"s/ .*//\"`" = \ - "`dpkg-query -W -f='${Conffiles}' #PACKAGE# | sed -n -e \"\\\\' #OLD# '{s/ obsolete$//;s/.* //p}\"`" ] - then - rm -f "#OLD#" - fi - fi -fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/preinst-sgmlcatalog debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/preinst-sgmlcatalog --- debhelper-9.20160115ubuntu3/autoscripts/preinst-sgmlcatalog 2014-11-16 15:43:09.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/preinst-sgmlcatalog 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -if test -f #CENTRALCAT# -a "(" "$1" = "upgrade" -o "$1" = "install" -a -n "$2" ")" && - ! dpkg-query -S #CENTRALCAT# >/dev/null 2>&1; then - # If the dpkg-query command returns non-zero, the central catalog is - # not owned by any package. This is due to an old behaviour of - # debhelper. Now that file becomes a conffile. In order to avoid a - # question during installation, we remove the old non-conffile. - mv #CENTRALCAT# #CENTRALCAT#.old -fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/prerm-init debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/prerm-init --- debhelper-9.20160115ubuntu3/autoscripts/prerm-init 2016-01-19 18:54:31.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/prerm-init 2014-11-16 15:43:09.000000000 +0000 @@ -1,3 +1,3 @@ -if [ -x "/etc/init.d/#SCRIPT#" ] || [ -e "/etc/init/#SCRIPT#.conf" ]; then +if [ -x "/etc/init.d/#SCRIPT#" ]; then invoke-rc.d #SCRIPT# stop || #ERROR_HANDLER# fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/prerm-init-norestart debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/prerm-init-norestart --- debhelper-9.20160115ubuntu3/autoscripts/prerm-init-norestart 2016-01-19 18:54:31.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/prerm-init-norestart 2014-11-16 15:43:09.000000000 +0000 @@ -1,4 +1,3 @@ -if ([ -x "/etc/init.d/#SCRIPT#" ] || [ -e "/etc/init/#SCRIPT#.conf" ]) && \ - [ "$1" = remove ]; then +if [ -x "/etc/init.d/#SCRIPT#" ] && [ "$1" = remove ]; then invoke-rc.d #SCRIPT# stop || #ERROR_HANDLER# fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/prerm-systemd debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/prerm-systemd --- debhelper-9.20160115ubuntu3/autoscripts/prerm-systemd 1970-01-01 00:00:00.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/prerm-systemd 2016-10-01 08:13:53.000000000 +0000 @@ -0,0 +1,3 @@ +if [ -d /run/systemd/system ]; then + deb-systemd-invoke stop #UNITFILES# >/dev/null +fi diff -Nru debhelper-9.20160115ubuntu3/autoscripts/prerm-systemd-restart debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/prerm-systemd-restart --- debhelper-9.20160115ubuntu3/autoscripts/prerm-systemd-restart 1970-01-01 00:00:00.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/autoscripts/prerm-systemd-restart 2016-10-01 08:13:53.000000000 +0000 @@ -0,0 +1,3 @@ +if [ -d /run/systemd/system ] && [ "$1" = remove ]; then + deb-systemd-invoke stop #UNITFILES# >/dev/null +fi diff -Nru debhelper-9.20160115ubuntu3/debhelper-obsolete-compat.pod debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debhelper-obsolete-compat.pod --- debhelper-9.20160115ubuntu3/debhelper-obsolete-compat.pod 1970-01-01 00:00:00.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debhelper-obsolete-compat.pod 2016-10-02 12:34:40.000000000 +0000 @@ -0,0 +1,128 @@ +=head1 NAME + +debhelper-obsolete-compat - List of no longer supported compat levels + +=head1 SYNOPSIS + +This document contains the upgrade guidelines from all compat levels +which are no longer supported. Accordingly it is mostly for +historical purposes and to assist people upgrading from a +non-supported compat level to a supported level. + +For upgrades from supported compat levels, please see L. + +=head1 UPGRADE LIST FOR COMPAT LEVELS + +The following is the list of now obsolete compat levels and their +changes. + +=over 4 + +=item v1 + +This is the original debhelper compatibility level, and so it is the default +one. In this mode, debhelper will use F as the package tree +directory for the first binary package listed in the control file, while using +debian/I for all other packages listed in the F file. + +This mode is deprecated. + +=item v2 + +In this mode, debhelper will consistently use debian/I +as the package tree directory for every package that is built. + +This mode is deprecated. + +=item v3 + +This mode works like v2, with the following additions: + +=over 8 + +=item - + +Debhelper config files support globbing via B<*> and B, when appropriate. To +turn this off and use those characters raw, just prefix with a backslash. + +=item - + +B makes the F and F scripts call B. + +=item - + +Every file in F is automatically flagged as a conffile by B. + +=back + +This mode is deprecated. + +=item v4 + +Changes from v3 are: + +=over 8 + +=item - + +B will not include the Debian part of the version number in +the generated dependency line in the shlibs file. + +=item - + +You are encouraged to put the new B<${misc:Depends}> into F to +supplement the B<${shlibs:Depends}> field. + +=item - + +B will make all files in F directories and in F +executable. + +=item - + +B will correct existing links to conform with policy. + +=back + +This mode is deprecated. + +=item v5 + +This is the lowest supported compatibility level. + +Changes from v4 are: + +=over 8 + +=item - + +Comments are ignored in debhelper config files. + +=item - + +B now specifies the name of a package to put debugging +symbols in, not the packages to take the symbols from. + +=item - + +B skips installing empty files. + +=item - + +B errors out if wildcards expand to nothing. + +=back + +=back + +=head1 SEE ALSO + +L + +=head1 AUTHORS + +Niels Thykier + +Joey Hess + +=cut diff -Nru debhelper-9.20160115ubuntu3/debhelper.pod debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debhelper.pod --- debhelper-9.20160115ubuntu3/debhelper.pod 2016-01-11 19:07:51.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debhelper.pod 2016-10-05 18:16:20.000000000 +0000 @@ -4,7 +4,7 @@ =head1 SYNOPSIS -BI<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-p>I] [B<-N>I] [B<-P>I] +BI<*> [B<-v>] [B<-a>] [B<-i>] [B<--no-act>] [B<-p>I] [B<-N>I] [B<-P>I] =head1 DESCRIPTION @@ -111,7 +111,7 @@ =item B<-a>, B<--arch> Act on architecture dependent packages that should be built for the -build architecture. +B architecture. =item B<-i>, B<--indep> @@ -124,8 +124,7 @@ =item B<-s>, B<--same-arch> -This used to be a smarter version of the B<-a> flag, but the B<-a> flag is now -equally smart. +Deprecated alias of B<-a>. =item B<-N>I, B<--no-package=>I @@ -273,11 +272,12 @@ to debhelper, to keep it clean and well-designed as needs change and its author gains more experience. To prevent such major changes from breaking existing packages, the concept of debhelper compatibility levels was -introduced. You tell debhelper which compatibility level it should use, and -it modifies its behavior in various ways. +introduced. You must tell debhelper which compatibility level it should use, and +it modifies its behavior in various ways. The compatibility level is +specified in the F file and the file must be present. Tell debhelper what compatibility level to use by writing a number to -F. For example, to turn on v9 mode: +F. For example, to use v9 mode: % echo 9 > debian/compat @@ -298,66 +298,15 @@ =over 4 -=item v3 +=item v5 This is the lowest supported compatibility level. -This mode is deprecated. - -=item v4 - -Changes from v3 are: - -=over 8 - -=item - - -B will not include the Debian part of the version number in -the generated dependency line in the shlibs file. - -=item - - -You are encouraged to put the new B<${misc:Depends}> into F to -supplement the B<${shlibs:Depends}> field. - -=item - - -B will make all files in F directories and in F -executable. - -=item - - -B will correct existing links to conform with policy. - -=back +If you are upgrading from an earlier compatibility level, please +review L. This mode is deprecated. -=item v5 - -Changes from v4 are: - -=over 8 - -=item - - -Comments are ignored in debhelper config files. - -=item - - -B now specifies the name of a package to put debugging -symbols in, not the packages to take the symbols from. - -=item - - -B skips installing empty files. - -=item - - -B errors out if wildcards expand to nothing. - -=back - =item v6 Changes from v5 are: @@ -388,6 +337,8 @@ =back +This mode is deprecated. + =item v7 Changes from v6 are: @@ -416,6 +367,8 @@ =back +This mode is deprecated. + =item v8 Changes from v7 are: @@ -445,9 +398,9 @@ =back -=item v9 +This mode is deprecated. -This is the recommended mode of operation. +=item v9 Changes from v8 are: @@ -504,7 +457,8 @@ =item v10 -This compatibility level is still open for development; use with caution. +This is the recommended mode of operation. + Changes from v9 are: @@ -549,7 +503,7 @@ The B command will not accept any of the deprecated "manual sequence control" parameters (B<--before>, B<--after>, etc.). Please -migrate to use override targets instead. +use override targets instead. =item - @@ -557,7 +511,7 @@ have been run. The B command I keeps track of whether it already ran the "build" sequence and skip it if it did. -The main affects of this are: +The main effects of this are: =over 4 @@ -571,7 +525,7 @@ The main caveat is that B now only keeps track of what happened in a single override target. When all the calls to a given B -command happens in the same override target every thing will work as +command happens in the same override target everything will work as before. Example of where it can go wrong: @@ -590,10 +544,135 @@ =back +=item - + +The B command now shell-escapes the lines in the +F config file. This was the original intent but it did +not work properly and packages have begun to rely on the incomplete +shell escaping (e.g. quoting file names). + +=item - + +The B command now defaults to +B<--restart-after-upgrade>. For packages needing the previous +behaviour, please use B<--no-restart-after-upgrade>. + +=item - + +The B sequence is now enabled by default. Please pass +B<--without autoreconf> to B if this is not desirable for a given +package + +=item - + +The B sequence is now enabled by default. Please pass +B<--without systemd> to B if this is not desirable for a given +package. + +=back + +=item v11 + +This compatibility level is still open for development; use with caution. + +Changes from v10 are: + +=over 8 + +=item - + +B no longer installs F files. The +F files are still installed. + +=item - + +The B<-s> (B<--same-arch>) option is removed. + +=item - + +Invoking B now causes an error instead of a deprecation +warning. + +=item - + +B now installs user-supplied documentation +(e.g. debian/I.docs) into F +rather than F by default as recommended by +Debian Policy 3.9.7. + +If you need the old behaviour, it can be emulated by using the +B<--mainpackage> option. + +Please remember to check/update your doc-base files. + +=item - + +B no longer creates debian/I directories +unless explicitly requested (or it has to create a subdirectory in +it). + +The vast majority of all packages will be unaffected by this change. + =back =back +=head2 Participating in the open beta testing of new compat levels + +It is possible to opt-in to the open beta testing of new compat +levels. This is done by setting the compat level to the string +"beta-tester". + +Packages using this compat level will automatically be upgraded to the +highest compatibility level in open beta. In periods without any open +beta versions, the compat level will be the highest stable +compatibility level. + +Please consider the following before opting in: + +=over 4 + +=item * + +The automatic upgrade in compatibility level may cause the package (or +a feature in it) to stop functioning. + +=item * + +Compatibility levels in open beta are still subject to change. We +will try to keep the changes to a minimal once the beta starts. +However, there are no guarantees that the compat will not change +during the beta. + +=item * + +We will notify you via debian-devel@lists.debian.org before we start a +new open beta compat level. However, once the beta starts we expect +that you keep yourself up to date on changes to debhelper. + +=item * + +The "beta-tester" compatibility version in unstable and testing will +often be different than the one in stable-backports. Accordingly, it +is not recommended for packages being backported regularly. + +=item * + +You can always opt-out of the beta by resetting the compatibility +level of your package to a stable version. + +=back + +Should you still be interested in the open beta testing, please run: + + % echo beta-tester > debian/compat + +You will also need to ensure that debian/control contains: + + Build-Depends: debhelper (>= 9.20160815~) + +To ensure that debhelper knows about the "beta-tester" compat level. + =head1 NOTES =head2 Multiple binary package support @@ -613,7 +692,7 @@ in the control file, with the exceptions below. First, any package whose B field in B does not -match the build architecture will be excluded +match the B architecture will be excluded (L). Also, some additional packages may be excluded based on the contents of the diff -Nru debhelper-9.20160115ubuntu3/debian/changelog debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debian/changelog --- debhelper-9.20160115ubuntu3/debian/changelog 2016-03-31 17:57:01.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debian/changelog 2017-02-24 13:37:22.000000000 +0000 @@ -1,3 +1,417 @@ +debhelper (10.2.2ubuntu1~ubuntu16.04.1~xenial) xenial; urgency=medium + + * No-change backport to xenial + + -- Iain Lane Fri, 11 Nov 2016 09:48:33 +0000 + +debhelper (10.2.2ubuntu1) zesty; urgency=medium + + * Merge from Debian unstable. Remaining changes: + - dh_installchangelogs: Do not install upstream changelog in compat + level 7. This floods packages with huge upstream changelogs which + are unnecessary on an installed system. + - dh_strip: Revert commit f1a803456 to disable ddebs generation by + default. This first needs adjustments in Launchpad and ddebs.u.c., and + dropping pkg-create-dbgsym. + + -- Martin Pitt Mon, 17 Oct 2016 21:34:23 +0200 + +debhelper (10.2.2) unstable; urgency=medium + + * Fix typo in changelog entry for release 10.2. Thanks to + Peter Pentchev for reporting it. + * Deprecate all compat levels lower than 9. + * dh: Discard override log files before running the override + rather than after. + * dh_compress,dh_fixperms: Remove references to long + obsolete directories such as usr/info, usr/man and + usr/X11*/man. + * autoreconf.pm: Apply patch from Helmut Grohne to fix + autoconf/cross regression from #836988. The autoreconf + build-system is now also used directly for "clean" and + "build" (while still usin the "make" build-system for the + heavy lifting). (Closes: #839681) + * dh_installdirs: In compat 11, avoid creating debian/ + directories except when required to do so. This fixes a + corner case, where an arch:all build would behave + differently than an arch:all+arch:any when dh_installdir is + optimised out only for the arch:all build. + * Dh_Lib.pm: Fix typo of positive. Thanks to Matthias Klose + for spotting it. + + -- Niels Thykier Sat, 08 Oct 2016 10:16:23 +0000 + +debhelper (10.2.1) unstable; urgency=medium + + * d/rules: Add a ./run in front of dh_auto_install. It is + technically not needed, but it prevents lintian from assuming + that we need to Build-Depend debhelper. + + -- Niels Thykier Sun, 02 Oct 2016 06:51:49 +0000 + +debhelper (10.2) unstable; urgency=medium + + * Apply patch from Peter Pentchev to fix some typos. + * Apply patch from Michael Biebl to undo a major + regression where all of debhelpers functionality was + missing (introduced in 10.1). (Closes: #839557) + * dh_installinit,dh_systemd_start: Introduce a new + --no-stop-on-upgrade as an alternative to + --no-restart-on-upgrade. This new option should + reduce the confusion of what it does. Thanks to + Michael Biebl for the suggestion. + + -- Niels Thykier Sun, 02 Oct 2016 06:20:56 +0000 + +debhelper (10.1) unstable; urgency=medium + + * Apply patch from Michael Biebl to take over dh-systemd + package to ease backporting to jessie-backports. + (Closes: #837585) + * Apply patch from Helmut Grohne and Julian Andres Klode + to improve cross-building support in the cmake build + system. (Closes: #833789) + * Make the makefile.pm buildsystem (but not subclasses thereof) + pass the CC and CXX variables set to the host compilers when + cross-building. Thanks to Helmut Grohne for the idea and + the initial patch. (Closes: #836988) + * dh_md5sums.1: Mention dpkg --verify as a consumer of the + output file. Thanks to Guillem Jover for reporting it. + * debhelper-obsolete-compat.pod: Add a manpage for the + upgrade checklist for all obsolete/removed compat levels. + Thanks to Jakub Wilk for the suggestion. + * Dh_Getopt,dh_*: Rename --onlyscripts to --only-scripts and + --noscripts to --no-scripts for consistency with other + options. The old variants are accepted for compatibility. + Thanks to Raphaël Hertzog for the suggestion. + (Closes: #838446) + * cmake.pm: If cmake fails, also dump CMakeFiles/CMakeOutput.log + and CMakeFiles/CMakeError.log if they are present. Thanks to + Michael Banck for the suggestion. (Closes: #839389) + * d/copyright: Correct copyright and license of dh_systemd* + tools. + + -- Niels Thykier Sat, 01 Oct 2016 20:45:27 +0000 + +debhelper (10ubuntu1) yakkety; urgency=medium + + * Merge from Debian unstable. Remaining changes: + - dh_installchangelogs: Do not install upstream changelog in compat + level 7. This floods packages with huge upstream changelogs which + are unnecessary on an installed system. + - dh_strip: Revert commit f1a803456 to disable ddebs generation by + default. This first needs adjustments in Launchpad and ddebs.u.c., and + dropping pkg-create-dbgsym. + + -- Martin Pitt Mon, 12 Sep 2016 07:12:45 +0200 + +debhelper (10) unstable; urgency=medium + + [ Niels Thykier ] + * Dh_Lib.pm: Support a new named "beta-tester" compat level. + If you want to participate in beta testing of new compat + levels, please review "man 7 debhelper" for more + information. + * Dh_Lib.pm: Fix bug in detection of existing auto-trigger. + + [ Axel Beckert ] + * Apply patch by Jens Reyer to fix typo in dh_installdocs man page. + (Closes: #836344) + * Use uppercase "Debian" in package description when the project is + meant. Fixes lintian warning capitalization-error-in-description. + * Apply "wrap-and-sort -a" + * Add a .mailmap file for making "git shortlog" work properly. + + [ Translations ] + * Update German translation (Chris Leick) (Closes: #835593) + * Update Portuguese translation (Américo Monteiro) + (Closes: #835403) + * Update French translation (Baptiste Jammet) (Closes: #836693) + + -- Niels Thykier Sun, 11 Sep 2016 09:00:23 +0000 + +debhelper (9.20160814) unstable; urgency=medium + + * dh_installdocs: Apply patch from Sven Joachim to make + --link-doc work again in compat 11 (See: #830309) + * t: Apply patch from Sven Joachim to add some test cases + to dh_installdocs's --link-doc behaviour. + (Closes: #831465) + * dh_installinit,dh_systemd_start: Apply patches from + Peter Pentchev to make -R default in compat 10 (as + documented, but not as implemented). + * perl_{build,makemaker}.pm: Apply patch from Dominic + Hargreaves to explicitly pass -I. to perl. This is to + assist with the fix for CVE-2016-1238. (Closes: #832436) + * dh_install: Clarify that "debian/not-installed" is not + related to the --exclude parameter. + * dh_install: Apply patch from Sven Joachim to support + the "debian/tmp" prefix being optional in + "debian/not-installed". (Closes: #815506) + * Dh_Lib.pm: Apply patch from Dominic Hargreaves to set + PERL_USE_UNSAFE_INC to fix a further set of packages + which fail to build with . removed from @INC. + (Closes: #832436) + * Dh_Buildsystems.pm: Enable auto-detection of the maven + and gradle buildsystems (provided they are installed). + Thanks to Emmanuel Bourg for the suggestion. + (Closes: #801732) + + -- Niels Thykier Sun, 14 Aug 2016 09:19:35 +0000 + +debhelper (9.20160709ubuntu1) yakkety; urgency=medium + + * Merge from Debian unstable. Remaining changes: + - dh_installchangelogs: Do not install upstream changelog in compat + level 7. This floods packages with huge upstream changelogs which + take precious CD space. + - dh_strip: Revert commit f1a803456 to disable ddebs generation by + default. This first needs adjustments in Launchpad and ddebs.u.c., and + dropping pkg-create-dbgsym. + + -- Martin Pitt Mon, 11 Jul 2016 22:17:30 +0200 + +debhelper (9.20160709) unstable; urgency=medium + + * Explicitly Build-Depends on perl:any for pod2man instead + of relying on it implicitly via libdpkg-perl. + * dh_shlibdeps: Clarify that -L is also useful for packages + using debian/shlibs.local for private libraries. + * dh_installdocs: Apply patch from Sven Joachim to fix a + regression with --link-doc and installing extra + documentation. (Closes: #830309) + * Apply patches from Michael Biebl to merge dh_systemd_enable + and dh_systemd_start from the dh-systemd package. + (Closes: #822670) + * dh: Enable the systemd helpers by default in compat 10 and + later. + + -- Niels Thykier Sat, 09 Jul 2016 09:53:02 +0000 + +debhelper (9.20160702) unstable; urgency=medium + + * Start on compat 11. + * dh_installmenu: Stop installing menu files in compat 11 + (menu-methods are still installed). + * dh_*: Deprecate -s in favor of -a. The -s option is + removed in compat 11. + * dh_strip: Fix regression in 9.20160618, which caused + issues when there were hardlinked ELF binaries in a + package. Thanks to Sven Joachim for the report, the + analysis/testing and for providing a patch for the + most common case. (Closes: #829142) + * Dh_Lib.pm: Cope with the parallel options in make 4.2. + Thanks to Martin Dorey for the report. (Closes: #827132) + * dh_installdocs: In compat 11, install documentation into + /usr/share/doc/mainpackage as requested by policy 3.9.7. + Thanks to Sandro Knauß for the report. (Closes: #824221) + * dh_perl: Emit perl:any dependencies when a package only + contains perl programs (but no modules of any kind). + Thanks to Javier Serrano Polo and Niko Tyni for the + report and feedback. (Closes: #824696) + + [ Translations ] + * Update German translation (Chris Leick + Eduard Bloch) + (Closes: #827699) + + -- Niels Thykier Sat, 02 Jul 2016 13:24:21 +0000 + +debhelper (9.20160618.1ubuntu1) yakkety; urgency=medium + + * Merge from Debian unstable. Remaining changes: + - dh_installchangelogs: Do not install upstream changelog in compat + level 7. This floods packages with huge upstream changelogs which + take precious CD space. + - dh_strip: Revert commit f1a803456 to disable ddebs generation by + default. This first needs adjustments in Launchpad and ddebs.u.c., and + dropping pkg-create-dbgsym. + * Dropped changes: + - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. + We don't support upstart for system init any more, and moreover we + stopped dropping SysV init scripts as they are required for insserv. + - Clean up older Ubuntu changelog records which were an endless repetition + of "remaining changes". + + -- Martin Pitt Wed, 22 Jun 2016 09:25:16 +0200 + +debhelper (9.20160618.1) unstable; urgency=medium + + * Dh_Lib.pm: Reject requests for compat 4 instead of + silently accepting it (while all helpers no longer + check for it). + + -- Niels Thykier Sat, 18 Jun 2016 20:52:29 +0000 + +debhelper (9.20160618) unstable; urgency=medium + + * dh: Fix bug where "--help" or "--list" would not work + unless "debian/compat" existed and had a supported + compat level. (Closes: #820508) + * dh_compress: Gracefully handle debian (or any other + path segment in the package "tmpdir") being a symlink + pointing outside the same directory. Thanks to + Bernhard Miklautz for the report. (Closes: #820711) + * Dh_Lib.pm: Compat files are now mandatory. + * dh_clean: Remove work around for missing compat file. + This removes a confusing warning when the package is + not built by CDBS. (Closes: #811059) + * debhelper.pod: Add a line stating that debian/compat + is mandatory. (Closes: #805405) + * dh_strip: Apply patch from Peter Pentchev to only strip + static libraries with a basename matching "lib.*\.a". + (Closes: #820446) + * ant.pm: Apply patch from Emmanuel Bourg to pass a + normalised "user.name" parameter to ant. + (Closes: #824490) + * dh_installudev/dh_installmodules: Drop maintainer + script snippets for migrating conffiles. + - Side effect, avoids portability issue with certain + shell implementations. (Closes: #815158) + * autoscripts/*inst-moveconffile: Remove unused files. + * dh: Update documentation to reflect the current + implementation. + * Remove support for compat 4. + * dh_strip: Add debuglinks to ELF binaries even with + DEB_BUILD_OPTIONS=noautodbgsym to make the regular deb + bit-for-bit reproducible with vs. without this flag. + Thanks to Helmut Grohne for the report. + * dh_installcatalogs: Apply patch from Helmut Grohne to + explicitly trigger a new update-sgmlcatalog trigger, + since dpkg does not triger conffiles on package removal. + (Closes: #825005) + * dh_installcatalos: Apply patch from Helmut Grohne to + remove autoscript for a transition that completed in + Wheezy. + * dh_strip: Unconditionally pass --enable-deterministic-archives + to strip for static libs as the stable version of binutils + supports it. + * dh_strip: Use file(1) to determine the build-id when + available. This saves an readelf call for every binary in + the package. + * dh_strip: Cache file(1) output to avoid calling file(1) + twice on all ELF binaries in the package. + * Dh_Lib.pm: Add better error messages when a debhelper program + fails due to an executable config file not terminating with + success. (Closes: #818933) + * dh_strip: Pass -e to file(1) to skip tests for file formats + that dh_strip does not care about. + * Bump standards-version to 3.9.8 - no changes required. + + -- Niels Thykier Sat, 18 Jun 2016 14:41:05 +0000 + +debhelper (9.20160403ubuntu1) yakkety; urgency=medium + + * Merge from Debian unstable. Remaining changes: + - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. + (Must be kept as long as we support system upstart on touch.) + - dh_installchangelogs: Do not install upstream changelog in compat + level 7. This floods packages with huge upstream changelogs which + take precious CD space. + - dh_strip: Revert commit f1a803456 to disable ddebs generation by + default. This first needs adjustments in Launchpad and ddebs.u.c., and + dropping pkg-create-dbgsym. + + -- Martin Pitt Fri, 22 Apr 2016 16:07:52 +0200 + +debhelper (9.20160403) unstable; urgency=medium + + * d/control: Requre dh-autoreconf (>= 12) to ensure + non-autotools can be built in compat 10. + * dh: In a "PROMISE: DH NOOP" clause, make no assumptions + about being able to skip "foo(bar)" if "foo" is not known. + * debhelper.pod: Use DEB_HOST_ARCH instead of the incorrect + "build architecture". Thanks to Helmut Grohne for the + report. + * dh_makeshlibs: Use same regex for extracting SONAME as + dpkg-shlibdeps. (Closes: #509931) + * dh_makeshlibs: Add an ldconfig trigger if there is an + unversioned SONAME and the maintainer provides a + symbols file. + + -- Niels Thykier Sun, 03 Apr 2016 08:56:07 +0000 + +debhelper (9.20160402) unstable; urgency=medium + + * Remove dh_desktop. + * dh_install: Fix a regression where a non-existing file + was ignored if another file was matched for the same + destination dir. Thanks to Ben Hutchings for reporting + the issue. (Closes: #818834) + * d/rules: Use overrides to disable unnecessary helpers + (for which debhelper does not Build-Depend on the + necessary packages to run the tools). + * dh: Enable "autoreconf" sequence by default in compat + 10 (or higher). (Closes: #480576) + * d/control: Add a dependency on dh-autoreconf due to + the above. + * autoscripts/*-makeshlibs: Remove again. Most of the + reverse dependencies have migrated already. + * Declare compat 10 ready for testing. + + -- Niels Thykier Sat, 02 Apr 2016 19:20:17 +0000 + +debhelper (9.20160313) unstable; urgency=medium + + * Remove dh_undocumented. + * dh_install: Attempt to improve the documentation of the + config file "debian/not-installed". + * dh_compress: Gracefully handle absolute paths passed via + the -P option. Thanks to Andreas Beckmann for reporting + the issue. (Closes: #818049) + + -- Niels Thykier Sun, 13 Mar 2016 14:21:02 +0000 + +debhelper (9.20160306) unstable; urgency=medium + + [ Niels Thykier ] + * Remove dh_suidregister and related autoscripts. No package + (that can be built in unstable) invokes this tool. + * dh: Do not create stamp files when running with --no-act. + * dh_strip/dh_gencontrol: Move "is_udeb" guard to dh_strip. + This should avoid adding build-ids to udebs without having + the actual debug symbols available. Thanks to Jérémy Bobbio + for reporting the issue. (Closes: #812879) + * dh_makeshlibs: Do not claim to be using maintainer scripts + for invoking ldconfig. Thanks to Eugene V. Lyubimkin for + the report. (Closes: #815401) + * Remove dh_scrollkeeper. It is no longer used in unstable. + * autoconf.pm: Apply patch from Gergely Nagy to set "VERBOSE=1" + when running tests to make sure that the build logs are + dumped on error with automake. (Closes: #798648, #744380) + * dh_installdeb: In compat 10, properly shell escape lines + from the maintscript config file. This will *not* be fixed + retroactively since people have begun to rely on the bug + in previous versions (e.g. by quoting the file names). + Thanks to Jakub Wilk for reporting the issue. + (Closes: #803341) + * dh_installdeb: In compat 10, avoid adding two comments per line + in the maintscript file. Thanks to Didier Raboud for + reporting the bug. (Closes: #615854) + * cmake.pm: Apply patch from Helmut Grohne to correct the + name of the default cross compilers. (Closes: #812136) + * dh_installdeb: Clarify what goes in the "maintscript" config + files. Thanks to Julian Andres Klode for the report. + (Closes: #814761) + * dh_compress: Correct and warn if given a path with a package + tmp dir prefix (e.g. "debian//path/to/file"). + * dh_compress: Handle file resolution failures more gracefully. + Thanks to Daniel Leidert for reporting this issue. + (Closes: #802274) + * dh_installinit: Make --restart-after-upgrade the default in + compat 10. Packages can undo this by using the new + --no-restart-after-upgrade parameter. + * d/control: Update Vcs links. + * d/control: Bump Standards-Version to 3.9.7 - no changes + required. + * Import newer German translations from Chris Leick. + (Closes: #812790) + + [ Joachim Breitner ] + * addsubstvar: Pass -a to grep to handle substvars with unicode content + gracefully (Closes: #815620) + + -- Niels Thykier Sun, 06 Mar 2016 13:14:43 +0000 + debhelper (9.20160115ubuntu3) xenial; urgency=medium * Backport upstream commit 9ca73a0a ("Pass -a to grep to handle @@ -71,22 +485,6 @@ -- Niels Thykier Thu, 14 Jan 2016 22:01:03 +0000 -debhelper (9.20151225ubuntu1) xenial; urgency=medium - - * Merge from Debian unstable. Remaining changes: - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - dh_installinit: Add dependency to lsb-base >= 4.1+Debian11ubuntu7 that - provides the upstart LSB hook, to avoid upgrade breakage. This change - can be dropped after 16.04 LTS. - * dh_strip: Revert commit f1a803456 to disable ddebs generation by default. - This first needs adjustments in Launchpad and ddebs.u.c., and dropping - pkg-create-dbgsym. - - -- Martin Pitt Mon, 04 Jan 2016 11:07:56 +0100 - debhelper (9.20151225) unstable; urgency=medium * dh_installmanpages: Fix call to getpackages. Thanks to @@ -125,21 +523,6 @@ -- Niels Thykier Sat, 19 Dec 2015 22:01:53 +0000 -debhelper (9.20151126ubuntu1) xenial; urgency=medium - - * Merge from Debian unstable. Remaining changes: - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. This - uses the #SCRIPT# macro twice, thus in dh_installinit, replace all - occurrences of that not just the first one. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - dh_installinit: Add dependency to lsb-base >= 4.1+Debian11ubuntu7 that - provides the upstart LSB hook, to avoid upgrade breakage. This change - can be dropped after 16.04 LTS. - - -- Martin Pitt Sat, 28 Nov 2015 12:57:41 +0100 - debhelper (9.20151126) unstable; urgency=medium * dh_compress: Apply patch from Michael Biebl to skip @@ -150,37 +533,6 @@ -- Niels Thykier Thu, 26 Nov 2015 18:06:06 +0100 -debhelper (9.20151117ubuntu2) xenial; urgency=medium - - * autoscripts/postinst-init: Fix merge error that caused dh_installinit to - generate broken postinsts. - - -- Martin Pitt Wed, 25 Nov 2015 06:05:07 +0100 - -debhelper (9.20151117ubuntu1) xenial; urgency=medium - - * Merge from Debian unstable. Remaining changes: - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. This - uses the #SCRIPT# macro twice, thus in dh_installinit, replace all - occurrences of that not just the first one. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - dh_installinit: Add dependency to lsb-base >= 4.1+Debian11ubuntu7 that - provides the upstart LSB hook, to avoid upgrade breakage. This change - can be dropped after 16.04 LTS. - * Dropped Ubuntu changes: - - dh_installudev: Change default rules.d symlink priority to 40. This - change has been pointless for a long time, Debian and Ubuntu use the - upstream udev rules. - - dh_installinit: Add no-op --upstart-only option for compatibility. The - remaining packages that used this got fixed. (LP: #1519228) - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. This was done - in saucy and thus finished in trusty. - - -- Martin Pitt Tue, 24 Nov 2015 08:43:50 +0100 - debhelper (9.20151117) unstable; urgency=medium [ Niels Thykier ] @@ -239,28 +591,6 @@ -- Niels Thykier Mon, 16 Nov 2015 21:05:53 +0100 -debhelper (9.20151005ubuntu2) xenial; urgency=medium - - * Put back dh-strip-nondeterminism dependency, MIR got approved. - - -- Martin Pitt Tue, 03 Nov 2015 13:32:54 -0600 - -debhelper (9.20151005ubuntu1) xenial; urgency=medium - - * Merge from Debian unstable. Remaining changes: - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - * Drop dh-strip-nondeterminism dependency for now, until the MIR gets - processed (LP: #1508999) - - -- Martin Pitt Thu, 22 Oct 2015 17:52:54 +0200 - debhelper (9.20151005) unstable; urgency=medium * dh_strip: Sort build-ids to make the Build-Ids header @@ -303,7 +633,7 @@ when "-V" is passed to dpkg-gencontrol. This relies on dpkg-deb getting everything but the extension correct (see #575059, #452273 for why it does not produce the - correct extesion). + correct extension). (Closes: #516721, #677353, #672282) * Dh_Lib.pm: Drop now unused "udeb_filename" subroutine. * dh_strip.1: Correct the documentation about ddebs to @@ -373,30 +703,6 @@ -- Niels Thykier Sun, 04 Oct 2015 17:34:16 +0200 -debhelper (9.20150811ubuntu2) wily; urgency=medium - - * dh_movefiles: Expand globs in arguments passed in all - compat levels (and not just compat 1 and 2). - (Closes: #800332) (cherry-picked from Debian) - - -- Martin Pitt Mon, 05 Oct 2015 14:33:20 +0200 - -debhelper (9.20150811ubuntu1) wily; urgency=medium - - * Merge from Debian unstable. Remaining changes: - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - * Drop dependency on dh-apparmor. This was a transitional measure in 2012, - if there are still packages left that require it let's fix them properly. - - -- Martin Pitt Wed, 12 Aug 2015 16:15:58 +0200 - debhelper (9.20150811) unstable; urgency=medium * d/changelog: Add missing entry for dh_md5sums/#786695 in @@ -491,21 +797,6 @@ -- Niels Thykier Tue, 19 May 2015 21:56:55 +0200 -debhelper (9.20150507ubuntu1) wily; urgency=low - - * Merge from Debian unstable. Remaining changes: - - Depend on dh-apparmor. - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - -- Iain Lane Thu, 14 May 2015 17:18:00 +0100 - debhelper (9.20150507) unstable; urgency=medium [ Niels Thykier ] @@ -663,21 +954,6 @@ -- Niels Thykier Fri, 01 May 2015 14:53:16 +0200 -debhelper (9.20150101ubuntu1) vivid; urgency=low - - * Merge from Debian unstable. Remaining changes: - - Depend on dh-apparmor. - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - -- Iain Lane Wed, 07 Jan 2015 09:48:12 +0000 - debhelper (9.20150101) unstable; urgency=medium [ Niels Thykier ] @@ -727,21 +1003,6 @@ -- Joey Hess Fri, 07 Nov 2014 17:15:10 -0400 -debhelper (9.20141022ubuntu1) vivid; urgency=medium - - * Merge from Debian unstable. Remaining changes: - - Depend on dh-apparmor. - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - -- Michael Vogt Thu, 30 Oct 2014 10:44:35 +0100 - debhelper (9.20141022) unstable; urgency=low * dh_installdeb: Sort conffile list so there is a stable order for @@ -763,21 +1024,6 @@ -- Joey Hess Fri, 10 Oct 2014 17:42:56 -0400 -debhelper (9.20141003ubuntu1) vivid; urgency=medium - - * Resynchronise with Debian. Remaining changes: - - Depend on dh-apparmor. - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - -- Colin Watson Thu, 23 Oct 2014 17:01:31 -0400 - debhelper (9.20141003) unstable; urgency=medium * dh_clean: Skip over .git, .svn, .bzr, .hg, and CVS directories @@ -804,38 +1050,6 @@ -- Joey Hess Sat, 09 Aug 2014 11:24:41 -0400 -debhelper (9.20140613ubuntu2) utopic; urgency=medium - - * Remove ubuntu delta and thus call update-rc.d remove in postrm, upon - removing init.d scripts even if a matching upstart job is - present. (LP: #1326327) - - -- Dimitri John Ledkov Thu, 31 Jul 2014 10:02:24 +0100 - -debhelper (9.20140613ubuntu1) utopic; urgency=medium - - * Resynchronise with Debian. Remaining changes: - - Depend on dh-apparmor. - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - * Drop changes since last merge, due to support init.d scripts and - upstart jobs co-installation: - - dh_installinit, autoscripts/postinst-upstart-replace: Prefer upstart - jobs where they exist. - - autoscripts/postinst-init*: Only call update-rc.d when there's no - upstart job. - - * Execute po4a man/po4a/po4a.cfg to update manpages. - - -- Dimitri John Ledkov Mon, 07 Jul 2014 18:25:48 +0100 - debhelper (9.20140613) unstable; urgency=medium * Pass --disable-silent-rules in dh_auto_configure if DH_VERBOSE is set. @@ -845,67 +1059,6 @@ -- Joey Hess Fri, 13 Jun 2014 11:50:09 -0400 -debhelper (9.20140228ubuntu6) utopic; urgency=medium - - * Fix the previous upload, by not calling update-rc.d on packages that - just have upstart job without init.d. - - -- Dimitri John Ledkov Thu, 29 May 2014 11:50:53 +0100 - -debhelper (9.20140228ubuntu5) utopic; urgency=medium - - * Enable calling update-rc.d, if an init.d script is installed, - regardless presence of the upstart jobs. (LP: #1312836) - - -- Dimitri John Ledkov Wed, 28 May 2014 11:00:44 +0200 - -debhelper (9.20140228ubuntu4) utopic; urgency=medium - - * Re-introduce the dh_installinit change but this time depending on - lsb-base where the hook was moved. This should prevent upgrade breakage. - - -- Stéphane Graber Tue, 27 May 2014 16:21:35 +0200 - -debhelper (9.20140228ubuntu3) utopic; urgency=medium - - * Revert the last change as it's causing apt upgrade resolution - failure breaking all buildds. - - -- Stéphane Graber Tue, 27 May 2014 15:37:20 +0200 - -debhelper (9.20140228ubuntu2) utopic; urgency=medium - - * Add upstart versioned dependency on upstart that provides lsb hook, to - make sure sourcing lsb init-functions triggers transparent launching - of the upstart job instead. (LP: #1323274). - - -- Dimitri John Ledkov Mon, 26 May 2014 14:39:04 +0200 - -debhelper (9.20140228ubuntu1) utopic; urgency=medium - - * Resynchronise with Debian. Remaining changes: - - Depend on dh-apparmor. - - dh_installinit, autoscripts/postinst-upstart-replace: Prefer upstart - jobs where they exist. - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/postinst-init*: Only call update-rc.d when there's no - upstart job. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - * Drop change required for upgrades to trusty: - - preserve the change that adds versioned dependency on sysv-rc to - support precise->trusty upgrades. - - * Execute po4a man/po4a/po4a.cfg to update manpages. - - -- Dimitri John Ledkov Fri, 09 May 2014 13:01:47 +0100 - debhelper (9.20140228) unstable; urgency=medium * Fix breakage in no-act mode introduced in last release. @@ -935,27 +1088,6 @@ -- Joey Hess Thu, 27 Feb 2014 11:49:56 -0400 -debhelper (9.20131227ubuntu1) trusty; urgency=medium - - * Resynchronise with Debian. Remaining changes: - - Depend on dh-apparmor. - - dh_installinit, autoscripts/postinst-upstart-replace: Prefer upstart - jobs where they exist. - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/postinst-init*: Only call update-rc.d when there's no - upstart job. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - preserve the change that adds versioned dependency on sysv-rc to - support precise->trusty upgrades. - - -- Dimitri John Ledkov Wed, 19 Feb 2014 14:18:57 +0000 - debhelper (9.20131227) unstable; urgency=medium [ Guillem Jover ] @@ -979,34 +1111,6 @@ -- Joey Hess Fri, 13 Dec 2013 14:46:26 -0400 -debhelper (9.20131127ubuntu2) trusty; urgency=low - - * Revert 9.20131110 - * Additional changes: - - preserve the change that adds versioned dependency on sysv-rc to - support precise->trusty upgrades. - - -- Dimitri John Ledkov Mon, 09 Dec 2013 17:13:25 +0000 - -debhelper (9.20131127ubuntu1) trusty; urgency=low - - * Resynchronise with Debian. Remaining changes: - - Depend on dh-apparmor. - - dh_installinit, autoscripts/postinst-upstart-replace: Prefer upstart - jobs where they exist. - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/postinst-init*: Only call update-rc.d when there's no - upstart job. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - -- Dmitrijs Ledkovs Mon, 09 Dec 2013 12:06:22 +0000 - debhelper (9.20131127) unstable; urgency=low * dh_compress: Exclude several more compressed file formats. @@ -1051,25 +1155,6 @@ -- Joey Hess Mon, 04 Nov 2013 15:34:21 -0400 -debhelper (9.20130921ubuntu1) trusty; urgency=low - - * Resynchronise with Debian. Remaining changes: - - Depend on dh-apparmor. - - dh_installinit, autoscripts/postinst-upstart-replace: Prefer upstart - jobs where they exist. - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/postinst-init*: Only call update-rc.d when there's no - upstart job. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - -- Colin Watson Mon, 21 Oct 2013 09:28:05 +0100 - debhelper (9.20130921) unstable; urgency=low * dh: Call dh_installxfonts after dh_link, so that it will @@ -1100,25 +1185,6 @@ -- Joey Hess Tue, 20 Aug 2013 12:46:25 -0400 -debhelper (9.20130630ubuntu1) saucy; urgency=low - - * Resynchronise with Debian. Remaining changes: - - Depend on dh-apparmor. - - dh_installinit, autoscripts/postinst-upstart-replace: Prefer upstart - jobs where they exist. - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/postinst-init*: Only call update-rc.d when there's no - upstart job. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - -- Colin Watson Mon, 01 Jul 2013 11:20:37 +0100 - debhelper (9.20130630) unstable; urgency=low * perl_build: Use -- long option names, for compatibility with @@ -1127,25 +1193,6 @@ -- Joey Hess Sun, 30 Jun 2013 14:20:51 -0400 -debhelper (9.20130626ubuntu1) saucy; urgency=low - - * Resynchronise with Debian. Remaining changes: - - Depend on dh-apparmor. - - dh_installinit, autoscripts/postinst-upstart-replace: Prefer upstart - jobs where they exist. - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/postinst-init*: Only call update-rc.d when there's no - upstart job. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - -- Colin Watson Thu, 27 Jun 2013 12:59:50 +0100 - debhelper (9.20130626) unstable; urgency=low * dh_strip: Run readelf in C locale. Closes: #714187 @@ -1169,25 +1216,6 @@ -- Joey Hess Wed, 05 Jun 2013 12:28:51 -0400 -debhelper (9.20130604ubuntu1) saucy; urgency=low - - * Resynchronise with Debian. Remaining changes: - - Depend on dh-apparmor. - - dh_installinit, autoscripts/postinst-upstart-replace: Prefer upstart - jobs where they exist. - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/postinst-init*: Only call update-rc.d when there's no - upstart job. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - -- Colin Watson Wed, 05 Jun 2013 11:00:43 +0100 - debhelper (9.20130604) unstable; urgency=low * dh_installchangelogs: No longer automatically converts html changelogs. @@ -1204,25 +1232,6 @@ -- Joey Hess Tue, 04 Jun 2013 11:27:29 -0400 -debhelper (9.20130518ubuntu1) saucy; urgency=low - - * Resynchronise with Debian. Remaining changes: - - Depend on dh-apparmor. - - dh_installinit, autoscripts/postinst-upstart-replace: Prefer upstart - jobs where they exist. - - autoscripts/preinst-upstart-compatibility: Handle upgrades from older - versions that created the /lib/init/upstart-job symlink. - - autoscripts/postinst-init*: Only call update-rc.d when there's no - upstart job. - - autoscripts/*-init*: Test for /etc/init/*.conf where necessary. - - dh_installinit: Add no-op --upstart-only option for compatibility. - - dh_installudev: Change default rules.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - -- Colin Watson Tue, 04 Jun 2013 11:46:28 +0100 - debhelper (9.20130518) unstable; urgency=low * dh_installchangelogs: Write the changelog entry used for a binNMU, @@ -1314,44 +1323,6 @@ -- Joey Hess Sat, 04 May 2013 23:32:27 -0400 -debhelper (9.20120909ubuntu3) saucy; urgency=low - - * Now that we no longer create /lib/init/upstart-job symlinks, fix the - init-related autoscript fragments to also test for /etc/init/*.conf - where necessary (LP: #1183807). - - -- Colin Watson Fri, 24 May 2013 15:46:20 +0100 - -debhelper (9.20120909ubuntu2) saucy; urgency=low - - * Align upstart job handling with upstream debhelper: install both init - scripts and upstart jobs, and rely on the policy layer in invoke-rc.d - and our handling of update-rc.d to give the right behavior. - * Drops preinst-removeconffile, introduces preinst-upstart-compatibility - in its place. - - -- Steve Langasek Sat, 18 May 2013 18:20:03 -0500 - -debhelper (9.20120909ubuntu1) raring; urgency=low - - * Merge from Debian unstable, remaining changes: - - Depend on dh-apparmor. - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - continue to use /lib/init/upstart-job symlinks in Ubuntu, since - insserv is not yet usable with upstart. - - Add autoscripts for above: postinst-upstart-replace, - preinst-removeconffile. - - autoscripts/postinst-init, autoscripts/postinst-init-restart: Only - call update-rc.d when there's no upstart job. - - autoscripts/postinst-init-nostart: also handle the upstart case; - otherwise we call update-rc.d to add, and again to remove! - - dh_installudev: Change default init.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - -- Adam Conrad Wed, 07 Nov 2012 13:12:10 -0700 - debhelper (9.20120909) unstable; urgency=low * autoscript() can now be passed a perl sub to run to s/// lines of @@ -1374,29 +1345,6 @@ -- Joey Hess Thu, 30 Aug 2012 11:04:10 -0400 -debhelper (9.20120608ubuntu1) quantal; urgency=low - - * Merge from Debian unstable, remaining changes: - - Depend on dh-apparmor. - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - continue to use /lib/init/upstart-job symlinks in Ubuntu, since - insserv is not yet usable with upstart. - - Add autoscripts for above: postinst-upstart-replace, - preinst-removeconffile. - - autoscripts/postinst-init, autoscripts/postinst-init-restart: Only - call update-rc.d when there's no upstart job. - - autoscripts/postinst-init-nostart: also handle the upstart case; - otherwise we call update-rc.d to add, and again to remove! - - dh_installudev: Change default init.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - * Dropped changes, superseded in Debian: - - Mark debhelper Multi-Arch: foreign, so it's recognized as satisfying - cross-dependencies and cross-build-dependencies. - - -- Adam Conrad Tue, 19 Jun 2012 14:25:04 -0600 - debhelper (9.20120608) unstable; urgency=low * dh: When there's an -indep override target without -arch, or vice versa, @@ -1447,39 +1395,6 @@ -- Joey Hess Wed, 09 May 2012 12:59:15 -0400 -debhelper (9.20120419ubuntu2) quantal; urgency=low - - * dh_installinit: drop the --onlyscripts-upstart option, which was only - used temporarily for compatibility with some packages in karmic. - - -- Steve Langasek Sun, 29 Apr 2012 09:58:05 -0700 - -debhelper (9.20120419ubuntu1) quantal; urgency=low - - * Merge from Debian unstable, remaining changes: - - Depend on dh-apparmor. - - Mark debhelper Multi-Arch: foreign, so it's recognized as satisfying - cross-dependencies and cross-build-dependencies. - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - continue to use /lib/init/upstart-job symlinks in Ubuntu, since - insserv is not yet usable with upstart. - - Add autoscripts for above: postinst-upstart-replace, - preinst-removeconffile. - - autoscripts/postinst-init, autoscripts/postinst-init-restart: Only - call update-rc.d when there's no upstart job. - - dh_installudev: Change default init.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - * Dropped changes, superseded in Debian: - - autoscripts postinst-upstart, postinst-upstart-restart, prerm-upstart, - prerm-upstart-norestart dropped, the logic has merged into the main - autoscripts. - * autoscripts/postinst-init-nostart: also handle the upstart case; - otherwise we call update-rc.d to add, and again to remove! - - -- Steve Langasek Sun, 29 Apr 2012 07:46:42 +0000 - debhelper (9.20120419) unstable; urgency=low * Fix compat level checking for cmake. Closes: #669181 @@ -1547,40 +1462,6 @@ -- Joey Hess Sun, 11 Mar 2012 18:28:33 -0400 -debhelper (9.20120115ubuntu3) precise; urgency=low - - * remove dh_apparmor and corresponding autoscripts and adjust debian/control - to Depends on dh-apparmor. This can be dropped once all packages that use - dh_apparmor Build-Depends on dh-apparmor. - - -- Jamie Strandboge Fri, 02 Mar 2012 08:13:33 -0600 - -debhelper (9.20120115ubuntu2) precise; urgency=low - - * Make dh_apparmor executable again. - - -- Colin Watson Tue, 24 Jan 2012 00:12:27 +0000 - -debhelper (9.20120115ubuntu1) precise; urgency=low - - * Resynchronise with Debian. Remaining changes: - - Mark debhelper Multi-Arch: foreign, so it's recognized as satisfying - cross-dependencies and cross-build-dependencies. - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, prerm-upstart, - prerm-upstart-norestart, preinst-removeconffile. - - autoscripts/postinst-init, autoscripts/postinst-init-restart: Only - call update-rc.d when there's no upstart job, which will let us get - rid of the separate postinst-upstart{,-restart} scripts. - - dh_installudev: Change default init.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat - level 7. This floods packages with huge upstream changelogs which - take precious CD space. - - Add dh_apparmor and autoscripts. - - -- Colin Watson Mon, 23 Jan 2012 13:00:43 +0000 - debhelper (9.20120115) unstable; urgency=low * Finalized v9 mode, which is the new recommended default. @@ -1642,29 +1523,6 @@ -- Joey Hess Wed, 16 Nov 2011 11:54:59 -0400 -debhelper (8.9.9ubuntu1) precise; urgency=low - - * Merge from Debian testing, remaining changes: - - mark debhelper Multi-Arch: foreign, so it's recognized as satisfying - cross-dependencies and cross-build-dependencies. - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - autoscripts/postinst-init, autoscripts/postinst-init-restart: only - call update-rc.d when there's no upstart job, which will let us get - rid of the separate postinst-upstart{,-restart} scripts. - - dh_installudev: Change default init.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat level - 7. This floods packages with huge upstream changelogs which take - precious CD space. - - add dh_apparmor and autoscripts - * Dropped changes: - - debian/rules: set executable bit for dh_apparmor: fix this in the - source tarball instead, like it's set for all other scripts. - - -- Steve Langasek Wed, 16 Nov 2011 16:24:58 -0800 - debhelper (8.9.9) unstable; urgency=low * dh_auto_build: Use target architecture (not host architecture) @@ -1673,34 +1531,6 @@ -- Joey Hess Fri, 04 Nov 2011 17:01:58 -0400 -debhelper (8.9.8ubuntu2) precise; urgency=low - - * autoscripts/postinst-init, autoscripts/postinst-init-restart: only call - update-rc.d when there's no upstart job, letting us get rid of the - separate postinst-upstart{,-restart} scripts. - * mark debhelper Multi-Arch: foreign, so it's recognized as satisfying - cross-dependencies and cross-build-dependencies. - - -- Steve Langasek Sat, 05 Nov 2011 00:41:42 -0400 - -debhelper (8.9.8ubuntu1) precise; urgency=low - - * Merge with Debian; remaining Ubuntu changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Change default init.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat level - 7. This floods packages with huge upstream changelogs which take - precious CD space. - - add dh_apparmor and autoscripts - - debian/rules: set executable bit for dh_apparmor before actually running - dh build, that is in order to get the manpage built for dh_apparmor. - - dh_installinit: drop redundant definition of -O. - - -- Martin Pitt Tue, 11 Oct 2011 06:36:38 +0200 - debhelper (8.9.8) unstable; urgency=low * dh_fixperms: Operate on .ali files throughout /usr/lib, including @@ -1806,26 +1636,6 @@ -- Joey Hess Sun, 17 Jul 2011 16:31:27 -0400 -debhelper (8.9.0ubuntu1) oneiric; urgency=low - - * Merge with Debian (LP: #801884); remaining changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Change default init.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat level - 7. This floods packages with huge upstream changelogs which take - precious CD space. - - add dh_apparmor and autoscripts - - debian/rules: set executable bit for dh_apparmor before actually running - dh build, that is in order to get the manpage built for dh_apparmor. - - dh_installinit: drop redundant definition of -O. - - debian/control: dpkg-dev dependency needs to be on 1.16.0~ubuntu4 for - multiarch, not just 1.16.0~. - - -- أحمد المحمودي (Ahmed El-Mahmoudy) Sat, 02 Jul 2011 00:04:09 +0200 - debhelper (8.9.0) unstable; urgency=low * dh: In v9, any standard rules file targets, including build-arch, @@ -1848,32 +1658,6 @@ -- Joey Hess Fri, 24 Jun 2011 14:28:52 -0400 -debhelper (8.1.6ubuntu2) oneiric; urgency=low - - * dh_installinit: drop redundant definition of -O. - * debian/control: dpkg-dev dependency needs to be on 1.16.0~ubuntu4 for - multiarch, not just 1.16.0~. - - -- Steve Langasek Fri, 20 May 2011 17:49:44 -0700 - -debhelper (8.1.6ubuntu1) oneiric; urgency=low - - * Merge with Debian (LP: #773932); remaining changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Change default init.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat level - 7. This floods packages with huge upstream changelogs which take - precious CD space. - - add dh_apparmor and autoscripts - - debian/rules: override build target to set executable bit for - dh_apparmor before actually running dh build, that is in order to get - the manpage built for dh_apparmor. - - -- أحمد المحمودي (Ahmed El-Mahmoudy) Thu, 28 Apr 2011 21:02:28 +0200 - debhelper (8.1.6) unstable; urgency=low * dh_ucf: Fix missing space before ']'s in postrm autoscript. @@ -1929,60 +1713,6 @@ -- Joey Hess Tue, 05 Apr 2011 13:09:43 -0400 -debhelper (8.1.2ubuntu4) natty; urgency=low - - * debhelper.pod: v9 info was added in the wrong place by mistake; move it - to where it belongs so the manpage reads sensibly again. - - -- Steve Langasek Mon, 21 Mar 2011 15:59:12 -0700 - -debhelper (8.1.2ubuntu3) natty; urgency=low - - * Revert the patch for env variable expansion based on feedback from Joey - Hess. It appears this patch is not as far along the path to upstream - inclusion as I thought it was; sorry for the misunderstanding, Joey. - - -- Steve Langasek Tue, 15 Mar 2011 13:12:50 -0700 - -debhelper (8.1.2ubuntu2) natty; urgency=low - - * multiarch support. FFe LP: #733501. - * merge changes from upstream git: - - Started work on Debhelper v9. It is still experimental, and more - changes may be added to that mode. - - Support multiarch in v9. Thanks, Steve Langasek. Closes: #617761 - - dh_auto_configure: Support multiarch in v9 by passing multiarch - directories to --libdir and --libexecdir. - - dh_makeshlibs: Detect packages using multiarch directories and - make ${misc:Pre-Depends} expand to multiarch-support. - - Depend on dpkg-dev (>= 1.16.0) for multiarch support. Note to - backporters: If you remove that dependency, debhelper will fall back - to not doing multiarch stuff in v9 mode, which is probably what you - want. - * Add Daniel Silverstone's patch to give us env variable expansions in - .install/.link files, needed in order to let us use DEB_HOST_MULTIARCH - without cumbersome .in files everywhere. Closes: #614731. - - -- Steve Langasek Mon, 14 Mar 2011 20:20:18 -0700 - -debhelper (8.1.2ubuntu1) natty; urgency=low - - * Merge with Debian (LP: #719150); remaining changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Change default init.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat level - 7. This floods packages with huge upstream changelogs which take - precious CD space. - - add dh_apparmor and autoscripts - - debian/rules: override build target to set executable bit for - dh_apparmor before actually running dh build, that is in order to get - the manpage built for dh_apparmor. - - -- أحمد المحمودي (Ahmed El-Mahmoudy) Tue, 15 Feb 2011 06:46:24 +0200 - debhelper (8.1.2) unstable; urgency=low * Fix logging at end of an override target that never actually runs @@ -1990,27 +1720,6 @@ -- Joey Hess Mon, 14 Feb 2011 14:22:17 -0400 -debhelper (8.1.1ubuntu1) natty; urgency=low - - * Merge with Debian (LP: #716844); remaining changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Change default init.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat level - 7. This floods packages with huge upstream changelogs which take - precious CD space. - - add dh_apparmor and autoscripts - - debian/rules: override build target to set executable bit for - dh_apparmor before actually running dh build, that is in order to get - the manpage built for dh_apparmor. - * Dropped changes that got fixed upstream: - - dh_strip, dh_makeshlibs: use triplet-objdump, triplet-objcopy and - triplet-strip from cross-binutils when cross-compiling; Debian #412118. - - -- أحمد المحمودي (Ahmed El-Mahmoudy) Fri, 11 Feb 2011 06:38:43 +0200 - debhelper (8.1.1) unstable; urgency=low * dh_strip, dh_makeshlibs: use triplet-objdump, triplet-objcopy and @@ -2024,26 +1733,6 @@ -- Joey Hess Thu, 10 Feb 2011 19:58:34 -0400 -debhelper (8.1.0ubuntu1) natty; urgency=low - - * Merge with Debian (LP: #714705); remaining changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Change default init.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat level - 7. This floods packages with huge upstream changelogs which take - precious CD space. - - dh_strip, dh_makeshlibs: use triplet-objdump, triplet-objcopy and - triplet-strip from cross-binutils when cross-compiling; Debian #412118. - - add dh_apparmor and autoscripts - - debian/rules: override build target to set executable bit for - dh_apparmor before actually running dh build, that is in order to get - the manpage built for dh_apparmor. - - -- أحمد المحمودي (Ahmed El-Mahmoudy) Mon, 07 Feb 2011 17:16:49 +0200 - debhelper (8.1.0) unstable; urgency=low [ Joey Hess ] @@ -2091,35 +1780,6 @@ -- Joey Hess Sat, 05 Feb 2011 12:00:04 -0400 -debhelper (8.0.0ubuntu2) natty; urgency=low - - * autoscripts postinst-upstart, prerm-upstart, prerm-upstart-norestart - need to use invoke-rc.d instead of calling start/stop directly, so that - they're well-behaved in chroots and other places policy-rc.d may be used. - LP: #690640. - - -- Steve Langasek Sun, 23 Jan 2011 12:38:00 -0800 - -debhelper (8.0.0ubuntu1) maverick; urgency=low - - * Merge with Debian (LP: #614787); remaining changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Change default init.d symlink priority to 40. - - dh_installchangelogs: Do not install upstream changelog in compat level - 7. This floods packages with huge upstream changelogs which take - precious CD space. - - dh_strip, dh_makeshlibs: use triplet-objdump, triplet-objcopy and - triplet-strip from cross-binutils when cross-compiling; Debian #412118. - - add dh_apparmor and autoscripts - * debian/rules: override build target to set executable bit for dh_apparmor - before actually running dh build, that is in order to get the manpage - built for dh_apparmor. - - -- أحمد المحمودي (Ahmed El-Mahmoudy) Tue, 10 Aug 2010 12:45:25 +0300 - debhelper (8.0.0) unstable; urgency=low [ Carsten Hey ] @@ -2181,55 +1841,6 @@ -- Joey Hess Wed, 16 Jun 2010 13:44:48 -0400 -debhelper (7.4.20ubuntu6) maverick; urgency=low - - * autoscripts/postinst-apparmor: don't 'echo' to stdout. As nice as it - looks, it doesn't play well with debconf and isn't translated. Thanks - to dhcp3 for pointing this out. - - -- Jamie Strandboge Fri, 06 Aug 2010 17:11:13 -0500 - -debhelper (7.4.20ubuntu5) maverick; urgency=low - - * autoscripts/postinst-apparmor: - - tweak logic slightly to be more efficient and add some comments - - chmod 644 the local include file - * dh_apparmor: add note about using -p - - -- Jamie Strandboge Fri, 06 Aug 2010 12:04:08 -0500 - -debhelper (7.4.20ubuntu4) maverick; urgency=low - - * add dh_apparmor and autoscripts - - -- Jamie Strandboge Fri, 06 Aug 2010 08:32:41 -0500 - -debhelper (7.4.20ubuntu3) maverick; urgency=low - - * dh_strip, dh_makeshlibs: use triplet-objdump, triplet-objcopy and - triplet-strip from cross-binutils when cross-compiling; Debian #412118. - - -- Loïc Minier Tue, 03 Aug 2010 16:36:12 -0400 - -debhelper (7.4.20ubuntu2) maverick; urgency=low - - * dh_installchangelogs: Do not install upstream changelog in compat level 7. - This floods packages with huge upstream changelogs which take precious CD - space. - - -- Martin Pitt Sun, 01 Aug 2010 21:07:12 +0200 - -debhelper (7.4.20ubuntu1) maverick; urgency=low - - * Merge with Debian (LP: #583352); remaining changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Change default init.d symlink priority to 40. - - -- أحمد المحمودي (Ahmed El-Mahmoudy) Thu, 20 May 2010 14:37:56 +0300 - debhelper (7.4.20) unstable; urgency=low * Drop one more call to dpkg-architecture. Closes: #580837 @@ -2241,21 +1852,6 @@ -- Joey Hess Wed, 12 May 2010 20:06:02 -0400 -debhelper (7.4.19ubuntu1) maverick; urgency=low - - * Merge with Debian; remaining changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Change default init.d symlink priority to 40. - * dh_installudev: Drop conffile migration code, it was only needed until - lucid. - * dh_gconf: Temporarily lower generated gconf dependency to a version which - we actually have. - - -- Martin Pitt Mon, 03 May 2010 11:22:01 +0200 - debhelper (7.4.19) unstable; urgency=low * Memoize architecture comparisons in samearch, and avoid calling @@ -2302,18 +1898,6 @@ -- Joey Hess Tue, 06 Apr 2010 22:06:50 -0400 -debhelper (7.4.15ubuntu1) lucid; urgency=low - - * Resynchronise with Debian. Remaining changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Handle conffile migration from old Ubuntu defaults - (needed until after the next LTS release). - - -- Colin Watson Mon, 22 Feb 2010 12:46:04 +0000 - debhelper (7.4.15) unstable; urgency=low * The fix for #563557 caused some new trouble involving makefile @@ -2329,18 +1913,6 @@ -- Joey Hess Tue, 16 Feb 2010 14:47:10 -0500 -debhelper (7.4.13ubuntu1) lucid; urgency=low - - * Resynchronise with Debian. Remaining changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Handle conffile migration from old Ubuntu defaults - (needed until after the next LTS release). - - -- Colin Watson Thu, 11 Feb 2010 19:02:31 +0000 - debhelper (7.4.13) unstable; urgency=low * dh_compress: Avoid compressing images in /usr/share/info. Closes: #567586 @@ -2366,18 +1938,6 @@ -- Joey Hess Sat, 30 Jan 2010 20:23:02 -0500 -debhelper (7.4.11ubuntu1) lucid; urgency=low - - * Merge with Debian; remaining changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Handle conffile migration from old Ubuntu defaults - (needed until after the next LTS release). - - -- Matthias Klose Thu, 28 Jan 2010 10:44:11 +0100 - debhelper (7.4.11) unstable; urgency=low * dh(1): Minor rewording of documentation of override commands. @@ -2394,22 +1954,6 @@ -- Joey Hess Thu, 31 Dec 2009 11:32:34 -0500 -debhelper (7.4.10ubuntu1) lucid; urgency=low - - [ أحمد المحمودي (Ahmed El-Mahmoudy) ] - * Merge with Debian unstable (LP: #485956). Remaining Ubuntu changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Handle conffile migration from old Ubuntu defaults - (needed until after the next LTS release). - - [ Daniel Holbach ] - * Port merge from 7.4.7 to 7.4.10. - - -- أحمد المحمودي (Ahmed El-Mahmoudy) Wed, 16 Dec 2009 09:01:54 +0100 - debhelper (7.4.10) unstable; urgency=low * Add --parallel option that can be used to enable parallel building @@ -2497,25 +2041,6 @@ -- Joey Hess Wed, 18 Nov 2009 14:44:21 -0500 -debhelper (7.4.3ubuntu2) lucid; urgency=low - - * dh_installinit: Fix merge error which caused init.d-autoscripts to be - run for upstartified packages. (LP: #470326) - - -- Martin Pitt Mon, 02 Nov 2009 13:01:48 +0100 - -debhelper (7.4.3ubuntu1) lucid; urgency=low - - * Merge with Debian unstable. Remaining Ubuntu changes: - - dh_installinit: Add --upstart-only and --onlyscripts-upstart modes. - - Add various autoscripts for above: postinst-upstart, - postinst-upstart-replace, postinst-upstart-restart, - prerm-upstart, prerm-upstart-norestart, preinst-removeconffile. - - dh_installudev: Handle conffile migration from old Ubuntu defaults - (needed until after the next LTS release). - - -- Martin Pitt Fri, 30 Oct 2009 14:11:17 +0100 - debhelper (7.4.3) unstable; urgency=low [ Valery Perrin ] @@ -2597,54 +2122,6 @@ -- Joey Hess Wed, 26 Aug 2009 17:10:53 -0400 -debhelper (7.3.15ubuntu3) karmic; urgency=low - - * dh_installinit: - - Create the upstart-job symlink even when --upstart-only is called, - since this simplifies implementation of... - - --restart-after-upgrade: we can't use the upstart 'restart' command here - because this will give wrong behavior if we're adding a new job to an - existing package; instead just use the standard invoke-rc.d snippet, - which (combined with the above) will at least give us compatibility - with policy-rc.d for preventing stopped jobs from starting on upgrade. - (N.B.: prerm scripts could also safely reuse the invoke-rc.d handling - instead of calling 'stop' directly, but leaving this alone for now - because the current behavior is only minorly buggy.) - - Drop unnecessary UPSTART_ONLY check; --upstart-only should never be set - without having an upstart job so this is redundant. - - postinst-reboot-required is never the right snippet to include here. - - Merge in the final changes to the upstartification as accepted into - debhelper upstream, dropping the --onlyscripts-upstart option from - the documentation but mapping it to --onlyscripts for compatibility in - karmic. - * autoscript/postinst-upstart: typo fix. - - -- Steve Langasek Wed, 30 Sep 2009 13:57:14 -0700 - -debhelper (7.3.15ubuntu2) karmic; urgency=low - - FFE LP: #427356. - - * dh_installinit: handle upstart job files in preference over init - scripts, supplying appropriate maintainer scripts to stop, start or - restart the jobs over upgrades. - - currently unlike init scripts, these accept failures because Upstart - considers "start when already running" failure. - * dh_installinit: --upstart-only will not include maintainer script code - to replace an init script with an upstart job, otherwise a compatibilty - symlink to /lib/init/upstart-job is left in its place - - -- Scott James Remnant Tue, 15 Sep 2009 03:32:13 +0100 - -debhelper (7.3.15ubuntu1) karmic; urgency=low - - * Resynchronise with Debian. Remaining changes: - - dh_installudev: Default priority is now 40 by default. - - dh_installudev: Handle conffile migration from old Ubuntu defaults - (needed until after the next LTS release). - - -- Colin Watson Tue, 25 Aug 2009 11:10:18 +0100 - debhelper (7.3.15) unstable; urgency=low * dh_installudev: Install rules files into new location @@ -2719,17 +2196,6 @@ -- Joey Hess Sat, 01 Aug 2009 15:59:07 -0400 -debhelper (7.3.8ubuntu1) karmic; urgency=low - - * Merge with Debian unstable (LP: #404561). Remaining Ubuntu changes: - - dh_installudev: Default priority is now 40 by default, the target - directory is /lib/udev/rules.d, and rules use '-' as separator instead of - '_'. Remove files from /etc/udev/rules.d unless they are user modified; - if modified and of default priority, take care to rename. - This should eventually go to Debian as well, see Debian #491117. - - -- أحمد المحمودي (Ahmed El-Mahmoudy) Sat, 25 Jul 2009 17:17:24 +0300 - debhelper (7.3.8) unstable; urgency=low * Fix t/override_target to use ./run. Closes: #538315 diff -Nru debhelper-9.20160115ubuntu3/debian/compat debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debian/compat --- debhelper-9.20160115ubuntu3/debian/compat 2015-11-02 20:30:42.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debian/compat 2016-10-01 08:13:53.000000000 +0000 @@ -1 +1 @@ -10 +bleeding-edge-tester diff -Nru debhelper-9.20160115ubuntu3/debian/control debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debian/control --- debhelper-9.20160115ubuntu3/debian/control 2016-01-19 18:54:31.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debian/control 2016-10-17 19:34:19.000000000 +0000 @@ -3,21 +3,47 @@ Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Debhelper Maintainers -Uploaders: Niels Thykier , Bernhard R. Link , Tianon Gravi -Build-Depends: po4a (>= 0.24), dpkg-dev (>= 1.18.0~) -Standards-Version: 3.9.6 -Vcs-Git: git://anonscm.debian.org/debhelper/debhelper.git -Vcs-Browser: https://anonscm.debian.org/cgit/debhelper/debhelper.git +Uploaders: Niels Thykier , + Bernhard R. Link +Build-Depends: dpkg-dev (>= 1.18.0~), + perl:any, + po4a (>= 0.24) +Standards-Version: 3.9.8 +Vcs-Git: https://anonscm.debian.org/git/debhelper/debhelper.git +Vcs-Browser: https://anonscm.debian.org/git/debhelper/debhelper.git Package: debhelper Architecture: all -Depends: ${perl:Depends}, ${misc:Depends}, file (>= 3.23), dpkg (>= 1.16.2), dpkg-dev (>= 1.18.2~), binutils, po-debconf, man-db (>= 2.5.1-1), libdpkg-perl (>= 1.17.14), dh-strip-nondeterminism, autotools-dev +Depends: autotools-dev, + binutils, + dh-autoreconf (>= 12~), + dh-strip-nondeterminism, + dpkg (>= 1.16.2), + dpkg-dev (>= 1.18.2~), + file (>= 3.23), + libdpkg-perl (>= 1.17.14), + man-db (>= 2.5.1-1), + po-debconf, + ${misc:Depends}, + ${perl:Depends} +Breaks: dh-systemd (<< 1.38) +Replaces: dh-systemd (<< 1.38) Suggests: dh-make Multi-Arch: foreign Description: helper programs for debian/rules A collection of programs that can be used in a debian/rules file to - automate common tasks related to building debian packages. Programs - are included to install various files into your package, compress - files, fix file permissions, integrate your package with the debian - menu system, debconf, doc-base, etc. Most debian packages use debhelper + automate common tasks related to building Debian packages. Programs + are included to install various files into your package, compress + files, fix file permissions, integrate your package with the Debian + menu system, debconf, doc-base, etc. Most Debian packages use debhelper as part of their build process. + +Package: dh-systemd +Section: oldlibs +Priority: extra +Architecture: all +Multi-Arch: foreign +Depends: debhelper (>= 9.20160709), + ${misc:Depends}, +Description: debhelper add-on to handle systemd unit files - transitional package + This package is for transitional purposes and can be removed safely. diff -Nru debhelper-9.20160115ubuntu3/debian/copyright debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debian/copyright --- debhelper-9.20160115ubuntu3/debian/copyright 2016-01-10 11:06:37.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debian/copyright 2016-10-01 20:03:48.000000000 +0000 @@ -24,10 +24,6 @@ Copyright: Adam Di Carlo License: GPL-2+ -Files: dh_scrollkeeper -Copyright: Ross Burton -License: GPL-2+ - Files: dh_usrlocal Copyright: Andrew Stribblehill License: GPL-2+ @@ -66,6 +62,10 @@ Copyright: 2011 Jeroen Schot License: GPL-2+ +Files: dh_systemd_enable dh_systemd_start +Copyright: 2013 Michael Stapelberg +License: BSD-3-clause + Files: Debian/Debhelper/Buildsystem* Debian/Debhelper/Dh_Buildsystems.pm Copyright: 2008-2009 Modestas Vainius License: GPL-2+ @@ -94,3 +94,30 @@ The full text of the GPL version 3 is distributed in /usr/share/common-licenses/GPL-3 on Debian systems. +License: BSD-3-clause + All rights reserved. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + . + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + * Neither the name of Michael Stapelberg nor the + names of contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY Michael Stapelberg ''AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL Michael Stapelberg BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff -Nru debhelper-9.20160115ubuntu3/debian/rules debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debian/rules --- debhelper-9.20160115ubuntu3/debian/rules 2016-01-10 10:52:15.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/debian/rules 2016-10-02 06:50:22.000000000 +0000 @@ -5,6 +5,17 @@ # Each debhelper command in this rules file has to be run using ./run, # to ensure that the commands and libraries in the source tree are used, # rather than the installed ones. +# +# We use --no-parallel because the test suite is not thread safe. +# We disable autoreconf to avoid build-depending on it (it does +# nothing for debhelper and it keeps the set of B-D smaller) %: - ./run dh $@ + ./run dh $@ --no-parallel --without autoreconf + +# Disable as they are unneeded (and we can then be sure debhelper +# builds without needing autotools-dev, dh-strip-nondetermism etc.) +override_dh_update_autotools_config override_dh_strip_nondeterminism: + +override_dh_auto_install: + ./run dh_auto_install --destdir=debian/debhelper diff -Nru debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/ant.pm debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/ant.pm --- debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/ant.pm 2015-07-01 17:17:30.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/ant.pm 2016-10-01 08:08:10.000000000 +0000 @@ -32,6 +32,10 @@ if ( -f $d_ant_prop ) { push(@args, '-propertyfile', $d_ant_prop); } + + # Set the username to improve the reproducibility + push(@args, "-Duser.name", "debian"); + $this->doit_in_sourcedir("ant", @args, @_); } diff -Nru debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/autoconf.pm debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/autoconf.pm --- debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/autoconf.pm 2016-01-10 10:01:54.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/autoconf.pm 2016-10-03 18:47:01.000000000 +0000 @@ -19,11 +19,11 @@ my $this=shift; my ($step)=@_; - # Handle configure; the rest - next class (compat with 7.0.x code path) - if ($step eq "configure") { - return 1 if -x $this->get_sourcepath("configure"); - } - return 0; + return 0 unless -x $this->get_sourcepath("configure"); + + # Handle configure explicitly; inherit the rest + return 1 if $step eq "configure"; + return $this->SUPER::check_auto_buildable(@_); } sub configure { @@ -78,6 +78,12 @@ } } +sub test { + my $this=shift; + $this->make_first_existing_target(['test', 'check'], + "VERBOSE=1", @_); +} + 1 # Local Variables: diff -Nru debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/cmake.pm debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/cmake.pm --- debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/cmake.pm 2015-11-06 21:22:08.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/cmake.pm 2016-10-02 19:43:22.000000000 +0000 @@ -67,13 +67,15 @@ if ($ENV{CC}) { push @flags, "-DCMAKE_C_COMPILER=" . $ENV{CC}; } else { - push @flags, "-DCMAKE_C_COMPILER=" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-cc"; + push @flags, "-DCMAKE_C_COMPILER=" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-gcc"; } if ($ENV{CXX}) { push @flags, "-DCMAKE_CXX_COMPILER=" . $ENV{CXX}; } else { - push @flags, "-DCMAKE_CXX_COMPILER=" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-c++"; + push @flags, "-DCMAKE_CXX_COMPILER=" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-g++"; } + push(@flags, "-DPKG_CONFIG_EXECUTABLE=/usr/bin/" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-pkg-config"); + push(@flags, "-DCMAKE_INSTALL_LIBDIR=lib/" . dpkg_architecture_value("DEB_HOST_MULTIARCH")); } # CMake doesn't respect CPPFLAGS, see #653916. @@ -90,6 +92,12 @@ if (-e $this->get_buildpath("CMakeCache.txt")) { $this->doit_in_builddir("tail -v -n +0 CMakeCache.txt"); } + if (-e $this->get_buildpath('CMakeFiles/CMakeOutput.log')) { + $this->doit_in_builddir('tail -v -n +0 CMakeFiles/CMakeOutput.log'); + } + if (-e $this->get_buildpath('CMakeFiles/CMakeError.log')) { + $this->doit_in_builddir('tail -v -n +0 CMakeFiles/CMakeError.log'); + } die $err; } } diff -Nru debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/makefile.pm debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/makefile.pm --- debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/makefile.pm 2015-07-01 17:17:30.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/makefile.pm 2016-10-01 08:13:53.000000000 +0000 @@ -8,9 +8,14 @@ use strict; use warnings; -use Debian::Debhelper::Dh_Lib qw(escape_shell clean_jobserver_makeflags); +use Debian::Debhelper::Dh_Lib qw(dpkg_architecture_value escape_shell clean_jobserver_makeflags is_cross_compiling); use parent qw(Debian::Debhelper::Buildsystem); +my %DEB_DEFAULT_TOOLS = ( + 'CC' => 'gcc', + 'CXX' => 'g++', +); + # make makes things difficult by not providing a simple way to test # whether a Makefile target exists. Using -n and checking for a nonzero # exit status is not good enough, because even with -n, make will @@ -127,6 +132,15 @@ sub build { my $this=shift; + if (ref($this) eq 'Debian::Debhelper::Buildsystem::makefile' and is_cross_compiling()) { + while (my ($var, $tool) = each %DEB_DEFAULT_TOOLS) { + if ($ENV{$var}) { + unshift @_, $var . "=" . $ENV{$var}; + } else { + unshift @_, $var . "=" . dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-" . $tool; + } + } + } $this->do_make(@_); } diff -Nru debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/perl_build.pm debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/perl_build.pm --- debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/perl_build.pm 2015-07-01 17:17:30.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/perl_build.pm 2016-10-02 19:43:22.000000000 +0000 @@ -49,7 +49,7 @@ if ($ENV{LDFLAGS} && ! compat(8)) { push @flags, "--config", "ld=$Config{ld} $ENV{CFLAGS} $ENV{LDFLAGS}"; } - $this->do_perl("Build.PL", "--installdirs", "vendor", @flags, @_); + $this->do_perl("-I.", "Build.PL", "--installdirs", "vendor", @flags, @_); } sub build { diff -Nru debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/perl_makemaker.pm debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/perl_makemaker.pm --- debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/perl_makemaker.pm 2015-07-01 17:17:30.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/perl_makemaker.pm 2016-10-02 19:43:22.000000000 +0000 @@ -55,7 +55,7 @@ push @flags, "LD=$Config{ld} $ENV{CFLAGS} $ENV{LDFLAGS}"; } - $this->doit_in_sourcedir("perl", "Makefile.PL", "INSTALLDIRS=vendor", + $this->doit_in_sourcedir("perl", "-I.", "Makefile.PL", "INSTALLDIRS=vendor", # if perl_build is not tested first, need to pass packlist # option to handle fallthrough case (compat(7) ? "create_packlist=0" : ()), diff -Nru debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/python_distutils.pm debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/python_distutils.pm --- debhelper-9.20160115ubuntu3/Debian/Debhelper/Buildsystem/python_distutils.pm 2015-07-01 17:17:30.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Buildsystem/python_distutils.pm 2016-10-02 19:43:22.000000000 +0000 @@ -38,7 +38,7 @@ sub not_our_cfg { my $this=shift; my $ret; - if (open(my $cfg, $this->get_buildpath(".pydistutils.cfg"))) { + if (open(my $cfg, '<', $this->get_buildpath(".pydistutils.cfg"))) { $ret = not "# Created by dh_auto\n" eq <$cfg>; close $cfg; } @@ -91,16 +91,16 @@ # built in a clean chroot. my @dbg; - open (CONTROL, 'debian/control') || + open (my $fd, '<', 'debian/control') || error("cannot read debian/control: $!\n"); - foreach my $builddeps (join('', ) =~ + foreach my $builddeps (join('', <$fd>) =~ /^Build-Depends[^:]*:.*\n(?:^[^\w\n].*\n)*/gmi) { while ($builddeps =~ /(python[^, ]*-dbg)/g) { push @dbg, $1; } } - close CONTROL; + close($fd); return @dbg; } diff -Nru debhelper-9.20160115ubuntu3/Debian/Debhelper/Dh_Buildsystems.pm debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Dh_Buildsystems.pm --- debhelper-9.20160115ubuntu3/Debian/Debhelper/Dh_Buildsystems.pm 2015-11-06 21:10:49.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Dh_Buildsystems.pm 2016-10-01 08:13:53.000000000 +0000 @@ -31,6 +31,11 @@ "qmake_qt4", ); +our @THIRD_PARTY_BUILDSYSTEMS = ( + 'maven', + 'gradle', +); + my $opt_buildsys; my $opt_sourcedir; my $opt_builddir; @@ -38,12 +43,12 @@ my $opt_parallel; sub create_buildsystem_instance { - my $system=shift; - my %bsopts=@_; + my ($system, $required, %bsopts) = @_; my $module = "Debian::Debhelper::Buildsystem::$system"; eval "use $module"; if ($@) { + return if not $required; error("unable to load build system class '$system': $@"); } @@ -88,15 +93,25 @@ sub load_buildsystem { my $system=shift; my $step=shift; + my $system_options; + if (defined($system) && ref($system) eq 'HASH') { + $system_options = $system; + $system = $system_options->{'system'}; + } if (defined $system) { - my $inst = create_buildsystem_instance($system, @_); + my $inst = create_buildsystem_instance($system, 1, @_); return $inst; } else { # Try to determine build system automatically my @buildsystems; foreach $system (@BUILDSYSTEMS) { - push @buildsystems, create_buildsystem_instance($system, @_); + push @buildsystems, create_buildsystem_instance($system, 1, @_); + } + if (!$system_options || $system_options->{'enable-thirdparty'}) { + foreach $system (@THIRD_PARTY_BUILDSYSTEMS) { + push @buildsystems, create_buildsystem_instance($system, 0, @_); + } } return autoselect_buildsystem($step, @buildsystems); } @@ -113,7 +128,7 @@ my $name = basename($module_path); $name =~ s/\.pm$//; next if exists $buildsystems{$name}; - $buildsystems{$name} = create_buildsystem_instance($name, @_); + $buildsystems{$name} = create_buildsystem_instance($name, 1, @_); } } } @@ -126,8 +141,16 @@ delete $buildsystems{$name}; } + foreach my $name (@THIRD_PARTY_BUILDSYSTEMS) { + next if not exists $buildsystems{$name}; + my $inst = $buildsystems{$name}; + $inst->{thirdparty} = 1; + push(@buildsystems, $inst); + delete($buildsystems{$name}); + } + # The rest are 3rd party build systems - foreach my $name (keys %buildsystems) { + foreach my $name (sort(keys(%buildsystems))) { my $inst = $buildsystems{$name}; $inst->{thirdparty} = 1; push @buildsystems, $inst; @@ -182,7 +205,8 @@ my $step=shift; my @buildsystems = load_all_buildsystems(); - my $auto = autoselect_buildsystem($step, grep { ! $_->{thirdparty} } @buildsystems); + my %auto_selectable = map { $_ => 1 } @THIRD_PARTY_BUILDSYSTEMS; + my $auto = autoselect_buildsystem($step, grep { ! $_->{thirdparty} || $auto_selectable{$_->NAME} } @buildsystems); my $specified; # List build systems (including auto and specified status) diff -Nru debhelper-9.20160115ubuntu3/Debian/Debhelper/Dh_Getopt.pm debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Dh_Getopt.pm --- debhelper-9.20160115ubuntu3/Debian/Debhelper/Dh_Getopt.pm 2015-09-02 20:49:46.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Dh_Getopt.pm 2016-10-01 16:34:41.000000000 +0000 @@ -33,6 +33,13 @@ $option eq 's' or $option eq 'same-arch') { push @{$dh{DOPACKAGES}}, getpackages('arch'); $dh{DOARCH}=1; + if ($option eq 's' or $option eq 'same-arch') { + if (compat(10)) { + warning('-s/--same-arch is deprecated; please use -a/--arch instead'); + } else { + error('-s/--same-arch is removed in compat 11; please use -a/--arch instead'); + } + } } elsif ($option eq 'p' or $option eq 'package') { push @{$dh{DOPACKAGES}}, $value; @@ -42,9 +49,11 @@ } } -# Adds packages to the list of debug packages. -sub AddDebugPackage { my($option,$value)=@_; - push @{$dh{DEBUGPACKAGES}}, $value; +# Sets a package as the debug package. +sub SetDebugPackage { my($option,$value)=@_; + $dh{DEBUGPACKAGE} = $value; + # For backwards compatibility + $dh{DEBUGPACKAGES} = [$value]; } # Add a package to a list of packages that should not be acted on. @@ -96,15 +105,17 @@ "remaining-packages" => \$dh{EXCLUDE_LOGGED}, - "dbg-package=s" => \&AddDebugPackage, + "dbg-package=s" => \&SetDebugPackage, "s" => \&AddPackage, "same-arch" => \&AddPackage, "n" => \$dh{NOSCRIPTS}, "noscripts" => \$dh{NOSCRIPTS}, + "no-scripts" => \$dh{NOSCRIPTS}, "o" => \$dh{ONLYSCRIPTS}, "onlyscripts" => \$dh{ONLYSCRIPTS}, + "only-scripts" => \$dh{ONLYSCRIPTS}, "X=s" => \&AddExclude, "exclude=s" => \&AddExclude, diff -Nru debhelper-9.20160115ubuntu3/Debian/Debhelper/Dh_Lib.pm debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Dh_Lib.pm --- debhelper-9.20160115ubuntu3/Debian/Debhelper/Dh_Lib.pm 2016-03-31 17:57:01.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Dh_Lib.pm 2016-10-06 15:57:54.000000000 +0000 @@ -10,14 +10,27 @@ use constant { # Lowest compat level supported - 'MIN_COMPAT_LEVEL' => 4, + 'MIN_COMPAT_LEVEL' => 5, # Lowest compat level that does *not* cause deprecation # warnings - 'LOWEST_NON_DEPRECATED_COMPAT_LEVEL' => 5, + 'LOWEST_NON_DEPRECATED_COMPAT_LEVEL' => 9, + # Highest "open-beta" compat level. Remember to notify + # debian-devel@l.d.o before bumping this. + 'BETA_TESTER_COMPAT' => 10, # Highest compat level permitted - 'MAX_COMPAT_LEVEL' => 10, + 'MAX_COMPAT_LEVEL' => 11, }; +my %NAMED_COMPAT_LEVELS = ( + # The bleeding-edge compat level is deliberately not documented. + # You are welcome to use it, but please subscribe to the git + # commit mails if you do. There is no heads up on changes for + # bleeding-edge testers as it is mainly intended for debhelper + # developers. + 'bleeding-edge-tester' => MAX_COMPAT_LEVEL, + 'beta-tester' => BETA_TESTER_COMPAT, +); + use Exporter qw(import); use vars qw(@EXPORT %dh); @EXPORT=qw(&init &doit &doit_noerror &complex_doit &verbose_print &error @@ -36,10 +49,9 @@ &get_source_date_epoch &is_cross_compiling &generated_file &autotrigger &package_section &restore_file_on_clean &restore_all_files + &open_gz &reset_perm_and_owner ); -my $max_compat=10; - # The Makefile changes this if debhelper is installed in a PREFIX. my $prefix="/usr"; @@ -125,7 +137,7 @@ # on, if it's exiting successfully. my $write_log=1; sub END { - if ($? == 0 && $write_log && (compat(9) || $ENV{DH_INTERNAL_OVERRIDE})) { + if ($? == 0 && $write_log && (compat(9, 1) || $ENV{DH_INTERNAL_OVERRIDE})) { write_log(basename($0), @{$dh{DOPACKAGES}}); } } @@ -202,7 +214,6 @@ # shell, escaping metacharacters and quoting arguments that contain spaces. sub escape_shell { my @args=@_; - my $line=""; my @ret; foreach my $word (@args) { if ($word=~/\s/) { @@ -310,7 +321,13 @@ doit('install', '-p', '-m0644', @_); } sub install_dir { - doit('install', '-d', @_); + my @to_create = grep { not -d $_ } @_; + doit('install', '-d', @to_create) if @to_create; +} +sub reset_perm_and_owner { + my ($mode, @paths) = @_; + doit('chmod', $mode, '--', @paths); + doit('chown', '0:0', '--', @paths); } # Run a command that may have a huge number of arguments, like xargs does. @@ -413,43 +430,46 @@ if (! defined $c) { $c=1; if (-e 'debian/compat') { - open (COMPAT_IN, "debian/compat") || error "debian/compat: $!"; - my $l=; - close COMPAT_IN; + open(my $compat_in, '<', "debian/compat") || error "debian/compat: $!"; + my $l=<$compat_in>; + close($compat_in); if (! defined $l || ! length $l) { - warning("debian/compat is empty, assuming level $c") - unless defined $ENV{DH_COMPAT}; + error("debian/compat must contain a positive number (found an empty first line)"); + } else { chomp $l; $c=$l; $c =~ s/^\s*+//; $c =~ s/\s*+$//; - if ($c !~ m/^\d+$/) { - error("debian/compat must contain a postive number (found: \"$c\")"); + if (exists($NAMED_COMPAT_LEVELS{$c})) { + $c = $NAMED_COMPAT_LEVELS{$c}; + } elsif ($c !~ m/^\d+$/) { + error("debian/compat must contain a positive number (found: \"$c\")"); } } } - else { - warning("No compatibility level specified in debian/compat"); - warning("This package will soon FTBFS; time to fix it!"); + elsif (not $nowarn) { + error("Please specify the compatibility level in debian/compat"); } if (defined $ENV{DH_COMPAT}) { $c=$ENV{DH_COMPAT}; } } - if ($c < MIN_COMPAT_LEVEL) { - error("Compatibility levels before ${\MIN_COMPAT_LEVEL} are no longer supported (level $c requested)"); - } + if (not $nowarn) { + if ($c < MIN_COMPAT_LEVEL) { + error("Compatibility levels before ${\MIN_COMPAT_LEVEL} are no longer supported (level $c requested)"); + } - if ($c < LOWEST_NON_DEPRECATED_COMPAT_LEVEL && ! $warned_compat && ! $nowarn) { - warning("Compatibility levels before ${\LOWEST_NON_DEPRECATED_COMPAT_LEVEL} are deprecated (level $c in use)"); - $warned_compat=1; - } + if ($c < LOWEST_NON_DEPRECATED_COMPAT_LEVEL && ! $warned_compat) { + warning("Compatibility levels before ${\LOWEST_NON_DEPRECATED_COMPAT_LEVEL} are deprecated (level $c in use)"); + $warned_compat=1; + } - if ($c > MAX_COMPAT_LEVEL) { - error("Sorry, but ${\MAX_COMPAT_LEVEL} is the highest compatibility level supported by this debhelper."); + if ($c > MAX_COMPAT_LEVEL) { + error("Sorry, but ${\MAX_COMPAT_LEVEL} is the highest compatibility level supported by this debhelper."); + } } return ($c <= $num); @@ -568,7 +588,7 @@ } # Is this a native Debian package? - if ($dh{VERSION}=~m/.*-/) { + if (index($dh{VERSION}, '-') > -1) { return $isnative_cache{$package}=0; } else { @@ -631,11 +651,11 @@ my $infile = shift; my $outfile = shift; if (ref($sed) eq 'CODE') { - open(IN, $infile) or die "$infile: $!"; - open(OUT, ">>$outfile") or die "$outfile: $!"; - while () { $sed->(); print OUT } - close(OUT) or die "$outfile: $!"; - close(IN) or die "$infile: $!"; + open(my $in, '<', $infile) or die "$infile: $!"; + open(my $out, '>>', $outfile) or die "$outfile: $!"; + while (<$in>) { $sed->(); print {$out} $_; } + close($out) or die "$outfile: $!"; + close($in) or die "$infile: $!"; } else { complex_doit("sed \"$sed\" $infile >> $outfile"); @@ -655,7 +675,7 @@ if (not exists($VALID_TRIGGER_TYPES{$trigger_type})) { require Carp; - confess("Invalid/unknown trigger ${trigger_type}"); + Carp::confess("Invalid/unknown trigger ${trigger_type}"); } return if $dh{NO_ACT}; @@ -670,7 +690,7 @@ open(my $ofd, '>', "${triggers_file}.new") or error("open ${triggers_file}.new failed: $!"); while (my $line = <$ifd>) { - next if $line =~ m{\A \Q${triggers_file}\E \s+ + next if $line =~ m{\A \Q${trigger_type}\E \s+ \Q${trigger_target}\E (?:\s|\Z) }x; print {$ofd} $line; @@ -688,9 +708,7 @@ my $dir = "debian/.debhelper/generated/${package}"; my $path = "${dir}/${filename}"; $mkdirs //= 1; - if ($mkdirs and not -d $dir) { - install_dir($dir); - } + install_dir($dir) if $mkdirs; return $path; } @@ -727,8 +745,8 @@ my $line=""; if (-e $substvarfile) { my %items; - open(SUBSTVARS_IN, "$substvarfile") || error "read $substvarfile: $!"; - while () { + open(my $in, '<', $substvarfile) || error "read $substvarfile: $!"; + while (<$in>) { chomp; if (/^\Q$substvar\E=(.*)/) { %items = map { $_ => 1} split(", ", $1); @@ -736,7 +754,7 @@ last; } } - close SUBSTVARS_IN; + close($in); if (! $remove) { $items{$str}=1; } @@ -777,14 +795,13 @@ delete $ENV{"DH_CONFIG_ACT_ON_PACKAGES"}; } else { - open (DH_FARRAY_IN, $file) || error("cannot read $file: $!"); + open (DH_FARRAY_IN, '<', $file) || error("cannot read $file: $!"); } my @ret; while () { chomp; - # Only ignore comments and empty lines in v5 mode. - if (! compat(4) && ! $x) { + if (not $x) { next if /^#/ || /^$/; } my @line; @@ -803,7 +820,14 @@ push @ret, [@line]; } - close DH_FARRAY_IN || error("problem reading $file: $!"); + if (!close(DH_FARRAY_IN)) { + if ($x) { + error("Error closing fd/process for $file: $!") if $!; + error_exitcode("$file (executable config)"); + } else { + error("problem reading $file: $!"); + } + } return @ret; } @@ -890,18 +914,18 @@ # Returns source package name sub sourcepackage { - open (CONTROL, 'debian/control') || + open (my $fd, '<', 'debian/control') || error("cannot read debian/control: $!\n"); - while () { + while (<$fd>) { chomp; s/\s+$//; if (/^Source:\s*(.*)/i) { - close CONTROL; + close($fd); return $1; } } - close CONTROL; + close($fd); error("could not find Source: line in control file."); } @@ -937,9 +961,9 @@ if (exists $ENV{'DEB_BUILD_PROFILES'}) { @profiles=split /\s+/, $ENV{'DEB_BUILD_PROFILES'}; } - open (CONTROL, 'debian/control') || + open (my $fd, '<', 'debian/control') || error("cannot read debian/control: $!\n"); - while () { + while (<$fd>) { chomp; s/\s+$//; if (/^Package:\s*(.*)/i) { @@ -1008,7 +1032,7 @@ $section=''; } } - close CONTROL; + close($fd); return @{$packages_by_type{$type}}; } @@ -1081,14 +1105,12 @@ # Just get rid of any #DEBHELPER# in the script. complex_doit("sed s/#DEBHELPER#// < $file > $tmp/DEBIAN/$script"); } - doit("chown","0:0","$tmp/DEBIAN/$script"); - doit("chmod","0755","$tmp/DEBIAN/$script"); + reset_perm_and_owner('0755', "$tmp/DEBIAN/$script"); } elsif ( -f "debian/$ext$script.debhelper" ) { complex_doit("printf '#!/bin/sh\nset -e\n' > $tmp/DEBIAN/$script"); complex_doit("cat debian/$ext$script.debhelper >> $tmp/DEBIAN/$script"); - doit("chown","0:0","$tmp/DEBIAN/$script"); - doit("chmod","0755","$tmp/DEBIAN/$script"); + reset_perm_and_owner('0755', "$tmp/DEBIAN/$script"); } } @@ -1111,9 +1133,7 @@ # Make sure the directory the link will be in exists. my $basedir=dirname("$tmp/$dest"); - if (! -e $basedir) { - install_dir($basedir); - } + install_dir($basedir); # Policy says that if the link is all within one toplevel # directory, it should be relative. If it's between @@ -1187,7 +1207,7 @@ # the FD used to communicate with it is actually not available. sub is_make_jobserver_unavailable { if (exists $ENV{MAKEFLAGS} && - $ENV{MAKEFLAGS} =~ /(?:^|\s)--jobserver-fds=(\d+)/) { + $ENV{MAKEFLAGS} =~ /(?:^|\s)--jobserver-(?:fds|auth)=(\d+)/) { if (!open(my $in, "<&$1")) { return 1; # unavailable } @@ -1203,8 +1223,8 @@ # Cleans out jobserver options from MAKEFLAGS. sub clean_jobserver_makeflags { if (exists $ENV{MAKEFLAGS}) { - if ($ENV{MAKEFLAGS} =~ /(?:^|\s)--jobserver-fds=(\d+)/) { - $ENV{MAKEFLAGS} =~ s/(?:^|\s)--jobserver-fds=\S+//g; + if ($ENV{MAKEFLAGS} =~ /(?:^|\s)--jobserver-(?:fds|auth)=\d+/) { + $ENV{MAKEFLAGS} =~ s/(?:^|\s)--jobserver-(?:fds|auth)=\S+//g; $ENV{MAKEFLAGS} =~ s/(?:^|\s)-j\b//g; } delete $ENV{MAKEFLAGS} if $ENV{MAKEFLAGS} =~ /^\s*$/; @@ -1259,6 +1279,11 @@ return if compat(8); + # Export PERL_USE_UNSAFE_INC as a transitional step to allow us + # to remove . from @INC by default without breaking packages which + # rely on this [CVE-2016-1238] + $ENV{PERL_USE_UNSAFE_INC}=1; + eval "use Dpkg::BuildFlags"; if ($@) { warning "unable to load build flags: $@"; @@ -1302,7 +1327,7 @@ $mode = 0644 if not defined($mode); if (!compat(8) and -x $source) { - my @sstat = stat($source) || error("cannot stat $source: $!"); + my @sstat = stat(_) || error("cannot stat $source: $!"); open(my $tfd, '>', $target) || error("cannot open $target: $!"); chmod($mode, $tfd) || error("cannot chmod $target: $!"); open(my $sfd, '-|', $source) || error("cannot run $source: $!"); @@ -1328,9 +1353,7 @@ my $bucket_index = 'debian/.debhelper/bucket/index'; my $bucket_dir = 'debian/.debhelper/bucket/files'; my $checksum; - if (not -d $bucket_dir) { - install_dir($bucket_dir); - } + install_dir($bucket_dir); if ($file =~ m{^/}) { error("restore_file_on_clean requires a path relative to the package dir"); } @@ -1399,6 +1422,21 @@ return; } +sub open_gz { + my ($file) = @_; + my $fd; + eval { + require PerlIO::gzip; + }; + if ($@) { + open($fd, '-|', 'gzip', '-dc', $file) + or die("gzip -dc $file failed: $!"); + } else { + open($fd, '<:gzip', $file) + or die("open $file [<:gzip] failed: $!"); + } + return $fd; +} 1 diff -Nru debhelper-9.20160115ubuntu3/Debian/Debhelper/Sequence/systemd.pm debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Sequence/systemd.pm --- debhelper-9.20160115ubuntu3/Debian/Debhelper/Sequence/systemd.pm 1970-01-01 00:00:00.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Debian/Debhelper/Sequence/systemd.pm 2016-10-01 08:13:53.000000000 +0000 @@ -0,0 +1,14 @@ +#!/usr/bin/perl +use warnings; +use strict; +use Debian::Debhelper::Dh_Lib; + +# dh_systemd_enable runs unconditionally, and before dh_installinit, so that +# the latter can use invoke-rc.d and all symlinks are already in place. +insert_before("dh_installinit", "dh_systemd_enable"); + +# dh_systemd_start handles the case where there is no corresponding init +# script, so it runs after dh_installinit. +insert_after("dh_installinit", "dh_systemd_start"); + +1 diff -Nru debhelper-9.20160115ubuntu3/dh debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh --- debhelper-9.20160115ubuntu3/dh 2016-01-14 21:33:45.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh 2016-10-02 15:28:45.000000000 +0000 @@ -62,6 +62,8 @@ List all available addons. +This can be used without a F file. + =item B<--no-act> Prints commands that would run for a given sequence, but does not run them. @@ -127,15 +129,6 @@ dh_fixperms chmod 4755 debian/foo/usr/bin/foo -If your package uses autotools and you want to freshen F and -F with newer versions from the B package -at build time, you can use some commands provided in B -that automate it, like this. - - #!/usr/bin/make -f - %: - dh $@ --with autotools_dev - Python tools are not run by dh by default, due to the continual change in that area. (Before compatibility level v9, dh does run B.) Here is how to use B. @@ -222,15 +215,23 @@ If you're curious about B's internals, here's how it works under the hood. -Each debhelper command will record when it's successfully run in -F. (Which B deletes.) So B can tell -which commands have already been run, for which packages, and skip running -those commands again. - -Each time B is run, it examines the log, and finds the last logged command -that is in the specified sequence. It then continues with the next command -in the sequence. The B<--until>, B<--before>, B<--after>, and B<--remaining> -options can override this behavior. +In compat 10 (or later), B creates a stamp file +F after the build step(s) are complete +to avoid re-running them. Inside an override target, B commands +will create a log file F to keep track +of which packages the command(s) have been run for. These log files +are then removed once the override target is complete. + +In compat 9 or earlier, each debhelper command will record +when it's successfully run in F. (Which +B deletes.) So B can tell which commands have already +been run, for which packages, and skip running those commands again. + +Each time B is run (in compat 9 or earlier), it examines the log, +and finds the last logged command that is in the specified +sequence. It then continues with the next command in the sequence. The +B<--until>, B<--before>, B<--after>, and B<--remaining> options can +override this behavior (though they were removed in compat 10). A sequence can also run dependent targets in debian/rules. For example, the "binary" sequence runs the "install" target. @@ -287,6 +288,15 @@ # (and comes first so python-central loads later and can disable it). unshift @ARGV, "--with=python-support"; } +if (not compat(9, 1)) { + # Enable autoreconf'ing by default in compat 10 or later. Use the + # sequence add-on so existing --without=autoreconf + unshift(@ARGV, "--with=autoreconf"); + # Enable systemd support by default in compat 10 or later. + unshift(@ARGV, "--with=systemd"); +} + +inhibit_log(); init(options => { "until=s" => \$dh{UNTIL}, @@ -311,7 +321,6 @@ # Bundling does not work well since there are unknown options. bundling => 0, ); -inhibit_log(); set_buildflags(); warn_deprecated(); @@ -408,9 +417,7 @@ dh_link dh_installwm dh_installxfonts -}, - optional_command('dh_strip_nondeterminism'), -qw{ + dh_strip_nondeterminism dh_compress dh_fixperms }); @@ -714,12 +721,16 @@ next; } if (my $stamp_file = stamp_target($command)) { - my @contents; + my %seen; + next if $dh{NO_ACT}; open(my $fd, '+>>', $stamp_file) or error("open($stamp_file, rw) failed: $!"); # Seek to the beginning seek($fd, 0, 0) or error("seek($stamp_file) failed: $!"); - @contents = map { chomp } <$fd>; - for my $pkg (@todo) { + while (my $line = <$fd>) { + chomp($line); + $seen{$line} = 1; + } + for my $pkg (grep { not exists $seen{$_} } @todo) { print {$fd} "$pkg\n"; } close($fd) or error("close($stamp_file) failed: $!"); @@ -831,6 +842,9 @@ push @options, $opt unless grep { $_ eq $opt } @options; } + # Discard any override log files before calling the override + # target + complex_doit("rm","-f","debian/*.debhelper.log") if not compat(9); # This passes the options through to commands called # inside the target. $ENV{DH_INTERNAL_OPTIONS}=join("\x1e", @options); @@ -838,7 +852,6 @@ run("debian/rules", $override); delete $ENV{DH_INTERNAL_OPTIONS}; delete $ENV{DH_INTERNAL_OVERRIDE}; - complex_doit("rm","-f","debian/*.debhelper.log") if not compat(9); # Update log for overridden command now that it has # finished successfully. @@ -1014,10 +1027,16 @@ foreach my $package (@packages) { foreach my $skipinfo (@skipinfo) { - if ($skipinfo=~/^tmp\((.*)\)$/) { - my $need=$1; - my $tmp=tmpdir($package); - return 0 if -e "$tmp/$need"; + if ($skipinfo=~/^([a-zA-Z0-9-_]+)\((.*)\)$/) { + my $type = $1; + my $need = $2; + if ($type eq 'tmp') { + my $tmp = tmpdir($package); + return 0 if -e "$tmp/$need"; + } else { + # Unknown hint - make no assumptions + return 0; + } } elsif (pkgfile($package, $skipinfo) ne '') { return 0; @@ -1027,18 +1046,6 @@ return 1; } -sub optional_command { - my ($command) = @_; - - foreach my $dir (split(':', $ENV{'PATH'})) { - if (open(my $h, '<', "$dir/$command")) { - close($h); - return ($command); - } - } - return; -} - sub extract_skipinfo { my $command=shift; diff -Nru debhelper-9.20160115ubuntu3/dh_bugfiles debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_bugfiles --- debhelper-9.20160115ubuntu3/dh_bugfiles 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_bugfiles 2016-10-02 20:40:48.000000000 +0000 @@ -107,7 +107,7 @@ install_dir($dir); doit("mv", "${dir}.tmp", "$dir/script"); } - elsif (! -d $dir) { + else { install_dir($dir); } while (my ($type, $srcfile) = each(%bugfiles)) { @@ -121,10 +121,10 @@ # Ensure that the bug script is executable if (-f $dir) { - chmod 0755, $dir; + reset_perm_and_owner('0755', $dir); } elsif (-f "$dir/script") { - chmod 0755, "$dir/script"; + reset_perm_and_owner('0755', "$dir/script"); } } diff -Nru debhelper-9.20160115ubuntu3/dh_builddeb debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_builddeb --- debhelper-9.20160115ubuntu3/dh_builddeb 2016-01-14 19:51:16.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_builddeb 2016-10-02 20:06:36.000000000 +0000 @@ -97,9 +97,7 @@ my ($package, $destdir, $cmd, $rename_sub) = @_; my $build_dir = "debian/.debhelper/scratch-space/build-${package}"; my ($dpkg_filename, $desired_filename); - if ( ! -d $build_dir) { - install_dir($build_dir); - } + install_dir($build_dir); doit(@${cmd}, $build_dir); opendir(my $fd, $build_dir); for my $name (readdir($fd)) { diff -Nru debhelper-9.20160115ubuntu3/dh_clean debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_clean --- debhelper-9.20160115ubuntu3/dh_clean 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_clean 2016-10-01 16:37:45.000000000 +0000 @@ -50,6 +50,8 @@ This is deprecated, use L instead. +The option is removed in compat 11. + =item B<-d>, B<--dirs-only> Only clean the package build directories, do not clean up any other files @@ -72,17 +74,6 @@ =cut -if ( not -f 'debian/compat' and not $ENV{'DH_COMPAT'}) { - # Temporary work around - Permit a missing compat to work with - # cdbs's feature of auto-creating a d/compat file. - # - Auto-bump to compat 5 to match cdbs (Not that it matters a lot, - # since there is no compat conditions for 4 or less) - warning("Pretending DH_COMPAT was set to 5"); - warning(" - this is a temporary measure to avoid FTBFS in packages"); - warning(" relying on cdbs to set debian/compat to 5 during the build"); - $ENV{'DH_COMPAT'} = 5; -} - init(options => { "dirs-only" => \$dh{D_FLAG}, }); @@ -90,6 +81,9 @@ if ($dh{K_FLAG}) { # dh_prep will be emulated (mostly) by the code below. + if (not compat(10)) { + error("The -k option is not supported in compat 11; use dh_prep instead"); + } warning("dh_clean -k is deprecated; use dh_prep instead"); } diff -Nru debhelper-9.20160115ubuntu3/dh_compress debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_compress --- debhelper-9.20160115ubuntu3/dh_compress 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_compress 2016-10-02 17:20:27.000000000 +0000 @@ -110,7 +110,7 @@ # complete list of such extensions: ".gz", ".z", ".taz", # ".tgz", "-gz", "-z", "_z" push @files, split(/\n/,` - find usr/info usr/share/info usr/man usr/share/man usr/X11*/man -type f ! -iname "*.gz" \\ + find usr/share/info usr/share/man -type f ! -iname "*.gz" \\ ! -iname "*.gif" ! -iname "*.png" ! -iname "*.jpg" \\ ! -iname "*.jpeg" \\ 2>/dev/null || true; @@ -175,7 +175,13 @@ } # normalize file names and remove duplicates - my @normalized = map abs2rel(abs_path($_)), @f; + my $norm_from_dir = $tmp; + if ($norm_from_dir !~ m{^/}) { + $norm_from_dir = "${olddir}/${tmp}"; + } + my $resolved = abs_path($norm_from_dir) + or error("Cannot resolve $norm_from_dir: $!"); + my @normalized = normalize_paths($norm_from_dir, $resolved, $tmp, @f); my %uniq_f; @uniq_f{@normalized} = (); @f = sort keys %uniq_f; @@ -191,7 +197,7 @@ # they are again. foreach (keys %hardlinks) { # Remove old file. - doit("rm","-f","$_"); + doit("rm","-f","$_"); # Make new hardlink. doit("ln","$hardlinks{$_}.gz","$_.gz"); } @@ -220,6 +226,29 @@ } while $changed; } +sub normalize_paths { + my ($cwd, $cwd_resolved, $tmp, @paths) = @_; + my @normalized; + my $prefix = qr{\Q${tmp}/}; + + for my $path (@paths) { + my $abs = abs_path($path); + if (not defined($abs)) { + my $err = $!; + my $alt = $path; + if ($alt =~ s/^$prefix//) { + $abs = abs_path($alt); + } + error(qq{Cannot resolve "$path": $err (relative to "${cwd}")}) + if (not defined($abs)); + warning(qq{Interpreted "$path" as "$alt"}); + } + error("${abs} does not exist") if not -e $abs; + push(@normalized, abs2rel($abs, $cwd_resolved)); + } + return @normalized; +} + =head1 SEE ALSO L diff -Nru debhelper-9.20160115ubuntu3/dh_desktop debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_desktop --- debhelper-9.20160115ubuntu3/dh_desktop 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_desktop 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ -#!/usr/bin/perl - -=head1 NAME - -dh_desktop - deprecated no-op - -=cut - -use strict; -use warnings; -use Debian::Debhelper::Dh_Lib; - -=head1 SYNOPSIS - -B [S>] - -=head1 DESCRIPTION - -B was a debhelper program that registers F<.desktop> files. -However, it no longer does anything, and is now deprecated. - -If a package ships F files, they just need to be installed in the -correct location (F) and they will be registered by -the appropriate tools for the corresponding desktop environments. - -=cut - -init(); - -warning("This program is deprecated, and does nothing anymore."); - -=head1 SEE ALSO - -L - -This program is a part of debhelper. - -=head1 AUTHOR - -Ross Burton - -=cut - -# Local Variables: -# indent-tabs-mode: t -# tab-width: 4 -# cperl-indent-level: 4 -# End: diff -Nru debhelper-9.20160115ubuntu3/dh_fixperms debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_fixperms --- debhelper-9.20160115ubuntu3/dh_fixperms 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_fixperms 2016-10-02 20:38:25.000000000 +0000 @@ -86,7 +86,7 @@ "| xargs -0r chmod 0755"); # Executable man pages are a bad thing.. - complex_doit("find $tmp/usr/share/man $tmp/usr/man/ $tmp/usr/X11*/man/ -type f", + complex_doit("find $tmp/usr/share/man -type f", "$find_options -print0 2>/dev/null | xargs -0r chmod 0644"); # ..and header files .. @@ -124,10 +124,10 @@ "! -name 'script' $find_options -print0", "2>/dev/null | xargs -0r chmod 644"); if ( -f "$tmp/usr/share/bug/$package/script" ) { - doit('chmod', '0755', "$tmp/usr/share/bug/$package/script"); + reset_perm_and_owner('0755', "$tmp/usr/share/bug/$package/script"); } } elsif ( -f "$tmp/usr/share/bug/$package" ) { - doit('chmod', '0755', "$tmp/usr/share/bug/$package"); + reset_perm_and_owner('0755', "$tmp/usr/share/bug/$package"); } # Lintian overrides should never be executable, too. diff -Nru debhelper-9.20160115ubuntu3/dh_gconf debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_gconf --- debhelper-9.20160115ubuntu3/dh_gconf 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_gconf 2016-10-02 20:06:36.000000000 +0000 @@ -72,7 +72,7 @@ } my $defaults = pkgfile($package,"gconf-defaults"); if ($defaults ne '') { - doit("mkdir","-p","$tmp/usr/share/gconf/defaults"); + install_dir("$tmp/usr/share/gconf/defaults"); install_file($defaults, "$tmp/usr/share/gconf/defaults/${priority}_$package"); } @@ -81,7 +81,7 @@ # Migrate schemas from /etc/gconf/schemas to /usr/share/gconf/schemas if (-d $old_schemas_dir) { - doit("mkdir","-p",$new_schemas_dir) unless -d $new_schemas_dir; + install_dir($new_schemas_dir); complex_doit("mv $old_schemas_dir/*.schemas $new_schemas_dir/"); doit("rmdir","-p","--ignore-fail-on-non-empty",$old_schemas_dir); } diff -Nru debhelper-9.20160115ubuntu3/dh_gencontrol debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_gencontrol --- debhelper-9.20160115ubuntu3/dh_gencontrol 2016-01-14 19:52:01.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_gencontrol 2016-10-02 20:35:36.000000000 +0000 @@ -67,9 +67,7 @@ $changelog='debian/changelog'; } - if ( ! -d "$tmp/DEBIAN" ) { - install_dir("$tmp/DEBIAN"); - } + install_dir("$tmp/DEBIAN"); # avoid gratuitous warning if (! -e $substvars || system("grep -q '^misc:Depends=' $substvars") != 0) { @@ -85,10 +83,7 @@ $build_ids = read_dbgsym_build_ids($dbgsym_info_dir); } - # Temporary workaround: Do not build dbgsym packages for udebs as - # dpkg-gencontrol and dpkg-deb does not agree on the file - # extension. - if ( -d $dbgsym_tmp and not is_udeb($package)) { + if ( -d $dbgsym_tmp) { my $multiarch = package_multiarch($package); my $section = package_section($package); my $replaces = read_dbgsym_migration($dbgsym_info_dir); @@ -127,14 +122,11 @@ } else { push(@dbgsym_options, '-UReplaces', '-UBreaks'); } - if ( ! -d "${dbgsym_tmp}/DEBIAN" ) { - install_dir("${dbgsym_tmp}/DEBIAN"); - } + install_dir("${dbgsym_tmp}/DEBIAN"); doit("dpkg-gencontrol", "-p${package}", "-l$changelog", "-T$substvars", "-P${dbgsym_tmp}",@{$dh{U_PARAMS}}, @dbgsym_options); - doit("chmod","0644","${dbgsym_tmp}/DEBIAN/control"); - doit("chown","0:0","${dbgsym_tmp}/DEBIAN/control"); + reset_perm_and_owner('0644', "${dbgsym_tmp}/DEBIAN/control"); } elsif ($build_ids) { # Only include the build-id if there is no dbgsym package (if # there is a dbgsym package, the build-ids into the control @@ -148,9 +140,7 @@ # This chmod is only necessary if the user sets the umask to # something odd. - doit("chmod","0644","$tmp/DEBIAN/control"); - - doit("chown","0:0","$tmp/DEBIAN/control"); + reset_perm_and_owner('0644', "${tmp}/DEBIAN/control"); } sub read_dbgsym_file { diff -Nru debhelper-9.20160115ubuntu3/dh_icons debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_icons --- debhelper-9.20160115ubuntu3/dh_icons 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_icons 2016-10-01 16:37:45.000000000 +0000 @@ -32,7 +32,7 @@ =over 4 -=item B<-n>, B<--noscripts> +=item B<-n>, B<--no-scripts> Do not modify maintainer scripts. diff -Nru debhelper-9.20160115ubuntu3/dh_install debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_install --- debhelper-9.20160115ubuntu3/dh_install 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_install 2016-10-02 20:06:36.000000000 +0000 @@ -57,9 +57,11 @@ =item debian/not-installed -List the files that are deliberately not installed in any package. -This is used with B<--list-missing> (or B<--fail-missing>) as an -exclude file. +List the files that are deliberately not installed in I binary +package. Paths listed in this file are (I) ignored by the check +done via B<--list-missing> (or B<--fail-missing>). However, it is +B a method to exclude files from being installed. Please use +B<--exclude> for that. Please keep in mind that dh_install will B expand wildcards in this file. @@ -175,26 +177,40 @@ my @filelist; foreach my $glob (@$set) { my @found = glob "$srcdir/$glob"; + my $glob_sd = $srcdir; + my $matched = 0; if (! compat(6)) { # Fall back to looking in debian/tmp. if (! @found || ! (-e $found[0] || -l $found[0])) { - @found = glob "debian/tmp/$glob" - if $glob !~ m{^(?:\./)?debian/tmp/}; + if ($glob !~ m{^(?:\./)?debian/tmp/}) { + @found = glob "debian/tmp/$glob"; + $glob_sd = 'debian/tmp'; + } } } if (@found && (-e $found[0] || -l $found[0])) { push @filelist, @found; + $matched = 1; } - } - - if (! compat(4)) { # check added in v5 - if (! @filelist && ! $skip_install) { - warning("$package missing files: @$set"); + # Do not require a match for packages that not acted on + # (directly). After all, the files might not have been + # generated/compiled. + if (not $matched and not $skip_install) { + if (compat(6)) { + warning("Cannot find (any matches for) \"${glob}\" (tried in \"${srcdir}\")"); + } else { + warning("Cannot find (any matches for) \"${glob}\" (tried in \"${srcdir}\" and \"debian/tmp\")"); + } ++$missing_files; - next; } } + if (! @filelist && ! $skip_install) { + warning("$package missing files: @$set"); + ++$missing_files; + next; + } + foreach my $src (@filelist) { next if excludefile($src); @@ -211,10 +227,8 @@ } # Make sure the destination directory exists. - if (! -e "$tmp/$dest") { - install_dir("$tmp/$dest"); - } - + install_dir("$tmp/$dest"); + if (-d $src && $exclude) { my $basename = basename($src); my $dir = ($basename eq '.') ? $src : "$src/.."; @@ -248,8 +262,12 @@ my @missing; if ( -f 'debian/not-installed') { + my @not_installed = filearray('debian/not-installed'); + foreach (@not_installed) { + s:^\s*:debian/tmp/: unless m:^\s*debian/tmp/:; + } # Pretend that these are also installed. - push(@installed, filearray('debian/not-installed')); + push(@installed, @not_installed); } my $installed=join("|", map { # Kill any extra slashes, for robustness. diff -Nru debhelper-9.20160115ubuntu3/dh_installcatalogs debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installcatalogs --- debhelper-9.20160115ubuntu3/dh_installcatalogs 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installcatalogs 2016-10-02 20:06:36.000000000 +0000 @@ -10,7 +10,7 @@ use warnings; use Debian::Debhelper::Dh_Lib; -my $sgmlbasever = "1.26+nmu2"; +my $sgmlbasever = "1.28"; =head1 SYNOPSIS @@ -26,9 +26,10 @@ This command automatically adds maintainer script snippets for registering and unregistering the catalogs and supercatalogs (unless -B<-n> is used). These snippets are inserted into the maintainer scripts -by B; see L for an explanation of -Debhelper maintainer script snippets. +B<-n> is used). These snippets are inserted into the maintainer +scripts and the B file by B; see +L for an explanation of Debhelper maintainer script +snippets. A dependency on B will be added to B<${misc:Depends}>, so be sure your package uses that variable in F. @@ -51,9 +52,10 @@ =over 4 -=item B<-n>, B<--noscripts> +=item B<-n>, B<--no-scripts> -Do not modify F/F/F scripts. +Do not modify F/F/F scripts nor add an +activation trigger. =back @@ -80,10 +82,11 @@ foreach my $line (filedoublearray($sgmlcatlistfile)) { my $source = $line->[0]; my $dest = $line->[1]; - my $fulldest = "$tmpdir/$dest"; + my $fulldest = "$tmpdir/$dest"; $fulldest =~ s|//|/|g; # beautification if (! -d dirname($fulldest)) { + # Ensure the parent exist install_dir($tmpdir."/".dirname($dest)); } @@ -95,9 +98,7 @@ if (@sgmlinstalled) { addsubstvar($package, "misc:Depends", "sgml-base", ">= $sgmlbasever"); - if (! -d "$tmpdir/etc/sgml") { - install_dir("$tmpdir/etc/sgml"); - } + install_dir("$tmpdir/etc/sgml"); my $centralcat = "/etc/sgml/$package.cat"; @@ -108,8 +109,7 @@ close CENTRALCAT; if (! $dh{NOSCRIPTS}) { - autoscript($package, "preinst", "preinst-sgmlcatalog", - "s%#CENTRALCAT#%$centralcat%g;"); + autotrigger($package, "activate", "update-sgmlcatalog"); autoscript($package, "postrm", "postrm-sgmlcatalog", "s%#CENTRALCAT#%$centralcat%g;"); } diff -Nru debhelper-9.20160115ubuntu3/dh_installchangelogs debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installchangelogs --- debhelper-9.20160115ubuntu3/dh_installchangelogs 2016-01-19 18:54:31.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installchangelogs 2016-10-17 19:34:19.000000000 +0000 @@ -180,9 +180,7 @@ next unless -d "$tmp/usr/share/doc/$package"; } - if (! -d "$tmp/usr/share/doc/$package") { - install_dir("$tmp/usr/share/doc/$package"); - } + install_dir("$tmp/usr/share/doc/$package"); if (! $dh{NO_ACT}) { if (! install_binNMU_changelog($package, $changelog, $changelog_name)) { @@ -207,8 +205,7 @@ $link_to='changelog.html'; if (! defined $upstream_text) { complex_doit("echo 'See changelog.html.gz' > $base/changelog"); - doit("chmod","644","$base/changelog"); - doit("chown","0:0","$base/changelog"); + reset_perm_and_owner('0644',"$base/changelog"); } } if ($dh{K_FLAG}) { diff -Nru debhelper-9.20160115ubuntu3/dh_installcron debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installcron --- debhelper-9.20160115ubuntu3/dh_installcron 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installcron 2016-10-02 20:06:36.000000000 +0000 @@ -61,18 +61,14 @@ foreach my $type (qw{hourly daily weekly monthly}) { my $cron=pkgfile($package,"cron.$type"); if ($cron) { - if (! -d "$tmp/etc/cron.$type") { - install_dir("$tmp/etc/cron.$type"); - } + install_dir("$tmp/etc/cron.$type"); install_prog($cron,"$tmp/etc/cron.$type/".pkgfilename($package)); } } # Separate because this needs to be mode 644. my $cron=pkgfile($package,"cron.d"); if ($cron) { - if (! -d "$tmp/etc/cron.d") { - install_dir("$tmp/etc/cron.d"); - } + install_dir("$tmp/etc/cron.d"); install_file($cron,"$tmp/etc/cron.d/".pkgfilename($package)); } } diff -Nru debhelper-9.20160115ubuntu3/dh_installdeb debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installdeb --- debhelper-9.20160115ubuntu3/dh_installdeb 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installdeb 2016-10-02 20:35:36.000000000 +0000 @@ -56,11 +56,26 @@ =item I.maintscript -Lines in this file correspond to L commands and -parameters. Any shell metacharacters will be escaped, so arbitrary shell -code cannot be inserted here. For example, a line such as C will insert maintainer script snippets -into all maintainer scripts sufficient to move that conffile. +Lines in this file correspond to L +commands and parameters. However, the "maint-script-parameters" +should I be included as debhelper will add those automatically. + +Example: + + # Correct + rm_conffile /etc/obsolete.conf 0.2~ foo + # INCORRECT + rm_conffile /etc/obsolete.conf 0.2~ foo -- "$@" + +In compat 10 or later, any shell metacharacters will be escaped, so +arbitrary shell code cannot be inserted here. For example, a line +such as C will insert +maintainer script snippets into all maintainer scripts sufficient to +move that conffile. + +It was also the intention to escape shell metacharacters in previous +compat levels. However, it did not work properly and as such it was +possible to embed arbitrary shell code in earlier compat levels. =back @@ -80,9 +95,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp=tmpdir($package); - if (! -d "$tmp/DEBIAN") { - install_dir("$tmp/DEBIAN"); - } + install_dir("$tmp/DEBIAN"); if (is_udeb($package)) { # For udebs, only do the postinst, and no #DEBHELPER#. @@ -100,17 +113,44 @@ my $maintscriptfile=pkgfile($package, "maintscript"); if ($maintscriptfile) { - foreach my $line (filedoublearray($maintscriptfile)) { - my $cmd=$line->[0]; - error("unknown dpkg-maintscript-helper command: $cmd") - unless exists $maintscript_predeps{$cmd}; - addsubstvar($package, "misc:Pre-Depends", "dpkg", - ">= $maintscript_predeps{$cmd}") - if length $maintscript_predeps{$cmd}; - my $params=escape_shell(@$line); + if (compat(9)) { + foreach my $line (filedoublearray($maintscriptfile)) { + my $cmd=$line->[0]; + error("unknown dpkg-maintscript-helper command: $cmd") + unless exists $maintscript_predeps{$cmd}; + addsubstvar($package, "misc:Pre-Depends", "dpkg", + ">= $maintscript_predeps{$cmd}") + if length $maintscript_predeps{$cmd}; + my $params=escape_shell(@$line); + foreach my $script (qw{postinst preinst prerm postrm}) { + autoscript($package, $script, "maintscript-helper", + "s!#PARAMS#!$params!g"); + } + } + } else { + my @maintscripts = filedoublearray($maintscriptfile); + my @params; + foreach my $line (@maintscripts) { + my $cmd=$line->[0]; + error("unknown dpkg-maintscript-helper command: $cmd") + unless exists $maintscript_predeps{$cmd}; + addsubstvar($package, "misc:Pre-Depends", "dpkg", + ">= $maintscript_predeps{$cmd}") + if length $maintscript_predeps{$cmd}; + push(@params, escape_shell(@{$line}) ); + } foreach my $script (qw{postinst preinst prerm postrm}) { - autoscript($package, $script, "maintscript-helper", - "s!#PARAMS#!$params!g"); + my $subst = sub { + my @res; + chomp; + for my $param (@params) { + my $line = $_; + $line =~ s{#PARAMS#}{$param}g; + push(@res, $line); + } + $_ = join("\n", @res) . "\n"; + }; + autoscript($package, $script, "maintscript-helper", $subst); } } } @@ -142,7 +182,7 @@ doit("rm","-f","$tmp/DEBIAN/conffiles"); } else { - doit("chmod","0644","$tmp/DEBIAN/conffiles"); + reset_perm_and_owner('0644', "$tmp/DEBIAN/conffiles"); } } } diff -Nru debhelper-9.20160115ubuntu3/dh_installdebconf debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installdebconf --- debhelper-9.20160115ubuntu3/dh_installdebconf 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installdebconf 2016-10-02 20:06:36.000000000 +0000 @@ -63,7 +63,7 @@ =over 4 -=item B<-n>, B<--noscripts> +=item B<-n>, B<--no-scripts> Do not modify F script. @@ -89,9 +89,7 @@ my $config=pkgfile($package,"config"); my $templates=pkgfile($package,"templates"); - if (! -d "$tmp/DEBIAN") { - install_dir("$tmp/DEBIAN"); - } + install_dir("$tmp/DEBIAN"); if (! is_udeb($package)) { debhelper_script_subst($package, "config"); diff -Nru debhelper-9.20160115ubuntu3/dh_installdirs debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installdirs --- debhelper-9.20160115ubuntu3/dh_installdirs 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installdirs 2016-10-05 18:13:27.000000000 +0000 @@ -63,9 +63,7 @@ my $tmp=tmpdir($package); my $file=pkgfile($package,"dirs"); - if (! -e $tmp) { - install_dir($tmp); - } + install_dir($tmp) if compat(10); my @dirs; diff -Nru debhelper-9.20160115ubuntu3/dh_installdocs debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installdocs --- debhelper-9.20160115ubuntu3/dh_installdocs 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installdocs 2016-10-02 20:06:36.000000000 +0000 @@ -27,6 +27,10 @@ List documentation files to be installed into I. +In compat 11 (or later), these will be installed into +F. Previously it would be +F. + =item F The copyright file is installed into all packages, unless a more @@ -214,31 +218,32 @@ } if (@docs) { - my $exclude = ''; + my $target_package = $package; + my $exclude = ' -and ! -empty'; if ($dh{EXCLUDE_FIND}) { $exclude .= ' -and ! \( '.$dh{EXCLUDE_FIND}.' \)'; } - if (! compat(4)) { - # ignore empty files in subdirs - $exclude .= ' -and ! -empty'; + if (not compat(10)) { + $target_package = $dh{MAINPACKAGE}; } + my $target_dir = "$tmp/usr/share/doc/$target_package"; + install_dir($target_dir) unless -l $target_dir; foreach my $doc (@docs) { next if excludefile($doc); - next if -e $doc && ! -s $doc && ! compat(4); # ignore empty files + next if -e $doc && ! -s $doc; # ignore empty files ensure_docdir($package); if (-d $doc && length $exclude) { my $basename = basename($doc); my $dir = ($basename eq '.') ? $doc : "$doc/.."; my $pwd=`pwd`; chomp $pwd; - my $docdir = "$pwd/$tmp/usr/share/doc/$package"; + my $docdir = "$pwd/$target_dir"; complex_doit("cd '$dir' && " . "find '$basename' \\( -type f -or -type l \\)$exclude -print0 | LC_ALL=C sort -z | " . "xargs -0 -I {} cp --reflink=auto --parents -dp {} $docdir"); } else { - doit("cp", '--reflink=auto', "-a", $doc, - "$tmp/usr/share/doc/$package"); + doit("cp", '--reflink=auto', "-a", $doc, $target_dir); } } doit("chown","-R","0:0","$tmp/usr/share/doc"); @@ -304,8 +309,8 @@ next if $fn=~/\.EX$/; next if excludefile($fn); # Parse the file to get the doc id. - open (IN, "debian/$fn") || die "Cannot read debian/$fn."; - while () { + open(my $fd, '<', "debian/$fn") || die "Cannot read debian/$fn."; + while (<$fd>) { s/\s*$//; if (/^Document\s*:\s*(.*)/) { $doc_ids{$fn}=$1; @@ -315,14 +320,12 @@ if (! exists $doc_ids{$fn}) { warning("Could not parse $fn for doc-base Document id; skipping"); } - close IN; + close($fd); } closedir(DEB); if (%doc_ids) { - if (! -d "$tmp/usr/share/doc-base/") { - install_dir("$tmp/usr/share/doc-base/"); - } + install_dir("$tmp/usr/share/doc-base/"); } # check for duplicate document ids my %used_doc_ids; diff -Nru debhelper-9.20160115ubuntu3/dh_installemacsen debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installemacsen --- debhelper-9.20160115ubuntu3/dh_installemacsen 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installemacsen 2016-10-02 20:06:36.000000000 +0000 @@ -55,7 +55,7 @@ =over 4 -=item B<-n>, B<--noscripts> +=item B<-n>, B<--no-scripts> Do not modify F/F scripts. @@ -100,31 +100,23 @@ my $emacsen_startup=pkgfile($package,"emacsen-startup"); if ($emacsen_compat ne '') { - if (! -d "$tmp/usr/lib/emacsen-common/packages/compat") { - install_dir("$tmp/usr/lib/emacsen-common/packages/compat"); - } + install_dir("$tmp/usr/lib/emacsen-common/packages/compat"); install_file($emacsen_compat, "$tmp/usr/lib/emacsen-common/packages/compat/$package"); } if ($emacsen_install ne '') { - if (! -d "$tmp/usr/lib/emacsen-common/packages/install") { - install_dir("$tmp/usr/lib/emacsen-common/packages/install"); - } + install_dir("$tmp/usr/lib/emacsen-common/packages/install"); install_prog($emacsen_install,"$tmp/usr/lib/emacsen-common/packages/install/$package"); } if ($emacsen_remove ne '') { - if (! -d "$tmp/usr/lib/emacsen-common/packages/remove") { - install_dir("$tmp/usr/lib/emacsen-common/packages/remove"); - } + install_dir("$tmp/usr/lib/emacsen-common/packages/remove"); install_prog("$emacsen_remove","$tmp/usr/lib/emacsen-common/packages/remove/$package"); } if ($emacsen_startup ne '') { - if (! -d "$tmp/etc/$dh{FLAVOR}/site-start.d/") { - install_dir("$tmp/etc/$dh{FLAVOR}/site-start.d/"); - } + install_dir("$tmp/etc/$dh{FLAVOR}/site-start.d/"); install_file($emacsen_startup,"$tmp/etc/$dh{FLAVOR}/site-start.d/$dh{PRIORITY}$package.el"); } diff -Nru debhelper-9.20160115ubuntu3/dh_installexamples debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installexamples --- debhelper-9.20160115ubuntu3/dh_installexamples 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installexamples 2016-10-02 20:06:36.000000000 +0000 @@ -63,6 +63,8 @@ # PROMISE: DH NOOP WITHOUT examples +my $pwd; + foreach my $package (@{$dh{DOPACKAGES}}) { next if is_udeb($package); @@ -80,10 +82,8 @@ } if (@examples) { - if (! -d "$tmp/usr/share/doc/$package/examples") { - install_dir("$tmp/usr/share/doc/$package/examples"); - } - + install_dir("$tmp/usr/share/doc/$package/examples"); + my $exclude = ''; if ($dh{EXCLUDE_FIND}) { $exclude .= ' -and ! \( '.$dh{EXCLUDE_FIND}.' \)'; @@ -94,9 +94,7 @@ if (-d $example && $exclude) { my $basename = basename($example); my $dir = ($basename eq '.') ? $example : "$example/.."; - my $pwd=`pwd`; - chomp $pwd; - my $exclude2 = '-type f'.$exclude; + chomp($pwd=`pwd`) if not defined($pwd); complex_doit("cd '$dir' && " . "find '$basename' -type f$exclude -print0 | LC_ALL=C sort -z | " . "xargs -0 -I {} cp --reflink=auto --parents -dp {} $pwd/$tmp/usr/share/doc/$package/examples"); diff -Nru debhelper-9.20160115ubuntu3/dh_installifupdown debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installifupdown --- debhelper-9.20160115ubuntu3/dh_installifupdown 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installifupdown 2016-10-02 20:06:36.000000000 +0000 @@ -61,9 +61,7 @@ foreach my $script (qw(pre-up up down post-down)) { my $file=pkgfile($package, "if-$script"); if ($file ne '') { - if (! -d "$tmp/etc/network/if-$script.d") { - install_dir("$tmp/etc/network/if-$script.d"); - } + install_dir("$tmp/etc/network/if-$script.d"); install_prog($file,"$tmp/etc/network/if-$script.d/".pkgfilename($package)); } } diff -Nru debhelper-9.20160115ubuntu3/dh_installinfo debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installinfo --- debhelper-9.20160115ubuntu3/dh_installinfo 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installinfo 2016-10-02 20:06:36.000000000 +0000 @@ -66,9 +66,7 @@ } if (@info) { - if ( ! -d "$tmp/usr/share/info") { - install_dir("$tmp/usr/share/info"); - } + install_dir("$tmp/usr/share/info"); doit("cp", '--reflink=auto', @info, "$tmp/usr/share/info"); doit("chmod","-R", "go=rX","$tmp/usr/share/info/"); doit("chmod","-R", "u+rw","$tmp/usr/share/info/"); diff -Nru debhelper-9.20160115ubuntu3/dh_installinit debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installinit --- debhelper-9.20160115ubuntu3/dh_installinit 2016-01-19 18:54:31.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installinit 2016-10-02 20:06:36.000000000 +0000 @@ -61,11 +61,11 @@ =over 4 -=item B<-n>, B<--noscripts> +=item B<-n>, B<--no-scripts> Do not modify F/F/F scripts. -=item B<-o>, B<--onlyscripts> +=item B<-o>, B<--only-scripts> Only modify F/F/F scripts, do not actually install any init script, default files, upstart job or systemd service file. May be @@ -78,21 +78,30 @@ call. Example: override_dh_installinit: - dh_installinit -pfoo --onlyscripts + dh_installinit -pfoo --only-scripts dh_installinit --remaining =item B<-R>, B<--restart-after-upgrade> Do not stop the init script until after the package upgrade has been -completed. This is different than the default behavior, which stops the -script in the F, and starts it again in the F. +completed. This is the default behaviour in compat 10. + +In early compat levels, the default was to stop the script in the +F, and starts it again in the F. This can be useful for daemons that should not have a possibly long downtime during upgrade. But you should make sure that the daemon will not get confused by the package being upgraded while it's running before using this option. -=item B<-r>, B<--no-restart-on-upgrade> +=item B<--no-restart-after-upgrade> + +Undo a previous B<--restart-after-upgrade> (or the default of compat +10). If no other options are given, this will cause the service to be +stopped in the F script and started again in the F +script. + +=item B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade> Do not stop init script on upgrade. @@ -155,11 +164,14 @@ =cut +$dh{RESTART_AFTER_UPGRADE} = 1 if not compat(9); + init(options => { "r" => \$dh{R_FLAG}, + 'no-stop-on-upgrade' => \$dh{R_FLAG}, "no-restart-on-upgrade" => \$dh{R_FLAG}, "no-start" => \$dh{NO_START}, - "R|restart-after-upgrade" => \$dh{RESTART_AFTER_UPGRADE}, + "R|restart-after-upgrade!" => \$dh{RESTART_AFTER_UPGRADE}, "init-script=s" => \$dh{INIT_SCRIPT}, "update-rcd-params=s", => \$dh{U_PARAMS}, "remove-d" => \$dh{D_FLAG}, @@ -207,39 +219,26 @@ my $service=pkgfile($package,"service"); if ($service ne '' && ! $dh{ONLYSCRIPTS}) { my $path="$tmp/lib/systemd/system"; - if (! -d $path) { - install_dir($path); - } - + install_dir($path); install_file($service, "$path/$script.service"); } my $tmpfile=pkgfile($package,"tmpfile"); if ($tmpfile ne '' && ! $dh{ONLYSCRIPTS}) { my $path="$tmp/usr/lib/tmpfiles.d"; - if (! -d $path) { - install_dir($path); - } - + install_dir($path); install_file($tmpfile, "$path/$script.conf"); } my $job=pkgfile($package,"upstart"); if ($job ne '' && ! $dh{ONLYSCRIPTS}) { - if (! -d "$tmp/etc/init") { - install_dir("$tmp/etc/init"); - } - + install_dir("$tmp/etc/init"); install_file($job, "$tmp/etc/init/$jobfile.conf"); - # Add dependency on lsb-base that provides the upstart lsb-hook - addsubstvar($package, "misc:Depends", "lsb-base", ">= 4.1+Debian11ubuntu7"); } my $default=pkgfile($package,'default'); if ($default ne '' && ! $dh{ONLYSCRIPTS}) { - if (! -d "$tmp/etc/default") { - install_dir("$tmp/etc/default"); - } + install_dir("$tmp/etc/default"); install_file($default, "$tmp/etc/default/$script"); } @@ -247,10 +246,7 @@ pkgfile($package,"init.d"); if ($init ne '' && ! $dh{ONLYSCRIPTS}) { - if (! -d "$tmp/etc/init.d") { - install_dir("$tmp/etc/init.d"); - } - + install_dir("$tmp/etc/init.d"); install_prog($init,"$tmp/etc/init.d/$script"); } diff -Nru debhelper-9.20160115ubuntu3/dh_installlogcheck debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installlogcheck --- debhelper-9.20160115ubuntu3/dh_installlogcheck 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installlogcheck 2016-10-02 20:06:36.000000000 +0000 @@ -68,11 +68,9 @@ $typenod=~s/\.d//; my $logcheck=pkgfile($package,"logcheck.$typenod"); if ($logcheck) { - if (! -d "$tmp/etc/logcheck/$type") { - install_dir("$tmp/etc/logcheck/$type"); - } my $packagenodot=pkgfilename($package); # run-parts.. $packagenodot=~s/\./_/g; + install_dir("$tmp/etc/logcheck/$type"); install_file($logcheck, "$tmp/etc/logcheck/$type/$packagenodot"); } } diff -Nru debhelper-9.20160115ubuntu3/dh_installlogrotate debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installlogrotate --- debhelper-9.20160115ubuntu3/dh_installlogrotate 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installlogrotate 2016-10-02 20:06:36.000000000 +0000 @@ -43,9 +43,7 @@ my $file=pkgfile($package,"logrotate"); if ($file) { - if (! -d "$tmp/etc/logrotate.d") { - install_dir("$tmp/etc/logrotate.d"); - } + install_dir("$tmp/etc/logrotate.d"); install_file($file,"$tmp/etc/logrotate.d/".pkgfilename($package)); } } diff -Nru debhelper-9.20160115ubuntu3/dh_installman debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installman --- debhelper-9.20160115ubuntu3/dh_installman 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installman 2016-10-08 09:48:29.000000000 +0000 @@ -121,26 +121,26 @@ $gz=$2; } - my $section; + my ($fd, $section); # See if there is a .TH or .Dt entry in the man page. If so, # we'll pull the section field from that. if ($gz) { - open (IN, "zcat $page|") or die "$page: $!"; + $fd = open_gz($page) or die "$page: $!"; } else { - open (IN, $page) or die "$page: $!"; + open($fd, '<', $page) or die "$page: $!"; } - while () { + while (<$fd>) { if (/^\.TH\s+\S+\s+"?(\d+[^"\s]*)"?/ || /^\.Dt\s+\S+\s+(\d+[^\s]*)/) { $section=$1; last; } } - close(IN); + 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]\S*)/; } # Now get the numeric component of the section. @@ -158,7 +158,7 @@ # Translated man pages are typically specified by adding the # language code to the filename, so detect that and # redirect to appropriate directory, stripping the code. - ($langcode)=$basename=~m/.*\.([a-z][a-z](?:_[A-Z][A-Z])?)\.(?:[1-9]|man)/; + ($langcode)=$basename=~m/\.([a-z][a-z](?:_[A-Z][A-Z])?)\.(?:[1-9]|man)/; } elsif ($dh{LANGUAGE} ne 'C') { $langcode=$dh{LANGUAGE}; @@ -178,9 +178,7 @@ next if -l $instpage; next if compat(5) && -e $instpage; - if (! -d $destdir) { - install_dir($destdir); - } + install_dir($destdir); if ($gz) { complex_doit "zcat \Q$page\E > \Q$instpage\E"; } @@ -212,7 +210,7 @@ complex_doit "man --recode UTF-8 ./\Q$orig\E > \Q$tmp\E"; # recode uncompresses compressed pages doit "rm", "-f", $orig if s/\.(gz|Z)$//; - doit "chmod", 644, $tmp; + reset_perm_and_owner('0755', $tmp); doit "mv", "-f", $tmp, $_; }, "$tmp/$dir"); } @@ -228,14 +226,15 @@ } # Test first line of file for the .so thing. + my $fd; if (/\.gz$/) { - open (SOTEST, "zcat $_|") or die "$_: $!"; + $fd = open_gz($_) or die "$_: $!"; } else { - open (SOTEST,$_) || die "$_: $!"; + open($fd, '<', $_) || die "$_: $!"; } - my $l=; - close SOTEST; + my $l = <$fd>; + close($fd); if (! defined $l) { error("failed to read $_"); diff -Nru debhelper-9.20160115ubuntu3/dh_installmanpages debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installmanpages --- debhelper-9.20160115ubuntu3/dh_installmanpages 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installmanpages 2016-10-02 20:06:36.000000000 +0000 @@ -110,9 +110,9 @@ } # Test first line of file for the .so thing. - open (SOTEST,$_); - my $l=; - close SOTEST; + open(my $fd, '<', $_); + my $l = <$fd>; + close($fd); if ($l=~m/\.so\s+(.*)/) { my $solink=$1; # This test is here to prevent links like ... man8/../man8/foo.8 @@ -158,13 +158,13 @@ if ($install) { my $extdir="share"; - my ($section)=$basename=~m/.*\.([1-9])/; + my ($section)=$basename=~m/\.([1-9])/; my $destdir="$tmp/usr/$extdir/man/man$section/"; # Handle translated man pages. my $instname=$basename; - my ($langcode)=$basename=~m/.*\.([a-z][a-z])\.([1-9])/; + my ($langcode)=$basename=~m/\.([a-z][a-z])\.([1-9])/; if (defined $langcode && $langcode ne '') { $destdir="$tmp/usr/$extdir/man/$langcode/man$section/"; $instname=~s/\.$langcode\./\./; @@ -173,9 +173,7 @@ $destdir=~tr:/:/:s; # just for looks if (! -e "$destdir/$basename" && !-l "$destdir/$basename") { - if (! -d $destdir) { - install_dir($destdir); - } + install_dir($destdir); install_file($page,$destdir.$instname); } } diff -Nru debhelper-9.20160115ubuntu3/dh_installmenu debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installmenu --- debhelper-9.20160115ubuntu3/dh_installmenu 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installmenu 2016-10-02 20:06:36.000000000 +0000 @@ -29,6 +29,9 @@ =item debian/I.menu +In compat 11, this file is no longer installed the format has been +deprecated. Please migrate to a desktop file instead. + Debian menu files, installed into usr/share/menu/I in the package build directory. See L for its format. @@ -43,7 +46,7 @@ =over 4 -=item B<-n>, B<--noscripts> +=item B<-n>, B<--no-scripts> Do not modify F/F scripts. @@ -61,23 +64,24 @@ my $menu_method=pkgfile($package,"menu-method"); if ($menu ne '') { - if (! -d "$tmp/usr/share/menu") { + if (compat(10)) { install_dir("$tmp/usr/share/menu"); - } - install_file($menu,"$tmp/usr/share/menu/$package"); + install_file($menu,"$tmp/usr/share/menu/$package"); - # Add the scripts if a menu-method file doesn't exist. - # The scripts for menu-method handle everything these do, too. - if ($menu_method eq "" && ! $dh{NOSCRIPTS}) { - autoscript($package,"postinst","postinst-menu"); - autoscript($package,"postrm","postrm-menu") + # Add the scripts if a menu-method file doesn't exist. + # The scripts for menu-method handle everything these do, too. + if ($menu_method eq "" && ! $dh{NOSCRIPTS}) { + autoscript($package,"postinst","postinst-menu"); + autoscript($package,"postrm","postrm-menu") + } + } else { + warning("menu files are *not* installed in compat 11"); + warning("Please remove the menu file"); } } if ($menu_method ne '') { - if (!-d "$tmp/etc/menu-methods") { - install_dir("$tmp/etc/menu-methods"); - } + install_dir("$tmp/etc/menu-methods"); install_file($menu_method,"$tmp/etc/menu-methods/$package"); if (! $dh{NOSCRIPTS}) { diff -Nru debhelper-9.20160115ubuntu3/dh_installmime debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installmime --- debhelper-9.20160115ubuntu3/dh_installmime 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installmime 2016-10-02 20:06:36.000000000 +0000 @@ -46,17 +46,13 @@ my $mime=pkgfile($package,"mime"); if ($mime ne '') { - if (! -d "$tmp/usr/lib/mime/packages") { - install_dir("$tmp/usr/lib/mime/packages"); - } + install_dir("$tmp/usr/lib/mime/packages"); install_file($mime, "$tmp/usr/lib/mime/packages/$package"); } my $sharedmimeinfo=pkgfile($package,"sharedmimeinfo"); if ($sharedmimeinfo ne '') { - if (! -d "$tmp/usr/share/mime/packages") { - install_dir("$tmp/usr/share/mime/packages"); - } + install_dir("$tmp/usr/share/mime/packages"); install_file($sharedmimeinfo, "$tmp/usr/share/mime/packages/$package.xml"); } diff -Nru debhelper-9.20160115ubuntu3/dh_installmodules debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installmodules --- debhelper-9.20160115ubuntu3/dh_installmodules 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installmodules 2016-10-02 20:06:36.000000000 +0000 @@ -40,7 +40,7 @@ =over 4 -=item B<-n>, B<--noscripts> +=item B<-n>, B<--no-scripts> Do not modify F/F/F scripts. @@ -90,19 +90,10 @@ my $tmp=tmpdir($package); my $modprobe_file=pkgfile($package,"modprobe"); - if (! -e $tmp) { - install_dir($tmp); - } - if ($modprobe_file) { - if (! -e "$tmp/etc/modprobe.d") { - install_dir("$tmp/etc/modprobe.d"); - } - my $old="/etc/modprobe.d/".pkgfilename($package); - my $new=$old.".conf"; - install_file($modprobe_file, "$tmp/$new"); - autoscript($package,"preinst","preinst-moveconffile","s!#OLD#!$old!g;s!#PACKAGE#!$package!g"); - autoscript($package,"postinst","postinst-moveconffile","s!#OLD#!$old!g;s!#NEW#!$new!g"); + my $path = '/etc/modprobe.d/' . pkgfilename($package) . '.conf'; + install_dir("$tmp/etc/modprobe.d"); + install_file($modprobe_file, "$tmp/$path"); } if (! $dh{NOSCRIPTS}) { diff -Nru debhelper-9.20160115ubuntu3/dh_installpam debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installpam --- debhelper-9.20160115ubuntu3/dh_installpam 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installpam 2016-10-02 20:06:36.000000000 +0000 @@ -52,9 +52,7 @@ my $pam=pkgfile($package,"pam"); if ($pam ne '') { - if (! -d "$tmp/etc/pam.d") { - install_dir("$tmp/etc/pam.d"); - } + install_dir("$tmp/etc/pam.d"); install_file($pam,"$tmp/etc/pam.d/".pkgfilename($package)); } } diff -Nru debhelper-9.20160115ubuntu3/dh_installppp debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installppp --- debhelper-9.20160115ubuntu3/dh_installppp 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installppp 2016-10-02 20:06:36.000000000 +0000 @@ -57,9 +57,7 @@ foreach my $script (qw(up down)) { my $file=pkgfile($package, "ppp.ip-$script"); if ($file ne '') { - if (! -d "$tmp/etc/ppp/ip-$script.d") { - install_dir("$tmp/etc/ppp/ip-$script.d"); - } + install_dir("$tmp/etc/ppp/ip-$script.d"); install_prog($file,"$tmp/etc/ppp/ip-$script.d/".pkgfilename($package)); } } diff -Nru debhelper-9.20160115ubuntu3/dh_installudev debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installudev --- debhelper-9.20160115ubuntu3/dh_installudev 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installudev 2016-10-02 20:06:36.000000000 +0000 @@ -20,9 +20,6 @@ B is a debhelper program that is responsible for installing B rules files. -Code is added to the F and F to handle the upgrade from the -old B rules file location. - =head1 FILES =over 4 @@ -47,10 +44,6 @@ Sets the priority the file. Default is 60. -=item B<-n>, B<--noscripts> - -Do not modify F/F scripts. - =back =head1 NOTES @@ -92,26 +85,14 @@ $filename = "$package.udev"; } $filename=~s/\.udev$/.rules/; - my $oldfilename=$filename; if (defined $dh{NAME}) { $filename="$dh{NAME}.rules"; } if ($rules_file) { - if (! -e "$tmp/lib/udev/rules.d") { - install_dir("$tmp/lib/udev/rules.d"); - } my $rule="/lib/udev/rules.d/$dh{PRIORITY}$filename"; + install_dir("$tmp/lib/udev/rules.d"); install_file($rules_file, "${tmp}${rule}"); - if (! $dh{NOSCRIPTS}) { - # Remove old rule from /etc, unless it's modified, - # in which case we rename it to match the new - # file in /lib, so it will override. - my $old="/etc/udev/rules.d/$old_priority$oldfilename"; - $rule=~s/^\/lib/\/etc/; - autoscript($package,"preinst","preinst-moveconffile","s!#OLD#!$old!g;s!#NEW#!$rule!g;s!#PACKAGE#!$package!g"); - autoscript($package,"postinst","postinst-moveconffile","s!#OLD#!$old!g;s!#NEW#!$rule!g"); - } } } diff -Nru debhelper-9.20160115ubuntu3/dh_installwm debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installwm --- debhelper-9.20160115ubuntu3/dh_installwm 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_installwm 2016-10-01 16:37:45.000000000 +0000 @@ -42,7 +42,7 @@ most window managers; see the Debian Policy document for instructions on calculating the correct value. -=item B<-n>, B<--noscripts> +=item B<-n>, B<--no-scripts> Do not modify F/F scripts. Turns this command into a no-op. diff -Nru debhelper-9.20160115ubuntu3/dh_lintian debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_lintian --- debhelper-9.20160115ubuntu3/dh_lintian 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_lintian 2016-10-02 20:06:36.000000000 +0000 @@ -50,9 +50,7 @@ my $overrides=pkgfile($package,"lintian-overrides"); if ($overrides ne '') { - if (! -d $or_dir) { - install_dir($or_dir); - } + install_dir($or_dir); install_dh_config_file($overrides, "$or_dir/$package"); } } diff -Nru debhelper-9.20160115ubuntu3/dh_makeshlibs debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_makeshlibs --- debhelper-9.20160115ubuntu3/dh_makeshlibs 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_makeshlibs 2016-10-02 20:35:36.000000000 +0000 @@ -19,8 +19,10 @@ B is a debhelper program that automatically scans for shared libraries, and generates a shlibs file for the libraries it finds. -It also adds a call to ldconfig in the F and F scripts (in -v3 mode and above only) to any packages in which it finds shared libraries. +It will also ensure that ldconfig is invoked during install and removal when +it finds shared libraries. Since debhelper 9.20151004, this is done via a +dpkg trigger. In older versions of debhelper, B would +generate a maintainer script for this purpose. =head1 FILES @@ -79,10 +81,10 @@ might end up with dependencies that are too tight and so find it harder to be upgraded. -=item B<-n>, B<--noscripts> +=item B<-n>, B<--no-scripts> Do not add the "ldconfig" trigger even if it seems like the package -might need it. The option is called B<--noscripts> for historical +might need it. The option is called B<--no-scripts> for historical reasons as B would previously generate maintainer scripts that called B. @@ -143,7 +145,7 @@ my $tmp=tmpdir($package); - my %seen; + my (%seen, $unversioned_so); my $need_ldconfig = 0; my $shlibs_file = pkgfile($package, 'shlibs'); @@ -165,24 +167,24 @@ my ($library, $major); push @lib_files, $_; my $ret=`$objdump -p $_`; - if ($ret=~m/\s+SONAME\s+(.+)\.so\.(.+)/) { + if ($ret=~m/\s+SONAME\s+(.*)\.so\.(.*)/) { # proper soname format $library=$1; $major=$2; } - elsif ($ret=~m/\s+SONAME\s+(.+)-(.+)\.so/) { + elsif ($ret=~m/\s+SONAME\s+(.*)-(\d.*)\.so/) { # idiotic crap soname format $library=$1; $major=$2; + } elsif ($ret =~ m/\s+SONAME\s+(?:.*)\.so/) { + $unversioned_so = 1; } if (defined($dh{M_PARAMS}) && $dh{M_PARAMS} ne '') { $major=$dh{M_PARAMS}; } - if (! -d "$tmp/DEBIAN") { - install_dir("$tmp/DEBIAN"); - } + install_dir("$tmp/DEBIAN"); my $deps=$package; if ($dh{V_FLAG_SET}) { if ($shlibs_file) { @@ -208,10 +210,10 @@ } } if (defined($library) && defined($major) && defined($deps) && - $library ne '' && $major ne '' && $deps ne '') { - $need_ldconfig=1; - # Prevent duplicate lines from entering the file. - my $line="$library $major $deps"; + $library ne '' && $major ne '' && $deps ne '') { + $need_ldconfig=1; + # Prevent duplicate lines from entering the file. + my $line="$library $major $deps"; if (! $seen{$line}) { $seen{$line}=1; complex_doit("echo '$line' >>$tmp/DEBIAN/shlibs"); @@ -231,22 +233,13 @@ complex_doit("echo '$_' >>$tmp/DEBIAN/shlibs"); } - # Historically, --noscripts would disable the creation of - # maintscripts for calling ldconfig. - if (! $dh{NOSCRIPTS} && $need_ldconfig) { - autotrigger($package, 'activate-noawait', 'ldconfig'); - } - if ($shlibs_file) { - if (! -d "$tmp/DEBIAN") { - install_dir("$tmp/DEBIAN"); - } + install_dir("$tmp/DEBIAN"); install_file($shlibs_file, "$tmp/DEBIAN/shlibs"); } if (-e "$tmp/DEBIAN/shlibs") { - doit("chmod","0644","$tmp/DEBIAN/shlibs"); - doit("chown","0:0","$tmp/DEBIAN/shlibs"); + reset_perm_and_owner('0644', "$tmp/DEBIAN/shlibs"); } # dpkg-gensymbols files @@ -271,8 +264,20 @@ if (-f "$tmp/DEBIAN/symbols" and -s _ == 0) { doit("rm", "-f", "$tmp/DEBIAN/symbols"); + } elsif ($unversioned_so) { + # There are a few "special" libraries (e.g. nss/nspr) + # which do not have versined SONAMES. However the + # maintainer provides a symbols file for them and we can + # then use that to add an ldconfig trigger. + $need_ldconfig = 1; } } + + # Historically, --no-scripts would disable the creation of + # maintscripts for calling ldconfig. + if (! $dh{NOSCRIPTS} && $need_ldconfig) { + autotrigger($package, 'activate-noawait', 'ldconfig'); + } } unless ($ok) { diff -Nru debhelper-9.20160115ubuntu3/dh_md5sums debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_md5sums --- debhelper-9.20160115ubuntu3/dh_md5sums 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_md5sums 2016-10-02 20:35:36.000000000 +0000 @@ -19,7 +19,7 @@ B is a debhelper program that is responsible for generating a F file, which lists the md5sums of each file in the package. -These files are used by the B package. +These files are used by B or the L program. All files in F are omitted from the F file, as are all conffiles (unless you use the B<--include-conffiles> switch). @@ -55,21 +55,20 @@ my $dbgsym_tmp = "debian/.debhelper/${package}/dbgsym-root"; my $tmp=tmpdir($package); - if (! -d "$tmp/DEBIAN") { - install_dir("$tmp/DEBIAN"); - } + install_dir("$tmp/DEBIAN"); # Check if we should exclude conffiles. my $exclude=""; if (! $dh{INCLUDE_CONFFILES} && -r "$tmp/DEBIAN/conffiles") { # Generate exclude regexp. - open (CONFF,"$tmp/DEBIAN/conffiles"); - while () { + open(my $fd, '<', "$tmp/DEBIAN/conffiles") + or die("open $tmp/DEBIAN/conffiles failed: $!"); + while (<$fd>) { chomp; s/^\///; $exclude.="! -path \"./$_\" "; } - close CONFF; + close($fd); } # See if we should exclude other files. @@ -84,13 +83,10 @@ doit("rm","-f","$tmp/DEBIAN/md5sums"); } else { - doit("chmod", "0644", "$tmp/DEBIAN/md5sums"); - doit("chown", "0:0", "$tmp/DEBIAN/md5sums"); + reset_perm_and_owner('0644', "$tmp/DEBIAN/md5sums"); } if ( -d $dbgsym_tmp) { - if (! -d "${dbgsym_tmp}/DEBIAN") { - install_dir("${dbgsym_tmp}/DEBIAN"); - } + install_dir("${dbgsym_tmp}/DEBIAN"); $find = "find . -type f ! -regex './DEBIAN/.*' -printf '%P\\0'"; complex_doit("(cd $dbgsym_tmp >/dev/null ; $find | LC_ALL=C sort -z | xargs -r0 md5sum > DEBIAN/md5sums) >/dev/null"); @@ -99,8 +95,7 @@ doit('rm', '-f', "${dbgsym_tmp}/DEBIAN/md5sums"); } else { - doit('chmod', '0644', "${dbgsym_tmp}/DEBIAN/md5sums"); - doit('chown', '0:0', "${dbgsym_tmp}/DEBIAN/md5sums"); + reset_perm_and_owner('0644', "${dbgsym_tmp}/DEBIAN/md5sums"); } } } diff -Nru debhelper-9.20160115ubuntu3/dh_movefiles debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_movefiles --- debhelper-9.20160115ubuntu3/dh_movefiles 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_movefiles 2016-10-02 20:06:36.000000000 +0000 @@ -118,9 +118,7 @@ push(@tomove, @tomove_expanded); if (@tomove) { - if (! -d $tmp) { - install_dir($tmp); - } + install_dir($tmp); doit("rm","-f","debian/movelist"); foreach (@tomove) { diff -Nru debhelper-9.20160115ubuntu3/dh_perl debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_perl --- debhelper-9.20160115ubuntu3/dh_perl 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_perl 2016-10-01 16:37:45.000000000 +0000 @@ -81,7 +81,6 @@ my $perl = 'perl'; # If -d is given, then the dependency is on perl-base rather than perl. $perl .= '-base' if $dh{D_FLAG}; -my $version; # dependency types use constant PROGRAM => 1; @@ -109,15 +108,14 @@ # find scripts find sub { - return unless -f and (-x or /\.pl$/); + return unless -f and (-x _ or /\.pl$/); return if $File::Find::dir=~/\/usr\/share\/doc\//; - - local *F; - return unless open F, $_; - if (read F, local $_, 32 and m%^#!\s*(/usr/bin/perl|/usr/bin/env\s+perl)\s%) { + + return unless open(my $fd, '<', $_); + if (read($fd, local $_, 32) and m%^#!\s*(/usr/bin/perl|/usr/bin/env\s+perl)\s%) { $deps |= PROGRAM; } - close F; + close($fd); }, $tmp; if ($deps) { @@ -127,10 +125,13 @@ unless $version; $version = ">= $version"; } - + + my $perlarch = $perl; + $perlarch .= ':any' if $deps == PROGRAM and not $dh{V_FLAG_SET}; + # no need to depend on an un-versioned perl-base -- it's # essential - addsubstvar($package, "perl:Depends", $perl, $version) + addsubstvar($package, "perl:Depends", $perlarch, $version) unless $perl eq 'perl-base' && ! length($version); # add perlapi- for XS modules and other modules diff -Nru debhelper-9.20160115ubuntu3/dh_scrollkeeper debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_scrollkeeper --- debhelper-9.20160115ubuntu3/dh_scrollkeeper 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_scrollkeeper 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -#!/usr/bin/perl - -=head1 NAME - -dh_scrollkeeper - deprecated no-op - -=cut - -use strict; -use warnings; -use Debian::Debhelper::Dh_Lib; - -=head1 SYNOPSIS - -B [S>] [B<-n>] [S>] - -=head1 DESCRIPTION - -B was a debhelper program that handled -registering OMF files for ScrollKeeper. However, it no longer does -anything, and is now deprecated. - -=cut - -init(); - -warning("This program is deprecated, and does nothing anymore."); - -=head1 SEE ALSO - -L - -This program is a part of debhelper. - -=head1 AUTHOR - -Ross Burton - -=cut - -# Local Variables: -# indent-tabs-mode: t -# tab-width: 4 -# cperl-indent-level: 4 -# End: diff -Nru debhelper-9.20160115ubuntu3/dh_shlibdeps debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_shlibdeps --- debhelper-9.20160115ubuntu3/dh_shlibdeps 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_shlibdeps 2016-10-02 20:06:36.000000000 +0000 @@ -60,7 +60,8 @@ =item B<-L>I, B<--libpackage=>I With recent versions of B, this option is generally not -needed, unless your package builds multiple flavors of the same library. +needed, unless your package builds multiple flavors of the same library +or is relying on F for an internal library. It tells B (via its B<-S> parameter) to look first in the package build directory for the specified package, when searching for libraries, @@ -106,14 +107,10 @@ foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp=tmpdir($package); my $ext=pkgext($package); + my (@filelist, $ff); # dpkg-shlibdeps expects this directory to exist - if (! -d "$tmp/DEBIAN") { - install_dir("$tmp/DEBIAN"); - } - - my @filelist; - my $ff; + install_dir("$tmp/DEBIAN"); # Generate a list of ELF binaries in the package, ignoring any # we were told to exclude. diff -Nru debhelper-9.20160115ubuntu3/dh_strip debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_strip --- debhelper-9.20160115ubuntu3/dh_strip 2016-01-20 06:58:03.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_strip 2016-10-17 19:34:19.000000000 +0000 @@ -60,12 +60,6 @@ For example, if your packages are libfoo and foo and you want to include a I package with debugging symbols, use BI. -Note that this option behaves significantly different in debhelper -compatibility levels 4 and below. Instead of specifying the name of a debug -package to put symbols in, it specifies a package (or packages) which -should have separated debug symbols, and the separated symbols are placed -in packages with B<-dbg> added to their name. - This option implies B<--no-automatic-dbgsym> and I be used with B<--automatic-dbgsym> or B<--dbgsym-migration>. @@ -129,7 +123,10 @@ The automatic creation of debug symbol packages can also be prevented by adding B to the B environment -variable. +variable. However, B will still add debuglinks to ELF +binaries when this flag is set. This is to ensure that the regular +deb package will be identical with and without this flag (assuming it +is otherwise "bit-for-bit" reproducible). =head1 CONFORMS TO @@ -178,29 +175,19 @@ my $objcopy = cross_command("objcopy"); my $strip = cross_command("strip"); -$dh{ENABLE_DBGSYM} = 0 if get_buildoption('noautodbgsym') or get_buildoption('noddebs'); - -# I could just use `file $_[0]`, but this is safer -sub get_file_type { - my $file=shift; - open (FILE, '-|') # handle all filenames safely - || exec('file', $file) - || die "can't exec file: $!"; - my $type=; - close FILE; - return $type; -} +my $no_auto_dbgsym = 0; +$no_auto_dbgsym = 1 if get_buildoption('noautodbgsym') or get_buildoption('noddebs'); # Check if a file is an elf binary, shared library, or static library, # for use by File::Find. It'll fill the 3 first arrays with anything # it finds. The @build_ids will be the collected build-ids (if any) -my (@shared_libs, @executables, @static_libs, @build_ids); +my (@shared_libs, @executables, @static_libs, @build_ids, %file_output); sub testfile { - return if -l $_ or -d $_; # Skip directories and symlinks always. + my $fn = $_; + return if -l $fn or -d _; # Skip directories and symlinks always. # See if we were asked to exclude this file. # Note that we have to test on the full filename, including directory. - my $fn="$File::Find::dir/$_"; foreach my $f (@{$dh{EXCLUDE}}) { return if ($fn=~m/\Q$f\E/); } @@ -211,10 +198,10 @@ # Does its filename look like a shared library? # - *.cmxs are OCaml native code shared libraries # - *.node are also native ELF binaries (for node-js) - if (m/.*\.(?:so.*?|cmxs|node)$/) { + if ($fn =~ m/\.(?:so.*?|cmxs|node)$/) { # Ok, do the expensive test. - my $type=get_file_type($_); - if ($type=~m/.*ELF.*shared.*/) { + my $type=get_file_type($fn, 1); + if ($type=~m/ELF.*shared/) { push @shared_libs, $fn; return; } @@ -224,66 +211,81 @@ my (undef,undef,$mode,undef)=stat(_); if ($mode & 0111) { # Ok, expensive test. - my $type=get_file_type($_); - if ($type=~m/.*ELF.*(executable|shared).*/) { + my $type=get_file_type($fn, 1); + if ($type=~m/ELF.*(executable|shared)/) { push @executables, $fn; return; } } # Is it a static library, and not a debug library? - if (m/lib.*\.a$/ && ! m/.*_g\.a$/) { + if ($fn =~ m/\/lib[^\/]*\.a$/ && $fn !~ m/.*_g\.a$/) { # Is it a binary file, or something else (maybe a linker # script on Hurd, for example? I don't use file, because # file returns a variety of things on static libraries. - if (-B $_) { + if (-B $fn) { push @static_libs, $fn; return; } } } +# I could just use `file $_[0]`, but this is safer +sub get_file_type { + my ($file, $cache_ok) = @_; + return $file_output{$file} if $cache_ok && $file_output{$file}; + open (FILE, '-|') # handle all filenames safely + || exec('file', '-e', 'apptype', '-e', 'ascii', '-e', 'encoding', + '-e', 'cdf', '-e', 'compress', '-e', 'tar', $file) + || die "can't exec file: $!"; + my $type=; + close FILE; + return $file_output{$file} = $type; +} + sub make_debug { - my ($file, $tmp, $desttmp, $use_build_id, $package) = @_; + my ($file, $tmp, $desttmp, $use_build_id) = @_; + my ($debug_path, $debug_build_id); # Don't try to copy debug symbols out if the file is already # stripped. - return unless get_file_type($file) =~ /not stripped/; - - my ($base_file)=$file=~/^\Q$tmp\E(.*)/; - my ($debug_path, $debug_build_id); - - if ($use_build_id && - `LC_ALL=C readelf -n $file`=~ /^\s+Build ID: ([0-9a-f]{2})([0-9a-f]+)$/m) { - $debug_path=$desttmp."/usr/lib/debug/.build-id/$1/$2.debug"; - $debug_build_id="${1}${2}"; - } - elsif ($use_build_id > 1) { - # For dbgsyms, we need build-id (else it will not be - # co-installable). - return; + # + # Disable caching for non-build-id based extractions. + # Unfortunately, it breaks when there are hardlinks to the same + # ELF files. + my $file_info = get_file_type($file, $use_build_id ? 1 : 0); + return unless $file_info =~ /not stripped/; + + if ($use_build_id) { + if ($file_info =~ m/BuildID\[sha1]\s*=\s*([0-9a-f]{2})([0-9a-f]+)/ or + `LC_ALL=C readelf -n $file`=~ /^\s+Build ID: ([0-9a-f]{2})([0-9a-f]+)$/m) { + $debug_path=$desttmp."/usr/lib/debug/.build-id/$1/$2.debug"; + $debug_build_id="${1}${2}"; + push(@build_ids, $debug_build_id); + } else { + # For dbgsyms, we need build-id (else it will not be + # co-installable). + return if $use_build_id > 1; + } } - else { + if (not $debug_path) { + # Either not using build_id OR no build-id available + my ($base_file)=$file=~/^\Q$tmp\E(.*)/; $debug_path=$desttmp."/usr/lib/debug/".$base_file; } my $debug_dir=dirname($debug_path); - if (! -d $debug_dir) { - install_dir($debug_dir); - } + install_dir($debug_dir); if (compat(8) && $use_build_id < 2) { doit($objcopy, "--only-keep-debug", $file, $debug_path); } else { # Compat 9 OR a dbgsym package. - doit($objcopy, "--only-keep-debug", "--compress-debug-sections", $file, $debug_path); - } - - if ($use_build_id and defined($debug_build_id)) { - push(@build_ids, $debug_build_id); + doit($objcopy, "--only-keep-debug", "--compress-debug-sections", $file, $debug_path) + unless -e $debug_path; } # No reason for this to be executable. - doit("chmod", "0644", $debug_path); + reset_perm_and_owner('0644', $debug_path); return $debug_path; } @@ -302,38 +304,34 @@ my $keep_debug=$dh{K_FLAG}; my $debugtmp=$tmp; my $use_build_id = compat(8) ? 0 : 1; - if (! compat(4)) { - if (ref $dh{DEBUGPACKAGES}) { - $keep_debug=1; - # Note that it's only an array for the v4 stuff; - # for v5 only one value is used. - my $debugpackage=@{$dh{DEBUGPACKAGES}}[0]; - if (!$all_packages{$debugpackage}) { - error("debug package $debugpackage is not listed in the control file"); - } - $debugtmp=tmpdir($debugpackage); - } - } - else { - if (ref $dh{DEBUGPACKAGES} && grep { $_ eq $package } @{$dh{DEBUGPACKAGES}}) { - $keep_debug=1; - $debugtmp=tmpdir($package."-dbg"); - } - } - if ($dh{ENABLE_DBGSYM} and not $keep_debug and package_arch($package) ne 'all') { + if ($dh{DEBUGPACKAGE}) { + $keep_debug=1; + my $debugpackage=$dh{DEBUGPACKAGE}; + if (!$all_packages{$debugpackage}) { + error("debug package $debugpackage is not listed in the control file"); + } + $debugtmp=tmpdir($debugpackage); + } + # Temporary workaround: Do not build dbgsym packages for udebs as + # dpkg-gencontrol and dpkg-deb does not agree on the file + # extension. + if ($dh{ENABLE_DBGSYM} and not $keep_debug and package_arch($package) ne 'all' and not is_udeb($package)) { # Avoid creating a dbgsym that would clash with a registered # package or looks like a manual -dbg package. - if (!$all_packages{"${package}-dbgsym"} or $package =~ m/-dbg$/) { + if (not $all_packages{"${package}-dbgsym"} or $package =~ m/-dbg$/) { $debugtmp = "debian/.debhelper/${package}/dbgsym-root"; $keep_debug = 1; $use_build_id = 2; } } - @shared_libs=@executables=@static_libs=@build_ids=(); - find(\&testfile,$tmp); + %file_output=@shared_libs=@executables=@static_libs=@build_ids=(); + find({ + wanted => \&testfile, + no_chdir => 1, + }, $tmp); foreach (@shared_libs) { - my $debug_path = make_debug($_, $tmp, $debugtmp, $use_build_id, $package) if $keep_debug; + my $debug_path = make_debug($_, $tmp, $debugtmp, $use_build_id) if $keep_debug; # Note that all calls to strip on shared libs # *must* include the --strip-unneeded. doit($strip,"--remove-section=.comment", @@ -342,30 +340,36 @@ } foreach (@executables) { - my $debug_path = make_debug($_, $tmp, $debugtmp, $use_build_id, $package) if $keep_debug; + my $debug_path = make_debug($_, $tmp, $debugtmp, $use_build_id) if $keep_debug; doit($strip,"--remove-section=.comment", "--remove-section=.note",$_); attach_debug($_, $debug_path) if defined $debug_path; } if (@static_libs) { - my $strip_help = qx{$strip 2>&1}; - my @opts = ('--strip-debug', '--remove-section=.comment', - '--remove-section=.note'); - if (index($strip_help, '--enable-deterministic-archives') > -1) { + foreach (@static_libs) { # NB: The short variant (-D) is broken in Jessie # (binutils/2.25-3) - push(@opts, '--enable-deterministic-archives'); - } - foreach (@static_libs) { - doit($strip, @opts, $_); + doit($strip, '--strip-debug', '--remove-section=.comment', + '--remove-section=.note', '--enable-deterministic-archives', + $_); } } + if ($no_auto_dbgsym and $use_build_id > 1) { + # When DEB_BUILD_OPTIONS contains noautodbgsym, remove the + # dbgsym dir and clear the build-ids. + # + # Note we have to extract the dbg symbols as usual, since + # attach_debug (objcopy --add-gnu-debuglink) requires the dbg + # file to exist. + doit('rm', '-fr', $debugtmp); + @build_ids = (); + } if ($use_build_id > 1 and -d $debugtmp) { my $dbgsym_docdir = "${debugtmp}/usr/share/doc"; my $doc_symlink = "${dbgsym_docdir}/${package}-dbgsym"; if ( not -l $doc_symlink and not -e $doc_symlink ) { - install_dir($dbgsym_docdir) if not -d $dbgsym_docdir; + install_dir($dbgsym_docdir); doit('ln', '-s', $package, $doc_symlink); } if ($dh{MIGRATE_DBGSYM}) { @@ -375,16 +379,16 @@ close($fd) or error("close $path failed: $!"); } } - if (@build_ids && ($use_build_id > 1 || ref($dh{DEBUGPACKAGES}))) { + if (@build_ids && ($use_build_id > 1 || $dh{DEBUGPACKAGE})) { my ($dir, $path); if ($use_build_id > 1) { $dir = "debian/.debhelper/${package}"; } else { - my $dbg_pkg = @{$dh{DEBUGPACKAGES}}[0]; + my $dbg_pkg = $dh{DEBUGPACKAGE}; $dir = "debian/.debhelper/${dbg_pkg}"; } $path = "${dir}/dbgsym-build-ids"; - install_dir($dir) if ! -d $dir; + install_dir($dir); open(my $fd, '>>', $path) or error("open $path failed: $!"); print {$fd} join(q{ }, sort(@build_ids)) . "\n"; close($fd) or error("close $path failed: $!"); diff -Nru debhelper-9.20160115ubuntu3/dh_suidregister debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_suidregister --- debhelper-9.20160115ubuntu3/dh_suidregister 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_suidregister 1970-01-01 00:00:00.000000000 +0000 @@ -1,134 +0,0 @@ -#!/usr/bin/perl - -=head1 NAME - -dh_suidregister - suid registration program (deprecated) - -=head1 SYNOPSIS - -Do not run! - -=head1 DESCRIPTION - -This program used to register suid and sgid files with L, -but with the introduction of L, registration of files -in this way is unnecessary, and even harmful, so this program is deprecated -and should not be used. - -=head1 CONVERTING TO STATOVERRIDE - -Converting a package that uses this program to use the new statoverride -mechanism is easy. Just remove the call to B from -F, and add a versioned conflicts into your F file, as -follows: - - Conflicts: suidmanager (<< 0.50) - -The conflicts is only necessary if your package used to register things -with suidmanager; if it did not, you can just remove the call to this -program from your rules file. - -=cut - -use strict; -use warnings; -use Debian::Debhelper::Dh_Lib; -init(); - -my $notused=1; - -foreach my $package (@{$dh{DOPACKAGES}}) { - my $tmp=tmpdir($package); - my $suid=pkgfile($package,"suid"); - my $tostrip=''; - - my @files; - if ($suid) { - @files=filearray($suid, $tmp); - } - - if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) { - push @files, @ARGV; - } - - if (! @files && ! $suid) { - # No files specified (and no empty debian/suid file), so - # guess what files to process. - @files=split(/\n/,`find $tmp -type f -perm /6000`); - - # Strip the debian working directory off of the filenames. - $tostrip="$tmp/"; - } - else { - # We will strip leading /'s, so the user can feed this - # program either absolute filenames, or relative filenames, - # and it will do the right thing either way. - $tostrip="/"; - } - - # Register files with suidregister. - foreach my $file (@files) { - # Strip leading $tostrip from $file. - $file=~s/^$tostrip//; - - # Create the sed string that will be used to - # fill in the blanks in the autoscript files. - # Fill with the owner, group, and perms of the file. - my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat("$tmp/$file"); - # Now come up with the user and group names for the uid and - # gid. - my $user=getpwuid($uid); - if (! defined $user) { - warning("$file has odd uid $uid, not in /etc/passwd"); - $user=$uid; - } - my $group=getgrgid($gid); - if (! defined $group) { - warning("$file has odd gid $gid not in /etc/group"); - $group=$gid; - } - # Note that I have to print mode in octal, stripping file - # type. - my $sedstr=sprintf("s:#FILE#:$file:;s/#PACKAGE#/$package/;s/#OWNER#/$user/;s/#GROUP#/$group/;s/#PERMS#/%#o/", - $mode & 07777); - autoscript($package,"postinst","postinst-suid",$sedstr); - autoscript($package,"postrm","postrm-suid","$sedstr"); - } - - # Remove suid bits from files. This is delayed to this point, because - # of a situation with hard linked files if it is done earlier. - # See changelog for 2.0.77. - foreach my $file (@files) { - if ( -e "$tmp/$file") { - doit("chmod","a-s","$tmp/$file"); - } - } - - if (@files) { - warning("This program should no longer be used. Please read the dh_suidregister(1) man page."); - $notused=0; - } -} - -# Although they called it, it's not going to do anything. -if ($notused) { - warning("This program is obsolete, does nothing, and may be safely removed from your rules file."); -} - -=head1 SEE ALSO - -L - -This program is a part of debhelper. - -=head1 AUTHOR - -Joey Hess - -=cut - -# Local Variables: -# indent-tabs-mode: t -# tab-width: 4 -# cperl-indent-level: 4 -# End: diff -Nru debhelper-9.20160115ubuntu3/dh_systemd_enable debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_systemd_enable --- debhelper-9.20160115ubuntu3/dh_systemd_enable 1970-01-01 00:00:00.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_systemd_enable 2016-10-02 20:18:43.000000000 +0000 @@ -0,0 +1,272 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_systemd_enable - enable/disable systemd unit files + +=cut + +use strict; +use warnings; +use Debian::Debhelper::Dh_Lib; +use File::Find; + +=head1 SYNOPSIS + +B [S>] [B<--no-enable>] [B<--name=>I] [S ...>] + +=head1 DESCRIPTION + +B is a debhelper program that is responsible for enabling +and disabling systemd unit files. + +In the simple case, it finds all unit files installed by a package (e.g. +bacula-fd.service) and enables them. It is not necessary that the machine +actually runs systemd during package installation time, enabling happens on all +machines in order to be able to switch from sysvinit to systemd and back. + +In the complex case, you can call B and B +manually (by overwriting the debian/rules targets) and specify flags per unit +file. An example is colord, which ships colord.service, a dbus-activated +service without an [Install] section. This service file cannot be enabled or +disabled (a state called "static" by systemd) because it has no +[Install] section. Therefore, running dh_systemd_enable does not make sense. + +For only generating blocks for specific service files, you need to pass them as +arguments, e.g. B and B. + +=head1 FILES + +=over 4 + +=item debian/I.service + +If this exists, it is installed into lib/systemd/system/I.service in +the package build directory. + +=item debian/I.tmpfile + +If this exists, it is installed into usr/lib/tmpfiles.d/I.conf in the +package build directory. (The tmpfiles.d mechanism is currently only used +by systemd.) + +=back + +=head1 OPTIONS + +=over 4 + +=item B<--no-enable> + +Just disable the service(s) on purge, but do not enable them by default. + +=item B<--name=>I + +Install the service file as I instead of the default filename, +which is the I. When this parameter is used, +B looks for and installs files named +F instead of the usual F. + +=back + +=head1 NOTES + +Note that this command is not idempotent. L should be called +between invocations of this command (with the same arguments). Otherwise, it +may cause multiple instances of the same text to be added to maintainer +scripts. + +Note that B should be run before B. +The default sequence in B does the right thing, this note is only relevant +when you are calling B manually. + +=cut + +init(options => { + "no-enable" => \$dh{NO_ENABLE}, +}); + +sub contains_install_section { + my ($unit_path) = @_; + my $fh; + if (!open($fh, '<', $unit_path)) { + warning("Cannot open($unit_path) for extracting the Also= line(s)"); + return; + } + while (my $line = <$fh>) { + chomp($line); + return 1 if $line =~ /^\s*\[Install\]$/i; + } + close($fh); + return 0; +} + +# PROMISE: DH NOOP WITHOUT tmp(lib/systemd/system) mount path service socket target tmpfile + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmpdir = tmpdir($package); + my @installed_units; + my @units; + + # XXX: This is duplicated in dh_installinit, which is unfortunate. + # We do need the service files before running dh_installinit though, + # every other solution makes things much worse for all the maintainers. + + # Figure out what filename to install it as. + my $script; + my $jobfile=$package; + if (defined $dh{NAME}) { + $jobfile=$script=$dh{NAME}; + } + elsif ($dh{D_FLAG}) { + # -d on the command line sets D_FLAG. We will + # remove a trailing 'd' from the package name and + # use that as the name. + $script=$package; + if ($script=~m/(.*)d$/) { + $jobfile=$script=$1; + } + else { + warning("\"$package\" has no final d' in its name, but -d was specified."); + } + } + elsif ($dh{INIT_SCRIPT}) { + $script=$dh{INIT_SCRIPT}; + } + else { + $script=$package; + } + + my $service=pkgfile($package,"service"); + if ($service ne '') { + my $path="$tmpdir/lib/systemd/system"; + install_dir($path); + + install_file($service, "$path/$script.service"); + } + + my $template=pkgfile("$package@","service"); + if ($template ne '') { + my $path="$tmpdir/lib/systemd/system"; + install_dir($path); + install_file($template, "$path/$script@.service"); + } + + my $target=pkgfile($package,"target"); + if ($target ne '') { + my $path="$tmpdir/lib/systemd/system"; + install_dir($path); + install_file($target, "$path/$script.target"); + } + + my $socket=pkgfile($package,"socket"); + if ($socket ne '') { + my $path="$tmpdir/lib/systemd/system"; + install_dir($path); + install_file($socket, "$path/$script.socket"); + } + + my $tmpfile=pkgfile($package,"tmpfile"); + if ($tmpfile ne '') { + my $path="$tmpdir/usr/lib/tmpfiles.d"; + install_dir($path); + install_file($tmpfile, "$path/$script.conf"); + } + + my $mount=pkgfile($package,"mount"); + if ($mount ne '') { + my $path="$tmpdir/usr/lib/system"; + install_dir($path); + install_file($mount, "$path/$script.mount"); + } + + my $pathunit=pkgfile($package,"path"); + if ($pathunit ne '') { + my $path="$tmpdir/lib/systemd/system"; + install_dir($path); + install_file($pathunit, "$path/$script.path"); + } + + find({ + wanted => sub { + my $name = $File::Find::name; + return unless -f $name; + # Skip symbolic links, their only legitimate use is for + # adding an alias, e.g. linking smartmontools.service + # -> smartd.service. + return if -l $name; + return unless $name =~ m,^$tmpdir/lib/systemd/system/[^/]+$,; + push @installed_units, $name; + }, + no_chdir => 1, + }, "${tmpdir}/lib/systemd/system") if -d "${tmpdir}/lib/systemd/system"; + + # Handle either only the unit files which were passed as arguments or + # all unit files that are installed in this package. + my @args = @ARGV > 0 ? @ARGV : @installed_units; + + # support excluding units via -X + foreach my $x (@{$dh{EXCLUDE}}) { + @args = grep !/(^|\/)$x$/, @args; + } + + for my $name (@args) { + my $base = basename($name); + + # Try to make the path absolute, so that the user can call + # dh_installsystemd bacula-fd.service + if ($base eq $name) { + # NB: This works because @installed_units contains + # files from precisely one directory. + my ($full) = grep { basename($_) eq $base } @installed_units; + if (defined($full)) { + $name = $full; + } else { + warning(qq|Could not find "$name" in the /lib/systemd/system directory of $package. | . + qq|This could be a typo, or using Also= with a service file from another package. | . + qq|Please check carefully that this message is harmless.|); + } + } + + # Skip template service files like e.g. getty@.service. + # Enabling, disabling, starting or stopping those services + # without specifying the instance (e.g. getty@ttyS0.service) is + # not useful. + if ($name =~ /\@/) { + next; + } + + # Skip unit files that don’t have an [Install] section. + next unless contains_install_section($name); + + push @units, $name; + } + + next if @units == 0; + + my $unitargs = join(" ", sort map { basename($_) } @units); + for my $unit (sort @units) { + my $base = basename($unit); + if ($dh{NO_ENABLE}) { + autoscript($package, "postinst", "postinst-systemd-dont-enable", "s/#UNITFILE#/$base/"); + } else { + autoscript($package, "postinst", "postinst-systemd-enable", "s/#UNITFILE#/$base/"); + } + } + autoscript($package, "postrm", "postrm-systemd", "s/#UNITFILES#/$unitargs/"); + + # init-system-helpers ships deb-systemd-helper which we use in our + # autoscripts + addsubstvar($package, "misc:Depends", "init-system-helpers (>= 1.18~)"); +} + +=head1 SEE ALSO + +L, L + +=head1 AUTHORS + +pkg-systemd-maintainers@lists.alioth.debian.org + +=cut diff -Nru debhelper-9.20160115ubuntu3/dh_systemd_start debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_systemd_start --- debhelper-9.20160115ubuntu3/dh_systemd_start 1970-01-01 00:00:00.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_systemd_start 2016-10-02 20:18:43.000000000 +0000 @@ -0,0 +1,253 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_systemd_start - start/stop/restart systemd unit files + +=cut + +use strict; +use warnings; +use Debian::Debhelper::Dh_Lib; +use File::Find; +use Cwd qw(getcwd abs_path); + +=head1 SYNOPSIS + +B [S>] [B<--restart-after-upgrade>] [B<--no-stop-on-upgrade>] [S ...>] + +=head1 DESCRIPTION + +B is a debhelper program that is responsible for +starting/stopping or restarting systemd unit files in case no corresponding +sysv init script is available. + +As with B, the unit file is stopped before +upgrades and started afterwards (unless B<--restart-after-upgrade> is +specified, in which case it will only be restarted after the upgrade). +This logic is not used when there is a corresponding SysV init script +because invoke-rc.d performs the stop/start/restart in that case. + +=head1 OPTIONS + +=over 4 + +=item B<--restart-after-upgrade> + +Do not stop the unit file until after the package upgrade has been completed. +This is the default behaviour in compat 10. + +In earlier compat levels the default was to stop the unit file in the +F, and start it again in the F. + +This can be useful for daemons that should not have a possibly long +downtime during upgrade. But you should make sure that the daemon will not +get confused by the package being upgraded while it's running before using +this option. + +=item B<--no-restart-after-upgrade> + +Undo a previous B<--restart-after-upgrade> (or the default of compat +10). If no other options are given, this will cause the service to be +stopped in the F script and started again in the F +script. + +=item B<-r>, B<--no-stop-on-upgrade>, B<--no-restart-on-upgrade> + +Do not stop service on upgrade. + +=item B<--no-start> + +Do not start the unit file after upgrades and after initial installation (the +latter is only relevant for services without a corresponding init script). + +=back + +=head1 NOTES + +Note that this command is not idempotent. L should be called +between invocations of this command (with the same arguments). Otherwise, it +may cause multiple instances of the same text to be added to maintainer +scripts. + +Note that B should be run after B so that it +can detect corresponding SysV init scripts. The default sequence in B does +the right thing, this note is only relevant when you are calling +B manually. + +=cut + +$dh{RESTART_AFTER_UPGRADE} = 1 if not compat(9); + +init(options => { + "r" => \$dh{R_FLAG}, + 'no-stop-on-upgrade' => \$dh{R_FLAG}, + "no-restart-on-upgrade" => \$dh{R_FLAG}, + "no-start" => \$dh{NO_START}, + "R|restart-after-upgrade!" => \$dh{RESTART_AFTER_UPGRADE}, + "no-also" => \$dh{NO_ALSO}, +}); + +# Extracts the Also= or Alias= line(s) from a unit file. +# In case this produces horribly wrong results, you can pass --no-also, but +# that should really not be necessary. Please report bugs to +# pkg-systemd-maintainers. +sub extract_key { + my ($unit_path, $key) = @_; + my @values; + my $fh; + + if ($dh{NO_ALSO}) { + return @values; + } + + if (!open($fh, '<', $unit_path)) { + warning("Cannot open($unit_path) for extracting the Also= line(s)"); + return; + } + while (my $line = <$fh>) { + chomp($line); + + # The keys parsed from the unit file below can only have + # unit names as values. Since unit names can't have + # whitespace in systemd, simply use split and strip any + # leading/trailing quotes. See systemd-escape(1) for + # examples of valid unit names. + if ($line =~ /^\s*$key=(.+)$/i) { + for my $value (split(/\s+/, $1)) { + $value =~ s/^(["'])(.*)\g1$/$2/; + push @values, $value; + } + } + } + close($fh); + return @values; +} + + +# PROMISE: DH NOOP WITHOUT tmp(lib/systemd/system) + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmpdir = tmpdir($package); + my @installed_units; + my @units; + my %aliases; + + my $oldcwd = getcwd(); + find({ + wanted => sub { + my $name = $File::Find::name; + return unless -f; + return unless $name =~ m,^$tmpdir/lib/systemd/system/[^/]+$,; + if (-l) { + my $target = abs_path(readlink()); + $target =~ s,^$oldcwd/,,g; + $aliases{$target} = [ $_ ]; + } else { + push @installed_units, $name; + } + }, + }, "${tmpdir}/lib/systemd/system") if -d "${tmpdir}/lib/systemd/system"; + chdir($oldcwd); + + # Handle either only the unit files which were passed as arguments or + # all unit files that are installed in this package. + my @args = @ARGV > 0 ? @ARGV : @installed_units; + + # support excluding units via -X + foreach my $x (@{$dh{EXCLUDE}}) { + @args = grep !/(^|\/)$x$/, @args; + } + + # This hash prevents us from looping forever in the following while loop. + # An actual real-world example of such a loop is systemd’s + # systemd-readahead-drop.service, which contains + # Also=systemd-readahead-collect.service, and that file in turn + # contains Also=systemd-readahead-drop.service, thus forming an endless + # loop. + my %seen; + + # We use while/shift because we push to the list in the body. + while (@args) { + my $name = shift @args; + my $base = basename($name); + + # Try to make the path absolute, so that the user can call + # dh_installsystemd bacula-fd.service + if ($base eq $name) { + # NB: This works because @installed_units contains + # files from precisely one directory. + my ($full) = grep { basename($_) eq $base } @installed_units; + if (defined($full)) { + $name = $full; + } else { + warning(qq|Could not find "$name" in the /lib/systemd/system directory of $package. | . + qq|This could be a typo, or using Also= with a service file from another package. | . + qq|Please check carefully that this message is harmless.|); + } + } + + # Skip template service files like e.g. getty@.service. + # Enabling, disabling, starting or stopping those services + # without specifying the instance (e.g. getty@ttyS0.service) is + # not useful. + if ($name =~ /\@/) { + next; + } + + # Handle all unit files specified via Also= explicitly. + # This is not necessary for enabling, but for disabling, as we + # cannot read the unit file when disabling (it was already + # deleted). + my @also = grep { !exists($seen{$_}) } extract_key($name, 'Also'); + $seen{$_} = 1 for @also; + @args = (@args, @also); + + push @{$aliases{$name}}, $_ for extract_key($name, 'Alias'); + my @sysv = grep { + my $base = $_; + $base =~ s/\.(?:mount|service|socket|target|path)$//g; + -f "$tmpdir/etc/init.d/$base" + } ($base, @{$aliases{$name}}); + if (@sysv == 0 && !grep { $_ eq $name } @units) { + push @units, $name; + } + } + + next if @units == 0; + + # The $package and $sed parameters are always the same. + # This wrapper function makes the following logic easier to read. + my $sd_autoscript = sub { + my ($script, $filename) = @_; + my $unitargs = join(" ", sort map { basename($_) } @units); + autoscript($package, $script, $filename, "s/#UNITFILES#/$unitargs/"); + }; + + if ($dh{RESTART_AFTER_UPGRADE}) { + $sd_autoscript->("postinst", "postinst-systemd-restart"); + } elsif (!$dh{NO_START}) { + # We need to stop/start before/after the upgrade. + $sd_autoscript->("postinst", "postinst-systemd-start"); + } + + $sd_autoscript->("postrm", "postrm-systemd-reload-only"); + + if ($dh{R_FLAG} || $dh{RESTART_AFTER_UPGRADE}) { + # stop service only on remove + $sd_autoscript->("prerm", "prerm-systemd-restart"); + } elsif (!$dh{NO_START}) { + # always stop service + $sd_autoscript->("prerm", "prerm-systemd"); + } +} + +=head1 SEE ALSO + +L + +=head1 AUTHORS + +pkg-systemd-maintainers@lists.alioth.debian.org + +=cut diff -Nru debhelper-9.20160115ubuntu3/dh_ucf debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_ucf --- debhelper-9.20160115ubuntu3/dh_ucf 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_ucf 2016-10-01 16:37:45.000000000 +0000 @@ -39,7 +39,7 @@ =over 4 -=item B<-n>, B<--noscripts> +=item B<-n>, B<--no-scripts> Do not modify F/F scripts. Turns this command into a no-op. @@ -58,7 +58,6 @@ # PROMISE: DH NOOP WITHOUT ucf foreach my $package (@{$dh{DOPACKAGES}}) { - my $tmp=tmpdir($package); my $file=pkgfile($package,"ucf"); my @ucf; diff -Nru debhelper-9.20160115ubuntu3/dh_undocumented debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_undocumented --- debhelper-9.20160115ubuntu3/dh_undocumented 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_undocumented 1970-01-01 00:00:00.000000000 +0000 @@ -1,45 +0,0 @@ -#!/usr/bin/perl - -=head1 NAME - -dh_undocumented - undocumented.7 symlink program (deprecated no-op) - -=cut - -use strict; -use warnings; -use Debian::Debhelper::Dh_Lib; - -=head1 SYNOPSIS - -Do not run! - -=head1 DESCRIPTION - -This program used to make symlinks to the F man page for man -pages not present in a package. Debian policy now frowns on use of the -F man page, and so this program does nothing, and should not -be used. - -=cut - -init(); -warning("This program does nothing and should no longer be used."); - -=head1 SEE ALSO - -L - -This program is a part of debhelper. - -=head1 AUTHOR - -Joey Hess - -=cut - -# Local Variables: -# indent-tabs-mode: t -# tab-width: 4 -# cperl-indent-level: 4 -# End: diff -Nru debhelper-9.20160115ubuntu3/dh_update_autotools_config debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_update_autotools_config --- debhelper-9.20160115ubuntu3/dh_update_autotools_config 2016-01-15 20:08:02.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_update_autotools_config 2016-10-02 13:45:42.000000000 +0000 @@ -2,7 +2,7 @@ =head1 NAME -dh_update_autotools_config - Update autotools config files +dh_update_autotools_config - Update autotools config files =cut diff -Nru debhelper-9.20160115ubuntu3/dh_usrlocal debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_usrlocal --- debhelper-9.20160115ubuntu3/dh_usrlocal 2016-01-14 19:49:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/dh_usrlocal 2016-10-01 16:37:45.000000000 +0000 @@ -40,7 +40,7 @@ =over 4 -=item B<-n>, B<--noscripts> +=item B<-n>, B<--no-scripts> Do not modify F/F scripts. diff -Nru debhelper-9.20160115ubuntu3/doc/PROGRAMMING debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/doc/PROGRAMMING --- debhelper-9.20160115ubuntu3/doc/PROGRAMMING 2016-01-10 08:28:48.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/doc/PROGRAMMING 2016-10-02 20:40:09.000000000 +0000 @@ -311,6 +311,7 @@ install_dir($dir) Create the directory denoted by the path $dir and all parent entries as well (as needed). + If the directory already exists, the function does not. install_file($src, $dest) Installs $src into $dest with mode 0644. The parent dir of $dest must exist (can be created with install_dir). @@ -323,6 +324,22 @@ Installs a library at the path $src into $dest. The parent dir of $dest must exist (can be created with install_dir). This is intended for installing libraries. +reset_perm_and_owner($mode, $path...) + Resets the ownership and mode (POSIX permissions) of $path + This is useful for files created directly by the script, but + it not necessary for files installed via the install_* + functions. + The file owner and group is set to "root:root". The change + is only done on the exact paths listed (i.e. it is *not* + recursive). + To avoid issue, please pass mode as a string (i.e. '0755' + rather than 0755). +open_gz($file) + Open $file, read from it as a gzip-compressed file and return + the file handle. + Depending on runtime features, it might be a pipe from an + external process (which will die with a "SIGPIPE" if you + do not consume all the input) Sequence Addons: --------------- @@ -372,7 +389,10 @@ inside Debian::Debhelper::Buildsystem for details. Note that this interface is still subject to change. -Note that third-party buildsystems will not automatically be used by default, -but can be forced to be used via the --buildsystem parameter. +Note that third-party buildsystems will not automatically be used by +default. The package maintainer will either have to explicitly enable +it via the --buildsystem parameter OR the build system should be +registered in debhelper. The latter is currently needed to ensure a +stable and well-defined ordering of the build systems. -- Joey Hess diff -Nru debhelper-9.20160115ubuntu3/doc/TODO debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/doc/TODO --- debhelper-9.20160115ubuntu3/doc/TODO 2015-04-16 18:24:21.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/doc/TODO 2016-10-01 08:08:10.000000000 +0000 @@ -1,28 +1,19 @@ v10: * escaping in config files (for whitespace)? -* dh_installinit --restart-after-upgrade as default? Deprecated: -* make a missing debian/compat an error. (started printing warning messages - in 20120115) -* DH_COMPAT 1, 2, 3, 4. Can be removed once all packages are seen to be using - a newer version. I won't hold my breath. (2 and 3 are getting close though.) -* dh_suidregister. Once nothing in the archive uses it. * dh_installmanpages. * dh_movefiles. I won't hold my breath. Have not added deprecation docs or message yet. -* dh_undocumented * dh_installinit --init-script (make it warn) * dh_clean -k -* dh_desktop, dh_scrollkeeper. Remove eventually.. * -s flag, not formally deprecated yet; remove eventually * -u flag; add a warning on use and remove eventually * delsubstvar() and the last parameter to addsubstvar that makes it remove a string are not used in debhelper itself, but have been left in the library in case other things use them. Deprecate and remove. -* dh --before , --after , --until , --remaining * debian/compress files * deprecate dh_gconf for dh_installgsettings (stuff should be migrating away from gconf, and then I can just remove it -- have not added warning diff -Nru debhelper-9.20160115ubuntu3/Makefile debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Makefile --- debhelper-9.20160115ubuntu3/Makefile 2015-07-01 15:35:05.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/Makefile 2016-10-01 08:13:53.000000000 +0000 @@ -49,7 +49,7 @@ LANGS= endif -build: version debhelper.7 +build: version debhelper.7 debhelper-obsolete-compat.7 find . -maxdepth 1 -type f -perm /100 -name "dh*" \ -exec $(POD2MAN) {} {}.1 \; ifneq ($(USE_NLS),no) @@ -66,6 +66,9 @@ $(MAKEMANLIST) `find $$dir -type f -maxdepth 1 -name "dh_*.pod" | LC_ALL=C sort` | \ $(POD2MAN) --name="debhelper" --section=7 > debhelper.$$lang.7; \ fi; \ + if [ -e $$dir/debhelper-obsolete-compat.pod ]; then \ + $(POD2MAN) --name="debhelper" --section=7 $$dir/debhelper-obsolete-compat.pod > debhelper-obsolete-compat.$$lang.7; \ + fi; \ done endif @@ -76,7 +79,10 @@ debhelper.7: debhelper.pod cat debhelper.pod | \ $(MAKEMANLIST) $(COMMANDS) | \ - $(POD2MAN) --name="debhelper" --section=7 > debhelper.7 + $(POD2MAN) --name="debhelper" --section=7 > $@ + +debhelper-obsolete-compat.7: debhelper-obsolete-compat.pod + $(POD2MAN) --name="debhelper" --section=7 $^ > $@ clean: rm -f *.1 *.7 Debian/Debhelper/Dh_Version.pm @@ -101,6 +107,6 @@ install -m 0644 Debian/Debhelper/Buildsystem/*.pm $(DESTDIR)$(PERLLIBDIR)/Buildsystem test: version - ./run perl -MTest::Harness -e 'runtests grep { ! /CVS/ && ! /\.svn/ && -f && -x } @ARGV' t/* t/buildsystems/* + ./run perl -MTest::Harness -e 'runtests grep { ! /CVS/ && ! /\.svn/ && -f && -x } @ARGV' t/* t/*/* # clean up log etc ./run dh_clean diff -Nru debhelper-9.20160115ubuntu3/man/po4a/po/debhelper.pot debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/man/po4a/po/debhelper.pot --- debhelper-9.20160115ubuntu3/man/po4a/po/debhelper.pot 2016-01-14 21:54:44.000000000 +0000 +++ debhelper-10.2.2ubuntu1~ubuntu16.04.1~xenial/man/po4a/po/debhelper.pot 2017-02-24 13:37:33.000000000 +0000 @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2016-01-14 22:54+0100\n" +"POT-Creation-Date: 2017-02-24 14:37+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ "Content-Transfer-Encoding: 8bit\n" #. type: =head1 -#: debhelper.pod:1 dh:3 dh_auto_build:3 dh_auto_clean:3 dh_auto_configure:3 dh_auto_install:3 dh_auto_test:3 dh_bugfiles:3 dh_builddeb:3 dh_clean:3 dh_compress:3 dh_desktop:3 dh_fixperms:3 dh_gconf:3 dh_gencontrol:3 dh_icons:3 dh_install:3 dh_installcatalogs:3 dh_installchangelogs:3 dh_installcron:3 dh_installdeb:3 dh_installdebconf:3 dh_installdirs:3 dh_installdocs:3 dh_installemacsen:3 dh_installexamples:3 dh_installifupdown:3 dh_installinfo:3 dh_installinit:3 dh_installlogcheck:3 dh_installlogrotate:3 dh_installman:3 dh_installmanpages:3 dh_installmenu:3 dh_installmime:3 dh_installmodules:3 dh_installpam:3 dh_installppp:3 dh_installudev:3 dh_installwm:3 dh_installxfonts:3 dh_link:3 dh_lintian:3 dh_listpackages:3 dh_makeshlibs:3 dh_md5sums:3 dh_movefiles:3 dh_perl:3 dh_prep:3 dh_scrollkeeper:3 dh_shlibdeps:3 dh_strip:3 dh_suidregister:3 dh_testdir:3 dh_testroot:3 dh_undocumented:3 dh_usrlocal:3 +#: debhelper.pod:1 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:3 dh_clean:3 dh_compress:3 dh_fixperms:3 dh_gconf:3 dh_gencontrol:3 dh_icons:3 dh_install:3 dh_installcatalogs:3 dh_installchangelogs:3 dh_installcron:3 dh_installdeb:3 dh_installdebconf:3 dh_installdirs:3 dh_installdocs:3 dh_installemacsen:3 dh_installexamples:3 dh_installifupdown:3 dh_installinfo:3 dh_installinit:3 dh_installlogcheck:3 dh_installlogrotate:3 dh_installman:3 dh_installmanpages:3 dh_installmenu:3 dh_installmime:3 dh_installmodules:3 dh_installpam:3 dh_installppp:3 dh_installudev:3 dh_installwm:3 dh_installxfonts:3 dh_link:3 dh_lintian:3 dh_listpackages:3 dh_makeshlibs:3 dh_md5sums:3 dh_movefiles:3 dh_perl:3 dh_prep:3 dh_shlibdeps:3 dh_strip:3 dh_testdir:3 dh_testroot:3 dh_usrlocal:3 dh_systemd_enable:3 dh_systemd_start:3 msgid "NAME" msgstr "" @@ -27,19 +27,19 @@ msgstr "" #. type: =head1 -#: debhelper.pod:5 dh:13 dh_auto_build:13 dh_auto_clean:14 dh_auto_configure:13 dh_auto_install:16 dh_auto_test:14 dh_bugfiles:13 dh_builddeb:13 dh_clean:13 dh_compress:15 dh_desktop:13 dh_fixperms:14 dh_gconf:13 dh_gencontrol:13 dh_icons:14 dh_install:14 dh_installcatalogs:15 dh_installchangelogs:13 dh_installcron:13 dh_installdeb:13 dh_installdebconf:13 dh_installdirs:13 dh_installdocs:13 dh_installemacsen:13 dh_installexamples:13 dh_installifupdown:13 dh_installinfo:13 dh_installinit:14 dh_installlogcheck:13 dh_installlogrotate:13 dh_installman:14 dh_installmanpages:14 dh_installmenu:13 dh_installmime:13 dh_installmodules:14 dh_installpam:13 dh_installppp:13 dh_installudev:14 dh_installwm:13 dh_installxfonts:13 dh_link:14 dh_lintian:13 dh_listpackages:13 dh_makeshlibs:13 dh_md5sums:14 dh_movefiles:13 dh_perl:15 dh_prep:13 dh_scrollkeeper:13 dh_shlibdeps:14 dh_strip:14 dh_suidregister:7 dh_testdir:13 dh_testroot:7 dh_undocumented:13 dh_usrlocal:15 +#: debhelper.pod:5 debhelper-obsolete-compat.pod:5 dh:13 dh_auto_build:13 dh_auto_clean:14 dh_auto_configure:13 dh_auto_install:16 dh_auto_test:14 dh_bugfiles:13 dh_builddeb:13 dh_clean:13 dh_compress:15 dh_fixperms:14 dh_gconf:13 dh_gencontrol:13 dh_icons:14 dh_install:14 dh_installcatalogs:15 dh_installchangelogs:13 dh_installcron:13 dh_installdeb:13 dh_installdebconf:13 dh_installdirs:13 dh_installdocs:13 dh_installemacsen:13 dh_installexamples:13 dh_installifupdown:13 dh_installinfo:13 dh_installinit:14 dh_installlogcheck:13 dh_installlogrotate:13 dh_installman:14 dh_installmanpages:14 dh_installmenu:13 dh_installmime:13 dh_installmodules:14 dh_installpam:13 dh_installppp:13 dh_installudev:14 dh_installwm:13 dh_installxfonts:13 dh_link:14 dh_lintian:13 dh_listpackages:13 dh_makeshlibs:13 dh_md5sums:14 dh_movefiles:13 dh_perl:15 dh_prep:13 dh_shlibdeps:14 dh_strip:14 dh_testdir:13 dh_testroot:7 dh_usrlocal:15 dh_systemd_enable:14 dh_systemd_start:15 msgid "SYNOPSIS" msgstr "" #. type: textblock #: debhelper.pod:7 msgid "" -"BI<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-p>I] " +"BI<*> [B<-v>] [B<-a>] [B<-i>] [B<--no-act>] [B<-p>I] " "[B<-N>I] [B<-P>I]" msgstr "" #. type: =head1 -#: debhelper.pod:9 dh:17 dh_auto_build:17 dh_auto_clean:18 dh_auto_configure:17 dh_auto_install:20 dh_auto_test:18 dh_bugfiles:17 dh_builddeb:17 dh_clean:17 dh_compress:19 dh_desktop:17 dh_fixperms:18 dh_gconf:17 dh_gencontrol:17 dh_icons:18 dh_install:18 dh_installcatalogs:19 dh_installchangelogs:17 dh_installcron:17 dh_installdeb:17 dh_installdebconf:17 dh_installdirs:17 dh_installdocs:17 dh_installemacsen:17 dh_installexamples:17 dh_installifupdown:17 dh_installinfo:17 dh_installinit:18 dh_installlogcheck:17 dh_installlogrotate:17 dh_installman:18 dh_installmanpages:18 dh_installmenu:17 dh_installmime:17 dh_installmodules:18 dh_installpam:17 dh_installppp:17 dh_installudev:18 dh_installwm:17 dh_installxfonts:17 dh_link:18 dh_lintian:17 dh_listpackages:17 dh_makeshlibs:17 dh_md5sums:18 dh_movefiles:17 dh_perl:19 dh_prep:17 dh_scrollkeeper:17 dh_shlibdeps:18 dh_strip:18 dh_suidregister:11 dh_testdir:17 dh_testroot:11 dh_undocumented:17 dh_usrlocal:19 +#: debhelper.pod:9 dh:17 dh_auto_build:17 dh_auto_clean:18 dh_auto_configure:17 dh_auto_install:20 dh_auto_test:18 dh_bugfiles:17 dh_builddeb:17 dh_clean:17 dh_compress:19 dh_fixperms:18 dh_gconf:17 dh_gencontrol:17 dh_icons:18 dh_install:18 dh_installcatalogs:19 dh_installchangelogs:17 dh_installcron:17 dh_installdeb:17 dh_installdebconf:17 dh_installdirs:17 dh_installdocs:17 dh_installemacsen:17 dh_installexamples:17 dh_installifupdown:17 dh_installinfo:17 dh_installinit:18 dh_installlogcheck:17 dh_installlogrotate:17 dh_installman:18 dh_installmanpages:18 dh_installmenu:17 dh_installmime:17 dh_installmodules:18 dh_installpam:17 dh_installppp:17 dh_installudev:18 dh_installwm:17 dh_installxfonts:17 dh_link:18 dh_lintian:17 dh_listpackages:17 dh_makeshlibs:17 dh_md5sums:18 dh_movefiles:17 dh_perl:19 dh_prep:17 dh_shlibdeps:18 dh_strip:18 dh_testdir:17 dh_testroot:11 dh_usrlocal:19 dh_systemd_enable:18 dh_systemd_start:19 msgid "DESCRIPTION" msgstr "" @@ -207,7 +207,7 @@ msgstr "" #. type: =item -#: debhelper.pod:106 dh:65 +#: debhelper.pod:106 dh:67 msgid "B<--no-act>" msgstr "" @@ -226,8 +226,8 @@ #. type: textblock #: debhelper.pod:113 msgid "" -"Act on architecture dependent packages that should be built for the build " -"architecture." +"Act on architecture dependent packages that should be built for the " +"B architecture." msgstr "" #. type: =item @@ -259,30 +259,28 @@ #. type: textblock #: debhelper.pod:127 -msgid "" -"This used to be a smarter version of the B<-a> flag, but the B<-a> flag is " -"now equally smart." +msgid "Deprecated alias of B<-a>." msgstr "" #. type: =item -#: debhelper.pod:130 +#: debhelper.pod:129 msgid "B<-N>I, B<--no-package=>I" msgstr "" #. type: textblock -#: debhelper.pod:132 +#: debhelper.pod:131 msgid "" "Do not act on the specified package even if an B<-a>, B<-i>, or B<-p> option " "lists the package as one that should be acted on." msgstr "" #. type: =item -#: debhelper.pod:135 +#: debhelper.pod:134 msgid "B<--remaining-packages>" msgstr "" #. type: textblock -#: debhelper.pod:137 +#: debhelper.pod:136 msgid "" "Do not act on the packages which have already been acted on by this " "debhelper command earlier (i.e. if the command is present in the package " @@ -292,12 +290,12 @@ msgstr "" #. type: =item -#: debhelper.pod:143 +#: debhelper.pod:142 msgid "B<--ignore=>I" msgstr "" #. type: textblock -#: debhelper.pod:145 +#: debhelper.pod:144 msgid "" "Ignore the specified file. This can be used if F contains a " "debhelper config file that a debhelper command should not act on. Note that " @@ -306,29 +304,29 @@ msgstr "" #. type: textblock -#: debhelper.pod:150 +#: debhelper.pod:149 msgid "" "For example, if upstream ships a F that you don't want " "B to install, use B<--ignore=debian/init>" msgstr "" #. type: =item -#: debhelper.pod:153 +#: debhelper.pod:152 msgid "B<-P>I, B<--tmpdir=>I" msgstr "" #. type: textblock -#: debhelper.pod:155 +#: debhelper.pod:154 msgid "Use I for package build directory. The default is debian/I" msgstr "" #. type: =item -#: debhelper.pod:157 +#: debhelper.pod:156 msgid "B<--mainpackage=>I" msgstr "" #. type: textblock -#: debhelper.pod:159 +#: debhelper.pod:158 msgid "" "This little-used option changes the package which debhelper considers the " "\"main package\", that is, the first one listed in F, and " @@ -337,12 +335,12 @@ msgstr "" #. type: =item -#: debhelper.pod:164 +#: debhelper.pod:163 msgid "B<-O=>I