1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#!/usr/bin/perl -w
#
# Move files out of debian/tmp, into subpackages.
use Debian::Debhelper::Dh_Lib;
init();
$ret=0;
foreach $PACKAGE (@{$dh{DOPACKAGES}}) {
$TMP=tmpdir($PACKAGE);
$files=pkgfile($PACKAGE,"files");
if ($dh{SOURCEDIR}) {
if ($dh{SOURCEDIR}=~m:^/:) {
error("The sourcedir must be a relative filename, not starting with `/'.");
}
$sourcedir=$dh{SOURCEDIR};
}
else {
$sourcedir="debian/tmp";
}
if (! -d $sourcedir) {
error("$sourcedir does not exist.");
}
@tomove=();
# debian/files has a different purpose, so ignore it.
if ( $files && $files ne "debian/files" ) {
@tomove=filearray($files, $sourcedir);
}
if (($PACKAGE eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) {
push @tomove, @ARGV;
}
if (@tomove && $TMP eq $sourcedir) {
error("I was asked to move files from $sourcedir to $sourcedir. Perhaps you should set DH_COMAPT=2?");
}
# Now we need to expand wildcards in @tomove.
# This is only necessary in pre-v3 land -- as of v3, the
# expension is automatically done by filearray().
if (@tomove && Debian::Debhelper::Dh_Lib::compat(2)) {
@filelist=();
foreach (@tomove) {
push @filelist, glob("$sourcedir/$_");
}
@tomove=@filelist;
}
if (@tomove) {
if (! -d $TMP) {
doit("install","-d",$TMP);
}
doit("rm","-f","debian/movelist");
foreach (@tomove) {
$file=$_;
if (! -e $file && ! -l $file) {
$ret=1;
warning("$file not found");
}
$file=~s:^\Q$sourcedir\E/+::;
complex_doit("(cd $sourcedir >/dev/null ; find $file ! -type d -print || true) >> debian/movelist");
}
complex_doit("(cd $sourcedir >/dev/null ; tar --create --remove-files --files-from=../movelist --file -) | (cd $TMP >/dev/null ;tar xpf -)");
doit("rm","-f","debian/movelist");
}
}
# If $ret is set, we wern't actually able to find some
# files that were specified to be moved, and we should
# exit with the code in $ret. This program puts off
# exiting with an error until all files have been tried
# to be moved, because this makes it easier for some
# packages that arn't always sure exactly which files need
# to be moved.
exit $ret;
|