chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sbuild: Check that the binary .changes file doesn't contain a .dsc.
[dgit.git]
/
dgit
diff --git
a/dgit
b/dgit
index 9edc6577a4feb3a46129321570bac783ade70c11..9ac8d54435508550c0b557794f8a32a4d70437d6 100755
(executable)
--- a/
dgit
+++ b/
dgit
@@
-155,7
+155,7
@@
END {
local ($?);
foreach my $f (@end) {
eval { $f->(); };
local ($?);
foreach my $f (@end) {
eval { $f->(); };
-
warn
"$us: cleanup: $@" if length $@;
+
print STDERR
"$us: cleanup: $@" if length $@;
}
};
}
};
@@
-1706,7
+1706,7
@@
sub clone ($) {
canonicalise_suite();
badusage "dry run makes no sense with clone" unless act_local();
my $hasgit = check_for_git();
canonicalise_suite();
badusage "dry run makes no sense with clone" unless act_local();
my $hasgit = check_for_git();
- mkdir $dstdir or
die "$dstdir
$!";
+ mkdir $dstdir or
fail "create \`$dstdir':
$!";
changedir $dstdir;
runcmd @git, qw(init -q);
my $giturl = access_giturl(1);
changedir $dstdir;
runcmd @git, qw(init -q);
my $giturl = access_giturl(1);
@@
-2083,7
+2083,7
@@
END
sign_changes $changesfile;
}
sign_changes $changesfile;
}
- supplementary_message(<<
'END'
);
+ supplementary_message(<<
END
);
Push failed, while uploading package(s) to the archive server.
You can retry the upload of exactly these same files with dput of:
$changesfile
Push failed, while uploading package(s) to the archive server.
You can retry the upload of exactly these same files with dput of:
$changesfile
@@
-2131,7
+2131,13
@@
sub cmd_clone {
return if $!==&ENOENT;
die "chdir $cwd_remove: $!";
}
return if $!==&ENOENT;
die "chdir $cwd_remove: $!";
}
- rmtree($dstdir) or die "remove $dstdir: $!\n";
+ if (stat $dstdir) {
+ rmtree($dstdir) or die "remove $dstdir: $!\n";
+ } elsif (!grep { $! == $_ }
+ (ENOENT, ENOTDIR, EACCES, EPERM, ELOOP)) {
+ } else {
+ print STDERR "check whether to remove $dstdir: $!\n";
+ }
};
}
};
}
@@
-3103,11
+3109,11
@@
sub build_source {
$sourcechanges = "${package}_".(stripepoch $version)."_source.changes";
$dscfn = dscfn($version);
if ($cleanmode eq 'dpkg-source') {
$sourcechanges = "${package}_".(stripepoch $version)."_source.changes";
$dscfn = dscfn($version);
if ($cleanmode eq 'dpkg-source') {
- runcmd_ordryrun_local
(@dpkgbuildpackage, qw(-us -uc -S)
),
- changesopts();
+ runcmd_ordryrun_local
@dpkgbuildpackage, qw(-us -uc -S
),
+
changesopts();
} elsif ($cleanmode eq 'dpkg-source-d') {
} elsif ($cleanmode eq 'dpkg-source-d') {
- runcmd_ordryrun_local
(@dpkgbuildpackage, qw(-us -uc -S -d)
),
- changesopts();
+ runcmd_ordryrun_local
@dpkgbuildpackage, qw(-us -uc -S -d
),
+
changesopts();
} else {
my $pwd = must_getcwd();
my $leafdir = basename $pwd;
} else {
my $pwd = must_getcwd();
my $leafdir = basename $pwd;
@@
-3147,11
+3153,20
@@
sub cmd_sbuild {
or $a cmp $b
} @changesfiles;
fail "wrong number of different changes files (@changesfiles)"
or $a cmp $b
} @changesfiles;
fail "wrong number of different changes files (@changesfiles)"
- unless @changesfiles;
+ unless @changesfiles==2;
+ my $binchanges = parsecontrol($changesfiles[1], "binary changes file");
+ foreach my $l (split /\n/, getfield $binchanges, 'Files') {
+ fail "$l found in binaries changes file $binchanges"
+ if $l =~ m/\.dsc$/;
+ }
runcmd_ordryrun_local @mergechanges, @changesfiles;
my $multichanges = "${package}_".(stripepoch $version)."_multi.changes";
if (act_local()) {
stat_exists $multichanges or fail "$multichanges: $!";
runcmd_ordryrun_local @mergechanges, @changesfiles;
my $multichanges = "${package}_".(stripepoch $version)."_multi.changes";
if (act_local()) {
stat_exists $multichanges or fail "$multichanges: $!";
+ foreach my $cf (glob $pat) {
+ next if $cf eq $multichanges;
+ rename "$cf", "$cf.inmulti" or fail "$cf\{,.inmulti}: $!";
+ }
}
printdone "build successful, results in $multichanges\n" or die $!;
}
}
printdone "build successful, results in $multichanges\n" or die $!;
}