Makefile to install it all into debian/tmp, and then use dh_install to copy
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).
+
=head1 OPTIONS
=over 4
if (! defined $dh{AUTODEST} && @$set > 1) {
$dest=pop @$set;
}
- # glob now, relative to srcdir
- foreach my $src (map { glob "$srcdir/$_" } @$set) {
+
+ my @filelist;
+ foreach my $glob (@$set) {
+ my @found = glob "$srcdir/$glob";
+ if (! compat(6)) {
+ # Fall back to looking in debian/tmp.
+ if (! @found || ! -e $found[0]) {
+ @found = glob "debian/tmp/$glob";
+ }
+ }
+ push @filelist, @found;
+ }
+
+ if (! compat(4)) { # check added in v5
+ # glob now, relative to srcdir
+ if (! @filelist) {
+ error("$package missing files (@$set), aborting");
+ }
+ }
+ foreach my $src (@filelist) {
next if excludefile($src);
if (! defined $dest) {
}
if (-d $src && $exclude) {
- my ($dir_basename) = basename($src);
- # Pity there's no cp --exclude ..
+ my $basename = basename($src);
+ my $dir = ($basename eq '.') ? $src : "$src/..";
my $pwd=`pwd`;
chomp $pwd;
- complex_doit("cd $src/.. && find $dir_basename $exclude \\( -type f -or -type l \\) -exec cp --parents -dp {} $pwd/$tmp/$dest/ \\;");
+ complex_doit("cd '$dir' && find '$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/ \\;");
+ complex_doit("cd '$dir' && find '$basename' $exclude \\( -type d -and -empty \\) -exec cp --parents -a {} $pwd/$tmp/$dest/ \\;");
}
else {
doit("cp", "-a", $src, "$tmp/$dest/");
my @missing;
my $installed=join("|", @installed);
- $installed=qr{^$installed$};
+ $installed=qr{^($installed)$};
find(sub {
-f || -l || return;
$_="$File::Find::dir/$_";
- push @missing, $_ unless /$installed/ || excludefile($_);
+ if (! /$installed/ && ! excludefile($_)) {
+ my $file=$_;
+ $file=~s/^\Q$srcdir\E\///;
+ push @missing, $file;
+ }
}, $srcdir);
if (@missing) {
- warning "$_ exists in debian/tmp but not installed to anywhere" foreach @missing;
+ warning "$_ exists in $srcdir but is not installed to anywhere" foreach @missing;
if ($dh{FAIL_MISSING}) {
error("missing files, aborting");
}
While debian/libfoo.install contains:
- usr/libfoo*.so.*
+ usr/lib/libfoo*.so.*
If you want a libfoo-dev package too, debian/libfoo-dev.install might contain: