]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_installdocs
releasing version 6.0.0
[debhelper.git] / dh_installdocs
index 9c12d49d0199b78146b9ba4b31f1582ee81a16b8..e335df74d0b62d5b745db2ae2002c0022b8901be 100755 (executable)
@@ -64,7 +64,7 @@ Do not modify postinst/prerm scripts.
 =item B<-Xitem>, B<--exclude=item>
 
 Exclude files that contain "item" anywhere in their filename from
-being installed.
+being installed. Note that this includes doc-base files.
 
 =item I<file ...>
 
@@ -121,22 +121,25 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
        }
 
        if (@docs) {
-               my $exclude = '';
+               my $exclude = '\\( -type f -or -type l \\)';
                if ($dh{EXCLUDE_FIND}) {
-                       $exclude = ' -and ! \( '.$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 ! -s $doc && ! compat(4); # ignore empty BUGS, etc
-                       if (-d $doc && $exclude) {
+                       next if -e $doc && ! -s $doc && ! compat(4); # ignore empty files
+                       if (-d $doc && length $exclude) {
                            my ($dir_basename) = basename($doc);
-                           # Pity there's no cp --exclude ..
                            my $pwd=`pwd`;
                            chomp $pwd;
-                           complex_doit("cd $doc/.. && find $dir_basename \\( -type f or -type l \\)$exclude -exec cp --parents -dp {} $pwd/$tmp/usr/share/doc/$package \\;");
+                           complex_doit("cd '$doc/..' && find '$dir_basename' $exclude -exec cp --parents -dp {} $pwd/$tmp/usr/share/doc/$package \\;");
                        }
                        else {
-                               doit("cp","-a",$doc,"$tmp/usr/share/doc/$package");
+                               doit("cp", "-a", $doc, "$tmp/usr/share/doc/$package");
                        }
                }
                doit("chown","-R","0:0","$tmp/usr/share/doc");
@@ -198,10 +201,11 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
        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>) {
-                       if (/^Document:\s+(.*)(\s+)?/) {
+                       if (/^Document:\s+([-+.a-z0-9]+)/) {
                                $doc_ids{$fn}=$1;
                                last;
                        }