From: joey <joey>
Date: Thu, 12 Dec 2002 22:13:19 +0000 (+0000)
Subject: r569:    * Fix dh_install to install empty directories even if it is excluding some
X-Git-Tag: version_2.0.101~30
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=8113612bc822e5d2cc3bbe900fa5d3c44250b057;p=debhelper.git

r569:    * Fix dh_install to install empty directories even if it is excluding some
     files from installation.
---

diff --git a/debian/changelog b/debian/changelog
index b267d9e..6cebf98 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,17 @@
+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 12:12:31 -0500
+ -- Joey Hess <joeyh@debian.org>  Mon,  9 Dec 2002 21:53:08 -0500
 
 debhelper (4.1.26) unstable; urgency=low
 
diff --git a/dh_install b/dh_install
index d75e025..c6aea5b 100755
--- a/dh_install
+++ b/dh_install
@@ -122,7 +122,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
 	# Support for -X flag.
 	my $exclude = '';
 	if ($dh{EXCLUDE_FIND}) {
-		$exclude = '-and ! \( '.$dh{EXCLUDE_FIND}.' \)';
+		$exclude = '! \( '.$dh{EXCLUDE_FIND}.' \)';
 	}
 	
 	foreach my $set (@install) {
@@ -166,7 +166,10 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
 				# Pity there's no cp --exclude ..
 				my $pwd=`pwd`;
 				chomp $pwd;
-				complex_doit("cd $src/.. && find $dir_basename \\( -type f -or -type l \\) $exclude -exec cp --parents -dp {} $pwd/$tmp/$dest/ \\;");
+				complex_doit("cd $src/.. && find $dir_basename $exclude \\( -type f -or -type l \\) -exec cp --parents -dp {} $pwd/$tmp/$dest/ \\;");
+				# cp is annoying so I need a separate pass
+				# just for empty directories
+				complex_doit("cd $src/.. && find $dir_basename $exclude \\( -type d -and -empty \\) -exec cp --parents -a {} $pwd/$tmp/$dest/ \\;");
 			}
 			else {
 				doit("cp", "-a", $src, "$tmp/$dest/");
@@ -191,7 +194,7 @@ if ($dh{LIST_MISSING}) {
 		push @missing, $_ unless /$installed/ || excludefile($_);
 	}, $srcdir);
 	if (@missing) {
-		warning "$_ not installed" foreach @missing;
+		warning "$_ exists in debian/tmp but not installed to anywhere" foreach @missing;
 	}
 }