From 8a088bc6cbe25d1a1e99edadd02d880d286dcaca Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@gnu.kitenet.net>
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 <joeyh@debian.org>  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<file [...] dest>
 
 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.5