summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joeyh@debian.org>2013-09-21 13:16:34 -0400
committerJoey Hess <joeyh@debian.org>2013-09-21 13:16:34 -0400
commit775d1ca63964312b7f519edfe0cce476669617f6 (patch)
tree29834fd91c532ee93aec9dfe6e8f1fc4e19019f7
debhelper (9.20130921) unstable; urgency=low
* dh: Call dh_installxfonts after dh_link, so that it will notice fonts installed via symlinks. Closes: #721264 * Fix FTBFS with perl 5.18. Closes: #722501 * dh_installchangelogs: Add changelog.md to the list of common changelog filenames. # imported from the archive
-rw-r--r--Debian/Debhelper/Buildsystem.pm415
-rw-r--r--Debian/Debhelper/Buildsystem/ant.pm37
-rw-r--r--Debian/Debhelper/Buildsystem/autoconf.pm75
-rw-r--r--Debian/Debhelper/Buildsystem/cmake.pm77
-rw-r--r--Debian/Debhelper/Buildsystem/makefile.pm152
-rw-r--r--Debian/Debhelper/Buildsystem/perl_build.pm77
-rw-r--r--Debian/Debhelper/Buildsystem/perl_makemaker.pm80
-rw-r--r--Debian/Debhelper/Buildsystem/python_distutils.pm210
-rw-r--r--Debian/Debhelper/Buildsystem/qmake.pm83
-rw-r--r--Debian/Debhelper/Buildsystem/qmake_qt4.pm18
-rw-r--r--Debian/Debhelper/Dh_Buildsystems.pm228
-rw-r--r--Debian/Debhelper/Dh_Getopt.pm288
-rw-r--r--Debian/Debhelper/Dh_Lib.pm983
-rw-r--r--Debian/Debhelper/Sequence/python_support.pm15
-rw-r--r--GPL340
-rw-r--r--Makefile106
-rw-r--r--autoscripts/maintscript-helper1
-rw-r--r--autoscripts/postinst-emacsen4
-rw-r--r--autoscripts/postinst-icons3
-rw-r--r--autoscripts/postinst-init4
-rw-r--r--autoscripts/postinst-init-nostart3
-rw-r--r--autoscripts/postinst-init-restart9
-rw-r--r--autoscripts/postinst-init-tmpfiles5
-rw-r--r--autoscripts/postinst-makeshlibs3
-rw-r--r--autoscripts/postinst-menu3
-rw-r--r--autoscripts/postinst-menu-method7
-rw-r--r--autoscripts/postinst-modules5
-rw-r--r--autoscripts/postinst-moveconffile9
-rw-r--r--autoscripts/postinst-python7
-rw-r--r--autoscripts/postinst-suid8
-rw-r--r--autoscripts/postinst-ucf4
-rw-r--r--autoscripts/postinst-usrlocal16
-rw-r--r--autoscripts/postinst-wm6
-rw-r--r--autoscripts/postinst-wm-noman4
-rw-r--r--autoscripts/postinst-xfonts3
-rw-r--r--autoscripts/postrm-debconf4
-rw-r--r--autoscripts/postrm-icons3
-rw-r--r--autoscripts/postrm-init10
-rw-r--r--autoscripts/postrm-makeshlibs3
-rw-r--r--autoscripts/postrm-menu1
-rw-r--r--autoscripts/postrm-menu-method3
-rw-r--r--autoscripts/postrm-modules3
-rw-r--r--autoscripts/postrm-sgmlcatalog3
-rw-r--r--autoscripts/postrm-suid4
-rw-r--r--autoscripts/postrm-ucf12
-rw-r--r--autoscripts/postrm-xfonts3
-rw-r--r--autoscripts/preinst-moveconffile9
-rw-r--r--autoscripts/preinst-sgmlcatalog8
-rw-r--r--autoscripts/prerm-emacsen3
-rw-r--r--autoscripts/prerm-init3
-rw-r--r--autoscripts/prerm-init-norestart3
-rw-r--r--autoscripts/prerm-python3
-rw-r--r--autoscripts/prerm-usrlocal7
-rw-r--r--autoscripts/prerm-wm3
-rw-r--r--debhelper.pod701
-rw-r--r--debian/changelog7410
-rw-r--r--debian/compat1
-rw-r--r--debian/control23
-rw-r--r--debian/copyright95
-rw-r--r--debian/docs1
-rw-r--r--debian/examples1
-rw-r--r--debian/manpages2
-rwxr-xr-xdebian/rules14
-rwxr-xr-xdh979
-rwxr-xr-xdh_auto_build57
-rwxr-xr-xdh_auto_clean60
-rwxr-xr-xdh_auto_configure62
-rwxr-xr-xdh_auto_install102
-rwxr-xr-xdh_auto_test73
-rwxr-xr-xdh_bugfiles136
-rwxr-xr-xdh_builddeb134
-rwxr-xr-xdh_clean152
-rwxr-xr-xdh_compress218
-rwxr-xr-xdh_desktop41
-rwxr-xr-xdh_fixperms137
-rwxr-xr-xdh_gconf112
-rwxr-xr-xdh_gencontrol92
-rwxr-xr-xdh_icons83
-rwxr-xr-xdh_install270
-rwxr-xr-xdh_installcatalogs132
-rwxr-xr-xdh_installchangelogs249
-rwxr-xr-xdh_installcron89
-rwxr-xr-xdh_installdeb150
-rwxr-xr-xdh_installdebconf138
-rwxr-xr-xdh_installdirs98
-rwxr-xr-xdh_installdocs344
-rwxr-xr-xdh_installemacsen136
-rwxr-xr-xdh_installexamples118
-rwxr-xr-xdh_installgsettings98
-rwxr-xr-xdh_installifupdown81
-rwxr-xr-xdh_installinfo87
-rwxr-xr-xdh_installinit344
-rwxr-xr-xdh_installlogcheck90
-rwxr-xr-xdh_installlogrotate62
-rwxr-xr-xdh_installman273
-rwxr-xr-xdh_installmanpages207
-rwxr-xr-xdh_installmenu101
-rwxr-xr-xdh_installmime73
-rwxr-xr-xdh_installmodules125
-rwxr-xr-xdh_installpam71
-rwxr-xr-xdh_installppp77
-rwxr-xr-xdh_installudev127
-rwxr-xr-xdh_installwm120
-rwxr-xr-xdh_installxfonts99
-rwxr-xr-xdh_link238
-rwxr-xr-xdh_lintian71
-rwxr-xr-xdh_listpackages40
-rwxr-xr-xdh_makeshlibs268
-rwxr-xr-xdh_md5sums100
-rwxr-xr-xdh_movefiles180
-rwxr-xr-xdh_perl158
-rwxr-xr-xdh_prep70
-rwxr-xr-xdh_scrollkeeper38
-rwxr-xr-xdh_shlibdeps185
-rwxr-xr-xdh_strip252
-rwxr-xr-xdh_suidregister127
-rwxr-xr-xdh_testdir63
-rwxr-xr-xdh_testroot37
-rwxr-xr-xdh_ucf96
-rwxr-xr-xdh_undocumented38
-rwxr-xr-xdh_usrlocal126
-rw-r--r--doc/PROGRAMMING318
-rw-r--r--doc/README1
-rw-r--r--doc/TODO33
-rwxr-xr-xexamples/rules.tiny3
-rw-r--r--man/po4a/add.de23
-rw-r--r--man/po4a/add.fr15
-rw-r--r--man/po4a/add1.es8
-rw-r--r--man/po4a/add2.es8
-rw-r--r--man/po4a/add3.es8
-rw-r--r--man/po4a/po/de.po7815
-rw-r--r--man/po4a/po/debhelper.pot5691
-rw-r--r--man/po4a/po/es.po8735
-rw-r--r--man/po4a/po/fr.po8985
-rw-r--r--man/po4a/po4a.cfg62
-rwxr-xr-xrun19
-rwxr-xr-xt/buildsystems/autoconf/configure74
-rwxr-xr-xt/buildsystems/buildsystem_tests641
-rw-r--r--t/buildsystems/debian/changelog5
-rw-r--r--t/buildsystems/debian/compat1
-rw-r--r--t/buildsystems/debian/control10
-rw-r--r--t/buildsystems/parallel.mk21
-rwxr-xr-xt/dh-lib31
-rwxr-xr-xt/dh_install88
-rwxr-xr-xt/dh_link45
-rw-r--r--t/maintscript19
-rwxr-xr-xt/override_target22
-rwxr-xr-xt/pod10
-rwxr-xr-xt/size29
-rwxr-xr-xt/syntax12
150 files changed, 52640 insertions, 0 deletions
diff --git a/Debian/Debhelper/Buildsystem.pm b/Debian/Debhelper/Buildsystem.pm
new file mode 100644
index 0000000..8fde215
--- /dev/null
+++ b/Debian/Debhelper/Buildsystem.pm
@@ -0,0 +1,415 @@
+# Defines debhelper build system class interface and implementation
+# of common functionality.
+#
+# Copyright: © 2008-2009 Modestas Vainius
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem;
+
+use strict;
+use warnings;
+use Cwd ();
+use File::Spec;
+use Debian::Debhelper::Dh_Lib;
+
+# Build system name. Defaults to the last component of the class
+# name. Do not override this method unless you know what you are
+# doing.
+sub NAME {
+ my $this=shift;
+ my $class = ref($this) || $this;
+ if ($class =~ m/^.+::([^:]+)$/) {
+ return $1;
+ }
+ else {
+ error("ınvalid build system class name: $class");
+ }
+}
+
+# Description of the build system to be shown to the users.
+sub DESCRIPTION {
+ error("class lacking a DESCRIPTION");
+}
+
+# Default build directory. Can be overriden in the derived
+# class if really needed.
+sub DEFAULT_BUILD_DIRECTORY {
+ "obj-" . dpkg_architecture_value("DEB_HOST_GNU_TYPE");
+}
+
+# Constructs a new build system object. Named parameters:
+# - sourcedir- specifies source directory (relative to the current (top)
+# directory) where the sources to be built live. If not
+# specified or empty, defaults to the current directory.
+# - builddir - specifies build directory to use. Path is relative to the
+# current (top) directory. If undef or empty,
+# DEFAULT_BUILD_DIRECTORY directory will be used.
+# - parallel - max number of parallel processes to be spawned for building
+# sources (-1 = unlimited; 1 = no parallel)
+# Derived class can override the constructor to initialize common object
+# parameters. Do NOT use constructor to execute commands or otherwise
+# configure/setup build environment. There is absolutely no guarantee the
+# constructed object will be used to build something. Use pre_building_step(),
+# $build_step() or post_building_step() methods for this.
+sub new {
+ my ($class, %opts)=@_;
+
+ my $this = bless({ sourcedir => '.',
+ builddir => undef,
+ parallel => undef,
+ cwd => Cwd::getcwd() }, $class);
+
+ if (exists $opts{sourcedir}) {
+ # Get relative sourcedir abs_path (without symlinks)
+ my $abspath = Cwd::abs_path($opts{sourcedir});
+ if (! -d $abspath || $abspath !~ /^\Q$this->{cwd}\E/) {
+ error("invalid or non-existing path to the source directory: ".$opts{sourcedir});
+ }
+ $this->{sourcedir} = File::Spec->abs2rel($abspath, $this->{cwd});
+ }
+ if (exists $opts{builddir}) {
+ $this->_set_builddir($opts{builddir});
+ }
+ if (defined $opts{parallel}) {
+ $this->{parallel} = $opts{parallel};
+ }
+ return $this;
+}
+
+# Private method to set a build directory. If undef, use default.
+# Do $this->{builddir} = undef or pass $this->get_sourcedir() to
+# unset the build directory.
+sub _set_builddir {
+ my $this=shift;
+ my $builddir=shift || $this->DEFAULT_BUILD_DIRECTORY;
+
+ if (defined $builddir) {
+ $builddir = $this->canonpath($builddir); # Canonicalize
+
+ # Sanitize $builddir
+ if ($builddir =~ m#^\.\./#) {
+ # We can't handle those as relative. Make them absolute
+ $builddir = File::Spec->catdir($this->{cwd}, $builddir);
+ }
+ elsif ($builddir =~ /\Q$this->{cwd}\E/) {
+ $builddir = File::Spec->abs2rel($builddir, $this->{cwd});
+ }
+
+ # If build directory ends up the same as source directory, drop it
+ if ($builddir eq $this->get_sourcedir()) {
+ $builddir = undef;
+ }
+ }
+ $this->{builddir} = $builddir;
+ return $builddir;
+}
+
+# This instance method is called to check if the build system is able
+# to build a source package. It will be called during the build
+# system auto-selection process, inside the root directory of the debian
+# source package. The current build step is passed as an argument.
+# Return 0 if the source is not buildable, or a positive integer
+# otherwise.
+#
+# Generally, it is enough to look for invariant unique build system
+# files shipped with clean source to determine if the source might
+# be buildable or not. However, if the build system is derived from
+# another other auto-buildable build system, this method
+# may also check if the source has already been built with this build
+# system partitially by looking for temporary files or other common
+# results the build system produces during the build process. The
+# latter checks must be unique to the current build system and must
+# be very unlikely to be true for either its parent or other build
+# systems. If it is determined that the source has already built
+# partitially with this build system, the value returned must be
+# greater than the one of the SUPER call.
+sub check_auto_buildable {
+ my $this=shift;
+ my ($step)=@_;
+ return 0;
+}
+
+# Derived class can call this method in its constructor
+# to enforce in source building even if the user requested otherwise.
+sub enforce_in_source_building {
+ my $this=shift;
+ if ($this->get_builddir()) {
+ $this->{warn_insource} = 1;
+ $this->{builddir} = undef;
+ }
+}
+
+# Derived class can call this method in its constructor to *prefer*
+# out of source building. Unless build directory has already been
+# specified building will proceed in the DEFAULT_BUILD_DIRECTORY or
+# the one specified in the 'builddir' named parameter (which may
+# match the source directory). Typically you should pass @_ from
+# the constructor to this call.
+sub prefer_out_of_source_building {
+ my $this=shift;
+ my %args=@_;
+ if (!defined $this->get_builddir()) {
+ if (!$this->_set_builddir($args{builddir}) && !$args{builddir}) {
+ # If we are here, DEFAULT_BUILD_DIRECTORY matches
+ # the source directory, building might fail.
+ error("default build directory is the same as the source directory." .
+ " Please specify a custom build directory");
+ }
+ }
+}
+
+# Enhanced version of File::Spec::canonpath. It collapses ..
+# too so it may return invalid path if symlinks are involved.
+# On the other hand, it does not need for the path to exist.
+sub canonpath {
+ my ($this, $path)=@_;
+ my @canon;
+ my $back=0;
+ foreach my $comp (split(m%/+%, $path)) {
+ if ($comp eq '.') {
+ next;
+ }
+ elsif ($comp eq '..') {
+ if (@canon > 0) { pop @canon; } else { $back++; }
+ }
+ else {
+ push @canon, $comp;
+ }
+ }
+ return (@canon + $back > 0) ? join('/', ('..')x$back, @canon) : '.';
+}
+
+# Given both $path and $base are relative to the $root, converts and
+# returns path of $path being relative to the $base. If either $path or
+# $base is absolute, returns another $path (converted to) absolute.
+sub _rel2rel {
+ my ($this, $path, $base, $root)=@_;
+ $root = $this->{cwd} unless defined $root;
+
+ if (File::Spec->file_name_is_absolute($path)) {
+ return $path;
+ }
+ elsif (File::Spec->file_name_is_absolute($base)) {
+ return File::Spec->rel2abs($path, $root);
+ }
+ else {
+ return File::Spec->abs2rel(
+ File::Spec->rel2abs($path, $root),
+ File::Spec->rel2abs($base, $root)
+ );
+ }
+}
+
+# Get path to the source directory
+# (relative to the current (top) directory)
+sub get_sourcedir {
+ my $this=shift;
+ return $this->{sourcedir};
+}
+
+# Convert path relative to the source directory to the path relative
+# to the current (top) directory.
+sub get_sourcepath {
+ my ($this, $path)=@_;
+ return File::Spec->catfile($this->get_sourcedir(), $path);
+}
+
+# Get path to the build directory if it was specified
+# (relative to the current (top) directory). undef if the same
+# as the source directory.
+sub get_builddir {
+ my $this=shift;
+ return $this->{builddir};
+}
+
+# Convert path that is relative to the build directory to the path
+# that is relative to the current (top) directory.
+# If $path is not specified, always returns build directory path
+# relative to the current (top) directory regardless if builddir was
+# specified or not.
+sub get_buildpath {
+ my ($this, $path)=@_;
+ my $builddir = $this->get_builddir() || $this->get_sourcedir();
+ if (defined $path) {
+ return File::Spec->catfile($builddir, $path);
+ }
+ return $builddir;
+}
+
+# When given a relative path to the source directory, converts it
+# to the path that is relative to the build directory. If $path is
+# not given, returns a path to the source directory that is relative
+# to the build directory.
+sub get_source_rel2builddir {
+ my $this=shift;
+ my $path=shift;
+
+ my $dir = '.';
+ if ($this->get_builddir()) {
+ $dir = $this->_rel2rel($this->get_sourcedir(), $this->get_builddir());
+ }
+ if (defined $path) {
+ return File::Spec->catfile($dir, $path);
+ }
+ return $dir;
+}
+
+sub get_parallel {
+ my $this=shift;
+ return $this->{parallel};
+}
+
+# When given a relative path to the build directory, converts it
+# to the path that is relative to the source directory. If $path is
+# not given, returns a path to the build directory that is relative
+# to the source directory.
+sub get_build_rel2sourcedir {
+ my $this=shift;
+ my $path=shift;
+
+ my $dir = '.';
+ if ($this->get_builddir()) {
+ $dir = $this->_rel2rel($this->get_builddir(), $this->get_sourcedir());
+ }
+ if (defined $path) {
+ return File::Spec->catfile($dir, $path);
+ }
+ return $dir;
+}
+
+# Creates a build directory.
+sub mkdir_builddir {
+ my $this=shift;
+ if ($this->get_builddir()) {
+ doit("mkdir", "-p", $this->get_builddir());
+ }
+}
+
+sub _cd {
+ my ($this, $dir)=@_;
+ verbose_print("cd $dir");
+ if (! $dh{NO_ACT}) {
+ chdir $dir or error("error: unable to chdir to $dir");
+ }
+}
+
+# Changes working directory to the source directory (if needed),
+# calls doit(@_) and changes working directory back to the top
+# directory.
+sub doit_in_sourcedir {
+ my $this=shift;
+ if ($this->get_sourcedir() ne '.') {
+ my $sourcedir = $this->get_sourcedir();
+ $this->_cd($sourcedir);
+ doit(@_);
+ $this->_cd($this->_rel2rel($this->{cwd}, $sourcedir));
+ }
+ else {
+ doit(@_);
+ }
+ return 1;
+}
+
+# Changes working directory to the build directory (if needed),
+# calls doit(@_) and changes working directory back to the top
+# directory.
+sub doit_in_builddir {
+ my $this=shift;
+ if ($this->get_buildpath() ne '.') {
+ my $buildpath = $this->get_buildpath();
+ $this->_cd($buildpath);
+ doit(@_);
+ $this->_cd($this->_rel2rel($this->{cwd}, $buildpath));
+ }
+ else {
+ doit(@_);
+ }
+ return 1;
+}
+
+# In case of out of source tree building, whole build directory
+# gets wiped (if it exists) and 1 is returned. If build directory
+# had 2 or more levels, empty parent directories are also deleted.
+# If build directory does not exist, nothing is done and 0 is returned.
+sub rmdir_builddir {
+ my $this=shift;
+ my $only_empty=shift;
+ if ($this->get_builddir()) {
+ my $buildpath = $this->get_buildpath();
+ if (-d $buildpath) {
+ my @dir = File::Spec->splitdir($this->get_build_rel2sourcedir());
+ my $peek;
+ if (not $only_empty) {
+ doit("rm", "-rf", $buildpath);
+ pop @dir;
+ }
+ # If build directory is relative and had 2 or more levels, delete
+ # empty parent directories until the source or top directory level.
+ if (not File::Spec->file_name_is_absolute($buildpath)) {
+ while (($peek=pop @dir) && $peek ne '.' && $peek ne '..') {
+ my $dir = $this->get_sourcepath(File::Spec->catdir(@dir, $peek));
+ doit("rmdir", "--ignore-fail-on-non-empty", $dir);
+ last if -d $dir;
+ }
+ }
+ }
+ return 1;
+ }
+ return 0;
+}
+
+# Instance method that is called before performing any step (see below).
+# Action name is passed as an argument. Derived classes overriding this
+# method should also call SUPER implementation of it.
+sub pre_building_step {
+ my $this=shift;
+ my ($step)=@_;
+
+ # Warn if in source building was enforced but build directory was
+ # specified. See enforce_in_source_building().
+ if ($this->{warn_insource}) {
+ warning("warning: " . $this->NAME() .
+ " does not support building out of source tree. In source building enforced.");
+ delete $this->{warn_insource};
+ }
+}
+
+# Instance method that is called after performing any step (see below).
+# Action name is passed as an argument. Derived classes overriding this
+# method should also call SUPER implementation of it.
+sub post_building_step {
+ my $this=shift;
+ my ($step)=@_;
+}
+
+# The instance methods below provide support for configuring,
+# building, testing, install and cleaning source packages.
+# In case of failure, the method may just error() out.
+#
+# These methods should be overriden by derived classes to
+# implement build system specific steps needed to build the
+# source. Arbitary number of custom step arguments might be
+# passed. Default implementations do nothing.
+sub configure {
+ my $this=shift;
+}
+
+sub build {
+ my $this=shift;
+}
+
+sub test {
+ my $this=shift;
+}
+
+# destdir parameter specifies where to install files.
+sub install {
+ my $this=shift;
+ my $destdir=shift;
+}
+
+sub clean {
+ my $this=shift;
+}
+
+1
diff --git a/Debian/Debhelper/Buildsystem/ant.pm b/Debian/Debhelper/Buildsystem/ant.pm
new file mode 100644
index 0000000..52def4f
--- /dev/null
+++ b/Debian/Debhelper/Buildsystem/ant.pm
@@ -0,0 +1,37 @@
+# A debhelper build system class for handling Ant based projects.
+#
+# Copyright: © 2009 Joey Hess
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem::ant;
+
+use strict;
+use base 'Debian::Debhelper::Buildsystem';
+
+sub DESCRIPTION {
+ "Ant (build.xml)"
+}
+
+sub check_auto_buildable {
+ my $this=shift;
+ return (-e $this->get_sourcepath("build.xml")) ? 1 : 0;
+}
+
+sub new {
+ my $class=shift;
+ my $this=$class->SUPER::new(@_);
+ $this->enforce_in_source_building();
+ return $this;
+}
+
+sub build {
+ my $this=shift;
+ $this->doit_in_sourcedir("ant", @_);
+}
+
+sub clean {
+ my $this=shift;
+ $this->doit_in_sourcedir("ant", "clean", @_);
+}
+
+1
diff --git a/Debian/Debhelper/Buildsystem/autoconf.pm b/Debian/Debhelper/Buildsystem/autoconf.pm
new file mode 100644
index 0000000..20b9fd4
--- /dev/null
+++ b/Debian/Debhelper/Buildsystem/autoconf.pm
@@ -0,0 +1,75 @@
+# A debhelper build system class for handling Autoconf based projects
+#
+# Copyright: © 2008 Joey Hess
+# © 2008-2009 Modestas Vainius
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem::autoconf;
+
+use strict;
+use Debian::Debhelper::Dh_Lib qw(dpkg_architecture_value sourcepackage compat);
+use base 'Debian::Debhelper::Buildsystem::makefile';
+
+sub DESCRIPTION {
+ "GNU Autoconf (configure)"
+}
+
+sub check_auto_buildable {
+ my $this=shift;
+ my ($step)=@_;
+
+ # Handle configure; the rest - next class (compat with 7.0.x code path)
+ if ($step eq "configure") {
+ return 1 if -x $this->get_sourcepath("configure");
+ }
+ return 0;
+}
+
+sub configure {
+ my $this=shift;
+
+ # Standard set of options for configure.
+ my @opts;
+ push @opts, "--build=" . dpkg_architecture_value("DEB_BUILD_GNU_TYPE");
+ push @opts, "--prefix=/usr";
+ push @opts, "--includedir=\${prefix}/include";
+ push @opts, "--mandir=\${prefix}/share/man";
+ push @opts, "--infodir=\${prefix}/share/info";
+ push @opts, "--sysconfdir=/etc";
+ push @opts, "--localstatedir=/var";
+ my $multiarch=dpkg_architecture_value("DEB_HOST_MULTIARCH");
+ if (! compat(8)) {
+ if (defined $multiarch) {
+ push @opts, "--libdir=\${prefix}/lib/$multiarch";
+ push @opts, "--libexecdir=\${prefix}/lib/$multiarch";
+ }
+ else {
+ push @opts, "--libexecdir=\${prefix}/lib";
+ }
+ }
+ else {
+ push @opts, "--libexecdir=\${prefix}/lib/" . sourcepackage();
+ }
+ push @opts, "--disable-maintainer-mode";
+ push @opts, "--disable-dependency-tracking";
+ # Provide --host only if different from --build, as recommended in
+ # autotools-dev README.Debian: When provided (even if equal)
+ # autoconf 2.52+ switches to cross-compiling mode.
+ if (dpkg_architecture_value("DEB_BUILD_GNU_TYPE")
+ ne dpkg_architecture_value("DEB_HOST_GNU_TYPE")) {
+ push @opts, "--host=" . dpkg_architecture_value("DEB_HOST_GNU_TYPE");
+ }
+
+ $this->mkdir_builddir();
+ eval {
+ $this->doit_in_builddir($this->get_source_rel2builddir("configure"), @opts, @_);
+ };
+ if ($@) {
+ if (-e $this->get_buildpath("config.log")) {
+ $this->doit_in_builddir("tail -v -n +0 config.log");
+ }
+ die $@;
+ }
+}
+
+1
diff --git a/Debian/Debhelper/Buildsystem/cmake.pm b/Debian/Debhelper/Buildsystem/cmake.pm
new file mode 100644
index 0000000..d47821c
--- /dev/null
+++ b/Debian/Debhelper/Buildsystem/cmake.pm
@@ -0,0 +1,77 @@
+# A debhelper build system class for handling CMake based projects.
+# It prefers out of source tree building.
+#
+# Copyright: © 2008-2009 Modestas Vainius
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem::cmake;
+
+use strict;
+use Debian::Debhelper::Dh_Lib qw(compat);
+use base 'Debian::Debhelper::Buildsystem::makefile';
+
+sub DESCRIPTION {
+ "CMake (CMakeLists.txt)"
+}
+
+sub check_auto_buildable {
+ my $this=shift;
+ my ($step)=@_;
+ if (-e $this->get_sourcepath("CMakeLists.txt")) {
+ my $ret = ($step eq "configure" && 1) ||
+ $this->SUPER::check_auto_buildable(@_);
+ # Existence of CMakeCache.txt indicates cmake has already
+ # been used by a prior build step, so should be used
+ # instead of the parent makefile class.
+ $ret++ if ($ret && -e $this->get_buildpath("CMakeCache.txt"));
+ return $ret;
+ }
+ return 0;
+}
+
+sub new {
+ my $class=shift;
+ my $this=$class->SUPER::new(@_);
+ $this->prefer_out_of_source_building(@_);
+ return $this;
+}
+
+sub configure {
+ my $this=shift;
+ my @flags;
+
+ # Standard set of cmake flags
+ push @flags, "-DCMAKE_INSTALL_PREFIX=/usr";
+ push @flags, "-DCMAKE_VERBOSE_MAKEFILE=ON";
+ push @flags, "-DCMAKE_BUILD_TYPE=RelWithDebInfo";
+
+ # CMake doesn't respect CPPFLAGS, see #653916.
+ if ($ENV{CPPFLAGS} && ! compat(8)) {
+ $ENV{CFLAGS} .= ' ' . $ENV{CPPFLAGS};
+ $ENV{CXXFLAGS} .= ' ' . $ENV{CPPFLAGS};
+ }
+
+ $this->mkdir_builddir();
+ eval {
+ $this->doit_in_builddir("cmake", $this->get_source_rel2builddir(), @flags, @_);
+ };
+ if ($@) {
+ if (-e $this->get_buildpath("CMakeCache.txt")) {
+ $this->doit_in_builddir("tail -v -n +0 CMakeCache.txt");
+ }
+ die $@;
+ }
+}
+
+sub test {
+ my $this=shift;
+
+ # Unlike make, CTest does not have "unlimited parallel" setting (-j implies
+ # -j1). So in order to simulate unlimited parallel, allow to fork a huge
+ # number of threads instead.
+ my $parallel = ($this->get_parallel() > 0) ? $this->get_parallel() : 999;
+ $ENV{CTEST_OUTPUT_ON_FAILURE} = 1;
+ return $this->SUPER::test(@_, "ARGS+=-j$parallel");
+}
+
+1
diff --git a/Debian/Debhelper/Buildsystem/makefile.pm b/Debian/Debhelper/Buildsystem/makefile.pm
new file mode 100644
index 0000000..dcc5da8
--- /dev/null
+++ b/Debian/Debhelper/Buildsystem/makefile.pm
@@ -0,0 +1,152 @@
+# A debhelper build system class for handling simple Makefile based projects.
+#
+# Copyright: © 2008 Joey Hess
+# © 2008-2009 Modestas Vainius
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem::makefile;
+
+use strict;
+use Debian::Debhelper::Dh_Lib qw(escape_shell clean_jobserver_makeflags);
+use base 'Debian::Debhelper::Buildsystem';
+
+# 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
+# run commands needed to eg, generate include files -- and those commands
+# could fail even though the target exists -- and we should let the target
+# run and propagate any failure.
+#
+# Using -n and checking for at least one line of output is better.
+# That will indicate make either wants to run one command, or
+# has output a "nothing to be done" message if the target exists but is a
+# noop.
+#
+# However, that heuristic is also not good enough, because a Makefile
+# could run code that outputs something, even though the -n is asking
+# it not to run anything. (Again, done for includes.) To detect this false
+# positive, there is unfortunately only one approach left: To
+# look for the error message printed by make when a target does not exist.
+#
+# This could break if make's output changes. It would only break a minority
+# of packages where this latter test is needed. The best way to avoid that
+# problem would be to fix make to have this simple and highly useful
+# missing feature.
+#
+# A final option would be to use -p and parse the output data base.
+# It's more practical for dh to use that method, since it operates on
+# only special debian/rules files, and not arbitrary Makefiles which
+# can be arbitrarily complicated, use implicit targets, and so on.
+sub exists_make_target {
+ my $this=shift;
+ my $target=shift;
+
+ my @opts=("-s", "-n", "--no-print-directory");
+ my $buildpath = $this->get_buildpath();
+ unshift @opts, "-C", $buildpath if $buildpath ne ".";
+
+ my $pid = open(MAKE, "-|");
+ defined($pid) || die "can't fork: $!";
+ if (! $pid) {
+ open(STDERR, ">&STDOUT");
+ $ENV{LC_ALL}='C';
+ exec($this->{makecmd}, @opts, $target, @_);
+ exit(1);
+ }
+
+ local $/=undef;
+ my $output=<MAKE>;
+ chomp $output;
+ close MAKE;
+
+ return defined $output
+ && length $output
+ && $output !~ /\*\*\* No rule to make target `\Q$target\E'/;
+}
+
+sub do_make {
+ my $this=shift;
+
+ # Avoid possible warnings about unavailable jobserver,
+ # and force make to start a new jobserver.
+ clean_jobserver_makeflags();
+
+ # Note that this will override any -j settings in MAKEFLAGS.
+ unshift @_, "-j" . ($this->get_parallel() > 0 ? $this->get_parallel() : "");
+
+ $this->doit_in_builddir($this->{makecmd}, @_);
+}
+
+sub make_first_existing_target {
+ my $this=shift;
+ my $targets=shift;
+
+ foreach my $target (@$targets) {
+ if ($this->exists_make_target($target, @_)) {
+ $this->do_make($target, @_);
+ return $target;
+ }
+ }
+ return undef;
+}
+
+sub DESCRIPTION {
+ "simple Makefile"
+}
+
+sub new {
+ my $class=shift;
+ my $this=$class->SUPER::new(@_);
+ $this->{makecmd} = (exists $ENV{MAKE}) ? $ENV{MAKE} : "make";
+ return $this;
+}
+
+sub check_auto_buildable {
+ my $this=shift;
+ my ($step) = @_;
+
+ if (-e $this->get_buildpath("Makefile") ||
+ -e $this->get_buildpath("makefile") ||
+ -e $this->get_buildpath("GNUmakefile"))
+ {
+ # This is always called in the source directory, but generally
+ # Makefiles are created (or live) in the build directory.
+ return 1;
+ } elsif ($step eq "clean" && defined $this->get_builddir() &&
+ $this->check_auto_buildable("configure"))
+ {
+ # Assume that the package can be cleaned (i.e. the build directory can
+ # be removed) as long as it is built out-of-source tree and can be
+ # configured. This is useful for derivative buildsystems which
+ # generate Makefiles.
+ return 1;
+ }
+ return 0;
+}
+
+sub build {
+ my $this=shift;
+ $this->do_make(@_);
+}
+
+sub test {
+ my $this=shift;
+ $this->make_first_existing_target(['test', 'check'], @_);
+}
+
+sub install {
+ my $this=shift;
+ my $destdir=shift;
+ $this->make_first_existing_target(['install'],
+ "DESTDIR=$destdir",
+ "AM_UPDATE_INFO_DIR=no", @_);
+}
+
+sub clean {
+ my $this=shift;
+ if (!$this->rmdir_builddir()) {
+ $this->make_first_existing_target(['distclean', 'realclean', 'clean'], @_);
+ }
+}
+
+1
diff --git a/Debian/Debhelper/Buildsystem/perl_build.pm b/Debian/Debhelper/Buildsystem/perl_build.pm
new file mode 100644
index 0000000..bfe1c08
--- /dev/null
+++ b/Debian/Debhelper/Buildsystem/perl_build.pm
@@ -0,0 +1,77 @@
+# A build system class for handling Perl Build based projects.
+#
+# Copyright: © 2008-2009 Joey Hess
+# © 2008-2009 Modestas Vainius
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem::perl_build;
+
+use strict;
+use Debian::Debhelper::Dh_Lib qw(compat);
+use base 'Debian::Debhelper::Buildsystem';
+use Config;
+
+sub DESCRIPTION {
+ "Perl Module::Build (Build.PL)"
+}
+
+sub check_auto_buildable {
+ my ($this, $step) = @_;
+
+ # Handles everything
+ my $ret = -e $this->get_sourcepath("Build.PL");
+ if ($step ne "configure") {
+ $ret &&= -e $this->get_sourcepath("Build");
+ }
+ return $ret ? 1 : 0;
+}
+
+sub do_perl {
+ my $this=shift;
+ $this->doit_in_sourcedir("perl", @_);
+}
+
+sub new {
+ my $class=shift;
+ my $this= $class->SUPER::new(@_);
+ $this->enforce_in_source_building();
+ return $this;
+}
+
+sub configure {
+ my $this=shift;
+ my @flags;
+ $ENV{PERL_MM_USE_DEFAULT}=1;
+ if ($ENV{CFLAGS} && ! compat(8)) {
+ push @flags, "--config", "optimize=$ENV{CFLAGS} $ENV{CPPFLAGS}";
+ }
+ if ($ENV{LDFLAGS} && ! compat(8)) {
+ push @flags, "--config", "ld=$Config{ld} $ENV{CFLAGS} $ENV{LDFLAGS}";
+ }
+ $this->do_perl("Build.PL", "--installdirs", "vendor", @flags, @_);
+}
+
+sub build {
+ my $this=shift;
+ $this->do_perl("Build", @_);
+}
+
+sub test {
+ my $this=shift;
+ $this->do_perl("Build", "test", @_);
+}
+
+sub install {
+ my $this=shift;
+ my $destdir=shift;
+ $this->do_perl("Build", "install", "--destdir", "$destdir", "--create_packlist", 0, @_);
+}
+
+sub clean {
+ my $this=shift;
+ if (-e $this->get_sourcepath("Build")) {
+ $this->do_perl("Build", "distclean", "--allow_mb_mismatch", 1, @_);
+ }
+}
+
+1
diff --git a/Debian/Debhelper/Buildsystem/perl_makemaker.pm b/Debian/Debhelper/Buildsystem/perl_makemaker.pm
new file mode 100644
index 0000000..60cda3d
--- /dev/null
+++ b/Debian/Debhelper/Buildsystem/perl_makemaker.pm
@@ -0,0 +1,80 @@
+# A debhelper build system class for handling Perl MakeMaker based projects.
+#
+# Copyright: © 2008-2009 Joey Hess
+# © 2008-2009 Modestas Vainius
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem::perl_makemaker;
+
+use strict;
+use Debian::Debhelper::Dh_Lib qw(compat);
+use base 'Debian::Debhelper::Buildsystem::makefile';
+use Config;
+
+sub DESCRIPTION {
+ "Perl ExtUtils::MakeMaker (Makefile.PL)"
+}
+
+sub check_auto_buildable {
+ my $this=shift;
+ my ($step)=@_;
+
+ # Handles everything if Makefile.PL exists. Otherwise - next class.
+ if (-e $this->get_sourcepath("Makefile.PL")) {
+ if ($step eq "configure") {
+ return 1;
+ }
+ else {
+ return $this->SUPER::check_auto_buildable(@_);
+ }
+ }
+ return 0;
+}
+
+sub new {
+ my $class=shift;
+ my $this=$class->SUPER::new(@_);
+ $this->enforce_in_source_building();
+ return $this;
+}
+
+sub configure {
+ my $this=shift;
+ my @flags;
+ # If set to a true value then MakeMaker's prompt function will
+ # # always return the default without waiting for user input.
+ $ENV{PERL_MM_USE_DEFAULT}=1;
+ # This prevents Module::Install from interactive behavior.
+ $ENV{PERL_AUTOINSTALL}="--skipdeps";
+
+ if ($ENV{CFLAGS} && ! compat(8)) {
+ push @flags, "OPTIMIZE=$ENV{CFLAGS} $ENV{CPPFLAGS}";
+ }
+ if ($ENV{LDFLAGS} && ! compat(8)) {
+ push @flags, "LD=$Config{ld} $ENV{CFLAGS} $ENV{LDFLAGS}";
+ }
+
+ $this->doit_in_sourcedir("perl", "Makefile.PL", "INSTALLDIRS=vendor",
+ # if perl_build is not tested first, need to pass packlist
+ # option to handle fallthrough case
+ (compat(7) ? "create_packlist=0" : ()),
+ @flags, @_);
+}
+
+sub install {
+ my $this=shift;
+ my $destdir=shift;
+
+ # Special case for Makefile.PL that uses
+ # Module::Build::Compat. PREFIX should not be passed
+ # for those; it already installs into /usr by default.
+ my $makefile=$this->get_sourcepath("Makefile");
+ if (system(qq{grep -q "generated automatically by MakeMaker" $makefile}) != 0) {
+ $this->SUPER::install($destdir, @_);
+ }
+ else {
+ $this->SUPER::install($destdir, "PREFIX=/usr", @_);
+ }
+}
+
+1
diff --git a/Debian/Debhelper/Buildsystem/python_distutils.pm b/Debian/Debhelper/Buildsystem/python_distutils.pm
new file mode 100644
index 0000000..c3d58cc
--- /dev/null
+++ b/Debian/Debhelper/Buildsystem/python_distutils.pm
@@ -0,0 +1,210 @@
+# A debhelper build system class for building Python Distutils based
+# projects. It prefers out of source tree building.
+#
+# Copyright: © 2008 Joey Hess
+# © 2008-2009 Modestas Vainius
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem::python_distutils;
+
+use strict;
+use Cwd ();
+use Debian::Debhelper::Dh_Lib qw(error);
+use base 'Debian::Debhelper::Buildsystem';
+
+sub DESCRIPTION {
+ "Python Distutils (setup.py)"
+}
+
+sub DEFAULT_BUILD_DIRECTORY {
+ my $this=shift;
+ return $this->canonpath($this->get_sourcepath("build"));
+}
+
+sub new {
+ my $class=shift;
+ my $this=$class->SUPER::new(@_);
+ # Out of source tree building is preferred.
+ $this->prefer_out_of_source_building(@_);
+ return $this;
+}
+
+sub check_auto_buildable {
+ my $this=shift;
+ return -e $this->get_sourcepath("setup.py") ? 1 : 0;
+}
+
+sub not_our_cfg {
+ my $this=shift;
+ my $ret;
+ if (open(my $cfg, $this->get_buildpath(".pydistutils.cfg"))) {
+ $ret = not "# Created by dh_auto\n" eq <$cfg>;
+ close $cfg;
+ }
+ return $ret;
+}
+
+sub create_cfg {
+ my $this=shift;
+ if (open(my $cfg, ">", $this->get_buildpath(".pydistutils.cfg"))) {
+ print $cfg "# Created by dh_auto", "\n";
+ print $cfg "[build]\nbuild-base=", $this->get_build_rel2sourcedir(), "\n";
+ close $cfg;
+ return 1;
+ }
+ return 0;
+}
+
+sub pre_building_step {
+ my $this=shift;
+ my $step=shift;
+
+ return unless grep /$step/, qw(build install clean);
+
+ if ($this->get_buildpath() ne $this->DEFAULT_BUILD_DIRECTORY()) {
+ # --build-base can only be passed to the build command. However,
+ # it is always read from the config file (really weird design).
+ # Therefore create such a cfg config file.
+ # See http://bugs.python.org/issue818201
+ # http://bugs.python.org/issue1011113
+ not $this->not_our_cfg() or
+ error("cannot set custom build directory: .pydistutils.cfg is in use");
+ $this->mkdir_builddir();
+ $this->create_cfg() or
+ error("cannot set custom build directory: unwritable .pydistutils.cfg");
+ # Distutils reads $HOME/.pydistutils.cfg
+ $ENV{HOME} = Cwd::abs_path($this->get_buildpath());
+ }
+
+ $this->SUPER::pre_building_step($step);
+}
+
+sub dbg_build_needed {
+ my $this=shift;
+ my $act=shift;
+
+ # Return a list of python-dbg package which are listed
+ # in the build-dependencies. This is kinda ugly, but building
+ # dbg extensions without checking if they're supposed to be
+ # built may result in various FTBFS if the package is not
+ # built in a clean chroot.
+
+ my @dbg;
+ open (CONTROL, 'debian/control') ||
+ error("cannot read debian/control: $!\n");
+ foreach my $builddeps (join('', <CONTROL>) =~
+ /^Build-Depends[^:]*:.*\n(?:^[^\w\n].*\n)*/gmi) {
+ while ($builddeps =~ /(python[^, ]*-dbg)/g) {
+ push @dbg, $1;
+ }
+ }
+
+ close CONTROL;
+ return @dbg;
+
+}
+
+sub setup_py {
+ my $this=shift;
+ my $act=shift;
+
+ # We need to to run setup.py with the default python last
+ # as distutils/setuptools modifies the shebang lines of scripts.
+ # This ensures that #!/usr/bin/python is installed last and
+ # not pythonX.Y
+ # Take into account that the default Python must not be in
+ # the requested Python versions.
+ # Then, run setup.py with each available python, to build
+ # extensions for each.
+
+ my $python_default = `pyversions -d`;
+ if ($? == -1) {
+ error("failed to run pyversions")
+ }
+ my $ecode = $? >> 8;
+ if ($ecode != 0) {
+ error("pyversions -d failed [$ecode]")
+ }
+ $python_default =~ s/^\s+//;
+ $python_default =~ s/\s+$//;
+ my @python_requested = split ' ', `pyversions -r`;
+ if ($? == -1) {
+ error("failed to run pyversions")
+ }
+ $ecode = $? >> 8;
+ if ($ecode != 0) {
+ error("pyversions -r failed [$ecode]")
+ }
+ if (grep /^\Q$python_default\E/, @python_requested) {
+ @python_requested = (
+ grep(!/^\Q$python_default\E/, @python_requested),
+ "python",
+ );
+ }
+
+ my @python_dbg;
+ my @dbg_build_needed = $this->dbg_build_needed();
+ foreach my $python (map { $_."-dbg" } @python_requested) {
+ if (grep /^(python-all-dbg|\Q$python\E)/, @dbg_build_needed) {
+ push @python_dbg, $python;
+ }
+ elsif (($python eq "python-dbg")
+ and (grep /^\Q$python_default\E/, @dbg_build_needed)) {
+ push @python_dbg, $python_default."-dbg";
+ }
+ }
+
+ foreach my $python (@python_dbg, @python_requested) {
+ if (-x "/usr/bin/".$python) {
+ # To allow backports of debhelper we don't pass
+ # --install-layout=deb to 'setup.py install` for
+ # those Python versions where the option is
+ # ignored by distutils/setuptools.
+ if ( $act eq "install" and not
+ ( ($python =~ /^python(?:-dbg)?$/
+ and $python_default =~ /^python2\.[2345]$/)
+ or $python =~ /^python2\.[2345](?:-dbg)?$/ )) {
+ $this->doit_in_sourcedir($python, "setup.py",
+ $act, @_, "--install-layout=deb");
+ }
+ else {
+ $this->doit_in_sourcedir($python, "setup.py",
+ $act, @_);
+ }
+ }
+ }
+}
+
+sub build {
+ my $this=shift;
+ $this->setup_py("build",
+ "--force",
+ @_);
+}
+
+sub install {
+ my $this=shift;
+ my $destdir=shift;
+ $this->setup_py("install",
+ "--force",
+ "--root=$destdir",
+ "--no-compile",
+ "-O0",
+ @_);
+}
+
+sub clean {
+ my $this=shift;
+ $this->setup_py("clean", "-a", @_);
+
+ # Config file will remain if it was created by us
+ if (!$this->not_our_cfg()) {
+ unlink($this->get_buildpath(".pydistutils.cfg"));
+ $this->rmdir_builddir(1); # only if empty
+ }
+ # The setup.py might import files, leading to python creating pyc
+ # files.
+ $this->doit_in_sourcedir('find', '.', '-name', '*.pyc', '-exec', 'rm', '{}', '+');
+}
+
+1
diff --git a/Debian/Debhelper/Buildsystem/qmake.pm b/Debian/Debhelper/Buildsystem/qmake.pm
new file mode 100644
index 0000000..91e817f
--- /dev/null
+++ b/Debian/Debhelper/Buildsystem/qmake.pm
@@ -0,0 +1,83 @@
+# A debhelper build system class for Qt projects
+# (based on the makefile class).
+#
+# Copyright: © 2010 Kelvin Modderman
+# License: GPL-2+
+
+package Debian::Debhelper::Buildsystem::qmake;
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib qw(error);
+use base 'Debian::Debhelper::Buildsystem::makefile';
+
+our $qmake="qmake";
+
+sub DESCRIPTION {
+ "qmake (*.pro)";
+}
+
+sub check_auto_buildable {
+ my $this=shift;
+ my @projects=glob($this->get_sourcepath('*.pro'));
+ my $ret=0;
+
+ if (@projects > 0) {
+ $ret=1;
+ # Existence of a Makefile generated by qmake indicates qmake
+ # class has already been used by a prior build step, so should
+ # be used instead of the parent makefile class.
+ my $mf=$this->get_buildpath("Makefile");
+ if (-e $mf) {
+ $ret = $this->SUPER::check_auto_buildable(@_);
+ open(my $fh, '<', $mf)
+ or error("unable to open Makefile: $mf");
+ while(<$fh>) {
+ if (m/^# Generated by qmake/i) {
+ $ret++;
+ last;
+ }
+ }
+ close($fh);
+ }
+ }
+
+ return $ret;
+}
+
+sub configure {
+ my $this=shift;
+ my @options;
+ my @flags;
+
+ push @options, '-makefile';
+ push @options, '-nocache';
+
+ if ($ENV{CFLAGS}) {
+ push @flags, "QMAKE_CFLAGS_RELEASE=$ENV{CFLAGS} $ENV{CPPFLAGS}";
+ push @flags, "QMAKE_CFLAGS_DEBUG=$ENV{CFLAGS} $ENV{CPPFLAGS}";
+ }
+ if ($ENV{CXXFLAGS}) {
+ push @flags, "QMAKE_CXXFLAGS_RELEASE=$ENV{CXXFLAGS} $ENV{CPPFLAGS}";
+ push @flags, "QMAKE_CXXFLAGS_DEBUG=$ENV{CXXFLAGS} $ENV{CPPFLAGS}";
+ }
+ if ($ENV{LDFLAGS}) {
+ push @flags, "QMAKE_LFLAGS_RELEASE=$ENV{LDFLAGS}";
+ push @flags, "QMAKE_LFLAGS_DEBUG=$ENV{LDFLAGS}";
+ }
+ push @flags, "QMAKE_STRIP=:";
+ push @flags, "PREFIX=/usr";
+
+ $this->doit_in_builddir($qmake, @options, @flags, @_);
+}
+
+sub install {
+ my $this=shift;
+ my $destdir=shift;
+
+ # qmake generated Makefiles use INSTALL_ROOT in install target
+ # where one would expect DESTDIR to be used.
+ $this->SUPER::install($destdir, "INSTALL_ROOT=$destdir", @_);
+}
+
+1
diff --git a/Debian/Debhelper/Buildsystem/qmake_qt4.pm b/Debian/Debhelper/Buildsystem/qmake_qt4.pm
new file mode 100644
index 0000000..d5bac58
--- /dev/null
+++ b/Debian/Debhelper/Buildsystem/qmake_qt4.pm
@@ -0,0 +1,18 @@
+package Debian::Debhelper::Buildsystem::qmake_qt4;
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib qw(error);
+use base 'Debian::Debhelper::Buildsystem::qmake';
+
+sub DESCRIPTION {
+ "qmake for QT 4 (*.pro)";
+}
+
+sub configure {
+ my $this=shift;
+ $Debian::Debhelper::Buildsystem::qmake::qmake="qmake-qt4";
+ $this->SUPER::configure(@_);
+}
+
+1
diff --git a/Debian/Debhelper/Dh_Buildsystems.pm b/Debian/Debhelper/Dh_Buildsystems.pm
new file mode 100644
index 0000000..0a51a4d
--- /dev/null
+++ b/Debian/Debhelper/Dh_Buildsystems.pm
@@ -0,0 +1,228 @@
+# A module for loading and managing debhelper build system classes.
+# This module is intended to be used by all dh_auto_* programs.
+#
+# Copyright: © 2009 Modestas Vainius
+# License: GPL-2+
+
+package Debian::Debhelper::Dh_Buildsystems;
+
+use strict;
+use warnings;
+use Debian::Debhelper::Dh_Lib;
+use File::Spec;
+
+use base 'Exporter';
+our @EXPORT=qw(&buildsystems_init &buildsystems_do &load_buildsystem &load_all_buildsystems);
+
+use constant BUILD_STEPS => qw(configure build test install clean);
+
+# Historical order must be kept for backwards compatibility. New
+# build systems MUST be added to the END of the list.
+our @BUILDSYSTEMS = (
+ "autoconf",
+ (! compat(7) ? "perl_build" : ()),
+ "perl_makemaker",
+ "makefile",
+ "python_distutils",
+ (compat(7) ? "perl_build" : ()),
+ "cmake",
+ "ant",
+ "qmake",
+ "qmake_qt4",
+);
+
+my $opt_buildsys;
+my $opt_sourcedir;
+my $opt_builddir;
+my $opt_list;
+my $opt_parallel;
+
+sub create_buildsystem_instance {
+ my $system=shift;
+ my %bsopts=@_;
+ my $module = "Debian::Debhelper::Buildsystem::$system";
+
+ eval "use $module";
+ if ($@) {
+ error("unable to load build system class '$system': $@");
+ }
+
+ if (!exists $bsopts{builddir} && defined $opt_builddir) {
+ $bsopts{builddir} = ($opt_builddir eq "") ? undef : $opt_builddir;
+ }
+ if (!exists $bsopts{sourcedir} && defined $opt_sourcedir) {
+ $bsopts{sourcedir} = ($opt_sourcedir eq "") ? undef : $opt_sourcedir;
+ }
+ if (!exists $bsopts{parallel}) {
+ $bsopts{parallel} = $opt_parallel;
+ }
+ return $module->new(%bsopts);
+}
+
+# Autoselect a build system from the list of instances
+sub autoselect_buildsystem {
+ my $step=shift;
+ my $selected;
+ my $selected_level = 0;
+
+ foreach my $inst (@_) {
+ # Only derived (i.e. more specific) build system can be
+ # considered beyond the currently selected one.
+ next if defined $selected && !$inst->isa(ref $selected);
+
+ # If the build system says it is auto-buildable at the current
+ # step and it can provide more specific information about its
+ # status than its parent (if any), auto-select it.
+ my $level = $inst->check_auto_buildable($step);
+ if ($level > $selected_level) {
+ $selected = $inst;
+ $selected_level = $level;
+ }
+ }
+ return $selected;
+}
+
+# Similar to create_build system_instance(), but it attempts to autoselect
+# a build system if none was specified. In case autoselection fails, undef
+# is returned.
+sub load_buildsystem {
+ my $system=shift;
+ my $step=shift;
+ if (defined $system) {
+ my $inst = create_buildsystem_instance($system, @_);
+ return $inst;
+ }
+ else {
+ # Try to determine build system automatically
+ my @buildsystems;
+ foreach $system (@BUILDSYSTEMS) {
+ push @buildsystems, create_buildsystem_instance($system, @_);
+ }
+ return autoselect_buildsystem($step, @buildsystems);
+ }
+}
+
+sub load_all_buildsystems {
+ my $incs=shift || \@INC;
+ my (%buildsystems, @buildsystems);
+
+ foreach my $inc (@$incs) {
+ my $path = File::Spec->catdir($inc, "Debian/Debhelper/Buildsystem");
+ if (-d $path) {
+ foreach my $module_path (glob "$path/*.pm") {
+ my $name = basename($module_path);
+ $name =~ s/\.pm$//;
+ next if exists $buildsystems{$name};
+ $buildsystems{$name} = create_buildsystem_instance($name, @_);
+ }
+ }
+ }
+
+ # Standard debhelper build systems first
+ foreach my $name (@BUILDSYSTEMS) {
+ error("standard debhelper build system '$name' could not be found/loaded")
+ if not exists $buildsystems{$name};
+ push @buildsystems, $buildsystems{$name};
+ delete $buildsystems{$name};
+ }
+
+ # The rest are 3rd party build systems
+ foreach my $name (keys %buildsystems) {
+ my $inst = $buildsystems{$name};
+ $inst->{thirdparty} = 1;
+ push @buildsystems, $inst;
+ }
+
+ return @buildsystems;
+}
+
+sub buildsystems_init {
+ my %args=@_;
+
+ my $max_parallel=1;
+
+ # Available command line options
+ my %options = (
+ "D=s" => \$opt_sourcedir,
+ "sourcedirectory=s" => \$opt_sourcedir,
+
+ "B:s" => \$opt_builddir,
+ "builddirectory:s" => \$opt_builddir,
+
+ "S=s" => \$opt_buildsys,
+ "buildsystem=s" => \$opt_buildsys,
+
+ "l" => \$opt_list,
+ "list" => \$opt_list,
+
+ "parallel" => sub { $max_parallel = -1 },
+ "max-parallel=i" => \$max_parallel,
+ );
+ $args{options}{$_} = $options{$_} foreach keys(%options);
+ Debian::Debhelper::Dh_Lib::init(%args);
+ Debian::Debhelper::Dh_Lib::set_buildflags();
+ set_parallel($max_parallel);
+}
+
+sub set_parallel {
+ my $max=shift;
+
+ # Get number of processes from parallel=n option, limiting it
+ # with $max if needed
+ $opt_parallel=get_buildoption("parallel") || 1;
+
+ if ($max > 0 && $opt_parallel > $max) {
+ $opt_parallel = $max;
+ }
+}
+
+sub buildsystems_list {
+ my $step=shift;
+
+ my @buildsystems = load_all_buildsystems();
+ my $auto = autoselect_buildsystem($step, grep { ! $_->{thirdparty} } @buildsystems);
+ my $specified;
+
+ # List build systems (including auto and specified status)
+ foreach my $inst (@buildsystems) {
+ if (! defined $specified && defined $opt_buildsys && $opt_buildsys eq $inst->NAME()) {
+ $specified = $inst;
+ }
+ printf("%-20s %s", $inst->NAME(), $inst->DESCRIPTION());
+ print " [3rd party]" if $inst->{thirdparty};
+ print "\n";
+ }
+ print "\n";
+ print "Auto-selected: ", $auto->NAME(), "\n" if defined $auto;
+ print "Specified: ", $specified->NAME(), "\n" if defined $specified;
+ print "No system auto-selected or specified\n"
+ if ! defined $auto && ! defined $specified;
+}
+
+sub buildsystems_do {
+ my $step=shift;
+
+ if (!defined $step) {
+ $step = basename($0);
+ $step =~ s/^dh_auto_//;
+ }
+
+ if (grep(/^\Q$step\E$/, BUILD_STEPS) == 0) {
+ error("unrecognized build step: " . $step);
+ }
+
+ if ($opt_list) {
+ buildsystems_list($step);
+ exit 0;
+ }
+
+ my $buildsystem = load_buildsystem($opt_buildsys, $step);
+ if (defined $buildsystem) {
+ $buildsystem->pre_building_step($step);
+ $buildsystem->$step(@_, @{$dh{U_PARAMS}});
+ $buildsystem->post_building_step($step);
+ }
+ return 0;
+}
+
+1
diff --git a/Debian/Debhelper/Dh_Getopt.pm b/Debian/Debhelper/Dh_Getopt.pm
new file mode 100644
index 0000000..e4f3e47
--- /dev/null
+++ b/Debian/Debhelper/Dh_Getopt.pm
@@ -0,0 +1,288 @@
+#!/usr/bin/perl -w
+#
+# Debhelper option processing library.
+#
+# Joey Hess GPL copyright 1998-2002
+
+package Debian::Debhelper::Dh_Getopt;
+use strict;
+
+use Debian::Debhelper::Dh_Lib;
+use Getopt::Long;
+
+my %exclude_package;
+
+sub showhelp {
+ my $prog=basename($0);
+ print "Usage: $prog [options]\n\n";
+ print " $prog is a part of debhelper. See debhelper(7)\n";
+ print " and $prog(1) for complete usage instructions.\n";
+ exit(1);
+}
+
+# Passed an option name and an option value, adds packages to the list
+# of packages. We need this so the list will be built up in the right
+# order.
+sub AddPackage { my($option,$value)=@_;
+ if ($option eq 'i' or $option eq 'indep') {
+ push @{$dh{DOPACKAGES}}, getpackages('indep');
+ $dh{DOINDEP}=1;
+ }
+ elsif ($option eq 'a' or $option eq 'arch' or
+ $option eq 's' or $option eq 'same-arch') {
+ push @{$dh{DOPACKAGES}}, getpackages('arch');
+ $dh{DOARCH}=1;
+ }
+ elsif ($option eq 'p' or $option eq 'package') {
+ push @{$dh{DOPACKAGES}}, $value;
+ }
+ else {
+ error("bad option $option - should never happen!\n");
+ }
+}
+
+# Adds packages to the list of debug packages.
+sub AddDebugPackage { my($option,$value)=@_;
+ push @{$dh{DEBUGPACKAGES}}, $value;
+}
+
+# Add a package to a list of packages that should not be acted on.
+sub ExcludePackage { my($option,$value)=@_;
+ $exclude_package{$value}=1;
+}
+
+# Add another item to the exclude list.
+sub AddExclude { my($option,$value)=@_;
+ push @{$dh{EXCLUDE}},$value;
+}
+
+# Add a file to the ignore list.
+sub AddIgnore { my($option,$file)=@_;
+ $dh{IGNORE}->{$file}=1;
+}
+
+# This collects non-options values.
+sub NonOption {
+ push @{$dh{ARGV}}, @_;
+}
+
+sub getoptions {
+ my $array=shift;
+ my %params=@_;
+
+ if (! exists $params{bundling} || $params{bundling}) {
+ Getopt::Long::config("bundling");
+ }
+
+ my @test;
+ my %options=(
+ "v" => \$dh{VERBOSE},
+ "verbose" => \$dh{VERBOSE},
+
+ "no-act" => \$dh{NO_ACT},
+
+ "i" => \&AddPackage,
+ "indep" => \&AddPackage,
+
+ "a" => \&AddPackage,
+ "arch" => \&AddPackage,
+
+ "p=s" => \&AddPackage,
+ "package=s" => \&AddPackage,
+
+ "N=s" => \&ExcludePackage,
+ "no-package=s" => \&ExcludePackage,
+
+ "remaining-packages" => \$dh{EXCLUDE_LOGGED},
+
+ "dbg-package=s" => \&AddDebugPackage,
+
+ "s" => \&AddPackage,
+ "same-arch" => \&AddPackage,
+
+ "n" => \$dh{NOSCRIPTS},
+ "noscripts" => \$dh{NOSCRIPTS},
+ "o" => \$dh{ONLYSCRIPTS},
+ "onlyscripts" => \$dh{ONLYSCRIPTS},
+
+ "X=s" => \&AddExclude,
+ "exclude=s" => \&AddExclude,
+
+ "d" => \$dh{D_FLAG},
+
+ "k" => \$dh{K_FLAG},
+ "keep" => \$dh{K_FLAG},
+
+ "P=s" => \$dh{TMPDIR},
+ "tmpdir=s" => \$dh{TMPDIR},
+
+ "u=s", => \$dh{U_PARAMS},
+
+ "V:s", => \$dh{V_FLAG},
+
+ "A" => \$dh{PARAMS_ALL},
+ "all" => \$dh{PARAMS_ALL},
+
+ "priority=s" => \$dh{PRIORITY},
+
+ "h|help" => \&showhelp,
+
+ "mainpackage=s" => \$dh{MAINPACKAGE},
+
+ "name=s" => \$dh{NAME},
+
+ "error-handler=s" => \$dh{ERROR_HANDLER},
+
+ "ignore=s" => \&AddIgnore,
+
+ "O=s" => sub { push @test, $_[1] },
+
+ (ref $params{options} ? %{$params{options}} : ()) ,
+
+ "<>" => \&NonOption,
+ );
+
+ if ($params{test}) {
+ foreach my $key (keys %options) {
+ $options{$key}=sub {};
+ }
+ }
+
+ my $oldwarn;
+ if ($params{test} || $params{ignore_unknown_options}) {
+ $oldwarn=$SIG{__WARN__};
+ $SIG{__WARN__}=sub {};
+ }
+ my $ret=Getopt::Long::GetOptionsFromArray($array, %options);
+ if ($oldwarn) {
+ $SIG{__WARN__}=$oldwarn;
+ }
+
+ foreach my $opt (@test) {
+ # Try to parse an option, and skip it
+ # if it is not known.
+ if (getoptions([$opt], %params,
+ ignore_unknown_options => 0,
+ test => 1)) {
+ getoptions([$opt], %params);
+ }
+ }
+
+ return 1 if $params{ignore_unknown_options};
+ return $ret;
+}
+
+sub split_options_string {
+ my $str=shift;
+ $str=~s/^\s+//;
+ return split(/\s+/,$str);
+}
+
+# Parse options and set %dh values.
+sub parseopts {
+ my %params=@_;
+
+ my @ARGV_extra;
+
+ # DH_INTERNAL_OPTIONS is used to pass additional options from
+ # dh through an override target to a command.
+ if (defined $ENV{DH_INTERNAL_OPTIONS}) {
+ @ARGV_extra=split(/\x1e/, $ENV{DH_INTERNAL_OPTIONS});
+ getoptions(\@ARGV_extra, %params);
+
+ # Avoid forcing acting on packages specified in
+ # DH_INTERNAL_OPTIONS. This way, -p can be specified
+ # at the command line to act on a specific package, but when
+ # nothing is specified, the excludes will cause the set of
+ # packages DH_INTERNAL_OPTIONS specifies to be acted on.
+ if (defined $dh{DOPACKAGES}) {
+ foreach my $package (getpackages()) {
+ if (! grep { $_ eq $package } @{$dh{DOPACKAGES}}) {
+ $exclude_package{$package}=1;
+ }
+ }
+ }
+ delete $dh{DOPACKAGES};
+ delete $dh{DOINDEP};
+ delete $dh{DOARCH};
+ }
+
+ # DH_OPTIONS can contain additional options to be parsed like @ARGV
+ if (defined $ENV{DH_OPTIONS}) {
+ @ARGV_extra=split_options_string($ENV{DH_OPTIONS});
+ my $ret=getoptions(\@ARGV_extra, %params);
+ if (!$ret) {
+ warning("warning: ignored unknown options in DH_OPTIONS");
+ }
+ }
+
+ my $ret=getoptions(\@ARGV, %params);
+ if (!$ret) {
+ if (! compat(7)) {
+ error("unknown option; aborting");
+ }
+ }
+
+ # Check to see if -V was specified. If so, but no parameters were
+ # passed, the variable will be defined but empty.
+ if (defined($dh{V_FLAG})) {
+ $dh{V_FLAG_SET}=1;
+ }
+
+ # If we have not been given any packages to act on, assume they
+ # want us to act on them all. Note we have to do this before excluding
+ # packages out, below.
+ if (! defined $dh{DOPACKAGES} || ! @{$dh{DOPACKAGES}}) {
+ if ($dh{DOINDEP} || $dh{DOARCH}) {
+ # User specified that all arch (in)dep package be
+ # built, and there are none of that type.
+ if (! $dh{BLOCK_NOOP_WARNINGS}) {
+ warning("You asked that all arch in(dep) packages be built, but there are none of that type.");
+ }
+ exit(0);
+ }
+ push @{$dh{DOPACKAGES}},getpackages("both");
+ }
+
+ # Remove excluded packages from the list of packages to act on.
+ # Also unique the list, in case some options were specified that
+ # added a package to it twice.
+ my @package_list;
+ my $package;
+ my %packages_seen;
+ foreach $package (@{$dh{DOPACKAGES}}) {
+ if (defined($dh{EXCLUDE_LOGGED}) &&
+ grep { $_ eq basename($0) } load_log($package)) {
+ $exclude_package{$package}=1;
+ }
+ if (! $exclude_package{$package}) {
+ if (! exists $packages_seen{$package}) {
+ $packages_seen{$package}=1;
+ push @package_list, $package;
+ }
+ }
+ }
+ @{$dh{DOPACKAGES}}=@package_list;
+
+ if (! defined $dh{DOPACKAGES} || ! @{$dh{DOPACKAGES}}) {
+ if (! $dh{BLOCK_NOOP_WARNINGS}) {
+ warning("No packages to build.");
+ }
+ exit(0);
+ }
+
+ if (defined $dh{U_PARAMS}) {
+ # Split the U_PARAMS up into an array.
+ my $u=$dh{U_PARAMS};
+ undef $dh{U_PARAMS};
+ push @{$dh{U_PARAMS}}, split(/\s+/,$u);
+ }
+
+ # Anything left in @ARGV is options that appeared after a --
+ # These options are added to the U_PARAMS array, while the
+ # non-option values we collected replace them in @ARGV;
+ push @{$dh{U_PARAMS}}, @ARGV, @ARGV_extra;
+ @ARGV=@{$dh{ARGV}} if exists $dh{ARGV};
+}
+
+1
diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm
new file mode 100644
index 0000000..2acfad9
--- /dev/null
+++ b/Debian/Debhelper/Dh_Lib.pm
@@ -0,0 +1,983 @@
+#!/usr/bin/perl -w
+#
+# Library functions for debhelper programs, perl version.
+#
+# Joey Hess, GPL copyright 1997-2008.
+
+package Debian::Debhelper::Dh_Lib;
+use strict;
+
+use Exporter;
+use vars qw(@ISA @EXPORT %dh);
+@ISA=qw(Exporter);
+@EXPORT=qw(&init &doit &complex_doit &verbose_print &error &warning &tmpdir
+ &pkgfile &pkgext &pkgfilename &isnative &autoscript &filearray
+ &filedoublearray &getpackages &basename &dirname &xargs %dh
+ &compat &addsubstvar &delsubstvar &excludefile &package_arch
+ &is_udeb &udeb_filename &debhelper_script_subst &escape_shell
+ &inhibit_log &load_log &write_log &commit_override_log
+ &dpkg_architecture_value &sourcepackage
+ &is_make_jobserver_unavailable &clean_jobserver_makeflags
+ &cross_command &set_buildflags &get_buildoption);
+
+my $max_compat=10;
+
+# The Makefile changes this if debhelper is installed in a PREFIX.
+my $prefix="/usr";
+
+sub init {
+ my %params=@_;
+
+ # Check to see if an option line starts with a dash,
+ # or DH_OPTIONS is set.
+ # If so, we need to pass this off to the resource intensive
+ # Getopt::Long, which I'd prefer to avoid loading at all if possible.
+ if ((defined $ENV{DH_OPTIONS} && length $ENV{DH_OPTIONS}) ||
+ (defined $ENV{DH_INTERNAL_OPTIONS} && length $ENV{DH_INTERNAL_OPTIONS}) ||
+ grep /^-/, @ARGV) {
+ eval "use Debian::Debhelper::Dh_Getopt";
+ error($@) if $@;
+ Debian::Debhelper::Dh_Getopt::parseopts(%params);
+ }
+
+ # Another way to set excludes.
+ if (exists $ENV{DH_ALWAYS_EXCLUDE} && length $ENV{DH_ALWAYS_EXCLUDE}) {
+ push @{$dh{EXCLUDE}}, split(":", $ENV{DH_ALWAYS_EXCLUDE});
+ }
+
+ # Generate EXCLUDE_FIND.
+ if ($dh{EXCLUDE}) {
+ $dh{EXCLUDE_FIND}='';
+ foreach (@{$dh{EXCLUDE}}) {
+ my $x=$_;
+ $x=escape_shell($x);
+ $x=~s/\./\\\\./g;
+ $dh{EXCLUDE_FIND}.="-regex .\\*$x.\\* -or ";
+ }
+ $dh{EXCLUDE_FIND}=~s/ -or $//;
+ }
+
+ # Check to see if DH_VERBOSE environment variable was set, if so,
+ # make sure verbose is on.
+ if (defined $ENV{DH_VERBOSE} && $ENV{DH_VERBOSE} ne "") {
+ $dh{VERBOSE}=1;
+ }
+
+ # Check to see if DH_NO_ACT environment variable was set, if so,
+ # make sure no act mode is on.
+ if (defined $ENV{DH_NO_ACT} && $ENV{DH_NO_ACT} ne "") {
+ $dh{NO_ACT}=1;
+ }
+
+ # Get the name of the main binary package (first one listed in
+ # debian/control). Only if the main package was not set on the
+ # command line.
+ if (! exists $dh{MAINPACKAGE} || ! defined $dh{MAINPACKAGE}) {
+ my @allpackages=getpackages();
+ $dh{MAINPACKAGE}=$allpackages[0];
+ }
+
+ # Check if packages to build have been specified, if not, fall back to
+ # the default, building all relevant packages.
+ if (! defined $dh{DOPACKAGES} || ! @{$dh{DOPACKAGES}}) {
+ push @{$dh{DOPACKAGES}}, getpackages('both');
+ }
+
+ # Check to see if -P was specified. If so, we can only act on a single
+ # package.
+ if ($dh{TMPDIR} && $#{$dh{DOPACKAGES}} > 0) {
+ error("-P was specified, but multiple packages would be acted on (".join(",",@{$dh{DOPACKAGES}}).").");
+ }
+
+ # Figure out which package is the first one we were instructed to build.
+ # This package gets special treatement: files and directories specified on
+ # the command line may affect it.
+ $dh{FIRSTPACKAGE}=${$dh{DOPACKAGES}}[0];
+
+ # If no error handling function was specified, just propagate
+ # errors out.
+ if (! exists $dh{ERROR_HANDLER} || ! defined $dh{ERROR_HANDLER}) {
+ $dh{ERROR_HANDLER}='exit \$?';
+ }
+}
+
+# Run at exit. Add the command to the log files for the packages it acted
+# on, if it's exiting successfully.
+my $write_log=1;
+sub END {
+ if ($? == 0 && $write_log) {
+ write_log(basename($0), @{$dh{DOPACKAGES}});
+ }
+}
+
+sub logfile {
+ my $package=shift;
+ my $ext=pkgext($package);
+ return "debian/${ext}debhelper.log"
+}
+
+sub add_override {
+ my $line=shift;
+ $line="override_$ENV{DH_INTERNAL_OVERRIDE} $line"
+ if defined $ENV{DH_INTERNAL_OVERRIDE};
+ return $line;
+}
+
+sub remove_override {
+ my $line=shift;
+ $line=~s/^\Qoverride_$ENV{DH_INTERNAL_OVERRIDE}\E\s+//
+ if defined $ENV{DH_INTERNAL_OVERRIDE};
+ return $line;
+}
+
+sub load_log {
+ my ($package, $db)=@_;
+
+ my @log;
+ open(LOG, "<", logfile($package)) || return;
+ while (<LOG>) {
+ chomp;
+ my $command=remove_override($_);
+ push @log, $command;
+ $db->{$package}{$command}=1 if defined $db;
+ }
+ close LOG;
+ return @log;
+}
+
+sub write_log {
+ my $cmd=shift;
+ my @packages=@_;
+
+ return if $dh{NO_ACT};
+
+ foreach my $package (@packages) {
+ my $log=logfile($package);
+ open(LOG, ">>", $log) || error("failed to write to ${log}: $!");
+ print LOG add_override($cmd)."\n";
+ close LOG;
+ }
+}
+
+sub commit_override_log {
+ my @packages=@_;
+
+ return if $dh{NO_ACT};
+
+ foreach my $package (@packages) {
+ my @log=map { remove_override($_) } load_log($package);
+ my $log=logfile($package);
+ open(LOG, ">", $log) || error("failed to write to ${log}: $!");
+ print LOG $_."\n" foreach @log;
+ close LOG;
+ }
+}
+
+sub inhibit_log {
+ $write_log=0;
+}
+
+# Pass it an array containing the arguments of a shell command like would
+# be run by exec(). It turns that into a line like you might enter at the
+# shell, escaping metacharacters and quoting arguments that contain spaces.
+sub escape_shell {
+ my @args=@_;
+ my $line="";
+ my @ret;
+ foreach my $word (@args) {
+ if ($word=~/\s/) {
+ # Escape only a few things since it will be quoted.
+ # Note we use double quotes because you cannot
+ # escape ' in single quotes, while " can be escaped
+ # in double.
+ # This does make -V"foo bar" turn into "-Vfoo bar",
+ # but that will be parsed identically by the shell
+ # anyway..
+ $word=~s/([\n`\$"\\])/\\$1/g;
+ push @ret, "\"$word\"";
+ }
+ else {
+ # This list is from _Unix in a Nutshell_. (except '#')
+ $word=~s/([\s!"\$()*+#;<>?@\[\]\\`|~])/\\$1/g;
+ push @ret,$word;
+ }
+ }
+ return join(' ', @ret);
+}
+
+# Run a command, and display the command to stdout if verbose mode is on.
+# All commands that modifiy files in $TMP should be ran via this
+# function.
+#
+# Note that this cannot handle complex commands, especially anything
+# involving redirection. Use complex_doit instead.
+sub doit {
+ verbose_print(escape_shell(@_));
+
+ if (! $dh{NO_ACT}) {
+ system(@_) == 0 || _error_exitcode(join(" ", @_));
+ }
+}
+
+# Run a command and display the command to stdout if verbose mode is on.
+# Use doit() if you can, instead of this function, because this function
+# forks a shell. However, this function can handle more complicated stuff
+# like redirection.
+sub complex_doit {
+ verbose_print(join(" ",@_));
+
+ if (! $dh{NO_ACT}) {
+ # The join makes system get a scalar so it forks off a shell.
+ system(join(" ", @_)) == 0 || _error_exitcode(join(" ", @_))
+ }
+}
+
+sub _error_exitcode {
+ my $command=shift;
+ if ($? == -1) {
+ error("$command failed to to execute: $!");
+ }
+ elsif ($? & 127) {
+ error("$command died with signal ".($? & 127));
+ }
+ else {
+ error("$command returned exit code ".($? >> 8));
+ }
+}
+
+# Run a command that may have a huge number of arguments, like xargs does.
+# Pass in a reference to an array containing the arguments, and then other
+# parameters that are the command and any parameters that should be passed to
+# it each time.
+sub xargs {
+ my $args=shift;
+
+ # The kernel can accept command lines up to 20k worth of characters.
+ my $command_max=20000; # LINUX SPECIFIC!!
+ # (And obsolete; it's bigger now.)
+ # I could use POSIX::ARG_MAX, but that would be slow.
+
+ # Figure out length of static portion of command.
+ my $static_length=0;
+ foreach (@_) {
+ $static_length+=length($_)+1;
+ }
+
+ my @collect=();
+ my $length=$static_length;
+ foreach (@$args) {
+ if (length($_) + 1 + $static_length > $command_max) {
+ error("This command is greater than the maximum command size allowed by the kernel, and cannot be split up further. What on earth are you doing? \"@_ $_\"");
+ }
+ $length+=length($_) + 1;
+ if ($length < $command_max) {
+ push @collect, $_;
+ }
+ else {
+ doit(@_,@collect) if $#collect > -1;
+ @collect=($_);
+ $length=$static_length + length($_) + 1;
+ }
+ }
+ doit(@_,@collect) if $#collect > -1;
+}
+
+# Print something if the verbose flag is on.
+sub verbose_print {
+ my $message=shift;
+
+ if ($dh{VERBOSE}) {
+ print "\t$message\n";
+ }
+}
+
+# Output an error message and die (can be caught).
+sub error {
+ my $message=shift;
+
+ die basename($0).": $message\n";
+}
+
+# Output a warning.
+sub warning {
+ my $message=shift;
+
+ print STDERR basename($0).": $message\n";
+}
+
+# Returns the basename of the argument passed to it.
+sub basename {
+ my $fn=shift;
+
+ $fn=~s/\/$//g; # ignore trailing slashes
+ $fn=~s:^.*/(.*?)$:$1:;
+ return $fn;
+}
+
+# Returns the directory name of the argument passed to it.
+sub dirname {
+ my $fn=shift;
+
+ $fn=~s/\/$//g; # ignore trailing slashes
+ $fn=~s:^(.*)/.*?$:$1:;
+ return $fn;
+}
+
+# Pass in a number, will return true iff the current compatibility level
+# is less than or equal to that number.
+{
+ my $warned_compat=0;
+ my $c;
+
+ sub compat {
+ my $num=shift;
+ my $nowarn=shift;
+
+ if (! defined $c) {
+ $c=1;
+ if (-e 'debian/compat') {
+ open (COMPAT_IN, "debian/compat") || error "debian/compat: $!";
+ my $l=<COMPAT_IN>;
+ close COMPAT_IN;
+ if (! defined $l || ! length $l) {
+ warning("debian/compat is empty, assuming level $c")
+ unless defined $ENV{DH_COMPAT};
+ }
+ else {
+ chomp $l;
+ $c=$l;
+ }
+ }
+ else {
+ warning("No compatibility level specified in debian/compat");
+ warning("This package will soon FTBFS; time to fix it!");
+ }
+
+ if (defined $ENV{DH_COMPAT}) {
+ $c=$ENV{DH_COMPAT};
+ }
+ }
+
+ if ($c <= 4 && ! $warned_compat && ! $nowarn) {
+ warning("Compatibility levels before 5 are deprecated (level $c in use)");
+ $warned_compat=1;
+ }
+
+ if ($c > $max_compat) {
+ error("Sorry, but $max_compat is the highest compatibility level supported by this debhelper.");
+ }
+
+ return ($c <= $num);
+ }
+}
+
+# Pass it a name of a binary package, it returns the name of the tmp dir to
+# use, for that package.
+sub tmpdir {
+ my $package=shift;
+
+ if ($dh{TMPDIR}) {
+ return $dh{TMPDIR};
+ }
+ elsif (compat(1) && $package eq $dh{MAINPACKAGE}) {
+ # This is for back-compatibility with the debian/tmp tradition.
+ return "debian/tmp";
+ }
+ else {
+ return "debian/$package";
+ }
+}
+
+# Pass this the name of a binary package, and the name of the file wanted
+# for the package, and it will return the actual existing filename to use.
+#
+# It tries several filenames:
+# * debian/package.filename.buildarch
+# * debian/package.filename.buildos
+# * debian/package.filename
+# * debian/filename (if the package is the main package)
+# If --name was specified then the files
+# must have the name after the package name:
+# * debian/package.name.filename.buildarch
+# * debian/package.name.filename.buildos
+# * debian/package.name.filename
+# * debian/name.filename (if the package is the main package)
+sub pkgfile {
+ my $package=shift;
+ my $filename=shift;
+
+ if (defined $dh{NAME}) {
+ $filename="$dh{NAME}.$filename";
+ }
+
+ # First, check for files ending in buildarch and buildos.
+ my $match;
+ foreach my $file (glob("debian/$package.$filename.*")) {
+ next if ! -f $file;
+ next if $dh{IGNORE} && exists $dh{IGNORE}->{$file};
+ if ($file eq "debian/$package.$filename.".buildarch()) {
+ $match=$file;
+ # buildarch files are used in preference to buildos files.
+ last;
+ }
+ elsif ($file eq "debian/$package.$filename.".buildos()) {
+ $match=$file;
+ }
+ }
+ return $match if defined $match;
+
+ my @try=("debian/$package.$filename");
+ if ($package eq $dh{MAINPACKAGE}) {
+ push @try, "debian/$filename";
+ }
+
+ foreach my $file (@try) {
+ if (-f $file &&
+ (! $dh{IGNORE} || ! exists $dh{IGNORE}->{$file})) {
+ return $file;
+ }
+
+ }
+
+ return "";
+
+}
+
+# Pass it a name of a binary package, it returns the name to prefix to files
+# in debian/ for this package.
+sub pkgext {
+ my $package=shift;
+
+ if (compat(1) and $package eq $dh{MAINPACKAGE}) {
+ return "";
+ }
+ return "$package.";
+}
+
+# Pass it the name of a binary package, it returns the name to install
+# files by in eg, etc. Normally this is the same, but --name can override
+# it.
+sub pkgfilename {
+ my $package=shift;
+
+ if (defined $dh{NAME}) {
+ return $dh{NAME};
+ }
+ return $package;
+}
+
+# Returns 1 if the package is a native debian package, null otherwise.
+# As a side effect, sets $dh{VERSION} to the version of this package.
+{
+ # Caches return code so it only needs to run dpkg-parsechangelog once.
+ my %isnative_cache;
+
+ sub isnative {
+ my $package=shift;
+
+ return $isnative_cache{$package} if defined $isnative_cache{$package};
+
+ # Make sure we look at the correct changelog.
+ my $isnative_changelog=pkgfile($package,"changelog");
+ if (! $isnative_changelog) {
+ $isnative_changelog="debian/changelog";
+ }
+ # Get the package version.
+ my $version=`dpkg-parsechangelog -l$isnative_changelog`;
+ ($dh{VERSION})=$version=~m/Version:\s*(.*)/m;
+ # Did the changelog parse fail?
+ if (! defined $dh{VERSION}) {
+ error("changelog parse failure");
+ }
+
+ # Is this a native Debian package?
+ if ($dh{VERSION}=~m/.*-/) {
+ return $isnative_cache{$package}=0;
+ }
+ else {
+ return $isnative_cache{$package}=1;
+ }
+ }
+}
+
+# Automatically add a shell script snippet to a debian script.
+# Only works if the script has #DEBHELPER# in it.
+#
+# Parameters:
+# 1: package
+# 2: script to add to
+# 3: filename of snippet
+# 4: either text: shell-quoted sed to run on the snippet. Ie, 's/#PACKAGE#/$PACKAGE/'
+# or a sub to run on each line of the snippet. Ie sub { s/#PACKAGE#/$PACKAGE/ }
+sub autoscript {
+ my $package=shift;
+ my $script=shift;
+ my $filename=shift;
+ my $sed=shift || "";
+
+ # This is the file we will modify.
+ my $outfile="debian/".pkgext($package)."$script.debhelper";
+
+ # Figure out what shell script snippet to use.
+ my $infile;
+ if (defined($ENV{DH_AUTOSCRIPTDIR}) &&
+ -e "$ENV{DH_AUTOSCRIPTDIR}/$filename") {
+ $infile="$ENV{DH_AUTOSCRIPTDIR}/$filename";
+ }
+ else {
+ if (-e "$prefix/share/debhelper/autoscripts/$filename") {
+ $infile="$prefix/share/debhelper/autoscripts/$filename";
+ }
+ else {
+ error("$prefix/share/debhelper/autoscripts/$filename does not exist");
+ }
+ }
+
+ if (-e $outfile && ($script eq 'postrm' || $script eq 'prerm')
+ && !compat(5)) {
+ # Add fragments to top so they run in reverse order when removing.
+ complex_doit("echo \"# Automatically added by ".basename($0)."\"> $outfile.new");
+ autoscript_sed($sed, $infile, "$outfile.new");
+ complex_doit("echo '# End automatically added section' >> $outfile.new");
+ complex_doit("cat $outfile >> $outfile.new");
+ complex_doit("mv $outfile.new $outfile");
+ }
+ else {
+ complex_doit("echo \"# Automatically added by ".basename($0)."\">> $outfile");
+ autoscript_sed($sed, $infile, $outfile);
+ complex_doit("echo '# End automatically added section' >> $outfile");
+ }
+}
+
+sub autoscript_sed {
+ my $sed = shift;
+ my $infile = shift;
+ my $outfile = shift;
+ if (ref($sed) eq 'CODE') {
+ open(IN, $infile) or die "$infile: $!";
+ open(OUT, ">>$outfile") or die "$outfile: $!";
+ while (<IN>) { $sed->(); print OUT }
+ close(OUT) or die "$outfile: $!";
+ close(IN) or die "$infile: $!";
+ }
+ else {
+ complex_doit("sed \"$sed\" $infile >> $outfile");
+ }
+}
+
+# Removes a whole substvar line.
+sub delsubstvar {
+ my $package=shift;
+ my $substvar=shift;
+
+ my $ext=pkgext($package);
+ my $substvarfile="debian/${ext}substvars";
+
+ if (-e $substvarfile) {
+ complex_doit("grep -s -v '^${substvar}=' $substvarfile > $substvarfile.new || true");
+ doit("mv", "$substvarfile.new","$substvarfile");
+ }
+}
+
+# Adds a dependency on some package to the specified
+# substvar in a package's substvar's file.
+sub addsubstvar {
+ my $package=shift;
+ my $substvar=shift;
+ my $deppackage=shift;
+ my $verinfo=shift;
+ my $remove=shift;
+
+ my $ext=pkgext($package);
+ my $substvarfile="debian/${ext}substvars";
+ my $str=$deppackage;
+ $str.=" ($verinfo)" if defined $verinfo && length $verinfo;
+
+ # Figure out what the line will look like, based on what's there
+ # now, and what we're to add or remove.
+ my $line="";
+ if (-e $substvarfile) {
+ my %items;
+ open(SUBSTVARS_IN, "$substvarfile") || error "read $substvarfile: $!";
+ while (<SUBSTVARS_IN>) {
+ chomp;
+ if (/^\Q$substvar\E=(.*)/) {
+ %items = map { $_ => 1} split(", ", $1);
+
+ last;
+ }
+ }
+ close SUBSTVARS_IN;
+ if (! $remove) {
+ $items{$str}=1;
+ }
+ else {
+ delete $items{$str};
+ }
+ $line=join(", ", sort keys %items);
+ }
+ elsif (! $remove) {
+ $line=$str;
+ }
+
+ if (length $line) {
+ complex_doit("(grep -s -v ${substvar} $substvarfile; echo ".escape_shell("${substvar}=$line").") > $substvarfile.new");
+ doit("mv", "$substvarfile.new", $substvarfile);
+ }
+ else {
+ delsubstvar($package,$substvar);
+ }
+}
+
+# Reads in the specified file, one line at a time. splits on words,
+# and returns an array of arrays of the contents.
+# If a value is passed in as the second parameter, then glob
+# expansion is done in the directory specified by the parameter ("." is
+# frequently a good choice).
+sub filedoublearray {
+ my $file=shift;
+ my $globdir=shift;
+
+ # executable config files are a v9 thing.
+ my $x=! compat(8) && -x $file;
+ if ($x) {
+ require Cwd;
+ my $cmd=Cwd::abs_path($file);
+ open (DH_FARRAY_IN, "$cmd |") || error("cannot run $file: $!");
+ }
+ else {
+ open (DH_FARRAY_IN, $file) || error("cannot read $file: $!");
+ }
+
+ my @ret;
+ while (<DH_FARRAY_IN>) {
+ chomp;
+ # Only ignore comments and empty lines in v5 mode.
+ if (! compat(4) && ! $x) {
+ next if /^#/ || /^$/;
+ }
+ my @line;
+ # Only do glob expansion in v3 mode.
+ #
+ # The tricky bit is that the glob expansion is done
+ # as if we were in the specified directory, so the
+ # filenames that come out are relative to it.
+ if (defined $globdir && ! compat(2) && ! $x) {
+ foreach (map { glob "$globdir/$_" } split) {
+ s#^$globdir/##;
+ push @line, $_;
+ }
+ }
+ else {
+ @line = split;
+ }
+ push @ret, [@line];
+ }
+
+ close DH_FARRAY_IN || error("problem reading $file: $!");
+
+ return @ret;
+}
+
+# Reads in the specified file, one word at a time, and returns an array of
+# the result. Can do globbing as does filedoublearray.
+sub filearray {
+ return map { @$_ } filedoublearray(@_);
+}
+
+# Passed a filename, returns true if -X says that file should be excluded.
+sub excludefile {
+ my $filename = shift;
+ foreach my $f (@{$dh{EXCLUDE}}) {
+ return 1 if $filename =~ /\Q$f\E/;
+ }
+ return 0;
+}
+
+{
+ my %dpkg_arch_output;
+ sub dpkg_architecture_value {
+ my $var = shift;
+ if (! exists($dpkg_arch_output{$var})) {
+ local $_;
+ open(PIPE, '-|', 'dpkg-architecture')
+ or error("dpkg-architecture failed");
+ while (<PIPE>) {
+ chomp;
+ my ($k, $v) = split(/=/, $_, 2);
+ $dpkg_arch_output{$k} = $v;
+ }
+ close(PIPE);
+ }
+ return $dpkg_arch_output{$var};
+ }
+}
+
+# Returns the build architecture.
+sub buildarch {
+ dpkg_architecture_value('DEB_HOST_ARCH');
+}
+
+# Returns the build OS.
+sub buildos {
+ dpkg_architecture_value("DEB_HOST_ARCH_OS");
+}
+
+# Passed an arch and a list of arches to match against, returns true if matched
+{
+ my %knownsame;
+
+ sub samearch {
+ my $arch=shift;
+ my @archlist=split(/\s+/,shift);
+
+ foreach my $a (@archlist) {
+ # Avoid expensive dpkg-architecture call to compare
+ # with a simple architecture name. "linux-any" and
+ # other architecture wildcards are (currently)
+ # always hypenated.
+ if ($a !~ /-/) {
+ return 1 if $arch eq $a;
+ }
+ elsif (exists $knownsame{$arch}{$a}) {
+ return 1 if $knownsame{$arch}{$a};
+ }
+ elsif (system("dpkg-architecture", "-a$arch", "-i$a") == 0) {
+ return $knownsame{$arch}{$a}=1;
+ }
+ else {
+ $knownsame{$arch}{$a}=0;
+ }
+ }
+
+ return 0;
+ }
+}
+
+# Returns source package name
+sub sourcepackage {
+ open (CONTROL, 'debian/control') ||
+ error("cannot read debian/control: $!\n");
+ while (<CONTROL>) {
+ chomp;
+ s/\s+$//;
+ if (/^Source:\s*(.*)/) {
+ close CONTROL;
+ return $1;
+ }
+ }
+
+ close CONTROL;
+ error("could not find Source: line in control file.");
+}
+
+# Returns a list of packages in the control file.
+# Pass "arch" or "indep" to specify arch-dependant (that will be built
+# for the system's arch) or independant. If nothing is specified,
+# returns all packages. Also, "both" returns the union of "arch" and "indep"
+# packages.
+# As a side effect, populates %package_arches and %package_types with the
+# types of all packages (not only those returned).
+my (%package_types, %package_arches);
+sub getpackages {
+ my $type=shift;
+
+ %package_types=();
+ %package_arches=();
+
+ $type="" if ! defined $type;
+
+ my $package="";
+ my $arch="";
+ my $package_type;
+ my @list=();
+ my %seen;
+ open (CONTROL, 'debian/control') ||
+ error("cannot read debian/control: $!\n");
+ while (<CONTROL>) {
+ chomp;
+ s/\s+$//;
+ if (/^Package:\s*(.*)/) {
+ $package=$1;
+ # Detect duplicate package names in the same control file.
+ if (! $seen{$package}) {
+ $seen{$package}=1;
+ }
+ else {
+ error("debian/control has a duplicate entry for $package");
+ }
+ $package_type="deb";
+ }
+ if (/^Architecture:\s*(.*)/) {
+ $arch=$1;
+ }
+ if (/^(?:X[BC]*-)?Package-Type:\s*(.*)/) {
+ $package_type=$1;
+ }
+
+ if (!$_ or eof) { # end of stanza.
+ if ($package) {
+ $package_types{$package}=$package_type;
+ $package_arches{$package}=$arch;
+ }
+
+ if ($package &&
+ ((($type eq 'indep' || $type eq 'both') && $arch eq 'all') ||
+ (($type eq 'arch' || $type eq 'both') && ($arch eq 'any' ||
+ ($arch ne 'all' &&
+ samearch(buildarch(), $arch)))) ||
+ ! $type)) {
+ push @list, $package;
+ $package="";
+ $arch="";
+ }
+ }
+ }
+ close CONTROL;
+
+ return @list;
+}
+
+# Returns the arch a package will build for.
+sub package_arch {
+ my $package=shift;
+
+ if (! exists $package_arches{$package}) {
+ warning "package $package is not in control info";
+ return buildarch();
+ }
+ return $package_arches{$package} eq 'all' ? "all" : buildarch();
+}
+
+# Return true if a given package is really a udeb.
+sub is_udeb {
+ my $package=shift;
+
+ if (! exists $package_types{$package}) {
+ warning "package $package is not in control info";
+ return 0;
+ }
+ return $package_types{$package} eq 'udeb';
+}
+
+# Generates the filename that is used for a udeb package.
+sub udeb_filename {
+ my $package=shift;
+
+ my $filearch=package_arch($package);
+ isnative($package); # side effect
+ my $version=$dh{VERSION};
+ $version=~s/^[0-9]+://; # strip any epoch
+ return "${package}_${version}_$filearch.udeb";
+}
+
+# Handles #DEBHELPER# substitution in a script; also can generate a new
+# script from scratch if none exists but there is a .debhelper file for it.
+sub debhelper_script_subst {
+ my $package=shift;
+ my $script=shift;
+
+ my $tmp=tmpdir($package);
+ my $ext=pkgext($package);
+ my $file=pkgfile($package,$script);
+
+ if ($file ne '') {
+ if (-f "debian/$ext$script.debhelper") {
+ # Add this into the script, where it has #DEBHELPER#
+ complex_doit("perl -pe 's~#DEBHELPER#~qx{cat debian/$ext$script.debhelper}~eg' < $file > $tmp/DEBIAN/$script");
+ }
+ else {
+ # Just get rid of any #DEBHELPER# in the script.
+ complex_doit("sed s/#DEBHELPER#// < $file > $tmp/DEBIAN/$script");
+ }
+ doit("chown","0:0","$tmp/DEBIAN/$script");
+ doit("chmod",755,"$tmp/DEBIAN/$script");
+ }
+ elsif ( -f "debian/$ext$script.debhelper" ) {
+ complex_doit("printf '#!/bin/sh\nset -e\n' > $tmp/DEBIAN/$script");
+ complex_doit("cat debian/$ext$script.debhelper >> $tmp/DEBIAN/$script");
+ doit("chown","0:0","$tmp/DEBIAN/$script");
+ doit("chmod",755,"$tmp/DEBIAN/$script");
+ }
+}
+
+# Checks if make's jobserver is enabled via MAKEFLAGS, but
+# the FD used to communicate with it is actually not available.
+sub is_make_jobserver_unavailable {
+ if (exists $ENV{MAKEFLAGS} &&
+ $ENV{MAKEFLAGS} =~ /(?:^|\s)--jobserver-fds=(\d+)/) {
+ if (!open(my $in, "<&$1")) {
+ return 1; # unavailable
+ }
+ else {
+ close $in;
+ return 0; # available
+ }
+ }
+
+ return; # no jobserver specified
+}
+
+# Cleans out jobserver options from MAKEFLAGS.
+sub clean_jobserver_makeflags {
+ if (exists $ENV{MAKEFLAGS}) {
+ if ($ENV{MAKEFLAGS} =~ /(?:^|\s)--jobserver-fds=(\d+)/) {
+ $ENV{MAKEFLAGS} =~ s/(?:^|\s)--jobserver-fds=\S+//g;
+ $ENV{MAKEFLAGS} =~ s/(?:^|\s)-j\b//g;
+ }
+ delete $ENV{MAKEFLAGS} if $ENV{MAKEFLAGS} =~ /^\s*$/;
+ }
+}
+
+# If cross-compiling, returns appropriate cross version of command.
+sub cross_command {
+ my $command=shift;
+ if (dpkg_architecture_value("DEB_BUILD_GNU_TYPE")
+ ne dpkg_architecture_value("DEB_HOST_GNU_TYPE")) {
+ return dpkg_architecture_value("DEB_HOST_GNU_TYPE")."-$command";
+ }
+ else {
+ return $command;
+ }
+}
+
+# Sets environment variables from dpkg-buildflags. Avoids changing
+# any existing environment variables.
+sub set_buildflags {
+ return if $ENV{DH_INTERNAL_BUILDFLAGS} || compat(8);
+ $ENV{DH_INTERNAL_BUILDFLAGS}=1;
+
+ eval "use Dpkg::BuildFlags";
+ if ($@) {
+ warning "unable to load build flags: $@";
+ return;
+ }
+
+ my $buildflags = Dpkg::BuildFlags->new();
+ $buildflags->load_config();
+ foreach my $flag ($buildflags->list()) {
+ next unless $flag =~ /^[A-Z]/; # Skip flags starting with lowercase
+ if (! exists $ENV{$flag}) {
+ $ENV{$flag} = $buildflags->get($flag);
+ }
+ }
+}
+
+# Gets a DEB_BUILD_OPTIONS option, if set.
+sub get_buildoption {
+ my $wanted=shift;
+
+ return undef unless exists $ENV{DEB_BUILD_OPTIONS};
+
+ foreach my $opt (split(/\s+/, $ENV{DEB_BUILD_OPTIONS})) {
+ # currently parallel= is the only one with a parameter
+ if ($opt =~ /^parallel=(-?\d+)$/ && $wanted eq 'parallel') {
+ return $1;
+ }
+ elsif ($opt eq $wanted) {
+ return 1;
+ }
+ }
+}
+
+1
diff --git a/Debian/Debhelper/Sequence/python_support.pm b/Debian/Debhelper/Sequence/python_support.pm
new file mode 100644
index 0000000..c93d212
--- /dev/null
+++ b/Debian/Debhelper/Sequence/python_support.pm
@@ -0,0 +1,15 @@
+#!/usr/bin/perl
+# debhelper sequence file for python-support
+
+use warnings;
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+# Test if dh_pysupport is available before inserting it.
+# (This would not be needed if this file was contained in the python-support
+# package.)
+if (-x "/usr/bin/dh_pysupport") {
+ insert_before("dh_installinit", "dh_pysupport");
+}
+
+1
diff --git a/GPL b/GPL
new file mode 100644
index 0000000..d60c31a
--- /dev/null
+++ b/GPL
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..3d2d093
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,106 @@
+# List of files of dh_* commands. Sorted for debhelper man page.
+COMMANDS=$(shell find . -maxdepth 1 -type f -perm /100 -name "dh_*" -printf "%f\n" | sort)
+
+# Find deprecated commands by looking at their synopsis.
+DEPRECATED=$(shell egrep -l '^dh_.* - .*deprecated' $(COMMANDS))
+
+# This generates a list of synopses of debhelper commands, and substitutes
+# it in to the #LIST# line on the man page fed to it on stdin. Must be passed
+# parameters of all the executables or pod files to get the synopses from.
+# For correct conversion of pod tags (like S< >) #LIST# must be substituted in
+# the pod file and not in the troff file.
+MAKEMANLIST=perl -e ' \
+ undef $$/; \
+ foreach (@ARGV) { \
+ open (IN, $$_) or die "$$_: $$!"; \
+ $$file=<IN>; \
+ close IN; \
+ if ($$file=~m/=head1 .*?\n\n(.*?) - (.*?)\n\n/s) { \
+ my $$item="=item $$1(1)\n\n$$2\n\n"; \
+ if (" $(DEPRECATED) " !~ / $$1 /) { \
+ $$list.=$$item; \
+ } \
+ else { \
+ $$list_deprecated.=$$item; \
+ } \
+ } \
+ } \
+ END { \
+ while (<STDIN>) { \
+ s/\#LIST\#/$$list/; \
+ s/\#LIST_DEPRECATED\#/$$list_deprecated/; \
+ print; \
+ }; \
+ }'
+
+# Figure out the `current debhelper version.
+VERSION=$(shell expr "`dpkg-parsechangelog |grep Version:`" : '.*Version: \(.*\)')
+
+PERLLIBDIR=$(shell perl -MConfig -e 'print $$Config{vendorlib}')/Debian/Debhelper
+
+PREFIX=/usr
+
+POD2MAN=pod2man --utf8 -c Debhelper -r "$(VERSION)"
+
+ifneq ($(USE_NLS),no)
+# l10n to be built is determined from .po files
+LANGS?=$(notdir $(basename $(wildcard man/po4a/po/*.po)))
+else
+LANGS=
+endif
+
+build: version debhelper.7
+ find . -maxdepth 1 -type f -perm /100 -name "dh*" \
+ -exec $(POD2MAN) {} {}.1 \;
+ifneq ($(USE_NLS),no)
+ po4a --previous -L UTF-8 man/po4a/po4a.cfg
+ set -e; \
+ for lang in $(LANGS); do \
+ dir=man/$$lang; \
+ for file in $$dir/dh*.pod; do \
+ prog=`basename $$file | sed 's/.pod//'`; \
+ $(POD2MAN) $$file $$prog.$$lang.1; \
+ done; \
+ if [ -e $$dir/debhelper.pod ]; then \
+ cat $$dir/debhelper.pod | \
+ $(MAKEMANLIST) `find $$dir -type f -maxdepth 1 -name "dh_*.pod" | sort` | \
+ $(POD2MAN) --name="debhelper" --section=7 > debhelper.$$lang.7; \
+ fi; \
+ done
+endif
+
+version:
+ printf "package Debian::Debhelper::Dh_Version;\n\$$version='$(VERSION)';\n1" > \
+ Debian/Debhelper/Dh_Version.pm
+
+debhelper.7: debhelper.pod
+ cat debhelper.pod | \
+ $(MAKEMANLIST) $(COMMANDS) | \
+ $(POD2MAN) --name="debhelper" --section=7 > debhelper.7
+
+clean:
+ rm -f *.1 *.7 Debian/Debhelper/Dh_Version.pm
+ifneq ($(USE_NLS),no)
+ po4a --previous --rm-translations --rm-backups man/po4a/po4a.cfg
+endif
+ for lang in $(LANGS); do \
+ if [ -e man/$$lang ]; then rmdir man/$$lang; fi; \
+ done;
+
+install:
+ install -d $(DESTDIR)$(PREFIX)/bin \
+ $(DESTDIR)$(PREFIX)/share/debhelper/autoscripts \
+ $(DESTDIR)$(PERLLIBDIR)/Sequence \
+ $(DESTDIR)$(PERLLIBDIR)/Buildsystem
+ install dh $(COMMANDS) $(DESTDIR)$(PREFIX)/bin
+ install -m 0644 autoscripts/* $(DESTDIR)$(PREFIX)/share/debhelper/autoscripts
+ install -m 0644 Debian/Debhelper/*.pm $(DESTDIR)$(PERLLIBDIR)
+ [ "$(PREFIX)" = /usr ] || \
+ sed -i '/$$prefix=/s@/usr@$(PREFIX)@g' $(DESTDIR)$(PERLLIBDIR)/Dh_Lib.pm
+ install -m 0644 Debian/Debhelper/Sequence/*.pm $(DESTDIR)$(PERLLIBDIR)/Sequence
+ install -m 0644 Debian/Debhelper/Buildsystem/*.pm $(DESTDIR)$(PERLLIBDIR)/Buildsystem
+
+test: version
+ ./run perl -MTest::Harness -e 'runtests grep { ! /CVS/ && ! /\.svn/ && -f && -x } @ARGV' t/* t/buildsystems/*
+ # clean up log etc
+ ./run dh_clean
diff --git a/autoscripts/maintscript-helper b/autoscripts/maintscript-helper
new file mode 100644
index 0000000..c7e06c4
--- /dev/null
+++ b/autoscripts/maintscript-helper
@@ -0,0 +1 @@
+dpkg-maintscript-helper #PARAMS# -- "$@"
diff --git a/autoscripts/postinst-emacsen b/autoscripts/postinst-emacsen
new file mode 100644
index 0000000..f80e1db
--- /dev/null
+++ b/autoscripts/postinst-emacsen
@@ -0,0 +1,4 @@
+if [ "$1" = "configure" ] && [ -x /usr/lib/emacsen-common/emacs-package-install ]
+then
+ /usr/lib/emacsen-common/emacs-package-install #PACKAGE#
+fi
diff --git a/autoscripts/postinst-icons b/autoscripts/postinst-icons
new file mode 100644
index 0000000..9e00f03
--- /dev/null
+++ b/autoscripts/postinst-icons
@@ -0,0 +1,3 @@
+if which update-icon-caches >/dev/null 2>&1 ; then
+ update-icon-caches #DIRLIST#
+fi
diff --git a/autoscripts/postinst-init b/autoscripts/postinst-init
new file mode 100644
index 0000000..2430b2c
--- /dev/null
+++ b/autoscripts/postinst-init
@@ -0,0 +1,4 @@
+if [ -x "/etc/init.d/#SCRIPT#" ]; then
+ update-rc.d #SCRIPT# #INITPARMS# >/dev/null
+ invoke-rc.d #SCRIPT# start || #ERROR_HANDLER#
+fi
diff --git a/autoscripts/postinst-init-nostart b/autoscripts/postinst-init-nostart
new file mode 100644
index 0000000..7a1bd5e
--- /dev/null
+++ b/autoscripts/postinst-init-nostart
@@ -0,0 +1,3 @@
+if [ -x "/etc/init.d/#SCRIPT#" ]; then
+ update-rc.d #SCRIPT# #INITPARMS# >/dev/null || #ERROR_HANDLER#
+fi
diff --git a/autoscripts/postinst-init-restart b/autoscripts/postinst-init-restart
new file mode 100644
index 0000000..35bba20
--- /dev/null
+++ b/autoscripts/postinst-init-restart
@@ -0,0 +1,9 @@
+if [ -x "/etc/init.d/#SCRIPT#" ]; then
+ update-rc.d #SCRIPT# #INITPARMS# >/dev/null
+ if [ -n "$2" ]; then
+ _dh_action=restart
+ else
+ _dh_action=start
+ fi
+ invoke-rc.d #SCRIPT# $_dh_action || #ERROR_HANDLER#
+fi
diff --git a/autoscripts/postinst-init-tmpfiles b/autoscripts/postinst-init-tmpfiles
new file mode 100644
index 0000000..fd613bc
--- /dev/null
+++ b/autoscripts/postinst-init-tmpfiles
@@ -0,0 +1,5 @@
+# In case this system is running systemd, we need to ensure that all
+# necessary tmpfiles (if any) are created before starting.
+if [ -d /run/systemd/system ] ; then
+ systemd-tmpfiles --create #TMPFILES# >/dev/null || true
+fi
diff --git a/autoscripts/postinst-makeshlibs b/autoscripts/postinst-makeshlibs
new file mode 100644
index 0000000..8a25b9e
--- /dev/null
+++ b/autoscripts/postinst-makeshlibs
@@ -0,0 +1,3 @@
+if [ "$1" = "configure" ]; then
+ ldconfig
+fi
diff --git a/autoscripts/postinst-menu b/autoscripts/postinst-menu
new file mode 100644
index 0000000..b56a346
--- /dev/null
+++ b/autoscripts/postinst-menu
@@ -0,0 +1,3 @@
+if [ "$1" = "configure" ] && [ -x "`which update-menus 2>/dev/null`" ]; then
+ update-menus
+fi
diff --git a/autoscripts/postinst-menu-method b/autoscripts/postinst-menu-method
new file mode 100644
index 0000000..c56d625
--- /dev/null
+++ b/autoscripts/postinst-menu-method
@@ -0,0 +1,7 @@
+inst=/etc/menu-methods/#PACKAGE#
+if [ -f $inst ]; then
+ chmod a+x $inst
+ if [ -x "`which update-menus 2>/dev/null`" ]; then
+ update-menus
+ fi
+fi
diff --git a/autoscripts/postinst-modules b/autoscripts/postinst-modules
new file mode 100644
index 0000000..f17dc2d
--- /dev/null
+++ b/autoscripts/postinst-modules
@@ -0,0 +1,5 @@
+if [ "$1" = "configure" ]; then
+ if [ -e /boot/System.map-#KVERS# ]; then
+ depmod -a -F /boot/System.map-#KVERS# #KVERS# || true
+ fi
+fi
diff --git a/autoscripts/postinst-moveconffile b/autoscripts/postinst-moveconffile
new file mode 100644
index 0000000..28f061e
--- /dev/null
+++ b/autoscripts/postinst-moveconffile
@@ -0,0 +1,9 @@
+if [ "$1" = configure ]; then
+ if [ -e "#OLD#" ]; then
+ echo "Preserving user changes to #NEW# ..."
+ if [ -e "#NEW#" ]; then
+ mv -f "#NEW#" "#NEW#.dpkg-new"
+ fi
+ mv -f "#OLD#" "#NEW#"
+ fi
+fi
diff --git a/autoscripts/postinst-python b/autoscripts/postinst-python
new file mode 100644
index 0000000..5a1943e
--- /dev/null
+++ b/autoscripts/postinst-python
@@ -0,0 +1,7 @@
+PYTHON=#PYVER#
+if which $PYTHON >/dev/null 2>&1 && [ -e /usr/lib/$PYTHON/compileall.py ]; then
+ DIRLIST="#DIRLIST#"
+ for i in $DIRLIST ; do
+ $PYTHON /usr/lib/$PYTHON/compileall.py -q $i
+ done
+fi
diff --git a/autoscripts/postinst-suid b/autoscripts/postinst-suid
new file mode 100644
index 0000000..db4bc6d
--- /dev/null
+++ b/autoscripts/postinst-suid
@@ -0,0 +1,8 @@
+if [ "$1" = "configure" ]; then
+ if which suidregister >/dev/null 2>&1 && [ -e /etc/suid.conf ]; then
+ suidregister -s #PACKAGE# /#FILE# #OWNER# #GROUP# #PERMS#
+ elif [ -e /#FILE# ]; then
+ chown #OWNER#:#GROUP# /#FILE#
+ chmod #PERMS# /#FILE#
+ fi
+fi
diff --git a/autoscripts/postinst-ucf b/autoscripts/postinst-ucf
new file mode 100644
index 0000000..0546831
--- /dev/null
+++ b/autoscripts/postinst-ucf
@@ -0,0 +1,4 @@
+if [ "$1" = "configure" ]; then
+ ucf "#UCFSRC#" "#UCFDEST#"
+ ucfr #PACKAGE# "#UCFDEST#"
+fi
diff --git a/autoscripts/postinst-usrlocal b/autoscripts/postinst-usrlocal
new file mode 100644
index 0000000..a2f004d
--- /dev/null
+++ b/autoscripts/postinst-usrlocal
@@ -0,0 +1,16 @@
+if [ "$1" = configure ]; then
+(
+ while read line; do
+ set -- $line
+ dir="$1"; mode="$2"; user="$3"; group="$4"
+ if [ ! -e "$dir" ]; then
+ if mkdir "$dir" 2>/dev/null; then
+ chown "$user":"$group" "$dir"
+ chmod "$mode" "$dir"
+ fi
+ fi
+ done
+) << DATA
+#DIRS#
+DATA
+fi
diff --git a/autoscripts/postinst-wm b/autoscripts/postinst-wm
new file mode 100644
index 0000000..ee63628
--- /dev/null
+++ b/autoscripts/postinst-wm
@@ -0,0 +1,6 @@
+if [ "$1" = "configure" ]; then
+ update-alternatives --install /usr/bin/x-window-manager \
+ x-window-manager #WM# #PRIORITY# \
+ --slave /usr/share/man/man1/x-window-manager.1.gz \
+ x-window-manager.1.gz #WMMAN#
+fi
diff --git a/autoscripts/postinst-wm-noman b/autoscripts/postinst-wm-noman
new file mode 100644
index 0000000..aef412a
--- /dev/null
+++ b/autoscripts/postinst-wm-noman
@@ -0,0 +1,4 @@
+if [ "$1" = "configure" ]; then
+ update-alternatives --install /usr/bin/x-window-manager \
+ x-window-manager #WM# #PRIORITY#
+fi
diff --git a/autoscripts/postinst-xfonts b/autoscripts/postinst-xfonts
new file mode 100644
index 0000000..96390e4
--- /dev/null
+++ b/autoscripts/postinst-xfonts
@@ -0,0 +1,3 @@
+if which update-fonts-dir >/dev/null 2>&1; then
+ #CMDS#
+fi
diff --git a/autoscripts/postrm-debconf b/autoscripts/postrm-debconf
new file mode 100644
index 0000000..5a61724
--- /dev/null
+++ b/autoscripts/postrm-debconf
@@ -0,0 +1,4 @@
+if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
+ . /usr/share/debconf/confmodule
+ db_purge
+fi
diff --git a/autoscripts/postrm-icons b/autoscripts/postrm-icons
new file mode 100644
index 0000000..9e00f03
--- /dev/null
+++ b/autoscripts/postrm-icons
@@ -0,0 +1,3 @@
+if which update-icon-caches >/dev/null 2>&1 ; then
+ update-icon-caches #DIRLIST#
+fi
diff --git a/autoscripts/postrm-init b/autoscripts/postrm-init
new file mode 100644
index 0000000..6f5bb09
--- /dev/null
+++ b/autoscripts/postrm-init
@@ -0,0 +1,10 @@
+if [ "$1" = "purge" ] ; then
+ update-rc.d #SCRIPT# remove >/dev/null
+fi
+
+
+# In case this system is running systemd, we make systemd reload the unit files
+# to pick up changes.
+if [ -d /run/systemd/system ] ; then
+ systemctl --system daemon-reload >/dev/null || true
+fi
diff --git a/autoscripts/postrm-makeshlibs b/autoscripts/postrm-makeshlibs
new file mode 100644
index 0000000..96bf24e
--- /dev/null
+++ b/autoscripts/postrm-makeshlibs
@@ -0,0 +1,3 @@
+if [ "$1" = "remove" ]; then
+ ldconfig
+fi
diff --git a/autoscripts/postrm-menu b/autoscripts/postrm-menu
new file mode 100644
index 0000000..a180558
--- /dev/null
+++ b/autoscripts/postrm-menu
@@ -0,0 +1 @@
+if [ -x "`which update-menus 2>/dev/null`" ]; then update-menus ; fi
diff --git a/autoscripts/postrm-menu-method b/autoscripts/postrm-menu-method
new file mode 100644
index 0000000..ffa1e48
--- /dev/null
+++ b/autoscripts/postrm-menu-method
@@ -0,0 +1,3 @@
+inst=/etc/menu-methods/#PACKAGE#
+if [ "$1" = "remove" ] && [ -f "$inst" ]; then chmod a-x $inst ; fi
+if [ -x "`which update-menus 2>/dev/null`" ]; then update-menus ; fi
diff --git a/autoscripts/postrm-modules b/autoscripts/postrm-modules
new file mode 100644
index 0000000..c2577dd
--- /dev/null
+++ b/autoscripts/postrm-modules
@@ -0,0 +1,3 @@
+if [ -e /boot/System.map-#KVERS# ]; then
+ depmod -a -F /boot/System.map-#KVERS# #KVERS# || true
+fi
diff --git a/autoscripts/postrm-sgmlcatalog b/autoscripts/postrm-sgmlcatalog
new file mode 100644
index 0000000..f8278e6
--- /dev/null
+++ b/autoscripts/postrm-sgmlcatalog
@@ -0,0 +1,3 @@
+if [ "$1" = "purge" ]; then
+ rm -f #CENTRALCAT#.old
+fi
diff --git a/autoscripts/postrm-suid b/autoscripts/postrm-suid
new file mode 100644
index 0000000..a4cfecf
--- /dev/null
+++ b/autoscripts/postrm-suid
@@ -0,0 +1,4 @@
+if [ "$1" = remove ] && [ -e /etc/suid.conf ] && \
+ which suidunregister >/dev/null 2>&1; then
+ suidunregister -s #PACKAGE# /#FILE#
+fi
diff --git a/autoscripts/postrm-ucf b/autoscripts/postrm-ucf
new file mode 100644
index 0000000..da37572
--- /dev/null
+++ b/autoscripts/postrm-ucf
@@ -0,0 +1,12 @@
+if [ "$1" = "purge" ]; then
+ for ext in .ucf-new .ucf-old .ucf-dist ""; do
+ rm -f "#UCFDEST#$ext"
+ done
+
+ if [ -x "`which ucf 2>/dev/null`" ]; then
+ ucf --purge "#UCFDEST#"
+ fi
+ if [ -x "`which ucfr 2>/dev/null`" ]; then
+ ucfr --purge #PACKAGE# "#UCFDEST#"
+ fi
+fi
diff --git a/autoscripts/postrm-xfonts b/autoscripts/postrm-xfonts
new file mode 100644
index 0000000..cd476a3
--- /dev/null
+++ b/autoscripts/postrm-xfonts
@@ -0,0 +1,3 @@
+if [ -x "`which update-fonts-dir 2>/dev/null`" ]; then
+ #CMDS#
+fi
diff --git a/autoscripts/preinst-moveconffile b/autoscripts/preinst-moveconffile
new file mode 100644
index 0000000..619b4ce
--- /dev/null
+++ b/autoscripts/preinst-moveconffile
@@ -0,0 +1,9 @@
+if [ "$1" = install ] || [ "$1" = upgrade ]; then
+ if [ -e "#OLD#" ]; then
+ if [ "`md5sum \"#OLD#\" | sed -e \"s/ .*//\"`" = \
+ "`dpkg-query -W -f='${Conffiles}' #PACKAGE# | sed -n -e \"\\\\' #OLD# '{s/ obsolete$//;s/.* //p}\"`" ]
+ then
+ rm -f "#OLD#"
+ fi
+ fi
+fi
diff --git a/autoscripts/preinst-sgmlcatalog b/autoscripts/preinst-sgmlcatalog
new file mode 100644
index 0000000..96f0673
--- /dev/null
+++ b/autoscripts/preinst-sgmlcatalog
@@ -0,0 +1,8 @@
+if test -f #CENTRALCAT# -a "(" "$1" = "upgrade" -o "$1" = "install" -a -n "$2" ")" &&
+ ! dpkg-query -S #CENTRALCAT# >/dev/null 2>&1; then
+ # If the dpkg-query command returns non-zero, the central catalog is
+ # not owned by any package. This is due to an old behaviour of
+ # debhelper. Now that file becomes a conffile. In order to avoid a
+ # question during installation, we remove the old non-conffile.
+ mv #CENTRALCAT# #CENTRALCAT#.old
+fi
diff --git a/autoscripts/prerm-emacsen b/autoscripts/prerm-emacsen
new file mode 100644
index 0000000..8c3ca64
--- /dev/null
+++ b/autoscripts/prerm-emacsen
@@ -0,0 +1,3 @@
+if [ -x /usr/lib/emacsen-common/emacs-package-remove ] ; then
+ /usr/lib/emacsen-common/emacs-package-remove #PACKAGE#
+fi
diff --git a/autoscripts/prerm-init b/autoscripts/prerm-init
new file mode 100644
index 0000000..2a8aa4c
--- /dev/null
+++ b/autoscripts/prerm-init
@@ -0,0 +1,3 @@
+if [ -x "/etc/init.d/#SCRIPT#" ]; then
+ invoke-rc.d #SCRIPT# stop || #ERROR_HANDLER#
+fi
diff --git a/autoscripts/prerm-init-norestart b/autoscripts/prerm-init-norestart
new file mode 100644
index 0000000..cacde6e
--- /dev/null
+++ b/autoscripts/prerm-init-norestart
@@ -0,0 +1,3 @@
+if [ -x "/etc/init.d/#SCRIPT#" ] && [ "$1" = remove ]; then
+ invoke-rc.d #SCRIPT# stop || #ERROR_HANDLER#
+fi
diff --git a/autoscripts/prerm-python b/autoscripts/prerm-python
new file mode 100644
index 0000000..e6e779f
--- /dev/null
+++ b/autoscripts/prerm-python
@@ -0,0 +1,3 @@
+dpkg -L #PACKAGE# |
+ awk '$0~/\.py$/ {print $0"c\n" $0"o"}' |
+ xargs rm -f >&2
diff --git a/autoscripts/prerm-usrlocal b/autoscripts/prerm-usrlocal
new file mode 100644
index 0000000..baafc23
--- /dev/null
+++ b/autoscripts/prerm-usrlocal
@@ -0,0 +1,7 @@
+(
+ while read dir; do
+ rmdir "$dir" 2>/dev/null || true
+ done
+) << DATA
+#JUSTDIRS#
+DATA
diff --git a/autoscripts/prerm-wm b/autoscripts/prerm-wm
new file mode 100644
index 0000000..b97d627
--- /dev/null
+++ b/autoscripts/prerm-wm
@@ -0,0 +1,3 @@
+if [ "$1" = "remove" ]; then
+ update-alternatives --remove x-window-manager #WM#
+fi
diff --git a/debhelper.pod b/debhelper.pod
new file mode 100644
index 0000000..216360b
--- /dev/null
+++ b/debhelper.pod
@@ -0,0 +1,701 @@
+=head1 NAME
+
+debhelper - the debhelper tool suite
+
+=head1 SYNOPSIS
+
+B<dh_>I<*> [B<-v>] [B<-a>] [B<-i>] [B<-s>] [B<--no-act>] [B<-p>I<package>] [B<-N>I<package>] [B<-P>I<tmpdir>]
+
+=head1 DESCRIPTION
+
+Debhelper is used to help you build a Debian package. The philosophy behind
+debhelper is to provide a collection of small, simple, and easily
+understood tools that are used in F<debian/rules> to automate various common
+aspects of building a package. This means less work for you, the packager.
+It also, to some degree means that these tools can be changed if Debian
+policy changes, and packages that use them will require only a rebuild to
+comply with the new policy.
+
+A typical F<debian/rules> file that uses debhelper will call several debhelper
+commands in sequence, or use L<dh(1)> to automate this process. Examples of
+rules files that use debhelper are in F</usr/share/doc/debhelper/examples/>
+
+To create a new Debian package using debhelper, you can just copy one of
+the sample rules files and edit it by hand. Or you can try the B<dh-make>
+package, which contains a L<dh_make|dh_make(1)> command that partially
+automates the process. For a more gentle introduction, the B<maint-guide> Debian
+package contains a tutorial about making your first package using debhelper.
+
+=head1 DEBHELPER COMMANDS
+
+Here is the list of debhelper commands you can use. See their man
+pages for additional documentation.
+
+=over 4
+
+#LIST#
+
+=back
+
+=head2 Deprecated Commands
+
+A few debhelper commands are deprecated and should not be used.
+
+=over 4
+
+#LIST_DEPRECATED#
+
+=back
+
+=head2 Other Commands
+
+If a program's name starts with B<dh_>, and the program is not on the above
+lists, then it is not part of the debhelper package, but it should still
+work like the other programs described on this page.
+
+=head1 DEBHELPER CONFIG FILES
+
+Many debhelper commands make use of files in F<debian/> to control what they
+do. Besides the common F<debian/changelog> and F<debian/control>, which are
+in all packages, not just those using debhelper, some additional files can
+be used to configure the behavior of specific debhelper commands. These
+files are typically named debian/I<package>.foo (where I<package> of course,
+is replaced with the package that is being acted on).
+
+For example, B<dh_installdocs> uses files named F<debian/package.docs> to list
+the documentation files it will install. See the man pages of individual
+commands for details about the names and formats of the files they use.
+Generally, these files will list files to act on, one file per line. Some
+programs in debhelper use pairs of files and destinations or slightly more
+complicated formats.
+
+Note for the first (or only) binary package listed in
+F<debian/control>, debhelper will use F<debian/foo> when there's no
+F<debian/package.foo> file.
+
+In some rare cases, you may want to have different versions of these files
+for different architectures or OSes. If files named debian/I<package>.foo.I<ARCH>
+or debian/I<package>.foo.I<OS> exist, where I<ARCH> and I<OS> are the same as the
+output of "B<dpkg-architecture -qDEB_HOST_ARCH>" /
+"B<dpkg-architecture -qDEB_HOST_ARCH_OS>",
+then they will be used in preference to other, more general files.
+
+Mostly, these config files are used to specify lists of various types of
+files. Documentation or example files to install, files to move, and so on.
+When appropriate, in cases like these, you can use standard shell wildcard
+characters (B<?> and B<*> and B<[>I<..>B<]> character classes) in the files.
+You can also put comments in these files; lines beginning with B<#> are
+ignored.
+
+The syntax of these files is intentionally kept very simple to make them
+easy to read, understand, and modify. If you prefer power and complexity,
+you can make the file executable, and write a program that outputs
+whatever content is appropriate for a given situation. When you do so,
+the output is not further processed to expand wildcards or strip comments.
+
+=head1 SHARED DEBHELPER OPTIONS
+
+The following command line options are supported by all debhelper programs.
+
+=over 4
+
+=item B<-v>, B<--verbose>
+
+Verbose mode: show all commands that modify the package build directory.
+
+=item B<--no-act>
+
+Do not really do anything. If used with -v, the result is that the command
+will output what it would have done.
+
+=item B<-a>, B<--arch>
+
+Act on architecture dependent packages that should be built for the
+build architecture.
+
+=item B<-i>, B<--indep>
+
+Act on all architecture independent packages.
+
+=item B<-p>I<package>, B<--package=>I<package>
+
+Act on the package named I<package>. This option may be specified multiple
+times to make debhelper operate on a given set of packages.
+
+=item B<-s>, B<--same-arch>
+
+This used to be a smarter version of the B<-a> flag, but the B<-a> flag is now
+equally smart.
+
+=item B<-N>I<package>, B<--no-package=>I<package>
+
+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.
+
+=item B<--remaining-packages>
+
+Do not act on the packages which have already been acted on by this debhelper
+command earlier (i.e. if the command is present in the package debhelper log).
+For example, if you need to call the command with special options only for a
+couple of binary packages, pass this option to the last call of the command to
+process the rest of packages with default settings.
+
+=item B<--ignore=>I<file>
+
+Ignore the specified file. This can be used if F<debian/> contains a debhelper
+config file that a debhelper command should not act on. Note that
+F<debian/compat>, F<debian/control>, and F<debian/changelog> can't be ignored, but
+then, there should never be a reason to ignore those files.
+
+For example, if upstream ships a F<debian/init> that you don't want
+B<dh_installinit> to install, use B<--ignore=debian/init>
+
+=item B<-P>I<tmpdir>, B<--tmpdir=>I<tmpdir>
+
+Use I<tmpdir> for package build directory. The default is debian/I<package>
+
+=item B<--mainpackage=>I<package>
+
+This little-used option changes the package which debhelper considers the
+"main package", that is, the first one listed in F<debian/control>, and the
+one for which F<debian/foo> files can be used instead of the usual
+F<debian/package.foo> files.
+
+=item B<-O=>I<option>|I<bundle>
+
+This is used by L<dh(1)> when passing user-specified options to all the
+commands it runs. If the command supports the specified option or option
+bundle, it will take effect. If the command does not support the option (or
+any part of an option bundle), it will be ignored.
+
+=back
+
+=head1 COMMON DEBHELPER OPTIONS
+
+The following command line options are supported by some debhelper programs.
+See the man page of each program for a complete explanation of what each
+option does.
+
+=over 4
+
+=item B<-n>
+
+Do not modify F<postinst>, F<postrm>, etc. scripts.
+
+=item B<-X>I<item>, B<--exclude=>I<item>
+
+Exclude an item from processing. This option may be used multiple times,
+to exclude more than one thing. The \fIitem\fR is typically part of a
+filename, and any file containing the specified text will be excluded.
+
+=item B<-A>, B<--all>
+
+Makes files or other items that are specified on the command line take effect
+in ALL packages acted on, not just the first.
+
+=back
+
+=head1 BUILD SYSTEM OPTIONS
+
+The following command line options are supported by all of the B<dh_auto_>I<*>
+debhelper programs. These programs support a variety of build systems,
+and normally heuristically determine which to use, and how to use them.
+You can use these command line options to override the default behavior.
+Typically these are passed to L<dh(1)>, which then passes them to all the
+B<dh_auto_>I<*> programs.
+
+=over 4
+
+=item B<-S>I<buildsystem>, B<--buildsystem=>I<buildsystem>
+
+Force use of the specified I<buildsystem>, instead of trying to auto-select
+one which might be applicable for the package.
+
+=item B<-D>I<directory>, B<--sourcedirectory=>I<directory>
+
+Assume that the original package source tree is at the specified
+I<directory> rather than the top level directory of the Debian
+source package tree.
+
+=item B<-B>[I<directory>], B<--builddirectory=>[I<directory>]
+
+Enable out of source building and use the specified I<directory> as the build
+directory. If I<directory> parameter is omitted, a default build directory
+will chosen.
+
+If this option is not specified, building will be done in source by default
+unless the build system requires or prefers out of source tree building.
+In such a case, the default build directory will be used even if
+B<--builddirectory> is not specified.
+
+If the build system prefers out of source tree building but still
+allows in source building, the latter can be re-enabled by passing a build
+directory path that is the same as the source directory path.
+
+=item B<--parallel>
+
+Enable parallel builds if underlying build system supports them.
+The number of parallel jobs is controlled by the
+B<DEB_BUILD_OPTIONS> environment variable (L<Debian Policy, section 4.9.1>) at
+build time. It might also be subject to a build system specific limit.
+
+If this option is not specified, debhelper currently defaults to not
+allowing parallel package builds.
+
+=item B<--max-parallel=>I<maximum>
+
+This option implies B<--parallel> and allows further limiting the number of
+jobs that can be used in a parallel build. If the package build is known to
+only work with certain levels of concurrency, you can set this to the maximum
+level that is known to work, or that you wish to support.
+
+=item B<--list>, B<-l>
+
+List all build systems supported by debhelper on this system. The list
+includes both default and third party build systems (marked as such). Also
+shows which build system would be automatically selected, or which one
+is manually specified with the B<--buildsystem> option.
+
+=back
+
+=head1 COMPATIBILITY LEVELS
+
+From time to time, major non-backwards-compatible changes need to be made
+to debhelper, to keep it clean and well-designed as needs change and its
+author gains more experience. To prevent such major changes from breaking
+existing packages, the concept of debhelper compatibility levels was
+introduced. You tell debhelper which compatibility level it should use, and
+it modifies its behavior in various ways.
+
+Tell debhelper what compatibility level to use by writing a number to
+F<debian/compat>. For example, to turn on v9 mode:
+
+ % echo 9 > debian/compat
+
+Your package will also need a versioned build dependency on a version of
+debhelper equal to (or greater than) the compatibility level your package
+uses. So for compatibility level 9, ensure debian/control has:
+
+ Build-Depends: debhelper (>= 9)
+
+Unless otherwise indicated, all debhelper documentation assumes that you
+are using the most recent compatibility level, and in most cases does not
+indicate if the behavior is different in an earlier compatibility level, so
+if you are not using the most recent compatibility level, you're advised to
+read below for notes about what is different in earlier compatibility
+levels.
+
+These are the available compatibility levels:
+
+=over 4
+
+=item v1
+
+This is the original debhelper compatibility level, and so it is the default
+one. In this mode, debhelper will use F<debian/tmp> as the package tree
+directory for the first binary package listed in the control file, while using
+debian/I<package> for all other packages listed in the F<control> file.
+
+This mode is deprecated.
+
+=item v2
+
+In this mode, debhelper will consistently use debian/I<package>
+as the package tree directory for every package that is built.
+
+This mode is deprecated.
+
+=item v3
+
+This mode works like v2, with the following additions:
+
+=over 8
+
+=item -
+
+Debhelper config files support globbing via B<*> and B<?>, when appropriate. To
+turn this off and use those characters raw, just prefix with a backslash.
+
+=item -
+
+B<dh_makeshlibs> makes the F<postinst> and F<postrm> scripts call B<ldconfig>.
+
+=item -
+
+Every file in F<etc/> is automatically flagged as a conffile by B<dh_installdeb>.
+
+=back
+
+This mode is deprecated.
+
+=item v4
+
+Changes from v3 are:
+
+=over 8
+
+=item -
+
+B<dh_makeshlibs -V> will not include the Debian part of the version number in
+the generated dependency line in the shlibs file.
+
+=item -
+
+You are encouraged to put the new B<${misc:Depends}> into F<debian/control> to
+supplement the B<${shlibs:Depends}> field.
+
+=item -
+
+B<dh_fixperms> will make all files in F<bin/> directories and in F<etc/init.d>
+executable.
+
+=item -
+
+B<dh_link> will correct existing links to conform with policy.
+
+=back
+
+This mode is deprecated.
+
+=item v5
+
+Changes from v4 are:
+
+=over 8
+
+=item -
+
+Comments are ignored in debhelper config files.
+
+=item -
+
+B<dh_strip --dbg-package> now specifies the name of a package to put debugging
+symbols in, not the packages to take the symbols from.
+
+=item -
+
+B<dh_installdocs> skips installing empty files.
+
+=item -
+
+B<dh_install> errors out if wildcards expand to nothing.
+
+=back
+
+=item v6
+
+Changes from v5 are:
+
+=over 8
+
+=item -
+
+Commands that generate maintainer script fragments will order the
+fragments in reverse order for the F<prerm> and F<postrm> scripts.
+
+=item -
+
+B<dh_installwm> will install a slave manpage link for F<x-window-manager.1.gz>,
+if it sees the man page in F<usr/share/man/man1> in the package build
+directory.
+
+=item -
+
+B<dh_builddeb> did not previously delete everything matching
+B<DH_ALWAYS_EXCLUDE>, if it was set to a list of things to exclude, such as
+B<CVS:.svn:.git>. Now it does.
+
+=item -
+
+B<dh_installman> allows overwriting existing man pages in the package build
+directory. In previous compatibility levels it silently refuses to do this.
+
+=back
+
+=item v7
+
+Changes from v6 are:
+
+=over 8
+
+=item -
+
+B<dh_install>, will fall back to looking for files in F<debian/tmp> if it doesn't
+find them in the current directory (or wherever you tell it look using
+B<--sourcedir>). This allows B<dh_install> to interoperate with B<dh_auto_install>,
+which installs to F<debian/tmp>, without needing any special parameters.
+
+=item -
+
+B<dh_clean> will read F<debian/clean> and delete files listed there.
+
+=item -
+
+B<dh_clean> will delete toplevel F<*-stamp> files.
+
+=item -
+
+B<dh_installchangelogs> will guess at what file is the upstream changelog if
+none is specified.
+
+=back
+
+=item v8
+
+Changes from v7 are:
+
+=over 8
+
+=item -
+
+Commands will fail rather than warning when they are passed unknown options.
+
+=item -
+
+B<dh_makeshlibs> will run B<dpkg-gensymbols> on all shared libraries that it
+generates shlibs files for. So B<-X> can be used to exclude libraries.
+Also, libraries in unusual locations that B<dpkg-gensymbols> would not
+have processed before will be passed to it, a behavior change that
+can cause some packages to fail to build.
+
+=item -
+
+B<dh> requires the sequence to run be specified as the first parameter, and
+any switches come after it. Ie, use "B<dh $@ --foo>", not "B<dh --foo $@>".
+
+=item -
+
+B<dh_auto_>I<*> prefer to use Perl's B<Module::Build> in preference to F<Makefile.PL>.
+
+=back
+
+=item v9
+
+This is the recommended mode of operation.
+
+Changes from v8 are:
+
+=over 8
+
+=item -
+
+Multiarch support. In particular, B<dh_auto_configure> passes
+multiarch directories to autoconf in --libdir and --libexecdir.
+
+=item -
+
+dh is aware of the usual dependencies between targets in debian/rules.
+So, "dh binary" will run any build, build-arch, build-indep, install,
+etc targets that exist in the rules file. There's no need to define an
+explicit binary target with explicit dependencies on the other targets.
+
+=item -
+
+B<dh_strip> compresses debugging symbol files to reduce the installed
+size of -dbg packages.
+
+=item -
+
+B<dh_auto_configure> does not include the source package name
+in --libexecdir when using autoconf.
+
+=item -
+
+B<dh> does not default to enabling --with=python-support
+
+=item -
+
+All of the B<dh_auto_>I<*> debhelper programs and B<dh> set
+environment variables listed by B<dpkg-buildflags>, unless
+they are already set.
+
+=item -
+
+B<dh_auto_configure> passes B<dpkg-buildflags> CFLAGS, CPPFLAGS, and
+LDFLAGS to perl F<Makefile.PL> and F<Build.PL>
+
+=item -
+
+B<dh_strip> puts separated debug symbols in a location based on their
+build-id.
+
+=item -
+
+Executable debhelper config files are run and their output used as the
+configuration.
+
+=back
+
+=item v10
+
+This compatibility level is still open for development; use with caution.
+
+Changes from v9 are:
+
+=item -
+
+B<dh_installinit> will no longer install a file named debian/I<package>
+as an init script.
+
+=over 8
+
+=item -
+
+B<dh> no longer creates the package build directory when skipping
+running debhelper commands. This will not affect packages that only build
+with debhelper commands, but it may expose bugs in commands not included in
+debhelper.
+
+=back
+
+=back
+
+=head1 NOTES
+
+=head2 Multiple binary package support
+
+If your source package generates more than one binary package, debhelper
+programs will default to acting on all binary packages when run. If your
+source package happens to generate one architecture dependent package, and
+another architecture independent package, this is not the correct behavior,
+because you need to generate the architecture dependent packages in the
+binary-arch F<debian/rules> target, and the architecture independent packages
+in the binary-indep F<debian/rules> target.
+
+To facilitate this, as well as give you more control over which packages
+are acted on by debhelper programs, all debhelper programs accept the
+B<-a>, B<-i>, B<-p>, and B<-s> parameters. These parameters are cumulative.
+If none are given, debhelper programs default to acting on all packages listed
+in the control file.
+
+=head2 Automatic generation of Debian install scripts
+
+Some debhelper commands will automatically generate parts of Debian
+maintainer scripts. If you want these automatically generated things
+included in your existing Debian maintainer scripts, then you need to add
+B<#DEBHELPER#> to your scripts, in the place the code should be added.
+B<#DEBHELPER#> will be replaced by any auto-generated code when you run
+B<dh_installdeb>.
+
+If a script does not exist at all and debhelper needs to add something to
+it, then debhelper will create the complete script.
+
+All debhelper commands that automatically generate code in this way let it
+be disabled by the -n parameter (see above).
+
+Note that the inserted code will be shell code, so you cannot directly use
+it in a Perl script. If you would like to embed it into a Perl script, here
+is one way to do that (note that I made sure that $1, $2, etc are set with
+the set command):
+
+ my $temp="set -e\nset -- @ARGV\n" . << 'EOF';
+ #DEBHELPER#
+ EOF
+ system ($temp) / 256 == 0
+ or die "Problem with debhelper scripts: $!";
+
+=head2 Automatic generation of miscellaneous dependencies.
+
+Some debhelper commands may make the generated package need to depend on
+some other packages. For example, if you use L<dh_installdebconf(1)>, your
+package will generally need to depend on debconf. Or if you use
+L<dh_installxfonts(1)>, your package will generally need to depend on a
+particular version of xutils. Keeping track of these miscellaneous
+dependencies can be annoying since they are dependent on how debhelper does
+things, so debhelper offers a way to automate it.
+
+All commands of this type, besides documenting what dependencies may be
+needed on their man pages, will automatically generate a substvar called
+B<${misc:Depends}>. If you put that token into your F<debian/control> file, it
+will be expanded to the dependencies debhelper figures you need.
+
+This is entirely independent of the standard B<${shlibs:Depends}> generated by
+L<dh_makeshlibs(1)>, and the B<${perl:Depends}> generated by L<dh_perl(1)>.
+You can choose not to use any of these, if debhelper's guesses don't match
+reality.
+
+=head2 Package build directories
+
+By default, all debhelper programs assume that the temporary directory used
+for assembling the tree of files in a package is debian/I<package>.
+
+Sometimes, you might want to use some other temporary directory. This is
+supported by the B<-P> flag. For example, "B<dh_installdocs -Pdebian/tmp>", will
+use B<debian/tmp> as the temporary directory. Note that if you use B<-P>, the
+debhelper programs can only be acting on a single package at a time. So if
+you have a package that builds many binary packages, you will need to also
+use the B<-p> flag to specify which binary package the debhelper program will
+act on.
+
+=head2 udebs
+
+Debhelper includes support for udebs. To create a udeb with debhelper,
+add "B<Package-Type: udeb>" to the package's stanza in F<debian/control>.
+Debhelper will try to create udebs that comply with debian-installer
+policy, by making the generated package files end in F<.udeb>, not
+installing any documentation into a udeb, skipping over
+F<preinst>, F<postrm>, F<prerm>, and F<config> scripts, etc.
+
+=head1 ENVIRONMENT
+
+=over 4
+
+=item B<DH_VERBOSE>
+
+Set to B<1> to enable verbose mode. Debhelper will output every command it runs
+that modifies files on the build system.
+
+=item B<DH_COMPAT>
+
+Temporarily specifies what compatibility level debhelper should run at,
+overriding any value in F<debian/compat>.
+
+=item B<DH_NO_ACT>
+
+Set to B<1> to enable no-act mode.
+
+=item B<DH_OPTIONS>
+
+Anything in this variable will be prepended to the command line arguments
+of all debhelper commands.
+
+When using L<dh(1)>, it can be passed options that will be passed on to each
+debhelper command, which is generally better than using DH_OPTIONS.
+
+=item B<DH_ALWAYS_EXCLUDE>
+
+If set, this adds the value the variable is set to to the B<-X> options of all
+commands that support the B<-X> option. Moreover, B<dh_builddeb> will B<rm -rf>
+anything that matches the value in your package build tree.
+
+This can be useful if you are doing a build from a CVS source tree, in
+which case setting B<DH_ALWAYS_EXCLUDE=CVS> will prevent any CVS directories
+from sneaking into the package you build. Or, if a package has a source
+tarball that (unwisely) includes CVS directories, you might want to export
+B<DH_ALWAYS_EXCLUDE=CVS> in F<debian/rules>, to make it take effect wherever
+your package is built.
+
+Multiple things to exclude can be separated with colons, as in
+B<DH_ALWAYS_EXCLUDE=CVS:.svn>
+
+=back
+
+=head1 SEE ALSO
+
+=over 4
+
+=item F</usr/share/doc/debhelper/examples/>
+
+A set of example F<debian/rules> files that use debhelper.
+
+=item L<http://kitenet.net/~joey/code/debhelper/>
+
+Debhelper web site.
+
+=back
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..948e2f5
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,7410 @@
+debhelper (9.20130921) unstable; urgency=low
+
+ * dh: Call dh_installxfonts after dh_link, so that it will
+ notice fonts installed via symlinks. Closes: #721264
+ * Fix FTBFS with perl 5.18. Closes: #722501
+ * dh_installchangelogs: Add changelog.md to the list of common
+ changelog filenames.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 21 Sep 2013 13:16:34 -0400
+
+debhelper (9.20130720) unstable; urgency=low
+
+ * dh_python: Removed this deprecated and unused command.
+ Closes: #717374
+ (Thanks, Luca Falavigna)
+ * Type fixes. Closes: #719216
+ * dh_installinit: Fix a longstanding accidental behavior that caused
+ a file named debian/package to be installed as the init script.
+ Only fixed in v10 since packages might depend on this behavior.
+ Closes: #719359
+ * dh_install, dh_installdocs, dh_clean: Fix uses of find -exec
+ which cause it to ignore exit status of the commands run.
+ Closes: 719598
+ * makefile buildsystem: Tighten heuristic to detect if makefile target
+ exists. An error message that some other target does not exist just means
+ the makefile spaghetti has problems later on when run with -n,
+ but not that the called target didn't exist. Closes: #718121
+
+ -- Joey Hess <joeyh@debian.org> Tue, 20 Aug 2013 12:46:25 -0400
+
+debhelper (9.20130630) unstable; urgency=low
+
+ * perl_build: Use -- long option names, for compatibility with
+ Module::Build::Tiny. Closes: #714544
+ (Thanks, gregor herrmann)
+
+ -- Joey Hess <joeyh@debian.org> Sun, 30 Jun 2013 14:20:51 -0400
+
+debhelper (9.20130626) unstable; urgency=low
+
+ * dh_strip: Run readelf in C locale. Closes: #714187
+
+ -- Joey Hess <joeyh@debian.org> Wed, 26 Jun 2013 13:37:03 -0400
+
+debhelper (9.20130624) unstable; urgency=low
+
+ * dh_installinit: Use absolute path for systemd tempfiles,
+ for compatibility with wheezy's systemd. Closes: #712727
+ * makefile buildsystem: Added heuristic to catch false positive in
+ makefile target detection code. Closes: #713257
+ Nasty make ... why won't it tell us what's in its pocketses?
+
+ -- Joey Hess <joeyh@debian.org> Mon, 24 Jun 2013 19:28:18 -0400
+
+debhelper (9.20130605) unstable; urgency=low
+
+ * dh_installchangelogs: Fix bug preventing automatic installation of
+ upstream changelog. Closes: #711131
+
+ -- Joey Hess <joeyh@debian.org> Wed, 05 Jun 2013 12:28:51 -0400
+
+debhelper (9.20130604) unstable; urgency=low
+
+ * dh_installchangelogs: No longer automatically converts html changelogs.
+ A plain text version can be provided as a second parameter, or it will
+ generate a file with a pointer to the html changelog if not.
+ html2text's reign of terror has ended. Closes: #562874
+ * Allow building debhelper with USE_NLS=no to not require po4a to build.
+ Closes: #709557
+ * Correct broken patch for #706923.
+ Closes: #707481
+ * dh_installinit: Add appropriately versioned file-rc as an alternate
+ when adding misc:Depends for an invoke-rc.d that supports upstart
+ jobs. Closes: #709482
+
+ -- Joey Hess <joeyh@debian.org> Tue, 04 Jun 2013 11:27:29 -0400
+
+debhelper (9.20130518) unstable; urgency=low
+
+ * dh_installchangelogs: Write the changelog entry used for a binNMU,
+ as flagged by binary-only=yes to a separate file, in order to work
+ around infelicities in dpkg's multiarch support. Closes: #708218
+ (Thanks, Ansgar Burchardt)
+ * dh_installinit: Add versioned dependency on sysv-rc
+ when shipping upstart jobs. Closes: #708720
+
+ -- Joey Hess <joeyh@debian.org> Sat, 18 May 2013 10:49:09 -0400
+
+debhelper (9.20130516) unstable; urgency=low
+
+ * Revert unsetting INSTALL_BASE. Closes: #708452 Reopens: #705141
+
+ -- Joey Hess <joeyh@debian.org> Thu, 16 May 2013 18:29:46 -0400
+
+debhelper (9.20130509) unstable; urgency=low
+
+ * dh_installinit: Remove obsolete systemd-tempfiles hack in postinst
+ autoscript. Closes: #707159
+ * dh_installinfo: Stop inserting dependencies for partial upgrades
+ from lenny to squeeze. Closes: #707218
+ * dh_compress, dh_perl: Avoid failing if the package build directory does
+ not exist. (Audited all the rest.)
+ * dh: As a workaround for anything not in debhelper that may rely
+ on debhelper command that is now skipped creating the package build
+ directory as a side effect, the directory is created when a command
+ is skipped. This workaround is disabled in compat level 10.
+ Closes: #707336
+ * dh_auto_install: Create package build directory for those packages
+ whose makefile falls over otherwise. Closes: #707336
+
+ -- Joey Hess <joeyh@debian.org> Thu, 09 May 2013 10:34:56 -0400
+
+debhelper (9.20130507) unstable; urgency=low
+
+ * dh: Skips running commands that it can tell will do nothing.
+ Closes: #560423
+ (Commands that can be skipped are determined by the presence of
+ PROMISE directives within commands that provide a high-level
+ description of the command.)
+ * perl_makemaker: Unset INSTALL_BASE in case the user has it set.
+ Closes: #705141
+ * dh_installdeb: Drop pre-dependency on dpkg for dpkg-maintscript-helper.
+ Closes: #703264
+ * makefile buildsystem: Pass any parameters specified after -- when
+ running make -n to test for the existance of targets.
+ In some makefiles, the parameters may be necessary to enable a target.
+ Closes: #706923
+ * Revert python2.X-minimal fix, because it was buggy.
+ Closes: #707111 (Reopens #683557)
+
+ -- Joey Hess <joeyh@debian.org> Tue, 07 May 2013 13:20:48 -0400
+
+debhelper (9.20130504) unstable; urgency=low
+
+ * dh_shlibdeps: Warn if -V flag is passed, to avoid it accidentially being
+ used here rather than in dh_makeshlibs. Closes: #680339
+ * dh_lintian: Source overrides doc improvement. Closes: #683941
+ * dh_installmime: No longer makes maintainer scripts run update-mime and
+ update-mime-database, that is now handled by triggers. Closes: #684689
+ Thanks, Charles Plessy
+ * python distutils buildsystem: Propagate failure of pyversions.
+ Closes: #683551 Thanks, Clint Byrum
+ * python distutils buildsystem: When checking if a version of python is
+ installed, don't trust the presense of the executable, as
+ a python2.X-minimal package may provide it while not having
+ distutils installed. Closes: #683557, #690378
+ * dh_icons: Improve documentation. Closes: #684895
+ * Improve -X documentation. Closes: #686696
+ * Support installing multiple doc-base files which use the same doc-id.
+ Closes: #525821
+ * dh_installdocs: Support having the same document id in different binary
+ packages built from the same source.
+ Closes: #525821 Thanks, Don Armstrong
+ * dh_installdeb: Avoid unnecessary is_udeb tests. Closes: #691398
+ * Updated German man page translation. Closes: #691557, #706314
+ * dh_installinit: Support systemd.
+ Closes: #690399 Thanks, Michael Stapelberg
+ * Updated French man page translation. Closes: #692208
+ * dh_icons: Reword description. Closes: #693100
+ * Avoid find -perm +mode breakage caused by findutils 4.5.11,
+ by instead using -perm /mode. Closes: #700200
+ * cmake: Configure with -DCMAKE_BUILD_TYPE=RelWithDebInfo
+ Closes: #701233
+ * dh_auto_test: Avoid doing anything when cross-compiling. Closes: #703262
+ * dh_testdir: Fix error message. Closes: #703515
+
+ -- Joey Hess <joeyh@debian.org> Sat, 04 May 2013 23:32:27 -0400
+
+debhelper (9.20120909) unstable; urgency=low
+
+ * autoscript() can now be passed a perl sub to run to s/// lines of
+ the script, which avoids problems with using sed, including potentially
+ building too long a sed command-line. This will become the recommended
+ interface in the future; for now it can be used by specific commands
+ such as dh_installxmlcatalogs that encounter the problem.
+ Closes: #665296 Thanks, Marcin Owsiany
+ * Updated Spanish man page translation. Closes: #686291
+ * Updated German man page translation. Closes: #685538
+ * Updated French man page translation. Closes: #685560
+
+ -- Joey Hess <joeyh@debian.org> Mon, 10 Sep 2012 12:54:06 -0400
+
+debhelper (9.20120830) unstable; urgency=low
+
+ * dh_installcatalogs: Adjust catalog conffile conversion to avoid
+ dpkg conffile prompt when upgrading from a removed package.
+ Closes: #681194
+
+ -- Joey Hess <joeyh@debian.org> Thu, 30 Aug 2012 11:04:10 -0400
+
+debhelper (9.20120608) unstable; urgency=low
+
+ * dh: When there's an -indep override target without -arch, or vice versa,
+ avoid acting on packages covered by the override target when running
+ the command for packages not covered by it. Closes: #676462
+
+ -- Joey Hess <joeyh@debian.org> Fri, 08 Jun 2012 13:15:48 -0400
+
+debhelper (9.20120528) unstable; urgency=low
+
+ * dh_installcatalogs: Turn /etc/sgml/$package.cat into conffiles
+ and introduce dependency on trigger-based sgml-base. Closes: #477751
+ Thanks, Helmut Grohne
+
+ -- Joey Hess <joeyh@debian.org> Mon, 28 May 2012 13:40:26 -0400
+
+debhelper (9.20120523) unstable; urgency=low
+
+ * Spanish translation update. Closes: #673629 Thanks, Omar Campagne
+ * Set Multi-Arch: foreign. Closes: #674193
+
+ -- Joey Hess <joeyh@debian.org> Wed, 23 May 2012 14:55:48 -0400
+
+debhelper (9.20120518) unstable; urgency=low
+
+ * Fix versioned dependency on dpkg for xz options. Closes: #672895
+ * dh_link: Doc improvement. Closes: #672988
+
+ -- Joey Hess <joeyh@debian.org> Fri, 18 May 2012 11:05:03 -0400
+
+debhelper (9.20120513) unstable; urgency=low
+
+ * Improve -v logging. Closes: #672448
+ * dh_builddeb: Build udebs with xz compression, level 1, extreme strategy.
+ This has been chosen to not need any more memory or cpu when uncompressing,
+ while yeilding the best compressions for udebs. Thanks, Philipp Kern.
+ * Depend on a new enough dpkg for above features. Backporters will need
+ to revert these changes.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 13 May 2012 13:09:42 -0400
+
+debhelper (9.20120509) unstable; urgency=low
+
+ * dh_installman: Recognize sections from mdoc .Dt entries. Closes: #670210
+ Thanks, Guillem Jover
+ * Updated German man page translation. Closes: #671598
+ * dh_install: Reorder documentation for clarity. Closes: #672109
+
+ -- Joey Hess <joeyh@debian.org> Wed, 09 May 2012 12:59:15 -0400
+
+debhelper (9.20120419) unstable; urgency=low
+
+ * Fix compat level checking for cmake. Closes: #669181
+
+ -- Joey Hess <joeyh@debian.org> Tue, 17 Apr 2012 19:33:35 -0400
+
+debhelper (9.20120418) unstable; urgency=low
+
+ * cmake: Only pass CPPFLAGS in CFLAGS in v9.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 17 Apr 2012 16:54:39 -0400
+
+debhelper (9.20120417) unstable; urgency=low
+
+ * cmake: Pass CPPFLAGS in CFLAGS. Closes: #668813
+ Thanks, Simon Ruderich for the patch and for verifying no affected
+ package is broken by this change.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 17 Apr 2012 09:10:29 -0400
+
+debhelper (9.20120410) unstable; urgency=low
+
+ [ Joey Hess ]
+ * Fix a typo. Closes: #665891
+ * Conflict with too old automake for AM_UPDATE_INFO_DIR=no. Closes: #666901
+ * dh_md5sums: Don't skip DEBIAN directories other than the control files
+ one. Closes: #668276
+
+ [ Steve Langasek ]
+ * dh_installinit: rework upstart handling to comply with new policy
+ proposal; packages will ship both an init script and an upstart job,
+ instead of just an upstart job and a symlink to a compat wrapper.
+ Closes: #577040
+
+ -- Joey Hess <joeyh@debian.org> Tue, 10 Apr 2012 12:51:15 -0400
+
+debhelper (9.20120322) unstable; urgency=low
+
+ * Revert avoid expanding shell metacharacters in sed call in autoscript().
+ It breaks dh_usrlocal and must be considered part of its interface.
+ Added to interface documentation.
+ Closes: #665263
+
+ -- Joey Hess <joeyh@debian.org> Thu, 22 Mar 2012 17:37:56 -0400
+
+debhelper (9.20120312) unstable; urgency=low
+
+ * Also include CFLAGS in ld line for perl. Closes: #662666
+
+ -- Joey Hess <joeyh@debian.org> Tue, 13 Mar 2012 14:27:06 -0400
+
+debhelper (9.20120311) unstable; urgency=low
+
+ * dh_auto_install: Set AM_UPDATE_INFO_DIR=no to avoid automake
+ generating an info dir file. Closes: #634741
+ * dh_install: Man page clarification. Closes: #659635
+ * Avoid expanding shell metacharacters in sed call in autoscript().
+ Closes: #660794
+ * dh_auto_configure: Pass CPPFLAGS and LDFLAGS to Makefile.PL and Build.PL,
+ in compat level v9. Closes: #662666
+ Thanks, Dominic Hargreaves for the patch.
+ Thanks, Alessandro Ghedini, Niko Tyni, and Dominic Hargreaves for
+ testing all relevant packages to verify the safety of this late
+ change to v9.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 11 Mar 2012 18:28:33 -0400
+
+debhelper (9.20120115) unstable; urgency=low
+
+ * Finalized v9 mode, which is the new recommended default.
+ (But continuing to use v8 is also fine.)
+ * It is now deprecated for a package to not specify a compatibility
+ level in debian/compat. Debhelper now warns if this is not done,
+ and packages without a debian/compat will eventually FTBFS.
+ * dh: --without foo,bar now supported.
+ * Updated German man page translation. Closes: #653360
+
+ -- Joey Hess <joeyh@debian.org> Sun, 15 Jan 2012 13:59:49 -0400
+
+debhelper (8.9.14) unstable; urgency=low
+
+ * Typo. Closes: #653006
+ * Typo. Closes: #653339
+
+ -- Joey Hess <joeyh@debian.org> Tue, 27 Dec 2011 11:53:44 -0400
+
+debhelper (8.9.13) unstable; urgency=low
+
+ * Pass CPPFLAGS to qmake. Closes: #646129 Thanks, Felix Geyert
+ * dh_strip: Use build-id in /usr/lib/debug in v9.
+ Closes: #642158 Thanks, Jakub Wilk
+ * Spanish translation update. Closes: #636245 Thanks, Omar Campagne
+ * Only enable executable config files in v9. The quality of file permissions
+ in debian/ directories turns out to be atrocious; who knew?
+
+ -- Joey Hess <joeyh@debian.org> Fri, 09 Dec 2011 13:53:38 -0400
+
+debhelper (8.9.12) unstable; urgency=low
+
+ * Debhelper config files may be made executable programs that output the
+ desired configuration. No further changes are planned to the config file
+ format; those needing powerful syntaxes may now use a programming language
+ of their choice. (Be careful aiming that at your feet.)
+ Closes: #235302, #372310, #235302, #614731,
+ Closes: #438601, #477625, #632860, #642129
+ * Added German translation of man pages, done by Chris Leick. Closes: #651221
+ * Typo fixes. Closes: #651224 Thanks, Chris Leick
+
+ -- Joey Hess <joeyh@debian.org> Wed, 07 Dec 2011 15:09:50 -0400
+
+debhelper (8.9.11) unstable; urgency=low
+
+ * Fix broken option passing to objcopy. Closes: #649044
+
+ -- Joey Hess <joeyh@debian.org> Thu, 17 Nov 2011 00:15:34 -0400
+
+debhelper (8.9.10) unstable; urgency=low
+
+ * dh_strip: In v9, pass --compress-debug-sections to objcopy.
+ Needs a new enough binutils and gdb; debhelper backport
+ may need to disable this.
+ Thanks, Aurelien Jarno and Bastien ROUCARIES. Closes: #631985
+ * dh: Ensure -a and -i are passed when running override_dh_command-arch
+ and override_dh_command-indep targets. This is needed when the binary
+ target is run, rather than binary-arch/binary-indep. Closes: #648901
+
+ -- Joey Hess <joeyh@debian.org> Wed, 16 Nov 2011 11:54:59 -0400
+
+debhelper (8.9.9) unstable; urgency=low
+
+ * dh_auto_build: Use target architecture (not host architecture)
+ for build directory name. Closes: #644553 Thanks, Tom Hughes
+ * dh: Add dh_auto_configure parameter example. Closes: #645335
+
+ -- Joey Hess <joeyh@debian.org> Fri, 04 Nov 2011 17:01:58 -0400
+
+debhelper (8.9.8) unstable; urgency=low
+
+ * dh_fixperms: Operate on .ali files throughout /usr/lib, including
+ multiarch dirs. Closes: #641279
+ * dh: Avoid compat deprecation warning before option parsing.
+ Closes: #641361
+ * Clarify description of dh_auto_* -- params. Closes: #642786
+ * Mention in debhelper(7) that buildsystem options are typically passed
+ to dh. Closes: #643069
+ * perl_makemaker: In v9, pass CFLAGS to Makefile.PL and Build.Pl
+ Closes: #643702, #497653 Thanks, Steve Langasek, gregor herrmann.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 29 Sep 2011 15:41:16 -0400
+
+debhelper (8.9.7) unstable; urgency=low
+
+ * dh: Now you can use override_dh_command-arch and override_dh_command-indep
+ to run different overrides when building arch and indep packages. This
+ allows for a much simplified form of rules file in this situation, where
+ build-arch/indep and binary-arch/indep targets do not need to be manually
+ specified. See man page for examples. Closes: #640965
+ .
+ Note that if a rules file has say, override_dh_fixperms-arch,
+ but no corresponding override_dh_fixperms-indep, then the unoverridden
+ dh_fixperms will be run on the indep packages.
+ .
+ Note that the old override_dh_command takes precidence over the new
+ overrides, because mixing the two types of overrides would have been
+ too complicated. In particular, it's difficult to ensure an
+ old override target will work if it's sometimes constrained to only
+ acting on half the packages it would normally run on. This would be
+ a source of subtle bugs, so is avoided.
+ * dh: Don't bother running dh_shlibdebs, dh_makeshlibs, or dh_strip
+ in the binary target when all packages being acted on are indep.
+ * dh: Avoid running install sequence a third time in v9 when the
+ rules file has explicit binary-indep and binary-arch targets.
+ Closes: #639341 Thanks, Yann Dirson for test case.
+ * debhelper no longer build-depends on man-db or file, to ease bootstrapping.
+ * Remove obsolete versioned dependency on perl-base.
+ * Avoid writing debhelper log files in no-act mode. Closes: #640586
+ * Tighten parsing of DEB_BUILD_OPTIONS.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 11 Sep 2011 20:29:22 -0400
+
+debhelper (8.9.6) unstable; urgency=low
+
+ * dh_installlogcheck: Add support for --name. Closes: #639020
+ Thanks, Gergely Nagy
+
+ -- Joey Hess <joeyh@debian.org> Tue, 23 Aug 2011 15:25:55 -0400
+
+debhelper (8.9.5) unstable; urgency=low
+
+ * dh_compress: Don't compress _sources documentation subdirectory
+ as used by python-sphinx. Closes: #637492
+ Thanks, Jakub Wilk
+ * dh_ucf: fix test for ucf/ucfr availability and quote filenames.
+ Closes: #638944
+ Thanks, Jeroen Schot
+
+ -- Joey Hess <joeyh@debian.org> Tue, 23 Aug 2011 13:25:54 -0400
+
+debhelper (8.9.4) unstable; urgency=low
+
+ * dh: The --before --after --until and --remaining options are deprecated.
+ Use override targets instead.
+ * Assume that the package can be cleaned (i.e. the build directory can be
+ removed) as long as it is built out-of-source tree and can be configured.
+ This is useful for derivative buildsystems which generate Makefiles.
+ (Modestas Vainius) Closes: #601590
+ * dh_auto_test: Run cmake tests in parallel when allowed by
+ DEB_BUILD_OPTIONS. (Modestas Vainius) Closes: #587885
+ * dpkg-buildflags is only used to set environment in v9, to avoid
+ re-breaking packages that were already broken a first time by
+ dpkg-buildpackage unconditionally setting the environment, and
+ worked around that by unsetting variables in the rules file.
+ (Example: numpy)
+
+ -- Joey Hess <joeyh@debian.org> Sat, 06 Aug 2011 18:58:59 -0400
+
+debhelper (8.9.3) unstable; urgency=low
+
+ * dh: Remove obsolete optimisation hack that caused sequence breakage
+ in v9 with a rules file with an explict build target. Closes: #634784
+
+ -- Joey Hess <joeyh@debian.org> Tue, 19 Jul 2011 23:26:43 -0400
+
+debhelper (8.9.2) unstable; urgency=low
+
+ * dh: Support make 3.82. Closes: #634385
+
+ -- Joey Hess <joeyh@debian.org> Mon, 18 Jul 2011 17:55:24 -0400
+
+debhelper (8.9.1) unstable; urgency=low
+
+ * Typo fixes. Closes: #632662
+ * dh: In v9, do not enable any python support commands. Closes: #634106
+ * Now the QT4 version of qmake can be explicitly selected by passing
+ --buildsystem=qmake_qt4. Closes: #566840
+ * Remove debhelper.log in compat level 1. Closes: #634155
+ * dh_builddeb: Build in parallel when allowed by DEB_BUILD_OPTIONS.
+ Closes: #589427 (Thanks, Gergely Nagy and Kari Pahula)
+
+ -- Joey Hess <joeyh@debian.org> Sun, 17 Jul 2011 16:31:27 -0400
+
+debhelper (8.9.0) unstable; urgency=low
+
+ * dh: In v9, any standard rules file targets, including build-arch,
+ build-indep, build, install, etc, can be defined in debian/rules
+ without needing to explicitly tell make the dependencies between
+ the targets. Closes: #629139
+ (Thanks, Roger Leigh)
+ * dh_auto_configure: In v9, does not include the source package name
+ in --libexecdir when using autoconf. Closes: #541458
+ * dh_auto_build, dh_auto_configure, dh: Set environment variables
+ listed by dpkg-buildflags --export. Any environment variables that
+ are already set to other values will not be changed.
+ Closes: #544844
+ * dh_movefiles: Optimise use of xargs. Closes: #627737
+ * Correct docs about multiarch and v9. Closes: #630826
+ * Fix example. Closes: #627534
+ * Fix error message. Closes: #628053
+ * dh_auto_configure: If there is a problem with cmake, display
+ the CMakeCache.txt.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 24 Jun 2011 14:28:52 -0400
+
+debhelper (8.1.6) unstable; urgency=low
+
+ * dh_ucf: Fix missing space before ']'s in postrm autoscript.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 28 Apr 2011 12:33:42 -0400
+
+debhelper (8.1.5) unstable; urgency=low
+
+ * dh_ucf: New command, contributed by Jeroen Schot. Closes: #213078
+ * dh_installgsettings: Correct bug in use of find that caused some
+ gsettings files to be missed. Closes: #624377
+
+ -- Joey Hess <joeyh@debian.org> Wed, 27 Apr 2011 21:33:50 -0400
+
+debhelper (8.1.4) unstable; urgency=low
+
+ * dh_clean: Remove debhelper logs for all packages, including packages
+ not being acted on. dh can sometimes produce such logs by accident
+ when passed bundled options (like "-Nfoo" instead of "-N foo") that
+ it does not understand; and it was not possible to fix that
+ for any compat level before v8. But also, such logs can occur
+ for other reasons, like interrupted builds during development,
+ and it should be safe to clean them all. Closes: #623446
+ * Fix Typos in documentation regarding {pre,post}{inst,rm}
+ Closes: #623709
+
+ -- Joey Hess <joeyh@debian.org> Fri, 22 Apr 2011 16:15:21 -0400
+
+debhelper (8.1.3) unstable; urgency=low
+
+ [ Joey Hess ]
+ * dh_auto_clean: Inhibit logging, so that, if dh_auto_clean is used
+ in some rule other than clean, perhaps to clean up an intermediate
+ build before a second build is run, debian/rules clean still runs it.
+ Closes: #615553
+ * 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.
+ * Removed old example rules files.
+ * dh_installgsettings: New command to handle gsettings schema files.
+ Closes: #604727
+
+ [ Valery Perrin ]
+ * update french translation.
+ * Fix french misspelling.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 05 Apr 2011 13:09:43 -0400
+
+debhelper (8.1.2) unstable; urgency=low
+
+ * Fix logging at end of an override target that never actually runs
+ the overridden command. Closes: #613418
+
+ -- Joey Hess <joeyh@debian.org> Mon, 14 Feb 2011 14:22:17 -0400
+
+debhelper (8.1.1) unstable; urgency=low
+
+ * dh_strip, dh_makeshlibs: use triplet-objdump, triplet-objcopy and
+ triplet-strip from cross-binutils when cross-compiling; Closes: #412118.
+ (Thanks, Loïc Minier)
+ * Improve handling of logging in override targets, so that
+ --remaining-packages can be used again. Now all debhelper commands run
+ in the override target are marked as running as part of the override,
+ and when the whole target is run, the log is updated to indicate that
+ commands run during the override have finished. Closes: #612828
+
+ -- Joey Hess <joeyh@debian.org> Thu, 10 Feb 2011 19:58:34 -0400
+
+debhelper (8.1.0) unstable; urgency=low
+
+ [ Joey Hess ]
+ * python_distutils: Pass --force to setup.py build, to ensure that when
+ python-dbg is run it does not win and result in scripts having it in
+ the shebang line. Closes: #589759
+ * Man page fixes about what program -u passes params to. Closes: #593342
+ * Avoid open fd 5 or 6 breaking buildsystem test suite. Closes: #596679
+ * Large update to Spanish man page translations by Omar Campagne.
+ Closes: #600913
+ * dh_installdeb: Support debian/package.maintscript files,
+ which can contain dpkg-maintscript-helper commands. This can be used
+ to automate moving or removing conffiles, or anything added to
+ dpkg-maintscript-helper later on. Closes: #574443
+ (Thanks, Colin Watson)
+ * Massive man page typography patch. Closes: #600883
+ (Thanks, David Prévot)
+ * Explicitly build-depend on a new enough perl-base. Closes: #601188
+ * dh: Inhibit logging when an override target runs the overridden command,
+ to avoid unexpected behavior if the command succeeded but the overall
+ target fails. Closes: #601037
+ * Fix deprecated command list on translated debhelper(7) man pages.
+ Closes: #601204
+ * dh: Improve filtering in dh_listpackages example. Closes: #604561
+ * dh: Add support for build-arch, build-indep, install-arch and
+ install-indep sequences. Closes: #604563
+ (Thanks, Roger Leigh)
+ * dh_listpackages: Do not display warnings if options cause no packages
+ to be listed.
+ * dh_installdocs: Clarify that debian/README.Debian and debian/TODO are
+ only installed into the first package listed in debian/control.
+ Closes: #606036
+ * dh_compress: Javascript files are not compressed, as these go with
+ (uncompressed) html files. Closes: #603553
+ * dh_compress: Ignore objects.inv files, generated by Sphinx documentation.
+ Closes: #608907
+ * dh_installinit: never call init scripts directly, only through invoke-rc.d
+ Closes: #610340
+ (Thanks, Steve Langasek)
+
+ [ Valery Perrin ]
+ * update french translation.
+ * Fix french misspelling.
+ * French translation update after massive man page typography
+
+ -- Joey Hess <joeyh@debian.org> Sat, 05 Feb 2011 12:00:04 -0400
+
+debhelper (8.0.0) unstable; urgency=low
+
+ [ Carsten Hey ]
+ * dh_fixperms: Ensure files in /etc/sudoers.d/ are mode 440. Closes: #589574
+
+ [ Joey Hess ]
+ * Finalized v8 mode, which is the new recommended default.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 07 Aug 2010 11:27:24 -0400
+
+debhelper (7.9.3) unstable; urgency=low
+
+ * perl_makemaker: import compat(). Closes: #587654
+
+ -- Joey Hess <joeyh@debian.org> Wed, 30 Jun 2010 14:42:09 -0400
+
+debhelper (7.9.2) unstable; urgency=low
+
+ * In v8 mode, stop passing packlist=0 in perl_makemaker buildsystem,
+ since perl_build is tried first. Avoids the makemaker warning message
+ introduced by the fix to #527990.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 29 Jun 2010 17:41:41 -0400
+
+debhelper (7.9.1) unstable; urgency=low
+
+ * Started work on Debhelper v8. It is still experimental, and more
+ changes are planned for that mode.
+ * dh_installman: Support .so links relative to the current section.
+ * dh_installman: Avoid converting .so links to symlinks if the link
+ target is not present in the same binary package, on advice of
+ Colin Watson. (To support eventual so search paths.)
+ * Add deprecation warning for dh_clean -k.
+ * dh_testversion: Removed this deprecated and unused command.
+ * debian/compress files are now deprecated. Seems only one package
+ (genesis) still uses them.
+ * dh_fixperms: Tighten globs used to find library .so files,
+ avoiding incorrectly matching things like "foo.sources". Closes: #583328
+ * dh_installchangelogs: Support packages placing their changelog in a
+ file with a name like HISTORY. Closes: #582749
+ * dh_installchangelogs: Also look for changelog files in doc(s)
+ subdirectories. Closes: #521258
+ * In v8 mode, do not allow directly passing unknown options to debhelper
+ commands. (Unknown options in DH_OPTIONS still only result in warnings.)
+ * In v8 mode, dh_makeshlibs will run dpkg-gensymbols on all shared
+ libraries it generates shlibs files for. This means that -X can be
+ used to exclude libraries from processing by dpkg-gensymbols. It also
+ means that libraries in unusual locations, where dpkg-gensymbols does
+ not itself normally look, will be passed to it, a behavior change which
+ may break some packages. Closes: #557603
+ * In v8 mode, dh expects the sequence to run is always its first parameter.
+ (Ie, use "dh $@ --foo", not "dh --foo $@")
+ This avoids ambiguities when parsing options to be passed on to debhelper
+ commands. (See #570039)
+ * In v8 mode, prefer the perl_build buildsystem over perl_makemaker.
+ Closes: #578805
+ * postrm-init: Avoid calling the error handler if update-rc.d fails.
+ Closes: #586065
+
+ -- Joey Hess <joeyh@debian.org> Wed, 16 Jun 2010 13:44:48 -0400
+
+debhelper (7.4.20) unstable; urgency=low
+
+ * Drop one more call to dpkg-architecture. Closes: #580837
+ (Raphael Geissert)
+ * Further reduce the number of calls to dpkg-architecture to zero,
+ in a typical package with no explicit architecture mentions
+ in control file or debhelper config files.
+ * dh_perl: use debian_abi for XS modules. Closes: #581233
+
+ -- Joey Hess <joeyh@debian.org> Wed, 12 May 2010 20:06:02 -0400
+
+debhelper (7.4.19) unstable; urgency=low
+
+ * Memoize architecture comparisons in samearch, and avoid calling
+ dpkg-architecture at all for simple comparisons that clearly
+ do not involve architecture wildcards. Closes:# 579317
+
+ -- Joey Hess <joeyh@debian.org> Mon, 26 Apr 2010 19:45:07 -0400
+
+debhelper (7.4.18) unstable; urgency=low
+
+ * dh_gconf: Depend on new gconf2 that uses triggers, and stop
+ calling triggered programs manually. Closes: #577179
+
+ -- Joey Hess <joeyh@debian.org> Mon, 26 Apr 2010 16:23:38 -0400
+
+debhelper (7.4.17) unstable; urgency=low
+
+ * Fix #572077 in one place I missed earlier. (See #576885)
+ * dh: Fixed example of overriding binary target.
+ * Began finalizing list of changes for v8 compat level.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 08 Apr 2010 18:23:43 -0400
+
+debhelper (7.4.16) unstable; urgency=low
+
+ * Updated French translation.
+ * makefile buildsystem: Chomp output during test for full compatibility
+ with debhelper 7.4.11. Closes: #570503
+ * dh_install: Now --list-missing and --fail-missing are useful even when
+ not all packages are acted on (due to architecture limits or flags).
+ Closes: #570373
+ * Typo. Closes: #571968
+ * If neither -a or -i are specified, debhelper commands used to default
+ to acting on all packages in the control file, which was a guaranteed
+ failure if the control file listed packages that did not build for the
+ target architecture. After recent optimisations, this default behavior
+ can efficiently be changed to the more sane default of acting on only
+ packages that can be built for the current architecture. This change
+ is mostly useful when using minimal rules files with dh. Closes: #572077
+ * dh_md5sums: Sort to ensure stable, more diffable order. Closes: #573702
+ * dh: Allow --list-addons to be used when not in a source package.
+ Closes: #574351
+ * dh: Improve documentation.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 06 Apr 2010 22:06:50 -0400
+
+debhelper (7.4.15) unstable; urgency=low
+
+ * The fix for #563557 caused some new trouble involving makefile
+ that misbehave when stderr is closed. Reopen it to /dev/null
+ when testing for the existance of a makefile target. Closes: #570443
+
+ -- Joey Hess <joeyh@debian.org> Thu, 18 Feb 2010 16:37:34 -0500
+
+debhelper (7.4.14) unstable; urgency=low
+
+ * dh: Disable option bundling to avoid mis-parsing bundled options such
+ as "-Bpython-support". Closes: #570039
+
+ -- Joey Hess <joeyh@debian.org> Tue, 16 Feb 2010 14:47:10 -0500
+
+debhelper (7.4.13) unstable; urgency=low
+
+ * dh_compress: Avoid compressing images in /usr/share/info. Closes: #567586
+ * Fix handling of -O with options specified by commands. Closes: #568081
+
+ -- Joey Hess <joeyh@debian.org> Tue, 02 Feb 2010 12:15:41 -0500
+
+debhelper (7.4.12) unstable; urgency=low
+
+ * dh_bugfiles: Doc typo. Closes: #563269
+ * makefile: Support the (asking for trouble) case of MAKE being set to
+ something with a space in it. Closes: #563557
+ * Fix warning about unknown options passed to commands in override targets.
+ * Add -O option, which can be used to pass options to commands, ignoring
+ options that they do not support.
+ * dh: Use -O to pass user-specified options to the commands it runs.
+ This solves the problem with passing "-Bbuild" to dh, where commands
+ that do not support -B would see a bogus -u option. Closes: #541773
+ (It also ensures that the commands dh prints out can really be run.)
+ * qmake: New buildsystem contributed by Kel Modderman. Closes: #566840
+ * Fix typo in call to abs2rel in --builddir sanitize code.
+ Closes: #567737
+
+ -- Joey Hess <joeyh@debian.org> Sat, 30 Jan 2010 20:23:02 -0500
+
+debhelper (7.4.11) unstable; urgency=low
+
+ * dh(1): Minor rewording of documentation of override commands.
+ Closes: #560421
+ * dh(1): Add an example of using an override target to avoid
+ dh running several commands. Closes: #560600
+ * dh_installman: Avoid doubled slashes in path. Closes: #561275
+ * dh_installxfonts: Use new update-fonts-alias --include and
+ --exclude options to better handle removal in the case where
+ xfonts-utils is removed before a font package is purged.
+ (#543512; thanks, Theppitak Karoonboonyanan)
+ * dh: Optimise handling of noop overrides, avoiding an unnecessary
+ call to make to handle them. (Modestas Vainius)
+
+ -- Joey Hess <joeyh@debian.org> Thu, 31 Dec 2009 11:32:34 -0500
+
+debhelper (7.4.10) unstable; urgency=low
+
+ * Add --parallel option that can be used to enable parallel building
+ without limiting the max number of parallel jobs. (Modestas Vainius)
+ * dh_makeshlibs: Temporarily revert fix for #557603, as it caused
+ dpkg-gensymbols to see libraries not in the regular search path and
+ broke builds. This will be re-enabled in v8. Closes: #560217
+
+ -- Joey Hess <joeyh@debian.org> Wed, 09 Dec 2009 15:17:19 -0500
+
+debhelper (7.4.9) unstable; urgency=low
+
+ * Typo. Closes: #558654
+ * dh_installinit: Fix installation of defaults file when an upstart job is
+ installed. Closes: #558782
+
+ -- Joey Hess <joeyh@debian.org> Mon, 30 Nov 2009 14:21:10 -0500
+
+debhelper (7.4.8) unstable; urgency=low
+
+ * Parallel building support is no longer enabled by default. It can still
+ be enabled by using the --max-parallel option. This was necessary because
+ some buildds build with -j2 by default. (See #532805)
+ * dh: Document --no-act. Closes: #557505
+ * dh_makeshlibs: Make -X also exclude libraries from the symbols file.
+ Closes: #557603 (Peter Samuelson)
+
+ -- Joey Hess <joeyh@debian.org> Mon, 23 Nov 2009 13:57:10 -0500
+
+debhelper (7.4.7) unstable; urgency=low
+
+ * make: Avoid infinite make recursion that occurrs when testing existence
+ of a target in a certian horribly broken makefile, by making the test stop
+ after it sees one line of output from make. (This may be better replaced
+ with dh's makefile parser in the future.) Closes: #557307
+
+ -- Joey Hess <joeyh@debian.org> Sat, 21 Nov 2009 13:35:22 -0500
+
+debhelper (7.4.6) unstable; urgency=low
+
+ * Update --list to reflect buildsystem autoselection changes.
+ * Remove last vestiages of support for /usr/X11R6.
+ * cmake: Fix deep recursion in test. Closes: #557299
+
+ -- Joey Hess <joeyh@debian.org> Sat, 21 Nov 2009 13:08:48 -0500
+
+debhelper (7.4.5) unstable; urgency=low
+
+ * ant: Fix auto-selection breakage. Closes: #557006 (Cyril Brulebois)
+
+ -- Joey Hess <joeyh@debian.org> Thu, 19 Nov 2009 11:53:39 -0500
+
+debhelper (7.4.4) unstable; urgency=low
+
+ * The makefile buildsystem (and derived buildsystems cmake, autoconf, etc)
+ now supports parallel building by default, as specified via
+ DEB_BUILD_OPTIONS. Closes: #532805
+ * dh_auto_*: Add --max-parallel option that can be used to control
+ or disable parallel building. --max-parallel=1 will disable parallel
+ building, while --max-parallel=N will limit the maximum number of
+ parallel processes that can be specified via DEB_BUILD_OPTIONS.
+ * Added some hacks to avoid warnings about unavailable jobservers when
+ debhelper runs make, and the parent debian/rules was run in parallel
+ mode (as dpkg-buildpackage -j currently does).
+ * Thanks, Modestas Vainius for much of the work on parallel build support.
+ * Add deprecation warnings for -u to the documentation, since putting
+ options after -- is much more sane. (However, -u will not go away any
+ time soon.) Closes: #554509
+ * Separate deprecated programs in the list of commands in debhelper(7).
+ Closes: #548382
+ * Adjust code to add deprecation warning for compatibility level 4.
+ (Man page already said it was deprecated.) Closes: #555899
+ * dh_installdocs: Warn if a doc-base file cannot be parsed to find a
+ document id. Closes: #555677
+ * Typo. Closes: #555659
+ * cmake: Set CTEST_OUTPUT_ON_FAILURE when running test suite.
+ Closes: #555807 (Modestas Vainius)
+ * autoconf: If configure fails, display config.log. Intended to make
+ it easier to debug configure script failures on autobuilders.
+ Closes: #556384
+ * Improve build system autoselection process; this allows cmake to be
+ autoselected for steps after configure, instead of falling back to
+ makefile once cmake generated a makefile. Closes: #555805
+ (Modestas Vainius)
+
+ -- Joey Hess <joeyh@debian.org> Wed, 18 Nov 2009 14:44:21 -0500
+
+debhelper (7.4.3) unstable; urgency=low
+
+ [ Valery Perrin ]
+ * update french translation. Closes: #494300, #477703
+ * add --previous at po4a command into Makefile
+ * add dh, dh_auto_install, dh_auto_clean, dh_auto_configure,
+ dh_auto_install, dh_auto_test, dh_bugfiles, dh_icons, dh_installifupdown,
+ dh_installudev, dh_lintian, dh_prep into po4a.cfg manpages list
+ * fix a spelling mistake in dh_makeshlibs man french
+ translation (#494300 part 2)
+
+ [ Joey Hess ]
+ * dh_perl: Do not look at perl scripts under /usr/share/doc.
+ Closes: #546683
+ * Allow dpkg-architecture to print errors to stderr. Closes: #548636
+ * python_distutils: Run default python last, not first, and pass --force
+ to setup.py install to ensure that timestamps do not prevent installation
+ of the scripts built for the default python, with unversioned shebang
+ lines. Closes: #547510 (Thanks, Andrew Straw)
+
+ -- Joey Hess <joeyh@debian.org> Thu, 01 Oct 2009 14:37:38 -0400
+
+debhelper (7.4.2) unstable; urgency=low
+
+ * Man page typo. Closes: #545443
+ * dh: Remove duplicate dh_installcatalogs list. Closes: #545483
+ (It was only run once due to logging.)
+ * dh_installdocs: Add --link-doc option that can be used to link
+ documentation directories. This is easier to use and more flexible
+ than the old method of running dh_link first to make a broken symlink.
+ Closes: #545676 Thanks, Colin Watson
+ * Reorder dh_pysupport call in dh sequence to come before
+ dh_installinit, so the generated postinst script registers
+ python modules before trying to use them. Closes: #546293
+ * dh_installudev: With --name, install debian/<package>.<name>.udev
+ to rules.d/<priority>-<name>, the same as debian/<name>.udev
+ is installed for the first package. Closes: #546337
+
+ -- Joey Hess <joeyh@debian.org> Mon, 14 Sep 2009 15:46:49 -0400
+
+debhelper (7.4.1) unstable; urgency=low
+
+ [ Steve Langasek ]
+ * dh_installinit: Support upstart job files, and provide compatibility
+ symlinks in /etc/init.d for sysv-rc implementations. Closes: #536035.
+
+ [ Joey Hess ]
+ * Add FILES sections to man pages. Closes: #545041
+ * dh_prep(1): Clarify when it should be called. Closes: #544969
+
+ -- Joey Hess <joeyh@debian.org> Sun, 06 Sep 2009 18:44:40 -0400
+
+debhelper (7.4.0) unstable; urgency=low
+
+ * Optimise -s handling to avoid running dpkg-architecture if a package
+ is arch all. This was, suprisingly, the only overhead of using the -s
+ flag with arch all/any packages.
+ * The -a flag now does the same thing as the -s flag, so debhelper users
+ do not need to worry about using the -s flag when building a package
+ that only builds for some architectures, and dh will also work in that
+ situation. Closes: #540794
+
+ -- Joey Hess <joeyh@debian.org> Tue, 01 Sep 2009 13:41:16 -0400
+
+debhelper (7.3.16) unstable; urgency=low
+
+ * dh_desktop: Clarify in man page why it's a no-op.
+ Closes: #543364
+ * dh_installdocs: Loosen the Document field parsing, to accept
+ everything doc-base *really* accepts in a doc id (not just what
+ it's documented to accept). Closes: #543499
+ * Allow sequence addons to pass options to debhelper commands,
+ by adding add_command_options and remove_command_options to the interface.
+ Closes: #543392
+ (Modestas Vainius)
+ * dh_auto_install: Add a --destdir parameter that can be used to override
+ the default. Closes: #538201
+ (Modestas Vainius)
+
+ -- Joey Hess <joeyh@debian.org> Wed, 26 Aug 2009 17:10:53 -0400
+
+debhelper (7.3.15) unstable; urgency=low
+
+ * dh_installudev: Install rules files into new location
+ /lib/udev/rules.d/
+ * dh_installudev: Add code to delete old conffiles unless
+ they're modified, and in that case, rename them to override
+ the corresponding file in /lib/udev. (Based on patch by
+ Martin Pitt.) (Note that this file will not be deleted on purge --
+ I can't see a good way to determine when it's appropriate to do
+ that.)
+ * dh_installudev: Set default priority to 60; dropping the "z".
+ If --priority=zNN is passed, treat that as priority NN.
+ * Above Closes: #491117
+ * dh_installudev: Drop code handling move of /etc/udev/foo into
+ /etc/udev/rules.d/.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 21 Aug 2009 17:22:08 -0400
+
+debhelper (7.3.14) unstable; urgency=low
+
+ [ Colin Watson ]
+ * dh: Add --list option to list available addons. Closes: #541302
+
+ [ Joey Hess ]
+ * Run pod2man with --utf8. Closes: #541270
+ * dh: Display $@ error if addon load fails. Closes: #541845
+ * dh_perl: Remove perl minimum dependency per new policy. Closes: #541811
+
+ -- Joey Hess <joeyh@debian.org> Mon, 17 Aug 2009 15:55:48 -0400
+
+debhelper (7.3.13) unstable; urgency=low
+
+ [ Bernd Zeimetz ]
+ * python_distutils.pm: Support debhelper backports.
+ To allow backports of debhelper we don't pass
+ --install-layout=deb to 'setup.py install` for those Python
+ versions where the option is ignored by distutils/setuptools.
+ Thanks to Julian Andres Klode for the bug report.
+ Closes: #539324
+
+ -- Joey Hess <joeyh@debian.org> Fri, 14 Aug 2009 20:10:57 -0400
+
+debhelper (7.3.12) unstable; urgency=low
+
+ * dh: Allow creation of new sequences (such as to handle a patch
+ target for quilt), by adding an add_command function to the
+ sequence addon interface. See #540124.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 06 Aug 2009 11:08:53 -0400
+
+debhelper (7.3.11) unstable; urgency=low
+
+ * perl_build: Fix Build check to honor source directory setting.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 05 Aug 2009 13:52:34 -0400
+
+debhelper (7.3.10) unstable; urgency=low
+
+ * perl_build: Avoid failing if forced to be used in dh_auto_clean
+ when Build does not exist (ie due to being run twice in a row).
+ Closes: #539848
+ * dh_builddeb: Fix man page typo. Closes: #539976
+ * dh_installdeb: In udeb mode, support the menutest and isinstallable
+ maintainer scripts. Closes: #540079 Thanks, Colin Watson.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 05 Aug 2009 11:03:01 -0400
+
+debhelper (7.3.9) unstable; urgency=low
+
+ * cmake: Avoid forcing rpath off as this can break some test suites.
+ It gets stripped by cmake at install time. Closes: #538977
+
+ -- Joey Hess <joeyh@debian.org> Sat, 01 Aug 2009 15:59:07 -0400
+
+debhelper (7.3.8) unstable; urgency=low
+
+ * Fix t/override_target to use ./run. Closes: #538315
+
+ -- Joey Hess <joeyh@debian.org> Sat, 25 Jul 2009 00:37:45 +0200
+
+debhelper (7.3.7) unstable; urgency=low
+
+ * First upload of buildsystems support to unstable.
+ Summary: Adds --buildsystem (modular, OO buildsystem classes),
+ --sourcedirectory, --builddirectory, and support for cmake
+ and ant.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 24 Jul 2009 12:07:47 +0200
+
+debhelper (7.3.6) experimental; urgency=low
+
+ * perl_makemaker: Re-add fix for #496157, lost in rewrite.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 23 Jul 2009 18:17:45 +0200
+
+debhelper (7.3.5) experimental; urgency=low
+
+ [ Bernd Zeimetz ]
+ * python_distutils buildsystem: Build for all supported Python
+ versions that are installed. Ensure that correct shebangs are
+ created by using `python' first during build and install.
+ Closes: #520834
+ Also build with python*-dbg if the package build-depends
+ on them.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 20 Jul 2009 20:30:22 +0200
+
+debhelper (7.3.4) experimental; urgency=low
+
+ * Merged debhelper 7.2.24.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 15 Jul 2009 09:50:37 -0400
+
+debhelper (7.3.3) experimental; urgency=low
+
+ * Add ant buildsystem support. Closes: #537021
+ * Merged debhelper 7.2.22.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 14 Jul 2009 17:16:28 -0400
+
+debhelper (7.3.2) experimental; urgency=low
+
+ * Merged debhelper 7.2.21.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 08 Jul 2009 21:23:48 -0400
+
+debhelper (7.3.1) experimental; urgency=low
+
+ * Merged debhelper 7.2.20.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 02 Jul 2009 12:28:55 -0400
+
+debhelper (7.3.0) experimental; urgency=low
+
+ * Modular object oriented dh_auto_* buildsystem support,
+ contributed by Modestas Vainius
+ - dh_auto_* --sourcedirectory can now be used to specify a source
+ directory if sources and/or the whole buildsystem lives elsewhere
+ than the top level directory. Closes: #530597
+ - dh_auto_* --builddirectory can now be used to specify a build
+ directory to use for out of source building, for build systems
+ that support it. Closes: #480577
+ - dh_auto_* --buildsystem can now be used to override the autodetected
+ build system, or force use of a third-party class.
+ - dh_auto_* --list can be used to list available and selected build
+ systems.
+ - Adds support for cmake.
+ - For the perl_build build system, Build is used consistently
+ instead of falling back to using the generated Makefile.
+ Closes: #534332
+ - Historical dh_auto_* behavior should be preserved despite these
+ large changes..
+ * Move two more command-specific options to only be accepted by the commands
+ that use them. The options are:
+ --sourcedir, --destdir
+ If any third-party debhelper commands use either of the above options,
+ they will be broken, and need to be changed to pass options to init().
+ * Make dh not complain about unknown, command-specific options passed to it,
+ and further suppress warnings about such options it passes on to debhelper
+ commands. This was attempted incompletely before in version 7.2.17.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 01 Jul 2009 15:31:20 -0400
+
+debhelper (7.2.24) unstable; urgency=low
+
+ * dh_install: Add test suite covering the last 5 bugs.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 15 Jul 2009 09:42:18 -0400
+
+debhelper (7.2.23) unstable; urgency=low
+
+ * dh_install: Fix support for the case where debian/tmp is
+ explicitly specified in filename paths despite being searched by
+ default. Closes: #537140
+
+ -- Joey Hess <joeyh@debian.org> Wed, 15 Jul 2009 09:24:19 -0400
+
+debhelper (7.2.22) unstable; urgency=low
+
+ * dh_install: Fix support for the case where --sourcedir=debian/tmp/foo
+ is used. Perl was not being greedy enough and the 'foo' was not stripped
+ from the destination directory in this unusual case. Closes: #537017
+
+ -- Joey Hess <joeyh@debian.org> Tue, 14 Jul 2009 17:08:25 -0400
+
+debhelper (7.2.21) unstable; urgency=low
+
+ * Add a versioned dep on perl-base, to get a version that supports
+ GetOptionsFromArray. Closes: #536310
+
+ -- Joey Hess <joeyh@debian.org> Wed, 08 Jul 2009 21:08:45 -0400
+
+debhelper (7.2.20) unstable; urgency=low
+
+ * dh_install: Fix installation of entire top-level directory
+ from debian/tmp. Closes: #535367
+
+ -- Joey Hess <joeyh@debian.org> Thu, 02 Jul 2009 12:17:42 -0400
+
+debhelper (7.2.19) unstable; urgency=low
+
+ * dh_install: Handle correctly the case where a glob expands to
+ a dangling symlink, installing the dangling link as requested.
+ Closes: #534565
+ * dh_install: Fix fallback use of debian/tmp in v7 mode; a bug caused
+ it to put files inside a debian/tmp directory in the package build
+ directory, now that prefix is stripped. (See #534565)
+
+ -- Joey Hess <joeyh@debian.org> Tue, 30 Jun 2009 12:56:52 -0400
+
+debhelper (7.2.18) unstable; urgency=low
+
+ * dh_shlibdeps: Ensure DEBIAN directory exists, as dpkg-shlibdeps
+ prints a confusing warning if it does not. Closes: #534226
+ * dh_auto_install: Pass --install-layout=deb to setup.py
+ to support python 2.6. Closes: #534620
+
+ -- Joey Hess <joeyh@debian.org> Mon, 29 Jun 2009 15:35:40 -0400
+
+debhelper (7.2.17) unstable; urgency=low
+
+ * Allow command-specific options to be passed to commands
+ via dh without causing other commands to emit a getopt
+ warning or deprecation message.
+ * dh_installinfo: No longer inserts install-info calls into
+ maintainer scripts, as that is now triggerized. Adds a dependency
+ via misc:Depends to handle partial upgrades. Note that while
+ dh_installinfo already required that info files had a INFO-DIR-SECTION,
+ the new system also requires they have START-INFO-DIR-ENTRY and
+ END-INFO-DIR-ENTRY for proper registration. I assume there will be
+ some mass bug filing for any packages that do not have that.
+ Closes: #534639, #357434
+
+ -- Joey Hess <joeyh@debian.org> Fri, 26 Jun 2009 09:02:51 -0400
+
+debhelper (7.2.16) unstable; urgency=low
+
+ * dh_gconf: Add missed half of postrm fragment removal. Closes: #531035
+
+ -- Joey Hess <joeyh@debian.org> Thu, 11 Jun 2009 12:50:33 -0400
+
+debhelper (7.2.15) unstable; urgency=low
+
+ * dh_strip, dh_shlibdeps: Add support for OCaml shared libraries.
+ (Stephane Glondu) Closes: #527272, #532701
+ * dh_compress: Avoid compressing .svg and .sgvz files, since these
+ might be used as images on a html page, and also to avoid needing
+ to special case the .svgz extension when compressing svg.
+ Closes: #530253
+ * dh_scrollkeeper: Now a deprecated no-op. Closes: #530806
+ * dh_gconf: Remove postrm fragment that handled schema migration
+ from /etc to /usr. Closes: #531035
+
+ -- Joey Hess <joeyh@debian.org> Wed, 10 Jun 2009 17:14:07 -0400
+
+debhelper (7.2.14) unstable; urgency=low
+
+ * dh: Avoid writing log after override_dh_clean is run. Closes: #529228
+
+ -- Joey Hess <joeyh@debian.org> Mon, 18 May 2009 12:49:32 -0400
+
+debhelper (7.2.13) unstable; urgency=low
+
+ * dh_auto_configure: Pass --skipdeps safely via PERL_AUTOINSTALL.
+ Closes: #528235
+
+ -- Joey Hess <joeyh@debian.org> Thu, 14 May 2009 15:21:21 -0400
+
+debhelper (7.2.12) unstable; urgency=low
+
+ * dh_auto_configure: Revert --skipdeps change
+ Closes: #528647, reopens: #528235
+
+ -- Joey Hess <joeyh@debian.org> Thu, 14 May 2009 14:15:26 -0400
+
+debhelper (7.2.11) unstable; urgency=low
+
+ * dh: Support --with addon,addon,...
+ Closes: #528178
+ * dh_auto_configure: Add --skipdeps when running Makefile.PL,
+ to prevent Module::Install from trying to download dependencies.
+ Closes: #528235
+ * Support debian/foo.os files to suppliment previous debian/foo.arch
+ file support. Closes: #494914
+ (Thanks, Aurelien Jarno)
+
+ -- Joey Hess <joeyh@debian.org> Tue, 12 May 2009 14:52:18 -0400
+
+debhelper (7.2.10) unstable; urgency=low
+
+ * Close COMPAT_IN filehandle. Closes: #527464
+ * dh_auto_configure: Clarify man page re adding configure
+ parameters. Closes: #527256
+ * dh_auto_configure: Pass packlist=0 when running Makefile.PL,
+ in case it is a Build.PL passthru, to avoid it creating
+ the .packlist file. Closes: #527990
+
+ -- Joey Hess <joeyh@debian.org> Sun, 10 May 2009 13:07:08 -0400
+
+debhelper (7.2.9) unstable; urgency=low
+
+ * dh_fixperms: Ensure lintian overrides are mode 644.
+ (Patch from #459548)
+ * dh_fixperms: Fix permissions of OCaml .cmxs files. Closes: #526221
+ * dh: Add --without to allow disabling sequence addons (particularly
+ useful to disable the default python-support addon).
+
+ -- Joey Hess <joeyh@debian.org> Mon, 04 May 2009 14:46:53 -0400
+
+debhelper (7.2.8) unstable; urgency=low
+
+ * dh_desktop: Now a deprecated no-op, since desktop-file-utils
+ uses triggers. Closes: #523474
+ (also Closes: #521960, #407701 as no longer applicable)
+ * Move dh sequence documentation to PROGRAMMING.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 20 Apr 2009 16:15:32 -0400
+
+debhelper (7.2.7) unstable; urgency=low
+
+ * Fix calling the same helper for separate packages in the override of dh
+ binary-indep/binary-arch. Closes: #520567
+ * Add --remaining-packages option (Modestas Vainius)
+ Closes: #520615
+ * Pass -L UTF-8 to po4a to work around bug #520942
+ * dh_icons: ignore gnome and hicolor themes (will be handled
+ by triggers). Closes: #521181
+
+ -- Joey Hess <joeyh@debian.org> Fri, 27 Mar 2009 14:15:29 -0400
+
+debhelper (7.2.6) unstable; urgency=low
+
+ * Examples files updated to add dh_bugfiles, remove obsolete
+ dh_python.
+ * dh_auto_test: Support DEB_BUILD_OPTIONS=nocheck. Closes: #519374
+
+ -- Joey Hess <joeyh@debian.org> Sun, 15 Mar 2009 17:54:48 -0400
+
+debhelper (7.2.5) unstable; urgency=low
+
+ * Set MODULEBUILDRC=/dev/null when running perl Build scripts
+ to avoid ~/.modulebuildrc influencing the build. Closes: #517423
+ * dh_installmenus: Revert removal of update-menus calls. Closes: #518919
+ Menu refuses to add unconfigured packages to the menu, and thus
+ omits packages when triggered, unfortunatly. I hope its behavior will
+ change.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 09 Mar 2009 16:20:41 -0400
+
+debhelper (7.2.4) unstable; urgency=low
+
+ * dh_makeshlibs: Fix --add-udeb, for real. Closes: #518706
+
+ -- Joey Hess <joeyh@debian.org> Sun, 08 Mar 2009 13:14:30 -0400
+
+debhelper (7.2.3) unstable; urgency=low
+
+ * dh_installmenus: Now that a triggers capable menu and dpkg are in
+ stable, menu does not need to be explicitly run in maintainer
+ scripts, except for packages with menu-methods files. (See #473467)
+ * dh_installdocs: No longer add maintainer script code to call
+ doc-base, as it supports triggers in stable.
+ * dh_bugfiles: New program, contributed by Modestas Vainius.
+ Closes: #326874
+ * dh: Override LC_ALL, not LANG. re-Closes: #517617
+ * dh_installchangelogs: Support -X to exclude automatic installation
+ of specific upstream changelogs. re-Closes: #490937
+ * Compat level 4 is now deprecated.
+ * dh_makeshlibs: Re-add --add-udeb support. Closes: #518655
+ * dh_shlibdeps: Remove --add-udeb switch (was accidentially added here).
+
+ -- Joey Hess <joeyh@debian.org> Sat, 07 Mar 2009 14:52:20 -0500
+
+debhelper (7.2.2) unstable; urgency=low
+
+ * dh_installmodules: Give files in /etc/modprobe.d a .conf
+ syntax, as required by new module-init-tools.
+ * dh_installmodules: Add preinst and postinst code to handle
+ cleanly renaming the modprobe.d files on upgrade.
+ * Two updates to conffile moving code from wiki:
+ - Support case where the conffile name is a substring of another
+ conffile's name.
+ - Support case where dpkg-query says the file is obsolete.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 04 Mar 2009 19:37:33 -0500
+
+debhelper (7.2.1) experimental; urgency=low
+
+ * Merged debhelper 7.0.52.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 28 Feb 2009 20:01:22 -0500
+
+debhelper (7.2.0) experimental; urgency=low
+
+ * Merged debhelper 7.0.50.
+ * dh: Fix typo. Closes: #509754
+ * debhelper.pod: Fix typo. Closes: #510180
+ * dh_gconf: Support mandatory settings. Closes: #513923
+ * Improve error messages when child commands fail.
+ * Depend on dpkg-dev 1.14.19, the first to support Package-Type
+ fields in dpkg-gencontrol.
+ * dh_gencontrol: No longer need to generate the udeb filename
+ when calling dpkg-gencontrol.
+ * dh_gencontrol: Do not need to tell dpkg-gencontol not to
+ include the Homepage field in udebs (fixed in dpkg-dev 1.14.17).
+
+ -- Joey Hess <joeyh@debian.org> Thu, 26 Feb 2009 18:33:44 -0500
+
+debhelper (7.1.1) experimental; urgency=low
+
+ * dh_install(1): Order options alphabetically. Closes:# 503896
+ * Fix some docs that refered to --srcdir rather than --sourcedir.
+ Closes: #504742
+ * Add Vcs-Browser field. Closes: #507804
+ * Ignore unknown options in DH_OPTIONS. Debhelper will always ignore
+ such options, even when unknown command-line options are converted back
+ to an error. This allows (ab)using DH_OPTIONS to pass command-specific
+ options.
+ (Note that getopt will warn about such unknown options. Eliminating this
+ warning without reimplementing much of Getopt::Long wasn't practical.)
+
+ -- Joey Hess <joeyh@debian.org> Sun, 14 Dec 2008 23:19:27 -0500
+
+debhelper (7.1.0) experimental; urgency=low
+
+ * dh_installchangelogs: Fall back to looking for changelog files ending
+ with ".txt". Closes: #498460
+ * dh_gencontrol: Ensure misc:Depends is set in substvars to avoid dpkg
+ complaining about it when it's empty. Closes: #498666
+ * dh: Fix typo in example. Closes: #500836
+ * Allow individual debhelper programs to define their own special options
+ by passing a hash to init(), which is later passed on the Getopt::Long.
+ Closes: #370823
+ * Move many command-specific options to only be accepted by the command
+ that uses them. Affected options are:
+ -x, -r, -R, -l, -L, -m,
+ --include-conffiles, --no-restart-on-upgrade, --no-start,
+ --restart-after-upgrade, --init-script, --filename, --flavor, --autodest,
+ --libpackage, --add-udeb, --dpkg-shlibdeps-params,
+ --dpkg-gencontrol-params, --update-rcd-params, --major, --remove-d,
+ --dirs-only, --keep-debug, --version-info, --list-missing, --fail-missing,
+ --language, --until, --after, --before, --remaining, --with
+ * If any third-party debhelper commands use any of the above options,
+ they will be broken, and need to be changed to pass options to init().
+ * To avoid breaking rules files that pass options to commands that do not
+ use them, debhelper will now only warn if it encounters an unknown
+ option. This will be converted back to an error later.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 10 Sep 2008 13:58:00 -0400
+
+debhelper (7.0.52) unstable; urgency=low
+
+ * dh: Fix make parsing to not be broken by locale settings.
+ Closes: #517617
+
+ -- Joey Hess <joeyh@debian.org> Sat, 28 Feb 2009 19:52:34 -0500
+
+debhelper (7.0.51) unstable; urgency=low
+
+ * dh: Man page typos. Closes: #517549, #517550
+
+ -- Joey Hess <joeyh@debian.org> Sat, 28 Feb 2009 13:23:30 -0500
+
+debhelper (7.0.50) unstable; urgency=low
+
+ * This release is designed to be easily backportable to stable,
+ to support the new style of rules file that I expect many packages will
+ use.
+ * dh: debian/rules override targets can change what is run
+ for a specific debhelper command in a sequence.
+ (Thanks Modestas Vainius for the improved makefile parser.)
+ * dh: Redid all the examples to use override targets, since these
+ eliminate all annoying boilerplate and are much easier to understand
+ than the old method.
+ * Remove rules.simple example, there's little need to use explicit targets
+ with dh anymore.
+ * dh: Support debian/rules calling make with -B,
+ which is useful to avoid issues with phony implicit
+ rules (see bug #509756).
+
+ -- Joey Hess <joeyh@debian.org> Fri, 27 Feb 2009 15:25:52 -0500
+
+debhelper (7.0.17) unstable; urgency=low
+
+ [ Per Olofsson ]
+ * dh_auto_install: Fix man page, was referring to dh_auto_clean.
+
+ [ Joey Hess ]
+ * dh_gencontrol: Drop the Homepage field from udebs. Closes: #492719
+ * Typo. Closes: #493062
+ * dh_auto_install: Improve check for MakeMaker, to avoid passing PREFIX
+ if the Makefile was generated by Module::Build::Compat. Closes: #496157
+
+ -- Joey Hess <joeyh@debian.org> Fri, 22 Aug 2008 22:30:12 -0400
+
+debhelper (7.0.16) unstable; urgency=low
+
+ * dh: Avoid passing --with on to subcommands. Closes: #490886
+ * dh_installchangelogs: When searching for changelog in v7 mode, skip
+ empty files. Closes: #490937
+
+ -- Joey Hess <joeyh@debian.org> Sat, 19 Jul 2008 15:34:13 -0400
+
+debhelper (7.0.15) unstable; urgency=low
+
+ * dh_clean: Do not delete *-stamp files in -k mode in v7. Closes: #489918
+
+ -- Joey Hess <joeyh@debian.org> Wed, 09 Jul 2008 16:16:11 -0400
+
+debhelper (7.0.14) unstable; urgency=low
+
+ * Load python-support sequence file first, to allow ones loaded later to
+ disable it.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 05 Jul 2008 08:23:32 -0400
+
+debhelper (7.0.13) unstable; urgency=low
+
+ * dh_auto_install: Rather than looking at the number of binary packages
+ being acted on, look at the total number of binary packages in the
+ source package when deciding whether to install to debian/package or
+ debian/tmp. This avoids inconsistencies when building mixed arch all+any
+ packages using the binary-indep and binary-arch targets.
+ Closes: #487938
+
+ -- Joey Hess <joeyh@debian.org> Wed, 25 Jun 2008 12:27:02 -0400
+
+debhelper (7.0.12) unstable; urgency=medium
+
+ * Correct docs about dh_install and debian/tmp in v7 mode. It first looks in
+ the current directory, or whatever is configured with --srcdir. Then it
+ always falls back to looking in debian/tmp.
+ * Medium urgency to get this doc fix into testing.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 25 Jun 2008 03:36:50 -0400
+
+debhelper (7.0.11) unstable; urgency=low
+
+ * dh: Man page fix. Closes: #485116
+ * Add stamp files to example rules targets. Closes: #486327
+ * Add a build dependency on file. The rules file now runs dh_strip and
+ dh_shlibdeps, which both use it. (It could be changed not to, but
+ it's good to have it run all the commands as a test.) Closes: #486439
+ * Typo fix. Closes: #486464
+
+ -- Joey Hess <joeyh@debian.org> Mon, 16 Jun 2008 12:39:21 -0400
+
+debhelper (7.0.10) unstable; urgency=low
+
+ * dh_compress: Do not compress index.sgml files, as generated by gtk-doc.
+ Closes: #484772
+
+ -- Joey Hess <joeyh@debian.org> Fri, 06 Jun 2008 11:48:39 -0400
+
+debhelper (7.0.9) unstable; urgency=low
+
+ * rules.tiny: Typo fix. Closes: #479647
+ * dh_installinit: Add --restart-after-upgrade, which avoids stopping a
+ daemon in the prerm, and instead restarts it in the postinst, keeping
+ its downtime minimal. Since some daemons could break if files are upgraded
+ while they're running, it's not the default. It might become the default
+ in a future (v8) compatibility level. Closes: #471060
+ * dh: fix POD error. Closes: #480191
+ * dh: Typo fixes. Closes: #480200
+ * dh: Add remove_command to the sequence interface.
+ * dh_auto_clean: setup.py clean can create pyc files. Remove. Closes: #481899
+
+ -- Joey Hess <joeyh@debian.org> Mon, 19 May 2008 12:47:47 -0400
+
+debhelper (7.0.8) unstable; urgency=low
+
+ * dh: Add an interface that third-party packages providing debhelper commands
+ can use to insert them into a command sequence.
+ (See dh(1), "SEQUENCE ADDONS".)
+ * dh: --with=foo can be used to include such third-party commands.
+ So, for example, --with=cli could add the dh_cli* commands from
+ cli-common.
+ * Moved python-support special case out of dh and into a python-support
+ sequence addon. --with=python-support is enabled by default to avoid
+ breaking backwards compatibility.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 04 May 2008 16:10:54 -0400
+
+debhelper (7.0.7) unstable; urgency=low
+
+ * dh_installxfonts: Fix precidence problem that exposes a new warning
+ message in perl 5.10.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 04 May 2008 13:43:41 -0400
+
+debhelper (7.0.6) unstable; urgency=low
+
+ * dh_auto_test: Correct Module::Build tests.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 03 May 2008 12:58:50 -0400
+
+debhelper (7.0.5) unstable; urgency=low
+
+ * Convert copyright file to new format.
+ * dh_test*: inhibit logging. Closes: #478958
+
+ -- Joey Hess <joeyh@debian.org> Thu, 01 May 2008 19:52:00 -0400
+
+debhelper (7.0.4) unstable; urgency=low
+
+ * Fix underescaped $ in Makefile. Closes: #478475
+ * dh_auto_test: Run tests for Module::Build packages. (Florian Ragwitz)
+
+ -- Joey Hess <joeyh@debian.org> Wed, 30 Apr 2008 02:17:01 -0400
+
+debhelper (7.0.3) unstable; urgency=low
+
+ * dh: Fix man page typos. Closes: #477933
+ * Add missing $! to error message when the log can't be opened.
+ * One problem with the log files is that if dh_clean is not the last command
+ run, they will be left behind. This is a particular problem on build
+ daemons that use real root. Especially if cdbs is used, since it runs
+ dh_listpackages after clean, thereby leaving behind log files that
+ only root can touch. Avoid this particular special case by inhibiting
+ logging by dh_listpackages.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 29 Apr 2008 01:40:03 -0400
+
+debhelper (7.0.2) unstable; urgency=low
+
+ * dh: Optimise the case where the binary-arch or binary-indep sequence is
+ run and there are no packages of that type.
+ * dh_auto_configure: Set PERL_MM_USE_DEFAULT when configuring MakeMaker
+ packages to avoid interactive prompts.
+ * dh_auto_*: Also support packages using Module::Build.
+ * dh_auto_*: Fix some calls to setup.py. Now tested and working with
+ python packages.
+ * dh_install: Find all possible cases of "changelog" and "changes", rather
+ than just looking for some predefined common cases.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 24 Apr 2008 21:55:49 -0400
+
+debhelper (7.0.1) unstable; urgency=low
+
+ * I lied, one more v7 change slipped in..
+ * dh_installchangelogs: In v7 mode, if no upstream changelog is specified,
+ and the package is not native, guess at a few common changelog filenames.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 24 Apr 2008 00:16:19 -0400
+
+debhelper (7.0.0) unstable; urgency=low
+
+ * dh: New program that runs a series of debhelper commands in a sequence.
+ This can be used to construct very short rules files (as short as 3
+ lines), while still exposing the full power of debhelper when it's
+ needed.
+ * dh_auto_configure: New program, automates running ./configure,
+ Makefile.PL, and python distutils. Calls them with exactly the same
+ options as cdbs does by default, and allows adding/overriding options.
+ * dh_auto_build: New program, automates building the package by either
+ running make or using setup.py. (Support for cmake and other build systems
+ planned but not yet implemented.)
+ * dh_auto_test: New program, automates running make test or make check
+ if the Makefile has such a target.
+ * dh_auto_clean: New program, automates running make clean (or distclean,
+ or realclean), or using setup.py to clean up.
+ * dh_auto_install: New program, automates running make install, or using
+ setup.py to install. Supports the PREFIX=/usr special case needed by
+ MakeMaker Makefiles. (Support for cmake and other build systems planned
+ but not yet implemented.)
+ * New v7 mode, which only has three changes from v6, and is the new
+ recommended default, especially when using dh.
+ * dh_install: In v7 mode, if --sourcedir is not specified, first look for
+ files in debian/tmp, and then will look in the current directory. This
+ allows dh_install to interoperate with dh_auto_install without needing any
+ special parameters.
+ * dh_clean: In v7 mode, read debian/clean and delete all files listed
+ therein.
+ * dh_clean: In v7 mode, automatically delete *-stamp files.
+ * Add a Makefile and simplify this package's own rules file using
+ all the new toys.
+ * dh_clean: Don't delete core dumps. (Too DWIM, and "core" is not
+ necessarily a core dump.) Closes: #477391
+ * dh_prep: New program, does the same as dh_clean -k (which will be
+ deprecated later).
+
+ -- Joey Hess <joeyh@debian.org> Wed, 23 Apr 2008 23:14:57 -0400
+
+debhelper (6.0.12) unstable; urgency=low
+
+ * dh_icons: Support .xpm format icons. Stop looking for .jpg icons, and
+ also, for completeness, support .icon files. This matches the set of
+ extensions supported by gtk-update-icon-cache. Closes: #448094
+
+ -- Joey Hess <joeyh@debian.org> Sat, 19 Apr 2008 16:43:31 -0400
+
+debhelper (6.0.11) unstable; urgency=medium
+
+ * dh_installman: man --recode transparently uncompresses compressed
+ pages. So when saving the output back, save it to a non-compressed
+ filename (and delete the original, compressed file). Closes: #470913
+
+ -- Joey Hess <joeyh@debian.org> Tue, 01 Apr 2008 18:31:12 -0400
+
+debhelper (6.0.10) unstable; urgency=low
+
+ * dh_perl: Remove empty directories created by MakeMaker.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 25 Mar 2008 14:11:57 -0400
+
+debhelper (6.0.9) unstable; urgency=low
+
+ * dh_installman: Don't recode symlinks. Closes: #471196
+
+ -- Joey Hess <joeyh@debian.org> Sun, 16 Mar 2008 13:53:39 -0400
+
+debhelper (6.0.8) unstable; urgency=low
+
+ * dh_installman: Convert all man pages in the build directory to utf-8, not
+ just those installed by the program.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 10 Mar 2008 18:40:25 -0400
+
+debhelper (6.0.7) unstable; urgency=low
+
+ * dh_lintian: Finally added this since linda is gone and there's only
+ lintian to worry about supporting. Closes: #109642, #166320, #206765
+ (Thanks to Steve M. Robbins for the initial implementation.)
+
+ -- Joey Hess <joeyh@debian.org> Thu, 06 Mar 2008 13:55:46 -0500
+
+debhelper (6.0.6) unstable; urgency=low
+
+ * dh_compress: Pass -n to gzip to yeild more reproducible file contents.
+ The time stamp information need not be contained in the .gz file since the
+ time stamp is preserved when compressing and decompressing. Closes: #467100
+ * The order of dependencies generated by debhelper has been completly random
+ (hash key order), so sort it. Closes: #468959
+
+ -- Joey Hess <joeyh@debian.org> Wed, 05 Mar 2008 21:35:21 -0500
+
+debhelper (6.0.5) unstable; urgency=low
+
+ * dh_installman: Recode all man pages to utf-8 on installation.
+ Closes: #462937 (Colin Watson)
+ * Depend on a new enough version of man-db.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 28 Jan 2008 16:43:10 -0500
+
+debhelper (6.0.4) unstable; urgency=low
+
+ * dh_strip: Improve the idempotency fix put in for #380314.
+ * dh_strip: The -k flag didn't work (--keep did). Fix.
+ * dh_shlibdeps: Add emul to exclude list.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 26 Jan 2008 18:32:27 -0500
+
+debhelper (6.0.3) unstable; urgency=low
+
+ * dh_link: -X can be used to avoid it modifying symlinks to be compliant
+ with policy. Closes: #461392
+ * dh_shlibdeps: Rather than skipping everything in /usr/lib/debug,
+ which can include debug libraries that dpkg-shlibdeps should look at,
+ only skip the subdirectories of it that contain separate debugging
+ symbols. (Hardcoding the names of those directories is not the best
+ implementation, but it will do for now.) Closes: #461339
+
+ -- Joey Hess <joeyh@debian.org> Sun, 20 Jan 2008 15:27:59 -0500
+
+debhelper (6.0.2) unstable; urgency=low
+
+ * Revert slightly broken refactoring of some exclude code.
+ Closes: #460340, #460351
+
+ -- Joey Hess <joeyh@debian.org> Sat, 12 Jan 2008 12:31:15 -0500
+
+debhelper (6.0.1) unstable; urgency=low
+
+ * dh_installdocs/examples: Don't unnecessarily use the exclude code path.
+ * dh_install{,docs,examples}: Avoid infinite recursion when told to
+ install a directory ending with "/." (slashdot effect?) when exclusion is
+ enabled. Emulate the behavior of cp in this case. Closes: #253234
+ * dh_install: Fix #459426 here too.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 11 Jan 2008 14:15:56 -0500
+
+debhelper (6.0.0) unstable; urgency=low
+
+ * dh_gencontrol: Stop passing -isp, it's the default now. Closes: #458114
+ * dh_shlibdeps: Update documentation for -L and -l. dpkg-shlibdeps is now
+ much smarter, and these options are almost never needed. Closes: #459226
+ * dh_shlibdeps: If a relative path is specified in -l, don't prepend the pwd
+ to it, instead just prepend a slash to make it absolute. dpkg-shlibdeps
+ has changed how it used LD_LIBRARY_PATH, so making it point into the
+ package build directory won't work.
+ * dh_shlibdeps: Change "-L pkg" to cause "-Sdebian/pkg" to be passed to
+ dpkg-shlibdeps. The old behavior of passing -L to dpkg-shlibdeps didn't
+ affect where it looked for symbols files. Closes: #459224
+ * Depend on dpkg-dev 1.14.15, the first to support dpkg-shlibdeps -S.
+ * dh_installdocs, dh_installexamples: Support files with spaces in exclude
+ mode. Closes: #459426
+ * debhelper v6 mode is finalised and is the new recommended compatibility
+ level.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 08 Jan 2008 17:12:36 -0500
+
+debhelper (5.0.63) unstable; urgency=low
+
+ * dh_installdocs: Tighten doc-base document id parsing to only accept
+ the characters that the doc-base manual allows in the id. Closes: #445541
+
+ -- Joey Hess <joeyh@debian.org> Sat, 22 Dec 2007 22:54:51 -0500
+
+debhelper (5.0.62) unstable; urgency=low
+
+ * Remove execute bit from desktop files in /usr/share/applications.
+ Closes: #452337
+ * Fix man page names of translated debhelper(7) man pages.
+ Patch from Frédéric Bothamy. Closes: 453051
+ * dh_makeshlibs: Use new -I flag to specify symbol files, necessary to
+ properly support includes. Closes: #452717
+ * Increase dpkg-dev dependency to 1.14.12 to ensure that dh_makeshlibs
+ isn't used with an old dpkg-gensymbols that doesn't support -I.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 29 Nov 2007 12:04:59 -0500
+
+debhelper (5.0.61) unstable; urgency=low
+
+ * Man page fix re v4. Closes: #450608
+ * dh_makeshlibs: Support symbols files. Closes: #443978
+ Packages using this support should build-depend on dpkg-dev (>= 1.14.8).
+ Symbols files can be downloaded from mole:
+ http://qa.debian.org/cgi-bin/mole/seedsymbols
+
+ -- Joey Hess <joeyh@debian.org> Mon, 19 Nov 2007 14:27:57 -0500
+
+debhelper (5.0.60) unstable; urgency=low
+
+ * Debhelper is now developed in a git repository.
+ * Reword paragraph about debian/compress files to perhaps be more clear
+ about the debian/compress file. Closes: #448759
+ * dh_installdirs(1): Remove unnecessary caveat about slashes.
+ * dh_icons: Now that GTK 2.12 has entered testing, use the much simpler to
+ call update-icon-caches command. Thanks, Josselin Mouette.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 02 Nov 2007 23:21:08 -0400
+
+debhelper (5.0.59) unstable; urgency=low
+
+ * dh_installdeb: Add support for dpkg triggers, by installing
+ debian/package.triggers files.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 22 Oct 2007 13:59:18 -0400
+
+debhelper (5.0.58) unstable; urgency=low
+
+ * dh_clean: append "/" to the temp dir name to avoid removing
+ a file with the same name. Closes: #445638
+
+ -- Joey Hess <joeyh@debian.org> Fri, 19 Oct 2007 21:25:50 -0400
+
+debhelper (5.0.57) unstable; urgency=low
+
+ * Add --ignore option. This is intended to ease dealing with upstream
+ tarballs that contain debian directories, by allowing debhelper config
+ files in those directories to be ignored, since there's generally no
+ good way to delete them out of the upstream tarball, and they can easily
+ get in the way if upstream is using debian/ differently than the Debian
+ maintainer.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 30 Sep 2007 13:42:09 -0400
+
+debhelper (5.0.56) unstable; urgency=low
+
+ * dh_installmodules: Since modutils is gone, stop supporting
+ debian/*.modutils files. Warn about such files. Closes: #443127
+
+ -- Joey Hess <joeyh@debian.org> Tue, 18 Sep 2007 18:16:13 -0400
+
+debhelper (5.0.55) unstable; urgency=low
+
+ * dh_desktop: Only generate calls to update-desktop-database for desktop
+ files with MimeType fields. Patch from Emmet Hikory. Closes: #427831
+ * dh_strip: Don't run objcopy if the output file already exists.
+ Closes: #380314
+ * dh_strip: Check that --dbg-package lists the name of a real package.
+ Closes: #442480
+
+ -- Joey Hess <joeyh@debian.org> Sun, 16 Sep 2007 19:50:08 -0400
+
+debhelper (5.0.54) unstable; urgency=low
+
+ * dh_strip: Man page reference to policy section on DEB_BUILD_OPTIONS.
+ Closes: #437337
+ * dh_link: Skip self-links. Closes: #438572
+ * Don't use - in front of make clean in example rules files.
+ * Typo. Closes: #441272
+
+ -- Joey Hess <joeyh@debian.org> Sat, 08 Sep 2007 21:52:40 -0400
+
+debhelper (5.0.53) unstable; urgency=low
+
+ * dh_icons: Check for index.theme files before updating the cache.
+ Closes: #432824
+
+ -- Joey Hess <joeyh@debian.org> Fri, 13 Jul 2007 14:51:00 -0400
+
+debhelper (5.0.52) unstable; urgency=low
+
+ * Remove DOS line endings from dh_icons scriptlets. Thanks, Daniel Holbach.
+ Closes: #432321
+
+ -- Joey Hess <joeyh@debian.org> Mon, 09 Jul 2007 11:26:18 -0400
+
+debhelper (5.0.51) unstable; urgency=low
+
+ * dh_icons: New program to update Freedesktop icon caches. Thanks
+ to Josselin Mouette, Ross Burton, Jordi Mallach, and Loïc Minier.
+ Closes: #329460
+ * Note that as a transitional measure, dh_icons will currently only update
+ existing caches, and not create and new caches. Once everything is
+ updating the icon caches, this will be changed. See #329460 for the full
+ plan.
+ * Remove possibly confusing (though strictly accurate) sentence from
+ dh_installdirs.1. Closes: #429318
+ * dh_gencontrol: Fix man page typo. Closes: #431232
+
+ -- Joey Hess <joeyh@debian.org> Sun, 08 Jul 2007 18:16:21 -0400
+
+debhelper (5.0.50) unstable; urgency=low
+
+ * dh_installwm: If a path is not given, assume the file is in usr/bin, since
+ usr/X11R6/bin now points to there.
+ * Update urls to web page.
+ * Add some checks for attempts to act on packages not defined in the control
+ file. (Thanks Wakko)
+ * Use dpkg-query to retrieve conffile info in udev rules upgrade code
+ rather than parsing status directly. (Thanks Guillem)
+
+ -- Joey Hess <joeyh@debian.org> Thu, 31 May 2007 13:14:06 -0400
+
+debhelper (5.0.49) unstable; urgency=low
+
+ * dh_installwm: Fix several stupid bugs, including:
+ - man page handling was supposed to be v6 only and was not
+ - typo in alternatives call
+ - use the basename of the wm to get the man page name
+ Closes: #420158
+ * dh_installwm: Also make the code to find the man page more robust and
+ fall back to not registering a man page if it is not found.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 20 Apr 2007 13:43:35 -0400
+
+debhelper (5.0.48) unstable; urgency=low
+
+ * Remove use of #SECTION# from dh_installinfo postinst snippet
+ that was accidentially re-added in 5.0.46 due to a corrupt svn checkout.
+ Closes: #419849
+
+ -- Joey Hess <joeyh@debian.org> Wed, 18 Apr 2007 13:24:58 -0400
+
+debhelper (5.0.47) unstable; urgency=low
+
+ * Fix absurd typo. How did I test for an hour and miss that? Closes: #419612
+
+ -- Joey Hess <joeyh@debian.org> Mon, 16 Apr 2007 18:20:20 -0400
+
+debhelper (5.0.46) unstable; urgency=low
+
+ * Fix a typo in postinst-udev.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 16 Apr 2007 12:39:41 -0400
+
+debhelper (5.0.45) unstable; urgency=low
+
+ * dh_installudev: Install udev rules directly into /etc/udev/rules.d/, not
+ using the symlinks. MD has agreed that this is more appropriate for most
+ packages.
+ * That fixes the longstanding bug that the symlink was only made on brand
+ new installs of the package, rather than on upgrade to the first version
+ that includes the udev rules file. Closes: #359614
+ * This avoids the need to run udevcontrol reload_rules, since inotify
+ will see the file has changed. Closes: #414537
+ * dh_installudev: Add preinst and postinst code to handle cleanly moving
+ the rules file to the new location on upgrade.
+ * This would be a good time for the many packages that manage rules files
+ w/o using dh_installudev to begin to use it..
+ * Do script fragement reversal only in v6, since it can break certian
+ third party programs such as dh_installtex. Closes: #419060
+
+ -- Joey Hess <joeyh@debian.org> Fri, 13 Apr 2007 12:34:10 -0400
+
+debhelper (5.0.44) unstable; urgency=low
+
+ * dh_installudev: Don't fail if the link already somehow exists on initial
+ package install. Closes: #415717
+ * prerm and postrm scripts are now generated in a reverse order than
+ preinst and postinst scripts. For example, if a package uses
+ dh_pysupport before dh_installinit, the prerm will first stop the init
+ script and then remove the python files.
+ * Introducing beginning of v6 mode.
+ * dh_installwm: In v6 mode, install a slave manpage link for
+ x-window-manager.1.gz. Done in v6 mode because some window managers
+ probably work around this longstanding debhelper bug by registering the
+ slave on their own. This bug was only fixable once programs moved out of
+ /usr/X11R6. Closes: #85963
+ * dh_builddeb: In v6 mode, fix bug in DH_ALWAYS_EXCLUDE handling, to work
+ the same as all the other code in debhelper. This could only be fixed in
+ v6 mode because packages may potentially legitimately rely on the old
+ buggy behavior. Closes: #242834
+ * dh_installman: In v6 mode, overwrite existing man pages. Closes: #288250
+ * Add dh_installifupdown. Please consider using this if you have
+ /etc/network/if-up.d, etc files. Closes: #217552
+
+ -- Joey Hess <joeyh@debian.org> Mon, 09 Apr 2007 15:18:22 -0400
+
+debhelper (5.0.43) unstable; urgency=low
+
+ [ Valery Perrin ]
+ * Correct typo in french translation
+
+ [ Joey Hess ]
+ * Typo. Closes: #400571
+ * dh_fixperms: Change a chmod +x to chmod a+x, to avoid the umask
+ influencing it.
+ * Looks like Package-Type might get into dpkg. Support it w/o the XB-
+ too.
+ * dh_installudev: Fix postrm to not fail if the udev symlink is missing.
+ Closes: #406921, #381940
+ * dh_fixperms: Make all files in /usr/include 644, not only .h files.
+ Closes: #404785
+ * Man page improvements. Closes: #406707
+ * dh_installdocs: In v5 mode, now ignore empty files even if they're hidden
+ away inside a subdirectory. The code missed this before. See #200905
+ * dh_installudev: Support debian/udev files. Closes: #381854
+ * dh_installudev: Treat --priority value as a string so that leading zeros
+ can be used (also so that a leading "z" that is not "z60" can be
+ specified). Closes: #381851
+ * Misc minor changes.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 21 Jan 2007 12:44:02 -0500
+
+debhelper (5.0.42) unstable; urgency=low
+
+ [ Valery Perrin ]
+ * Update french translation with recents changes in dh_link and
+ dh_installinfo
+
+ [ Joey Hess ]
+ * Patch from Simon Paillard to convert French manpages from utf-8 to
+ ISO-8859-15. Closes: #397953
+
+ -- Joey Hess <joeyh@debian.org> Sun, 12 Nov 2006 17:32:23 -0500
+
+debhelper (5.0.41) unstable; urgency=low
+
+ [ Joey Hess ]
+ * dh_installchangelogs man page typo. Closes: #393155
+
+ [ Valery Perrin ]
+ * Encoding french translation from charset ISO-8859-1 to UTF-8
+ * Update french translation with recent change in dh_installchangelogs
+
+ [ Joey Hess ]
+ * Tighten python-support and python-central dependencies of debhelper,
+ in an IMHO rather futile attempt to deal with derived distributions.
+ Closes: #395495
+ * Correct some incorrect instances of "v4 only" in docs. Closes: #381536
+ * dh_installinfo: Put the section madness to bed by not passing any section
+ information to install-info. Current install-info parses INFO-DIR-SECTION
+ on its own if that's not specified. Closes: #337215
+
+ -- Joey Hess <joeyh@debian.org> Tue, 7 Nov 2006 17:04:47 -0500
+
+debhelper (5.0.40) unstable; urgency=medium
+
+ [ Valery Perrin ]
+ * Update french translation with recent change in dh_python
+
+ [ Joey Hess ]
+ * Tighten conflict with python-central. Closes: #391463
+
+ -- Joey Hess <joeyh@debian.org> Fri, 6 Oct 2006 14:21:28 -0400
+
+debhelper (5.0.39) unstable; urgency=low
+
+ * dh_python: Also be a no-op if there's a Python-Version control file field.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 3 Oct 2006 13:02:24 -0400
+
+debhelper (5.0.38) unstable; urgency=low
+
+ [ Valery Perrin ]
+ * Update french translation with recent change in dh_installmodules
+
+ [ Joey Hess]
+ * ACK last three NMUs with thanks to Raphael Hertzog for making the best of
+ a difficult situation.
+ * Revert all dh_python changes. Closes: #381389, #378604
+ * Conflict with python-support <= 0.5.2 and python-central <= 0.5.4.
+ * Make dh_python do nothing if debian/pycompat is found.
+ The new versions of dh_pysupport or dh_pycentral will take care of
+ everything dh_python used to do in this situation.
+ * dh_python is now deprecated. Closes: #358392, #253582, #189474
+ * move po4a to Build-Depends as it's run in clean.
+ * Add size test, which fails on any debhelper program of more than 150
+ lines (excluding POD). This is not a joke, and 100 lines would be better.
+ * Add size test exception for dh_python, since it's deprecated.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 1 Oct 2006 13:07:40 -0400
+
+debhelper (5.0.37.3) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Update of dh_python
+ - when buidling for a non-standard Python version, generate more
+ reasonable Depends like "python (>= X.Y) | pythonX.Y"
+ Closes: #375576
+ - fix handling of private extensions. Closes: #375948
+ - fix parsing of XS-Python-Version, it didn't work if only fixed versions
+ were listed in XS-Python-Version.
+ - fix use of unitialized value. Closes: #374776
+ - fix typos in POD documentation. Closes: #375936
+
+ -- Raphael Hertzog <hertzog@debian.org> Mon, 10 Jul 2006 13:20:06 +0200
+
+debhelper (5.0.37.2) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Update of dh_python
+ - vastly refactored, easier to understand, and the difference
+ between old policy and new policy is easier to grasp
+ - it supports an -X option which can be used to not scan some files
+ - uses debian/pyversions as reference source of information for
+ dependencies but also parse the XS-Python-Version header as fallback.
+ - ${python:Versions}'s default value is XS-Python-Version's value
+ instead of "all" when the package doesn't depend on a
+ specific python version. Closes: #373853
+ - always generate ${python:Provides} and leave the responsibility to the
+ maintainer to not use ${python:Provides} if he doesn't want the
+ provides.
+ - uses debian/pycompat or DH_PYCOMPAT as reference field to run in new
+ policy mode. The presence of XS-Python-Version will also trigger the
+ new policy mode (this is for short-term compatibility, it may be removed in
+ the not too-distant future).
+ DH_PYCOMPAT=1 is the default mode and is compatible to the old policy.
+ DH_PYCOMPAT=2 is the new mode and is compatible with the new policy.
+ * Use "grep ^Version:" instead of "grep Version:" on the output of
+ dpkg-parsechangelog since the above changelog entry matched "Version:" and
+ thus made the build fail.
+
+ -- Raphael Hertzog <hertzog@debian.org> Sat, 17 Jun 2006 20:44:29 +0200
+
+debhelper (5.0.37.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Integrate the new dh_python implementing the new Python policy. Closes: #370833
+
+ -- Raphael Hertzog <hertzog@debian.org> Mon, 12 Jun 2006 08:58:22 +0200
+
+debhelper (5.0.37) unstable; urgency=low
+
+ * dh_installmodules: depmod -a is no longer run during boot, so if a module
+ package is installed for a kernel other than the running kernel, just
+ running depmod -a in the postinst is no longer sufficient. Instead, run
+ depmod -a -F /boot/System.map-<kvers> <kvers>
+ The kernel version is guessed at based on the path to the modules in the
+ package. Closes: #301424
+ * dh_installxfonts: In postrm, run the deregistraton code even on upgrade,
+ in case an upgrade involves moving fonts around (or removing or renaming
+ fonts). Closes: #372686
+
+ -- Joey Hess <joeyh@debian.org> Sun, 11 Jun 2006 21:17:38 -0400
+
+debhelper (5.0.36) unstable; urgency=low
+
+ [ Valery Perrin ]
+ * Update french translation with recent change in dh_installxfonts
+
+ [ Joey Hess ]
+ * Remove old alternate dependency on fileutils. Closes: #370011
+ * Patch from Guillem Jover to make --same-arch handling code support
+ the new form of architecture wildcarding which allows use of things
+ like "linux-any" and "any-i386" in the Architecture field. Closes: #371082
+ * Needs dpkg-dev 1.13.13 for dpkg-architecture -s support needed by
+ above, but already depends on that.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 9 Jun 2006 14:57:19 -0400
+
+debhelper (5.0.35) unstable; urgency=low
+
+ * dh_installman: When --language is used, be smarter about stripping
+ language codes from man page filenames. Only strip things that look like
+ codes that match the specified languages. Closes: #366645
+ * dh_installxfonts: /etc/X11/fonts/X11R7 is deprecated, back to looking in
+ old location, and not passing --x11r7-layout to update-fonts-alias and
+ update-fonts-scale (but still to update-fonts-dir). Closes: #366234
+
+ -- Joey Hess <joeyh@debian.org> Wed, 10 May 2006 20:09:00 -0400
+
+debhelper (5.0.34) unstable; urgency=low
+
+ * dh_installcatalogs: Make sure that /etc/sgml exists. Closes: #364946
+
+ -- Joey Hess <joeyh@debian.org> Thu, 27 Apr 2006 12:07:56 -0400
+
+debhelper (5.0.33) unstable; urgency=low
+
+ [ Valery Perrin ]
+ * Update french translation with recent change in dh_installxfonts
+
+ [ Joey Hess ]
+ * dh_installxfonts: Patch from Theppitak Karoonboonyanan to fix
+ an instance of /etc/X11/fonts/ that was missed before. Closes: #364530
+
+ -- Joey Hess <joeyh@debian.org> Sun, 23 Apr 2006 22:37:54 -0400
+
+debhelper (5.0.32) unstable; urgency=low
+
+ * dh_installudev: Include rules.d directory so symlink can be made even
+ before udev is installed. Closes: #363307
+
+ -- Joey Hess <joeyh@debian.org> Tue, 18 Apr 2006 10:13:54 -0400
+
+debhelper (5.0.31) unstable; urgency=low
+
+ [ Valery Perrin ]
+ * Update french translation with recents changes in dh_installxfonts,
+ dh_link and dh_compress manpages
+ * Delete -f option in po4a command line. Bug in po4a has been corrected in
+ new version (0.24.1).
+ * Change build-depends for po4a. New version (0.24.1).
+ * Add code for removing empty "lang" directories into man/ when cleaning.
+
+ [ Joey Hess ]
+ * dh_installxfonts: pass --x11r7-layout to update-fonts-* commands to ensure
+ they use the right new directory. Closes: #362820
+ * dh_installxfonts: also, alias files have moved from /etc/X11/fonts/* to
+ /etc/X11/fonts/X11R7/*, update call to update-fonts-alias and the man page
+ accordingly; packages containing alias files will need to switch to the
+ new directory on their own.
+ * dh_installudev: correct documentation for --name. Closes: #363028
+ * Fix broken directory removal code.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 17 Apr 2006 16:12:41 -0400
+
+debhelper (5.0.30) unstable; urgency=low
+
+ * Convert the "I have no packages to build" error into a warning. Am I
+ really the first person to run into the case of a source package that
+ builds an arch all package and an single-arch package? In this case,
+ the binary-arch target needs to use -s and do nothing when run on some
+ other arch, and debhelper will now support this.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 14 Apr 2006 00:35:55 +0200
+
+debhelper (5.0.29) unstable; urgency=low
+
+ * dh_installxfonts: Random hack to deal with X font dirs moving to
+ /usr/share/fonts/X11/ -- look there for fonts as well as in the old
+ location, although the old location probably won't be seen by X anymore.
+ * dh_installxfonts: Generate misc:Depends on new xfonts-utils.
+ * dh_compress: compress pcm fonts under usr/share/fonts/X11/
+ * dh_link: change example that used X11R6 directory.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 13 Apr 2006 10:29:29 +0200
+
+debhelper (5.0.28) unstable; urgency=low
+
+ * dh_makeshlibs: Fix udeb package name regexp. Closes: #361677
+
+ -- Joey Hess <joeyh@debian.org> Sun, 9 Apr 2006 13:05:50 -0400
+
+debhelper (5.0.27) unstable; urgency=low
+
+ [ Joey Hess ]
+ * Typo. Closes: #358904
+ * dh_install: swap two paras in man page for clarity. Closes: #359182
+ * dh_installman: die with an error if a man page read for so lines fails
+ Closes: #359020
+
+ [ Valery Perrin ]
+ * Update pot file and french translation with recent changes in
+ dh_installdirs and dh_movefiles manpages
+
+ -- Joey Hess <joeyh@debian.org> Thu, 30 Mar 2006 15:22:12 -0500
+
+debhelper (5.0.26) unstable; urgency=high
+
+ * dh_installinit: Fix badly generated code in maint scripts that used
+ || exit 0 instead of the intended
+ || exit $?
+ due to a bad shell expansion and caused invoke-rc.d errors to be
+ ignored. Closes: #337664
+
+ Note: This has been broken since version 4.2.12 and has affected many
+ packages.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 22 Mar 2006 19:33:38 -0500
+
+debhelper (5.0.25) unstable; urgency=low
+
+ * dh_installdebconf: For udebs, misc:Depends will now contain cdebconf-udeb.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 15 Mar 2006 16:13:05 -0500
+
+debhelper (5.0.24) unstable; urgency=low
+
+ [ Joey Hess ]
+ * Add dh_installudev by Marco d'Itri.
+
+ [ vperrin forgot to add this to the changelog when committing ]
+ * Update pot file and french translation with recent changes in
+ the dh_installdebconf manpage
+ * Add -f option to force .pot file re-building. This is in waiting
+ a patch, correcting a bug in po4a_0.23.1
+ * Add --rm-backups in clean: Otherwise ll.po~ are included in the
+ source package. (see debhelper_5.0.22.tar.gz)
+
+ -- Joey Hess <joeyh@debian.org> Thu, 23 Feb 2006 11:40:22 -0500
+
+debhelper (5.0.23) unstable; urgency=low
+
+ * dh_strip: remove binutils build-dep lines since stable has a new enough
+ version. Closes: #350607
+ * dh_installdebconf: drop all support for old-style translated debconf
+ templates files via debconf-mergetemplate (keep a warning if any are
+ found, for now). Allows dropping debhelper's dependency on
+ debconf-utils. Closes: #331796
+
+ -- Joey Hess <joeyh@debian.org> Mon, 20 Feb 2006 16:42:30 -0500
+
+debhelper (5.0.22) unstable; urgency=low
+
+ * dh_makeshlibs: add support for adding udeb: lines to shlibs file
+ via --add-udeb parameter. Closes: #345471
+ * dh_shlibdeps: pass -tudeb to dpkg-shlibdeps for udebs. Closes: #345472
+ * Depends on dpkg-dev 1.13.13 for dh_shlibdeps change.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 28 Jan 2006 13:04:53 -0500
+
+debhelper (5.0.21) unstable; urgency=low
+
+ * dh_installman: correct mistake that broke translated man page installation
+ Closes: #349995
+
+ -- Joey Hess <joeyh@debian.org> Thu, 26 Jan 2006 12:32:44 -0500
+
+debhelper (5.0.20) unstable; urgency=low
+
+ * Minor bug fix from last release.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 23 Jan 2006 20:29:10 -0500
+
+debhelper (5.0.19) unstable; urgency=low
+
+ * dh_installman: add support for --language option to override man page
+ language guessing. Closes: #193221
+
+ -- Joey Hess <joeyh@debian.org> Mon, 23 Jan 2006 18:52:00 -0500
+
+debhelper (5.0.18) unstable; urgency=low
+
+ * Improved po4a cleaning. Closes: #348521
+ * Reverted change in 4.1.9, so generation of EXCLUDE_FIND escapes "." to
+ "\\.", which turns into "\." after being run through the shell, and
+ prevents find from treating -X.svn as a regexp that matches files such
+ as foo/svn.vim. (It's safe to do this now that all uses of EXCLUDE_FIND are
+ via complex_doit(), which was not the case of dh_clean when this change
+ was originally made.) Closes: #349070
+
+ -- Joey Hess <joeyh@debian.org> Fri, 20 Jan 2006 17:09:31 -0500
+
+debhelper (5.0.17) unstable; urgency=low
+
+ * dh_python: Temporarily revert change in 5.0.13 to make use of
+ python-support for packages providing private modules or python-only
+ modules, since python policy hasn't been updated for this yet.
+ Closes: #347758
+
+ -- Joey Hess <joeyh@debian.org> Mon, 16 Jan 2006 17:39:20 -0500
+
+debhelper (5.0.16) unstable; urgency=low
+
+ * Fix dangling markup in dh_installinit pod. Closes: #348073
+ * Updated French translation from Valéry Perrin. Closes: #348074
+
+ -- Joey Hess <joeyh@debian.org> Sun, 15 Jan 2006 17:29:27 -0500
+
+debhelper (5.0.15) unstable; urgency=low
+
+ * Fix ghastly option parsing error in last release that broke
+ --noscripts (-n was ok). Thanks, Marc Haber. Closes: #347577
+
+ -- Joey Hess <joeyh@debian.org> Wed, 11 Jan 2006 12:38:41 -0500
+
+debhelper (5.0.14) unstable; urgency=low
+
+ * dh_installinit: If run with -o, do the inverse of -n and only
+ set up maintainer script snippets, w/o installing any files.
+ Useful for those edge cases where the init script is provided by upstream
+ and not easily installed by dh_installinit but where it's worth letting
+ it manage the maintainer scripts anyway. Closes: #140881, #184980
+ * -o might be added for other similar commands later if there is any
+ reason to. And yeah, it means that -no is close to a no-op..
+
+ -- Joey Hess <joeyh@debian.org> Sun, 8 Jan 2006 17:21:52 -0500
+
+debhelper (5.0.13) unstable; urgency=low
+
+ [ Joey Hess ]
+ * debhelper svn moved to alioth
+ * debhelper(7): document previous dh_install v5 change re wildcarding.
+ * dh_link: add special case handling for paths to a directory containing the
+ link. Closes: #346405
+ * dh_link: add special case handling for link to /
+
+ [ Josselin Mouette ]
+ * dh_python: make use of python-support for packages providing private
+ modules or python-only modules. This should greatly reduce the
+ number of packages needing to transition together with python.
+ * postinst-python: don't build the .pyo files, they aren't even used!
+ * dh_gconf: add support for debian/package.gconf-defaults, to provide
+ defaults for a package without patching the schemas.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 7 Jan 2006 23:34:26 -0500
+
+debhelper (5.0.12) unstable; urgency=low
+
+ * dh_installdocs: document that -X affects doc-base file installation.
+ Closes: #345291
+
+ -- Joey Hess <joeyh@debian.org> Fri, 30 Dec 2005 14:27:14 -0500
+
+debhelper (5.0.11) unstable; urgency=low
+
+ * French translation update. Closes: #344133
+
+ -- Joey Hess <joeyh@debian.org> Tue, 20 Dec 2005 14:40:25 -0500
+
+debhelper (5.0.10) unstable; urgency=low
+
+ * dh_installdocs: Fix bug introduced by empty file skipping that prevented
+ errors for nonexistent files. Closes: #342729
+
+ -- Joey Hess <joeyh@debian.org> Fri, 9 Dec 2005 18:05:15 -0500
+
+debhelper (5.0.9) unstable; urgency=low
+
+ * dh_installmodules: always run depmod, since if module-init-tools but not
+ modutils is installed, it will not get run by update-modules.
+ Closes: #339658
+
+ -- Joey Hess <joeyh@debian.org> Thu, 8 Dec 2005 13:04:11 -0500
+
+debhelper (5.0.8) unstable; urgency=low
+
+ * Man page type fixes (yes, more, nice to know people read the man pages).
+ Closes: #341289
+ * dh_installdocs: Make -X also exclude matching doc-base files from being
+ installed. Closes: #342033
+
+ -- Joey Hess <joeyh@debian.org> Mon, 5 Dec 2005 14:31:23 -0500
+
+debhelper (5.0.7) unstable; urgency=low
+
+ * Patch from Valéry Perrin to update Frensh translation, and also update
+ the po4a stuff. Closes: #338713
+ * Fix a bad regexp in -s handling code that breaks if an architecture name,
+ such as i386-uclibc is the hyphenated version of a different arch.
+ Closes: #338555
+
+ -- Joey Hess <joeyh@debian.org> Sun, 13 Nov 2005 13:28:13 -0500
+
+debhelper (5.0.6) unstable; urgency=low
+
+ * Pass --name in debhelper.pod pod2man run. Closes: #338349
+
+ -- Joey Hess <joeyh@debian.org> Wed, 9 Nov 2005 16:08:27 -0500
+
+debhelper (5.0.5) unstable; urgency=low
+
+ * Create Dh_Version.pm before running syntax test. Closes: #338337
+
+ -- Joey Hess <joeyh@debian.org> Wed, 9 Nov 2005 15:41:06 -0500
+
+debhelper (5.0.4) unstable; urgency=low
+
+ * Remove hardcoded paths to update-modules and gconf-schemas in various
+ script fragments.
+ * dh_clean: Patch from Matej Vela to clean up autom4te.cache directories
+ in subdiretories of the source tree and do it all in one enormous,
+ evil, and fast find expression. Closes: #338193
+
+ -- Joey Hess <joeyh@debian.org> Tue, 8 Nov 2005 16:16:56 -0500
+
+debhelper (5.0.3) unstable; urgency=low
+
+ * Remove dh_shlibs from binary-indep section of debian/rules.
+ * Add t/syntax to make sure all dh_* commands and the libraries syntax check
+ ok.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 7 Nov 2005 15:18:12 -0500
+
+debhelper (5.0.2) unstable; urgency=low
+
+ * Sometimes it's a good idea to edit more files than just the changelog
+ before releasing.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 3 Nov 2005 11:54:46 -0500
+
+debhelper (5.0.1) unstable; urgency=low
+
+ * dh_installinfo: Escape section with \Q \E. Closes: #337215
+
+ -- Joey Hess <joeyh@debian.org> Thu, 3 Nov 2005 11:04:21 -0500
+
+debhelper (5.0.0) unstable; urgency=low
+
+ * debhelper v5 mode is finalised and the new recommended compatibility
+ level. Unless your package uses dh_strip --dbg-package, switching to v5
+ is 99.999% unlikely to change anything in a package, and it allows
+ adding comments to all your debhelper config files, so I recommend making
+ the switch as soon as this version reaches testing.
+ * debhelper.1: Explicitly document that docs describe latest compat
+ level and changes from earlier levels are concentrated in the
+ "Debhelper compatibility levels" section of debhelper.1. Closes: #336906
+ * Deprecate v3.
+ * dh_install: Add package name to missing files error. Closes: #336908
+
+ -- Joey Hess <joeyh@debian.org> Tue, 1 Nov 2005 18:54:29 -0500
+
+debhelper (4.9.15) unstable; urgency=low
+
+ * Patches from Ghe Rivero to fix outdated paths in French and Spanish
+ translations of dh_installmenus(1). Closes: #335314
+ * add.fr update. Closes: #335727
+
+ -- Joey Hess <joeyh@debian.org> Tue, 25 Oct 2005 19:51:54 -0400
+
+debhelper (4.9.14) unstable; urgency=low
+
+ * dh_installmanpages: Remove X11 man page special case; X man pages are ok
+ in standard man dirs.
+ * French mn page translation update. Closes: #335178, #334765
+
+ -- Joey Hess <joeyh@debian.org> Sat, 22 Oct 2005 13:41:09 -0400
+
+debhelper (4.9.13) unstable; urgency=low
+
+ * dh_strip: Man page typo fix. Closes: #332747
+
+ -- Joey Hess <joeyh@debian.org> Sat, 8 Oct 2005 12:31:22 -0400
+
+debhelper (4.9.12) unstable; urgency=low
+
+ * dh_installdeb: Don't autogenerate conffiles for udebs.
+ Let's ignore conffiles (and shlibs) files for udebs too.
+ Closes: #331237
+
+ -- Joey Hess <joeyh@debian.org> Sun, 2 Oct 2005 12:00:22 -0400
+
+debhelper (4.9.11) unstable; urgency=low
+
+ * Patch from Valéry Perrin to update the Spanish translation.
+ Closes: #329132
+
+ -- Joey Hess <joeyh@debian.org> Tue, 27 Sep 2005 10:26:07 -0400
+
+debhelper (4.9.10) unstable; urgency=low
+
+ * Patch from Valéry Perrin to use po4a for localised manpages. Thanks!
+ Closes: #328791
+
+ -- Joey Hess <joeyh@debian.org> Thu, 22 Sep 2005 23:11:12 +0200
+
+debhelper (4.9.9) unstable; urgency=low
+
+ * dh_shlibdeps: Avoid a use strict warning in some cases if
+ LD_LIBRARY_PATH is not set.
+ * ACK NMU. Closes: #327209
+
+ -- Joey Hess <joeyh@debian.org> Wed, 7 Sep 2005 15:32:53 -0400
+
+debhelper (4.9.8.1) unstable; urgency=low
+
+ * NMU with maintainer approval.
+ * dh_gconf: delegate schema registration the gconf-schemas script,
+ which moves schemas to /var/lib/gconf, and require gconf2 2.10.1-2,
+ where it can be found. Closes: #327209
+
+ -- Josselin Mouette <joss@debian.org> Wed, 21 Sep 2005 23:39:01 +0200
+
+debhelper (4.9.8) unstable; urgency=low
+
+ * Spelling patch from Kumar Appaiah. Closes: #324892
+
+ -- Joey Hess <joeyh@debian.org> Fri, 26 Aug 2005 22:12:41 -0400
+
+debhelper (4.9.7) unstable; urgency=low
+
+ * dh_installdocs: Fix stupid and horrible typo. Closes: #325098
+
+ -- Joey Hess <joeyh@debian.org> Fri, 26 Aug 2005 09:20:47 -0400
+
+debhelper (4.9.6) unstable; urgency=low
+
+ * dh_installdocs: Install symlinks to in -x mode, same as in non exclude
+ mode. Closes: #324161
+
+ -- Joey Hess <joeyh@debian.org> Wed, 24 Aug 2005 16:20:02 -0400
+
+debhelper (4.9.5) unstable; urgency=low
+
+ * dh_install: in v5 mode, error out if there are wildcards in the file
+ list and the wildcards expand to nothing. Done only for v5 as this is a
+ behavior change. Closes: #249815
+ * dh_usrlocal: generate prerm scripts that do not remove distroties in
+ /usr/local, but only subdirectories thereof, in accordance with policy.
+ Closes: #319181
+
+ -- Joey Hess <joeyh@debian.org> Wed, 20 Jul 2005 10:08:05 -0400
+
+debhelper (4.9.4) unstable; urgency=low
+
+ * dh_clean: switch to using complex_doit for the evil find command
+ and quoting everything explicitly rather than the doit approach used
+ before. This way all uses of EXCLUDE_FIND will use complex_doit, which
+ is necesary for sanity.
+ * Dh_Lib: Make COMPLEX_DOIT properly escape wildcards for use with
+ complex_doit. Before they were unescaped, which could lead to subtle
+ breakage.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 19 Jul 2005 12:47:30 -0400
+
+debhelper (4.9.3) unstable; urgency=high
+
+ * Fix typo in postrm-modules fragment. Closes: #316069
+ Recommend any dh_installmodules users rebuild ASAP.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 28 Jun 2005 17:41:51 -0400
+
+debhelper (4.9.2) unstable; urgency=low
+
+ * Fix typo in dh_install example. Closes: #314964
+ * Fix deprecation message. Closes: #315517
+
+ -- Joey Hess <joeyh@debian.org> Mon, 20 Jun 2005 16:17:05 -0400
+
+debhelper (4.9.1) unstable; urgency=low
+
+ * Fix typo in dh_strip.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 13 Jun 2005 20:32:12 -0400
+
+debhelper (4.9.0) unstable; urgency=low
+
+ * Begin work on compatibility level 5. The set of changes in this mode is
+ still being determined, and will be until debhelper version 5.0 is
+ released, so use at your own risk.
+ * dh_strip: In v5, make --dbg-package specify a single debugging package
+ that gets the debugging symbols from the other packages acted on.
+ Closes: #230588
+ * In v5, ignore comments in config files. Only comments at the start of
+ lines are ignored. Closes: #206422
+ * In v5, also ignore empty lines in config files. Closes: #212162
+ * In v5, empty files are skipped by dh_installdocs.
+ * Use v5 to build debhelper.
+ * Add deprecation warnings for debhelper v1 and v2.
+ * Document getpackages in PROGRAMMING.
+ * Add another test-case for dh_link.
+ * dh_python: Minimal fix from Joss for -V to make it search the right
+ site-packages directories. Closes: #312661
+ * Make compat() cache the expensive bits, since we run it more and more,
+ including twice per config file line now..
+ * Add a "run" program to source tree to make local testing easier
+ and simplfy the rules file.
+ * Man page typo fixes. Closes: #305806, #305816
+ * dh_installmenu: menus moved to /usr/share/menu. Closes: #228618
+ Anyone with a binary executable menu file is SOL but there are none in
+ debian currently.
+ * Removed old versioned build deps for stuff that shipped in sarge or
+ earlier, mostly to shut up linda and lintian's stupid messages.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 9 Jun 2005 10:01:20 -0400
+
+debhelper (4.2.36) unstable; urgency=low
+
+ * Spanish translation update for dh_installdebconf(1).
+ * YA man page typo fix. Closes: #308182
+
+ -- Joey Hess <joeyh@debian.org> Sun, 8 May 2005 13:02:22 -0400
+
+debhelper (4.2.35) unstable; urgency=low
+
+ * Man page typo fixes. Closes: #305809, #305804, #305815, #305810
+ Closes: #305812, #305814, #305819, #305818, #305817, #305822
+
+ -- Joey Hess <joeyh@debian.org> Fri, 22 Apr 2005 11:27:55 -0400
+
+debhelper (4.2.34) unstable; urgency=low
+
+ * The infinite number of monkeys release.
+ * dh_md5sums: don't crash if PWD contains an apostrophe. Closes: #305226
+
+ -- Joey Hess <joeyh@debian.org> Wed, 20 Apr 2005 21:06:43 -0400
+
+debhelper (4.2.33) unstable; urgency=low
+
+ * Update Spanish translation of dh_clean man page. Closes: #303052
+ * dh_installmodules autoscripts: Now that return code 3 is allocated by
+ update-modules to indicate /etc/modules.conf is not automatically
+ generated, we can ignore that return code since it's not a condition that
+ should fail an installation. Closes: #165400
+ * dh_md5sums: Fix exclusion of conffiles. Thanks, Damir Dzeko
+ (note: this was broken in version 4.1.22)
+
+ -- Joey Hess <joeyh@debian.org> Sat, 9 Apr 2005 17:27:12 -0400
+
+debhelper (4.2.32) unstable; urgency=low
+
+ * Patch from Fabio Tranchitella to add support for #DEBHELPER# substitutions
+ in config files, although nothing in debhelper itself uses such
+ substitutions, third-party addons may. Closes: #301657
+ * Factor out a debhelper_script_subst from dh_installdeb and
+ dh_installdebconf.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 27 Mar 2005 11:29:01 -0500
+
+debhelper (4.2.31) unstable; urgency=low
+
+ * Updated dh_installmime Spanish translation.
+ * Spelling fix. Closes: #293158
+ * Patch from Matthias to split out a package_arch and export it in Dh_Lib.
+ Closes: #295383
+
+ -- Joey Hess <joeyh@debian.org> Wed, 16 Feb 2005 13:47:29 -0500
+
+debhelper (4.2.30) unstable; urgency=low
+
+ * dh_installmime: Patch from Loïc Minier to add support for instlaling
+ "sharedmimeinfo" files and calling update-mime-database. Closes: #255719
+ * Modified patch to not hardcode pathnames.
+ * Modified other autoscripts so there are no hardcoded pathnames at all
+ any more.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 4 Jan 2005 18:44:11 -0500
+
+debhelper (4.2.29) unstable; urgency=low
+
+ * dh_installdocs Spanish manpage update
+ * dh_installlogcheck: change permissions of logcheck rulefules from 600 to
+ 644, at request of logcheck maintainer. Closes: #288357
+ * dh_installlogcheck: fix indentation
+
+ -- Joey Hess <joeyh@debian.org> Wed, 15 Dec 2004 08:53:37 -0500
+
+debhelper (4.2.28) unstable; urgency=low
+
+ * dh_python: Add 2.4 to python_allversions. Closes: #285608
+
+ -- Joey Hess <joeyh@debian.org> Tue, 14 Dec 2004 13:08:56 -0500
+
+debhelper (4.2.27) unstable; urgency=low
+
+ * dh_desktop: Fix underescaping of *.desktop in call to find.
+ Closes: #284832
+
+ -- Joey Hess <joeyh@debian.org> Thu, 9 Dec 2004 14:32:41 -0500
+
+debhelper (4.2.26) unstable; urgency=low
+
+ * dh_makeshlibs spanish translation update
+ * Add example to dh_installdocs man page. Closes: #283857
+ * Clarify dh_python's documentation of -V and error if the version is
+ unknown. Closes: #282924
+
+ -- Joey Hess <joeyh@debian.org> Wed, 8 Dec 2004 14:44:44 -0500
+
+debhelper (4.2.25) unstable; urgency=low
+
+ * dh_shlibdeps: Only set LD_LIBRARY_PATH when calling dpkg-shlibdeps.
+ Closes: #283413
+
+ -- Joey Hess <joeyh@debian.org> Mon, 29 Nov 2004 13:21:05 -0500
+
+debhelper (4.2.24) unstable; urgency=low
+
+ * Spanish man page updates.
+ * Improve the documentation of dh_makeshlibs behavior in v4 mode.
+ Closes: #280676
+
+ -- Joey Hess <joeyh@debian.org> Sat, 30 Oct 2004 18:52:00 -0400
+
+debhelper (4.2.23) unstable; urgency=low
+
+ * Fix typo introduced last release. Closes: #278727
+
+ -- Joey Hess <joeyh@debian.org> Thu, 28 Oct 2004 20:51:05 -0400
+
+debhelper (4.2.22) unstable; urgency=low
+
+ * dh_desktop Spanish man page from Ruben Porras.
+ * dh_desktop: reindent
+ * dh_desktop: only register files in /usr/share/applications
+ with update-desktop-database. Closes: #278353
+
+ -- Joey Hess <joeyh@debian.org> Sat, 16 Oct 2004 13:42:29 -0400
+
+debhelper (4.2.21) unstable; urgency=low
+
+ * Add dh_desktop, from Ross Burton. Closes: #275454
+
+ -- Joey Hess <joeyh@debian.org> Tue, 12 Oct 2004 14:31:07 -0400
+
+debhelper (4.2.20) unstable; urgency=HIGH
+
+ * dpkg-cross is fixed in unstable, version the conflict. Closes: #265777
+
+ -- Joey Hess <joeyh@debian.org> Wed, 25 Aug 2004 08:05:42 -0400
+
+debhelper (4.2.19) unstable; urgency=HIGH
+
+ * Conflict with dpkg-cross since it breaks dh_strip.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 13 Aug 2004 21:50:12 -0300
+
+debhelper (4.2.18) unstable; urgency=low
+
+ * Add dh_shlibdeps see also. Closes: #261367
+ * Update dh_gconf man page for new schema location. Closes: #264378
+ * debhelper.7 man page typo fix. Closes: #265603
+
+ -- Joey Hess <joeyh@debian.org> Fri, 13 Aug 2004 19:16:51 -0300
+
+debhelper (4.2.17) unstable; urgency=low
+
+ * Spanish man page updates from Ruben Porras. Closes: #261516
+
+ -- Joey Hess <joeyh@debian.org> Mon, 26 Jul 2004 21:41:37 -0400
+
+debhelper (4.2.16) unstable; urgency=low
+
+ * dh_gconf: fix glob escaping in find for schemas. Closes: #260488
+
+ -- Joey Hess <joeyh@debian.org> Tue, 20 Jul 2004 17:20:21 -0400
+
+debhelper (4.2.15) unstable; urgency=low
+
+ * dh_gconf: deal with problems if /etc/gconf/schemas doesn't exist any more
+ (#258901)
+
+ -- Joey Hess <joeyh@debian.org> Mon, 12 Jul 2004 11:52:45 -0400
+
+debhelper (4.2.14) unstable; urgency=low
+
+ * Make dh_gconf postinst more portable.
+ * Strip spoch when generating udeb filenames. Closes: #258864
+
+ -- Joey Hess <joeyh@debian.org> Sat, 10 Jul 2004 11:15:34 -0400
+
+debhelper (4.2.13) unstable; urgency=low
+
+ * Spanish man page updates from Ruben Porras. Closes: #247382
+ * dh_gconf: gconf schemas moved to /usr/share/gconf/schemas. Relocate
+ schemas from /etc/gconf/schemas. (Josselin Mouette)
+ * dh_gconf: kill gconfd-2 so that the newly installed schemas
+ are available straight away. (Josselin Mouette)
+ * dh_gconf: fix bashism in restart of gconfd-2
+ * dh_gconf: fix innaccuracy in man page; gconfd-2 is HUPPed, not
+ killed.
+ * dh_scrollkeeper: stop adding scrollkeeper to misc:Depends, since
+ the postinst will not run it if it's not installed, and a single run after
+ it's installed is sufficient to find all documents. Closes: #256745
+ * dh_fixperms: make .ali files mode 444 to prevent recompilation by GNAT.
+ For speed, only scan for .ali files in usr/lib/ada. Closes: #245211
+ * dh_python: check to make sure compileall.py is available before running it
+ in the postinst. Closes: #253112
+ * dh_installmodules: install debian/package.modprobe into etc/modprobe.d/
+ for module-init-tools. These files can sometimes need to differ from the
+ etc/modutils/ files. Closes: #204336, #234495
+ * dh_installmanpages is now deprecated.
+ * Add a test case for bug #244157, and fixed the inverted ok() parameters
+ in the others, and added a few new tests.
+ * dh_link: applied GOTO Masanori's patch to fix conversion of existing
+ relative symlinks between top level directories. Closes: #244157
+ * Warn if debian/compat is empty.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 6 Jul 2004 12:52:30 -0400
+
+debhelper (4.2.12) unstable; urgency=low
+
+ * dh_installinit: Added --error-handler option. Based on work by Thom May.
+ Closes: #209090
+
+ -- Joey Hess <joeyh@debian.org> Mon, 28 Jun 2004 19:49:15 -0400
+
+debhelper (4.2.11) unstable; urgency=low
+
+ * dh_installmodules: Look for .ko files too. Closes: #248624
+ * dh_fixperms: fix permissions of .h files. Closes: #252492
+
+ -- Joey Hess <joeyh@debian.org> Thu, 13 May 2004 11:25:42 -0300
+
+debhelper (4.2.10) unstable; urgency=low
+
+ * dh_strip: if an .a file is not a binary file, do not try to strip it.
+ This deals with linker scripts used on the Hurd. Closes: #246366
+
+ -- Joey Hess <joeyh@debian.org> Wed, 28 Apr 2004 14:36:39 -0400
+
+debhelper (4.2.9) unstable; urgency=low
+
+ * dh_installinfo: escape '&' characters in INFO-DIR-SECTION when calling
+ sed. Also support \1 etc for completeness. Closes: #246301
+
+ -- Joey Hess <joeyh@debian.org> Wed, 28 Apr 2004 14:06:16 -0400
+
+debhelper (4.2.8) unstable; urgency=low
+
+ * Spanish translation of dh_installppp from Ruben Porras. Closes: #240844
+ * dh_fixperms: Make executable files in /usr/games. Closes: #243404
+
+ -- Joey Hess <joeyh@debian.org> Mon, 12 Apr 2004 18:31:18 -0400
+
+debhelper (4.2.7) unstable; urgency=low
+
+ * Add support for cron.hourly. Closes: #240733
+
+ -- Joey Hess <joeyh@debian.org> Sun, 28 Mar 2004 22:14:42 -0500
+
+debhelper (4.2.6) unstable; urgency=low
+
+ * Bump dh_strip's recommended bintuils dep to current. Closes: #237304
+
+ -- Joey Hess <joeyh@debian.org> Sat, 27 Mar 2004 20:04:19 -0500
+
+debhelper (4.2.5) unstable; urgency=low
+
+ * Spanish man page updates by Ruben Possas and Rudy Godoy.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 24 Mar 2004 15:08:54 -0500
+
+debhelper (4.2.4) unstable; urgency=low
+
+ * dh_installdocs: ignore .EX files as produced by dh-make.
+ * dh_movefiles: if the file cannot be found, do not go ahead and try
+ to move it anyway, as this can produce unpredictable behavor with globs
+ passed in from the shell. See bug #234105
+
+ -- Joey Hess <joeyh@debian.org> Fri, 20 Feb 2004 10:43:33 -0500
+
+debhelper (4.2.3) unstable; urgency=low
+
+ * dh_movefiles: use xargs -0 to safely remove files with whitespace,
+ etc. Patch from Yann Dirson. Closes: #233226
+
+ -- Joey Hess <joeyh@debian.org> Wed, 18 Feb 2004 18:57:05 -0500
+
+debhelper (4.2.2) unstable; urgency=low
+
+ * dh_shlibdeps: Turn on for udebs. It's often wrong (and ignored by d-i),
+ but occasionally right and necessary.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 12 Feb 2004 13:36:29 -0500
+
+debhelper (4.2.1) unstable; urgency=low
+
+ * dh_installxfonts(1): fix link to policy. Closes: #231918
+ * dh_scrollkeeper: patch from Christian Marillat Closes: #231703
+ - Remove DTD changes since docbook-xml not supports xml catalogs.
+ - Bump scrollkeeper dep to 0.3.14-5.
+ * dh_installinfo: remove info stuff on update as well as remove.
+ Policy is unclear/wrong. Closes: #231937
+
+ -- Joey Hess <joeyh@debian.org> Mon, 9 Feb 2004 18:20:40 -0500
+
+debhelper (4.2.0) unstable; urgency=low
+
+ * Added udeb support, as pioneered by di-packages-build. Understands
+ "XC-Package-Type: udeb" in debian/control. See debhelper(1) for
+ details.
+ * Dh_Lib: add and export is_udeb and udeb_filename
+ * dh_builddeb: name udebs with proper extension
+ * dh_gencontrol: pass -n and filename to dpkg-gencontrol
+ * dh_installdocs, dh_makeshlibs, dh_md5sums, dh_installchangelogs,
+ dh_installexamples, dh_installman, dh_installmanpages: skip udebs
+ * dh_shlibdeps: skip udebs. This may be temporary.
+ * dh_installdeb: do not process conffiles, shlibs, preinsts, postrms,
+ or prerms for udebs. Do not substiture #DEBHELPER# tokens in
+ postinst scripts for udebs.
+ * dh_installdebconf: skip config script for udebs, still do templates
+
+ -- Joey Hess <joeyh@debian.org> Sun, 8 Feb 2004 22:51:57 -0500
+
+debhelper (4.1.90) unstable; urgency=low
+
+ * dh_strip: Add note to man page that the detached debugging symbols options
+ mean the package must build-depend on a new enough version of binutils.
+ Closes: #231382
+ * dh_installdebconf: The debconf dependency has changed to include
+ "| debconf-2.0". Closes: #230622
+
+ -- Joey Hess <joeyh@debian.org> Sat, 7 Feb 2004 15:10:10 -0500
+
+debhelper (4.1.89) unstable; urgency=low
+
+ * dh_scrollkeeper: Make postinst /dev/null stdout of which test.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 23 Jan 2004 16:00:21 -0500
+
+debhelper (4.1.88) unstable; urgency=low
+
+ * dh_strip: Fix a unquoted string in regexp in the dbg symbols code.
+ Closes: #228272
+
+ -- Joey Hess <joeyh@debian.org> Sat, 17 Jan 2004 20:13:32 -0500
+
+debhelper (4.1.87) unstable; urgency=low
+
+ * dh_gconf: Add proper parens around the package version in the misc:Depends
+ setting.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 16 Jan 2004 12:53:43 -0500
+
+debhelper (4.1.86) unstable; urgency=low
+
+ * dh_gconf: Fix man page typos, thanks Ruben Porras. Closes: #228076
+ * dh_gconf: Spanish man page from Ruben Porras. Closes: #228075
+
+ -- Joey Hess <joeyh@debian.org> Fri, 16 Jan 2004 12:43:58 -0500
+
+debhelper (4.1.85) unstable; urgency=low
+
+ * dh_install: add missing parens to the $installed regexp. Closes: #227963
+ * dh_install: improve wording of --list-missing messages
+
+ -- Joey Hess <joeyh@debian.org> Thu, 15 Jan 2004 22:45:42 -0500
+
+debhelper (4.1.84) unstable; urgency=low
+
+ * Added dh_gconf command from Ross Burton. Closes: #180882
+ * dh_scrollkeeper: Make postinst fragment test for scrollkeeper-update.
+ Closes: #225337
+ * Copyright update.
+ * Include full text of the GPL in the source package, because goodness
+ knows, I need another copy of that in subversion..
+
+ -- Joey Hess <joeyh@debian.org> Sun, 11 Jan 2004 14:14:15 -0500
+
+debhelper (4.1.83) unstable; urgency=low
+
+ * Clarify dh_install's autodest behavior with wildcards. Closes: #224707
+
+ -- Joey Hess <joeyh@debian.org> Sun, 21 Dec 2003 12:18:37 -0500
+
+debhelper (4.1.82) unstable; urgency=low
+
+ * Add remove guard to prerm-info. Closes: #223617
+ * Remove #INITPARMS# from call to update-rc.d in postrm-init. Closes: #224090
+
+ -- Joey Hess <joeyh@debian.org> Tue, 16 Dec 2003 16:33:19 -0500
+
+debhelper (4.1.81) unstable; urgency=low
+
+ * Removed the no upstream changelog for debian packages test.
+ Even though it has personally saved me many times, debhelper is not
+ intended to check packages for mistakes, and apparently it makes sense
+ for some "native" packages to have a non-Debian changelog.
+ Closes: #216099
+ * If a native package has an upstream changelog, call the debian/changelog
+ changelog.Debian.
+ * postinst-menu-method: always chmod menu-method executable even if
+ update-menus is not. Closes: #220576
+ * dh_installmenu: do not ship menu-methods executable.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 30 Nov 2003 13:16:14 -0500
+
+debhelper (4.1.80) unstable; urgency=low
+
+ * Add the Spanish manpages I missed last time. Closes: #218718
+ * dh_installman: support compressed man pages when finding .so links.
+ Closes: #218136
+
+ -- Joey Hess <joeyh@debian.org> Thu, 6 Nov 2003 16:15:23 -0500
+
+debhelper (4.1.79) unstable; urgency=low
+
+ * dh_strip: typo. Closes: #218745
+ * Updated Spanish man page translations for:
+ debhelper dh_installcron dh_installinit dh_installlogrotate dh_installman
+ dh_installmodules dh_installpam dh_install dh_movefiles dh_strip
+ Closes: #218718
+
+ -- Joey Hess <joeyh@debian.org> Sun, 2 Nov 2003 15:26:07 -0500
+
+debhelper (4.1.78) unstable; urgency=low
+
+ * dh_installcatalogs: Fixed to create dir in tmpdir. Closes: #218237
+
+ -- Joey Hess <joeyh@debian.org> Sun, 2 Nov 2003 15:26:02 -0500
+
+debhelper (4.1.77) unstable; urgency=low
+
+ * Remove the "L" from reference to menufile(5). Closes: #216042
+
+ -- Joey Hess <joeyh@debian.org> Thu, 16 Oct 2003 13:33:12 -0400
+
+debhelper (4.1.76) unstable; urgency=low
+
+ * Patch from Andrew Suffield <asuffield@debian.org> to make dh_strip
+ support saving the debugging symbols with a --keep-debug flag and
+ dh_shlibdeps skip /usr/lib/debug. Thanks! Closes: #215670
+ * Add --dbg-package flag to dh_strip, to list packages that have associated
+ -dbg packages. dh_strip will then move the debug symbols over to the
+ associated -dbg packages.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 14 Oct 2003 14:18:06 -0400
+
+debhelper (4.1.75) unstable; urgency=low
+
+ * dh_install: add --fail-missing option. Closes: #120026
+ * Fix mispelling in prerm-sgmlcatalog. Closes: #215189
+
+ -- Joey Hess <joeyh@debian.org> Fri, 10 Oct 2003 22:12:59 -0400
+
+debhelper (4.1.74) unstable; urgency=low
+
+ * Only list dh_installman once in example rules.indep. Closes: #211567
+ * Really fix the prerm-sgmlcatalog, not the postrm. Closes: #209131
+
+ -- Joey Hess <joeyh@debian.org> Sun, 21 Sep 2003 18:56:54 -0400
+
+debhelper (4.1.73) unstable; urgency=low
+
+ * dh_installcatalogs: in prerm on upgrade, call update-catalog on the
+ advice of Adam DiCarlo. Closes: #209131
+
+ -- Joey Hess <joeyh@debian.org> Sun, 7 Sep 2003 21:43:31 -0400
+
+debhelper (4.1.72) unstable; urgency=low
+
+ * Switch from build-depends-indep to just build-depends.
+ * dh_installman: match .so links with whitespace after the filename
+ Closes: #208753
+
+ -- Joey Hess <joeyh@debian.org> Fri, 5 Sep 2003 13:59:12 -0400
+
+debhelper (4.1.71) unstable; urgency=low
+
+ * Typo. Closes: #207999
+ * Typo, typo. Closes: #208171 :-)
+
+ -- Joey Hess <joeyh@debian.org> Mon, 1 Sep 2003 08:24:13 -0400
+
+debhelper (4.1.70) unstable; urgency=low
+
+ * Complete Spanish translation of all man pages thanks to Rubén Porras
+ Campo, Rudy Godoy, and the rest of the Spanish translation team.
+ Closes: #199261
+
+ -- Joey Hess <joeyh@debian.org> Mon, 25 Aug 2003 19:45:45 -0400
+
+debhelper (4.1.69) unstable; urgency=low
+
+ * dh_installppp: correct filenames on man page. Closes: #206893
+ * dh_installinit: man page typo fix and enhancement. Closes: #206891
+
+ -- Joey Hess <joeyh@debian.org> Sat, 23 Aug 2003 14:54:59 -0400
+
+debhelper (4.1.68) unstable; urgency=low
+
+ * Remove duplicate packages from DOPACKAGES after argument processing.
+ Closes: #112950
+ * dh_compress: deal with links pointing to links pointing to compressed
+ files, no matter what order find returns them. Closes: #204169
+ * dh_installmodules, dh_installpam, dh_installcron, dh_installinit,
+ dh_installogrotate: add --name= option, that can be used to specify
+ the name to use for the file(s) installed by these commands. For example,
+ dh_installcron --name=foo will install debian/package.foo.cron.daily to
+ etc/cron.daily/foo. Closes: #138202, #101003, #68545, #148844
+ (Thanks to Thomas Hood for connecting these bug reports.)
+ * dh_installinit: deprecated --init-script option in favor of the above.
+ * Add dh_installppp. Closes: #43403
+
+ -- Joey Hess <joeyh@debian.org> Fri, 22 Aug 2003 15:27:36 -0400
+
+debhelper (4.1.67) unstable; urgency=low
+
+ * dh_python: Another patch, for pythonX.Y-foo packages.
+ * dh_link: Improve error message if link destination is a directory.
+ Closes: #206689
+
+ -- Joey Hess <joeyh@debian.org> Fri, 22 Aug 2003 12:48:19 -0400
+
+debhelper (4.1.66) unstable; urgency=low
+
+ * dh_link: rm -f every time, ln -f is not good enough if the link target
+ is an existing directory (aka, ln sucks). Closes: #206245
+ * dh_clean: honor -X for debian/tmp removal. Closes: #199952 more or less.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 19 Aug 2003 19:52:53 -0400
+
+debhelper (4.1.65) unstable; urgency=low
+
+ * Converted several chown 0.0 to chown 0:0 for POSIX 200112.
+ * dh_python: patch from Josselin to support packages only
+ shipping binary (.so) modules, and removal of any already byte-compiled
+ .py[co] found.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 17 Aug 2003 21:11:35 -0400
+
+debhelper (4.1.64) unstable; urgency=low
+
+ * dh_python: Add a -V flag to choose the python version modules in a package
+ use. Patch from Josselin, of course.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 13 Aug 2003 11:48:22 -0400
+
+debhelper (4.1.63) unstable; urgency=low
+
+ * dh_python: patch from Josselin to fix generated depends. Closes: #204717
+ * dh_pythn: also stylistic and tab damage fixes
+
+ -- Joey Hess <joeyh@debian.org> Mon, 11 Aug 2003 15:33:16 -0400
+
+debhelper (4.1.62) unstable; urgency=low
+
+ * Fix a bug in quoted section parsing that put the quotes in the parsed
+ out section number. Closes: #204731
+
+ -- Joey Hess <joeyh@debian.org> Sat, 9 Aug 2003 22:25:23 -0400
+
+debhelper (4.1.61) unstable; urgency=low
+
+ * dh_makeshlibs: only scan files matching *.so.* and *.so, not *.so*.
+ Closes: #204559
+
+ -- Joey Hess <joeyh@debian.org> Fri, 8 Aug 2003 17:08:00 -0400
+
+debhelper (4.1.60) unstable; urgency=low
+
+ * dh_python: support python ver 2.3. Closes: #204556
+
+ -- Joey Hess <joeyh@debian.org> Fri, 8 Aug 2003 11:59:34 -0400
+
+debhelper (4.1.59) unstable; urgency=low
+
+ * dh_installman: support .TH lines with quotes. Closes: #204527
+
+ -- Joey Hess <joeyh@debian.org> Thu, 7 Aug 2003 20:39:36 -0400
+
+debhelper (4.1.58) unstable; urgency=low
+
+ * Typo, Closes: #203907
+ * dh_python: clan compiled files on downgrade, upgrade, not only
+ removal. Closes: #204286
+
+ -- Joey Hess <joeyh@debian.org> Thu, 7 Aug 2003 15:47:06 -0400
+
+debhelper (4.1.57) unstable; urgency=low
+
+ * dh_install: Add LIMITATIONS section and other changes to clarify
+ renaming. Closes: #203548
+
+ -- Joey Hess <joeyh@debian.org> Thu, 31 Jul 2003 13:51:01 -0400
+
+debhelper (4.1.56) unstable; urgency=low
+
+ * Several man pae typo fixes by Ruben Porras. Closes: #202819
+ * Now in a subversion repository, some minor changes for that.
+ * dh_link test should expect results in debian/debhelper, not debian/tmp.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 28 Jul 2003 15:36:45 -0400
+
+debhelper (4.1.55) unstable; urgency=low
+
+ * dh_strip: do not strip files multiple times.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 22 Jul 2003 17:04:49 -0400
+
+debhelper (4.1.54) unstable; urgency=low
+
+ * dh_scrollkeeper: fix postrm to not run if scrollkeeper is not present
+
+ -- Joey Hess <joeyh@debian.org> Sat, 19 Jul 2003 16:57:30 +0200
+
+debhelper (4.1.53) unstable; urgency=low
+
+ * dh_scrollkeeper: fixed some overenthusiastic quoting. Closes: #201810
+
+ -- Joey Hess <joeyh@debian.org> Fri, 18 Jul 2003 09:45:23 +0200
+
+debhelper (4.1.52) unstable; urgency=low
+
+ * dh_clean: Clean the *.debhelper temp files on a per-package basis, in
+ case dh_clean is run on one package at a time.
+ * Removed the debian/substvars removal code entirely. It was only there to
+ deal with half-built trees built with debhelper << 3.0.30
+
+ -- Joey Hess <joeyh@debian.org> Sun, 6 Jul 2003 20:28:27 -0400
+
+debhelper (4.1.51) unstable; urgency=low
+
+ * dh_installchangelogs: Install debian/NEWS as NEWS.Debian, even for native
+ packages. This doesn't follow the lead of the changelog for native
+ packages for the reasons discussed in bug #192089
+
+ -- Joey Hess <joeyh@debian.org> Fri, 4 Jul 2003 00:34:24 -0400
+
+debhelper (4.1.50) unstable; urgency=low
+
+ * dh_clean: make -X work for debian/substvars file.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 3 Jul 2003 22:05:32 -0400
+
+debhelper (4.1.49) unstable; urgency=low
+
+ * dh_installman: Don't require trailing whitespace after the seciton number
+ in the TH line.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 3 Jul 2003 14:08:41 -0400
+
+debhelper (4.1.48) unstable; urgency=low
+
+ * dh_python typo fix Closes: #197679
+ * dh_link: don't complain if tmp dir does not exist yet when doing pre-link
+ scan.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 19 Jun 2003 19:51:13 -0400
+
+debhelper (4.1.47) unstable; urgency=low
+
+ * dh_install: recalculate automatic $dest eash time through the glob loop.
+ It might change if there are multiple wildcards Closes: #196344
+
+ -- Joey Hess <joeyh@debian.org> Mon, 16 Jun 2003 13:35:27 -0400
+
+debhelper (4.1.46) unstable; urgency=low
+
+ * Added dh_scrollkeeper, by Ross Burton.
+ * Added dh_userlocal, by Andrew Stribblehill. (With root.root special case
+ added by me.)
+ * Added dh_installlogcheck, by Jon Middleton. Closes: #184021
+ * Add aph's name to copyright file too.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 12 Jun 2003 10:01:28 -0400
+
+debhelper (4.1.45) unstable; urgency=low
+
+ * Typo fixes from Adam Garside.
+ * dh_python: don't bother terminating the regexp, 2.2.3c1 for example.
+ Closes: #194531
+
+ -- Joey Hess <joeyh@debian.org> Sat, 24 May 2003 11:55:32 -0400
+
+debhelper (4.1.44) unstable; urgency=low
+
+ * dh_python: allow for a + at the end of the python version, as in the
+ python in stable, version 2.1.3+.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 20 May 2003 17:50:16 -0400
+
+debhelper (4.1.43) unstable; urgency=low
+
+ * dh_python: Honour -n flag. Closes: #192804
+
+ -- Joey Hess <joeyh@debian.org> Sat, 10 May 2003 13:00:12 -0400
+
+debhelper (4.1.42) unstable; urgency=medium
+
+ * Fix stupid typo in dh_movefiles. Closes: #188833
+
+ -- Joey Hess <joeyh@debian.org> Sun, 13 Apr 2003 11:44:22 -0400
+
+debhelper (4.1.41) unstable; urgency=low
+
+ * dh_movefiles: Do not pass --remove-files to tar, since that makes
+ it break hard links (see #188663).
+
+ -- Joey Hess <joeyh@debian.org> Sat, 12 Apr 2003 17:11:28 -0400
+
+debhelper (4.1.40) unstable; urgency=low
+
+ * Fix build with 077 umask. Closes: #187757
+ * Allow colons between multiple items in DH_ALWAYS_EXCLUDE.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 6 Apr 2003 14:30:48 -0400
+
+debhelper (4.1.39) unstable; urgency=low
+
+ * Add calls to dh_installcatalogs to example rules files. Closes: #186819
+
+ -- Joey Hess <joeyh@debian.org> Mon, 31 Mar 2003 11:52:03 -0500
+
+debhelper (4.1.38) unstable; urgency=low
+
+ * Fixed dh_installcatalog's references to itself on man page.
+ Closes: #184411
+ * dh_installdebconf: Set umask to sane before running po2debconf or
+ debconf-mergetemplates
+
+ -- Joey Hess <joeyh@debian.org> Sun, 23 Mar 2003 21:17:09 -0800
+
+debhelper (4.1.37) unstable; urgency=low
+
+ * dh_installmenu: Refer to menufile(5) instead of 5L so as not to confuse
+ pod2man. Closes: #184013
+
+ -- Joey Hess <joeyh@debian.org> Sat, 8 Mar 2003 18:37:14 -0500
+
+debhelper (4.1.36) unstable; urgency=low
+
+ * Rename debhelper.1 to debhelper.7.
+ * Typo, Closes: #183267
+
+ -- Joey Hess <joeyh@debian.org> Tue, 4 Mar 2003 14:27:45 -0500
+
+debhelper (4.1.34) unstable; urgency=low
+
+ * Removed vegistal substvars stuff from dh_inistallinit.
+ * Update debhelper(1).
+
+ -- Joey Hess <joeyh@debian.org> Mon, 24 Feb 2003 19:34:44 -0500
+
+debhelper (4.1.33) unstable; urgency=low
+
+ * wiggy didn't take my hint about making update-modules send warnings to
+ stderr, so its overly verbose stdout is now directed to /dev/null to
+ prevent conflicts with debconf. Closes: #150804
+ * dh_fixperms: only skip examples directories which in a parent of
+ usr/share/doc, not in a deeper tree. Closes: #152602
+ * dh_compress: stop even looking at usr/doc
+
+ -- Joey Hess <joeyh@debian.org> Sat, 22 Feb 2003 14:45:32 -0500
+
+debhelper (4.1.32) unstable; urgency=low
+
+ * dh_md5sums: note that it's used by debsums. Closes: #181521
+ * Make addsubstvars() escape the value of the variable before passing it to
+ the shell. Closes: #178524
+ * Fixed escape_shell()'s escaping of a few things.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 18 Feb 2003 19:01:45 -0500
+
+debhelper (4.1.31) unstable; urgency=low
+
+ * Added dh_installcatalogs, for sgml (and later xml) catalogs. By
+ Adam DiCarlo. Closes: #90025
+
+ -- Joey Hess <joeyh@debian.org> Wed, 12 Feb 2003 11:26:24 -0500
+
+debhelper (4.1.30) unstable; urgency=low
+
+ * Turned dh_undocumented into a no-op, as policy does not want
+ undocumented.7 links anymore.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 3 Feb 2003 16:34:13 -0500
+
+debhelper (4.1.29) unstable; urgency=low
+
+ * List binary-common in .PHONY in rules.multi2. Closes: #173278
+ * Cleaned up error message if python is not installed. Closes: #173524
+ * dh_python: Bug fix from Josselin Mouette for case of building an arch
+ indep python package depending on a arch dependent package. However, I
+ used GetPackages() rather than add yet another control file parser.
+ Untested.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 18 Dec 2002 21:20:41 -0500
+
+debhelper (4.1.28) unstable; urgency=low
+
+ * Fix dh_install to install empty directories even if it is excluding some
+ files from installation.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 12 Dec 2002 14:39:30 -0500
+
+debhelper (4.1.27) unstable; urgency=low
+
+ * Fixed dh_python ordering in example rules files. Closes: #172283
+ * Make python postinst fragment only run python if it is installed, useful
+ for packages that include python modules but do not depend on python.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 9 Dec 2002 21:53:08 -0500
+
+debhelper (4.1.26) unstable; urgency=low
+
+ * dh_builddeb: Reluctantly call dpkg-deb directly. dpkg cannot pass extra
+ params to dpkg-deb. Closes: #170330
+
+ -- Joey Hess <joeyh@debian.org> Sun, 24 Nov 2002 11:14:36 -0500
+
+debhelper (4.1.25) unstable; urgency=low
+
+ * Added a dh_python command, by Josselin Mouette
+ <josselin.mouette@ens-lyon.org>.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 21 Nov 2002 00:55:35 -0500
+
+debhelper (4.1.24) unstable; urgency=low
+
+ * Various minor changes based on suggestions by luca.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 21 Nov 2002 00:13:52 -0500
+
+debhelper (4.1.23) unstable; urgency=low
+
+ * Still run potodebconf after warning about templates.ll files.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 15 Nov 2002 15:33:31 -0500
+
+debhelper (4.1.22) unstable; urgency=low
+
+ * dh_install: Support autodest with non-debian/tmp sourcedirs.
+ Closes: #169138
+ * dh_install: Support implicit "." sourcedir and --list-missing.
+ (Also supports ./foo file specs and --list-missing.)
+ Closes: #168751
+ * dh_md5sums: Don't glob. Closes: #169135
+
+ -- Joey Hess <joeyh@debian.org> Fri, 15 Nov 2002 13:12:24 -0500
+
+debhelper (4.1.21) unstable; urgency=low
+
+ * Make dh_install --list-missing honor -X excludes. Closes: #168739
+ * As a special case, if --sourcedir is not set (so is "."), make
+ --list-missing look only at what is in debian/tmp. This is gross, but
+ people have come to depend on that behavior, and that combination has no
+ other sane meaning. Closes: #168751
+
+ -- Joey Hess <joeyh@debian.org> Thu, 14 Nov 2002 10:56:21 -0500
+
+debhelper (4.1.20) unstable; urgency=low
+
+ * typo in dh_shlibdeps(1), Closes: #167421
+ * dh_movefiles: make --list-missing respect --sourcedir. Closes: #168441
+
+ -- Joey Hess <joeyh@debian.org> Tue, 12 Nov 2002 17:56:32 -0500
+
+debhelper (4.1.19) unstable; urgency=low
+
+ * Added note to dh_installdebconf(1) about postinst sourcing debconf
+ confmodule. (Cf #106070)
+ * Added an example to dh_install(1). Closes: #166402
+
+ -- Joey Hess <joeyh@debian.org> Sun, 27 Oct 2002 20:26:02 -0500
+
+debhelper (4.1.18) unstable; urgency=low
+
+ * Use dpkg-architecture instead of dpkg --print-architecture (again?)
+ See #164863
+ * typo fix Closes: #164958 The rest seems clear enough from context, so
+ omitted.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 16 Oct 2002 20:47:43 -0400
+
+debhelper (4.1.17) unstable; urgency=low
+
+ * dh_installinit: added --no-start for rcS type scripts. Closes: #136502
+
+ -- Joey Hess <joeyh@debian.org> Fri, 11 Oct 2002 13:58:22 -0400
+
+debhelper (4.1.16) unstable; urgency=low
+
+ * Depend on po-debconf, and I hope I can drop the debconf-utils dep soon.
+ Closes: #163569
+ * Removed debconf-utils build-dep. Have no idea why that was there.
+ * dh_installman: Don't use extended section as section name for translated
+ man pages, use only the numeric section as is done for regular man pages.
+ Closes: #163534
+
+ -- Joey Hess <joeyh@debian.org> Mon, 7 Oct 2002 11:49:37 -0400
+
+debhelper (4.1.15) unstable; urgency=low
+
+ * dh_compress: Exclude .css files, to prevent broken links from html files,
+ and since they are generally small, and since this matches existing
+ practice. Closes: #163303
+
+ -- Joey Hess <joeyh@debian.org> Sat, 5 Oct 2002 15:04:44 -0400
+
+debhelper (4.1.14) unstable; urgency=low
+
+ * dh_fixperms: Make sure .pm files are 0644. Closes: #163418
+
+ -- Joey Hess <joeyh@debian.org> Sat, 5 Oct 2002 14:03:52 -0400
+
+debhelper (4.1.13) unstable; urgency=low
+
+ * dh_installdebconf: Support po-debconf debian/po directories.
+ Closes: #163128
+
+ -- Joey Hess <joeyh@debian.org> Wed, 2 Oct 2002 23:41:51 -0400
+
+debhelper (4.1.12) unstable; urgency=low
+
+ * The "reverse hangover" release.
+ * dh_strip: better documentation, removed extraneous "item" from SYNOPSIS.
+ Closes: #162493
+ * dh_strip: detect and don't strip debug/*.so files.
+ * Note that 4.1.11 changelog entry was incorrect, dh_perl worked fine
+ without that change, but the new behavior is less likely to break things
+ if dpkg-gencontrol changes.
+ * Various improvements to debhelper(1).
+
+ -- Joey Hess <joeyh@debian.org> Fri, 27 Sep 2002 19:37:19 -0400
+
+debhelper (4.1.11) unstable; urgency=low
+
+ * Make addsubstvars remove old instances of line before adding new. This
+ will make dh_perl get deps right for packages that have perl modules and
+ XS in them.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 22 Sep 2002 11:27:08 -0400
+
+debhelper (4.1.10) unstable; urgency=low
+
+ * Depend on coreutils | fileutils. Closes: #161452
+
+ -- Joey Hess <joeyh@debian.org> Thu, 19 Sep 2002 11:21:19 -0400
+
+debhelper (4.1.9) unstable; urgency=low
+
+ * Fixed over-escaping of period when generating EXCLUDE_FIND.
+ Closes: #159155
+
+ -- Joey Hess <joeyh@debian.org> Mon, 16 Sep 2002 13:41:05 -0400
+
+debhelper (4.1.8) unstable; urgency=low
+
+ * Use invoke-rc.d always now that it is in policy. Fall back to old behavior
+ if invoke-rc.d is not present, so versioned deps on sysvinit are not
+ needed.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 15 Sep 2002 20:07:41 -0400
+
+debhelper (4.1.7) unstable; urgency=low
+
+ * dh_builddeb(1): It's --filename, not --name. Closes: #160151
+
+ -- Joey Hess <joeyh@debian.org> Sun, 8 Sep 2002 20:05:07 -0400
+
+debhelper (4.1.6) unstable; urgency=low
+
+ * Clarified dh_perl man page. Closes: #159332
+
+ -- Joey Hess <joeyh@debian.org> Tue, 3 Sep 2002 12:27:08 -0400
+
+debhelper (4.1.5) unstable; urgency=low
+
+ * Fixed excessive escaping around terms in DH_EXCLUDE_FIND. Closes: #159155
+
+ -- Joey Hess <joeyh@debian.org> Sun, 1 Sep 2002 19:20:32 -0400
+
+debhelper (4.1.4) unstable; urgency=low
+
+ * Patch from Andrew Suffield to make dh_perl understand #!/usr/bin/env perl
+ Closes: #156243
+
+ -- Joey Hess <joeyh@debian.org> Sat, 17 Aug 2002 23:05:45 -0400
+
+debhelper (4.1.3) unstable; urgency=low
+
+ * dh_installinit: Always start daemon on upgraded even if
+ --no-restart-on-upgrade is given; since the daemon is not stopped
+ with that parameter starting it again is a no-op, unless the daemon was
+ not running for some reason. This makes transtions to using the flag
+ easier. Closes: #90976 and sorry it took me so long to verify you were
+ right.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 4 Aug 2002 18:52:12 -0400
+
+debhelper (4.1.2) unstable; urgency=low
+
+ * Typo, Closes: #155323
+
+ -- Joey Hess <joeyh@debian.org> Sat, 3 Aug 2002 12:17:11 -0400
+
+debhelper (4.1.1) unstable; urgency=low
+
+ * Added a -L flag to dh_shlibdeps that is a nice alternative to providing a
+ shlibs.local.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 25 Jul 2002 19:15:09 -0400
+
+debhelper (4.1.0) unstable; urgency=low
+
+ * Remove /usr/doc manglement code from postinst and prerm.
+ Do not use this verion of debhelper for woody backports!
+ * Removed dh_installxaw.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 21 Jul 2002 15:26:10 -0400
+
+debhelper (4.0.19) unstable; urgency=low
+
+ * Make dh_installchangelogs install debian/NEWS files as well, as
+ NEWS.Debian. Make dh_compress always compress them. The idea is to make
+ these files be in a machine parsable form, like the debian changelog, but
+ only put newsworthy info into them. Automated tools can then display new
+ news on upgrade. It is hoped that if this catches on it will reduce the
+ abuse of debconf notes. See discussion on debian-devel for details.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 14 Jul 2002 23:09:24 -0400
+
+debhelper (4.0.18) unstable; urgency=low
+
+ * Removed a seemingly useless -dDepends in dh_shlibdeps's call to
+ dpkg-shalibdeps; this allows for stuff like dh_shlibdeps -- -dRecommends
+ Closes: #152117
+ * Added a --list-missing parameter to dh_install, which calc may find
+ useful.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 7 Jul 2002 22:44:01 -0400
+
+debhelper (4.0.17) unstable; urgency=low
+
+ * In dh_install, don't limit to -type f when doing the find due to -X.
+ This makes it properly install syml8inks, cf my rpm bug.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 5 Jul 2002 22:58:03 -0400
+
+debhelper (4.0.16) unstable; urgency=low
+
+ * Patch from doogie to make dh_movefiles support -X. Closes: #150978
+ * Pound home in dh_installman's man page that yet, it really does do the
+ right thing. Closes: #150644
+
+ -- Joey Hess <joeyh@debian.org> Thu, 4 Jul 2002 22:28:53 -0400
+
+debhelper (4.0.15) unstable; urgency=low
+
+ * Stupid, evil typo.
+ * Fixed the tests clint didn't show me.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 20 Jun 2002 20:57:06 -0400
+
+debhelper (4.0.14) unstable; urgency=low
+
+ * In script fragments, use more posix tests, no -a or -o, no parens.
+ Closes: #150403
+
+ -- Joey Hess <joeyh@debian.org> Thu, 20 Jun 2002 20:39:55 -0400
+
+debhelper (4.0.13) unstable; urgency=low
+
+ * Added --mainpackage= option, of use in some kernel modules packages.
+ * dh_gencontrol only needs to pass -p to dpkg-gencontrol if there is more
+ than one package in debian/control. This makes it a bit more flexible in
+ some cases.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 19 Jun 2002 19:44:12 -0400
+
+debhelper (4.0.12) unstable; urgency=low
+
+ * Fixed debconf-utils dependency.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 15 Jun 2002 20:20:21 -0400
+
+debhelper (4.0.11) unstable; urgency=low
+
+ * dh_compress: always compress .pcf files in
+ /usr/X11R6/lib/X11/fonts/{100dpi,75dpi,misc}, as is required by policy.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 1 Jun 2002 18:08:50 -0400
+
+debhelper (4.0.10) unstable; urgency=low
+
+ * Consistently use the which command instead of command -v or hardcoded
+ paths in autoscripts. Neither is in posix, but which is in debianutils, so
+ will always be available. command -v is not available in zsh.
+ Closes: #148172
+
+ -- Joey Hess <joeyh@debian.org> Sun, 26 May 2002 00:54:33 -0400
+
+debhelper (4.0.9) unstable; urgency=low
+
+ * dh_install: glob relative to --sourcedir. Closes: #147908
+ * Documented what globbing is allowed.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 23 May 2002 12:28:30 -0400
+
+debhelper (4.0.8) unstable; urgency=low
+
+ * Don't leak regex characters from -X when generating DH_EXCLUDE_FIND.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 22 May 2002 21:03:38 -0400
+
+debhelper (4.0.7) unstable; urgency=low
+
+ * dh_strip: If a file is an ELF shared binary, does not have a .so.* in its
+ name, stirp it as a ELF binary. It seems that GNUstep has files of this
+ sort. See bug #35733 (not sufficient to close all of it).
+
+ -- Joey Hess <joeyh@debian.org> Wed, 22 May 2002 20:40:09 -0400
+
+debhelper (4.0.6) unstable; urgency=low
+
+ * Make dh_clean remove autom4te.cache.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 22 May 2002 14:08:33 -0400
+
+debhelper (4.0.5) unstable; urgency=low
+
+ * Removing perl warning message.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 19 May 2002 01:04:16 -0400
+
+debhelper (4.0.4) unstable; urgency=low
+
+ * Set DH_ALWAYS_EXCLUDE=CVS and debhelper will exclude CVS directories
+ from processing by any command that takes a -X option, and dh_builddeb
+ will also go in and rm -rf any that still sneak into the build tree.
+ * dh_install: A patch from Eric Dorland <eric@debian.org> adds support for
+ --sourcedir, which allows debian/package.files files to be moved over to
+ debian/package.install, and just work. Closes: #146847
+ * dh_movefiles: don't do file tests in no-act mode. Closes: #144573
+ * dh_installdebconf: pass --drop-old-templates to debconf-mergetemplate.
+ Means debhelper has to depend on debconf-utils 1.1.1.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 18 May 2002 21:38:03 -0400
+
+debhelper (4.0.3) unstable; urgency=low
+
+ * Corrects misbuild with CVS dirs in deb. Closes: #146576
+
+ -- Joey Hess <joeyh@debian.org> Fri, 17 May 2002 15:38:26 -0400
+
+debhelper (4.0.2) unstable; urgency=low
+
+ * dh_install: delay globbing until after destintations have been found.
+ Closes: #143234
+
+ -- Joey Hess <joeyh@debian.org> Tue, 16 Apr 2002 21:25:32 -0400
+
+debhelper (4.0.1) unstable; urgency=low
+
+ * dh_installdebconf: allow parameters after -- to go to
+ debconf-mergetemplate.
+ * dh_installman: don't whine about zero-length man pages in .so conversion.
+ * Forgot to export filedoublearray, Closes: #142784
+
+ -- Joey Hess <joeyh@debian.org> Fri, 12 Apr 2002 23:22:15 -0400
+
+debhelper (4.0.0) unstable; urgency=low
+
+ * dh_movefiles has long been a sore point in debhelper. Inherited
+ from debstd, its interface and implementation suck, and I have maintained
+ it while never really deigning to use it. Now there is a remplacment:
+ dh_install, which ...
+ - copies files, doesn't move them. Closes: #75360, #82649
+ - doesn't have that whole annoying debian/package.files vs. debian/files
+ mess, as it uses debian/install.
+ - supports copying empty subdirs. Closes: #133037
+ - doesn't use tar, thus no error reproting problems. Closes: #112538
+ - files are listed relative to the pwd, debian/tmp need not be used at
+ all, so no globbing issues. Closes: #100404
+ - supports -X. Closes: #116902
+ - the whole concept of moving files out of a directory is gone, so this
+ bug doesn't really apply. Closes: #120026
+ - This is exactly what Bill Allombert asked for in #117383, even though I
+ designed it seemingly independantly. Thank you Bill! Closes: #117383
+ * Made debhelper's debian/rules a lot simpler by means of the above.
+ * Updated example rules file to use dh_install. Also some reordering and
+ other minor changes.
+ * dh_movefiles is lightly deprecated, and when you run into its bugs and
+ bad design, you are incouraged to just use dh_install instead.
+ * dh_fixperms: in v4 only, make all files in bin/ dirs +x. Closes: #119039
+ * dh_fixperms: in v4 only, make all files in etc/init.d executable (of
+ course there's -X ..)
+ * dh_link: in v4 only, finds existing, non-policy-conformant symlinks
+ and corrects them. This has the side effect of making dh_link idempotent.
+ * Added a -h/--help option. This seems very obvious, but it never occured to
+ me before..
+ * use v4 for building debhelper itself
+ * v4 mode is done, you may now use it without fear of it changing.
+ (This idea of this upload is to get v4 into woody so people won't run into
+ many issues backporting from sarge to woody later on. Packages targeted
+ for woody should continue to use whatever compatibility level they are
+ using.)
+
+ -- Joey Hess <joeyh@debian.org> Tue, 11 Apr 2002 17:28:57 -0400
+
+debhelper (3.4.14) unstable; urgency=low
+
+ * Fixed an uninitialized value warning, Closes: #141729
+
+ -- Joey Hess <joeyh@debian.org> Mon, 8 Apr 2002 11:45:02 -0400
+
+debhelper (3.4.13) unstable; urgency=low
+
+ * Typo, Closes: #139176
+ * Fixed dh_md5sums conffile excluding/including.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 20 Mar 2002 11:25:36 -0500
+
+debhelper (3.4.12) unstable; urgency=low
+
+ * Fix to #99169 was accidentually reverted in 3.0.42; reinstated.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 16 Mar 2002 23:31:46 -0500
+
+debhelper (3.4.11) unstable; urgency=low
+
+ * Fixed dh_installdocs and dh_installexamples to support multiple -X's.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 28 Feb 2002 13:02:35 -0500
+
+debhelper (3.4.10) unstable; urgency=low
+
+ * Fixed dh_movefiles. Closes: #135479, #135459
+
+ -- Joey Hess <joeyh@debian.org> Sun, 24 Feb 2002 12:25:32 -0500
+
+debhelper (3.4.9) unstable; urgency=low
+
+ * dh_movefiles: Allow for deeper --sourcedir. Closes: #131363
+
+ -- Joey Hess <joeyh@debian.org> Wed, 20 Feb 2002 16:37:43 -0500
+
+debhelper (3.4.8) unstable; urgency=low
+
+ * Thanks to Benjamin Drieu <benj@debian.org>, dh_installdocs -X now works.
+ I had to modify his patch to use cp --parents, since -P spews warnings
+ now. Also, I made it continue to use cp -a if nothing is excluded,
+ which is both faster, and means this patch is less likely to break
+ anything if it turns out to be buggy. Also, stylistic changes.
+ Closes: #40649
+ * Implemented -X for dh_installexamples as well.
+ * dh_clean -X substvars will also work now. Closes: #66890
+
+ -- Joey Hess <joeyh@debian.org> Sun, 17 Feb 2002 12:26:37 -0500
+
+debhelper (3.4.7) unstable; urgency=low
+
+ * dh_perl: don't gripe if there is no substvar file. Closes: #133140
+
+ -- Joey Hess <joeyh@debian.org> Sat, 9 Feb 2002 17:37:32 -0500
+
+debhelper (3.4.6) unstable; urgency=low
+
+ * Typo, Closes: #132454
+ * Ignore leading/trailing whitespace in DH_OPTIONS, Closes: #132645
+
+ -- Joey Hess <joeyh@debian.org> Tue, 5 Feb 2002 17:33:57 -0500
+
+debhelper (3.4.5) unstable; urgency=low
+
+ * dh_installxfonts: separate multiple commands with \n so sed doesn't get
+ upset. Closes: #131322
+
+ -- Joey Hess <joey@kitenet.net> Tue, 29 Jan 2002 18:58:58 -0500
+
+debhelper (3.4.4) unstable; urgency=low
+
+ * Introduced the debian/compat file. This is the new, preferred way to say
+ what debhelper compatibility level your package uses. It has the big
+ advantage of being available to debhelper when you run it at the command
+ line, as well as in debian/rules.
+ * A new v4 feature: dh_installinit, in v4 mode, will use invoke-rc.d.
+ This is in v4 for testing, but I may well roll it back into v3 (and
+ earlier) once woody is released and I don't have to worry about breaking
+ things (and, presumably, once invoke-rc.d enters policy).
+ * Some debhelper commands will now build up a new substvars variable,
+ ${misc:Depends}, based on things they know your package needs to depend
+ on. For example, dh_installinit in v4 mode adds sysvinit (>= 2.80-1) to
+ that dep list, and dh_installxfonts adds a dep on xutils. This variable
+ should make it easier to keep track of what your package needs to depends
+ on, supplimenting the ${shlibs:Depends} and ${perl:Depends} substvars.
+ Hmm, this appears to be based loosely on an idea by Masato Taruishi
+ <taru@debian.org>, filtered through a long period of mulling it over.
+ Closes: #76352
+ * Use the addsubstvar function I wrote for the above in dh_perl too.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 26 Jan 2002 23:30:51 -0500
+
+debhelper (3.4.3) unstable; urgency=low
+
+ * Improved dh_installxfonts some more:
+ - Better indenting of generated code.
+ - Better ordering of generated code (minor fix).
+
+ -- Joey Hess <joeyh@debian.org> Sat, 26 Jan 2002 23:09:59 -0500
+
+debhelper (3.4.2) unstable; urgency=low
+
+ * dh_installman: more documentation about the .TH line. Closes: #129205
+ * dh_installxfonts:
+ - Packages that use this should depend on xutils. See man page.
+ - However, if you really want to, you can skip the dep, and the
+ postinst will avoid running program that arn't available. Closes: #131053
+ - Use update-fonts-dir instead of handling encodings ourselves. Yay!
+ - Pass only the last component of the directory name to
+ update-fonts-*, since that's what they perfer now.
+ - Other changes, chould fully comply with Debian X font policy now.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 15 Jan 2002 12:17:43 -0500
+
+debhelper (3.4.1) unstable; urgency=low
+
+ * Fixed programmer's documentation of DOINDEP and DOARCH, Closes: #128546
+ * Fixed dh_builddeb SYNOPSIS, Closes: #128548
+
+ -- Joey Hess <joeyh@debian.org> Thu, 10 Jan 2002 13:49:37 -0500
+
+debhelper (3.4.0) unstable; urgency=low
+
+ * Began work on v4 support (and thus the large version number jump), and it
+ is only for the very brave right now since I will unhesitatingly break
+ compatibility in v4 mode as I'm developing it. Currently, updating to v4
+ mode will only make dh_makeshlibs -V generate shared library deps that
+ omit the debian part of the version number. The reasoning behind this
+ change is that the debian revision should not typically break binary
+ compatibility, that existing use of -V is causing too tight versioned
+ deps, and that if you do need to include the debian revision for some
+ reason, you can always write it out by hand. Closes: #101497
+ * dh_testversion is deprecated -- use build deps instead. A warning message
+ is now output when it runs. Currently used by: 381 packages.
+ * dh_installxaw is deprecated -- xaw-wrappers in no longer in the
+ distribution. A warning message is now output when it runs. Currently used
+ by: 3 packages (bugs filed).
+ * Added referneces to menufile in dh_installmenu man page. Closes: #127978
+ (dh_make is not a part of debhelper, if you want it changed, file a bug on
+ dh-make.)
+
+ -- Joey Hess <joeyh@debian.org> Sat, 5 Jan 2002 22:45:09 -0500
+
+debhelper (3.0.54) unstable; urgency=low
+
+ * Added a version to the perl build dep, Closes: #126677
+
+ -- Joey Hess <joeyh@debian.org> Thu, 27 Dec 2001 20:39:46 -0500
+
+debhelper (3.0.53) unstable; urgency=low
+
+ * dh_strip: run file using a safe pipe open, that will not expose any weird
+ characters in filenames to a shell. Closes: #126491
+ * fixed dh_testdir man page
+
+ -- Joey Hess <joeyh@debian.org> Wed, 26 Dec 2001 21:15:42 -0500
+
+debhelper (3.0.52) unstable; urgency=low
+
+ * Typo, Closes: #122679
+ * Export dirname from Dh_Lib, and related cleanup, Closes: #125770
+ * Document dirname, basename in PROGRAMMING
+
+ -- Joey Hess <joeyh@debian.org> Thu, 6 Dec 2001 11:58:52 -0500
+
+debhelper (3.0.51) unstable; urgency=low
+
+ * Man page cleanups, Closes: #119335
+
+ -- Joey Hess <joeyh@debian.org> Sat, 17 Nov 2001 21:04:15 -0500
+
+debhelper (3.0.50) unstable; urgency=low
+
+ * dh_undocumented: check for existing uncompressed man pages. Closes: #87972
+ * Optimized dh_installdeb conffile finding. Closes: #119035
+ * dh_installdeb: changed the #!/bin/sh -e to set -e on a new line. Whether
+ this additional bloat is worth it to make it easier for people to sh -x
+ a script by hand is debatable either way, I guess. Closes: #119046
+ * Added a check for duplicated package stanzas in debian/control,
+ Closes: #118805
+
+ -- Joey Hess <joeyh@debian.org> Sat, 17 Nov 2001 14:00:54 -0500
+
+debhelper (3.0.49) unstable; urgency=low
+
+ * More informative error, Closes: #118767
+
+ -- Joey Hess <joeyh@debian.org> Thu, 8 Nov 2001 18:12:11 -0500
+
+debhelper (3.0.48) unstable; urgency=low
+
+ * Added .zip and .jar to list of things to compress (Closes: #115735),
+ and modified docs (Closes: #115733).
+
+ -- Joey Hess <joeyh@debian.org> Mon, 15 Oct 2001 19:01:43 -0400
+
+debhelper (3.0.47) unstable; urgency=low
+
+ * dh_installman: documented translated man page support, and made it work
+ properly. It was not stripping the language part from the installed
+ filenames.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 9 Oct 2001 15:16:18 -0400
+
+debhelper (3.0.46) unstable; urgency=low
+
+ * Typo, Closes: #114135
+
+ -- Joey Hess <joeyh@debian.org> Thu, 4 Oct 2001 19:39:34 -0400
+
+debhelper (3.0.45) unstable; urgency=low
+
+ * dh_installxfonts: Do not specify /usr/sbin/ paths; that should be in
+ the path and dpkg enforces it. Closes: #112385
+
+ -- Joey Hess <joeyh@debian.org> Sun, 16 Sep 2001 18:48:59 -0400
+
+debhelper (3.0.44) unstable; urgency=low
+
+ * Added dh_strip to rules.multi2, and removed .TODO.swp. Closes: #110418
+
+ -- Joey Hess <joeyh@debian.org> Tue, 28 Aug 2001 15:22:41 -0400
+
+debhelper (3.0.43) unstable; urgency=low
+
+ * dh_perl: made it use doit commands so -v mode works. Yeah, uglier.
+ Closes: #92826
+ Also some indentation fixes.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 24 Aug 2001 15:34:55 -0400
+
+debhelper (3.0.42) unstable; urgency=low
+
+ * dh_movefiles: Typo, Closes: #106532
+ * Use -x to test for existance of init scripts, rather then -e since
+ we'll be running them, Closes: #109692
+ * dh_clean: remove debian/*.debhelper. No need to name files
+ specifically; any file matching that is a debhelper temp file.
+ Closes: #106514, #85520
+
+ -- Joey Hess <joeyh@debian.org> Thu, 23 Aug 2001 15:47:35 -0400
+
+debhelper (3.0.40) unstable; urgency=low
+
+ * Typo, Closes: #104405
+
+ -- Joey Hess <joeyh@debian.org> Wed, 11 Jul 2001 22:57:41 -0400
+
+debhelper (3.0.39) unstable; urgency=low
+
+ * dh_compress: Don't compress .bz2 files, Closes: #102935
+
+ -- Joey Hess <joeyh@debian.org> Sat, 30 Jun 2001 20:39:17 -0400
+
+debhelper (3.0.38) unstable; urgency=low
+
+ * fixed doc bog, Closes: #102130
+
+ -- Joey Hess <joeyh@debian.org> Sun, 24 Jun 2001 21:08:15 -0400
+
+debhelper (3.0.37) unstable; urgency=low
+
+ * Spellpatch, Closes: #101553
+
+ -- Joey Hess <joeyh@debian.org> Wed, 20 Jun 2001 22:03:57 -0400
+
+debhelper (3.0.36) unstable; urgency=low
+
+ * Whoops, I forgot to revert dh_perl too. Closes: #101477
+
+ -- Joey Hess <joeyh@debian.org> Tue, 19 Jun 2001 14:10:24 -0400
+
+debhelper (3.0.35) unstable; urgency=low
+
+ * Revert change of 3.0.30. This broke too much stuff. Maybe I'll
+ change it in debhelper v4..
+
+ -- Joey Hess <joeyh@debian.org> Mon, 18 Jun 2001 13:56:35 -0400
+
+debhelper (3.0.34) unstable; urgency=low
+
+ * Unimportant spelling fix. Closes: #100666
+
+ -- Joey Hess <joeyh@debian.org> Thu, 14 Jun 2001 12:30:28 -0400
+
+debhelper (3.0.33) unstable; urgency=low
+
+ * dh_gencontrol: Work around very strange hurd semantics
+ which allow "" to be an empty file. Closes: #100542
+
+ -- Joey Hess <joeyh@debian.org> Mon, 11 Jun 2001 18:15:19 -0400
+
+debhelper (3.0.32) unstable; urgency=low
+
+ * Check that update-modules is present before running it, since modutils
+ is not essential. Closes: #100430
+
+ -- Joey Hess <joeyh@debian.org> Sun, 10 Jun 2001 15:13:51 -0400
+
+debhelper (3.0.31) unstable; urgency=low
+
+ * Remove dh_testversion from example rules file, Closes: #99901
+
+ -- Joey Hess <joeyh@debian.org> Thu, 7 Jun 2001 20:24:39 -0400
+
+debhelper (3.0.30) unstable; urgency=low
+
+ * dh_gencontrol: Added a documented interface for specifying substvars
+ data in a file. Substvars data may be put in debian/package.substvars.
+ (Those files used to be used by debhelper for automatically generated
+ data, but it uses a different internal filename now). It will be merged
+ with any automatically determined substvars data. See bug #98819
+ * I want to stress that no one should ever rely in internal, undocumented
+ debhelper workings. Just because debhelper uses a certian name for some
+ internally used file does not mean that you should feel free to modify
+ that file to your own ends in a debian package. If you do use it, don't
+ be at all suprised when it breaks. If you find that debhelper is lacking
+ a documented interface for something that you need, ask for it!
+ (debhelper's undocumented, internal use only files should now all be
+ prefixed with ".debhelper")
+
+ -- Joey Hess <joeyh@debian.org> Sun, 3 Jun 2001 16:37:33 -0400
+
+debhelper (3.0.29) unstable; urgency=low
+
+ * Added -X flag to dh_makeshlibs, for packages with wacky plugins that
+ look just like shared libs, but are not.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 1 Jun 2001 14:27:06 -0400
+
+debhelper (3.0.28) unstable; urgency=low
+
+ * dh_clean: clean up temp files used by earlier versons of debhelper.
+ Closes: #99169
+
+ -- Joey Hess <joeyh@debian.org> Wed, 30 May 2001 16:24:09 -0400
+
+debhelper (3.0.27) unstable; urgency=low
+
+ * Fixed issues with extended parameters to dh_gencontrol including spaces
+ and quotes. This was some histirical cruft that deals with splitting up
+ the string specified by -u, and it should not have applied to the set
+ of options after --. Now that it's fixed, any and all programs that
+ support a -- and options after it, do not require any special quoting
+ of the succeeding options. Quote just like you would in whatever
+ program those options go to. So, for example,
+ dh_gencontrol -Vblah:Depends='foo, bar (>= 1.2)' will work just as you
+ would hope. This fix does NOT apply to -u; don't use -u if you must do
+ something complex. Closes: #89311
+ * Made escape_shell output a lot better.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 29 May 2001 17:54:19 -0400
+
+debhelper (3.0.26) unstable; urgency=low
+
+ * Always include package name in maintainer script fragment filenames
+ and generated shlibs files (except for in DH_COMPAT=1 mode). This is a
+ purely cosmetic change, and if it breaks anything, you were using an
+ undocumented interface. Closes: #95387
+
+ -- Joey Hess <joeyh@debian.org> Thu, 24 May 2001 16:31:46 -0400
+
+debhelper (3.0.25) unstable; urgency=low
+
+ * dh_makeshlins: append to LD_LIBRARY_PATH at start, not each time
+ through loop. Closes: #98598
+
+ -- Joey Hess <joeyh@debian.org> Thu, 24 May 2001 14:16:50 -0400
+
+debhelper (3.0.24) unstable; urgency=low
+
+ * Missing semi-colon.
+ * Call dh_shlibdeps as part of build process, as simple guard against
+ this (dh_* should be called, really).
+
+ -- Joey Hess <joeyh@debian.org> Tue, 15 May 2001 10:27:34 -0400
+
+debhelper (3.0.23) unstable; urgency=low
+
+ * dh_shlibdeps: the -l switch now just adds to LD_LIBRARY_PATH, if it is
+ already set. Newer fakeroots set it, and clobbering their settings
+ breaks things since they LD_PRELOAD a library that is specified in the
+ LD_LIBRARY_PATH. (blah) Closes: #97494
+
+ -- Joey Hess <joeyh@debian.org> Mon, 14 May 2001 22:32:23 -0400
+
+debhelper (3.0.22) unstable; urgency=low
+
+ * dh_installinfo: doc enchancement, Closes: #97515
+ * dh_md5sums: don't fail if pwd has spaces in it (must be scraping the
+ bottom of the bug barrel here). Closes: #97404
+
+ -- Joey Hess <joeyh@debian.org> Mon, 14 May 2001 21:22:47 -0400
+
+debhelper (3.0.21) unstable; urgency=low
+
+ * Corrected bashism (echo -e, DAMNIT), in rules file that resulted in a
+ corrupted Dh_Version.pm. Closes: #97236
+
+ -- Joey Hess <joeyh@debian.org> Sat, 12 May 2001 12:21:40 -0400
+
+debhelper (3.0.20) unstable; urgency=low
+
+ * Modified the postrm fragment for dh_installxfonts to not try to delete
+ any files. The responsibility for doing so devolves onto update-fonts-*
+ (which don't yet, but will). See bug #94752
+
+ -- Joey Hess <joeyh@debian.org> Fri, 11 May 2001 13:30:43 -0400
+
+debhelper (3.0.19) unstable; urgency=low
+
+ * Now uses html2text rather than lynx for converting html changelogs.
+ The program generates better results, and won't annoy the people who
+ were oddly annoyed at having to install lynx. Instead, it will annoy a
+ whole other set of people, I'm sure. Closes: #93747
+
+ -- Joey Hess <joeyh@debian.org> Mon, 7 May 2001 21:23:46 -0400
+
+debhelper (3.0.18) unstable; urgency=low
+
+ * dh_perl: updates from bod:
+ - Provide minimum version for arch-indep module dependencies
+ (perl-policy 1,18, section 3.4.1).
+ - Always update substvars, even if Perl:Depends is empty.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 21 Apr 2001 15:13:15 -0700
+
+debhelper (3.0.17) unstable; urgency=low
+
+ * dh_shlibdeps: document that -l accepts multiple dirs, and
+ make multiple dirs absolute properly, not just the first.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 16 Apr 2001 23:20:30 -0700
+
+debhelper (3.0.16) unstable; urgency=low
+
+ * Documented -isp, Closes: #93983
+
+ -- Joey Hess <joeyh@debian.org> Sat, 14 Apr 2001 19:16:47 -0700
+
+debhelper (3.0.15) unstable; urgency=low
+
+ * Typo, Closes: #92407
+
+ -- Joey Hess <joeyh@debian.org> Tue, 3 Apr 2001 12:15:02 -0700
+
+debhelper (3.0.14) unstable; urgency=low
+
+ * dh_strip: ensure that the file _ends_ with `.a'. Closes: #90647
+
+ -- Joey Hess <joeyh@debian.org> Wed, 21 Mar 2001 20:21:11 -0800
+
+debhelper (3.0.13) unstable; urgency=low
+
+ * dh_makeshlibs: more support for nasty soname formats, Closes: #90520
+
+ -- Joey Hess <joeyh@debian.org> Wed, 21 Mar 2001 15:00:42 -0800
+
+debhelper (3.0.12) unstable; urgency=low
+
+ * Applied a patch from Anton Zinoviev <anton@lml.bas.bg> to pass -e
+ to mkfontdir. Closes: #89418
+
+ -- Joey Hess <joeyh@debian.org> Fri, 16 Mar 2001 21:03:29 -0800
+
+debhelper (3.0.11) unstable; urgency=low
+
+ * dh_makeshlibs: don't follow links to .so files. Instead, we will look
+ for *.so* files. This should work for the variously broken db3,
+ liballeg, and it will fix the problem with console-tools-dev, which
+ contained (arguably broken) absolute symlinks to real files, which were
+ followed. Closes: #85483
+
+ -- Joey Hess <joeyh@debian.org> Wed, 14 Mar 2001 14:55:58 -0800
+
+debhelper (3.0.10) unstable; urgency=medium
+
+ * Fixed broken -e #SCRIPT# tests in init script start/stop/restart code.
+ Arrgh. All packages built with the old code (that is, all daemon
+ packages built with debhelper 3.0.9!) are broken. Closes: #89472
+
+ -- Joey Hess <joeyh@debian.org> Tue, 13 Mar 2001 06:10:03 -0500
+
+debhelper (3.0.9) unstable; urgency=low
+
+ * Modified to use dpkg-architecture instead of dpkg --print-architecture.
+ I hate this, and wish it wasn't necessary to make cross compiles for
+ the hurd work. Closes: #88494
+ * Now depends on debconf-utils for debconf-mergetemplates. Closes: #87321
+ * Continues to depend on lynx for html changelog conversions. Yes, these
+ and packages with translated debconf templates are rather rare, but
+ it makes more sense for debhelper to consistently depend on all utilities
+ it uses internally rather than force people to keep their dependancies
+ up to date with debhelper internals. If I decide tomorrow that w3m is
+ the better program to use to format html changelogs, I can make the
+ change and packages don't need to update their build dependancies.
+ Closes: #88464, #77743
+ * Test for init scripts before running them, since they are conffiles and
+ the admin may have removed them for some reason, and policy wants
+ us to deal with that gracefully.
+ * dh_makeshlibs: now uses objdump, should be more accurate. Closes:
+ #88426
+ * Wildcards have been supported for a while, Closes: #54197
+ * dh_installdocs and dh_link have been able to make doc-dir symlinks for
+ a while, Closes: #51225
+
+ -- Joey Hess <joeyh@debian.org> Sun, 4 Mar 2001 15:48:45 -0800
+
+debhelper (3.0.8) unstable; urgency=low
+
+ * dh_perl update
+
+ -- Joey Hess <joeyh@debian.org> Sat, 24 Feb 2001 23:31:31 -0800
+
+debhelper (3.0.7) unstable; urgency=low
+
+ * dh_makeshlibs: only generate call to ldconfig if it really looks like
+ a given *.so* file is indeed a shared library.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 23 Feb 2001 14:38:50 -0800
+
+debhelper (3.0.6) unstable; urgency=low
+
+ * Corrected some uninitialized value stuff in dh_suidregister (actually
+ quite a bad bug).
+ * dh_installman: fixed variable socoping error, so file conversions
+ should work now.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 16 Feb 2001 14:15:02 -0800
+
+debhelper (3.0.5) unstable; urgency=low
+
+ * Updated dh_perl to a new version for the new perl organization and
+ policy. The -k flag has been done away with, as the new perl packages
+ don't make packlist files.
+ * Fixed some bugs in the new dh_perl and updated it to my current
+ debhelper coding standards.
+ * Use dh_perl to generate debhelper's own deps.
+ * Version number increase to meet perl policy.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 13 Feb 2001 09:07:48 -0800
+
+debhelper (3.0.1) unstable; urgency=low
+
+ * Build-depends on perl-5.6, since it uses 2 argument pod2man.
+ * Cleanups of debhelper.1 creation process.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 12 Feb 2001 16:12:59 -0800
+
+debhelper (3.0.0) unstable; urgency=low
+
+ * Added dh_installman, a new program that replaces dh_installmanpages.
+ It is not DWIM. You tell it what to install and it figures out where
+ based on .TH section field and filename extention. I reccommend everyone
+ begin using it, since this is much better then dh_installmanpages's
+ evilness. I've been meaning to do this for a very long time..
+ Closes: #38673, #53964, #64297, #16933, #17061, #54059, #54373, #61816
+ * dh_installmanpages remains in the package for backwards compatibility,
+ but is mildly deprecated.
+ * dh_testversion is deprecated; use build dependancies instead.
+ * dh_suidregister: re-enabled. Aj thinks that requiring people to stop
+ using it is unacceptable. Who am I to disagree with a rc bug report?
+ Closes: #84910 It is still deprecated, and it will still whine at you
+ if you use it. I appreciate the job everyone has been doing at
+ switching to statoverrides..
+ * Since dh_debstd requires dh_installmanpages (where do you think the
+ latter's evil interface came from?), I have removed it. It was a nice
+ thought-toy, but nobody really used it, right?
+ * Since the from-debstd document walks the maintainer through running
+ dh_debstd to get a list of debhelper commands, and since that document
+ has really outlives its usefullness, I removed it too. Use dh-make
+ instead.
+ * dh_installman installs only into /usr/share/man, not the X11R6
+ directory. Policy says "files must not be installed into
+ `/usr/X11R6/bin/', `/usr/X11R6/lib/', or `/usr/X11R6/man/' unless this
+ is necessary for the package to operate properly", and I really doubt
+ a man page being in /usr/share/man is going to break many programs.
+ Closes: #81853 (I hope the bug submitter doesn't care that
+ dh_installmanpages still puts stuff in the X11R6/man directory.)
+ * dh_undocumented now the same too now.
+ * dh_installinit: installs debian/package.default files as /etc/default/
+ files.
+ * Updated to current perl coding standards (use strict, lower-case
+ variable names, pod man pages).
+ * Since with the fixing of the man page installer issue, my checklist for
+ debhelper v3 is complete, I pronounce debhelper v3 done! Revved the
+ version number appropriatly (a large jump; v3 changes less than I had
+ planned). Note that I have no plans for a v4 at this time. :-)
+ * Testing: I have used this new version of debhelper to build a large
+ number of my own packages, and it seems to work. But this release
+ touches every file in this package, so be careful out there..
+
+ -- Joey Hess <joeyh@debian.org> Thu, 8 Feb 2001 14:29:58 -0800
+
+debhelper (2.2.21) unstable; urgency=low
+
+ * Fixed a stupid typo in dh_suidregister, Closes: #85110
+
+ -- Joey Hess <joeyh@debian.org> Tue, 6 Feb 2001 13:29:57 -0800
+
+debhelper (2.2.20) unstable; urgency=low
+
+ * dh_installinit -r: stop init script in prerm on package removal,
+ Closes: #84974
+
+ -- Joey Hess <joeyh@debian.org> Mon, 5 Feb 2001 10:06:31 -0800
+
+debhelper (2.2.19) unstable; urgency=low
+
+ * dh_shlibdeps -l can handle relative paths now. Patch from Colin Watson
+ <cjw44@flatline.org.uk>, Closes: #84408
+
+ -- Joey Hess <joeyh@debian.org> Thu, 1 Feb 2001 13:35:39 -0800
+
+debhelper (2.2.18) unstable; urgency=medium
+
+ * Added a suggests to debconf-utils, Closes: #83643
+ I may chenge this to a dependancy at some point in the future,
+ since one debconf command needs the package to work.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 30 Jan 2001 22:39:54 -0800
+
+debhelper (2.2.17) unstable; urgency=medium
+
+ * dh_installdebconf: marge in templates with a .ll_LL extention,
+ they were previously ignored.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 29 Jan 2001 13:05:21 -0800
+
+debhelper (2.2.16) unstable; urgency=medium
+
+ * Bah, reverted that last change. It isn't useful because
+ dpkg-buildpackage reads the real control file and gets confused.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 28 Jan 2001 01:47:46 -0800
+
+debhelper (2.2.15) unstable; urgency=medium
+
+ * Added the ability to make debhelper read a different file than
+ debian/control as the control file. This is very useful for various and
+ sundry things, all Evil, most involving kernel packages.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 24 Jan 2001 17:33:46 -0800
+
+debhelper (2.2.14) unstable; urgency=medium
+
+ * Corrected globbing issue with dh_movefiles in v3 mode. Closes: #81431
+
+ -- Joey Hess <joeyh@debian.org> Sun, 21 Jan 2001 18:33:59 -0800
+
+debhelper (2.2.13) unstable; urgency=medium
+
+ * Fixed a man page typo, Closes: #82371:
+ * Added note to dh_strip man page, Closes: #82220
+
+ -- Joey Hess <joeyh@debian.org> Mon, 15 Jan 2001 20:38:53 -0800
+
+debhelper (2.2.12) unstable; urgency=medium
+
+ * suidmanager is obsolete now, and so is dh_suidmanager. Instead,
+ packages that contain suid binaries should include the binaries suid in
+ the .deb, and dpkg-statoverride can override this. If this is done
+ to a program that previously used suidmanager, though, you need to
+ conflict with suidmanager (<< 0.50).
+ * Made dh_suidmanager check to see if it would have done anything before.
+ If so, it states that it is obsolete, and refer users to the man
+ page, which now explains the situation, and then aborts the build.
+ If it would have done nothing before, it just outputs a warning that
+ it is an obsolete program.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 10 Jan 2001 13:17:50 -0800
+
+debhelper (2.2.11) unstable; urgency=medium
+
+ * Fixed dh_installwm. Oops. Closes: #81124
+
+ -- Joey Hess <joeyh@debian.org> Wed, 3 Jan 2001 10:18:38 -0800
+
+debhelper (2.2.10) unstable; urgency=low
+
+ * dh_shlibdeps: re-enabled -l flag, it's needed again. Closes: #80560
+
+ -- Joey Hess <joey@kitenet.net> Tue, 26 Dec 2000 22:05:30 -0800
+
+debhelper (2.2.9) unstable; urgency=low
+
+ * Fixed perl wanring, Closes: #80242
+
+ -- Joey Hess <joey@kitenet.net> Thu, 21 Dec 2000 14:43:11 -0800
+
+debhelper (2.2.8) unstable; urgency=medium
+
+ * dh_installwm: Moved update-alternatives --remove call to prerm,
+ Closes: #80209
+ * ALso guarded all update-alternatives --remove calls.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 21 Dec 2000 11:33:30 -0800
+
+debhelper (2.2.7) unstable; urgency=low
+
+ * Spelling patch.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 3 Dec 2000 17:12:15 -0800
+
+debhelper (2.2.6) unstable; urgency=low
+
+ * typo: Closes, #78567
+
+ -- Joey Hess <joeyh@debian.org> Sat, 2 Dec 2000 14:27:31 -0800
+
+debhelper (2.2.5) unstable; urgency=low
+
+ * Oops, it was not expanding wildcard when it should.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 29 Nov 2000 20:59:33 -0800
+
+debhelper (2.2.4) unstable; urgency=low
+
+ * dh_movefiles: added error message on file not found
+
+ -- Joey Hess <joeyh@debian.org> Wed, 29 Nov 2000 20:25:52 -0800
+
+debhelper (2.2.3) unstable; urgency=low
+
+ * If DH_COMPAT=3 is set, the following happens:
+ - Various debian/foo files like debian/docs, debian/examples, etc,
+ begin to support filename globbing. use \* to escape the wildcards of
+ course. I doubt this will bite anyone (Debian doesn't seem to contain
+ files with "*" or "?" in their names..), but it is guarded by v3 just
+ to be sure. Closes: #34120, #37694, #39846, #46249
+
+ -- Joey Hess <joeyh@debian.org> Mon, 27 Nov 2000 20:43:26 -0800
+
+debhelper (2.2.2) unstable; urgency=low
+
+ * dh_makeshlibs: corrected the evil db3-regex so it doesn't misfire on
+ data like "debian/libruby/usr/lib/ruby/1.6/i486-linux/etc.so".
+ Closes: #78139
+
+ -- Joey Hess <joeyh@debian.org> Mon, 27 Nov 2000 12:21:53 -0800
+
+debhelper (2.2.1) unstable; urgency=low
+
+ * Reverted the change to make debian/README be treated as README.Debian,
+ after I learned people use it for eg, documenting the source package
+ itself. Closes: #34628, since it seems this is not such an "incredibly
+ minor" change after all. Never underetimate the annoyance of
+ backwards-compatibility.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 27 Nov 2000 12:01:52 -0800
+
+debhelper (2.2.0) unstable; urgency=low
+
+ * DH_COMPAT=3 now enables the following new features which I can't just
+ turn on by default for fear of breaking backwards compatibility:
+ - dh_makeshlibs makes the postinst/postrm call ldconfig. Closes: #77154
+ Patch from Masato Taruishi <taru@debian.org> (modified). If you
+ use this, be sure dh_makeshlibs runs before dh_installdeb; many
+ old rules files have the ordering backwards.
+ - dh_installdeb now causes all files in /etc to be registered as
+ conffiles.
+ - debian/README is now supported: it is treated exactly like
+ debian/README.Debian. Either file is installed as README.Debian in
+ non-native packages, and now as just README in native packages.
+ Closes: #34628
+ * This is really only the start of the changes for v3, so use with
+ caution..
+ * dh_du has finally been removed. It has been deprecated for ages, and
+ a grep of the archive shows that nothing is using it except biss-awt
+ and scsh. I filed bugs on both almost exactly a year ago. Those bugs
+ should now be raised to severity important..
+ * --number option (to dh_installemacsen) is removed. It has been
+ deprecated for a while and nothing uses it. Use --priority instead.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 26 Nov 2000 17:51:58 -0800
+
+debhelper (2.1.28) unstable; urgency=low
+
+ * Ok, fine, I'll make debhelper depend on lynx for the one or two
+ packages that have html changelogs. But you'll be sorry...
+ Closes: #77604
+
+ -- Joey Hess <joeyh@debian.org> Tue, 21 Nov 2000 15:13:39 -0800
+
+debhelper (2.1.27) unstable; urgency=low
+
+ * Typo, Closes: #77441
+
+ -- Joey Hess <joeyh@debian.org> Sun, 19 Nov 2000 13:23:30 -0800
+
+debhelper (2.1.26) unstable; urgency=low
+
+ * Completed the fix from the last version.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 15 Nov 2000 20:39:25 -0800
+
+debhelper (2.1.25) unstable; urgency=low
+
+ * Ok, I tihnk we have a db3 fix that will really work now.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 12 Nov 2000 13:29:59 -0800
+
+debhelper (2.1.24) unstable; urgency=low
+
+ * I retract 2.1.23, the hack doesn't help make dpkg-shlibdeps work; db3
+ is broken upstream.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 12 Nov 2000 13:29:57 -0800
+
+debhelper (2.1.23) unstable; urgency=low
+
+ * dh_makeshlibs: Also scan files named "*.so*", not just "*.so.*",
+ but only if they are files. This should make it more usable with
+ rather stupidly broken libraries like db3, which do not encode the
+ major version in their filenames. However, it cannot guess the major
+ version of such libraries, so -m must be used.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 11 Nov 2000 17:24:58 -0800
+
+debhelper (2.1.22) unstable; urgency=low
+
+ * Fixed dh_perl to work with perl 5.6, Closes: #76508
+
+ -- Joey Hess <joeyh@debian.org> Tue, 7 Nov 2000 15:56:54 -0800
+
+debhelper (2.1.21) unstable; urgency=low
+
+ * dh_movefiles: no longer does the symlink ordering hack, as
+ this is supported by dpkg itself now. Added a dependancy on
+ dpkg-dev >= 1.7.0 to make sure this doesn't break anything.
+ * While I'm updating for dpkg 1.7.0, I removed the -ldirectory hack
+ from dh_shlibdeps; dpkg-shlibdeps has its own much more brutal hack to
+ make this work. The switch is ignored now for backwards compatibility.
+ * dh_suidregister will be deprecated soon -- dpkg-statoverride is a
+ much better way.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 6 Nov 2000 15:14:49 -0800
+
+debhelper (2.1.20) unstable; urgency=low
+
+ * dh_suidregister: do not unregister on purge, since it will have already
+ been unregistered then, and a warning will result.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 5 Nov 2000 17:02:50 -0800
+
+debhelper (2.1.19) unstable; urgency=low
+
+ * dh_builddeb: Ok, it is cosmetic, but it annoyed me.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 5 Nov 2000 16:20:46 -0800
+
+debhelper (2.1.18) unstable; urgency=low
+
+ * dh_builddeb: added a --filename option to specify the output filename.
+ This is intended to be used when building .udebs for the debian
+ installer.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 28 Oct 2000 11:41:20 -0700
+
+debhelper (2.1.17) unstable; urgency=low
+
+ * dh_movefiles.1: well I thought it was quite obvious why it always used
+ debian/tmp, but it's a faq. Added some explanation. By the way, since
+ there now exists a documented way to use dh_movefiles that does not
+ have problems with empty directories that get left behind and so on, I
+ think this Closes: #17111, #51985
+
+ -- Joey Hess <joeyh@debian.org> Fri, 27 Oct 2000 23:07:42 -0700
+
+debhelper (2.1.16) unstable; urgency=low
+
+ * dh_movefiles: fixed a regexp quoting problem with --sourcedir.
+ Closes: #75434
+ * Whoops, I think I overwrote bod's NMU with 2.2.15. Let's merge those
+ in:
+ .
+ debhelper (2.1.14-0.1) unstable; urgency=low
+ .
+ * Non-maintainer upload (thanks Joey).
+ * dh_installchangelogs, dh_installdocs: allow dangling symlinks for
+ $TMP/usr/share/doc/$PACKAGE (useful for multi-binary packages).
+ Closes: #53381
+ .
+ -- Brendan O'Dea <bod@debian.org> Fri, 20 Oct 2000 18:11:59 +1100
+ .
+ I also added some documentation to debhelper.1 about this, and removed
+ the TODO entry about it.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 23 Oct 2000 15:14:49 -0700
+
+debhelper (2.1.15) unstable; urgency=low
+
+ * dh_installwm: patched a path in some backwards compatibility code.
+ Closes: #75283
+
+ -- Joey Hess <joeyh@debian.org> Mon, 23 Oct 2000 10:13:44 -0700
+
+debhelper (2.1.14) unstable; urgency=low
+
+ * Rats, the previous change makes duplicate lines be created in the
+ shlibs file, and lintian conplains. Added some hackery that should
+ prevent that. Closes: #73052
+
+ -- Joey Hess <joeyh@debian.org> Tue, 3 Oct 2000 12:32:22 -0700
+
+debhelper (2.1.13) unstable; urgency=low
+
+ * Typo, Closes: #72932
+ * dh_makeshlibs: follow symlinks to files when looking for files that are
+ shared libraries. This allows it to catch files like
+ "liballeg-3.9.33.so" that are not in the *.so.* form it looks for, but
+ that doe have links to them that are in the right form. Closes: #72938
+
+ -- Joey Hess <joeyh@debian.org> Sun, 1 Oct 2000 18:23:48 -0700
+
+debhelper (2.1.12) unstable; urgency=low
+
+ * Rebuild to remove cvs junk, Closes: #72610
+
+ -- Joey Hess <joeyh@debian.org> Wed, 27 Sep 2000 12:39:06 -0700
+
+debhelper (2.1.11) unstable; urgency=low
+
+ * dh_installmanpages: don't install files that start with .#* -- these
+ are CVS files..
+
+ -- Joey Hess <joeyh@debian.org> Thu, 21 Sep 2000 11:58:52 -0700
+
+debhelper (2.1.10) unstable; urgency=low
+
+ * Modified to allow no spaces between control file field name and value
+ (this appears to be logal).
+
+ -- Joey Hess <joeyh@debian.org> Tue, 19 Sep 2000 23:13:17 -0700
+
+debhelper (2.1.9) unstable; urgency=low
+
+ * dh_installmodules: corrected the code added to maintainer scripts so it
+ does not call depmod -a. update-modules (which it always called)_
+ handles calling depmod if doing so is appropriate. Packages built with
+ proir versions probably have issues on systems with non-modular
+ kernels, and should be rebuilt. Closes: #71841
+
+ -- Joey Hess <joeyh@debian.org> Sun, 17 Sep 2000 14:40:45 -0700
+
+debhelper (2.1.8) unstable; urgency=low
+
+ * Fixed a stupid typo. Closes: #69750
+
+ -- Joey Hess <joeyh@debian.org> Tue, 22 Aug 2000 15:14:48 -0700
+
+debhelper (2.1.7) unstable; urgency=low
+
+ * debian/package.filename.arch is now checked for first, before
+ debian/package.filename. Closes: #69453
+ * Added a section to debhelper(1) about files in debian/ used by
+ debhelper, which documents this. Removed scattered references to
+ debian/filename from all over the man pages.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 20 Aug 2000 18:06:52 -0700
+
+debhelper (2.1.6) unstable; urgency=low
+
+ * dh_strip: now knows about the DEB_BUILD_OPTIONS=nostrip thing.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 20 Aug 2000 16:28:31 -0700
+
+debhelper (2.1.5) unstable; urgency=low
+
+ * dh_installxfonts: corrected a problem during package removal that was
+ silently neglecting to remove the fonts.dir/alias files.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 17 Aug 2000 00:44:25 -0700
+
+debhelper (2.1.4) unstable; urgency=low
+
+ * Whoops, I forgot to add v3 to cvs, so it was missing from a few
+ versions.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 4 Aug 2000 14:27:46 -0700
+
+debhelper (2.1.3) unstable; urgency=low
+
+ * dh_shlibdeps: if it sets LD_LIBRARY_PATH, it now prints out a line
+ showing it is doing that when in verbose mode.
+ * examples/rules.multi: don't use DH_OPTIONS hack. It's too confusing.
+ rules.multi2 still uses it, but it has comments explaining the caveats
+ of the hack.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 21 Jul 2000 13:53:02 -0700
+
+debhelper (2.1.2) unstable; urgency=low
+
+ * Minor man page updates as Overfiend struggles with debhelperizing X
+ 4.0.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 21 Jul 2000 00:25:32 -0700
+
+debhelper (2.1.1) unstable; urgency=low
+
+ * Never refer to root, always uid/gid "0". Closes: #67508
+
+ -- Joey Hess <joeyh@debian.org> Thu, 20 Jul 2000 16:56:24 -0700
+
+debhelper (2.1.0) unstable; urgency=low
+
+ * I started work on debhelper v2 over a year ago, with a long list of
+ changes I hoped to get in that broke backwards compatibility. That
+ development stalled after only the most important change was made,
+ although I did get out over 100 releases in the debhelper 2.0.x tree.
+ In the meantime, lots of packages have switched to using v2, despite my
+ warnings that doing so leaves packages open to being broken without
+ notice until v2 is complete.
+ * Therefore, I am calling v2 complete, as it is. Future non-compatible
+ changes will happen in v3, which will be started soon. This means that
+ by using debhelper v2, one major thing changes: debhelper uses
+ debian/<package> as the temporary directory for *all* packages;
+ debian/tmp is no longer used to build binary packages out of. This is
+ very useful for multi-binary packages, and I reccommend everyone
+ switch to v2.
+ * Updated example rules files to use v2 by default.
+ * Updated all documentation to assume that v2 is being used.
+ * Added a few notes for people still using v1.
+ * Moved all of the README into debhelper(1).
+
+ -- Joey Hess <joeyh@debian.org> Tue, 18 Jul 2000 15:48:41 -0700
+
+debhelper (2.0.104) unstable; urgency=low
+
+ * Put dh_installogrotate in the examples, Closes: #66986
+
+ -- Joey Hess <joeyh@debian.org> Mon, 10 Jul 2000 16:16:37 -0700
+
+debhelper (2.0.103) unstable; urgency=low
+
+ * Added dh_installlogrotate. Yuck, 3 l's, but I want to folow my
+ standard..
+
+ -- Joey Hess <joeyh@debian.org> Sun, 9 Jul 2000 00:51:03 -0700
+
+debhelper (2.0.102) unstable; urgency=low
+
+ * Documented the full list of extra files dh_clean deletes, since people
+ are for some reason adverse to using -v to find it. Closes: #66883
+
+ -- Joey Hess <joeyh@debian.org> Fri, 7 Jul 2000 12:40:43 -0700
+
+debhelper (2.0.101) unstable; urgency=low
+
+ * Killed the fixlinks stuff, since there are no longer any symlinks in
+ the source package.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 5 Jul 2000 19:14:10 -0700
+
+debhelper (2.0.100) unstable; urgency=low
+
+ * Modified all postinst script fragments to only run when called with
+ "configure". I looked at the other possibilities, and I don't think any
+ of the supported stuff should be called if the postist is called for
+ error unwinds. Closes: #66673
+ * Implemented dh_clean -X, to allow specification of files to not delete,
+ Closes: #66670
+
+ -- Joey Hess <joeyh@debian.org> Wed, 5 Jul 2000 17:02:40 -0700
+
+debhelper (2.0.99) unstable; urgency=low
+
+ * dh_installmodules will now install modiles even if etc/modutils already
+ exists (wasn't because of a logic error). Closes: #66289
+ * dh_movefiles now uses debian/movelist, rather than just movelist. This
+ is to fix an unlikely edge case involving a symlinked debian directory.
+ Closes: #66278
+
+ -- Joey Hess <joeyh@debian.org> Mon, 26 Jun 2000 14:24:12 -0700
+
+debhelper (2.0.98) unstable; urgency=low
+
+ * dh_installdebconf: Automatically merge localized template
+ files. If you use this feature, you should build-depend on
+ debconf-utils to get debconf-mergetemplate.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 19 May 2000 14:24:24 -0700
+
+debhelper (2.0.97) unstable; urgency=low
+
+ * dh_installinfo: changed test to see if an info file is the head file to
+ just skip files that end in -\d+.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 11 May 2000 14:11:04 -0700
+
+debhelper (2.0.96) unstable; urgency=low
+
+ * dh_installmodules: still add depmod -a calls if run on a package that
+ has no debian/modules file, but does contain modules.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 4 May 2000 15:32:42 -0700
+
+debhelper (2.0.95) unstable; urgency=low
+
+ * Fixes for perl 5.6.
+ * Spelling fixes.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 1 May 2000 13:35:11 -0700
+
+debhelper (2.0.94) unstable; urgency=low
+
+ * examples/rules.multi2: binary-indep and binary-arch targets need to
+ depend on the build and install targets.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 17 Apr 2000 15:09:26 -0700
+
+debhelper (2.0.93) unstable; urgency=low
+
+ * Patch from Pedro Guerreiro to make install-docs only be called on
+ configure and remove/upgrade. Closes: #62513
+
+ -- Joey Hess <joeyh@debian.org> Sun, 16 Apr 2000 19:05:52 -0700
+
+debhelper (2.0.92) unstable; urgency=low
+
+ * Detect changelog parse failures and use a better error message.
+ Closes: #62058
+
+ -- Joey Hess <joeyh@debian.org> Sat, 8 Apr 2000 20:02:16 -0700
+
+debhelper (2.0.91) unstable; urgency=low
+
+ * Fixed a silly typo in dh_installmanpages, Closes: #60727
+
+ -- Joey Hess <joeyh@debian.org> Sat, 18 Mar 2000 23:23:01 -0800
+
+debhelper (2.0.90) unstable; urgency=low
+
+ * Fixed dh_testversion; broken in last release.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 4 Mar 2000 13:16:58 -0800
+
+debhelper (2.0.89) unstable; urgency=low
+
+ * Patch from Jorgen `forcer' Schaefer <forcer at mindless.com> (much
+ modified)to make dh_installwm use new window manager registration method,
+ update-alternatives. Closes: #52156, #34684 (latter bug is obsolete)
+ * Fixed $dh{flavor} to be upper-case.
+ * Deprecated dh_installemavcsen --number; use --priority instead. Also,
+ the option parser requires the parameter be a number now. And,
+ dh_installwm now accepts --priority, and window manager packages should
+ start using it.
+ * dh_installwm now behaves like a proper debhelper command, and reads
+ debian/<package>.wm too. This is a small behavior change; filenames
+ specified on the command line no longer apply to all packages it acts
+ on. I can't belive this program existed for 2 years with such a glaring
+ problem; I guess most people don't need ot register 5 wm's in 3
+ sub-packages. Anyway, it can handle such things now. :-)
+ * Moved Dh_*.pm to /usr/lib/perl5/Debian/Debhelper. *big* change.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 2 Mar 2000 11:39:56 -0800
+
+debhelper (2.0.88) unstable; urgency=low
+
+ * Copyright update: files in the examples directory are public domain.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 7 Feb 2000 23:16:39 -0800
+
+debhelper (2.0.87) unstable; urgency=low
+
+ * Documented that lynx is used to convert html changelogs. Closes: #54055
+
+ -- Joey Hess <joeyh@debian.org> Mon, 7 Feb 2000 16:01:19 -0800
+
+debhelper (2.0.86) unstable; urgency=low
+
+ * dh_testroot: don't call init(), so it may be run even if it's not in the
+ right place. Closes: #55065
+
+ -- Joey Hess <joeyh@debian.org> Thu, 13 Jan 2000 21:40:21 -0800
+
+debhelper (2.0.85) unstable; urgency=low
+
+ * Downgraded fileutils dependancy just a bit for the Hurd foks.
+ Closes: #54620
+
+ -- Joey Hess <joeyh@debian.org> Mon, 10 Jan 2000 16:41:29 -0800
+
+debhelper (2.0.84) unstable; urgency=low
+
+ * Make all examples rules files executable.
+ * Copyright date updates.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 6 Jan 2000 15:10:55 -0800
+
+debhelper (2.0.83) unstable; urgency=low
+
+ * Depend on the current unstable fileutils, because I have to use chown
+ --no-dereference. I'm not sure when it started working, but it didn't work
+ in slink.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 5 Jan 2000 14:22:26 -0800
+
+debhelper (2.0.82) unstable; urgency=low
+
+ * Added dh_installmime calls to examples, Closes: #54056
+
+ -- Joey Hess <joeyh@debian.org> Tue, 4 Jan 2000 09:35:19 -0800
+
+debhelper (2.0.81) unstable; urgency=low
+
+ * dh_installxaw: Patch from Josip Rodin to update to fhs paths,
+ Closes: #53029
+
+ -- Joey Hess <joeyh@debian.org> Mon, 20 Dec 1999 12:21:34 -0800
+
+debhelper (2.0.80) unstable; urgency=low
+
+ * Type fix, Closes: #52652
+
+ -- Joey Hess <joeyh@debian.org> Mon, 13 Dec 1999 13:47:48 -0800
+
+debhelper (2.0.79) unstable; urgency=low
+
+ * Corrected mispellings, Closes: #52013
+
+ -- Joey Hess <joeyh@debian.org> Mon, 6 Dec 1999 13:46:18 -0800
+
+debhelper (2.0.78) unstable; urgency=low
+
+ * dh_fixperms: chown symlinks as well as normal files. Closes: #51169.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 1 Dec 1999 13:34:06 -0800
+
+debhelper (2.0.77) unstable; urgency=low
+
+ * dh_suidregister: Fixed a rather esoteric bug: If a file had multiple
+ hard links, and was suid, suidregister detected all the hard links as
+ files that need to be registered. It looped, registering the first
+ link, and then removing its suid bit. This messed up the registration
+ of the other had links, since their permissions were now changed,
+ leading to unpredictable results. The fix is to just not remove suid
+ bits until all files have been registered.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 30 Nov 1999 00:26:42 -0800
+
+debhelper (2.0.76) unstable; urgency=low
+
+ * dh_installmanpages:
+ - Added support for translated man pages, with a patch from Kis Gergely
+ <kisg@lme.linux.hu>. Closes: #51268
+ - Fixed the undefined value problem in Kis's patch.
+ - This also Closes: #37092 come to think of it.
+ * dh_shlibdeps, dh_shlibdeps.1:
+ - Added -X option, which makes it not examine some files. This is
+ useful in rare cases. Closes: #51100
+ - Always pass "-dDepends" before the list of files, which makes it
+ easier to specify other -d parameters in the uparams, and doesn't
+ otherwise change the result at all.
+ * doc/TODO:
+ - dh_installdebfiles is no longer a part of debhelper. This affects
+ exactly one package in unstable, biss-awt, which has had a bug filed
+ against it for 200+ days now asking that it stop using the program.
+ dh_installdebfiles has been depreacted for nearly 2 years now..
+ * This changelog was automatically generated from CVS commit information.
+ Fear makechangelog.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 28 Nov 1999 21:59:00 -0800
+
+debhelper (2.0.75) unstable; urgency=low
+
+ * Fixed typo in dh_installmenu.1, Closes: #51332
+
+ -- Joey Hess <joeyh@debian.org> Sat, 27 Nov 1999 20:40:15 -0800
+
+debhelper (2.0.74) unstable; urgency=low
+
+ * dh_suidregister: Die with understandable error message if asked to
+ act on files that don't exist.
+ * dh_installchangelogs: to comply with policy, if it's told to act on a
+ html changelog, it installs it as changelog.html.gz and dumps a plain
+ text version to changelog.gz. The dumping is done with lynx.
+ (Closes: #51099)
+ * Dh_Getopt.pm: Modified it so any options specified after -- are added to
+ U_PARAMS. This means that instead of passing '-u"something nasty"' to
+ dh_gencontrol and the like, you can pass '-- something nasty' without
+ fiddling to get the quoting right, etc.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 23 Nov 1999 11:36:15 -0800
+
+debhelper (2.0.73) unstable; urgency=low
+
+ * Actually, debhelper build-depends on perl-5.005.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 22 Nov 1999 21:43:55 -0800
+
+debhelper (2.0.72) unstable; urgency=low
+
+ * Corrected slash substitution problem in dh_installwm.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 22 Nov 1999 21:43:47 -0800
+
+debhelper (2.0.71) unstable; urgency=low
+
+ * Oh, the build dependancies include all of debhelper's regular
+ dependancies as well, since it builds using itself.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 5 Nov 1999 14:14:26 -0800
+
+debhelper (2.0.70) unstable; urgency=low
+
+ * Added build dependancies to this package. That was easy; it just uses
+ perl5 for regression testing, the rest of its build-deps are things
+ in base.
+ * dh_version.1: Added note that this program is quickly becoming obsolete.
+ * doc/README, doc/from-debstd: Added reminders that if you use debhelper,
+ you need to add debhelper to your Build-Depends line.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 4 Nov 1999 21:24:37 -0800
+
+debhelper (2.0.69) unstable; urgency=low
+
+ * dh_shlibdeps: added -l option, which lets you specify a path that
+ LD_LIBRARY_PATH is then set to when dpkg-shlibdeps is run. This
+ should make it easier for library packages that also build binary
+ packages to be built with correct dependancies. Closes: #36751
+ * In honor of Burn all GIFs Day (hi Don!), I added alternative
+ image formats .png, .jpg (and .jpeg) to the list of extensions dh_compress
+ does not compress. Closes: #41733
+ * Also, made all extensions dh_compress skips be looked at case
+ insensitively.
+ * dh_movefiles: force owner and group of installed files to be root.
+ Closes: #46039
+ * Closes: #42650, #47175 -- they've been fixed forever.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 4 Nov 1999 15:05:59 -0800
+
+debhelper (2.0.68) unstable; urgency=low
+
+ * dh_installxfonts: Patch from Anthony Wong to fix directory searching.
+ Closes: #48931
+
+ -- Joey Hess <joeyh@debian.org> Mon, 1 Nov 1999 14:46:04 -0800
+
+debhelper (2.0.67) unstable; urgency=low
+
+ * dh_installdebconf: Modified to use new confmodule debconf library.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 29 Oct 1999 15:24:47 -0700
+
+debhelper (2.0.66) unstable; urgency=low
+
+ * Fixed some problems with dh_installxfonts font dirs.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 28 Oct 1999 00:46:43 -0700
+
+debhelper (2.0.65) unstable; urgency=low
+
+ * dh_builddeb: -u can be passed to this command now, followed by
+ any extra parameters you want to pass to dpkg-deb (Closes: #48394)
+
+ -- Joey Hess <joeyh@debian.org> Tue, 26 Oct 1999 10:14:57 -0700
+
+debhelper (2.0.64) unstable; urgency=low
+
+ * Corrected a path name in dh_installxfonts. Closes: #48315
+
+ -- Joey Hess <joeyh@debian.org> Mon, 25 Oct 1999 14:24:03 -0700
+
+debhelper (2.0.63) unstable; urgency=low
+
+ * Removed install-stamp cruft in all example rules files. Closes: #47175
+
+ -- Joey Hess <joeyh@debian.org> Tue, 12 Oct 1999 14:23:09 -0700
+
+debhelper (2.0.62) unstable; urgency=low
+
+ * Fixed problem with dh_installemacsen options not working, patch from
+ Rafael Laboissiere <rafael@icp.inpg.fr>, Closes: #47738
+ * Added new dh_installxfonts script by Changwoo Ryu
+ <cwryu@dor17988.kaist.ac.kr>. Closes: #46684
+ I made some changes, though:
+ - I rewrote lots of this script to be more my style of perl.
+ - I removed all the verbisity from the postinst script fragment, since
+ that is a clear violation of policy.
+ - I made the postinst fail if the mkfontdir, etc commands fail, because
+ this really makes more sense. Consider idempotency.
+ - I moved the test to see if the font dir is really a directory into the
+ dh_ script and out of the snippet. If the maintainer plays tricks on
+ us, mkfontdir will blow up satisfactorally anyway.
+ - So, the snippet is 9 lines long now, down from 20-some.
+ - I realize this isn't following the reccommendations made in Brando^Hen's
+ font policy. I'll fight it out with him. :-)
+ - In postrm fragment, used rmdir -p to remove as many parent directories
+ as I can.
+ - s:/usr/lib/X11/:/usr/X11R6/lib/X11/:g
+
+ -- Joey Hess <joeyh@debian.org> Sun, 24 Oct 1999 15:30:53 -0700
+
+debhelper (2.0.61) unstable; urgency=low
+
+ * Clarified rules.multi2 comment. Closes: #46828
+
+ -- Joey Hess <joeyh@debian.org> Sat, 9 Oct 1999 18:21:02 -0700
+
+debhelper (2.0.60) unstable; urgency=low
+
+ * dh_compress: After compressing an executable, changes the file mode to
+ 644. Executable .gz files are silly. Closes: #46383
+
+ -- Joey Hess <joeyh@debian.org> Wed, 6 Oct 1999 13:05:14 -0700
+
+debhelper (2.0.59) unstable; urgency=low
+
+ * dh_installdocs: if $TMP/usr/share/doc/$PACKAGE is a broken symlink,
+ leaves it alone, assumming that the maintainer knows what they're doing
+ and is probably linking to the doc dir of another package.
+ (Closes: #46183)
+
+ -- Joey Hess <joeyh@debian.org> Mon, 4 Oct 1999 16:27:28 -0700
+
+debhelper (2.0.58) unstable; urgency=low
+
+ * Dh_Lib.pm: fixed bug in xargs() that made boundry words be skipped.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 3 Oct 1999 18:55:29 -0700
+
+debhelper (2.0.57) unstable; urgency=low
+
+ * Added note to man pages of commands that use autoscript to note they are
+ not idempotent.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 1 Oct 1999 13:18:20 -0700
+
+debhelper (2.0.56) unstable; urgency=low
+
+ * Fiddlesticks. The neat make trick I was using in rules.multi2 failed if
+ you try to build binary-indep and binary-arch targets in the same make
+ run. Make tries to be too smart. Modified the file so it will work,
+ though it's now uglier. Closes: 46287
+ * examples/*: It's important that one -not- use a install-stamp target.
+ Install should run every time binary-* calls it. Otherwise if a binary-*
+ target is called twice by hand, you get duplicate entries in the
+ maintainer script fragment files. Closes: #46313
+
+ -- Joey Hess <joeyh@debian.org> Thu, 30 Sep 1999 12:01:40 -0700
+
+debhelper (2.0.55) unstable; urgency=low
+
+ * Fixed quoting problem in examples/rules.multi (Closes: #46254)
+
+ -- Joey Hess <joeyh@debian.org> Wed, 29 Sep 1999 12:06:59 -0700
+
+debhelper (2.0.54) unstable; urgency=low
+
+ * Enhanced debconf support -- the database is now cleaned up on package
+ purge.
+ * Broke all debconf support off into a dh_installdebconf script. This
+ seems conceptually a little cleaner.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 28 Sep 1999 16:12:53 -0700
+
+debhelper (2.0.53) unstable; urgency=low
+
+ * Minor changes to rules.multi2.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 27 Sep 1999 13:57:17 -0700
+
+debhelper (2.0.52) unstable; urgency=low
+
+ * dh_movefiles: if the wildcards in the filelist expand to nothing,
+ don't do anything, rather than crashing.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 23 Sep 1999 15:18:00 -0700
+
+debhelper (2.0.51) unstable; urgency=low
+
+ * dh_installdocs: create the compatibility symlink before calling
+ install-docs. I'm told this is better in some cases. (Closes: #45608)
+ * examples/rules.multi2: clarified what you have to comment/uncomment.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 20 Sep 1999 12:43:09 -0700
+
+debhelper (2.0.50) unstable; urgency=medium
+
+ * Oops. Fixed dh_shlibdeps so it actually generates dependancies, broke in
+ last version.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 18 Sep 1999 19:00:10 -0700
+
+debhelper (2.0.49) unstable; urgency=low
+
+ * dh_shlibdeps: detect statically linked binaries and don't pass them to
+ dpkg-shlibdeps.
+ * dh_installdeb: debconf support.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 17 Sep 1999 00:28:59 -0700
+
+debhelper (2.0.48) unstable; urgency=low
+
+ * 4 whole days without a debhelper upload! Can't let that happen. Let's see..
+ * dh_installperl.1: explain what you have to put in your control file
+ for the dependancies to be generated.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 16 Sep 1999 21:15:05 -0700
+
+debhelper (2.0.47) unstable; urgency=low
+
+ * dh_undocumented: installs links for X11 man pages to the undocumented.7
+ page in /usr/share/man. (Closes: #44909)
+
+ -- Joey Hess <joeyh@debian.org> Sun, 12 Sep 1999 13:12:34 -0700
+
+debhelper (2.0.46) unstable; urgency=low
+
+ * dh_installemacsen: the script fragments it generates now test for the
+ existance of emacs-package-install/remove before calling them. Though
+ a strict reading of the emacsen policy indicates that such a test
+ shouldn't be needed, there may be edge cases (cf bug 44924), where it
+ is.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 12 Sep 1999 12:54:37 -0700
+
+debhelper (2.0.45) unstable; urgency=low
+
+ * dh_installdocs.1: clarified how the doc-id is determined. Closes: #44864
+ * dh_makeshlibs: will now overwrite existing debian/tmp/DEBIAN/shlibs
+ files, instead of erroring out. (Closes: #44828)
+
+ -- Joey Hess <joeyh@debian.org> Sat, 11 Sep 1999 13:15:33 -0700
+
+debhelper (2.0.44) unstable; urgency=low
+
+ * dh_compress: fixed #ARGV bug (again) Closes: #44853
+
+ -- Joey Hess <joeyh@debian.org> Sat, 11 Sep 1999 13:04:15 -0700
+
+debhelper (2.0.43) unstable; urgency=low
+
+ * Corrected example rules files, which had some messed up targets.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 9 Sep 1999 11:22:09 -0700
+
+debhelper (2.0.42) unstable; urgency=low
+
+ * dh_installinfo: failed pretty miserably if the info file's section
+ contained '/' characters. Doesn't now.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 6 Sep 1999 16:33:13 -0700
+
+debhelper (2.0.41) unstable; urgency=low
+
+ * dh_installinfo: use FHS info dir. I wonder how I missed that..
+
+ -- Joey Hess <joeyh@debian.org> Mon, 6 Sep 1999 13:22:08 -0700
+
+debhelper (2.0.40) unstable; urgency=low
+
+ * FHS complience. Patch from Johnie Ingram <johnie@netgod.net>.
+ For the most part, this was a straight-forward substitution,
+ dh_installmanpages needed a non-obvious change though.
+ * Closes: #42489, #42587, #41732.
+ * dh_installdocs: Adds code to postinst and prerm as specified in
+ http://www.debian.org/Lists-Archives/debian-ctte-9908/msg00038.html,
+ to make /usr/doc/<package> a compatibility symlink to
+ /usr/share/doc/<package>. Note that currently if something exists in
+ /usr/doc/<package> when the postinst is run, it will silently not make
+ the symlink. I'm considering more intellingent handing of this case.
+ * Note that if you build a package with this version of debhelper, it will
+ use /usr/share/man, /usr/share/doc, and /usr/share/info. You may need to
+ modify other files in your package that reference the old locations.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 5 Sep 1999 21:06:11 -0700
+
+debhelper (2.0.30) unstable; urgency=low
+
+ * It turns out it's possible to set up make variables that are specific to
+ a single target of a Makefile. This works tremendously well with
+ DH_OPTIONS: no need to put "-i" or "-pfoo" after every debhelper command
+ anymore.
+ * debhelper.1: mentioned above technique.
+ * examples/rules.multi: use the above method to get rid of -i's and -a's.
+ * examples/rules.multi2: new file, example of a multi-binary package that
+ works for arch-indep and arch-dependant packages, and also allows
+ building of single binary packages independntly, via binary-<package>
+ targets. It accomplishes all this using only one list of debhelper
+ commands.
+ * examples/*: removed source and diff targets. They've been obsolete for 2
+ years -- or is it 3? No need for a nice error message on failure anymore.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 3 Sep 1999 11:28:24 -0700
+
+debhelper (2.0.29) unstable; urgency=low
+
+ * dh_shlibdeps: Fixed quoting problem that made it fail on weird file names.
+ Patch from Devin Carraway <debianbug-debhelper@devin.com>, Closes: #44016
+
+ -- Joey Hess <joeyh@debian.org> Thu, 2 Sep 1999 13:40:37 -0700
+
+debhelper (2.0.28) unstable; urgency=low
+
+ * Oops, dh_installpam was omitted from the package. Added back.
+ Closes: #43652
+
+ -- Joey Hess <joeyh@debian.org> Fri, 27 Aug 1999 19:16:38 -0700
+
+debhelper (2.0.27) unstable; urgency=low
+
+ * No user visible changes. Modified the package to interface better with
+ my new local build system, which auto-updates the home page when a new
+ debhelper is built.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 26 Aug 1999 23:20:40 -0700
+
+debhelper (2.0.25) unstable; urgency=low
+
+ * Corrected debian/fixlinks to make the correct debian/* symlinks needed
+ for building debhelper.
+ * Fixed rules file to create and populate examples and docs dirs. Oops.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 25 Aug 1999 19:46:08 -0700
+
+debhelper (2.0.24) unstable; urgency=low
+
+ * dh_installdocs: Handle trailing whitespace after Document: name.
+ Closes: #43148.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 18 Aug 1999 10:23:17 -0700
+
+debhelper (2.0.23) unstable; urgency=low
+
+ * Fixed makefile commit target.
+ * Misc changes to make CVS dirs not be copies into package.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 16 Aug 1999 22:43:39 -0700
+
+debhelper (2.0.22) unstable; urgency=low
+
+ * Checked all of debhelper into CVS.
+ * Removed Test.pm (we have perl 5.005 now)
+ * Skip CVS dir when running tests.
+ * Since CVS is so brain dead about symlinks, added a debian/fixlinks script.
+ Modified debian/rules to make sure it's run if any of the symlinks are
+ missing. Also, made Makefile a short file that sources debian/rules so
+ it's always available.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 16 Aug 1999 22:35:12 -0700
+
+debhelper (2.0.21) unstable; urgency=low
+
+ * Wow. It turns out dh_installdocs has been doing it wrong and doc-base
+ files have the doc-id inside them. Applied and modified a patch from
+ Peter Moulder <reiter@netspace.net.au> to make it use those id's instead
+ of coming up with it's own. (Closes: #42650)
+
+ -- Joey Hess <joeyh@debian.org> Sun, 8 Aug 1999 10:24:10 -0700
+
+debhelper (2.0.20) unstable; urgency=low
+
+ * dh_perl: Patch from Raphael Hertzog <rhertzog@hrnet.fr> to allow
+ specification on the command line of alternate paths to search for perl
+ modules. (Closes: #42171)
+
+ -- Joey Hess <joeyh@debian.org> Fri, 30 Jul 1999 09:42:08 -0700
+
+debhelper (2.0.19) unstable; urgency=low
+
+ * dh_installinfo: fixed bug if a info file had no section.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 29 Jul 1999 11:41:11 -0700
+
+debhelper (2.0.18) unstable; urgency=low
+
+ * dh_installxaw: fixed multiple stanza problem, for real this time (patch
+ misapplied last time). (Closes: #41862)
+
+ -- Joey Hess <joeyh@debian.org> Mon, 26 Jul 1999 13:00:09 -0700
+
+debhelper (2.0.17) unstable; urgency=low
+
+ * dh_clean: compat() wasn't exported.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 21 Jul 1999 12:49:52 -0700
+
+debhelper (2.0.16) unstable; urgency=low
+
+ * Dh_lib.pm: when looking for debhelper files in debian/, test with -f,
+ not with -e, because it might fail if you're building a package named,
+ say, 'docs', with a temp dir of debian/docs. I don't anticipate this
+ ever happenning, but it pays to be safe.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 20 Jul 1999 21:00:04 -0700
+
+debhelper (2.0.15) unstable; urgency=low
+
+ * dh_clean: only force-remove debian/tmp if in v2 mode. In v1 mode, we
+ shouldn't remove it because we may only be acting on a single package.
+ (Closes: #41689)
+
+ -- Joey Hess <joeyh@debian.org> Tue, 20 Jul 1999 19:00:15 -0700
+
+debhelper (2.0.14) unstable; urgency=low
+
+ * Moved /usr/lib/debhelper to /usr/share/debhelper for FHS compliance
+ (#41174). If you used Dh_lib or something in another package, be sure to
+ update your "use" line and declare an appropriate dependancy. (Closes:
+ #41174)
+ * dh_installxaw: Patch from Josip Rodin <joy@cibalia.gkvk.hr> to fix
+ multiple-stanza xaw file support. (Closes: #41173)
+
+ -- Joey Hess <joeyh@debian.org> Mon, 12 Jul 1999 11:49:57 -0700
+
+debhelper (2.0.13) unstable; urgency=low
+
+ * dh_fixperms: FHS fixes (#41058)
+
+ -- Joey Hess <joeyh@debian.org> Fri, 9 Jul 1999 13:07:49 -0700
+
+debhelper (2.0.12) unstable; urgency=low
+
+ * dh_installinfo: fixed #SECTION# substitution.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 7 Jul 1999 17:51:59 -0700
+
+debhelper (2.0.11) unstable; urgency=low
+
+ * At long, long last, dh_installinfo is written. It takes a simple list of
+ info files and figures out the rest for you. (Closes: #15717)
+
+ -- Joey Hess <joeyh@debian.org> Wed, 7 Jul 1999 17:04:48 -0700
+
+debhelper (2.0.10) unstable; urgency=low
+
+ * dh_compress: compress changelog.html files. (Closes: #40626)
+ * dh_installchangelogs: installs a link from changelog.html.gz to changelog.gz,
+ because I think it's important that upstream changelogs always be accessable
+ at that name.
+ * dh_compress: removed the usr/share/X11R6/man bit. Note part of FHS.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 7 Jul 1999 10:46:03 -0700
+
+debhelper (2.0.09) unstable; urgency=low
+
+ * dh_compress: added some FHS support. Though debhelper doesn't put stuff
+ there (and won't until people come up with a general transition strategy or
+ decide to not have a clean transiotion), dh_compress now compresses
+ various files in /usr/share/{man,doc,info}. (Closes: #40892)
+
+ -- Joey Hess <joeyh@debian.org> Wed, 7 Jul 1999 09:55:03 -0700
+
+debhelper (2.0.08) unstable; urgency=low
+
+ * dh_*: redirect cd output to /den/null, because CD can actually output
+ things if CDPATH is set.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 6 Jul 1999 10:14:00 -0700
+
+debhelper (2.0.07) unstable; urgency=low
+
+ * Added dh_perl calls to example rules files.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 4 Jul 1999 15:57:51 -0700
+
+debhelper (2.0.06) unstable; urgency=low
+
+ * Now depends on perl5 | perl, I'll kill the | perl bit later on, but it
+ seems to make sense for the transition.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 4 Jul 1999 10:56:03 -0700
+
+debhelper (2.0.05) unstable; urgency=low
+
+ * dh_clean: clean debian/tmp even if v2 is being used. If you're
+ using dh_movefiles, stuff may well be left in there, and it needs to be
+ cleaned up.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 3 Jul 1999 13:23:46 -0700
+
+debhelper (2.0.04) unstable; urgency=low
+
+ * Patch from Raphael Hertzog <rhertzog@hrnet.fr> to make dh_perl support a
+ -d flag that makes it add a dependancy on the sppropriate perl-XXX-base
+ package. Few packages will really need this. (Closes: #40631)
+
+ -- Joey Hess <joeyh@debian.org> Fri, 2 Jul 1999 11:22:00 -0700
+
+debhelper (2.0.03) unstable; urgency=low
+
+ * Depend on file >= 2.23-1, because dh_perl uses file -b, introduced at
+ that version. (Closes: #40589)
+
+ -- Joey Hess <joeyh@debian.org> Thu, 1 Jul 1999 14:41:12 -0700
+
+debhelper (2.0.02) unstable; urgency=low
+
+ * If you're going to use v2, it's reccommended you call
+ "dh_testversion 2". Added a note about that to doc/v2.
+ * Dh_Lib.pm compat: if a version that is greater than the highest
+ supported compatibility level is specified, abort with an error. Perhaps
+ there will be a debhelper v3 some day...
+
+ -- Joey Hess <joeyh@debian.org> Thu, 1 Jul 1999 14:08:14 -0700
+
+debhelper (2.0.01) unstable; urgency=low
+
+ * Actually include doc/v2 this time round.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 1 Jul 1999 14:01:55 -0700
+
+debhelper (2.0.00) unstable; urgency=low
+
+ * Don't let the version number fool you. Debhelper v2 is here, but just
+ barely. That's what all the zero's mean. :-)
+ * If DH_COMPAT=2, then debian/<package> will be used for the temporary
+ build directory for all packages. debian/tmp is no more! (Well, except
+ dh_movefiles still uses it.)
+ * debhelper.1: documented this.
+ * Dh_lib.pm: added compat(), pass in a number, it returns true if the
+ current compatibility level is equal to that number.
+ * doc/PROGRAMMING: documented that.
+ * debhelper itself now builds using DH_COMPAT=2.
+ * dh_debstd forces DH_COMPAT=1, because it needs to stay compatible with
+ debstd after all.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 1 Jul 1999 13:37:58 -0700
+
+debhelper (1.9.00) unstable; urgency=low
+
+ * This is a release of debhelper in preparation for debhelper v2.
+ * doc/v2: added, documented status of v2 changes.
+ * README: mention doc/v2
+ * debhelper.1: docuimented DH_COMPAT
+ * examples/*: added DH_COMAPT=1 to top of rules files
+
+ -- Joey Hess <joeyh@debian.org> Thu, 1 Jul 1999 13:16:41 -0700
+
+debhelper (1.2.83) unstable; urgency=medium
+
+ * dh_perl: fixed substvars typo. Urgency medium since a lot of people will
+ be using this script RSN.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 1 Jul 1999 11:44:05 -0700
+
+debhelper (1.2.82) unstable; urgency=low
+
+ * dh_installinit: applied patch from Yann Dirson <ydirson@multimania.com>
+ to make it look for init.d scripts matching the --init-script parameter.
+ This is only useful if, like Yann, you have packages that need to install
+ more than 1 init script.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 25 Jun 1999 11:38:05 -0700
+
+debhelper (1.2.81) unstable; urgency=low
+
+ * dh_link: fixed bug #40159 and added a regression test for it. It was
+ failing if it was given absolute filenames.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 25 Jun 1999 10:12:44 -0700
+
+debhelper (1.2.80) unstable; urgency=low
+
+ * Changed perl version detection.
+ * Changed call to find.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 24 Jun 1999 16:48:53 -0700
+
+debhelper (1.2.79) unstable; urgency=low
+
+ * Added dh_perl by Raphael Hertzog <rhertzog@hrnet.fr>. dh_perl handles
+ finding dependancies of perl scripts, plus deleting those annoying
+ .packlist files.
+ * I don't think dh_perl is going to be useful until the new version of
+ perl comes out.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 24 Jun 1999 14:47:55 -0700
+
+debhelper (1.2.78) unstable; urgency=low
+
+ * Really include dh_installpam.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 15 Jun 1999 09:00:36 -0700
+
+debhelper (1.2.77) unstable; urgency=low
+
+ * dh_installpam: new program by Sean <shaleh@foo.livenet.net>
+ * Wrote man page for same.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 11 Jun 1999 13:08:04 -0700
+
+debhelper (1.2.76) unstable; urgency=low
+
+ * dh_fixperms: Do not use chmod/chown -R at all anymore, instead it uses
+ the (slower) find then chown method. Necessary because the -R methods will
+ happyily attempt to chown a dangling symlink, which makes them fail.
+ (Closes: #38911)
+
+ -- Joey Hess <joeyh@debian.org> Mon, 7 Jun 1999 20:20:01 -0700
+
+debhelper (1.2.75) unstable; urgency=low
+
+ * dh_installemacsen: fixed perms of install, remove scripts.
+ (closes: #39082)
+
+ -- Joey Hess <joeyh@debian.org> Mon, 7 Jun 1999 14:42:12 -0700
+
+debhelper (1.2.74) unstable; urgency=low
+
+ * dh_installmanpages: recognizes gzipped man pages and installs them.
+ This is an experimental change, one problem is if your man page isn't
+ already gzip-9'd, it will be in violation of policy. (closes: #38673)
+ * The previous fix to dh_installemacsen was actually quite necessary - the
+ x bit was being set!
+
+ -- Joey Hess <joeyh@debian.org> Thu, 3 Jun 1999 15:14:27 -0700
+
+debhelper (1.2.73) unstable; urgency=low
+
+ * dh_installemacsen: make sure files are installed mode 0644. Not strictly
+ necessary since dh_fixperms fixes them if you have a wacky umask, but oh
+ well. (Closes: 38900)
+
+ -- Joey Hess <joeyh@debian.org> Thu, 3 Jun 1999 14:50:42 -0700
+
+debhelper (1.2.72) unstable; urgency=low
+
+ * dh_installemacsen: use debian/package.emacsen-startup, not
+ debian/package.emacsen-init. The former has always been documented to
+ work on the man page (closes: #38898).
+
+ -- Joey Hess <joeyh@debian.org> Thu, 3 Jun 1999 14:16:57 -0700
+
+debhelper (1.2.71) unstable; urgency=low
+
+ * Fixed a typo (closes: #38881)
+
+ -- Joey Hess <joeyh@debian.org> Thu, 3 Jun 1999 13:23:23 -0700
+
+debhelper (1.2.70) unstable; urgency=low
+
+ * dh_installmanpages: Properly quoted metacharacters in $dir in regexp.
+ (#38263).
+
+ -- Joey Hess <joeyh@debian.org> Tue, 25 May 1999 14:12:30 -0700
+
+debhelper (1.2.69) unstable; urgency=low
+
+ * Don't include Test.pm in the binary package.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 23 May 1999 19:29:27 -0700
+
+debhelper (1.2.68) unstable; urgency=low
+
+ * doc/README: updated example of using #DEBHELPER# in a perl script, with
+ help from Julian Gilbey.
+ * dh_link: generate absolute symlinks where appropriate. The links
+ generated before were wrong simetimes (#37774)
+ * Started writing a regression test suite for debhelper. Currently covers
+ only the above bugfix and a few more dh_link tests.
+ * Tossed Test.pm into the package (for regression tests) until we get perl
+ 5.005 which contains that package. That file is licenced the same as perl.
+ * dh_installchangelogs: force all installed files to be owned by root
+ (#37655).
+
+ -- Joey Hess <joeyh@debian.org> Sun, 16 May 1999 17:18:44 -0700
+
+debhelper (1.2.67) unstable; urgency=low
+
+ * dh_installmodules: fixed type that made the program not work.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 12 May 1999 00:25:05 -0700
+
+debhelper (1.2.66) unstable; urgency=low
+
+ * examples/rules.multi: dh_shlibdeps must be run before dh_gencontrol
+ (#37346)
+
+ -- Joey Hess <joeyh@debian.org> Sun, 9 May 1999 14:03:05 -0700
+
+debhelper (1.2.65) unstable; urgency=low
+
+ * Added to docs.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 6 May 1999 21:46:03 -0700
+
+debhelper (1.2.64) unstable; urgency=low
+
+ * dh_installmime: new command (#37093, #32684).
+
+ -- Joey Hess <joeyh@debian.org> Mon, 3 May 1999 13:37:34 -0700
+
+debhelper (1.2.63) unstable; urgency=low
+
+ * dh_installxaw: updated to work with xaw-wrappers 0.90 and above. It
+ actually has to partially parse the xaw-wrappers config files now.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 2 May 1999 19:13:34 -0700
+
+debhelper (1.2.62) unstable; urgency=low
+
+ * dh_installemacsen: added support for site-start files. Added --flavor
+ and --number to control details of installation. (#36832)
+
+ -- Joey Hess <joeyh@debian.org> Sun, 2 May 1999 15:31:58 -0700
+
+debhelper (1.2.61) unstable; urgency=low
+
+ * dh_md5sums.1: dh_md5sums is not deprecated, AFAIK, but the manpage has
+ somehow been modified to say it was at version 1.2.45.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 26 Apr 1999 19:54:04 -0700
+
+debhelper (1.2.60) unstable; urgency=low
+
+ * dh_installexamples.1: recycled docs fix.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 26 Apr 1999 17:19:07 -0700
+
+debhelper (1.2.59) unstable; urgency=low
+
+ * dh_builddeb: added --destdir option, which lets you tell it where
+ to put the generated .deb's. Default is .. of course.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 22 Apr 1999 22:02:01 -0700
+
+debhelper (1.2.58) unstable; urgency=low
+
+ * autoscripts/postinst-suid: use /#FILE# in elif test (#36297).
+
+ -- Joey Hess <joeyh@debian.org> Sun, 18 Apr 1999 22:33:52 -0700
+
+debhelper (1.2.57) unstable; urgency=low
+
+ * examples/*: killed trailing spaces after diff: target
+
+ -- Joey Hess <joeyh@debian.org> Mon, 12 Apr 1999 22:02:32 -0700
+
+debhelper (1.2.56) unstable; urgency=low
+
+ * dh_suidregister: make the chown/chmod only happen if the file actually
+ exists. This is useful if you have conffiles that have permissions and
+ may be deleted. (#35845)
+
+ -- Joey Hess <joeyh@debian.org> Sat, 10 Apr 1999 13:35:23 -0700
+
+debhelper (1.2.55) unstable; urgency=low
+
+ * Various man page enhancements.
+ * dh_md5sums: supports -X to make it skip including files in the
+ md5sums (#35819).
+
+ -- Joey Hess <joeyh@debian.org> Fri, 9 Apr 1999 18:21:58 -0700
+
+debhelper (1.2.54) unstable; urgency=low
+
+ * dh_installinit.1: man page fixups (#34160).
+ * *.1: the date of each man page is now automatically updated when
+ debhelper is built to be the last modification time of the man page.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 8 Apr 1999 20:28:00 -0700
+
+debhelper (1.2.53) unstable; urgency=low
+
+ * dh_compress: leave .taz and .tgz files alone. Previously trying to
+ compress such files caused gzip to fail and the whole command to fail.
+ Probably fixes #35677. Actually, it now skips files with a whole
+ range of odd suffixes that gzip refuses to compress, including "_z" and
+ "-gz".
+ * dh_compress.1: updated docs to reflect this, and to give the new
+ suggested starting point if you want to write your own debian/compress
+ file.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 7 Apr 1999 02:20:14 -0700
+
+debhelper (1.2.52) unstable; urgency=low
+
+ * dh_installmodules: new program, closes #32546.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 1 Apr 1999 17:25:37 -0800
+
+debhelper (1.2.51) unstable; urgency=low
+
+ * Another very minor typo fix.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 1 Apr 1999 14:04:02 -0800
+
+debhelper (1.2.50) unstable; urgency=low
+
+ * Very minor typo fix.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 26 Mar 1999 17:27:01 -0800
+
+debhelper (1.2.49) unstable; urgency=low
+
+ * dh_fixperms: if called with -X, was attempting to change permissions of
+ even symlinks. This could have even caused it to follow the symlinks and
+ modify files on the build system in some cases. Ignores them now. (#35102)
+
+ -- Joey Hess <joeyh@debian.org> Wed, 24 Mar 1999 13:21:49 -0800
+
+debhelper (1.2.48) unstable; urgency=low
+
+ * dh_fixperms.1: improved documentation. (#34968)
+
+ -- Joey Hess <joeyh@debian.org> Tue, 23 Mar 1999 19:11:01 -0800
+
+debhelper (1.2.47) unstable; urgency=low
+
+ * doc/README: updated the example of including debhelper shell script
+ fragments inside a perl program -- the old method didn't work with shell
+ variables properly (#34850).
+
+ -- Joey Hess <joeyh@debian.org> Sun, 21 Mar 1999 13:25:33 -0800
+
+debhelper (1.2.46) unstable; urgency=low
+
+ * doc/README: pointer to maint-guide.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 18 Mar 1999 21:04:57 -0800
+
+debhelper (1.2.45) unstable; urgency=low
+
+ * dh_installwm.1: fixed two errors (#34534, #34535)
+ * debhelper.1: list all other debhelper commands with synopses
+ (automatically generated by build process).
+
+ -- Joey Hess <joeyh@debian.org> Sun, 14 Mar 1999 11:33:39 -0800
+
+debhelper (1.2.44) unstable; urgency=medium
+
+ * dh_fixperms: has been mostly broken when used with -X, corrected this.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 13 Mar 1999 17:25:59 -0800
+
+debhelper (1.2.43) unstable; urgency=low
+
+ * dh_compress.1: man page fixes (Closes: #33858).
+ * dh_compress: now it can handle compressing arbitrary numbers of files,
+ spawning gzip multiple times like xargs does, if necessary.
+ (Closes: #33860)
+ * Dh_Lib.pm: added xargs() command.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 9 Mar 1999 14:57:09 -0800
+
+debhelper (1.2.42) unstable; urgency=low
+
+ * dh_m5sums: don't generate bogus md5sums file if the package contains no
+ files. Yes, someone found a legitimate reason to do that.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 25 Feb 1999 00:03:47 -0800
+
+debhelper (1.2.41) unstable; urgency=low
+
+ * README: minor typo fix.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 20 Feb 1999 23:30:00 -0800
+
+debhelper (1.2.40) unstable; urgency=low
+
+ * Let's just say 1.2.39 is not a good version of debhelper to use and
+ leave it at that. :-)
+
+ -- Joey Hess <joeyh@debian.org> Sat, 20 Feb 1999 22:55:27 -0800
+
+debhelper (1.2.39) unstable; urgency=low
+
+ * dh_installcron: install files in cron.d with correct perms.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 20 Feb 1999 22:28:38 -0800
+
+debhelper (1.2.38) unstable; urgency=low
+
+ * dh_clean: don't try to delete directories named "core".
+
+ -- Joey Hess <joeyh@debian.org> Sat, 20 Feb 1999 19:13:40 -0800
+
+debhelper (1.2.37) unstable; urgency=low
+
+ * dh_installdocs: Patch from Jim Pick <jim@jimpick.com>, fixes regexp error (Closes: #33431).
+ * dh_installxaw: new program by Daniel Martin
+ <Daniel.Martin@jhu.edu>, handles xaw-wrappers integration.
+ * dh_installxaw.1: wrote man page.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 18 Feb 1999 17:32:53 -0800
+
+debhelper (1.2.36) unstable; urgency=low
+
+ * dh_compress.1: Fixed typo in man page. (Closes: #33364)
+ * autoscripts/postinst-menu-method: fixed typo. (Closes: #33376)
+
+ -- Joey Hess <joeyh@debian.org> Sun, 14 Feb 1999 13:45:18 -0800
+
+debhelper (1.2.35) unstable; urgency=low
+
+ * Dh_Lib.pm filearray(): Deal with multiple spaces and spaces at the
+ beginning of lines in files. (closes: #33161)
+
+ -- Joey Hess <joeyh@debian.org> Tue, 9 Feb 1999 21:01:07 -0800
+
+debhelper (1.2.34) unstable; urgency=low
+
+ * dh_clean: added -d flag (also --dirs-only) that will make it clean only
+ tmp dirs. (closes: #30807)
+ * dh_installdocs: to support packages that need multiple doc-base files,
+ will now look for debian/<package>.doc-base.<doc-id>.
+ * dh_compress: removed warning message (harmless).
+
+ -- Joey Hess <joeyh@debian.org> Sat, 6 Feb 1999 17:48:33 -0800
+
+debhelper (1.2.33) unstable; urgency=low
+
+ * dh_compress: verbose_print() cd's.
+ * dh_compress: clear the hash of hard links when we loop - was making
+ dh_compress fail on multi-binary packages that had harlinks. Thanks to
+ Craig Small for spotting this.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 4 Feb 1999 20:19:37 -0800
+
+debhelper (1.2.32) unstable; urgency=low
+
+ * dh_suidmanager: if it cannot determine the user name or group name from
+ the uid or gid, it will pass the uid or gid to suidmanager. This should
+ probably never happen, but it's good to be safe.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 4 Feb 1999 16:00:35 -0800
+
+debhelper (1.2.31) unstable; urgency=low
+
+ * dh_installinit.1: minor typo fix (closes: #32753)
+
+ -- Joey Hess <joeyh@debian.org> Tue, 2 Feb 1999 14:32:46 -0800
+
+debhelper (1.2.30) unstable; urgency=low
+
+ * dh_fixperms: cut down the number of chmod commands that are executed
+ from 3 to 1, no change in functionality.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 1 Feb 1999 17:05:29 -0800
+
+debhelper (1.2.29) unstable; urgency=high
+
+ * Do not include bogus chsh, chfn, passwd links in debhelper binary!
+ These were acidentially left in after dh_link testing I did as I was
+ working on the last version of debhelper.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 25 Jan 1999 20:26:46 -0800
+
+debhelper (1.2.28) unstable; urgency=low
+
+ * dh_link: fixed bug that prevent multiple links to the same source from
+ being made. (#23255)
+
+ -- Joey Hess <joeyh@debian.org> Sun, 24 Jan 1999 19:46:33 -0800
+
+debhelper (1.2.27) unstable; urgency=low
+
+ * autoscripts/*menu*: "test", not "text"!
+
+ -- Joey Hess <joeyh@debian.org> Tue, 19 Jan 1999 15:18:52 -0800
+
+debhelper (1.2.26) unstable; urgency=low
+
+ * dh_installdocs: use prerm-doc-base script fragement. Was using
+ postrm-doc-base, for some weird reason.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 18 Jan 1999 13:36:40 -0800
+
+debhelper (1.2.25) unstable; urgency=low
+
+ * autoscripts/*menu*: It turns out that "command" is like test -w, it will
+ still return true if update-menus is not executable. This can
+ legitimatly happen if you are upgrading the menu package, and it makes
+ postinsts that use command fail. Reverted to using test -x. Packages
+ built with debhelper >= 1.2.21 that use menus should be rebuilt.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 16 Jan 1999 13:47:16 -0800
+
+debhelper (1.2.24) unstable; urgency=low
+
+ * dh_fixperms: linux 2.1.x and 2.2.x differ from earlier versions in that
+ they do not clear the suid bit on a file when the owner of that file
+ changes. It seems that fakeroot behaves the same as linux 2.1 here. I
+ was relying on the old behavior to get rid of suid and sgid bits on files.
+ Since this no longer happens implicitly, I've changed to clearing the
+ bits explicitly.
+ * There's also a small behavior change involved here. Before, dh_fixperms
+ did not clear suid permissions on files that were already owned by root.
+ Now it does.
+ * dh_fixperms.1: cleaned up the docs to mention that those bits are
+ cleared.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 15 Jan 1999 16:54:44 -0800
+
+debhelper (1.2.23) unstable; urgency=low
+
+ * autoscripts/postrm-wm: use "=", not "==" (#31727).
+
+ -- Joey Hess <joeyh@debian.org> Mon, 11 Jan 1999 13:35:00 -0800
+
+debhelper (1.2.22) unstable; urgency=low
+
+ * Reversed change in last version; don't clobber mode (#31628).
+
+ -- Joey Hess <joeyh@debian.org> Fri, 8 Jan 1999 15:01:25 -0800
+
+debhelper (1.2.21) unstable; urgency=low
+
+ * dh_installdocs: Added doc-base support, if debian/<package>.doc-base
+ exists, it will be installed as a doc-base control file. If you use this,
+ you probably want to add "dh_testversion 1.2.21" to the rules file to make
+ sure your package is built with a new enough debhelper.
+ * dh_installdocs: now supports -n to make it not modify postinst/prerm.
+ * dh_suidregister: turned off leading 0/1 in permissions settings, until
+ suidregister actually supports it.
+ * autoscripts/*: instead of "text -x", use "command -v" to see if various
+ binaries exist. This gets rid of lots of hard-coded paths.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 30 Dec 1998 22:50:04 -0500
+
+debhelper (1.2.20) unstable; urgency=low
+
+ * dh_compress: handle the hard link stuff properly, it was broken. Also
+ faster now.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 23 Dec 1998 19:53:03 -0500
+
+debhelper (1.2.19) unstable; urgency=low
+
+ * dh_listpackages: new command. Takes the standard options taken by other
+ debhelper commands, and just outputs a list of the binary packages a
+ debhelper command would act on. Added because of bug #30626, and because
+ of wn's truely ugly use of debhelper internals to get the same info (and
+ because it's just 4 lines of code ;-).
+ * dh_compress: is now smart about compressing files that are hardlinks.
+ When possible, will only compress one file, delete the hardlinks, and
+ re-make hardlinks to the compressed file, saving some disk space.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 18 Dec 1998 22:26:41 -0500
+
+debhelper (1.2.18) unstable; urgency=medium
+
+ * dh_fixperms: was not fixing permissions of files in usr/doc/ to 644,
+ this has been broken since version 1.2.3.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 6 Dec 1998 23:35:35 -0800
+
+debhelper (1.2.17) unstable; urgency=low
+
+ * dh_makeshlibs: relaxed regexp to find library name and number a little so
+ it will work on libraries with a major but no minor version in their
+ filename (examples of such: libtcl8.0.so.1, libBLT-unoff.so.1)
+ * dh_movefiles: added --sourcedir option to make it move files out of
+ some directory besides debian/tmp (#30221)
+
+ -- Joey Hess <joeyh@debian.org> Fri, 4 Dec 1998 13:56:57 -0800
+
+debhelper (1.2.16) unstable; urgency=low
+
+ * dh_installchangelogs: now detects html changelogs and installs them as
+ changelog.html.gz, to comply with latest policy (which I disagree with
+ BTW).
+ * manpages: updated policy version numbers.
+ * dh_installdocs: behavior change: all docs are now installed mode 644.
+ I have looked and it doesn't seem this will actually affect any packages
+ in debian. This is useful only if you want to use dh_installdocs and not
+ dh_fixperms, and that's the only time this behavior change will have any
+ effect, either. (#30118)
+
+ -- Joey Hess <joeyh@debian.org> Thu, 3 Dec 1998 23:31:56 -0800
+
+debhelper (1.2.15) unstable; urgency=low
+
+ * Just a re-upload, last upload failed for some obscure reason.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 29 Nov 1998 13:07:44 -0800
+
+debhelper (1.2.14) unstable; urgency=low
+
+ * Really fixed #29762 this time. This also fixes #30025, which asked that
+ dh_makeshlibs come before dh_shlibdeps, so the files it generates can
+ also be used as a shlibs.local file, which will be used by dh_shlibdeps.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 29 Oct 1998 04:00:14 -0800
+
+debhelper (1.2.13) unstable; urgency=low
+
+ * Spelling and typo fixes.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 25 Nov 1998 15:23:55 -0800
+
+debhelper (1.2.12) unstable; urgency=low
+
+ * examples/*: moved dh_makeshlibs call to before dh_installdeb call.
+ (#29762). This is just so if you replace dh_makeshlibs with something
+ that generates debian/shlibs, it still gets installed properly.
+ * dh_suidregister: use names instead of uid's and gid's, at request of
+ suidregister maintainer (#29802).
+
+ -- Joey Hess <joeyh@debian.org> Sat, 21 Nov 1998 13:13:10 -0800
+
+debhelper (1.2.11) unstable; urgency=low
+
+ * dh_movefiles: if given absolute filenames to move (note that that is
+ *wrong*), it will move relative files anyway. Related to bug #29761.
+ * dh_link: made relative links work right. (I hope!)
+
+ -- Joey Hess <joeyh@debian.org> Fri, 20 Nov 1998 20:21:51 -0800
+
+debhelper (1.2.10) unstable; urgency=low
+
+ * examples/*: added dh_link calls to example rules files.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 20 Nov 1998 15:43:07 -0800
+
+debhelper (1.2.9) unstable; urgency=low
+
+ * Added dh_link, which generates policy complient symlinks in binary
+ packages, painlessly.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 19 Nov 1998 18:43:36 -0800
+
+debhelper (1.2.8) unstable; urgency=low
+
+ * Suggest dh-make (#29376).
+
+ -- Joey Hess <joeyh@debian.org> Wed, 18 Nov 1998 02:29:47 -0800
+
+debhelper (1.2.7) unstable; urgency=low
+
+ * dh_movefiles: Fixed another bug.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 16 Nov 1998 12:53:05 -0800
+
+debhelper (1.2.6) unstable; urgency=low
+
+ * dh_movefiles: fixed non-integer comparison (#29476)
+
+ -- Joey Hess <joeyh@debian.org> Sun, 15 Nov 1998 13:03:09 -0800
+
+debhelper (1.2.5) unstable; urgency=low
+
+ * The perl conversion is complete.
+ .
+ * dh_compress: perlized (yay, perl has readlink, no more ls -l | awk
+ garbage!)
+ * dh_lib, dh_getopt.pl: deleted, nothing uses them anymore.
+ * debian/rules: don't install above 2 files.
+ * doc/PROGRAMMING: removed all documentation of the old shell library
+ interface.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 13 Nov 1998 15:36:57 -0800
+
+debhelper (1.2.4) unstable; urgency=low
+
+ * dh_debstd, dh_movefiles: perlized.
+ * dh_debstd: fixed -c option.
+ * dh_installinit: fixed minor perl -w warning.
+ * Only 1 shell script remains! (But it's a doozy..)
+
+ -- Joey Hess <joeyh@debian.org> Fri, 13 Nov 1998 13:29:39 -0800
+
+debhelper (1.2.3) unstable; urgency=low
+
+ * dh_fixperms, dh_installdebfiles, dh_installdeb: perlized
+ * dh_suidregister: perlized, with help from Che_Fox (and Tom Christianson,
+ indirectly..).
+ * dh_suidregister: include leading 0 (or 1 for sticky, etc) in file
+ permissions.
+ * Only 3 more to go and it'll be 100% perl.
+ * Made $dh{EXCLUDE_FIND} available to perl scripts.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 10 Nov 1998 15:47:43 -0800
+
+debhelper (1.2.2) unstable; urgency=low
+
+ * dh_du, dh_shlibdeps, dh_undocumented: rewrite in perl.
+ * dh_undocumented: shortened the symlink used for section 7 undocumented
+ man pages, since it can link to undocuemented.7.gz in the same directory.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 10 Nov 1998 13:40:22 -0800
+
+debhelper (1.2.1) unstable; urgency=low
+
+ * dh_strip, dh_installinit: rewrite in perl.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 9 Nov 1998 20:04:12 -0800
+
+debhelper (1.2.0) unstable; urgency=low
+
+ * A new unstable dist means I'm back to converting more of debhelper to
+ perl.. Since 1.1 has actually stabalized, I've upped this to 1.2.
+ * dh_md5sums: rewritten in perl, for large speed gain under some
+ circumstances (old version called perl sometimes, once per package.)
+ * dh_installmenu, dh_installemacsen, dh_installwm: perlized.
+ * Dh_Lib.pm: made autoscript() really work.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 9 Nov 1998 13:04:16 -0800
+
+debhelper (1.1.24) unstable; urgency=low
+
+ * dh_suidregister: remove suid/sgid bits from all files registered. The
+ reason is this: if you're using suidmanager, and you want a file that
+ ships suid to never be suid on your system, shipping it suid in the .deb
+ will create a window where it is suid before suidmanager fixes it's
+ permissions. This change should be transparent to users and developers.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 27 Oct 1998 18:19:48 -0800
+
+debhelper (1.1.23) unstable; urgency=low
+
+ * dh_clean: At the suggestion of James Troup <james@nocrew.org> now deletes
+ files named *.P in .deps/ subdirectories. They are generated by automake.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 24 Oct 1998 15:14:53 -0700
+
+debhelper (1.1.22) unstable; urgency=low
+
+ * dh_fixperms: quoting fix from Roderick Schertler <roderick@argon.org>
+ * Added support for register-window-manager command which will be in a new
+ (as yet unreleased) xbase. Now a new dh_installwm program handles
+ registration of a window manager and the necessary modifications to
+ postinst and postrm. It's safe to go ahead and start using this for your
+ window manager packages, just note that it won't do anything until the new
+ xbase is out, and that due to the design of register-window-manager, if
+ your wm is installed before a xbase that supports register-window-manager
+ is installed, the window manager will never be registered. (#20971)
+
+ -- Joey Hess <joeyh@debian.org> Wed, 14 Oct 1998 23:08:04 -0700
+
+debhelper (1.1.21) unstable; urgency=low
+
+ * Added install to .PHONY target of example rules files.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 11 Oct 1998 22:36:10 -0700
+
+debhelper (1.1.20) unstable; urgency=low
+
+ * Added a --same-arch flag, that is useful in the rare case when you have
+ a package that builds only for 1 architecture, as part of a multi-part,
+ multi-architecture source package. (Ie, netscape-dmotif).
+ * Modified dh_installinit -r so it does start the daemon on the initial
+ install (#26680).
+
+ -- Joey Hess <joeyh@debian.org> Fri, 2 Oct 1998 15:55:13 -0700
+
+debhelper (1.1.19) unstable; urgency=low
+
+ * dh_installmanpages: look at basename of man pacges specified on command
+ line to skip, for backwards compatibility.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 10 Sep 1998 11:31:42 -0700
+
+debhelper (1.1.18) unstable; urgency=low
+
+ * dh_installemacsen: substitute package name for #PACKAGE# when setting
+ up postinst and prerm (#26560).
+
+ -- Joey Hess <joeyh@debian.org> Tue, 8 Sep 1998 14:24:30 -0700
+
+debhelper (1.1.17) unstable; urgency=low
+
+ * dh_strip: on Richard Braakman's advice, strip the .comment and .note
+ sections of shared libraries.
+ * Added DH_OPTIONS environment variable - anything in it will be treated
+ as additional command line arguments by all debhelper commands. This in
+ useful in some situations, for example, if you need to pass -p to all
+ debhelper commands that will be run. If you use DH_OPTIONS, be sure to
+ use dh_testversion 1.1.17 - older debhelpers will ignore it and do
+ things you don't want them to.
+ * Made -N properly exclude packages when no -i, -a, or -p flags are
+ present. It didn't before, which was a bug.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 7 Sep 1998 17:33:19 -0700
+
+debhelper (1.1.16) unstable; urgency=low
+
+ * dh_fixperms: remove execute bits from static libraries as well as
+ shared libraries. (#26414)
+
+ -- Joey Hess <joeyh@debian.org> Fri, 4 Sep 1998 14:46:37 -0700
+
+debhelper (1.1.15) unstable; urgency=medium
+
+ * dh_installmanpages: the new perl version had a nasty habit of
+ installing .so.x library files as man pages. Fixed.
+ * dh_installmanpages: the code to exclude searching for man pages in
+ debian/tmp directories was broken. Fixed.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 31 Aug 1998 00:05:17 -0700
+
+debhelper (1.1.14) unstable; urgency=low
+
+ * Debhelper now has a web page at http://kitenet.net/programs/debhelper/
+
+ * Added code to debian/rules to update the web page when I release new
+ debhelpers.
+ * dh_compress: since version 0.88 or so, dh_compress has bombed out if
+ a debian/compress file returned an error code. This was actually
+ unintentional - in fact, the debian/compress example in the man page
+ will fail this way if usr/info or usr/X11R6 is not present. Corrected
+ the program to not fail. (#26214)
+
+ -- Joey Hess <joeyh@debian.org> Sun, 30 Aug 1998 22:15:44 -0700
+
+debhelper (1.1.13) unstable; urgency=low
+
+ * dh_installmanpages: rewritten in perl. Allows me to fix bug #26221 (long
+ symlink problem after .so conversion), and is about twice as fast.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 29 Aug 1998 22:06:06 -0700
+
+debhelper (1.1.12) unstable; urgency=low
+
+ * dh_installdocs: forgot to pass package name to isnative(). Any native
+ debian package that had a debian/TODO would have it installed with the
+ wrong name, and debhelper would warn of undefined values for some
+ packages. Fixed.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 27 Aug 1998 12:35:42 -0700
+
+debhelper (1.1.11) unstable; urgency=low
+
+ * dh_installchangelogs: added -k flag, that will make it install a symlink
+ to the original name of the upstream changelog.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 20 Aug 1998 15:40:40 -0700
+
+debhelper (1.1.10) unstable; urgency=low
+
+ * It's come to my attention that a few packages use filename globbing in
+ debian/{docs,examples,whatever} files and expect that to work. It used
+ to work before the perl conversion, but it was never _documented_, or
+ intented to work. If you use this in your packages, they are broken and
+ need fixing (and will refuse to build with current versions of debhelper).
+ I apologize for the inconvenience.
+
+ * dh_clean: fixed a bug, intorduced in version 1.1.8, where it didn't
+ remove debian/files properly.
+ * dh_shlibdeps, dh_testdir, dh_testroot, dh_testversion: converted to perl.
+ * Encode the version of debhelper in a sepererate file, so dh_testversion
+ doesn't have to be generated when a new version of debhelper is built.
+ * Removed bogus menu file.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 17 Aug 1998 14:15:17 -0700
+
+debhelper (1.1.9) unstable; urgency=low
+
+ * dh_fixperms: has been removing the +x bits of all doc/*/examples/* files
+ since version 0.97 or so. Fixed.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 16 Aug 1998 17:11:48 -0700
+
+debhelper (1.1.8) unstable; urgency=low
+
+ * Dh_Lib.pm: made U_PARAMS an array of parameters.
+ * Dh_Lib.pm: fixed bug in the escaping code, numbers don't need to be
+ escaped. Also, no longer escape "-".
+ * dh_clean, dh_gencontrol, dh_installcron: converted to perl.
+ * dh_gencontrol.1, dh_gencontrol: the man page had said that
+ --update-rcd-params was equivilant to -u for this program. You should
+ really use --dpkg-gencontrol-params.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 14 Aug 1998 14:07:35 -0700
+
+debhelper (1.1.7) unstable; urgency=low
+
+ * examples/rules.multi: moved dh_movefiles into the install section.
+ * doc/README: Added a note explaining why above change was necessary.
+ * Dh_Lib.pm: escape_shell(): now escapes the full range of special
+ characters recognized by bash (and ksh). Thanks to Branden Robinson
+ <branden@purdue.edu> for looking that up.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 11 Aug 1998 23:32:05 -0700
+
+debhelper (1.1.6) unstable; urgency=low
+
+ * dh_movefiles: don't die on symlinks (#25642). (Hope I got the fix right
+ this time..)
+
+ -- Joey Hess <joeyh@debian.org> Tue, 11 Aug 1998 20:11:13 -0700
+
+debhelper (1.1.5) unstable; urgency=low
+
+ * dh_builddeb, dh_installchangelogs: converted to perl.
+ * dh_installdirs: converted to perl, getting rid of nasty chdir en-route.
+ * dh_installdirs: now you can use absolute directory names too if you
+ prefer.
+ * doc/PROGRAMMING: updated to cover new perl modules.
+ * Dh_Lib.pm: doit(): when printing out commands that have run, escape
+ metacharacters in the output. I probably don't escape out all the
+ characters I should, but this is just a convenience to the user anyway.
+ * dh_installdebfiles: it's been broken forever, I fixed it. Obviously
+ nobody uses it anymore, which is good, since it's deprected :-)
+
+ -- Joey Hess <joeyh@debian.org> Tue, 11 Aug 1998 15:23:34 -0700
+
+debhelper (1.1.4) unstable; urgency=low
+
+ * dh_movefiles: fixed bug introduced in 1.1.1 where it would fail in some
+ cases if you tried to move a broken symlink.
+ * dh_installdocs: was only operating on the first package.
+ * dh_installexamples: rewritten in perl.
+ * Dh_Lib.pm: all multiple package operations were broken.
+ * Dh_Lib.pm: implemented complex_doit() and autoscript().
+ * Made all perl code work with use strict and -w (well, except
+ dh_getopt.pl, but that's a hack that'll go away one day).
+ * I didn't realize, but rewriting dh_installdocs in perl fixed bug #24686
+ (blank lines in debian/docs file problem), although this same problem
+ applies to other debhelper programs... like dh_installexamples, which had
+ the same bug fixed when I rewrote it in perl just now.
+ * Dh_Lib.pm: accidentially didn't check DH_VERBOSE if commands were not
+ passed any switches.
+ * Dh_Getopt.pm: --noscripts was broken.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 11 Aug 1998 12:44:04 -0700
+
+debhelper (1.1.3) unstable; urgency=low
+
+ * dh_md5sums: -x was broken since version 1.1.1 - fixed.
+ * dh_lib: removed get_arch_indep_packages() function that hasn't been used
+ at all for a long while.
+ * Added Dh_Lib.pm, a translation of dh_lib into perl.
+ * dh_getopt.pl: moved most of it into new Dh_Getopt.pm module, rewriting
+ large chunks in the process.
+ * dh_installdocs: completly rewritten in perl. Now it's faster and it can
+ install many oddly named files it died on before.
+ * dh_installdocs: fixed a bug that installed TODO files mode 655 in native
+ debian packages.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 10 Aug 1998 15:01:15 -0700
+
+debhelper (1.1.2) unstable; urgency=low
+
+ * dh_strip: added -X to specify files to not strip (#25590).
+ * Added dh_installemacsen, for automatic registration with emacsen-common
+ (#21401).
+ * Preliminary thoughts in TODO about converting entire debhelper programs
+ to perl programs.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 10 Aug 1998 13:35:17 -0700
+
+debhelper (1.1.1) unstable; urgency=low
+
+ * dh_movefiles: try to move all files specified, and only then bomb out if
+ some of the file could not be found. Makes it easier for some packages
+ that don't always have the same files in them.
+ * dh_compress: any parameters passed to it on the command line specify
+ additional files to be compressed in the first package acted on.
+ * dh_compress: recognize standard -A parameter.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 8 Aug 1998 22:48:01 -0700
+
+debhelper (1.1.0) unstable; urgency=low
+
+ * New unstable branch of debhelper.
+
+ * TODO: list all current bugs, in order I plan to tackle them.
+ * Added debhelper.1 man page, which groups all the debhelper options that
+ are common to all commands in once place so I can add new options w/o
+ updating 27 man pages.
+ * dh_*.1: updated all debheper man pages to refer to debhelper(1) where
+ appropriate. Also corrected a host of little errors.
+ * doc/README: moved a lot of this file into debhelper.1.
+ * dh_*: -N option now excludes a package from the list of packages the
+ programs act on. (#25247)
+
+ -- Joey Hess <joeyh@debian.org> Sat, 8 Aug 1998 17:49:56 -0700
+
+debhelper (1.0) stable unstable; urgency=low
+
+ * 1.0 at last!
+
+ * This relelase is not really intended for stable. I throw a copy into
+ stable-updates because I want it to be available as an upgrade for
+ people using debian 2.0 (the current version in debian 2.0 has no
+ critical bugs, but this version is of course a lot nicer), and I plan
+ to start work on a new branch of debhelper that will fix many wishlist
+ bug reports, and of course introduce many new bugs, and which will go
+ into unstable only.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 8 Aug 1998 17:33:20 -0700
+
+debhelper (0.99.4) unstable; urgency=low
+
+ * dh_debstd: only warn about scripts that actually lack #DEBHELPER#.
+ (#25514)
+
+ -- Joey Hess <joeyh@debian.org> Fri, 7 Aug 1998 12:06:28 -0700
+
+debhelper (0.99.3) unstable; urgency=low
+
+ * dh_movefiles: Fixed a over-eager sanity check introduced in the last
+ version.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 3 Aug 1998 18:31:45 -0700
+
+debhelper (0.99.2) unstable; urgency=low
+
+ * dh_movefiles: allow passing of files to move on the command line. Only
+ rarely does this make sense. (#25197)
+
+ -- Joey Hess <joeyh@debian.org> Thu, 30 Jul 1998 10:38:34 -0700
+
+debhelper (0.99.1) unstable; urgency=low
+
+ * dh_installcron: now supports /etc/cron.d (#25112).
+
+ -- Joey Hess <joeyh@debian.org> Mon, 27 Jul 1998 20:18:47 -0700
+
+debhelper (0.99) unstable; urgency=low
+
+ * !!!! WARNING: Debhelper (specifically dh_compress) is broken with
+ !!!! libtricks. Use fakeroot instead until this is fixed.
+ * dh_compress: applied patch from Herbert Xu <herbert@gondor.apana.org.au>
+ to make it not fail if there are no candidates for compression (#24654).
+ * Removed a whole debhelper-0.96 tree that had crept into the source
+ package by accident.
+ * Is version 1.0 next?
+
+ -- Joey Hess <joeyh@debian.org> Thu, 16 Jul 1998 10:03:21 -0700
+
+debhelper (0.98) unstable; urgency=low
+
+ * dh_lib: isnative: pass -l<changelog> to dpkg-parsechangelog, to support
+ odd packages with multiple different debian changelogs.
+ * doc/PROGRAMMING: cleaned up the docs on DH_EXCLUDE_FIND.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 6 Jul 1998 12:45:13 -0700
+
+debhelper (0.97) unstable; urgency=low
+
+ * doc/from-debstd: fixed a typo.
+ * examples/*: install-stamp no longer depends on phony build targey; now
+ install-stamp depends on build-stamp instead (#24234).
+ * dh_fixperms: applied patch from Herbert Xu <herbert@gondor.apana.org.au>
+ to fix bad uses of the find command, so it should now work on packages
+ with files with spaces in them (#22005). It's also much cleaner. Thanks,
+ Herbert!
+ * dh_getopt.pl, doc/PROGRAMMING: added DH_EXCLUDE_FIND, to make the above
+ fix work.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 5 Jul 1998 18:09:25 -0700
+
+debhelper (0.96) unstable; urgency=low
+
+ * dh_movefiles: fixed serious breakage introduced in the last version.
+ * dh_movefiles: really order all symlinks last.
+ * some minor reorganization of the source tree.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 28 Jun 1998 21:53:45 -0700
+
+debhelper (0.95) unstable; urgency=low
+
+ * dh_movefiles: move even very strangly named files. (#23775) Unfortunatly,
+ I had to use a temporary file. Oh well..
+
+ -- Joey Hess <joeyh@debian.org> Mon, 22 Jun 1998 17:16:17 -0700
+
+debhelper (0.94) unstable; urgency=low
+
+ * dh_md5sums: fixed so it handles spaces and other odd characters in
+ filenames correctly. (#23046, #23700, #22010)
+ * As a side effect, got rid of the nasty temporary file dh_md5sums used
+ before.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 22 Jun 1998 16:14:42 -0700
+
+debhelper (0.93) unstable; urgency=low
+
+ * Depend on file, since several dh_*'s use it.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 19 Jun 1998 21:43:51 -0700
+
+debhelper (0.92) unstable; urgency=low
+
+ * dh_gencontrol: pass -isp to dpkg-gencontrol to make it include section
+ and priority info in the .deb file. Back in Jan 1998, this came up, and
+ a consensus was reached on debian-devel that it was a good thing for
+ -isp to be used.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 19 Jun 1998 16:15:24 -0700
+
+debhelper (0.91) unstable; urgency=low
+
+ * dh_installdocs: support debian/<package>.{README.Debian,TODO}
+
+ -- Joey Hess <joeyh@debian.org> Wed, 17 Jun 1998 19:09:35 -0700
+
+debhelper (0.90) unstable; urgency=low
+
+ * I'd like to thank Len Pikulski and Igor Grobman at nothinbut.net for
+ providing me with free internet access on a moment's notice, so I could
+ get this package to you after hacking on it all over New England for the
+ past week. Thanks, guys!
+ .
+ * Added dh_debstd, which mimics the functionality of the debstd command.
+ It's not a complete nor an exact copy, and it's not so much intended to
+ be used in a debian/rules file, as it is to be run by hand when you are
+ converting a package from debstd to debhelper. "dh_debstd -v" will
+ output the sequence of debhelper commands that approximate what debstd
+ would do in the same situation.
+ * dh_debstd is completly untested, I don't have the source to any packages
+ that use debstd available. Once this is tested, I plan to release
+ debhelper 1.0!
+ * Added a from-debstd document that gives a recipe to convert from debstd
+ to debhelper.
+ * dh_fixperms: can now use -X to exclude files from having their
+ permissions changed.
+ * dh_testroot: test for uid == 0, instead of username == root, becuase
+ some people enjoy changing root's name.
+ * dh_installinit: handle debian/init.d as well as debian/init files,
+ for backwards compatibility with debstd. Unlike with debstd, the two
+ files are treated identically.
+ * dh_lib, PROGRAMMING: added "warning" function.
+ * Minor man page fixes.
+ * dh_compress: don't bomb out if usr/doc/<package> is empty. (#23054)
+ * dh_compress, dh_installdirs: always cd into $TMP and back out, even if
+ --no-act is on. (#23054)
+
+ -- Joey Hess <joeyh@debian.org> Mon, 1 Jun 1998 21:57:45 -0400
+
+debhelper (0.88) unstable; urgency=low
+
+ * I had many hours on a train to hack on debhelper... enjoy!
+ * dh_compress: always pass -f to gzip, to force compression.
+ * dh_compress: added -X switch, to make it easy to specify files to
+ exclude, without all the bother of a debian/compress script. You can
+ use -X multiple times, too.
+ * PROGRAMMING, dh_getopt.pl: DH_EXCLUDE is now a variable set by the
+ --exclude (-X) switch. -x now sets DH_INCLUDE_CONFFILES.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 17 May 1998 11:26:09 -0700
+
+debhelper (0.87) unstable; urgency=low
+
+ * dh_strip: strip .comment and .note, not comment and note, when stripping
+ elf binaries. This makes for smaller output files. This has always been
+ broken in debhelper before! (#22395)
+
+ -- Joey Hess <joeyh@debian.org> Wed, 13 May 1998 11:54:29 -0700
+
+debhelper (0.86) unstable; urgency=low
+
+ * dh_compress: don't try to re-compress *.gz files. Eliminates warning
+ messages in some cases, shouldn't actually change the result at all.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 27 Apr 1998 15:21:33 -0700
+
+debhelper (0.85) unstable; urgency=low
+
+ * Moved a few things around that were broken by Che's patch:
+ - dh_installdirs should go in install target.
+ - dh_clean should not run in binary targets.
+ * This is just a quick fix to make it work, I'm not happy with it. I'm
+ going to discuss my problems with it with Che, and either make a new
+ version fixing them, or revert to 0.83.
+ * So be warned that the example rules files are not currently in good
+ shape if you're starting a new package.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 18 Apr 1998 23:30:38 -0700
+
+debhelper (0.84) unstable; urgency=low
+
+ * Applied Che_Fox'x patches to example rules files, which makes them use
+ an install target internally to move things into place in debian/tmp.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 9 Apr 1998 12:08:45 -0700
+
+debhelper (0.83) unstable; urgency=low
+
+ * Generate symlinks in build stage of debian/rules. cvs cannot create them
+ properly. Note that version 0.80 and 0.81 could not build some packages
+ because of missing symlinks.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 31 Mar 1998 19:27:29 -0800
+
+debhelper (0.81) unstable; urgency=low
+
+ * dh_movefiles: empty $tomove (#20495).
+
+ -- Joey Hess <joeyh@debian.org> Tue, 31 Mar 1998 15:36:32 -0800
+
+debhelper (0.80) unstable; urgency=low
+
+ * Moved under cvs (so I can fork a stable and an unstable version).
+ * dh_movefiles: first move real files, then move symlinks. (#18220)
+ Thanks to Bdale Garbee <bdale@gag.com> and Adam Heath
+ <adam.heath@usa.net> for help on the implementation.
+ * dh_installchangelogs: use debian/package.changelog files if they exist
+ rather than debian/changelog. It appears some people do need per-package
+ changelogs.
+ * dh_gencontrol: if debian/package.changelogs files exist, use them.
+ * Above 2 changes close #20442.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 30 Mar 1998 20:54:26 -0800
+
+debhelper (0.78) frozen unstable; urgency=low
+
+ * More spelling fixes from Christian T. Steigies. (I ignored the spelling
+ fixes to the changelog, though - too many, and a changelog isn't meant
+ to be changed after the fact :-)
+ * dh_fixperms: remove execute bits from .la files genrated by libtool.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 30 Mar 1998 12:44:42 -0800
+
+debhelper (0.77) frozen unstable; urgency=low
+
+ * Fixed a nasty bug in dh_makeshlibs when it was called with -V, but with
+ no version string after the -V.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 29 Mar 1998 16:08:27 -0800
+
+debhelper (0.76) frozen unstable; urgency=low
+
+ * I intended version 0.75 to make it in before the freeze, and it did not.
+ This is just to get it into frozen. There are no changes except bug
+ fixes.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 26 Mar 1998 12:25:47 -0800
+
+debhelper (0.75) unstable; urgency=low
+
+ * Actually exit if there is an unknown option on the command line (oooops!)
+ * Fix .so file conversion to actually work (#19933).
+
+ -- Joey Hess <joeyh@debian.org> Thu, 19 Mar 1998 11:54:58 -0800
+
+debhelper (0.74) unstable; urgency=low
+
+ * dh_installmanpages: convert .so links to symlinks at last (#19829).
+ * dh_installmanpages.1: documented that no, dh_installmanpages never
+ installs symlink man pages from the source package (#19831).
+ * dh_installmanpages: minor speedups
+ * PROGRAMMING: numerous spelling fixes, thanks to Christian T. Steigies.
+ Life is too short for me to spell check my technical documentation, but
+ I always welcome corrections!
+
+ -- Joey Hess <joeyh@debian.org> Tue, 17 Mar 1998 22:09:07 -0800
+
+debhelper (0.73) unstable; urgency=low
+
+ * Fixed typo in dh_suidregister.1
+
+ -- Joey Hess <joeyh@debian.org> Thu, 12 Mar 1998 16:30:27 -0800
+
+debhelper (0.72) unstable; urgency=low
+
+ * Applied patch from Yann Dirson <ydirson@a2points.com> to add a
+ --init-script parameter to dh_installinit. (#19227)
+ * Documented this new switch.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 9 Mar 1998 17:12:04 -0800
+
+debhelper (0.71) unstable; urgency=low
+
+ * dh_makeshlibs: -V flag was broken: if just -V was specified,
+ dh_makeshlibs would die. Corrected this.
+ * dh_lib: removed warning if the arguments passed to a debhelper command
+ do not apply to the main package. It's been long enough so I'm 100% sure
+ no packages use the old behavior.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 9 Mar 1998 11:46:59 -0800
+
+debhelper (0.70) unstable; urgency=low
+
+ * dh_lib: autoscript(): no longer add the modification date to the
+ comments aurrounding debhelper-added code. I don't think this date was
+ gaining us anything, so let's remove it and save some disk space.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 8 Mar 1998 21:15:13 -0800
+
+debhelper (0.69) unstable; urgency=low
+
+ * Refer to suidregister (8), not (1). Bug #19149.
+ * Removed junk file from debian/ dir.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 8 Mar 1998 13:04:36 -0800
+
+debhelper (0.68) unstable; urgency=low
+
+ * Document that README.debian files are installed as README.Debian (#19089).
+
+ -- Joey Hess <joeyh@debian.org> Fri, 6 Mar 1998 17:48:32 -0800
+
+debhelper (0.67) unstable; urgency=low
+
+ * Added PROGRAMMING document that describes the interface of dh_lib, to
+ aid others in writing and understanding debhelper programs.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 6 Mar 1998 12:45:08 -0800
+
+debhelper (0.66) unstable; urgency=low
+
+ * README, dh_testversion.1, dh_movefiles.1: more doc fixes.
+ * dh_movefiles: don't check for package names to see if files are being
+ moved from one package back into itself, instead, check tmp dir names.
+ If you use this behavior, you should use "dh_testversion 0.66".
+
+ -- Joey Hess <joeyh@debian.org> Mon, 2 Mar 1998 17:50:29 -0800
+
+debhelper (0.65) unstable; urgency=low
+
+ * dh_installdocs.1, dh_movefiles.1: clarified documentation for Che.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 2 Mar 1998 17:20:39 -0800
+
+debhelper (0.64) unstable; urgency=low
+
+ * Removed some junk (a whole old debhelper source tree!) that had gotten
+ into the source package by accident.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 23 Feb 1998 20:23:34 -0800
+
+debhelper (0.63) unstable; urgency=low
+
+ * Removed some debugging output from dh_installmanpages.
+ * du_du: no longer does anything, becuase it has been decided on
+ debian-policy that du control files are bad.
+ * examples/*: removed dh_du calls.
+ * debian/rules: removed dh_du call.
+ * Modified dh_gencontrol, dh_makeshlibs, and dh_md5sums to generate files
+ with the correct permissions even if the umask is set to unusual
+ values. (#18283)
+
+ -- Joey Hess <joeyh@debian.org> Mon, 16 Feb 1998 23:34:36 -0800
+
+debhelper (0.62) unstable; urgency=low
+
+ * dh_installmanpages: if the man page filename ends in 'x', install it in
+ /usr/X11R6/man/.
+ * TODO: expanded descriptions of stuff, in the hope someone else will get
+ inspired to implement some of it.
+ * Also added all wishlist bugs to the TODO.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 12 Feb 1998 22:38:53 -0800
+
+debhelper (0.61) unstable; urgency=low
+
+ * dh_installmanpages: Add / to end of egrep -v regexp, fixes it so
+ debian/icewm.1 can be found.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 11 Feb 1998 09:09:28 -0800
+
+debhelper (0.60) unstable; urgency=low
+
+ * dh_fixperms: make all files readable and writable by owner
+ (policy 3.3.8 paragraph 2).
+ Lintian found lots of bugs that will be fixed by this change.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 9 Feb 1998 12:26:13 -0800
+
+debhelper (0.59) unstable; urgency=low
+
+ * Added DH_NO_ACT and --no-act, which make debhelper commands run without
+ actually doing anything. (Combine with -v to see what the command would
+ have done.) (#17598)
+
+ -- Joey Hess <joeyh@debian.org> Sun, 1 Feb 1998 14:51:08 -0800
+
+debhelper (0.58) unstable; urgency=low
+
+ * Fixed bug #17597 - DH_VERBOSE wasn'talways taking effect.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 28 Jan 1998 17:18:17 -0500
+
+debhelper (0.57) unstable; urgency=low
+
+ * Depend on perl 5.004 or greater (for Getopt::Long).
+
+ -- Joey Hess <joeyh@debian.org> Sat, 17 Jan 1998 02:12:06 -0500
+
+debhelper (0.56) unstable; urgency=low
+
+ * dh_compress: Applied patch from Yann Dirson <ydirson@a2points.com>,
+ to make it not abort of one of the find's fails.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 15 Jan 1998 19:16:48 -0500
+
+debhelper (0.55) unstable; urgency=low
+
+ * dh_clean: delete substvarsfiles probperly again (broken in 0.53). #17077
+ * Added call to dh_movefiles, and a commented out call to dh_testversion,
+ to some of the sample rules files. #17076
+
+ -- Joey Hess <joeyh@debian.org> Wed, 14 Jan 1998 12:48:43 -0500
+
+debhelper (0.54) unstable; urgency=low
+
+ * dh_lib: no longer call getopt(1) to parse options. I wrote my own
+ argument processor in perl.
+ * Added long versions of all arguments. TODO: document them.
+ * All parameters may now be passed values that include whitespace (ie,
+ dh_installinit -u"defaults 10")
+ * Now depends on perl (needs Getopt::Long).
+
+ -- Joey Hess <joeyh@debian.org> Sat, 10 Jan 1998 15:44:09 -0500
+
+debhelper (0.53) unstable; urgency=low
+
+ * dh_installmanpages: ignore all man pages installed into debian/tmp
+ type directories. (#16933)
+ * dh_*: set up alternative name for files like debian/dirs; you may now
+ use debian/<mainpackage>.dirs too, for consistency. (#16934)
+ * dh_installdocs: if a debian/package.copyright file exists, use it in
+ preference to debian/copyright, so subpackages with varying copyrights
+ are supported. (#16935)
+ * Added dh_movefiles, which moves files out of debian/tmp into subpackages.
+ (#16932)
+
+ -- Joey Hess <joeyh@debian.org> Sat, 10 Jan 1998 11:30:12 -0500
+
+debhelper (0.52) unstable; urgency=low
+
+ * dh_compress: compress file belongs in debian/. It was looking in ./
+ This has been broken since version 0.30.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 6 Jan 1998 14:08:31 -0500
+
+debhelper (0.51) unstable; urgency=low
+
+ * dh_fixperms: make shared libraries non-executable, in accordance with
+ policy. (#16644)
+ * dh_makeshlibs: introduced a -V flag, which allows you to specify explicit
+ version requirements in the shlibs file.
+ * dh_{installdirs,installdocs,installexamples,suidregister,undocumented}:
+ Added a -A flag, which makes any files/directories specified on the
+ command line apply to ALL packages acted on.
+ * Updated Standards-Version to latest.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 5 Jan 1998 16:15:01 -0500
+
+debhelper (0.50) unstable; urgency=low
+
+ * dh_makeshlibs: added -m parameter, which can force the major number
+ of the shared library if it is guessed incorrectly.
+ * Added dh_testversion to let your package depend on a certian version of
+ debhelper to build.
+ * dh_{installdirs,installdocs,installexamples,suidregieter,undocumented}:
+ behavior modification - any files/directories specified on the command
+ line now apply to the first package acted on. This may not be the
+ first package listed in debian/control, if you use -p to make it act on
+ a given package, or -i or -a.
+ * If you take advantage of the above new behavior, I suggest you add
+ "dh_testversion 0.50" to your debian/rules.
+ * Display a warning message in cases where the above behavior is triggered,
+ and debhelper's behavior has altered.
+ * I have grepped debian's source packages, and I'm quite sure this
+ is not going to affect any packages currently in debian.
+ * dh_lib: isnative() now caches its return value, which should optimize
+ away several more calls to dpkg-parsechangelog.
+ * README: explain a way to embed debhelper generated shell script into a
+ perl script.
+ * dh_installinit: A hack to work around the problem in getopt(1) that
+ led to bug report #16229: Any text specified on the command line that is
+ not a flag will be presumed to be part of the -u flag. Yuck.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 3 Jan 1998 14:36:15 -0500
+
+debhelper (0.37) unstable; urgency=low
+
+ * dh_du: Fixed hardcoded debian/tmp.
+ * This change got lost by accident, redid it: Optimized out most of the
+ slowdown caused by using dpkg-parsechangelog - now it's only called by
+ 2 dh_* programs.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 28 Dec 1997 20:45:22 -0500
+
+debhelper (0.36) unstable; urgency=low
+
+ * dh_undocumented: exit with an error message if the man page specified
+ does not have a section.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 27 Dec 1997 14:14:04 -0500
+
+debhelper (0.35) unstable; urgency=low
+
+ * dh_lib: use dpkg-parsechangelog instead of parsing it by hand. This
+ makes a package build slower (by about 30 seconds, on average), so
+ I might remove it or optimize it if too many people yell at me. :-)
+ * dh_undocumented.1: note that it really links to undocumented.7.gz.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 22 Dec 1997 22:19:39 -0500
+
+debhelper (0.34) unstable; urgency=low
+
+ * Fixed typo #16215.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 22 Dec 1997 14:41:46 -0500
+
+debhelper (0.33) unstable; urgency=low
+
+ * examples/*: use prefix, instead of PREFIX, becuase autoconf uses that.
+ Also, use `pwd`/debian/tmp, instead of debian/tmp.
+ * Always substitute #DEBHELPER# in maintainer scripts, even if it expands
+ to nothing, for neatness and to save a few bytes. #15863
+ * dh_clean: added -k parameter to not delete debian/files. #15789
+ * examples/*: use dh_clean -k in the binary targets of all rules files,
+ for safety.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 11 Dec 1997 19:05:41 -0500
+
+debhelper (0.32) unstable; urgency=low
+
+ * Split dh_installdebfiles into 3 programs (dh_installdeb, dh_shlibdeps,
+ and dh_gencontrol). dh_installdebfiles still works, but is depricated.
+ * Added an examples/rules.indep file.
+ * examples/rules.multi: changed dh_du -a to dh_du -i in binary-indep
+ section.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 10 Dec 1997 19:53:13 -0500
+
+debhelper (0.31) unstable; urgency=low
+
+ * Fixed man page typos #15685.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 6 Dec 1997 21:44:58 -0500
+
+debhelper (0.30) unstable; urgency=low
+
+ * dh_md5sumes, dh_installdirs, dh_compress: fixed assorted cd bugs.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 5 Dec 1997 15:08:36 -0500
+
+debhelper (0.29) unstable; urgency=low
+
+ * dh_lib: don't expand text passed to doit() a second time. This fixes
+ #15624, and hopefully doesn't break anything else.
+ * A side effect of this (of interest only to the debhelper programmer) is
+ that doit() can no longer handle complex commands now. (ie, pipes, `;',
+ `&', etc separating multiple commands, or redirection)
+ * dh_makeshlibs, dh_md5sums, dh_installdebfiles, dh_du, dh_clean,
+ dh_installdirs: don't pass complex commands to doit().
+
+ -- Joey Hess <joeyh@debian.org> Thu, 4 Dec 1997 13:56:14 -0500
+
+debhelper (0.28) unstable; urgency=low
+
+ * dh_makeshlibs: fixes type that caused the program to crash (#15536).
+
+ -- Joey Hess <joeyh@debian.org> Wed, 3 Dec 1997 13:22:48 -0500
+
+debhelper (0.27) unstable; urgency=low
+
+ * README: fixed typoes (one serious).
+ * Ran ispell on all the documentation.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 30 Nov 1997 18:48:20 -0500
+
+debhelper (0.26) unstable; urgency=low
+
+ * dh_installdirs: Do not create usr/doc/$PACKAGE directory. Bug #15498
+ * README: documented that $PACKAGE can be used in the arguments to some of
+ the dh_* programs (#15497).
+ * dh_du.1: no, this is not really the dh_md5sums man page (#15499).
+
+ -- Joey Hess <joeyh@debian.org> Sun, 30 Nov 1997 13:01:40 -0500
+
+debhelper (0.25) unstable; urgency=low
+
+ * dh_compress: was not reading debian/compress file - fixed.
+ * examples/*: moved dh_clean call to after make clean is run.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 25 Nov 1997 15:43:58 -0500
+
+debhelper (0.24) unstable; urgency=low
+
+ * dh_clean: no longer clean up empty (0 byte) files (#15240).
+
+ -- Joey Hess <joeyh@debian.org> Tue, 25 Nov 1997 14:29:37 -0500
+
+debhelper (0.23) unstable; urgency=low
+
+ * Now depends on fileutils (>= 3.16-4), becuase with any earlier version
+ of fileutils, install -p will not work (#14680)
+
+ -- Joey Hess <joeyh@debian.org> Wed, 19 Nov 1997 23:59:43 -0500
+
+debhelper (0.22) unstable; urgency=low
+
+ * dh_installdocs: Install README.debian as README.Debian (of course,
+ README.Debian is installed with the same name..)
+
+ -- Joey Hess <joeyh@debian.org> Tue, 18 Nov 1997 01:23:53 -0500
+
+debhelper (0.21) unstable; urgency=low
+
+ * dh_installinit: on removal, fixed how update-rc.d is called.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 15 Nov 1997 20:43:14 -0500
+
+debhelper (0.20) unstable; urgency=low
+
+ * Added dh_installinit, which installs an init.d script, and edits the
+ postinst, postrm, etc.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 14 Nov 1997 00:45:53 -0500
+
+debhelper (0.19) unstable; urgency=low
+
+ * dh_installmenu.1: menufile is in section 5, not 1.
+
+ -- Joey Hess <joeyh@debian.org> Wed, 12 Nov 1997 19:54:48 -0500
+
+debhelper (0.18) unstable; urgency=low
+
+ * examples/*: added source, diff targets that just print an error.
+ * dh_clean: clean up more files - *.orig, *.rej, *.bak, .*.orig, .*.rej,
+ .SUMS, TAGS, and empty files.
+ * dh_lib: doit(): use eval on parameters, instead of directly running
+ them. This lets me clean up several nasty areas where I had to echo the
+ commands once, and then run them seperatly.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 10 Nov 1997 19:48:36 -0500
+
+debhelper (0.17) unstable; urgency=low
+
+ * Added dh_installdirs, automatically creates subdirectories (for
+ compatibility with debstd's debian/dirs file.
+ * dh_lib: fixed problem with -P flag.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 7 Nov 1997 16:07:11 -0500
+
+debhelper (0.16) unstable; urgency=low
+
+ * dh_compress: always compress changelog and upstream changelog, no
+ matter what their size (#14604) (policy 5.8)
+
+ -- Joey Hess <joeyh@debian.org> Thu, 6 Nov 1997 19:50:36 -0500
+
+debhelper (0.15) unstable; urgency=low
+
+ * README: documented what temporary directories are used by default for
+ installing package files into.
+ * dh_*: added -P flag, to let a different package build directory be
+ specified.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 6 Nov 1997 15:51:22 -0500
+
+debhelper (0.14) unstable; urgency=low
+
+ * dh_fixperms: leave permissions on files in /usr/doc/packages/examples
+ unchanged.
+ * Install examples/rules* executable.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 27 Oct 1997 12:42:33 -0500
+
+debhelper (0.13) unstable; urgency=low
+
+ * Added dh_makeshlibs, automatically generates a shlibs file.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 24 Oct 1997 20:33:14 -0400
+
+debhelper (0.12) unstable; urgency=low
+
+ * Fixed mispelling of dh_md5sums in examples rules files and README.
+ (#13990) Thanks, Adrian.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 24 Oct 1997 14:35:30 -0400
+
+debhelper (0.11) unstable; urgency=low
+
+ * dh_md5sums: behavior modification: do not generate md5sums for conffiles.
+ (Thanks to Charles Briscoe-Smith <cpb4@ukc.ac.uk>) #14048.
+ * dh_md5sums: can generate conffile md5sums with -x parameter.
+ * Added a "converting from debstd" section to the README.
+ * Added dh_du, generates a DEBIAN/du file with disk usage stats (#14048).
+
+ -- Joey Hess <joeyh@debian.org> Tue, 21 Oct 1997 13:17:28 -0400
+
+debhelper (0.10) unstable; urgency=medium
+
+ * dh_installdebfiles: fixed *bad* bug that messed up the names of all
+ files installed into DEBIAN/ for multiple binary packages.
+ * dh_md5sums: fixed another serious bug if dh_md5sums was used for
+ multiple binary packages.
+ * If you have made any multiple binary packages using debhelper, you
+ should rebuild them with this version.
+ * dh_md5sums: show cd commands in verbose mode.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 20 Oct 1997 14:44:30 -0400
+
+debhelper (0.9) unstable; urgency=low
+
+ * Added dh_suidregister, interfaces to to the suidmanager package.
+ * dh_installdebfiles: fixed typo on man page.
+
+ -- Joey Hess <joeyh@debian.org> Sat, 18 Oct 1997 20:55:39 -0400
+
+debhelper (0.8) unstable; urgency=low
+
+ * Added dh_md5sum, generates a md5sums file.
+ * dh_clean: fixed to echo all commands when verbose mode is on.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 17 Oct 1997 14:18:26 -0400
+
+debhelper (0.7) unstable; urgency=low
+
+ * Sped up some things by removing unnecesary for loops.
+ * dh_installdocs: behavior modifcation: if there is a debian/TODO, it is
+ named like a debian/changelog file: if the package is a debian native
+ package, it is installed as TODO. If the package is not a native package,
+ it is installed as TODO.Debian.
+ * dh_installdocs: handle debian/README.Debian as well as
+ debian/README.debian.
+ * Added dh_undocumented program, which can set up undocumented.7 symlinks.
+ * Moved dh_installdebfiles to come after dh_fixperms in the example rules
+ files. (dh_installdebfiles makes sure it installs things with the proper
+ permissions, and this reorganization makes the file a bit more flexable
+ in a few situations.)
+
+ -- Joey Hess <joeyh@debian.org> Mon, 13 Oct 1997 20:08:05 -0400
+
+debhelper (0.6) unstable; urgency=low
+
+ * Got rid of bashisms - this package should work now if /bin/sh is ash.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 10 Oct 1997 15:24:40 -0400
+
+debhelper (0.5) unstable; urgency=low
+
+ * Added dh_installcron to install cron jobs.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 30 Sep 1997 19:37:41 -0400
+
+debhelper (0.4) unstable; urgency=low
+
+ * Added dh_strip to strip binaries and libraries.
+ * Fixed several man pages.
+
+ -- Joey Hess <joeyh@debian.org> Sun, 28 Sep 1997 20:46:32 -0400
+
+debhelper (0.3) unstable; urgency=low
+
+ * Added support for automatic generation of debian install scripts to
+ dh_installmenu and dh_installdebfiles and dh_clean.
+ * Removed some pointless uses of cat.
+
+ -- Joey Hess <joeyh@debian.org> Fri, 26 Sep 1997 21:52:53 -0400
+
+debhelper (0.2) unstable; urgency=low
+
+ * Moved out of unstable, it still has rough edges and incomplete bits, but
+ is ready for general use.
+ * Added man pages for all commands.
+ * Multiple binary package support.
+ * Support for specifying exactly what set of binary packages to act on,
+ by group (arch or noarch), and by package name.
+ * dh_clean: allow specification of additional files to remove as
+ parameters.
+ * dh_compress: fixed it to not compress doc/package/copyright
+ * dh_installmanpage: allow listing of man pages that should not be
+ auto-installed as parameters.
+ * dh_installdebfiles: make sure all installed files have proper ownerships
+ and permissions.
+ * dh_installdebfiles: only pass ELF files to dpkg-shlibdeps, and pass .so
+ files.
+ * Added a README.
+ * dh_compress: changed behavior - debian/compress script is now run inside
+ the package build directory it is to act on.
+ * Added dh_lib symlink in debian/ so the debhelper apps used in this
+ package's debian/rules always use the most up-to-date db_lib.
+ * Changed dh_cleantmp commands in the examples rules files to dh_clean.
+
+ -- Joey Hess <joeyh@debian.org> Tue, 23 Sep 1997 12:26:12 -0400
+
+debhelper (0.1) experimental; urgency=low
+
+ * First release. This is a snapshot of my work so far, and it not yet
+ ready to replace debstd.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 22 Sep 1997 15:01:25 -0400
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..f599e28
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+10
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..641e5ac
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,23 @@
+Source: debhelper
+Section: devel
+Priority: optional
+Maintainer: Joey Hess <joeyh@debian.org>
+Build-Depends: po4a (>= 0.24)
+Standards-Version: 3.9.4
+Vcs-Git: git://git.debian.org/git/debhelper/debhelper.git
+Vcs-Browser: http://git.debian.org/?p=debhelper/debhelper.git;a=summary
+Homepage: http://kitenet.net/~joey/code/debhelper/
+
+Package: debhelper
+Architecture: all
+Depends: ${perl:Depends}, ${misc:Depends}, file (>= 3.23), dpkg (>= 1.16.2), dpkg-dev (>= 1.16.2), binutils, po-debconf, man-db (>= 2.5.1-1)
+Suggests: dh-make
+Conflicts: dpkg-cross (<< 1.18), python-support (<< 0.5.3), python-central (<< 0.5.6), automake (<< 1.11.2)
+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
+ as part of their build process.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..0e79f07
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,95 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+
+Files: *
+Copyright: 1997-2011 Joey Hess <joeyh@debian.org>
+License: GPL-2+
+
+Files: examples/* autoscripts/*
+Copyright: 1997-2011 Joey Hess <joeyh@debian.org>
+License: public-domain
+ These files are in the public domain.
+ .
+ Pedants who belive I cannot legally say that code I have written is in
+ the public domain may consider them instead to be licensed as follows:
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted under any circumstances. No warranty.
+
+Files: dh_perl
+Copyright: Brendan O'Dea <bod@debian.org>
+License: GPL-2+
+
+Files: dh_installcatalogs
+Copyright: Adam Di Carlo <aph@debian.org>
+License: GPL-2+
+
+Files: dh_scrollkeeper
+Copyright: Ross Burton <ross@burtonini.com>
+License: GPL-2+
+
+Files: dh_usrlocal
+Copyright: Andrew Stribblehill <ads@debian.org>
+License: GPL-2+
+
+Files: dh_installlogcheck
+Copyright: Jon Middleton <jjm@debian.org>
+License: GPL-2+
+
+Files: dh_installudev
+Copyright: Marco d'Itri <md@Linux.IT>
+License: GPL-2+
+
+Files: dh_lintian
+Copyright: Steve Robbins <smr@debian.org>
+License: GPL-2+
+
+Files: dh_md5sums
+Copyright: Charles Briscoe-Smith <cpb4@ukc.ac.uk>
+License: GPL-2+
+
+Files: dh_bugfiles
+Copyright: Modestas Vainius <modestas@vainius.eu>
+License: GPL-2+
+
+Files: dh_installinit
+Copyright: 1997-2008 Joey Hess <joeyh@debian.org>
+ 2009,2011 Canonical Ltd.
+License: GPL-3+
+
+Files: dh_installgsettings
+Copyright: 2010 Laurent Bigonville <bigon@debian.org>
+ 2011 Josselin Mouette <joss@debian.org>
+License: GPL-2+
+
+Files: dh_ucf
+Copyright: 2011 Jeroen Schot <schot@A-Eskwadraat.nl>
+License: GPL-2+
+
+Files: Debian/Debhelper/Buildsystem/qmake.pm
+Copyright: 2010 Kel Modderman
+License: GPL-2+
+
+Files: Debian/Debhelper/Buildsystem* Debian/Debhelper/Dh_Buildsystems.pm
+Copyright: 2008-2009 Modestas Vainius
+License: GPL-2+
+
+Files: man/po4a/po/fr.po
+Copyright: 2005-2011 Valery Perrin <valery.perrin.debian@free.fr>
+License: GPL-2+
+
+Files: man/po4a/po/es.po
+Copyright: 2005-2010 Software in the Public Interest
+License: GPL-2+
+
+Files: man/po4a/po/de.po
+Copyright: 2011 Chris Leick
+License: GPL-2+
+
+License: GPL-2+
+ The full text of the GPL version 2 is distributed in
+ /usr/share/common-licenses/GPL-2 on Debian systems.
+
+License: GPL-3+
+ The full text of the GPL version 3 is distributed in
+ /usr/share/common-licenses/GPL-3 on Debian systems.
+
diff --git a/debian/docs b/debian/docs
new file mode 100644
index 0000000..30d29de
--- /dev/null
+++ b/debian/docs
@@ -0,0 +1 @@
+doc/*
diff --git a/debian/examples b/debian/examples
new file mode 100644
index 0000000..e39721e
--- /dev/null
+++ b/debian/examples
@@ -0,0 +1 @@
+examples/*
diff --git a/debian/manpages b/debian/manpages
new file mode 100644
index 0000000..5a7b08e
--- /dev/null
+++ b/debian/manpages
@@ -0,0 +1,2 @@
+*.1
+*.7
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..faeac03
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,14 @@
+#!/usr/bin/make -f
+# If you're looking for an example debian/rules that uses debhelper, see
+# the examples directory.
+#
+# Each debhelper command in this rules file has to be run using ./run,
+# to ensure that the commands and libraries in the source tree are used,
+# rather than the installed ones.
+
+%:
+ ./run dh $@
+
+# Not intended for use by anyone except the author.
+announcedir:
+ @echo ${HOME}/src/joeywiki/code/debhelper/news
diff --git a/dh b/dh
new file mode 100755
index 0000000..faa82b9
--- /dev/null
+++ b/dh
@@ -0,0 +1,979 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh - debhelper command sequencer
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh> I<sequence> [B<--with> I<addon>[B<,>I<addon> ...]] [B<--list>] [S<I<debhelper options>>]
+
+=head1 DESCRIPTION
+
+B<dh> runs a sequence of debhelper commands. The supported I<sequence>s
+correspond to the targets of a F<debian/rules> file: B<build-arch>,
+B<build-indep>, B<build>, B<clean>, B<install-indep>, B<install-arch>,
+B<install>, B<binary-arch>, B<binary-indep>, and B<binary>.
+
+=head1 OVERRIDE TARGETS
+
+A F<debian/rules> file using B<dh> can override the command that is run
+at any step in a sequence, by defining an override target.
+
+To override I<dh_command>, add a target named B<override_>I<dh_command> to
+the rules file. When it would normally run I<dh_command>, B<dh> will
+instead call that target. The override target can then run the command with
+additional options, or run entirely different commands instead. See
+examples below.
+
+Override targets can also be defined to run only when building
+architecture dependent or architecture independent packages.
+Use targets with names like B<override_>I<dh_command>B<-arch>
+and B<override_>I<dh_command>B<-indep>.
+(Note that to use this feature, you should Build-Depend on
+debhelper 8.9.7 or above.)
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--with> I<addon>[B<,>I<addon> ...]
+
+Add the debhelper commands specified by the given addon to appropriate places
+in the sequence of commands that is run. This option can be repeated more
+than once, or multiple addons can be listed, separated by commas.
+This is used when there is a third-party package that provides
+debhelper commands. See the F<PROGRAMMING> file for documentation about
+the sequence addon interface.
+
+=item B<--without> I<addon>
+
+The inverse of B<--with>, disables using the given addon. This option
+can be repeated more than once, or multiple addons to disable can be
+listed, separated by commas.
+
+=item B<--list>, B<-l>
+
+List all available addons.
+
+=item B<--no-act>
+
+Prints commands that would run for a given sequence, but does not run them.
+
+Note that dh normally skips running commands that it knows will do nothing.
+With --no-act, the full list of commands in a sequence is printed.
+
+=back
+
+Other options passed to B<dh> are passed on to each command it runs. This
+can be used to set an option like B<-v> or B<-X> or B<-N>, as well as for more
+specialised options.
+
+=head1 EXAMPLES
+
+To see what commands are included in a sequence, without actually doing
+anything:
+
+ dh binary-arch --no-act
+
+This is a very simple rules file, for packages where the default sequences of
+commands work with no additional options.
+
+ #!/usr/bin/make -f
+ %:
+ dh $@
+
+Often you'll want to pass an option to a specific debhelper command. The
+easy way to do with is by adding an override target for that command.
+
+ #!/usr/bin/make -f
+ %:
+ dh $@
+
+ override_dh_strip:
+ dh_strip -Xfoo
+
+ override_dh_auto_configure:
+ dh_auto_configure -- --with-foo --disable-bar
+
+Sometimes the automated L<dh_auto_configure(1)> and L<dh_auto_build(1)>
+can't guess what to do for a strange package. Here's how to avoid running
+either and instead run your own commands.
+
+ #!/usr/bin/make -f
+ %:
+ dh $@
+
+ override_dh_auto_configure:
+ ./mondoconfig
+
+ override_dh_auto_build:
+ make universe-explode-in-delight
+
+Another common case is wanting to do something manually before or
+after a particular debhelper command is run.
+
+ #!/usr/bin/make -f
+ %:
+ dh $@
+
+ override_dh_fixperms:
+ dh_fixperms
+ chmod 4755 debian/foo/usr/bin/foo
+
+If your package uses autotools and you want to freshen F<config.sub> and
+F<config.guess> with newer versions from the B<autotools-dev> package
+at build time, you can use some commands provided in B<autotools-dev>
+that automate it, like this.
+
+ #!/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<dh_pysupport>.)
+Here is how to use B<dh_python2>.
+
+ #!/usr/bin/make -f
+ %:
+ dh $@ --with python2
+
+Here is how to force use of Perl's B<Module::Build> build system,
+which can be necessary if debhelper wrongly detects that the package
+uses MakeMaker.
+
+ #!/usr/bin/make -f
+ %:
+ dh $@ --buildsystem=perl_build
+
+Here is an example of overriding where the B<dh_auto_>I<*> commands find
+the package's source, for a package where the source is located in a
+subdirectory.
+
+ #!/usr/bin/make -f
+ %:
+ dh $@ --sourcedirectory=src
+
+And here is an example of how to tell the B<dh_auto_>I<*> commands to build
+in a subdirectory, which will be removed on B<clean>.
+
+ #!/usr/bin/make -f
+ %:
+ dh $@ --builddirectory=build
+
+If your package can be built in parallel, you can support parallel building
+as follows. Then B<dpkg-buildpackage -j> will work.
+
+ #!/usr/bin/make -f
+ %:
+ dh $@ --parallel
+
+Here is a way to prevent B<dh> from running several commands that you don't
+want it to run, by defining empty override targets for each command.
+
+ #!/usr/bin/make -f
+ %:
+ dh $@
+
+ # Commands not to run:
+ override_dh_auto_test override_dh_compress override_dh_fixperms:
+
+A long build process for a separate documentation package can
+be separated out using architecture independent overrides.
+These will be skipped when running build-arch and binary-arch sequences.
+
+ #!/usr/bin/make -f
+ %:
+ dh $@
+
+ override_dh_auto_build-indep:
+ $(MAKE) -C docs
+
+ # No tests needed for docs
+ override_dh_auto_test-indep:
+
+ override_dh_auto_install-indep:
+ $(MAKE) -C docs install
+
+Adding to the example above, suppose you need to chmod a file, but only
+when building the architecture dependent package, as it's not present
+when building only documentation.
+
+ override_dh_fixperms-arch:
+ dh_fixperms
+ chmod 4755 debian/foo/usr/bin/foo
+
+=head1 INTERNALS
+
+If you're curious about B<dh>'s internals, here's how it works under the hood.
+
+Each debhelper command will record when it's successfully run in
+F<debian/package.debhelper.log>. (Which B<dh_clean> deletes.) So B<dh> can tell
+which commands have already been run, for which packages, and skip running
+those commands again.
+
+Each time B<dh> is run, 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.
+
+A sequence can also run dependent targets in debian/rules. For
+example, the "binary" sequence runs the "install" target.
+
+B<dh> uses the B<DH_INTERNAL_OPTIONS> environment variable to pass information
+through to debhelper commands that are run inside override targets. The
+contents (and indeed, existence) of this environment variable, as the name
+might suggest, is subject to change at any time.
+
+Commands in the B<build-indep>, B<install-indep> and B<binary-indep>
+sequences are passed the B<-i> option to ensure they only work on
+architecture independent packages, and commands in the B<build-arch>,
+B<install-arch> and B<binary-arch> sequences are passed the B<-a>
+option to ensure they only work on architecture dependent packages.
+
+=head1 DEPRECATED OPTIONS
+
+The following options are deprecated. It's much
+better to use override targets instead.
+
+=over 4
+
+=item B<--until> I<cmd>
+
+Run commands in the sequence until and including I<cmd>, then stop.
+
+=item B<--before> I<cmd>
+
+Run commands in the sequence before I<cmd>, then stop.
+
+=item B<--after> I<cmd>
+
+Run commands in the sequence that come after I<cmd>.
+
+=item B<--remaining>
+
+Run all commands in the sequence that have yet to be run.
+
+=back
+
+In the above options, I<cmd> can be a full name of a debhelper command, or
+a substring. It'll first search for a command in the sequence exactly
+matching the name, to avoid any ambiguity. If there are multiple substring
+matches, the last one in the sequence will be used.
+
+=cut
+
+# Stash this away before init modifies it.
+my @ARGV_orig=@ARGV;
+
+if (compat(8, 1)) {
+ # python-support was enabled by default before v9.
+ # (and comes first so python-central loads later and can disable it).
+ unshift @ARGV, "--with=python-support";
+}
+
+init(options => {
+ "until=s" => \$dh{UNTIL},
+ "after=s" => \$dh{AFTER},
+ "before=s" => \$dh{BEFORE},
+ "remaining" => \$dh{REMAINING},
+ "with=s" => sub {
+ my ($option,$value)=@_;
+ push @{$dh{WITH}},split(",", $value);
+ },
+ "without=s" => sub {
+ my ($option,$value)=@_;
+ my %without = map { $_ => 1 } split(",", $value);
+ @{$dh{WITH}} = grep { ! $without{$_} } @{$dh{WITH}};
+ },
+ "l" => \&list_addons,
+ "list" => \&list_addons,
+ },
+ # Disable complaints about unknown options; they are passed on to
+ # the debhelper commands.
+ ignore_unknown_options => 1,
+ # Bundling does not work well since there are unknown options.
+ bundling => 0,
+);
+inhibit_log();
+set_buildflags();
+warn_deprecated();
+
+# If make is using a jobserver, but it is not available
+# to this process, clean out MAKEFLAGS. This avoids
+# ugly warnings when calling make.
+if (is_make_jobserver_unavailable()) {
+ clean_jobserver_makeflags();
+}
+
+# Process the sequence parameter.
+my $sequence;
+if (! compat(7)) {
+ # From v8, the sequence is the very first parameter.
+ $sequence=shift @ARGV_orig;
+ if (defined $sequence && $sequence=~/^-/) {
+ error "Unknown sequence $sequence (options should not come before the sequence)";
+ }
+}
+else {
+ # Before v8, the sequence could be at any position in the parameters,
+ # so was what was left after parsing.
+ $sequence=shift;
+ if (defined $sequence) {
+ @ARGV_orig=grep { $_ ne $sequence } @ARGV_orig;
+ }
+}
+if (! defined $sequence) {
+ error "specify a sequence to run";
+}
+# make -B causes the rules file to be run as a target.
+# Also support completely empty override targets.
+# Note: it's not safe to use rules_explicit_target before this check,
+# since it causes dh to be run.
+my $dummy_target="debhelper-fail-me";
+if ($sequence eq 'debian/rules' ||
+ $sequence =~ /^override_dh_/ ||
+ $sequence eq $dummy_target) {
+ exit 0;
+}
+
+
+# Definitions of sequences.
+my %sequences;
+my @bd_minimal = qw{
+ dh_testdir
+};
+my @bd = qw{
+ dh_testdir
+ dh_auto_configure
+ dh_auto_build
+ dh_auto_test
+};
+my @i = qw{
+ dh_testroot
+ dh_prep
+ dh_installdirs
+ dh_auto_install
+
+ dh_install
+ dh_installdocs
+ dh_installchangelogs
+ dh_installexamples
+ dh_installman
+
+ dh_installcatalogs
+ dh_installcron
+ dh_installdebconf
+ dh_installemacsen
+ dh_installifupdown
+ dh_installinfo
+ dh_installinit
+ dh_installmenu
+ dh_installmime
+ dh_installmodules
+ dh_installlogcheck
+ dh_installlogrotate
+ dh_installpam
+ dh_installppp
+ dh_installudev
+ dh_installwm
+ dh_installgsettings
+ dh_bugfiles
+ dh_ucf
+ dh_lintian
+ dh_gconf
+ dh_icons
+ dh_perl
+ dh_usrlocal
+
+ dh_link
+ dh_installxfonts
+ dh_compress
+ dh_fixperms
+};
+my @ba=qw{
+ dh_strip
+ dh_makeshlibs
+ dh_shlibdeps
+};
+if (! getpackages("arch")) {
+ @ba=();
+}
+my @b=qw{
+ dh_installdeb
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+};
+$sequences{clean} = [qw{
+ dh_testdir
+ dh_auto_clean
+ dh_clean
+}];
+$sequences{'build-indep'} = [@bd];
+$sequences{'build-arch'} = [@bd];
+if (! compat(8)) {
+ # From v9, sequences take standard rules targets into account.
+ $sequences{build} = [@bd_minimal, rules("build-arch"), rules("build-indep")];
+ $sequences{'install-indep'} = [rules("build-indep"), @i];
+ $sequences{'install-arch'} = [rules("build-arch"), @i];
+ $sequences{'install'} = [rules("build"), rules("install-arch"), rules("install-indep")];
+ $sequences{'binary-indep'} = [rules("install-indep"), @b];
+ $sequences{'binary-arch'} = [rules("install-arch"), @ba, @b];
+ $sequences{binary} = [rules("install"), rules("binary-arch"), rules("binary-indep")];
+}
+else {
+ $sequences{build} = [@bd];
+ $sequences{'install'} = [@{$sequences{build}}, @i];
+ $sequences{'install-indep'} = [@{$sequences{'build-indep'}}, @i];
+ $sequences{'install-arch'} = [@{$sequences{'build-arch'}}, @i];
+ $sequences{binary} = [@{$sequences{install}}, @ba, @b];
+ $sequences{'binary-indep'} = [@{$sequences{'install-indep'}}, @b];
+ $sequences{'binary-arch'} = [@{$sequences{'install-arch'}}, @ba, @b];
+}
+
+# Additional command options
+my %command_opts;
+
+# sequence addon interface
+sub _insert {
+ my $offset=shift;
+ my $existing=shift;
+ my $new=shift;
+ foreach my $sequence (keys %sequences) {
+ my @list=@{$sequences{$sequence}};
+ next unless grep $existing, @list;
+ my @new;
+ foreach my $command (@list) {
+ if ($command eq $existing) {
+ push @new, $new if $offset < 0;
+ push @new, $command;
+ push @new, $new if $offset > 0;
+ }
+ else {
+ push @new, $command;
+ }
+ }
+ $sequences{$sequence}=\@new;
+ }
+}
+sub insert_before {
+ _insert(-1, @_);
+}
+sub insert_after {
+ _insert(1, @_);
+}
+sub remove_command {
+ my $command=shift;
+ foreach my $sequence (keys %sequences) {
+ $sequences{$sequence}=[grep { $_ ne $command } @{$sequences{$sequence}}];
+ }
+
+}
+sub add_command {
+ my $command=shift;
+ my $sequence=shift;
+ unshift @{$sequences{$sequence}}, $command;
+}
+sub add_command_options {
+ my $command=shift;
+ push @{$command_opts{$command}}, @_;
+}
+sub remove_command_options {
+ my $command=shift;
+ if (@_) {
+ # Remove only specified options
+ if (my $opts = $command_opts{$command}) {
+ foreach my $opt (@_) {
+ $opts = [ grep { $_ ne $opt } @$opts ];
+ }
+ $command_opts{$command} = $opts;
+ }
+ }
+ else {
+ # Clear all additional options
+ delete $command_opts{$command};
+ }
+}
+
+sub list_addons {
+ my %addons;
+
+ for my $inc (@INC) {
+ eval q{use File::Spec};
+ my $path = File::Spec->catdir($inc, "Debian/Debhelper/Sequence");
+ if (-d $path) {
+ for my $module_path (glob "$path/*.pm") {
+ my $name = basename($module_path);
+ $name =~ s/\.pm$//;
+ $name =~ s/_/-/g;
+ $addons{$name} = 1;
+ }
+ }
+ }
+
+ for my $name (sort keys %addons) {
+ print "$name\n";
+ }
+
+ exit 0;
+}
+
+# Load addons, which can modify sequences.
+foreach my $addon (@{$dh{WITH}}) {
+ my $mod="Debian::Debhelper::Sequence::$addon";
+ $mod=~s/-/_/g;
+ eval "use $mod";
+ if ($@) {
+ error("unable to load addon $addon: $@");
+ }
+}
+
+if (! exists $sequences{$sequence}) {
+ error "Unknown sequence $sequence (choose from: ".
+ join(" ", sort keys %sequences).")";
+}
+my @sequence=optimize_sequence(@{$sequences{$sequence}});
+
+# The list of all packages that can be acted on.
+my @packages=@{$dh{DOPACKAGES}};
+
+# Get the options to pass to commands in the sequence.
+# Filter out options intended only for this program.
+my @options;
+my $user_specified_options=0;
+if ($sequence eq 'build-arch' ||
+ $sequence eq 'install-arch' ||
+ $sequence eq 'binary-arch') {
+ push @options, "-a";
+ # as an optimisation, remove from the list any packages
+ # that are not arch dependent
+ my %arch_packages = map { $_ => 1 } getpackages("arch");
+ @packages = grep { $arch_packages{$_} } @packages;
+}
+elsif ($sequence eq 'build-indep' ||
+ $sequence eq 'install-indep' ||
+ $sequence eq 'binary-indep') {
+ push @options, "-i";
+ # ditto optimisation for arch indep
+ my %indep_packages = map { $_ => 1 } getpackages("indep");
+ @packages = grep { $indep_packages{$_} } @packages;
+}
+while (@ARGV_orig) {
+ my $opt=shift @ARGV_orig;
+ if ($opt =~ /^--?(after|until|before|with|without)$/) {
+ shift @ARGV_orig;
+ next;
+ }
+ elsif ($opt =~ /^--?(no-act|remaining|(after|until|before|with|without)=)/) {
+ next;
+ }
+ elsif ($opt=~/^-/) {
+ push @options, "-O".$opt;
+ $user_specified_options=1
+ unless $opt =~ /^--(parallel|buildsystem|sourcedirectory|builddirectory|)/;
+ }
+ elsif (@options) {
+ $user_specified_options=1;
+ if ($options[$#options]=~/^-O--/) {
+ $options[$#options].="=".$opt;
+ }
+ else {
+ $options[$#options].=$opt;
+ }
+ }
+}
+
+# Figure out at what point in the sequence to start for each package.
+my %logged;
+my %startpoint;
+foreach my $package (@packages) {
+ my @log=load_log($package, \%logged);
+ if ($dh{AFTER}) {
+ # Run commands in the sequence that come after the
+ # specified command.
+ $startpoint{$package}=command_pos($dh{AFTER}, @sequence) + 1;
+ # Write a dummy log entry indicating that the specified
+ # command was, in fact, run. This handles the case where
+ # no commands remain to run after it, communicating to
+ # future dh instances that the specified command should not
+ # be run again.
+ write_log($sequence[$startpoint{$package}-1], $package);
+ }
+ elsif ($dh{REMAINING}) {
+ # Start at the beginning so all remaining commands will get
+ # run.
+ $startpoint{$package}=0;
+ }
+ else {
+ # Find the last logged command that is in the sequence, and
+ # continue with the next command after it. If no logged
+ # command is in the sequence, we're starting at the beginning..
+ $startpoint{$package}=0;
+COMMAND: foreach my $command (reverse @log) {
+ foreach my $i (0..$#sequence) {
+ if ($command eq $sequence[$i]) {
+ $startpoint{$package}=$i+1;
+ last COMMAND;
+ }
+ }
+ }
+ }
+}
+
+# Figure out what point in the sequence to go to.
+my $stoppoint=$#sequence;
+if ($dh{UNTIL}) {
+ $stoppoint=command_pos($dh{UNTIL}, @sequence);
+}
+elsif ($dh{BEFORE}) {
+ $stoppoint=command_pos($dh{BEFORE}, @sequence) - 1;
+}
+
+# Now run the commands in the sequence.
+foreach my $i (0..$stoppoint) {
+ my $command=$sequence[$i];
+
+ # Figure out which packages need to run this command.
+ my @todo;
+ my @opts=@options;
+ foreach my $package (@packages) {
+ if ($startpoint{$package} > $i ||
+ $logged{$package}{$sequence[$i]}) {
+ push @opts, "-N$package";
+ }
+ else {
+ push @todo, $package;
+ }
+ }
+ next unless @todo;
+
+ my $rules_target = rules_target($command);
+ if (defined $rules_target) {
+ # Don't pass DH_ environment variables, since this is
+ # a fresh invocation of debian/rules and any sub-dh commands.
+ delete $ENV{DH_INTERNAL_OPTIONS};
+ delete $ENV{DH_INTERNAL_OVERRIDE};
+ run("debian/rules", $rules_target);
+ next;
+ }
+
+ # Check for override targets in debian/rules, and run instead of
+ # the usual command. (The non-arch-specific override is tried first,
+ # for simplest semantics; mixing it with arch-specific overrides
+ # makes little sense.)
+ my @oldtodo=@todo;
+ foreach my $override_type (undef, "arch", "indep") {
+ @todo = run_override($override_type, $command, \@todo, @opts);
+ }
+ next unless @todo;
+
+ if (can_skip($command, @todo) && ! $dh{NO_ACT}) {
+ # This mkdir is to avoid skipping the command causing
+ # breakage if some later command assumed that the
+ # command ran, and created the tmpdir, as a side effect.
+ # No commands in debhelper should make such an assuption,
+ # but there may be third party commands or other things
+ # in the rules file that does.
+ if (! compat(10)) {
+ foreach my $package (@todo) {
+ mkdir(tmpdir($package));
+ }
+ }
+ next;
+ }
+
+ # No need to run the command for any packages handled by the
+ # override targets.
+ my %todo=map { $_ => 1 } @todo;
+ foreach my $package (@oldtodo) {
+ if (! $todo{$package}) {
+ push @opts, "-N$package";
+ }
+ }
+
+ run($command, @opts);
+}
+
+sub run {
+ my $command=shift;
+ my @options=@_;
+
+ # Include additional command options if any
+ unshift @options, @{$command_opts{$command}}
+ if exists $command_opts{$command};
+
+ # 3 space indent lines the command being run up under the
+ # sequence name after "dh ".
+ print " ".escape_shell($command, @options)."\n";
+
+ return if $dh{NO_ACT};
+
+ my $ret=system($command, @options);
+ if ($ret >> 8 != 0) {
+ exit $ret >> 8;
+ }
+ elsif ($ret) {
+ exit 1;
+ }
+}
+
+# Tries to run an override target for a command. Returns the list of
+# packages that it was unable to run an override target for.
+sub run_override {
+ my $override_type=shift; # arch, indep, or undef
+ my $command=shift;
+ my @packages=@{shift()};
+ my @options=@_;
+
+ my $override="override_$command".
+ (defined $override_type ? "-".$override_type : "");
+
+ # Check which packages are of the right architecture for the
+ # override_type.
+ my (@todo, @rest);
+ if (defined $override_type) {
+ foreach my $package (@packages) {
+ my $isall=package_arch($package) eq 'all';
+ if (($override_type eq 'indep' && $isall) ||
+ ($override_type eq 'arch' && !$isall)) {
+ push @todo, $package;
+ }
+ else {
+ push @rest, $package;
+ push @options, "-N$package";
+ }
+ }
+ }
+ else {
+ @todo=@packages;
+ }
+
+ my $has_explicit_target = rules_explicit_target($override);
+ return @packages unless defined $has_explicit_target; # no such override
+ return @rest if ! $has_explicit_target; # has empty override
+ return @rest unless @todo; # has override, but no packages to act on
+
+ if (defined $override_type) {
+ # Ensure appropriate -a or -i option is passed when running
+ # an arch-specific override target.
+ my $opt=$override_type eq "arch" ? "-a" : "-i";
+ push @options, $opt unless grep { $_ eq $opt } @options;
+ }
+
+ # This passes the options through to commands called
+ # inside the target.
+ $ENV{DH_INTERNAL_OPTIONS}=join("\x1e", @options);
+ $ENV{DH_INTERNAL_OVERRIDE}=$command;
+ run("debian/rules", $override);
+ delete $ENV{DH_INTERNAL_OPTIONS};
+ delete $ENV{DH_INTERNAL_OVERRIDE};
+
+ # Update log for overridden command now that it has
+ # finished successfully.
+ # (But avoid logging for dh_clean since it removes
+ # the log earlier.)
+ if (! $dh{NO_ACT} && $command ne 'dh_clean') {
+ write_log($command, @todo);
+ commit_override_log(@todo);
+ }
+
+ return @rest;
+}
+
+sub optimize_sequence {
+ my @sequence;
+ my %seen;
+ my $add=sub {
+ # commands can appear multiple times when sequences are
+ # inlined together; only the first should be needed
+ my $command=shift;
+ if (! $seen{$command}) {
+ $seen{$command}=1;
+ push @sequence, $command;
+ }
+ };
+ foreach my $command (@_) {
+ my $rules_target=rules_target($command);
+ if (defined $rules_target &&
+ ! defined rules_explicit_target($rules_target)) {
+ # inline the sequence for this implicit target
+ $add->($_) foreach optimize_sequence(@{$sequences{$rules_target}});
+ }
+ else {
+ $add->($command);
+ }
+ }
+ return @sequence;
+}
+
+sub rules_target {
+ my $command=shift;
+ if ($command =~ /^debian\/rules\s+(.*)/) {
+ return $1
+ }
+ else {
+ return undef;
+ }
+}
+
+sub rules {
+ return "debian/rules ".join(" ", @_);
+}
+
+{
+my %targets;
+my $rules_parsed;
+
+sub rules_explicit_target {
+ # Checks if a specified target exists as an explicit target
+ # in debian/rules.
+ # undef is returned if target does not exist, 0 if target is noop
+ # and 1 if target has dependencies or executes commands.
+ my $target=shift;
+
+ if (! $rules_parsed) {
+ my $processing_targets = 0;
+ my $not_a_target = 0;
+ my $current_target;
+ open(MAKE, "LC_ALL=C make -Rrnpsf debian/rules $dummy_target 2>/dev/null |");
+ while (<MAKE>) {
+ if ($processing_targets) {
+ if (/^# Not a target:/) {
+ $not_a_target = 1;
+ }
+ else {
+ if (!$not_a_target && /^([^#:]+)::?\s*(.*)$/) {
+ # Target is defined. NOTE: if it is a dependency of
+ # .PHONY it will be defined too but that's ok.
+ # $2 contains target dependencies if any.
+ $current_target = $1;
+ $targets{$current_target} = ($2) ? 1 : 0;
+ }
+ else {
+ if (defined $current_target) {
+ if (/^#/) {
+ # Check if target has commands to execute
+ if (/^#\s*(commands|recipe) to execute/) {
+ $targets{$current_target} = 1;
+ }
+ }
+ else {
+ # Target parsed.
+ $current_target = undef;
+ }
+ }
+ }
+ # "Not a target:" is always followed by
+ # a target name, so resetting this one
+ # here is safe.
+ $not_a_target = 0;
+ }
+ }
+ elsif (/^# Files$/) {
+ $processing_targets = 1;
+ }
+ }
+ close MAKE;
+ $rules_parsed = 1;
+ }
+
+ return $targets{$target};
+}
+
+}
+
+sub warn_deprecated {
+ foreach my $deprecated ('until', 'after', 'before', 'remaining') {
+ if (defined $dh{uc $deprecated}) {
+ warning("The --$deprecated option is deprecated. Use override targets instead.");
+ }
+ }
+}
+
+sub command_pos {
+ my $command=shift;
+ my @sequence=@_;
+
+ foreach my $i (0..$#sequence) {
+ if ($command eq $sequence[$i]) {
+ return $i;
+ }
+ }
+
+ my @matches;
+ foreach my $i (0..$#sequence) {
+ if ($sequence[$i] =~ /\Q$command\E/) {
+ push @matches, $i;
+ }
+ }
+ if (! @matches) {
+ error "command specification \"$command\" does not match any command in the sequence"
+ }
+ else {
+ return pop @matches;
+ }
+}
+
+my %skipinfo;
+sub can_skip {
+ my $command=shift;
+ my @packages=@_;
+
+ return 0 if $user_specified_options ||
+ (exists $ENV{DH_OPTIONS} && length $ENV{DH_OPTIONS});
+
+ if (! defined $skipinfo{$command}) {
+ $skipinfo{$command}=[extract_skipinfo($command)];
+ }
+ my @skipinfo=@{$skipinfo{$command}};
+ return 0 unless @skipinfo;
+
+ foreach my $package (@packages) {
+ foreach my $skipinfo (@skipinfo) {
+ if ($skipinfo=~/^tmp\((.*)\)$/) {
+ my $need=$1;
+ my $tmp=tmpdir($package);
+ return 0 if -e "$tmp/$need";
+ }
+ elsif (pkgfile($package, $skipinfo) ne '') {
+ return 0;
+ }
+ }
+ }
+ return 1;
+}
+
+sub extract_skipinfo {
+ my $command=shift;
+
+ foreach my $dir (split (':', $ENV{PATH})) {
+ if (open (my $h, "<", "$dir/$command")) {
+ while (<$h>) {
+ if (m/PROMISE: DH NOOP WITHOUT\s+(.*)/) {
+ close $h;
+ return split(' ', $1);
+ }
+ }
+ close $h;
+ return ();
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_auto_build b/dh_auto_build
new file mode 100755
index 0000000..bbb5e85
--- /dev/null
+++ b/dh_auto_build
@@ -0,0 +1,57 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_auto_build - automatically builds a package
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Buildsystems;
+
+=head1 SYNOPSIS
+
+B<dh_auto_build> [S<I<build system options>>] [S<I<debhelper options>>] [S<B<--> I<params>>]
+
+=head1 DESCRIPTION
+
+B<dh_auto_build> is a debhelper program that tries to automatically build a
+package. It does so by running the appropriate command for the build system
+it detects the package uses. For example, if a F<Makefile> is found, this is
+done by running B<make> (or B<MAKE>, if the environment variable is set). If
+there's a F<setup.py>, or F<Build.PL>, it is run to build the package.
+
+This is intended to work for about 90% of packages. If it doesn't work,
+you're encouraged to skip using B<dh_auto_build> at all, and just run the
+build process manually.
+
+=head1 OPTIONS
+
+See L<debhelper(7)/B<BUILD SYSTEM OPTIONS>> for a list of common build
+system selection and control options.
+
+=over 4
+
+=item B<--> I<params>
+
+Pass I<params> to the program that is run, after the parameters that
+B<dh_auto_build> usually passes.
+
+=back
+
+=cut
+
+buildsystems_init();
+buildsystems_do();
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_auto_clean b/dh_auto_clean
new file mode 100755
index 0000000..3abb5f3
--- /dev/null
+++ b/dh_auto_clean
@@ -0,0 +1,60 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_auto_clean - automatically cleans up after a build
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+use Debian::Debhelper::Dh_Buildsystems;
+
+=head1 SYNOPSIS
+
+B<dh_auto_clean> [S<I<build system options>>] [S<I<debhelper options>>] [S<B<--> I<params>>]
+
+=head1 DESCRIPTION
+
+B<dh_auto_clean> is a debhelper program that tries to automatically clean up
+after a package build. It does so by running the appropriate command for
+the build system it detects the package uses. For example, if there's a
+F<Makefile> and it contains a B<distclean>, B<realclean>, or B<clean> target,
+then this is done by running B<make> (or B<MAKE>, if the environment variable is
+set). If there is a F<setup.py> or F<Build.PL>, it is run to clean the package.
+
+This is intended to work for about 90% of packages. If it doesn't work, or
+tries to use the wrong clean target, you're encouraged to skip using
+B<dh_auto_clean> at all, and just run B<make clean> manually.
+
+=head1 OPTIONS
+
+See L<debhelper(7)/B<BUILD SYSTEM OPTIONS>> for a list of common build
+system selection and control options.
+
+=over 4
+
+=item B<--> I<params>
+
+Pass I<params> to the program that is run, after the parameters that
+B<dh_auto_clean> usually passes.
+
+=back
+
+=cut
+
+inhibit_log();
+buildsystems_init();
+buildsystems_do();
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_auto_configure b/dh_auto_configure
new file mode 100755
index 0000000..e1ca7af
--- /dev/null
+++ b/dh_auto_configure
@@ -0,0 +1,62 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_auto_configure - automatically configure a package prior to building
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Buildsystems;
+
+=head1 SYNOPSIS
+
+B<dh_auto_configure> [S<I<build system options>>] [S<I<debhelper options>>] [S<B<--> I<params>>]
+
+=head1 DESCRIPTION
+
+B<dh_auto_configure> is a debhelper program that tries to automatically
+configure a package prior to building. It does so by running the
+appropriate command for the build system it detects the package uses.
+For example, it looks for and runs a F<./configure> script, F<Makefile.PL>,
+F<Build.PL>, or F<cmake>. A standard set of parameters is determined and passed
+to the program that is run. Some build systems, such as make, do not
+need a configure step; for these B<dh_auto_configure> will exit without
+doing anything.
+
+This is intended to work for about 90% of packages. If it doesn't work,
+you're encouraged to skip using B<dh_auto_configure> at all, and just run
+F<./configure> or its equivalent manually.
+
+=head1 OPTIONS
+
+See L<debhelper(7)/B<BUILD SYSTEM OPTIONS>> for a list of common build
+system selection and control options.
+
+=over 4
+
+=item B<--> I<params>
+
+Pass I<params> to the program that is run, after the parameters that
+B<dh_auto_configure> usually passes. For example:
+
+ dh_auto_configure -- --with-foo --enable-bar
+
+=back
+
+=cut
+
+buildsystems_init();
+buildsystems_do();
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_auto_install b/dh_auto_install
new file mode 100755
index 0000000..ef46a3c
--- /dev/null
+++ b/dh_auto_install
@@ -0,0 +1,102 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_auto_install - automatically runs make install or similar
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+use Debian::Debhelper::Dh_Buildsystems;
+use File::Spec;
+use Cwd;
+
+=head1 SYNOPSIS
+
+B<dh_auto_install> [S<I<build system options>>] [S<I<debhelper options>>] [S<B<--> I<params>>]
+
+=head1 DESCRIPTION
+
+B<dh_auto_install> is a debhelper program that tries to automatically install
+built files. It does so by running the appropriate command for the build
+system it detects the package uses. For example, if there's a F<Makefile> and
+it contains a B<install> target, then this is done by running B<make> (or B<MAKE>,
+if the environment variable is set). If there is a F<setup.py> or F<Build.PL>,
+it is used. Note that the Ant build system does not support installation,
+so B<dh_auto_install> will not install files built using Ant.
+
+Unless B<--destdir> option is specified, the files are installed into
+debian/I<package>/ if there is only one binary package. In the multiple binary
+package case, the files are instead installed into F<debian/tmp/>, and should be
+moved from there to the appropriate package build directory using
+L<dh_install(1)>.
+
+B<DESTDIR> is used to tell make where to install the files.
+If the Makefile was generated by MakeMaker from a F<Makefile.PL>, it will
+automatically set B<PREFIX=/usr> too, since such Makefiles need that.
+
+This is intended to work for about 90% of packages. If it doesn't work, or
+tries to use the wrong install target, you're encouraged to skip using
+B<dh_auto_install> at all, and just run make install manually.
+
+=head1 OPTIONS
+
+See L<debhelper(7)/B<BUILD SYSTEM OPTIONS>> for a list of common build
+system selection and control options.
+
+=over 4
+
+=item B<--destdir=>I<directory>
+
+Install files into the specified I<directory>. If this option is not specified,
+destination directory is determined automatically as described in the
+L</B<DESCRIPTION>> section.
+
+=item B<--> I<params>
+
+Pass I<params> to the program that is run, after the parameters that
+B<dh_auto_install> usually passes.
+
+=back
+
+=cut
+
+my $destdir;
+
+buildsystems_init(options => {
+ "destdir=s" => \$destdir,
+});
+
+# If destdir is not specified, determine it automatically
+if (!$destdir) {
+ my @allpackages=getpackages();
+ if (@allpackages > 1) {
+ $destdir="debian/tmp";
+ }
+ else {
+ $destdir=tmpdir($dh{MAINPACKAGE});
+ }
+}
+$destdir = File::Spec->rel2abs($destdir, cwd());
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ if (! -e $tmp) {
+ doit("install","-d",$tmp);
+ }
+}
+
+buildsystems_do("install", $destdir);
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_auto_test b/dh_auto_test
new file mode 100755
index 0000000..01dc5df
--- /dev/null
+++ b/dh_auto_test
@@ -0,0 +1,73 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_auto_test - automatically runs a package's test suites
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+use Debian::Debhelper::Dh_Buildsystems;
+
+=head1 SYNOPSIS
+
+B<dh_auto_test> [S<I<build system options>>] [S<I<debhelper options>>] [S<B<--> I<params>>]
+
+=head1 DESCRIPTION
+
+B<dh_auto_test> is a debhelper program that tries to automatically run a
+package's test suite. It does so by running the appropriate command for the
+build system it detects the package uses. For example, if there's a
+Makefile and it contains a B<test> or B<check> target, then this is done by
+running B<make> (or B<MAKE>, if the environment variable is set). If the test
+suite fails, the command will exit nonzero. If there's no test suite, it
+will exit zero without doing anything.
+
+This is intended to work for about 90% of packages with a test suite. If it
+doesn't work, you're encouraged to skip using B<dh_auto_test> at all, and
+just run the test suite manually.
+
+=head1 OPTIONS
+
+See L<debhelper(7)/B<BUILD SYSTEM OPTIONS>> for a list of common build
+system selection and control options.
+
+=over 4
+
+=item B<--> I<params>
+
+Pass I<params> to the program that is run, after the parameters that
+B<dh_auto_test> usually passes.
+
+=back
+
+=head1 NOTES
+
+If the B<DEB_BUILD_OPTIONS> environment variable contains B<nocheck>, no
+tests will be performed.
+
+dh_auto_test does not run the test suite when a package is being cross
+compiled.
+
+=cut
+
+if (get_buildoption("nocheck")
+ || (dpkg_architecture_value("DEB_HOST_GNU_TYPE") ne dpkg_architecture_value("DEB_BUILD_GNU_TYPE"))) {
+ exit 0;
+}
+
+buildsystems_init();
+buildsystems_do();
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_bugfiles b/dh_bugfiles
new file mode 100755
index 0000000..83428f5
--- /dev/null
+++ b/dh_bugfiles
@@ -0,0 +1,136 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_bugfiles - install bug reporting customization files into package build directories
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_bugfiles> [B<-A>] [S<I<debhelper options>>]
+
+=head1 DESCRIPTION
+
+B<dh_bugfiles> is a debhelper program that is responsible for installing
+bug reporting customization files (bug scripts and/or bug control files
+and/or presubj files) into package build directories.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.bug-script
+
+This is the script to be run by the bug reporting program for generating a bug
+report template. This file is installed as F<usr/share/bug/package> in the
+package build directory if no other types of bug reporting customization
+files are going to be installed for the package in question. Otherwise,
+this file is installed as F<usr/share/bug/package/script>. Finally, the
+installed script is given execute permissions.
+
+=item debian/I<package>.bug-control
+
+It is the bug control file containing some directions for the bug reporting
+tool. This file is installed as F<usr/share/bug/package/control> in the
+package build directory.
+
+=item debian/I<package>.bug-presubj
+
+The contents of this file are displayed to the user by the bug reporting
+tool before allowing the user to write a bug report on the package to the
+Debian Bug Tracking System. This file is installed as
+F<usr/share/bug/package/presubj> in the package build directory.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-A>, B<--all>
+
+Install F<debian/bug-*> files to ALL packages acted on when respective
+F<debian/package.bug-*> files do not exist. Normally, F<debian/bug-*> will
+be installed to the first package only.
+
+=back
+
+=cut
+
+init();
+
+# Types of bug files this debhelper program handles.
+# Hash value is the name of the pkgfile of the respective
+# type.
+my %bugfile_types = (
+ "script" => "bug-script",
+ "control" => "bug-control",
+ "presubj" => "bug-presubj",
+);
+# PROMISE: DH NOOP WITHOUT bug-script bug-control bug-presubj
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ next if is_udeb($package);
+
+ my $tmp=tmpdir($package);
+ my $dir="$tmp/usr/share/bug/$package";
+
+ # Gather information which bug files are available for the
+ # package in question
+ my %bugfiles=();
+ while (my ($type, $pkgfilename) = each(%bugfile_types)) {
+ my $file=pkgfile($package,$pkgfilename);
+ if ($file) {
+ $bugfiles{$type}=$file;
+ }
+ elsif (-f "debian/$pkgfilename" && $dh{PARAMS_ALL}) {
+ $bugfiles{$type}="debian/$pkgfilename";
+ }
+ }
+
+ # If there is only a bug script to install, install it as
+ # usr/share/bug/$package (unless this path is a directory)
+ if (! -d $dir && scalar(keys(%bugfiles)) == 1 && exists $bugfiles{script}) {
+ doit("install","-D","-p","-m755",$bugfiles{script},$dir);
+ }
+ elsif (scalar(keys(%bugfiles)) > 0) {
+ if (-f $dir) {
+ # Move usr/share/bug/$package to usr/share/bug/$package/script
+ doit("mv", $dir, "${dir}.tmp");
+ doit("install","-d",$dir);
+ doit("mv", "${dir}.tmp", "$dir/script");
+ }
+ elsif (! -d $dir) {
+ doit("install","-d",$dir);
+ }
+ while (my ($type, $srcfile) = each(%bugfiles)) {
+ doit("install","-p","-m644",$srcfile, "$dir/$type");
+ }
+ }
+
+ # Ensure that the bug script is executable
+ if (-f $dir) {
+ chmod 0755, $dir;
+ }
+ elsif (-f "$dir/script") {
+ chmod 0755, "$dir/script";
+ }
+}
+
+=head1 SEE ALSO
+
+F</usr/share/doc/reportbug/README.developers.gz>
+
+L<debhelper(1)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Modestas Vainius <modestas@vainius.eu>
+
+=cut
diff --git a/dh_builddeb b/dh_builddeb
new file mode 100755
index 0000000..bf9fc27
--- /dev/null
+++ b/dh_builddeb
@@ -0,0 +1,134 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_builddeb - build Debian binary packages
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_builddeb> [S<I<debhelper options>>] [B<--destdir=>I<directory>] [B<--filename=>I<name>] [S<B<--> I<params>>]
+
+=head1 DESCRIPTION
+
+B<dh_builddeb> simply calls L<dpkg-deb(1)> to build a Debian package or
+packages.
+
+It supports building multiple binary packages in parallel, when enabled by
+DEB_BUILD_OPTIONS.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--destdir=>I<directory>
+
+Use this if you want the generated F<.deb> files to be put in a directory
+other than the default of "F<..>".
+
+=item B<--filename=>I<name>
+
+Use this if you want to force the generated .deb file to have a particular
+file name. Does not work well if more than one .deb is generated!
+
+=item B<--> I<params>
+
+Pass I<params> to L<dpkg-deb(1)> when it is used to build the
+package.
+
+=item B<-u>I<params>
+
+This is another way to pass I<params> to L<dpkg-deb(1)>.
+It is deprecated; use B<--> instead.
+
+=back
+
+=cut
+
+init(options => {
+ "filename=s" => \$dh{FILENAME},
+ "destdir=s" => \$dh{DESTDIR},
+});
+
+# Set the default destination directory.
+if (! defined $dh{DESTDIR}) {
+ $dh{DESTDIR}='..';
+}
+
+if (! defined $dh{FILENAME}) {
+ $dh{FILENAME}='';
+}
+else {
+ $dh{FILENAME}="/$dh{FILENAME}";
+}
+
+my $max_procs=get_buildoption("parallel") || 1;
+
+my $processes=1;
+my $exit=0;
+sub reap {
+ if (wait == -1) {
+ $processes=0;
+ }
+ else {
+ $processes--;
+ $exit=1 if $? != 0;
+ }
+}
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $pid=fork();
+ if (! defined $pid) {
+ error("fork failed! $!");
+ }
+ if ($pid) { # parent
+ $processes++;
+ reap while $processes > $max_procs;
+ next;
+ }
+
+ # child
+ my $tmp=tmpdir($package);
+ if (exists $ENV{DH_ALWAYS_EXCLUDE} && length $ENV{DH_ALWAYS_EXCLUDE}) {
+ if (! compat(5)) {
+ complex_doit("find $tmp $dh{EXCLUDE_FIND} | xargs rm -rf");
+ }
+ else {
+ # Old broken code here for compatibility. Does not
+ # remove everything.
+ complex_doit("find $tmp -name $_ | xargs rm -rf")
+ foreach split(":", $ENV{DH_ALWAYS_EXCLUDE});
+ }
+ }
+ if (! is_udeb($package)) {
+ doit("dpkg-deb", @{$dh{U_PARAMS}}, "--build", $tmp, $dh{DESTDIR}.$dh{FILENAME});
+ }
+ else {
+ my $filename=$dh{FILENAME};
+ if (! $filename) {
+ $filename="/".udeb_filename($package);
+ }
+ doit("dpkg-deb", "-z1", "-Zxz", "-Sextreme",
+ @{$dh{U_PARAMS}}, "--build", $tmp, $dh{DESTDIR}.$filename);
+ }
+ exit 0;
+}
+
+reap while $processes;
+exit $exit;
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_clean b/dh_clean
new file mode 100755
index 0000000..931dd21
--- /dev/null
+++ b/dh_clean
@@ -0,0 +1,152 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_clean - clean up package build directories
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_clean> [S<I<debhelper options>>] [B<-k>] [B<-d>] [B<-X>I<item>] [S<I<file> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_clean> is a debhelper program that is responsible for cleaning up after a
+package is built. It removes the package build directories, and removes some
+other files including F<debian/files>, and any detritus left behind by other
+debhelper commands. It also removes common files that should not appear in a
+Debian diff:
+ #*# *~ DEADJOE *.orig *.rej *.SUMS TAGS .deps/* *.P *-stamp
+
+It does not run "make clean" to clean up after the build process. Use
+L<dh_auto_clean(1)> to do things like that.
+
+B<dh_clean> should be the last debhelper command run in the
+B<clean> target in F<debian/rules>.
+
+=head1 FILES
+
+=over 4
+
+=item F<debian/clean>
+
+Can list other files to be removed.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-k>, B<--keep>
+
+This is deprecated, use L<dh_prep(1)> instead.
+
+=item B<-d>, B<--dirs-only>
+
+Only clean the package build directories, do not clean up any other files
+at all.
+
+=item B<-X>I<item> B<--exclude=>I<item>
+
+Exclude files that contain I<item> anywhere in their filename from being
+deleted, even if they would normally be deleted. You may use this option
+multiple times to build up a list of things to exclude.
+
+=item I<file> ...
+
+Delete these I<file>s too.
+
+=back
+
+=cut
+
+init(options => {
+ "dirs-only" => \$dh{D_FLAG},
+});
+inhibit_log();
+
+if ($dh{K_FLAG}) {
+ # dh_prep will be emulated (mostly) by the code below.
+ warning("dh_clean -k is deprecated; use dh_prep instead");
+}
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ my $ext=pkgext($package);
+
+ if (! $dh{D_FLAG}) {
+ doit("rm","-f","debian/${ext}substvars")
+ unless excludefile("debian/${ext}substvars");
+
+ # These are all debhelper temp files, and so it is safe to
+ # wildcard them.
+ complex_doit("rm -f debian/$ext*.debhelper");
+ }
+
+ doit ("rm","-rf",$tmp."/")
+ unless excludefile($tmp);
+}
+
+# Remove all debhelper logs.
+if (! $dh{D_FLAG} && ! $dh{K_FLAG}) {
+ complex_doit("rm","-f","debian/*.debhelper.log");
+ if (compat(1)) {
+ doit("rm","-f","debian/debhelper.log");
+ }
+}
+
+if (! $dh{D_FLAG}) {
+ if (@ARGV) {
+ doit("rm","-f","--",@ARGV);
+ }
+
+ if (! $dh{K_FLAG}) {
+ if (!compat(6) && -e "debian/clean") {
+ my @clean=grep { ! excludefile($_) }
+ filearray("debian/clean", ".");
+ doit("rm","-f","--",@clean) if @clean;
+ }
+
+ doit("rm","-f","debian/files")
+ unless excludefile("debian/files");
+ }
+
+ # See if some files that would normally be deleted are excluded.
+ my $find_options='';
+ if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') {
+ $find_options="! \\( $dh{EXCLUDE_FIND} \\) -a";
+ }
+
+ # Remove other temp files.
+ complex_doit("find . $find_options \\( \\( -type f -a \\
+ \\( -name '#*#' -o -name '.*~' -o -name '*~' -o -name DEADJOE \\
+ -o -name '*.orig' -o -name '*.rej' -o -name '*.bak' \\
+ -o -name '.*.orig' -o -name .*.rej -o -name '.SUMS' \\
+ -o -name TAGS -o \\( -path '*/.deps/*' -a -name '*.P' \\) \\
+ \\) -exec rm -f {} + \\) -o \\
+ \\( -type d -a -name autom4te.cache -prune -exec rm -rf {} + \\) \\)");
+}
+
+doit('rm', '-rf', 'debian/tmp') if -x 'debian/tmp' && ! compat(1) &&
+ ! excludefile("debian/tmp");
+
+if (!compat(6) && !$dh{K_FLAG}) {
+ complex_doit('rm -f *-stamp');
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_compress b/dh_compress
new file mode 100755
index 0000000..ec07f85
--- /dev/null
+++ b/dh_compress
@@ -0,0 +1,218 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_compress - compress files and fix symlinks in package build directories
+
+=cut
+
+use strict;
+use Cwd;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_compress> [S<I<debhelper options>>] [B<-X>I<item>] [B<-A>] [S<I<file> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_compress> is a debhelper program that is responsible for compressing
+the files in package build directories, and makes sure that any symlinks
+that pointed to the files before they were compressed are updated to point
+to the new files.
+
+By default, B<dh_compress> compresses files that Debian policy mandates should
+be compressed, namely all files in F<usr/share/info>, F<usr/share/man>,
+files in F<usr/share/doc> that are larger than 4k in size,
+(except the F<copyright> file, F<.html> and other web files, image files, and files
+that appear to be already compressed based on their extensions), and all
+F<changelog> files. Plus PCF fonts underneath F<usr/share/fonts/X11/>
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.compress
+
+These files are deprecated.
+
+If this file exists, the default files are not compressed. Instead, the
+file is ran as a shell script, and all filenames that the shell script
+outputs will be compressed. The shell script will be run from inside the
+package build directory. Note though that using B<-X> is a much better idea in
+general; you should only use a F<debian/package.compress> file if you really
+need to.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-X>I<item>, B<--exclude=>I<item>
+
+Exclude files that contain F<item> anywhere in their filename from being
+compressed. For example, B<-X.tiff> will exclude TIFF files from compression.
+You may use this option multiple times to build up a list of things to
+exclude.
+
+=item B<-A>, B<--all>
+
+Compress all files specified by command line parameters in ALL packages
+acted on.
+
+=item I<file> ...
+
+Add these files to the list of files to compress.
+
+=back
+
+=head1 CONFORMS TO
+
+Debian policy, version 3.0
+
+=cut
+
+init();
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+
+ my $compress=pkgfile($package,"compress");
+
+ # Run the file name gathering commands from within the directory
+ # structure that will be effected.
+ next unless -d $tmp;
+ my $olddir=getcwd();
+ verbose_print("cd $tmp");
+ chdir($tmp) || error("Can't cd to $tmp: $!");
+
+ # Figure out what files to compress.
+ my @files;
+ # First of all, deal with any files specified right on the command line.
+ if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
+ push @files, @ARGV;
+ }
+ if ($compress) {
+ # The compress file is a sh script that outputs the files to be compressed
+ # (typically using find).
+ warning("$compress is deprecated; use -X or avoid calling dh_compress instead");
+ push @files, split(/\n/,`sh $olddir/$compress 2>/dev/null`);
+ }
+ else {
+ # Note that all the excludes of odd things like _z
+ # are because gzip refuses to compress such files, assuming
+ # they are zip files. I looked at the gzip source to get the
+ # complete list of such extensions: ".gz", ".z", ".taz",
+ # ".tgz", "-gz", "-z", "_z"
+ push @files, split(/\n/,`
+ find usr/info usr/share/info usr/man usr/share/man usr/X11*/man -type f ! -iname "*.gz" \\
+ ! -iname "*.gif" ! -iname "*.png" ! -iname "*.jpg" \\
+ ! -iname "*.jpeg" \\
+ 2>/dev/null || true;
+ find usr/share/doc \\
+ \\( -type d -name _sources -prune -false \\) -o \\
+ -type f \\( -size +4k -or -name "changelog*" -or -name "NEWS*" \\) \\
+ \\( -name changelog.html -or ! -iname "*.htm*" \\) \\
+ ! -iname "*.gif" ! -iname "*.png" ! -iname "*.jpg" \\
+ ! -iname "*.jpeg" ! -iname "*.gz" ! -iname "*.taz" \\
+ ! -iname "*.tgz" ! -iname "*.z" ! -iname "*.bz2" \\
+ ! -iname "*-gz" ! -iname "*-z" ! -iname "*_z" \\
+ ! -iname "*.jar" ! -iname "*.zip" ! -iname "*.css" \\
+ ! -iname "*.svg" ! -iname "*.svgz" ! -iname "*.js" \\
+ ! -name "index.sgml" ! -name "objects.inv" \\
+ ! -name "copyright" 2>/dev/null || true;
+ find usr/share/fonts/X11 -type f -name "*.pcf" 2>/dev/null || true;
+ `);
+ }
+
+ # Exclude files from compression.
+ if (@files && defined($dh{EXCLUDE}) && $dh{EXCLUDE}) {
+ my @new=();
+ foreach (@files) {
+ my $ok=1;
+ foreach my $x (@{$dh{EXCLUDE}}) {
+ if (/\Q$x\E/) {
+ $ok='';
+ last;
+ }
+ }
+ push @new,$_ if $ok;
+ }
+ @files=@new;
+ }
+
+ # Look for files with hard links. If we are going to compress both,
+ # we can preserve the hard link across the compression and save
+ # space in the end.
+ my @f=();
+ my %hardlinks;
+ my %seen;
+ foreach (@files) {
+ my ($dev, $inode, undef, $nlink)=stat($_);
+ if ($nlink > 1) {
+ if (! $seen{"$inode.$dev"}) {
+ $seen{"$inode.$dev"}=$_;
+ push @f, $_;
+ }
+ else {
+ # This is a hardlink.
+ $hardlinks{$_}=$seen{"$inode.$dev"};
+ }
+ }
+ else {
+ push @f, $_;
+ }
+ }
+
+ if (@f) {
+ # Make executables not be anymore.
+ xargs(\@f,"chmod","a-x");
+
+ xargs(\@f,"gzip","-9nf");
+ }
+
+ # Now change over any files we can that used to be hard links so
+ # they are again.
+ foreach (keys %hardlinks) {
+ # Remove old file.
+ doit("rm","-f","$_");
+ # Make new hardlink.
+ doit("ln","$hardlinks{$_}.gz","$_.gz");
+ }
+
+ verbose_print("cd '$olddir'");
+ chdir($olddir);
+
+ # Fix up symlinks that were pointing to the uncompressed files.
+ my %links = map { chomp; $_ => 1 } `find $tmp -type l`;
+ my $changed;
+ # Keep looping through looking for broken links until no more
+ # changes are made. This is done in case there are links pointing
+ # to links, pointing to compressed files.
+ do {
+ $changed = 0;
+ foreach my $link (keys %links) {
+ my ($directory) = $link =~ m:(.*)/:;
+ my $linkval = readlink($link);
+ if (! -e "$directory/$linkval" && -e "$directory/$linkval.gz") {
+ doit("rm","-f",$link);
+ doit("ln","-sf","$linkval.gz","$link.gz");
+ delete $links{$link};
+ $changed++;
+ }
+ }
+ } while $changed;
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_desktop b/dh_desktop
new file mode 100755
index 0000000..075597f
--- /dev/null
+++ b/dh_desktop
@@ -0,0 +1,41 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_desktop - deprecated no-op
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_desktop> [S<I<debhelper options>>]
+
+=head1 DESCRIPTION
+
+B<dh_desktop> was a debhelper program that registers F<.desktop> files.
+However, it no longer does anything, and is now deprecated.
+
+If a package ships F<desktop> files, they just need to be installed in the
+correct location (F</usr/share/applications>) and they will be registered by
+the appropriate tools for the corresponding desktop environments.
+
+=cut
+
+init();
+
+warning("This program is deprecated, and does nothing anymore.");
+
+=head1 SEE ALSO
+
+L<debhelper>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Ross Burton <ross@burtonini.com>
+
+=cut
diff --git a/dh_fixperms b/dh_fixperms
new file mode 100755
index 0000000..a99a134
--- /dev/null
+++ b/dh_fixperms
@@ -0,0 +1,137 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_fixperms - fix permissions of files in package build directories
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_fixperms> [S<I<debhelper options>>] [B<-X>I<item>]
+
+=head1 DESCRIPTION
+
+B<dh_fixperms> is a debhelper program that is responsible for setting the
+permissions of files and directories in package build directories to a
+sane state -- a state that complies with Debian policy.
+
+B<dh_fixperms> makes all files in F<usr/share/doc> in the package build directory
+(excluding files in the F<examples/> directory) be mode 644. It also changes
+the permissions of all man pages to mode 644. It makes all files be owned
+by root, and it removes group and other write permission from all files. It
+removes execute permissions from any libraries, headers, Perl modules, or
+desktop files that have it set. It makes all files in the standard F<bin> and
+F<sbin> directories, F<usr/games/> and F<etc/init.d> executable (since v4). Finally,
+it removes the setuid and setgid bits from all files in the package.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-X>I<item>, B<--exclude> I<item>
+
+Exclude files that contain I<item> anywhere in their filename from having
+their permissions changed. You may use this option multiple times to build
+up a list of things to exclude.
+
+=back
+
+=cut
+
+init();
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+
+ my $find_options='';
+ if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') {
+ $find_options="! \\( $dh{EXCLUDE_FIND} \\)";
+ }
+
+ # General permissions fixing.
+ complex_doit("find $tmp $find_options -print0",
+ "2>/dev/null | xargs -0r chown --no-dereference 0:0");
+ complex_doit("find $tmp ! -type l $find_options -print0",
+ "2>/dev/null | xargs -0r chmod go=rX,u+rw,a-s");
+
+ # Fix up permissions in usr/share/doc, setting everything to not
+ # executable by default, but leave examples directories alone.
+ complex_doit("find $tmp/usr/share/doc -type f $find_options ! -regex '$tmp/usr/share/doc/[^/]*/examples/.*' -print0 2>/dev/null",
+ "| xargs -0r chmod 644");
+ complex_doit("find $tmp/usr/share/doc -type d $find_options -print0 2>/dev/null",
+ "| xargs -0r chmod 755");
+
+ # Executable man pages are a bad thing..
+ complex_doit("find $tmp/usr/share/man $tmp/usr/man/ $tmp/usr/X11*/man/ -type f",
+ "$find_options -print0 2>/dev/null | xargs -0r chmod 644");
+
+ # ..and so are executable shared and static libraries
+ # (and .la files from libtool) ..
+ complex_doit("find $tmp -perm -5 -type f",
+ "\\( -name '*.so.*' -or -name '*.so' -or -name '*.la' -or -name '*.a' \\) $find_options -print0",
+ "2>/dev/null | xargs -0r chmod 644");
+
+ # ..and header files ..
+ complex_doit("find $tmp/usr/include -type f $find_options -print0",
+ "2>/dev/null | xargs -0r chmod 644");
+
+ # ..and desktop files ..
+ complex_doit("find $tmp/usr/share/applications -type f $find_options -print0",
+ "2>/dev/null | xargs -0r chmod 644");
+
+ # ..and OCaml native-code shared objects ..
+ complex_doit("find $tmp -perm -5 -type f",
+ "\\( -name '*.cmxs' \\) $find_options -print0",
+ "2>/dev/null | xargs -0r chmod 644");
+
+ # .. and perl modules.
+ complex_doit("find $tmp/usr/lib/perl5 $tmp/usr/share/perl5 -type f",
+ "-perm -5 -name '*.pm' $find_options -print0",
+ "2>/dev/null | xargs -0r chmod a-X");
+
+ # v4 and up
+ if (! compat(3)) {
+ # Programs in the bin and init.d dirs should be executable..
+ for my $dir (qw{usr/bin bin usr/sbin sbin usr/games etc/init.d}) {
+ if (-d "$tmp/$dir") {
+ complex_doit("find $tmp/$dir -type f $find_options -print0 2>/dev/null",
+ "| xargs -0r chmod a+x");
+ }
+ }
+ }
+
+ # ADA ali files should be mode 444 to avoid recompilation
+ complex_doit("find $tmp/usr/lib -type f",
+ "-name '*.ali' $find_options -print0",
+ "2>/dev/null | xargs -0r chmod uga-w");
+
+ # Lintian overrides should never be executable, too.
+ if (-d "$tmp/usr/share/lintian") {
+ complex_doit("find $tmp/usr/share/lintian/overrides",
+ "-type f $find_options -print0",
+ "2>/dev/null | xargs -0r chmod 644");
+ }
+
+ # Files in $tmp/etc/sudoers.d/ must be mode 440.
+ if (-d "$tmp/etc/sudoers.d") {
+ complex_doit("find $tmp/etc/sudoers.d",
+ "-type f ! -perm 440 $find_options -print0",
+ "2>/dev/null | xargs -0r chmod 440");
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_gconf b/dh_gconf
new file mode 100755
index 0000000..48b05ba
--- /dev/null
+++ b/dh_gconf
@@ -0,0 +1,112 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_gconf - install GConf defaults files and register schemas
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>]
+
+=head1 DESCRIPTION
+
+B<dh_gconf> is a debhelper program that is responsible for installing GConf
+defaults files and registering GConf schemas.
+
+An appropriate dependency on gconf2 will be generated in B<${misc:Depends}>.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.gconf-defaults
+
+Installed into F<usr/share/gconf/defaults/10_package> in the package build
+directory, with I<package> replaced by the package name.
+
+=item debian/I<package>.gconf-mandatory
+
+Installed into F<usr/share/gconf/mandatory/10_package> in the package build
+directory, with I<package> replaced by the package name.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--priority> I<priority>
+
+Use I<priority> (which should be a 2-digit number) as the defaults
+priority instead of B<10>. Higher values than ten can be used by
+derived distributions (B<20>), CDD distributions (B<50>), or site-specific
+packages (B<90>).
+
+=back
+
+=cut
+
+init();
+
+my $priority=10;
+if (defined $dh{PRIORITY}) {
+ $priority=$dh{PRIORITY};
+}
+
+# PROMISE: DH NOOP WITHOUT gconf-mandatory gconf-defaults tmp(etc/gconf/schemas) tmp(usr/share/gconf/schemas)
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+
+ my $gconf_dep = 0;
+ my $mandatory = pkgfile($package, "gconf-mandatory");
+ if ($mandatory ne '') {
+ doit("mkdir","-p","$tmp/usr/share/gconf/mandatory");
+ doit("install","-p","-m644",$mandatory,"$tmp/usr/share/gconf/mandatory/${priority}_$package");
+ addsubstvar($package, "misc:Depends", "gconf2 (>= 2.28.1-2)");
+ $gconf_dep = 1;
+ }
+ my $defaults = pkgfile($package,"gconf-defaults");
+ if ($defaults ne '') {
+ doit("mkdir","-p","$tmp/usr/share/gconf/defaults");
+ doit("install","-p","-m644",$defaults,"$tmp/usr/share/gconf/defaults/${priority}_$package");
+ addsubstvar($package, "misc:Depends", "gconf2 (>= 2.28.1-2)") unless $gconf_dep;
+ $gconf_dep = 1;
+ }
+
+ my $old_schemas_dir = "$tmp/etc/gconf/schemas";
+ my $new_schemas_dir = "$tmp/usr/share/gconf/schemas";
+
+ # Migrate schemas from /etc/gconf/schemas to /usr/share/gconf/schemas
+ if (-d $old_schemas_dir) {
+ doit("mkdir -p $new_schemas_dir") unless -d $new_schemas_dir;
+ doit("mv $old_schemas_dir/*.schemas $new_schemas_dir/");
+ doit("rmdir -p --ignore-fail-on-non-empty $old_schemas_dir");
+ }
+
+ if (-d "$new_schemas_dir") {
+ # Get a list of the schemas
+ my $schemas = `find $new_schemas_dir -type f -name \\*.schemas -printf '%P '`;
+ if ($schemas ne '') {
+ addsubstvar($package, "misc:Depends", "gconf2 (>= 2.28.1-2)") unless $gconf_dep;
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Ross Burton <ross@burtonini.com>
+Josselin Mouette <joss@debian.org>
+
+=cut
diff --git a/dh_gencontrol b/dh_gencontrol
new file mode 100755
index 0000000..32b8563
--- /dev/null
+++ b/dh_gencontrol
@@ -0,0 +1,92 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_gencontrol - generate and install control file
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_gencontrol> [S<I<debhelper options>>] [S<B<--> I<params>>]
+
+=head1 DESCRIPTION
+
+B<dh_gencontrol> is a debhelper program that is responsible for generating
+control files, and installing them into the I<DEBIAN> directory with the
+proper permissions.
+
+This program is merely a wrapper around L<dpkg-gencontrol(1)>, which calls
+it once for each package being acted on, and passes in some additional
+useful flags.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--> I<params>
+
+Pass I<params> to L<dpkg-gencontrol(1)>.
+
+=item B<-u>I<params>, B<--dpkg-gencontrol-params=>I<params>
+
+This is another way to pass I<params> to L<dpkg-gencontrol(1)>.
+It is deprecated; use B<--> instead.
+
+=back
+
+=cut
+
+init(options => {
+ "dpkg-gencontrol-params=s", => \$dh{U_PARAMS},
+});
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ my $ext=pkgext($package);
+
+ my $substvars="debian/${ext}substvars";
+
+ my $changelog=pkgfile($package,'changelog');
+ if (! $changelog) {
+ $changelog='debian/changelog';
+ }
+
+ if ( ! -d "$tmp/DEBIAN" ) {
+ doit("install","-o",0,"-g",0,"-d","$tmp/DEBIAN");
+ }
+
+ # avoid gratuitous warning
+ if (! -e $substvars || system("grep -q '^misc:Depends=' $substvars") != 0) {
+ complex_doit("echo misc:Depends= >> $substvars");
+ }
+
+ # Generate and install control file.
+ my @command="dpkg-gencontrol";
+ if (getpackages() > 1) {
+ push @command, "-p$package";
+ }
+ doit(@command, "-l$changelog", "-T$substvars",
+ "-P$tmp",@{$dh{U_PARAMS}});
+
+ # This chmod is only necessary if the user sets the umask to
+ # something odd.
+ doit("chmod","644","$tmp/DEBIAN/control");
+
+ doit("chown","0:0","$tmp/DEBIAN/control");
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_icons b/dh_icons
new file mode 100755
index 0000000..916f188
--- /dev/null
+++ b/dh_icons
@@ -0,0 +1,83 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_icons - Update caches of Freedesktop icons
+
+=cut
+
+use strict;
+use File::Find;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_icons> [S<I<debhelper options>>] [B<-n>]
+
+=head1 DESCRIPTION
+
+B<dh_icons> is a debhelper program that updates caches of Freedesktop icons
+when needed, using the B<update-icon-caches> program provided by GTK+2.12.
+Currently this program does not handle installation of the files, though it
+may do so at a later date, so should be run after icons are installed in
+the package build directories.
+
+It takes care of adding maintainer script fragments to call
+B<update-icon-caches> for icon directories. (This is not done for gnome and
+hicolor icons, as those are handled by triggers.)
+These commands are inserted into the maintainer scripts by L<dh_installdeb(1)>.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-n>, B<--noscripts>
+
+Do not modify maintainer scripts.
+
+=back
+
+=cut
+
+init();
+
+# PROMISE: DH NOOP WITHOUT tmp(usr/share/icons)
+my $baseicondir="/usr/share/icons";
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ my $icondir="$tmp$baseicondir";
+ if (-d $icondir) {
+ my @dirlist;
+ opendir(DIRHANDLE, $icondir);
+ while (my $subdir = readdir(DIRHANDLE)) {
+ next if $subdir =~ /^\./;
+ next if $subdir eq "gnome";
+ next if $subdir eq "hicolor";
+ my $needs_cache = 0;
+ find sub {
+ $needs_cache = 1 if -f and (/\.png$/ or /\.svg$/ or /\.xpm$/ or /\.icon$/);
+ }, "$icondir/$subdir" ;
+ push @dirlist, "$baseicondir/$subdir" if $needs_cache;
+ }
+ if (@dirlist and ! $dh{NOSCRIPTS}) {
+ my $list=join(" ", @dirlist);
+ autoscript($package,"postinst","postinst-icons","s%#DIRLIST#%$list%");
+ autoscript($package,"postrm","postrm-icons","s%#DIRLIST#%$list%");
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Ross Burton <ross@burtonini.com>
+Jordi Mallach <jordi@debian.org>
+Josselin Mouette <joss@debian.org>
+
+=cut
diff --git a/dh_install b/dh_install
new file mode 100755
index 0000000..b89d7d1
--- /dev/null
+++ b/dh_install
@@ -0,0 +1,270 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_install - install files into package build directories
+
+=cut
+
+use strict;
+use File::Find;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_install> [B<-X>I<item>] [B<--autodest>] [B<--sourcedir=>I<dir>] [S<I<debhelper options>>] [S<I<file|dir> ... I<destdir>>]
+
+=head1 DESCRIPTION
+
+B<dh_install> is a debhelper program that handles installing files into package
+build directories. There are many B<dh_install>I<*> commands that handle installing
+specific types of files such as documentation, examples, man pages, and so on,
+and they should be used when possible as they often have extra intelligence for
+those particular tasks. B<dh_install>, then, is useful for installing everything
+else, for which no particular intelligence is needed. It is a replacement for
+the old B<dh_movefiles> command.
+
+This program may be used in one of two ways. If you just have a file or two
+that the upstream Makefile does not install for you, you can run B<dh_install>
+on them to move them into place. On the other hand, maybe you have a large
+package that builds multiple binary packages. You can use the upstream
+F<Makefile> to install it all into F<debian/tmp>, and then use B<dh_install> to copy
+directories and files from there into the proper package build directories.
+
+From debhelper compatibility level 7 on, B<dh_install> will fall back to
+looking in F<debian/tmp> for files, if it doesn't find them in the current
+directory (or whereever you've told it to look using B<--sourcedir>).
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.install
+
+List the files to install into each package and the directory they should be
+installed to. The format is a set of lines, where each line lists a file or
+files to install, and at the end of the line tells the directory it should be
+installed in. The name of the files (or directories) to install should be given
+relative to the current directory, while the installation directory is given
+relative to the package build directory. You may use wildcards in the names of
+the files to install (in v3 mode and above).
+
+Note that if you list exactly one filename or wildcard-pattern on a line by
+itself, with no explicit destination, then B<dh_install>
+will automatically guess the destination to use, the same as if the
+--autodest option were used.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--list-missing>
+
+This option makes B<dh_install> keep track of the files it installs, and then at
+the end, compare that list with the files in the source directory. If any of
+the files (and symlinks) in the source directory were not installed to
+somewhere, it will warn on stderr about that.
+
+This may be useful if you have a large package and want to make sure that
+you don't miss installing newly added files in new upstream releases.
+
+Note that files that are excluded from being moved via the B<-X> option are not
+warned about.
+
+=item B<--fail-missing>
+
+This option is like B<--list-missing>, except if a file was missed, it will
+not only list the missing files, but also fail with a nonzero exit code.
+
+=item B<-X>I<item>, B<--exclude=>I<item>
+
+Exclude files that contain I<item> anywhere in their filename from
+being installed.
+
+=item B<--sourcedir=>I<dir>
+
+Look in the specified directory for files to be installed.
+
+Note that this is not the same as the B<--sourcedirectory> option used
+by the B<dh_auto_>I<*> commands. You rarely need to use this option, since
+B<dh_install> automatically looks for files in F<debian/tmp> in debhelper
+compatibility level 7 and above.
+
+=item B<--autodest>
+
+Guess as the destination directory to install things to. If this is
+specified, you should not list destination directories in
+F<debian/package.install> files or on the command line. Instead, B<dh_install>
+will guess as follows:
+
+Strip off F<debian/tmp> (or the sourcedir if one is given) from the front of
+the filename, if it is present, and install into the dirname of the
+filename. So if the filename is F<debian/tmp/usr/bin>, then that directory
+will be copied to F<debian/package/usr/>. If the filename is
+F<debian/tmp/etc/passwd>, it will be copied to F<debian/package/etc/>.
+
+=item I<file|dir> ... I<destdir>
+
+Lists files (or directories) to install and where to install them to.
+The files will be installed into the first package F<dh_install> acts on.
+
+=back
+
+=cut
+
+init(options => {
+ "autodest" => \$dh{AUTODEST},
+ "list-missing" => \$dh{LIST_MISSING},
+ "fail-missing" => \$dh{FAIL_MISSING},
+ "sourcedir=s" => \$dh{SOURCEDIR},
+});
+
+my @installed;
+
+my $srcdir = '.';
+$srcdir = $dh{SOURCEDIR} if defined $dh{SOURCEDIR};
+
+# PROMISE: DH NOOP WITHOUT install
+
+foreach my $package (getpackages()) {
+ # Look at the install files for all packages to handle
+ # list-missing/fail-missing, but skip really installing for
+ # packages that are not being acted on.
+ my $skip_install=! grep { $_ eq $package } @{$dh{DOPACKAGES}};
+
+ my $tmp=tmpdir($package);
+ my $file=pkgfile($package,"install");
+
+ my @install;
+ if ($file) {
+ @install=filedoublearray($file); # no globbing here; done below
+ }
+
+ if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
+ push @install, [@ARGV];
+ }
+
+ # Support for -X flag.
+ my $exclude = '';
+ if ($dh{EXCLUDE_FIND}) {
+ $exclude = '! \( '.$dh{EXCLUDE_FIND}.' \)';
+ }
+
+ foreach my $set (@install) {
+ my $dest;
+ my $tmpdest=0;
+
+ if (! defined $dh{AUTODEST} && @$set > 1) {
+ $dest=pop @$set;
+ }
+
+ my @filelist;
+ foreach my $glob (@$set) {
+ my @found = glob "$srcdir/$glob";
+ if (! compat(6)) {
+ # Fall back to looking in debian/tmp.
+ if (! @found || ! (-e $found[0] || -l $found[0])) {
+ @found = glob "debian/tmp/$glob";
+ }
+ }
+ push @filelist, @found;
+ }
+
+ if (! compat(4)) { # check added in v5
+ if (! @filelist && ! $skip_install) {
+ error("$package missing files (@$set), aborting");
+ }
+ }
+
+ foreach my $src (@filelist) {
+ next if excludefile($src);
+
+ push @installed, $src;
+ next if $skip_install;
+
+ if (! defined $dest) {
+ # Guess at destination directory.
+ $dest=$src;
+ $dest=~s/^(.*\/)?\Q$srcdir\E\///;
+ $dest=~s/^(.*\/)?debian\/tmp\///;
+ $dest=dirname("/".$dest);
+ $tmpdest=1;
+ }
+
+ # Make sure the destination directory exists.
+ if (! -e "$tmp/$dest") {
+ doit("install","-d","$tmp/$dest");
+ }
+
+ if (-d $src && $exclude) {
+ my $basename = basename($src);
+ my $dir = ($basename eq '.') ? $src : "$src/..";
+ my $pwd=`pwd`;
+ chomp $pwd;
+ complex_doit("cd '$dir' && find '$basename' $exclude \\( -type f -or -type l \\) -print0 | xargs -0 -I {} cp --parents -dp {} $pwd/$tmp/$dest/");
+ # cp is annoying so I need a separate pass
+ # just for empty directories
+ complex_doit("cd '$dir' && find '$basename' $exclude \\( -type d -and -empty \\) -print0 | xargs -0 -I {} cp --parents -a {} $pwd/$tmp/$dest/");
+ }
+ else {
+ doit("cp", "-a", $src, "$tmp/$dest/");
+ }
+
+ if ($tmpdest) {
+ $dest=undef;
+ }
+ }
+ }
+}
+
+if ($dh{LIST_MISSING} || $dh{FAIL_MISSING}) {
+ # . as srcdir makes no sense, so this is a special case.
+ if ($srcdir eq '.') {
+ $srcdir='debian/tmp';
+ }
+
+ my @missing;
+ my $installed=join("|", map {
+ # Kill any extra slashes, for robustness.
+ y:/:/:s;
+ s:/+$::;
+ s:^(\./)*::;
+ "\Q$_\E\/.*|\Q$_\E";
+ } @installed);
+ $installed=qr{^($installed)$};
+ find(sub {
+ -f || -l || return;
+ $_="$File::Find::dir/$_";
+ if (! /$installed/ && ! excludefile($_)) {
+ my $file=$_;
+ $file=~s/^\Q$srcdir\E\///;
+ push @missing, $file;
+ }
+ }, $srcdir);
+ if (@missing) {
+ warning "$_ exists in $srcdir but is not installed to anywhere" foreach @missing;
+ if ($dh{FAIL_MISSING}) {
+ error("missing files, aborting");
+ }
+ }
+}
+
+=head1 LIMITATIONS
+
+B<dh_install> cannot rename files or directories, it can only install them
+with the names they already have into wherever you want in the package
+build tree.
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_installcatalogs b/dh_installcatalogs
new file mode 100755
index 0000000..f65ab7c
--- /dev/null
+++ b/dh_installcatalogs
@@ -0,0 +1,132 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installcatalogs - install and register SGML Catalogs
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+my $sgmlbasever = "1.26+nmu2";
+
+=head1 SYNOPSIS
+
+B<dh_installcatalogs> [S<I<debhelper options>>] [B<-n>]
+
+=head1 DESCRIPTION
+
+B<dh_installcatalogs> is a debhelper program that installs and
+registers SGML catalogs. It complies with the Debian XML/SGML policy.
+
+Catalogs will be registered in a supercatalog, in
+F</etc/sgml/I<package>.cat>.
+
+This command automatically adds maintainer script snippets for
+registering and unregistering the catalogs and supercatalogs (unless
+B<-n> is used). These snippets are inserted into the maintainer scripts
+by B<dh_installdeb>; see L<dh_installdeb(1)> for an explanation of
+Debhelper maintainer script snippets.
+
+A dependency on B<sgml-base> will be added to B<${misc:Depends}>, so be
+sure your package uses that variable in F<debian/control>.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.sgmlcatalogs
+
+Lists the catalogs to be installed per package. Each line in that file
+should be of the form C<I<source> I<dest>>, where I<source> indicates where the
+catalog resides in the source tree, and I<dest> indicates the destination
+location for the catalog under the package build area. I<dest> should
+start with F</usr/share/sgml/>.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-n>, B<--noscripts>
+
+Do not modify F<postinst>/F<postrm>/F<prerm> scripts.
+
+=back
+
+=head1 NOTES
+
+Note that this command is not idempotent. L<dh_prep(1)> should be
+called between invocations of this command. Otherwise, it may cause
+multiple instances of the same text to be added to maintainer scripts.
+
+=cut
+
+init();
+
+# PROMISE: DH NOOP WITHOUT sgmlcatalogs
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmpdir = tmpdir($package);
+ my $sgmlcatlistfile = pkgfile($package, "sgmlcatalogs");
+ my @sgmlinstalled; # catalogs we've installed
+ if ($#ARGV >= 0) {
+ error("extra command-line arguments");
+ }
+ if ($sgmlcatlistfile) {
+ foreach my $line (filedoublearray($sgmlcatlistfile)) {
+ my $source = $line->[0];
+ my $dest = $line->[1];
+ my $fulldest = "$tmpdir/$dest";
+ $fulldest =~ s|//|/|g; # beautification
+
+ if (! -d dirname($fulldest)) {
+ doit("install","-d","-m755",$tmpdir."/".dirname($dest));
+ }
+
+ doit("install","-p","-m644",$source,$fulldest);
+
+ push(@sgmlinstalled,$dest);
+ }
+ }
+ if (@sgmlinstalled) {
+ addsubstvar($package, "misc:Depends", "sgml-base", ">= $sgmlbasever");
+
+ if (! -d "$tmpdir/etc/sgml") {
+ doit("install","-d","-m755","$tmpdir/etc/sgml");
+ }
+
+ my $centralcat = "/etc/sgml/$package.cat";
+
+ open(CENTRALCAT, ">", "$tmpdir$centralcat") || error("failed to write to $tmpdir$centralcat");
+ foreach my $sgmldest (@sgmlinstalled) {
+ print CENTRALCAT "CATALOG " . $sgmldest . "\n";
+ }
+ close CENTRALCAT;
+
+ if (! $dh{NOSCRIPTS}) {
+ autoscript($package, "preinst", "preinst-sgmlcatalog",
+ "s%#CENTRALCAT#%$centralcat%g;");
+ autoscript($package, "postrm", "postrm-sgmlcatalog",
+ "s%#CENTRALCAT#%$centralcat%g;");
+ }
+ }
+ else {
+ # remove the dependency
+ addsubstvar($package, "misc:Depends", "sgml-base", ">= $sgmlbasever", 1);
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+F</usr/share/doc/sgml-base-doc/>
+
+=head1 AUTHOR
+
+Adam Di Carlo <aph@debian.org>
+
+=cut
diff --git a/dh_installchangelogs b/dh_installchangelogs
new file mode 100755
index 0000000..2f65f8a
--- /dev/null
+++ b/dh_installchangelogs
@@ -0,0 +1,249 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installchangelogs - install changelogs into package build directories
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installchangelogs> [S<I<debhelper options>>] [B<-k>] [B<-X>I<item>] [I<upstream>]
+
+=head1 DESCRIPTION
+
+B<dh_installchangelogs> is a debhelper program that is responsible for
+installing changelogs into package build directories.
+
+An upstream F<changelog> file may be specified as an option. If none is
+specified, it looks for files with names that seem likely to be changelogs.
+(In compatibility level 7 and above.)
+
+If there is an upstream F<changelog> file, it will be be installed as
+F<usr/share/doc/package/changelog> in the package build directory.
+
+If the upstream changelog is is a F<html> file (determined by file
+extension), it will be installed as F<usr/share/doc/package/changelog.html>
+instead. If the html changelog is converted to plain text, that variant
+can be specified as a second upstream changelog file. When no plain
+text variant is specified, a short F<usr/share/doc/package/changelog>
+is generated, pointing readers at the html changelog file.
+
+=head1 FILES
+
+=over 4
+
+=item F<debian/changelog>
+
+=item F<debian/NEWS>
+
+=item debian/I<package>.changelog
+
+=item debian/I<package>.NEWS
+
+Automatically installed into usr/share/doc/I<package>/
+in the package build directory.
+
+Use the package specific name if I<package> needs a different
+F<NEWS> or F<changelog> file.
+
+The F<changelog> file is installed with a name of changelog
+for native packages, and F<changelog.Debian> for non-native packages.
+The F<NEWS> file is always installed with a name of F<NEWS.Debian>.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-k>, B<--keep>
+
+Keep the original name of the upstream changelog. This will be accomplished
+by installing the upstream changelog as F<changelog>, and making a symlink from
+that to the original name of the F<changelog> file. This can be useful if the
+upstream changelog has an unusual name, or if other documentation in the
+package refers to the F<changelog> file.
+
+=item B<-X>I<item>, B<--exclude=>I<item>
+
+Exclude upstream F<changelog> files that contain I<item> anywhere in their
+filename from being installed.
+
+=item I<upstream>
+
+Install this file as the upstream changelog.
+
+=back
+
+=cut
+
+# For binNMUs the first changelog entry is written into an extra file to
+# keep the packages coinstallable.
+sub install_binNMU_changelog {
+ my ($package, $input_fn, $changelog_name)=@_;
+
+ open (my $input, "<", $input_fn);
+ my $line=<$input>;
+ if (defined $line && $line =~ /\A\S.*;.*\bbinary-only=yes/) {
+ my $mask=umask 0022;
+
+ my @stat=stat $input_fn or error("could not stat $input_fn: $!");
+ my $tmp=tmpdir($package);
+ my $output_fn="$tmp/usr/share/doc/$package/$changelog_name";
+ open my $output, ">", $output_fn
+ or error("could not open $output_fn for writing: $!");
+ my $arch=package_arch($package);
+ my $output_fn_binary="$output_fn.$arch";
+ open my $output_binary, ">", $output_fn_binary
+ or error("could not open $output_fn_binary for writing: $!");
+
+ do {
+ print {$output_binary} $line
+ or error("Could not write to $output_fn_binary: $!");
+ } while(defined($line=<$input>) && $line !~ /\A\S/);
+ close $output_binary or error("Couldn't close $output_fn_binary: $!");
+ utime $stat[8], $stat[9], $output_fn_binary;
+
+ do {
+ print {$output} $line
+ or error("Could not write to $output_fn: $!");
+ } while(defined($line=<$input>));
+
+ close $input or error("Couldn't close $input_fn: $!");
+ close $output or error("Couldn't close $output_fn: $!");
+ utime $stat[8], $stat[9], $output_fn;
+
+ chown 0, 0, $output_fn, $output_fn_binary
+ or error "chown: $!";
+
+ umask $mask;
+
+ return 1;
+ }
+ else {
+ close $input;
+ return 0;
+ }
+}
+
+init();
+
+my $news_name="NEWS.Debian";
+my $changelog_name="changelog.Debian";
+
+my $upstream=shift;
+my $upstream_text=$upstream;
+my $upstream_html;
+if (! defined $upstream) {
+ if (! isnative($dh{MAINPACKAGE}) && !compat(6)) {
+ foreach my $dir (qw{. doc docs}) {
+ my @files=sort glob("$dir/*");
+ foreach my $name (qw{changelog changes changelog.txt changes.txt history history.txt changelog.md}) {
+ my @matches=grep {
+ lc basename($_) eq $name && -s $_ && ! excludefile($_)
+ } @files;
+ if (@matches) {
+ $upstream=shift @matches;
+ $upstream_text=$upstream;
+ last;
+ }
+ }
+ }
+ }
+ if (isnative($dh{MAINPACKAGE})) {
+ $changelog_name='changelog';
+ }
+}
+elsif ($upstream=~m/\.html?$/i) {
+ $upstream_html=$upstream;
+ $upstream_text=shift;
+}
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ next if is_udeb($package);
+
+ my $tmp=tmpdir($package);
+ my $changelog=pkgfile($package,"changelog");
+ my $news=pkgfile($package,"NEWS");
+
+ if (!$changelog) {
+ $changelog="debian/changelog";
+ }
+ if (!$news) {
+ $news="debian/NEWS";
+ }
+
+ if (! -e $changelog) {
+ error("could not find changelog $changelog");
+ }
+
+ # If it is a symlink to a documentation directory from the same
+ # source package, then don't do anything. Think multi-binary
+ # packages that depend on each other and want to link doc dirs.
+ if (-l "$tmp/usr/share/doc/$package") {
+ my $linkval=readlink("$tmp/usr/share/doc/$package");
+ my %allpackages=map { $_ => 1 } getpackages();
+ if ($allpackages{basename($linkval)}) {
+ next;
+ }
+ # Even if the target doesn't seem to be a doc dir from the
+ # same source package, don't do anything if it's a dangling
+ # symlink.
+ next unless -d "$tmp/usr/share/doc/$package";
+ }
+
+ if (! -d "$tmp/usr/share/doc/$package") {
+ doit("install","-d","$tmp/usr/share/doc/$package");
+ }
+
+ if (! install_binNMU_changelog($package, $changelog, $changelog_name)) {
+ doit("install","-o",0,"-g",0,"-p","-m644",$changelog,
+ "$tmp/usr/share/doc/$package/$changelog_name");
+ }
+
+ if (-e $news) {
+ doit("install","-o",0,"-g",0,"-p","-m644",$news,
+ "$tmp/usr/share/doc/$package/$news_name");
+ }
+
+ if (defined $upstream) {
+ my $link_to;
+ my $base="$tmp/usr/share/doc/$package";
+ if (defined $upstream_text) {
+ doit("install","-o",0,"-g",0,"-p","-m644",
+ $upstream_text,"$base/changelog");
+ $link_to='changelog';
+ }
+ if (defined $upstream_html) {
+ doit("install","-o",0,"-g",0,"-p","-m644",
+ $upstream_html,"$base/changelog.html");
+ $link_to='changelog.html';
+ if (! defined $upstream_text) {
+ complex_doit("echo 'See changelog.html.gz' > $base/changelog");
+ doit("chmod","644","$base/changelog");
+ doit("chown","0:0","$base/changelog");
+ }
+ }
+ if ($dh{K_FLAG}) {
+ # Install symlink to original name of the upstream changelog file.
+ # Use basename in case original file was in a subdirectory or something.
+ doit("ln","-sf",$link_to,"$tmp/usr/share/doc/$package/".basename($upstream));
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_installcron b/dh_installcron
new file mode 100755
index 0000000..5e5851c
--- /dev/null
+++ b/dh_installcron
@@ -0,0 +1,89 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installcron - install cron scripts into etc/cron.*
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installcron> [S<B<debhelper options>>] [B<--name=>I<name>]
+
+=head1 DESCRIPTION
+
+B<dh_installcron> is a debhelper program that is responsible for installing
+cron scripts.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.cron.daily
+
+=item debian/I<package>.cron.weekly
+
+=item debian/I<package>.cron.monthly
+
+=item debian/I<package>.cron.hourly
+
+=item debian/I<package>.cron.d
+
+Installed into the appropriate F<etc/cron.*/> directory in the package
+build directory.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--name=>I<name>
+
+Look for files named F<debian/package.name.cron.*> and install them as
+F<etc/cron.*/name>, instead of using the usual files and installing them
+as the package name.
+
+=back
+
+=cut
+
+init();
+
+# PROMISE: DH NOOP WITHOUT cron.hourly cron.daily cron.weekly cron.monthly cron.d
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ foreach my $type (qw{hourly daily weekly monthly}) {
+ my $cron=pkgfile($package,"cron.$type");
+ if ($cron) {
+ if (! -d "$tmp/etc/cron.$type") {
+ doit("install","-o",0,"-g",0,"-d","$tmp/etc/cron.$type");
+ }
+ doit("install",$cron,"$tmp/etc/cron.$type/".pkgfilename($package));
+ }
+ }
+ # Seperate because this needs to be mode 644.
+ my $cron=pkgfile($package,"cron.d");
+ if ($cron) {
+ if (! -d "$tmp/etc/cron.d") {
+ doit("install","-o",0,"-g",0,"-d","$tmp/etc/cron.d");
+ }
+ doit("install","-m",644,$cron,"$tmp/etc/cron.d/".pkgfilename($package));
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_installdeb b/dh_installdeb
new file mode 100755
index 0000000..e233170
--- /dev/null
+++ b/dh_installdeb
@@ -0,0 +1,150 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installdeb - install files into the DEBIAN directory
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installdeb> [S<I<debhelper options>>]
+
+=head1 DESCRIPTION
+
+B<dh_installdeb> is a debhelper program that is responsible for installing
+files into the F<DEBIAN> directories in package build directories with the
+correct permissions.
+
+=head1 FILES
+
+=over 4
+
+=item I<package>.postinst
+
+=item I<package>.preinst
+
+=item I<package>.postrm
+
+=item I<package>.prerm
+
+These maintainer scripts are installed into the F<DEBIAN> directory.
+
+Inside the scripts, the token B<#DEBHELPER#> is replaced with
+shell script snippets generated by other debhelper commands.
+
+=item I<package>.triggers
+
+=item I<package>.shlibs
+
+These control files are installed into the F<DEBIAN> directory.
+
+=item I<package>.conffiles
+
+This control file will be installed into the F<DEBIAN> directory.
+
+In v3 compatibility mode and higher, all files in the F<etc/> directory in a
+package will automatically be flagged as conffiles by this program, so
+there is no need to list them manually here.
+
+=item I<package>.maintscript
+
+Lines in this file correspond to L<dpkg-maintscript-helper(1)> commands and
+parameters. Any shell metacharacters will be escaped, so arbitrary shell
+code cannot be inserted here. For example, a line such as C<mv_conffile
+/etc/oldconffile /etc/newconffile> will insert maintainer script snippets
+into all maintainer scripts sufficient to move that conffile.
+
+=back
+
+=cut
+
+init();
+
+# dpkg-maintscript-helper commands with their associated dpkg pre-dependency
+# versions.
+my %maintscript_predeps = (
+ "rm_conffile" => "",
+ "mv_conffile" => "",
+);
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+
+ if (! -d "$tmp/DEBIAN") {
+ doit("install","-o",0,"-g",0,"-d","$tmp/DEBIAN");
+ }
+
+ if (is_udeb($package)) {
+ # For udebs, only do the postinst, and no #DEBHELPER#.
+ # Udebs also support menutest and isinstallable scripts.
+ foreach my $script (qw{postinst menutest isinstallable}) {
+ my $f=pkgfile($package,$script);
+ if ($f) {
+ doit("install", "-o", 0, "-g", 0, "-m", 755,
+ $f, "$tmp/DEBIAN/$script");
+ }
+ }
+
+ # stop here for udebs
+ next;
+ }
+
+ 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);
+ foreach my $script (qw{postinst preinst prerm postrm}) {
+ autoscript($package, $script, "maintscript-helper",
+ "s!#PARAMS#!$params!g");
+ }
+ }
+ }
+
+ # Install debian scripts.
+ foreach my $script (qw{postinst preinst prerm postrm}) {
+ debhelper_script_subst($package, $script);
+ }
+
+ # Install non-executable files
+ foreach my $file (qw{shlibs conffiles triggers}) {
+ my $f=pkgfile($package,$file);
+ if ($f) {
+ doit("install","-o",0,"-g",0,"-m",644,"-p",$f,"$tmp/DEBIAN/$file");
+ }
+ }
+
+ # Automatic conffiles registration: If it is in /etc, it is a
+ # conffile.
+ if (! compat(2) && -d "$tmp/etc") {
+ complex_doit("find $tmp/etc -type f -printf '/etc/%P\n' >> $tmp/DEBIAN/conffiles");
+ # Anything found?
+ if (-z "$tmp/DEBIAN/conffiles") {
+ doit("rm", "-f", "$tmp/DEBIAN/conffiles");
+ }
+ else {
+ doit("chmod", 644, "$tmp/DEBIAN/conffiles");
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_installdebconf b/dh_installdebconf
new file mode 100755
index 0000000..3eac7c9
--- /dev/null
+++ b/dh_installdebconf
@@ -0,0 +1,138 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installdebconf - install files used by debconf in package build directories
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installdebconf> [S<I<debhelper options>>] [B<-n>] [S<B<--> I<params>>]
+
+=head1 DESCRIPTION
+
+B<dh_installdebconf> is a debhelper program that is responsible for installing
+files used by debconf into package build directories.
+
+It also automatically generates the F<postrm> commands needed to interface
+with debconf. The commands are added to the maintainer scripts by
+B<dh_installdeb>. See L<dh_installdeb(1)> for an explanation of how that
+works.
+
+Note that if you use debconf, your package probably needs to depend on it
+(it will be added to B<${misc:Depends}> by this program).
+
+Note that for your config script to be called by B<dpkg>, your F<postinst>
+needs to source debconf's confmodule. B<dh_installdebconf> does not
+install this statement into the F<postinst> automatically as it is too
+hard to do it right.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.config
+
+This is the debconf F<config> script, and is installed into the F<DEBIAN>
+directory in the package build directory.
+
+Inside the script, the token B<#DEBHELPER#> is replaced with
+shell script snippets generated by other debhelper commands.
+
+=item debian/I<package>.templates
+
+This is the debconf F<templates> file, and is installed into the F<DEBIAN>
+directory in the package build directory.
+
+=item F<debian/po/>
+
+If this directory is present, this program will automatically use
+L<po2debconf(1)> to generate merged templates
+files that include the translations from there.
+
+For this to work, your package should build-depend on F<po-debconf>.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-n>, B<--noscripts>
+
+Do not modify F<postrm> script.
+
+=item B<--> I<params>
+
+Pass the params to B<po2debconf>.
+
+=back
+
+=cut
+
+init();
+
+my @extraparams;
+if (defined($dh{U_PARAMS})) {
+ @extraparams=@{$dh{U_PARAMS}};
+}
+
+# PROMISE: DH NOOP WITHOUT config templates
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ my $config=pkgfile($package,"config");
+ my $templates=pkgfile($package,"templates");
+
+ if (! -d "$tmp/DEBIAN") {
+ doit("install","-o",0,"-g",0,"-d","$tmp/DEBIAN");
+ }
+
+ if (! is_udeb($package)) {
+ debhelper_script_subst($package, "config");
+ }
+
+ if ($templates ne '') {
+ # Are there old-style translated templates?
+ if (glob("$templates.??"), glob("$templates.??_??")) {
+ warning "Ignoring debian/templates.ll files. Switch to po-debconf!";
+ }
+
+ umask(0022); # since I do a redirect below
+
+ if (-d "debian/po") {
+ complex_doit("po2debconf @extraparams $templates > $tmp/DEBIAN/templates");
+ }
+ else {
+ doit("install", "-o", 0, "-g", 0, "-m", 644, "-p",
+ $templates, "$tmp/DEBIAN/templates");
+ }
+ }
+
+ # I'm going with debconf 0.5 because it was the first
+ # "modern" one. udebs just need cdebconf.
+ my $debconfdep=is_udeb($package) ? "cdebconf-udeb" : "debconf (>= 0.5) | debconf-2.0";
+ if ($config ne '' || $templates ne '') {
+ addsubstvar($package, "misc:Depends", $debconfdep);
+ }
+
+ if (($config ne '' || $templates ne '') && ! $dh{NOSCRIPTS}) {
+ autoscript($package,"postrm","postrm-debconf");
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_installdirs b/dh_installdirs
new file mode 100755
index 0000000..fe5683d
--- /dev/null
+++ b/dh_installdirs
@@ -0,0 +1,98 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installdirs - create subdirectories in package build directories
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installdirs> [S<I<debhelper options>>] [B<-A>] [S<I<dir> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_installdirs> is a debhelper program that is responsible for creating
+subdirectories in package build directories.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.dirs
+
+Lists directories to be created in I<package>.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-A>, B<--all>
+
+Create any directories specified by command line parameters in ALL packages
+acted on, not just the first.
+
+=item I<dir> ...
+
+Create these directories in the package build directory of the first
+package acted on. (Or in all packages if B<-A> is specified.)
+
+=back
+
+=cut
+
+init();
+
+# PROMISE: DH NOOP WITHOUT dirs
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ my $file=pkgfile($package,"dirs");
+
+ if (! -e $tmp) {
+ doit("install","-d",$tmp);
+ }
+
+ my @dirs;
+
+ if ($file) {
+ @dirs=filearray($file)
+ }
+
+ if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
+ push @dirs, @ARGV;
+ }
+
+ if (@dirs) {
+ # Stick the $tmp onto the front of all the dirs.
+ # This is necessary, for 2 reasons, one to make them
+ # be in the right directory, but more importantly, it
+ # protects against the danger of absolute dirs being
+ # specified.
+ @dirs=map {
+ $_="$tmp/$_";
+ tr:/:/:s; # just beautification.
+ $_
+ } @dirs;
+
+ # Create dirs.
+ doit("install","-d",@dirs);
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_installdocs b/dh_installdocs
new file mode 100755
index 0000000..e835ff6
--- /dev/null
+++ b/dh_installdocs
@@ -0,0 +1,344 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installdocs - install documentation into package build directories
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installdocs> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<file> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_installdocs> is a debhelper program that is responsible for installing
+documentation into F<usr/share/doc/package> in package build directories.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.docs
+
+List documentation files to be installed into I<package>.
+
+=item F<debian/copyright>
+
+The copyright file is installed into all packages, unless a more
+specific copyright file is available.
+
+=item debian/I<package>.copyright
+
+=item debian/I<package>.README.Debian
+
+=item debian/I<package>.TODO
+
+Each of these files is automatically installed if present for a
+I<package>.
+
+=item F<debian/README.Debian>
+
+=item F<debian/TODO>
+
+These files are installed into the first binary package listed in
+debian/control.
+
+Note that F<README.debian> files are also installed as F<README.Debian>,
+and F<TODO> files will be installed as F<TODO.Debian> in non-native packages.
+
+=item debian/I<package>.doc-base
+
+Installed as doc-base control files. Note that the doc-id will be
+determined from the B<Document:> entry in the doc-base control file in
+question. In the event that multiple doc-base files in a single source
+package share the same doc-id, they will be installed to
+usr/share/doc-base/package instead of usr/share/doc-base/doc-id.
+
+=item debian/I<package>.doc-base.*
+
+If your package needs to register more than one document, you need
+multiple doc-base files, and can name them like this. In the event
+that multiple doc-base files of this style in a single source package
+share the same doc-id, they will be installed to
+usr/share/doc-base/package-* instead of usr/share/doc-base/doc-id.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-A>, B<--all>
+
+Install all files specified by command line parameters in ALL packages
+acted on.
+
+=item B<-X>I<item>, B<--exclude=>I<item>
+
+Exclude files that contain I<item> anywhere in their filename from
+being installed. Note that this includes doc-base files.
+
+=item B<--link-doc=>I<package>
+
+Make the documentation directory of all packages acted on be a symlink to
+the documentation directory of I<package>. This has no effect when acting on
+I<package> itself, or if the documentation directory to be created already
+exists when B<dh_installdocs> is run. To comply with policy, I<package> must
+be a binary package that comes from the same source package.
+
+debhelper will try to avoid installing files into linked documentation
+directories that would cause conflicts with the linked package. The B<-A>
+option will have no effect on packages with linked documentation
+directories, and F<copyright>, F<changelog>, F<README.Debian>, and F<TODO> files will
+not be installed.
+
+(An older method to accomplish the same thing, which is still supported,
+is to make the documentation directory of a package be a dangling symlink,
+before calling B<dh_installdocs>.)
+
+=item I<file> ...
+
+Install these files as documentation into the first package acted on. (Or
+in all packages if B<-A> is specified).
+
+=back
+
+=head1 EXAMPLES
+
+This is an example of a F<debian/package.docs> file:
+
+ README
+ TODO
+ debian/notes-for-maintainers.txt
+ docs/manual.txt
+ docs/manual.pdf
+ docs/manual-html/
+
+=head1 NOTES
+
+Note that B<dh_installdocs> will happily copy entire directory hierarchies if
+you ask it to (similar to B<cp -a>). If it is asked to install a
+directory, it will install the complete contents of the directory.
+
+Note that this command is not idempotent. L<dh_prep(1)> should be called
+between invocations of this command. Otherwise, it may cause multiple
+instances of the same text to be added to maintainer scripts.
+
+=cut
+
+my %docdir_created;
+# Create documentation directories on demand. This allows us to use dangling
+# symlinks for linked documentation directories unless additional files need
+# to be installed.
+sub ensure_docdir {
+ my $package=shift;
+ return if $docdir_created{$package};
+ my $tmp=tmpdir($package);
+
+ my $target;
+ if ($dh{LINK_DOC} && $dh{LINK_DOC} ne $package) {
+ $target="$tmp/usr/share/doc/$dh{LINK_DOC}";
+ }
+ else {
+ $target="$tmp/usr/share/doc/$package";
+ }
+
+ # If this is a symlink, leave it alone.
+ if (! -d $target && ! -l $target) {
+ doit("install","-g",0,"-o",0,"-d",$target);
+ }
+ $docdir_created{$package}=1;
+}
+
+init(options => {
+ "link-doc=s" => \$dh{LINK_DOC},
+});
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ next if is_udeb($package);
+
+ my $tmp=tmpdir($package);
+ my $file=pkgfile($package,"docs");
+ my $link_doc=($dh{LINK_DOC} && $dh{LINK_DOC} ne $package);
+
+ if ($link_doc) {
+ # Make sure that the parent directory exists.
+ if (! -d "$tmp/usr/share/doc" && ! -l "$tmp/usr/share/doc") {
+ doit("install","-g",0,"-o",0,"-d","$tmp/usr/share/doc");
+ }
+ # Create symlink to another documentation directory if
+ # necessary.
+ if (! -d "$tmp/usr/share/doc/$package" &&
+ ! -l "$tmp/usr/share/doc/$package") {
+ doit("ln", "-sf", $dh{LINK_DOC}, "$tmp/usr/share/doc/$package");
+ # Policy says that if you make your documentation
+ # directory a symlink, then you have to depend on
+ # the target.
+ addsubstvar($package, "misc:Depends", $dh{LINK_DOC});
+ }
+ }
+ else {
+ ensure_docdir($package);
+ }
+
+ my @docs;
+
+ if ($file) {
+ @docs=filearray($file, ".");
+ }
+
+ if (($package eq $dh{FIRSTPACKAGE} || ($dh{PARAMS_ALL} && ! $link_doc)) && @ARGV) {
+ push @docs, @ARGV;
+ }
+
+ if (@docs) {
+ my $exclude = '';
+ if ($dh{EXCLUDE_FIND}) {
+ $exclude .= ' -and ! \( '.$dh{EXCLUDE_FIND}.' \)';
+ }
+ if (! compat(4)) {
+ # ignore empty files in subdirs
+ $exclude .= ' -and ! -empty';
+ }
+ foreach my $doc (@docs) {
+ next if excludefile($doc);
+ next if -e $doc && ! -s $doc && ! compat(4); # ignore empty files
+ ensure_docdir($package);
+ if (-d $doc && length $exclude) {
+ my $basename = basename($doc);
+ my $dir = ($basename eq '.') ? $doc : "$doc/..";
+ my $pwd=`pwd`;
+ chomp $pwd;
+ my $docdir = "$pwd/$tmp/usr/share/doc/$package";
+ complex_doit("cd '$dir' && find '$basename' \\( -type f -or -type l \\)$exclude -print0 | xargs -0 -I {} cp --parents -dp {} $docdir");
+ }
+ else {
+ doit("cp", "-a", $doc, "$tmp/usr/share/doc/$package");
+ }
+ }
+ doit("chown","-R","0:0","$tmp/usr/share/doc");
+ doit("chmod","-R","go=rX","$tmp/usr/share/doc");
+ doit("chmod","-R","u+rw","$tmp/usr/share/doc");
+ }
+
+ # .Debian is correct, according to policy, but I'm easy.
+ my $readme_debian=pkgfile($package,'README.Debian');
+ if (! $readme_debian) {
+ $readme_debian=pkgfile($package,'README.debian');
+ }
+ if (! $link_doc && $readme_debian && ! excludefile($readme_debian)) {
+ ensure_docdir($package);
+ doit("install","-g",0,"-o",0,"-m","644","-p","$readme_debian",
+ "$tmp/usr/share/doc/$package/README.Debian");
+ }
+
+ my $todo=pkgfile($package,'TODO');
+ if (! $link_doc && $todo && ! excludefile($todo)) {
+ ensure_docdir($package);
+ if (isnative($package)) {
+ doit("install","-g",0,"-o",0,"-m","644","-p",$todo,
+ "$tmp/usr/share/doc/$package/TODO");
+ }
+ else {
+ doit("install","-g",0,"-o",0,"-m","644","-p",$todo,
+ "$tmp/usr/share/doc/$package/TODO.Debian");
+ }
+ }
+
+ # If the "directory" is a dangling symlink, then don't install
+ # the copyright file. This is useful for multibinary packages
+ # that share a doc directory.
+ if (! $link_doc && (! -l "$tmp/usr/share/doc/$package" || -d "$tmp/usr/share/doc/$package")) {
+ # Support debian/package.copyright, but if not present, fall
+ # back on debian/copyright for all packages, not just the
+ # main binary package.
+ my $copyright=pkgfile($package,'copyright');
+ if (! $copyright && -e "debian/copyright") {
+ $copyright="debian/copyright";
+ }
+ if ($copyright && ! excludefile($copyright)) {
+ ensure_docdir($package);
+ doit("install","-g",0,"-o",0,"-m","644","-p",$copyright,
+ "$tmp/usr/share/doc/$package/copyright");
+ }
+ }
+
+ # Handle doc-base files. There are two filename formats, the usual
+ # plus an extended format (debian/package.*).
+ my %doc_ids;
+
+ opendir(DEB,"debian/") || error("can't read debian directory: $!");
+ # If this is the main package, we need to handle unprefixed filenames.
+ # For all packages, we must support both the usual filename format plus
+ # that format with a period an something appended.
+ my $regexp="\Q$package\E\.";
+ if ($package eq $dh{MAINPACKAGE}) {
+ $regexp="(|$regexp)";
+ }
+ foreach my $fn (grep {/^${regexp}doc-base(\..*)?$/} readdir(DEB)) {
+ # .EX are example files, generated by eg, dh-make
+ next if $fn=~/\.EX$/;
+ next if excludefile($fn);
+ # Parse the file to get the doc id.
+ open (IN, "debian/$fn") || die "Cannot read debian/$fn.";
+ while (<IN>) {
+ s/\s*$//;
+ if (/^Document\s*:\s*(.*)/) {
+ $doc_ids{$fn}=$1;
+ last;
+ }
+ }
+ if (! exists $doc_ids{$fn}) {
+ warning("Could not parse $fn for doc-base Document id; skipping");
+ }
+ close IN;
+ }
+ closedir(DEB);
+
+ if (%doc_ids) {
+ if (! -d "$tmp/usr/share/doc-base/") {
+ doit("install","-g",0,"-o",0,"-d","$tmp/usr/share/doc-base/");
+ }
+ }
+ # check for duplicate document ids
+ my %used_doc_ids;
+ for my $fn (keys %doc_ids) {
+ $used_doc_ids{$doc_ids{$fn}}++;
+ }
+ foreach my $fn (keys %doc_ids) {
+ # if this document ID is duplicated, we will install
+ # to usr/share/doc-base/packagename instead of
+ # usr/share/doc-base/doc_id. To allow for multiple
+ # conflicting doc-bases in a single package, we will
+ # install to usr/share/doc-base/packagename-extrabits
+ # if the doc-base file is
+ # packagename.doc-base.extrabits
+ if ($used_doc_ids{$doc_ids{$fn}} > 1) {
+ my $fn_no_docbase = $fn;
+ $fn_no_docbase =~ s/\.doc-base(?:\.(.*))?/
+ if (defined $1 and length $1) {"-$1"} else {''}/xe;
+ doit("install","-g",0,"-o",0,"-m644","-p","debian/$fn",
+ "$tmp/usr/share/doc-base/$fn_no_docbase");
+ }
+ else {
+ doit("install","-g",0,"-o",0,"-m644","-p","debian/$fn",
+ "$tmp/usr/share/doc-base/$doc_ids{$fn}");
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_installemacsen b/dh_installemacsen
new file mode 100755
index 0000000..92037f2
--- /dev/null
+++ b/dh_installemacsen
@@ -0,0 +1,136 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installemacsen - register an Emacs add on package
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installemacsen> [S<I<debhelper options>>] [B<-n>] [B<--priority=>I<n>] [B<--flavor=>I<foo>]
+
+=head1 DESCRIPTION
+
+B<dh_installemacsen> is a debhelper program that is responsible for installing
+files used by the Debian B<emacsen-common> package into package build
+directories.
+
+It also automatically generates the F<postinst> and F<prerm> commands needed to
+register a package as an Emacs add on package. The commands are added to
+the maintainer scripts by B<dh_installdeb>. See L<dh_installdeb(1)>
+for an explanation of how this works.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.emacsen-install
+
+Installed into F<usr/lib/emacsen-common/packages/install/package> in the
+package build directory.
+
+=item debian/I<package>.emacsen-remove
+
+Installed into F<usr/lib/emacsen-common/packages/remove/package> in the
+package build directory.
+
+=item debian/I<package>.emacsen-startup
+
+Installed into etc/emacs/site-start.d/50I<package>.el in the package
+build directory. Use B<--priority> to use a different priority than 50.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-n>, B<--noscripts>
+
+Do not modify F<postinst>/F<prerm> scripts.
+
+=item B<--priority=>I<n>
+
+Sets the priority number of a F<site-start.d> file. Default is 50.
+
+=item B<--flavor=>I<foo>
+
+Sets the flavor a F<site-start.d> file will be installed in. Default is
+B<emacs>, alternatives include B<xemacs> and B<emacs20>.
+
+=back
+
+=head1 NOTES
+
+Note that this command is not idempotent. L<dh_prep(1)> should be called
+between invocations of this command. Otherwise, it may cause multiple
+instances of the same text to be added to maintainer scripts.
+
+=cut
+
+init(options => {
+ "flavor=s" => \$dh{FLAVOR},
+});
+
+if (! defined $dh{PRIORITY}) {
+ $dh{PRIORITY}=50;
+}
+if (! defined $dh{FLAVOR}) {
+ $dh{FLAVOR}='emacs';
+}
+
+# PROMISE: DH NOOP WITHOUT emacsen-install emacsen-remove emacsen-startup
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+
+ my $emacsen_install=pkgfile($package,"emacsen-install");
+ my $emacsen_remove=pkgfile($package,"emacsen-remove");
+ my $emacsen_startup=pkgfile($package,"emacsen-startup");
+
+ if ($emacsen_install ne '') {
+ if (! -d "$tmp/usr/lib/emacsen-common/packages/install") {
+ doit("install","-d","$tmp/usr/lib/emacsen-common/packages/install");
+ }
+ doit("install","-m0755",$emacsen_install,"$tmp/usr/lib/emacsen-common/packages/install/$package");
+ }
+
+ if ($emacsen_remove ne '') {
+ if (! -d "$tmp/usr/lib/emacsen-common/packages/remove") {
+ doit("install","-d","$tmp/usr/lib/emacsen-common/packages/remove");
+ }
+ doit("install","-m0755","$emacsen_remove","$tmp/usr/lib/emacsen-common/packages/remove/$package");
+ }
+
+ if ($emacsen_startup ne '') {
+ if (! -d "$tmp/etc/$dh{FLAVOR}/site-start.d/") {
+ doit("install","-d","$tmp/etc/$dh{FLAVOR}/site-start.d/");
+ }
+ doit("install","-m0644",$emacsen_startup,"$tmp/etc/$dh{FLAVOR}/site-start.d/$dh{PRIORITY}$package.el");
+ }
+
+ if ($emacsen_install ne '' || $emacsen_remove ne '') {
+ if (! $dh{NOSCRIPTS}) {
+ autoscript($package,"postinst","postinst-emacsen",
+ "s/#PACKAGE#/$package/");
+ autoscript($package,"prerm","prerm-emacsen",
+ "s/#PACKAGE#/$package/");
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_installexamples b/dh_installexamples
new file mode 100755
index 0000000..448678a
--- /dev/null
+++ b/dh_installexamples
@@ -0,0 +1,118 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installexamples - install example files into package build directories
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installexamples> [S<I<debhelper options>>] [B<-A>] [B<-X>I<item>] [S<I<file> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_installexamples> is a debhelper program that is responsible for
+installing examples into F<usr/share/doc/package/examples> in package
+build directories.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.examples
+
+Lists example files or directories to be installed.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-A>, B<--all>
+
+Install any files specified by command line parameters in ALL packages
+acted on.
+
+=item B<-X>I<item>, B<--exclude=>I<item>
+
+Exclude files that contain I<item> anywhere in their filename from
+being installed.
+
+=item I<file> ...
+
+Install these files (or directories) as examples into the first package
+acted on. (Or into all packages if B<-A> is specified.)
+
+=back
+
+=head1 NOTES
+
+Note that B<dh_installexamples> will happily copy entire directory hierarchies
+if you ask it to (similar to B<cp -a>). If it is asked to install a
+directory, it will install the complete contents of the directory.
+
+=cut
+
+init();
+
+# PROMISE: DH NOOP WITHOUT examples
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ next if is_udeb($package);
+
+ my $tmp=tmpdir($package);
+ my $file=pkgfile($package,"examples");
+
+ my @examples;
+
+ if ($file) {
+ @examples=filearray($file, ".");
+ }
+
+ if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
+ push @examples, @ARGV;
+ }
+
+ if (@examples) {
+ if (! -d "$tmp/usr/share/doc/$package/examples") {
+ doit("install","-d","$tmp/usr/share/doc/$package/examples");
+ }
+
+ my $exclude = '';
+ if ($dh{EXCLUDE_FIND}) {
+ $exclude .= ' -and ! \( '.$dh{EXCLUDE_FIND}.' \)';
+ }
+
+ foreach my $example (@examples) {
+ next if excludefile($example);
+ if (-d $example && $exclude) {
+ my $basename = basename($example);
+ my $dir = ($basename eq '.') ? $example : "$example/..";
+ my $pwd=`pwd`;
+ chomp $pwd;
+ my $exclude2 = '-type f'.$exclude;
+ complex_doit("cd '$dir' && find '$basename' -type f$exclude -exec cp --parents -dp {} $pwd/$tmp/usr/share/doc/$package/examples \\;");
+ }
+ else {
+ doit("cp", "-a", $example, "$tmp/usr/share/doc/$package/examples");
+ }
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_installgsettings b/dh_installgsettings
new file mode 100755
index 0000000..dac471d
--- /dev/null
+++ b/dh_installgsettings
@@ -0,0 +1,98 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installgsettings - install GSettings overrides and set dependencies
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installgsettings> [S<I<debhelper options>>] [B<--priority=<number>>]
+
+=head1 DESCRIPTION
+
+B<dh_installgsettings> is a debhelper program that is responsible for installing
+GSettings override files and generating appropriate dependencies on the
+GSettings backend.
+
+The dependency on the backend will be generated in B<${misc:Depends}>.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.gsettings-override
+
+Installed into usr/share/glib-2.0/schemas/10_I<package>.gschema.override in
+the package build directory, with "I<package>" replaced by the package name.
+
+The format of the file is the following:
+
+ [org.gnome.mypackage]
+ boolean-setting=true
+ string-setting='string'
+ ...
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--priority> I<priority>
+
+Use I<priority> (which should be a 2-digit number) as the override
+priority instead of 10. Higher values than ten can be used by
+derived distributions (20), blend distributions (50), or site-specific
+packages (90).
+
+=cut
+
+init();
+
+my $priority=10;
+if (defined $dh{PRIORITY}) {
+ $priority=$dh{PRIORITY};
+}
+
+# PROMISE: DH NOOP WITHOUT gsettings-override tmp(usr/share/glib-2.0/schemas)
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+
+ my $gsettings_schemas_dir = "$tmp/usr/share/glib-2.0/schemas/";
+
+ my $override = pkgfile($package,"gsettings-override");
+ if ($override ne '') {
+ doit("mkdir","-p",$gsettings_schemas_dir);
+ doit("install","-p","-m644",$override,"$gsettings_schemas_dir/${priority}_$package.gschema.override");
+ }
+
+ if (-d "$gsettings_schemas_dir") {
+ # Get a list of the schemas
+ my $schemas = `find $gsettings_schemas_dir -type f \\( -name \\*.xml -o -name \\*.override \\) -printf '%P '`;
+ if ($schemas ne '') {
+ addsubstvar($package, "misc:Depends", "dconf-gsettings-backend | gsettings-backend");
+ }
+ }
+}
+
+=back
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Laurent Bigonville <bigon@debian.org>,
+Josselin Mouette <joss@debian.org>
+
+=cut
+
diff --git a/dh_installifupdown b/dh_installifupdown
new file mode 100755
index 0000000..7b7c2ec
--- /dev/null
+++ b/dh_installifupdown
@@ -0,0 +1,81 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installifupdown - install if-up and if-down hooks
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installifupdown> [S<I<debhelper options>>] [B<--name=>I<name>]
+
+=head1 DESCRIPTION
+
+B<dh_installifupdown> is a debhelper program that is responsible for installing
+F<if-up>, F<if-down>, F<if-pre-up>, and F<if-post-down> hook scripts into package build
+directories.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.if-up
+
+=item debian/I<package>.if-down
+
+=item debian/I<package>.if-pre-up
+
+=item debian/I<package>.if-post-down
+
+These files are installed into etc/network/if-*.d/I<package> in
+the package build directory.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--name=>I<name>
+
+Look for files named F<debian/package.name.if-*> and install them as
+F<etc/network/if-*/name>, instead of using the usual files and installing them
+as the package name.
+
+=back
+
+=cut
+
+init();
+
+# PROMISE: DH NOOP WITHOUT if-pre-up if-up if-down if-post-down
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+
+ foreach my $script (qw(pre-up up down post-down)) {
+ my $file=pkgfile($package, "if-$script");
+ if ($file ne '') {
+ if (! -d "$tmp/etc/network/if-$script.d") {
+ doit("install","-d","$tmp/etc/network/if-$script.d");
+ }
+ doit("install","-p","-m755",$file,"$tmp/etc/network/if-$script.d/".pkgfilename($package));
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_installinfo b/dh_installinfo
new file mode 100755
index 0000000..2c3d9e9
--- /dev/null
+++ b/dh_installinfo
@@ -0,0 +1,87 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installinfo - install info files
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installinfo> [S<I<debhelper options>>] [B<-A>] [S<I<file> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_installinfo> is a debhelper program that is responsible for installing
+info files into F<usr/share/info> in the package build directory.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.info
+
+List info files to be installed.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-A>, B<--all>
+
+Install all files specified by command line parameters in ALL packages
+acted on.
+
+=item I<file> ...
+
+Install these info files into the first package acted on. (Or in
+all packages if B<-A> is specified).
+
+=back
+
+=cut
+
+init();
+
+# PROMISE: DH NOOP WITHOUT info
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ my $file=pkgfile($package,"info");
+
+ my @info;
+
+ if ($file) {
+ @info=filearray($file, ".");
+ }
+
+ if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
+ push @info, @ARGV;
+ }
+
+ if (@info) {
+ if ( ! -d "$tmp/usr/share/info") {
+ doit("install","-d","$tmp/usr/share/info");
+ }
+ doit("cp",@info,"$tmp/usr/share/info");
+ doit("chmod","-R", "go=rX","$tmp/usr/share/info/");
+ doit("chmod","-R", "u+rw","$tmp/usr/share/info/");
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_installinit b/dh_installinit
new file mode 100755
index 0000000..d7c8f75
--- /dev/null
+++ b/dh_installinit
@@ -0,0 +1,344 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installinit - install service init files into package build directories
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+use File::Find;
+
+=head1 SYNOPSIS
+
+B<dh_installinit> [S<I<debhelper options>>] [B<--name=>I<name>] [B<-n>] [B<-R>] [B<-r>] [B<-d>] [S<B<--> I<params>>]
+
+=head1 DESCRIPTION
+
+B<dh_installinit> is a debhelper program that is responsible for installing
+init scripts with associated defaults files, as well as upstart job files,
+and systemd service files into package build directories.
+
+It also automatically generates the F<postinst> and F<postrm> and F<prerm>
+commands needed to set up the symlinks in F</etc/rc*.d/> to start and stop
+the init scripts.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.init
+
+If this exists, it is installed into etc/init.d/I<package> in the package
+build directory.
+
+=item debian/I<package>.default
+
+If this exists, it is installed into etc/default/I<package> in the package
+build directory.
+
+=item debian/I<package>.upstart
+
+If this exists, it is installed into etc/init/I<package>.conf in the package
+build directory.
+
+=item debian/I<package>.service
+
+If this exists, it is installed into lib/systemd/system/I<package>.service in
+the package build directory.
+
+=item debian/I<package>.tmpfile
+
+If this exists, it is installed into usr/lib/tmpfiles.d/I<package>.conf in the
+package build directory. (The tmpfiles.d mechanism is currently only used
+by systemd.)
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-n>, B<--noscripts>
+
+Do not modify F<postinst>/F<postrm>/F<prerm> scripts.
+
+=item B<-o>, B<--onlyscripts>
+
+Only modify F<postinst>/F<postrm>/F<prerm> scripts, do not actually install
+any init script, default files, upstart job or systemd service file. May be
+useful if the file is shipped and/or installed by upstream in a way that
+doesn't make it easy to let B<dh_installinit> find it.
+
+=item B<-R>, B<--restart-after-upgrade>
+
+Do not stop the init script until after the package upgrade has been
+completed. This is different than the default behavior, which stops the
+script in the F<prerm>, and starts it again in the F<postinst>.
+
+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>
+
+Do not stop init script on upgrade.
+
+=item B<--no-start>
+
+Do not start the init script on install or upgrade, or stop it on removal.
+Only call B<update-rc.d>. Useful for rcS scripts.
+
+=item B<-d>, B<--remove-d>
+
+Remove trailing B<d> from the name of the package, and use the result for the
+filename the upstart job file is installed as in F<etc/init/> , and for the
+filename the init script is installed as in etc/init.d and the default file
+is installed as in F<etc/default/> . This may be useful for daemons with names
+ending in B<d>. (Note: this takes precedence over the B<--init-script> parameter
+described below.)
+
+=item B<-u>I<params> B<--update-rcd-params=>I<params>
+
+=item B<--> I<params>
+
+Pass I<params> to L<update-rc.d(8)>. If not specified, B<defaults> will be
+passed to L<update-rc.d(8)>.
+
+=item B<--name=>I<name>
+
+Install the init script (and default file) as well as upstart job file
+using the filename I<name> instead of the default filename, which is
+the package name. When this parameter is used, B<dh_installinit> looks
+for and installs files named F<debian/package.name.init>,
+F<debian/package.name.default> and F<debian/package.name.upstart>
+instead of the usual F<debian/package.init>, F<debian/package.default> and
+F<debian/package.upstart>.
+
+=item B<--init-script=>I<scriptname>
+
+Use I<scriptname> as the filename the init script is installed as in
+F<etc/init.d/> (and also use it as the filename for the defaults file, if it
+is installed). If you use this parameter, B<dh_installinit> will look to see
+if a file in the F<debian/> directory exists that looks like
+F<package.scriptname> and if so will install it as the init script in
+preference to the files it normally installs.
+
+This parameter is deprecated, use the B<--name> parameter instead. This
+parameter is incompatible with the use of upstart jobs.
+
+=item B<--error-handler=>I<function>
+
+Call the named shell I<function> if running the init script fails. The
+function should be provided in the F<prerm> and F<postinst> scripts, before the
+B<#DEBHELPER#> token.
+
+=back
+
+=head1 NOTES
+
+Note that this command is not idempotent. L<dh_prep(1)> should be called
+between invocations of this command. Otherwise, it may cause multiple
+instances of the same text to be added to maintainer scripts.
+
+=cut
+
+init(options => {
+ "r" => \$dh{R_FLAG},
+ "no-restart-on-upgrade" => \$dh{R_FLAG},
+ "no-start" => \$dh{NO_START},
+ "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},
+});
+
+# PROMISE: DH NOOP WITHOUT service tmpfile default upstart init init.d
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+
+ # Figure out what filename to install it as.
+ my $script;
+ my $scriptsrc;
+ 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.");
+ }
+ $scriptsrc=$script;
+ }
+ elsif ($dh{INIT_SCRIPT}) {
+ $script=$dh{INIT_SCRIPT};
+ $scriptsrc=$script;
+ }
+ else {
+ $script=$package;
+ if (compat(9)) {
+ $scriptsrc=$script;
+ }
+ else {
+ $scriptsrc="init";
+ }
+ }
+
+ my $service=pkgfile($package,"service");
+ if ($service ne '' && ! $dh{ONLYSCRIPTS}) {
+ my $path="$tmp/lib/systemd/system";
+ if (! -d "$path") {
+ doit("install","-d","$path");
+ }
+
+ doit("install","-p","-m644",$service,"$path/$script.service");
+ }
+
+ my $tmpfile=pkgfile($package,"tmpfile");
+ if ($tmpfile ne '' && ! $dh{ONLYSCRIPTS}) {
+ my $path="$tmp/usr/lib/tmpfiles.d";
+ if (! -d "$path") {
+ doit("install","-d","$path");
+ }
+
+ doit("install","-p","-m644",$tmpfile,"$path/$script.conf");
+ }
+
+ my $job=pkgfile($package,"upstart");
+ if ($job ne '' && ! $dh{ONLYSCRIPTS}) {
+ if (! -d "$tmp/etc/init") {
+ doit("install","-d","$tmp/etc/init");
+ }
+
+ doit("install","-p","-m644",$job,"$tmp/etc/init/$jobfile.conf");
+ }
+
+ my $default=pkgfile($package,'default');
+ if ($default ne '' && ! $dh{ONLYSCRIPTS}) {
+ if (! -d "$tmp/etc/default") {
+ doit("install","-d","$tmp/etc/default");
+ }
+ doit("install","-p","-m644",$default,"$tmp/etc/default/$script");
+ }
+
+ my $init=pkgfile($package,$scriptsrc) || pkgfile($package,"init") ||
+ pkgfile($package,"init.d");
+
+ if ($job ne '' || ($dh{ONLYSCRIPTS} && -e "$tmp/etc/init/$jobfile.conf")) {
+ # minimal version of invoke-rc.d that supports upstart jobs
+ # directly
+ addsubstvar($package, "misc:Depends", "sysv-rc (>= 2.88dsf-24) | file-rc (>= 0.8.16)");
+ }
+
+ if ($init ne '' && ! $dh{ONLYSCRIPTS}) {
+ if (! -d "$tmp/etc/init.d") {
+ doit("install","-d","$tmp/etc/init.d");
+ }
+
+ doit("install","-p","-m755",$init,"$tmp/etc/init.d/$script");
+ }
+
+ if ($dh{INIT_SCRIPT} && $job ne '' && $init ne '') {
+ error("Can't use --init-script with an upstart job");
+ }
+
+ # NB: The case that only $tmpfile is set makes no sense. The
+ # tmpfiles.d(5) mechanism is only available when using systemd (at
+ # least currently), so there has to be an init script which does the
+ # same thing for sysvinit.
+ if ($service ne '' || $job ne '' || $init ne '' || $dh{ONLYSCRIPTS}) {
+ # This is set by the -u "foo" command line switch, it's
+ # the parameters to pass to update-rc.d. If not set,
+ # we have to say "defaults".
+ my $params='';
+ if (defined($dh{U_PARAMS})) {
+ $params=join(' ',@{$dh{U_PARAMS}});
+ }
+ if ($params eq '') {
+ $params="defaults";
+ }
+
+ if (! $dh{NOSCRIPTS}) {
+ # Include postinst-init-tmpfiles if the package ships any files
+ # in /usr/lib/tmpfiles.d or /etc/tmpfiles.d
+ my $tmpdir = tmpdir($package);
+ my @tmpfiles;
+ find({
+ wanted => sub {
+ my $name = $File::Find::name;
+ return unless -f $name;
+ $name =~ s/^$tmpdir//g;
+ if ($name =~ m,^/usr/lib/tmpfiles\.d/, ||
+ $name =~ m,^/etc/tmpfiles\.d/,) {
+ push @tmpfiles, $name;
+ }
+ },
+ no_chdir => 1,
+ }, $tmpdir);
+ if (@tmpfiles > 0) {
+ autoscript($package,"postinst", "postinst-init-tmpfiles",
+ "s,#TMPFILES#," . join(" ", @tmpfiles).",");
+ }
+
+ if (! $dh{NO_START}) {
+ if ($dh{RESTART_AFTER_UPGRADE}) {
+ # update-rc.d, and restart (or
+ # start if new install) script
+ autoscript($package,"postinst", "postinst-init-restart",
+ "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");
+ }
+ else {
+ # update-rc.d, and start script
+ autoscript($package,"postinst", "postinst-init",
+ "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");
+ }
+
+ if ($dh{R_FLAG} || $dh{RESTART_AFTER_UPGRADE}) {
+ # stops script only on remove
+ autoscript($package,"prerm","prerm-init-norestart",
+ "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");
+ }
+ else {
+ # always stops script
+ autoscript($package,"prerm","prerm-init",
+ "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");
+ }
+ }
+ else {
+ # just update-rc.d
+ autoscript($package,"postinst", "postinst-init-nostart",
+ "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");
+ }
+
+ # removes rc.d links
+ autoscript($package,"postrm","postrm-init",
+ "s/#SCRIPT#/$script/;s/#INITPARMS#/$params/;s/#ERROR_HANDLER#/$dh{ERROR_HANDLER}/");
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHORS
+
+Joey Hess <joeyh@debian.org>
+
+Steve Langasek <steve.langasek@canonical.com>
+
+Michael Stapelberg <stapelberg@debian.org>
+
+=cut
diff --git a/dh_installlogcheck b/dh_installlogcheck
new file mode 100755
index 0000000..0821f1d
--- /dev/null
+++ b/dh_installlogcheck
@@ -0,0 +1,90 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installlogcheck - install logcheck rulefiles into etc/logcheck/
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installlogcheck> [S<I<debhelper options>>]
+
+=head1 DESCRIPTION
+
+B<dh_installlogcheck> is a debhelper program that is responsible for
+installing logcheck rule files.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.logcheck.cracking
+
+=item debian/I<package>.logcheck.violations
+
+=item debian/I<package>.logcheck.violations.ignore
+
+=item debian/I<package>.logcheck.ignore.workstation
+
+=item debian/I<package>.logcheck.ignore.server
+
+=item debian/I<package>.logcheck.ignore.paranoid
+
+Each of these files, if present, are installed into corresponding
+subdirectories of F<etc/logcheck/> in package build directories.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--name=>I<name>
+
+Look for files named F<debian/package.name.logcheck.*> and install
+them into the corresponding subdirectories of F<etc/logcheck/>, but
+use the specified name instead of that of the package.
+
+=back
+
+=cut
+
+init();
+
+# PROMISE: DH NOOP WITHOUT logcheck.cracking logcheck.violations logcheck.violations.ignore logcheck.ignore.workstation logcheck.ignore.server logcheck.ignore.paranoid
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+
+ foreach my $type (qw{ignore.d.workstation ignore.d.server
+ ignore.d.paranoid cracking.d
+ violations.d violations.ignore.d}) {
+ my $typenod=$type;
+ $typenod=~s/\.d//;
+ my $logcheck=pkgfile($package,"logcheck.$typenod");
+ if ($logcheck) {
+ if (! -d "$tmp/etc/logcheck/$type") {
+ doit("install","-o",0,"-g",0,"-d","$tmp/etc/logcheck/$type");
+ }
+ my $packagenodot=pkgfilename($package); # run-parts..
+ $packagenodot=~s/\./_/g;
+ doit("install","-m","0644",$logcheck,"$tmp/etc/logcheck/$type/$packagenodot");
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Jon Middleton <jjm@debian.org>
+
+=cut
diff --git a/dh_installlogrotate b/dh_installlogrotate
new file mode 100755
index 0000000..da14688
--- /dev/null
+++ b/dh_installlogrotate
@@ -0,0 +1,62 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installlogrotate - install logrotate config files
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installlogrotate> [S<I<debhelper options>>] [B<--name=>I<name>]
+
+=head1 DESCRIPTION
+
+B<dh_installlogrotate> is a debhelper program that is responsible for installing
+logrotate config files into F<etc/logrotate.d> in package build directories.
+Files named F<debian/package.logrotate> are installed.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--name=>I<name>
+
+Look for files named F<debian/package.name.logrotate> and install them as
+F<etc/logrotate.d/name>, instead of using the usual files and installing them
+as the package name.
+
+=back
+
+=cut
+
+init();
+
+# PROMISE: DH NOOP WITHOUT logrotate
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ my $tmp=tmpdir($package);
+ my $file=pkgfile($package,"logrotate");
+
+ if ($file) {
+ if (! -d "$tmp/etc/logrotate.d") {
+ doit("install","-o",0,"-g",0,"-d","$tmp/etc/logrotate.d");
+ }
+ doit("install","-m",644,$file,"$tmp/etc/logrotate.d/".pkgfilename($package));
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_installman b/dh_installman
new file mode 100755
index 0000000..858605b
--- /dev/null
+++ b/dh_installman
@@ -0,0 +1,273 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installman - install man pages into package build directories
+
+=cut
+
+use strict;
+use File::Find;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installman> [S<I<debhelper options>>] [S<I<manpage> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_installman> is a debhelper program that handles installing
+man pages into the correct locations in package build directories. You tell
+it what man pages go in your packages, and it figures out where to install
+them based on the section field in their B<.TH> or B<.Dt> line. If you have
+a properly formatted B<.TH> or B<.Dt> line, your man page will be installed
+into the right directory, with the right name (this includes proper handling
+of pages with a subsection, like B<3perl>, which are placed in F<man3>, and
+given an extension of F<.3perl>). If your B<.TH> or B<.Dt> line is incorrect
+or missing, the program may guess wrong based on the file extension.
+
+It also supports translated man pages, by looking for extensions
+like F<.ll.8> and F<.ll_LL.8>, or by use of the B<--language> switch.
+
+If B<dh_installman> seems to install a man page into the wrong section or with
+the wrong extension, this is because the man page has the wrong section
+listed in its B<.TH> or B<.Dt> line. Edit the man page and correct the
+section, and B<dh_installman> will follow suit. See L<man(7)> for details
+about the B<.TH> section, and L<mdoc(7)> for the B<.Dt> section. If
+B<dh_installman> seems to install a man page into a directory
+like F</usr/share/man/pl/man1/>, that is because your program has a
+name like F<foo.pl>, and B<dh_installman> assumes that means it is translated
+into Polish. Use B<--language=C> to avoid this.
+
+After the man page installation step, B<dh_installman> will check to see if
+any of the man pages in the temporary directories of any of the packages it
+is acting on contain F<.so> links. If so, it changes them to symlinks.
+
+Also, B<dh_installman> will use man to guess the character encoding of each
+manual page and convert it to UTF-8. If the guesswork fails for some
+reason, you can override it using an encoding declaration. See
+L<manconv(1)> for details.
+
+=head1 FILES
+
+=over 4
+
+=item debian/I<package>.manpages
+
+Lists man pages to be installed.
+
+=back
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-A>, B<--all>
+
+Install all files specified by command line parameters in ALL packages
+acted on.
+
+=item B<--language=>I<ll>
+
+Use this to specify that the man pages being acted on are written in the
+specified language.
+
+=item I<manpage> ...
+
+Install these man pages into the first package acted on. (Or in all
+packages if B<-A> is specified).
+
+=back
+
+=head1 NOTES
+
+An older version of this program, L<dh_installmanpages(1)>, is still used
+by some packages, and so is still included in debhelper.
+It is, however, deprecated, due to its counterintuitive and inconsistent
+interface. Use this program instead.
+
+=cut
+
+init(options => {
+ "language=s" => \$dh{LANGUAGE},
+});
+
+my @sofiles;
+my @sodests;
+
+# PROMISE: DH NOOP WITHOUT manpages tmp(usr/share/man)
+
+foreach my $package (@{$dh{DOPACKAGES}}) {
+ next if is_udeb($package);
+
+ my $tmp=tmpdir($package);
+ my $file=pkgfile($package,"manpages");
+ my @manpages;
+
+ @manpages=filearray($file, ".") if $file;
+
+ if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
+ push @manpages, @ARGV;
+ }
+
+ foreach my $page (@manpages) {
+ my $basename=basename($page);
+
+ # Support compressed pages.
+ my $gz='';
+ if ($basename=~m/(.*)(\.gz)/) {
+ $basename=$1;
+ $gz=$2;
+ }
+
+ my $section;
+ # See if there is a .TH or .Dt entry in the man page. If so,
+ # we'll pull the section field from that.
+ if ($gz) {
+ open (IN, "zcat $page|") or die "$page: $!";
+ }
+ else {
+ open (IN, $page) or die "$page: $!";
+ }
+ while (<IN>) {
+ if (/^\.TH\s+\S+\s+"?(\d+[^"\s]*)"?/ ||
+ /^\.Dt\s+\S+\s+(\d+[^\s]*)/) {
+ $section=$1;
+ last;
+ }
+ }
+ # Failing that, we can try to get it from the filename.
+ if (! $section) {
+ ($section)=$basename=~m/.*\.([1-9]\S*)/;
+ }
+
+ # Now get the numeric component of the section.
+ my ($realsection)=$section=~m/^(\d)/ if defined $section;
+ if (! $realsection) {
+ error("Could not determine section for $page");
+ }
+
+ # Get the man page's name -- everything up to the last dot.
+ my ($instname)=$basename=~m/^(.*)\./;
+
+ my $destdir="$tmp/usr/share/man/man$realsection/";
+ my $langcode;
+ if (! defined $dh{LANGUAGE} || ! exists $dh{LANGUAGE}) {
+ # Translated man pages are typically specified by adding the
+ # language code to the filename, so detect that and
+ # redirect to appropriate directory, stripping the code.
+ ($langcode)=$basename=~m/.*\.([a-z][a-z](?:_[A-Z][A-Z])?)\.(?:[1-9]|man)/;
+ }
+ elsif ($dh{LANGUAGE} ne 'C') {
+ $langcode=$dh{LANGUAGE};
+ }
+
+ if (defined $langcode && $langcode ne '') {
+ # Strip the language code from the instname.
+ $instname=~s/\.$langcode$//;
+ }
+
+ if (defined $langcode && $langcode ne '') {
+ $destdir="$tmp/usr/share/man/$langcode/man$realsection/";
+ }
+ $destdir=~tr:/:/:s; # just for looks
+ my $instpage="$destdir$instname.$section";
+
+ next if -l $instpage;
+ next if compat(5) && -e $instpage;
+
+ if (! -d $destdir) {
+ doit "install","-d",$destdir;
+ }
+ if ($gz) {
+ complex_doit "zcat \Q$page\E > \Q$instpage\E";
+ }
+ else {
+ doit "install","-p","-m644",$page,$instpage;
+ }
+ }
+
+ # Now the .so conversion.
+ @sofiles=@sodests=();
+ foreach my $dir (qw{usr/share/man}) {
+ if (-e "$tmp/$dir") {
+ find(\&find_so_man, "$tmp/$dir");
+ }
+ }
+ foreach my $sofile (@sofiles) {
+ my $sodest=shift(@sodests);
+ doit "rm","-f",$sofile;
+ doit "ln","-sf",$sodest,$sofile;
+ }
+
+ # Now utf-8 conversion.
+ if (defined `man --version`) {
+ foreach my $dir (qw{usr/share/man}) {
+ next unless -e "$tmp/$dir";
+ find(sub {
+ return if ! -f $_ || -l $_;
+ my ($tmp, $orig)=($_.".new", $_);
+ complex_doit "man --recode UTF-8 ./\Q$orig\E > \Q$tmp\E";
+ # recode uncompresses compressed pages
+ doit "rm", "-f", $orig if s/\.(gz|Z)$//;
+ doit "chmod", 644, $tmp;
+ doit "mv", "-f", $tmp, $_;
+ }, "$tmp/$dir");
+ }
+ }
+}
+
+# Check if a file is a .so man page, for use by File::Find.
+sub find_so_man {
+ # The -s test is becuase a .so file tends to be small. We don't want
+ # to open every man page. 1024 is arbitrary.
+ if (! -f $_ || -s $_ > 1024 || -s == 0) {
+ return;
+ }
+
+ # Test first line of file for the .so thing.
+ if (/\.gz$/) {
+ open (SOTEST, "zcat $_|") or die "$_: $!";
+ }
+ else {
+ open (SOTEST,$_) || die "$_: $!";
+ }
+ my $l=<SOTEST>;
+ close SOTEST;
+
+ if (! defined $l) {
+ error("failed to read $_");
+ }
+
+ if ($l=~m/\.so\s+(.*)\s*/) {
+ my $solink=$1;
+ # This test is here to prevent links like ... man8/../man8/foo.8
+ if (basename($File::Find::dir) eq
+ dirname($solink)) {
+ $solink=basename($solink);
+ }
+ # A so link with a path is relative to the base of the man
+ # page hierarchy, but without a path, is relative to the
+ # current section.
+ elsif ($solink =~ m!/!) {
+ $solink="../$solink";
+ }
+
+ if (-e $solink || -e "$solink.gz") {
+ push @sofiles,"$File::Find::dir/$_";
+ push @sodests,$solink;
+ }
+ }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut
diff --git a/dh_installmanpages b/dh_installmanpages
new file mode 100755
index 0000000..cc6a6f6
--- /dev/null
+++ b/dh_installmanpages
@@ -0,0 +1,207 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_installmanpages - old-style man page installer (deprecated)
+
+=cut
+
+use strict;
+use File::Find;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_installmanpages> [S<I<debhelper options>>] [S<I<file> ...>]
+
+=head1 DESCRIPTION
+
+B<dh_installmanpages> is a debhelper program that is responsible for
+automatically installing man pages into F<usr/share/man/>
+in package build directories.
+
+This is a DWIM-style program, with an interface unlike the rest of
+debhelper. It is deprecated, and you are encouraged to use
+L<dh_installman(1)> instead.
+
+B<dh_installmanpages> scans the current directory and all subdirectories for
+filenames that look like man pages. (Note that only real files are looked
+at; symlinks are ignored.) It uses L<file(1)> to verify that the files are
+in the correct format. Then, based on the files' extensions, it installs
+them into the correct man directory.
+
+All filenames specified as parameters will be skipped by B<dh_installmanpages>.
+This is useful if by default it installs some man pages that you do not
+want to be installed.
+
+After the man page installation step, B<dh_installmanpages> will check to see
+