wanna-build: fix typo that made all packages to be rebuild
wanna-build: add safe guard that prevent that packages are rebuild without good reason
wanna-build/merge-v3: disable an (supposed to be no-op) loop until there is work to do
my @psrcs = &parse_argv( \@ARGV, '.');
use WB::QD;
my $srcs = WB::QD::readsourcebins($arch, $Pas, \@isrcs, \@ipkgs);
my @psrcs = &parse_argv( \@ARGV, '.');
use WB::QD;
my $srcs = WB::QD::readsourcebins($arch, $Pas, \@isrcs, \@ipkgs);
- my $psrcs = WB::QD::readsourcebins($arch, $Pas, \@psrcs, []);
- foreach my $k (keys %$$psrcs) {
- next if $$srcs->{$k};
- my $pkg = $$psrcs->{$k};
- $pkg->{'status'} = 'related';
- $$srcs->{$k} = $pkg;
+ if (@psrcs) {
+ my $psrcs = WB::QD::readsourcebins($arch, $Pas, \@psrcs, []);
+ foreach my $k (keys %$$psrcs) {
+ next if $$srcs->{$k};
+ my $pkg = $$psrcs->{$k};
+ $pkg->{'status'} = 'related';
+ $$srcs->{$k} = $pkg;
+ }
}
parse_all_v3($$srcs);
@bpkgs = @ipkgs unless @bpkgs;
}
parse_all_v3($$srcs);
@bpkgs = @ipkgs unless @bpkgs;
}
print "$name: $ok\n" if $verbose;
} else {
}
print "$name: $ok\n" if $verbose;
} else {
print " - status: ok\n";
if ($pkg->{'binary_nmu_version'}) {
print " - binNMU:\n";
print " - status: ok\n";
if ($pkg->{'binary_nmu_version'}) {
print " - binNMU:\n";
if ($api < 1) {
print "$name: NOT OK!\n $reason\n";
} else {
if ($api < 1) {
print "$name: NOT OK!\n $reason\n";
} else {
- print "$name:\n - status: not ok\n - reason: \"$reason\"\n";
+ print "- $name:\n - status: not ok\n - reason: \"$reason\"\n";
"by $real_user as $user";
if ($simulate) {
"by $real_user as $user";
if ($simulate) {
- printf ("update transactions: %s %s %s %s %s %s %s %s\n",
+ printf "update transactions: %s %s %s %s %s %s %s %s\n",
$pkg->{'package'}, $distribution,
$pkg->{'version'}, $action, $prevstate, $pkg->{'state'},
$pkg->{'package'}, $distribution,
$pkg->{'version'}, $action, $prevstate, $pkg->{'state'},
return;
}
$dbh->do('INSERT INTO ' . transactions_table_name() .
return;
}
$dbh->do('INSERT INTO ' . transactions_table_name() .
SRCS:
foreach my $name (keys %$srcs) {
SRCS:
foreach my $name (keys %$srcs) {
- next if $name eq '_binaries';
+ next if $name eq '_binary';
# state = installed, out-of-date, uncompiled, not-for-us
my $pkgs = $srcs->{$name};
# state = installed, out-of-date, uncompiled, not-for-us
my $pkgs = $srcs->{$name};
unless ($pkg) {
next SRCS if $pkgs->{'status'} eq 'not-for-us';
unless ($pkg) {
next SRCS if $pkgs->{'status'} eq 'not-for-us';
+ my $logstr = "merge-v3 ".$name." ($arch):";
# does at least one binary exist in the database and is more recent - if so, we're probably just outdated, ignore the source package
for my $bin (@{$pkgs->{'binary'}}) {
if ($binary->{$bin} and vercmp($pkgs->{'version'}, $binary->{$bin}) < 0) {
# does at least one binary exist in the database and is more recent - if so, we're probably just outdated, ignore the source package
for my $bin (@{$pkgs->{'binary'}}) {
if ($binary->{$bin} and vercmp($pkgs->{'version'}, $binary->{$bin}) < 0) {
- print "merge-v3: skiping $name ($arch)\n" if $verbose || $simulate;
+ print "$logstr skipped because binaries (assumed to be) overwritten\n" if $verbose || $simulate;
next SRCS;
}
}
$pkg->{'package'} = $name;
}
next SRCS;
}
}
$pkg->{'package'} = $name;
}
+ my $logstr = "merge-v3 ".$name."_$pkgs->{'version'} ($arch, previous-state: $pkg->{'state'}):";
- if (isin($pkgs->{'status'}, qw (installed, related)) && $pkg->{'binary_nmu_version'} && $pkgs->{'binnmu'} < $pkg->{'binary_nmu_version'}) {
+ if (isin($pkgs->{'status'}, qw (installed related)) && $pkg->{'binary_nmu_version'} && $pkgs->{'binnmu'} < $pkg->{'binary_nmu_version'}) {
$pkgs->{'status'} = 'out-of-date';
}
$pkgs->{'status'} = 'out-of-date';
}
- if (isin($pkgs->{'status'}, qw (installed, related))) {
+ if (isin($pkgs->{'status'}, qw (installed related))) {
if ($pkg->{'state'} ne 'Installed') {
change_state( \$pkg, 'Installed');
$pkg->{'version'} = $pkgs->{'version'};
if ($pkg->{'state'} ne 'Installed') {
change_state( \$pkg, 'Installed');
$pkg->{'version'} = $pkgs->{'version'};
if (isin($pkgs->{'status'}, qw (related))) {
$pkg->{'notes'} = "related";
}
if (isin($pkgs->{'status'}, qw (related))) {
$pkg->{'notes'} = "related";
}
- print "merge-v3: set $name ($arch) to installed/".$pkg->{'notes'}."\n" if $verbose || $simulate;
+ print "$logstr set to installed/".$pkg->{'notes'}."\n" if $verbose || $simulate;
log_ta( $pkg, "--merge-v3: installed" ) unless $simulate;
update_source_info($pkg) unless $simulate;
}
log_ta( $pkg, "--merge-v3: installed" ) unless $simulate;
update_source_info($pkg) unless $simulate;
}
change_state( \$pkg, "Failed-Removed" );
log_ta( $pkg, "--merge-v3: Failed-Removed" ) unless $simulate;
update_source_info($pkg) unless $simulate;
change_state( \$pkg, "Failed-Removed" );
log_ta( $pkg, "--merge-v3: Failed-Removed" ) unless $simulate;
update_source_info($pkg) unless $simulate;
- print "$name ($pkg->{'version'}): (virtually) deleted from database\n" if $verbose || $simulate;
+ print "$logstr (virtually) deleted from database\n" if $verbose || $simulate;
- print "should delete $name (not-for-us)\n" if $verbose || $simulate || 1; # not implemented yet on purpose
+ print "$logstr should delete (not-for-us according to P-a-s)\n" if $verbose || $simulate || 1; # not implemented yet on purpose
next;
}
# only uncompiled / out-of-date are left, so check if anything new
next;
}
# only uncompiled / out-of-date are left, so check if anything new
+ if (!(isin($pkgs->{'status'}, qw (uncompiled out-of-date)))) {
+ print "$logstr package in unknown state: $pkgs->{'status'}\n";
+ next SRCS;
+ }
next if $pkgs->{'version'} eq $pkg->{'version'};
next if $pkgs->{'version'} eq $pkg->{'version'};
- print "should set $name to needs-builds\n" if $simulate;
if (defined( $pkg->{'state'} ) && isin( $pkg->{'state'}, qw(Building Built Build-Attempted))) {
send_mail( $pkg->{'builder'},
"new version of $name (dist=$distribution)",
if (defined( $pkg->{'state'} ) && isin( $pkg->{'state'}, qw(Building Built Build-Attempted))) {
send_mail( $pkg->{'builder'},
"new version of $name (dist=$distribution)",
"compiling $name yet, you can stop it to save some work.\n".
"Just to inform you...\n".
"(This is an automated message)\n" ) unless $simulate;
"compiling $name yet, you can stop it to save some work.\n".
"Just to inform you...\n".
"(This is an automated message)\n" ) unless $simulate;
- print "$name: new version ($pkgs->{'version'}) while building $pkg->{'version'} -- sending mail to builder ($pkg->{'builder'})\n"
+ print "$logstr new version while building $pkg->{'version'} -- sending mail to builder ($pkg->{'builder'})\n"
if $verbose || $simulate;
}
change_state( \$pkg, 'Needs-Build');
if $verbose || $simulate;
}
change_state( \$pkg, 'Needs-Build');
delete $pkg->{'binary_nmu_changelog'};
log_ta( $pkg, "--merge-v3: needs-build" ) unless $simulate;
update_source_info($pkg) unless $simulate;
delete $pkg->{'binary_nmu_changelog'};
log_ta( $pkg, "--merge-v3: needs-build" ) unless $simulate;
update_source_info($pkg) unless $simulate;
- print "$name ($pkgs->{'version'} / $arch) needs rebuilding now.\n" if $verbose || $simulate;
+ print "$logstr set to needs-builds\n" if $simulate || $verbose;
}
foreach my $name (keys %$db) {
next if $srcs->{$name};
my $pkg = $db->{$name};
}
foreach my $name (keys %$db) {
next if $srcs->{$name};
my $pkg = $db->{$name};
+ my $logstr = "merge-v3 ".$name."_$pkg->{'version'} ($arch, previous-state: $pkg->{'state'}):";
# package disappeared - delete
change_state( \$pkg, 'deleted' );
log_ta( $pkg, "--merge-v3: deleted" ) unless $simulate;
# package disappeared - delete
change_state( \$pkg, 'deleted' );
log_ta( $pkg, "--merge-v3: deleted" ) unless $simulate;
- print "$name ($pkg->{'version'} / $arch) deleted from database\n" if $verbose || $simulate;
+ print "$logstr deleted from database\n" if $verbose || $simulate;
del_source_info($name) unless $simulate;
delete $db->{$name};
}
del_source_info($name) unless $simulate;
delete $db->{$name};
}
local($/) = ""; # read in paragraph mode
foreach my $s (@$SRC) {
local($/) = ""; # read in paragraph mode
foreach my $s (@$SRC) {
- my $S = new IO::Uncompress::AnyInflate($s) || return "can't open $s";
+ print "SRC: $s\n";
+ my $S = new IO::Uncompress::AnyInflate($s) || return "WB::QD::SRC can't open $s";
while(<$S>) {
my $p={};
/^Package:\s*(\S+)$/mi and $p->{'name'} = $1;
while(<$S>) {
my $p={};
/^Package:\s*(\S+)$/mi and $p->{'name'} = $1;
}
foreach my $p (@$BIN) {
}
foreach my $p (@$BIN) {
- my $P = new IO::Uncompress::AnyInflate($p) || return "can't open $p";
+ my $P = new IO::Uncompress::AnyInflate($p) || return "WB::QD::PKGS can't open $p";
while(<$P>) {
my $p;
/^Version:\s*(\S+)$/mi and $p->{'version'} = $1;
while(<$P>) {
my $p;
/^Version:\s*(\S+)$/mi and $p->{'version'} = $1;