From 8a088bc6cbe25d1a1e99edadd02d880d286dcaca Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 28 Jun 2009 21:47:52 -0400 Subject: [PATCH] clean up --sourcedir/--sourcedirectory conflict * Move two move 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(). This was done because of a conflict with the --sourcedirectory options used by dh_auto_*. I originally wanted to make dh_auto_* and dh_install both use --sourcedir, but that didn't work out. --- Debian/Debhelper/Dh_Getopt.pm | 4 --- debian/changelog | 5 +++ dh_builddeb | 1 + dh_install | 58 +++++++++++++++++++---------------- dh_movefiles | 4 ++- doc/PROGRAMMING | 2 -- 6 files changed, 40 insertions(+), 34 deletions(-) diff --git a/Debian/Debhelper/Dh_Getopt.pm b/Debian/Debhelper/Dh_Getopt.pm index 9ca9d16..9868124 100644 --- a/Debian/Debhelper/Dh_Getopt.pm +++ b/Debian/Debhelper/Dh_Getopt.pm @@ -121,10 +121,6 @@ sub getoptions { "A" => \$dh{PARAMS_ALL}, "all" => \$dh{PARAMS_ALL}, - "sourcedir=s" => \$dh{SOURCEDIR}, - - "destdir=s" => \$dh{DESTDIR}, - "priority=s" => \$dh{PRIORITY}, "h|help" => \&showhelp, diff --git a/debian/changelog b/debian/changelog index 9120e2f..b0cfb96 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,6 +18,11 @@ debhelper (7.3.0) UNRELEASED; urgency=low Closes: #534332 - Historical dh_auto_* behavior should be preserved despite these large changes.. + * Move two move 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(). -- Joey Hess Mon, 20 Apr 2009 16:26:08 -0400 diff --git a/dh_builddeb b/dh_builddeb index 1de8aae..45713fd 100755 --- a/dh_builddeb +++ b/dh_builddeb @@ -45,6 +45,7 @@ package. init(options => { "filename=s" => \$dh{FILENAME}, + "destdir=s" => \$dh{DESTDIR}, }); # Set the default destination directory. diff --git a/dh_install b/dh_install index c83ec81..86a868b 100755 --- a/dh_install +++ b/dh_install @@ -48,29 +48,6 @@ directory (or whereever you've told it to look using --sourcedir). =over 4 -=item B<--autodest> - -Guess as the destination directory to install things to. If this is -specified, you should not list destination directories in -debian/package.install files or on the command line. Instead, dh_install -will guess as follows: - -Strip off 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 debian/tmp/usr/bin, then that directory -will be copied to debian/package/usr/. If the filename is -debian/tmp/etc/passwd, it will be copied to debian/package/etc/. - -Note that if you list exactly one filename or wildcard-pattern on a line by -itself in a -debian/package.install file, with no explicit destination, then dh_install -will automatically guess the destination even if this flag is not set. - -=item B<--fail-missing> - -This option is like --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<--list-missing> This option makes dh_install keep track of the files it installs, and then at @@ -84,17 +61,43 @@ you don't miss installing newly added files in new upstream releases. Note that files that are excluded from being moved via the -X option are not warned about. -=item B<--sourcedir=dir> +=item B<--fail-missing> -Makes all files to be installed be found under dir. If this is -specified, it is akin to all the filenames having "dir/" prepended -to them. +This option is like --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<-Xitem>, B<--exclude=item> Exclude files that contain "item" anywhere in their filename from being installed. +=item B<--sourcedir=dir> + +Look in the specified directory for files to be installed. + +Note that this is not the same as the --sourcedirectory option used +by the dh_auto_* commands. You rarely need to use this option, since +dh_install automatically looks for files in 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 +debian/package.install files or on the command line. Instead, dh_install +will guess as follows: + +Strip off 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 debian/tmp/usr/bin, then that directory +will be copied to debian/package/usr/. If the filename is +debian/tmp/etc/passwd, it will be copied to debian/package/etc/. + +Note that if you list exactly one filename or wildcard-pattern on a line by +itself in a +debian/package.install file, with no explicit destination, then dh_install +will automatically guess the destination even if this flag is not set. + =item I Lists files (or directories) to install and where to install them to. @@ -108,6 +111,7 @@ init(options => { "autodest" => \$dh{AUTODEST}, "list-missing" => \$dh{LIST_MISSING}, "fail-missing" => \$dh{FAIL_MISSING}, + "sourcedir=s" => \$dh{SOURCEDIR}, }); my @installed; diff --git a/dh_movefiles b/dh_movefiles index 72cbb0b..5e1db0f 100755 --- a/dh_movefiles +++ b/dh_movefiles @@ -67,7 +67,9 @@ deleted by dh_clean later. =cut -init(); +init(options => { + "sourcedir=s" => \$dh{SOURCEDIR}, +}); my $ret=0; diff --git a/doc/PROGRAMMING b/doc/PROGRAMMING index bd79628..f338b57 100644 --- a/doc/PROGRAMMING +++ b/doc/PROGRAMMING @@ -120,8 +120,6 @@ switch variable description those processed here), will apply to all binary packages the program acts on, not just the first ---sourcedir SOURCEDIR will be set to a string ---destdir DESTDIR will be set to a string --priority PRIORITY will be set to a number --mainpackage MAINPACKAGE controls which package is treated as the main package to act on -- 2.39.2