X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=dgit;h=51df7c30defe743bd435f8318a718bf4b7e36229;hb=beb3973ddae45ae7e6d11694301463ce732ead79;hp=a4dea9b44f6bd67cba42ebe17c361e27e7eb0004;hpb=bab78c63a571a3e1b9e87acedd7e6ea40c835da2;p=dgit.git diff --git a/dgit b/dgit index a4dea9b4..51df7c30 100755 --- a/dgit +++ b/dgit @@ -147,6 +147,11 @@ sub dscfn ($) { return srcfn($vsn,".dsc"); } +sub changespat ($;$) { + my ($vsn, $arch) = @_; + return "${package}_".(stripepoch $vsn)."_".($arch//'*').".changes"; +} + our $us = 'dgit'; initdebug(''); @@ -1997,12 +2002,11 @@ END } my $head = git_rev_parse('HEAD'); if (!$changesfile) { - my $multi = "$buildproductsdir/". - "${package}_".(stripepoch $cversion)."_multi.changes"; + my $multi = "$buildproductsdir/".changespat $cversion,'multi'; if (stat_exists "$multi") { $changesfile = $multi; } else { - my $pat = "${package}_".(stripepoch $cversion)."_*.changes"; + my $pat = changespat $cversion; my @cs = glob "$buildproductsdir/$pat"; fail "failed to find unique changes file". " (looked for $pat in $buildproductsdir, or $multi);". @@ -3058,7 +3062,7 @@ sub massage_dbp_args ($;$) { push @newcmd, '-nc'; # and some combinations of -S, -b, et al, are errors, rather than # later simply overriding earlier - push @newcmd, '-F' unless grep { m/^-[bBASF]$/ } (@$cmd, @$xargs); + push @newcmd, '-F' unless grep { m/^-[bBASFgG]$/ } (@$cmd, @$xargs); push @newcmd, @$cmd; @$cmd = @newcmd; } @@ -3106,7 +3110,7 @@ sub build_source { $suppress_clean = 1; } build_prep(); - $sourcechanges = "${package}_".(stripepoch $version)."_source.changes"; + $sourcechanges = changespat $version,'source'; $dscfn = dscfn($version); if ($cleanmode eq 'dpkg-source') { runcmd_ordryrun_local @dpkgbuildpackage, qw(-us -uc -S), @@ -3136,7 +3140,7 @@ sub cmd_build_source { sub cmd_sbuild { build_source(); changedir ".."; - my $pat = "${package}_".(stripepoch $version)."_*.changes"; + my $pat = changespat $version; if (act_local()) { stat_exists $dscfn or fail "$dscfn (in parent directory): $!"; stat_exists $sourcechanges @@ -3154,8 +3158,13 @@ sub cmd_sbuild { } @changesfiles; fail "wrong number of different changes files (@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"; + my $multichanges = changespat $version,'multi'; if (act_local()) { stat_exists $multichanges or fail "$multichanges: $!"; foreach my $cf (glob $pat) {