]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_install
dh_install: Add test suite covering the last 5 bugs.
[debhelper.git] / dh_install
index df68d33d02b09d2d1cf260ed309a732bb7d05c25..93986ec9ee8ec1865cdffa81d9cc03fbe914ebfc 100755 (executable)
@@ -42,17 +42,12 @@ directories and files from there into the proper package build directories.
 
 From debhelper compatibility level 7 on, dh_install will fall back to
 looking in debian/tmp for files, if it doesn't find them in the current
-directory (or whereever you've told it to look using --srcdir).
+directory (or whereever you've told it to look using --sourcedir).
 
 =head1 OPTIONS
 
 =over 4
 
-=item B<-Xitem>, B<--exclude=item>
-
-Exclude files that contain "item" anywhere in their filename from
-being installed.
-
 =item B<--autodest>
 
 Guess as the destination directory to install things to. If this is
@@ -71,6 +66,11 @@ 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,21 +84,16 @@ 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<--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<--sourcedir=dir>
 
-Makes all source files be found under dir. If this is specified, it is
-akin to all the source filenames having "dir/" prepended to them.
+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.
 
-To make dh_install behave like the old dh_movefiles, move your
-package.files file to package.install and call dh_install with
-"--sourcedir=debian/tmp" appended to the command. This will
-approximate dh_movefiles behaviour, except it will copy files instead
-of moving them.
+=item B<-Xitem>, B<--exclude=item>
+
+Exclude files that contain "item" anywhere in their filename from
+being installed.
 
 =item I<file [...] dest>
 
@@ -118,7 +113,7 @@ init(options => {
 my @installed;
 
 my $srcdir = '.';
-$srcdir = $dh{SOURCEDIR}."/" if defined $dh{SOURCEDIR};
+$srcdir = $dh{SOURCEDIR} if defined $dh{SOURCEDIR};
 
 foreach my $package (@{$dh{DOPACKAGES}}) {
        my $tmp=tmpdir($package);
@@ -152,7 +147,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                        my @found = glob "$srcdir/$glob";
                        if (! compat(6)) {
                                # Fall back to looking in debian/tmp.
-                               if (! @found || ! -e $found[0]) {
+                               if (! @found || ! (-e $found[0] || -l $found[0])) {
                                        @found = glob "debian/tmp/$glob";
                                }
                        }
@@ -171,12 +166,9 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
                        if (! defined $dest) {
                                # Guess at destination directory.
                                $dest=$src;
-                               my $strip=$srcdir;
-                               if ($strip eq '.') {
-                                       $strip = "debian/tmp";
-                               }
-                               $dest=~s/^(.*\/)?\Q$strip\E//;
-                               $dest=dirname($dest);
+                               $dest=~s/^(.*\/)?\Q$srcdir\E\///;
+                               $dest=~s/^(.*\/)?debian\/tmp\///;
+                               $dest=dirname("/".$dest);
                                $tmpdest=1;
                        }