initdebug('%');
enabledebuglevel $ENV{'DGIT_DRS_DEBUG'};
+END { $? = 127; } # deliberate exit uses _exit
+
our $distro = shift @ARGV // die "need DISTRO";
our $repos = shift @ARGV // die "need DGIT-REPOS-DIR";
our $dgitlive = shift @ARGV // die "need DGIT-LIVE-DIR";
+our $distrodir = shift @ARGV // die "need DISTRO-DIR";
our $action = shift @ARGV // die "need ACTION";
our $publicmode = 02775;
sub specific_suite_has_vsn_in_our_history ($) {
my ($suite) = @_;
- my $in_suite = apiquery "/dsc_in_suite/$suite/$pkg";
+ my $in_suite = apiquery "dsc_in_suite/$suite/$pkg";
foreach my $entry (@$in_suite) {
my $vsn = $entry->{version};
die "$pkg ?" unless defined $vsn;
- my $tag = debiantag $vsn;
- $?=0; my $r = system qw(git show-ref --verify --quiet), $tag;
+ my $tagref = "refs/tags/".debiantag $vsn;
+ printdebug " checking history suite=$suite vsn=$vsn tagref=$tagref\n";
+ $?=0; my $r = system qw(git show-ref --verify --quiet), $tagref;
return 1 if !$r;
next if $r==256;
- die "$pkg tag $tag $? $!";
+ die "$pkg tagref $tagref $? $!";
}
return 0;
}
}
sub good_suite_has_vsn_in_our_history () {
- my $suites = apiquery "/suites";
+ my $suites = apiquery "suites";
foreach my $suitei (@$suites) {
my $suite = $suitei->{name};
die unless defined $suite;
$poldbh->do("INSERT INTO taintoverrides".
" (taint_id, deliberately)".
- " VALUES (?, 'include-questionable-history')", {},
- $taint_id);
+ " VALUES (?, '--deliberately-include-questionable-history')",
+ {}, $taint_id);
}
sub add_taint_by_tag ($$) {
}
}
-sub deliberately ($) { return $deliberately{$_[0]}; }
+sub deliberately ($) { return $deliberately{"--deliberately-$_[0]"}; }
sub action_push () {
getpackage();
+ getpushinfo();
+
return 0 unless $pkg_exists;
return 0 unless $pkg_secret;
sub action_push_confirm () {
getpackage();
- die unless @ARGV >= 5;
- my $freshrepo = $ARGV[4];
+ getpushinfo();
+ die unless @ARGV >= 1;
+ my $freshrepo = shift @ARGV;
my $initq = $poldbh->prepare(<<END);
SELECT taint_id, gitobjid FROM taints t
my ($taintinfoq,$overridesanyq,$untaintq,$overridesq);
my $overridesstmt = <<END;
- SELECT deliberately FROM taintoverrides WHERE ( 1
+ SELECT deliberately FROM taintoverrides WHERE (
+ 1=0
END
my @overridesv = sort keys %deliberately;
- $overridesstmt .= join '', (<<END x @overridesv);
+ $overridesstmt .= <<END foreach @overridesv;
OR deliberately = ?
END
$overridesstmt .= <<END;
Reason: $ti->{comment}
END
+ printdebug "SQL overrides: @overridesv $taintid /\n$overridesstmt\n";
+
$overridesq ||= $poldbh->prepare($overridesstmt);
$overridesq->execute(@overridesv, $taintid);
my ($ovwhy) = $overridesq->fetchrow_array();
}
my $sleepy=0;
-our $rcode = 127;
+my $rcode;
for (;;) {
poldb_setup(poldb_path($repos));
$poldbh->rollback;
}
-print STDERR $stderr;
-exit $rcode;
+print STDERR $stderr or die $!;
+flush STDERR or die $!;
+_exit $rcode;