X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=bin%2Fwanna-build;h=5003b661eefc6dbb164c8c9abdf92d7cfaa7388c;hb=9023a012bb2199ba4dbeb34cb487632a0c37764b;hp=ba9af8499d90b2cc00e53de16d07e79c66ef629b;hpb=855139a22236ef3381d91e13dc6986f116f6d97e;p=wannabuild.git diff --git a/bin/wanna-build b/bin/wanna-build index ba9af84..5003b66 100755 --- a/bin/wanna-build +++ b/bin/wanna-build @@ -190,8 +190,6 @@ GetOptions( 'distribution-aliases' => \&_set_mode, ) or usage(); $list_min_age = -1 * $list_max_age if $list_max_age; -print "export: $export_to\n"; -print "mode: $op_mode\n"; my $dbh; @@ -841,11 +839,6 @@ sub add_one_failed { $pkg->{'builder'} = $user; $pkg->{'failed'} .= "\n" if $pkg->{'failed'}; $pkg->{'failed'} .= $fail_reason; - if (defined $pkg->{'permbuildpri'}) { - $pkg->{'buildpri'} = $pkg->{'permbuildpri'}; - } else { - delete $pkg->{'buildpri'}; - } log_ta( $pkg, "--failed" ); update_source_info($pkg); print "$name: registered as failed\n" if $verbose; @@ -883,7 +876,6 @@ sub add_one_notforus { $pkg->{'package'} = $name; delete $pkg->{'builder'}; delete $pkg->{'depends'}; - delete $pkg->{'buildpri'}; delete $pkg->{'binary_nmu_version'}; delete $pkg->{'binary_nmu_changelog'}; log_ta( $pkg, "--no-build" ); @@ -1004,6 +996,7 @@ sub set_one_binnmu { delete $pkg->{'depends'}; delete $pkg->{'binary_nmu_version'}; delete $pkg->{'binary_nmu_changelog'}; + delete $pkg->{'buildpri'}; } elsif ($binNMUver <= $pkg->{'binary_nmu_version'}) { print "$name: already building binNMU $pkg->{'binary_nmu_version'}\n"; return; @@ -1011,8 +1004,7 @@ sub set_one_binnmu { $pkg->{'binary_nmu_version'} = $binNMUver; $pkg->{'binary_nmu_changelog'} = $fail_reason; $pkg->{'notes'} = 'out-of-date'; - $pkg->{'buildpri'} = $pkg->{'permbuildpri'} - if (defined $pkg->{'permbuildpri'}); + delete $pkg->{'buildpri'}; if (defined $distributions{$distribution}{noadw}) { change_state( \$pkg, 'Installed' ); } else { @@ -1052,6 +1044,7 @@ sub set_one_binnmu { $pkg->{'binary_nmu_version'} = $binNMUver; $pkg->{'binary_nmu_changelog'} = $fail_reason; $pkg->{'notes'} = 'out-of-date'; + delete $pkg->{'buildpri'}; log_ta( $pkg, "--binNMU" ); update_source_info($pkg); print "${name}: registered for binNMU $fullver\n" if $verbose; @@ -1083,13 +1076,8 @@ sub set_one_buildpri { return; } if ( $build_priority == 0 ) { - delete $pkg->{'buildpri'} - if $key eq 'permbuildpri' and defined $pkg->{'buildpri'} - and $pkg->{'buildpri'} == $pkg->{$key}; delete $pkg->{$key}; } else { - $pkg->{'buildpri'} = $build_priority - if $key eq 'permbuildpri'; $pkg->{$key} = $build_priority; } update_source_info($pkg); @@ -1151,11 +1139,6 @@ sub add_one_depwait { } change_state( \$pkg, 'Dep-Wait' ); $pkg->{'builder'} = $user; - if (defined $pkg->{'permbuildpri'}) { - $pkg->{'buildpri'} = $pkg->{'permbuildpri'}; - } else { - delete $pkg->{'buildpri'}; - } my $deplist = parse_deplist( $pkg->{'depends'} ); my $new_deplist = parse_deplist( $fail_reason ); # add new dependencies, maybe overwriting old entries @@ -1259,7 +1242,7 @@ sub sort_list_func { my $map_funcs = { 'C' => ['<->', sub { return $_[0]->{'calprio'}; }], 'W' => ['<->', sub { return $_[0]->{'state_days'}; }], - 'P' => ['<->', sub { return $_[0]->{'buildpri'}; }], + 'P' => ['<->', sub { return ($_[0]->{'buildpri'}//0) + ($_[0]->{'permbuildpri'}//0); }], 'p' => ['<=>', sub { return $prioval{$_[0]->{'priority'}//""}//0; }], 's' => ['<=>', sub { return $sectval{$_[0]->{'section'}//""}//0; }], 'n' => ['cmp', sub { return $_[0]->{'package'}; }], @@ -1404,7 +1387,7 @@ Text could contain further %. To start with !, use %! no warnings; my $c = "$pkg->{'priority'}:$pkg->{'notes'}"; $c .= ":PREV-FAILED" if $pkg->{'previous_state'} && $pkg->{'previous_state'} =~ /^Failed/; - $c .= ":bp{" . $pkg->{'buildpri'} . "}" if defined $pkg->{'buildpri'}; + $c .= ":bp{" . (($pkg->{'buildpri'}//0)+($pkg->{'permbuildpri'}//0)) . "}" if (($pkg->{'buildpri'}//0)+($pkg->{'permbuildpri'}//0)); $c .= ":binNMU{" . $pkg->{'binary_nmu_version'} . "}" if defined $pkg->{'binary_nmu_version'}; $c .= ":calprio{". $pkg->{'calprio'}."}"; $c .= ":days{". $pkg->{'state_days'}."}"; @@ -1461,6 +1444,7 @@ sub list_packages { undef $printformat if ($ownprintformat && $ownprintformat eq 'none'); foreach $pkg (sort sort_list_func @list) { + no warnings; if ($printformat) { print print_format($printformat, $pkg, {'cnt' => $cnt, 'scnt' => \%scnt})."\n"; ++$cnt; @@ -2361,12 +2345,13 @@ sub parse_all_v3 { foreach my $name (keys %$srcs) { next if $name eq '_binary'; - # state = installed, out-of-date, uncompiled, not-for-us, auto-not-for-us + # state = installed, out-of-date, uncompiled, packages-arch-specific, overwritten-by-arch-all, arch-not-in-arch-list, arch-all-only my $pkgs = $srcs->{$name}; + next if isin($pkgs->{'status'}, qw ); my $pkg = $db->{$name}; unless ($pkg) { - next SRCS if $pkgs->{'status'} eq 'not-for-us'; + next SRCS if $pkgs->{'status'} eq 'packages-arch-specific'; my $logstr = sprintf("merge-v3 %s %s_%s (%s, %s):", $vars->{'time'}, $name, $pkgs->{'version'}, $vars->{'arch'}, $vars->{'suite'}); # does at least one binary exist in the database and is more recent - if so, we're probably just outdated, ignore the source package @@ -2378,18 +2363,22 @@ sub parse_all_v3 { } $pkg->{'package'} = $name; } + $pkg->{'version'} ||= ""; + $pkg->{'state'} ||= ""; my $logstr = sprintf("merge-v3 %s %s_%s", $vars->{'time'}, $name, $pkgs->{'version'}). ($pkgs->{'binnmu'} ? ";b".$pkgs->{'binnmu'} : ""). sprintf(" (%s, %s, previous: %s", $vars->{'arch'}, $vars->{'suite'}, $pkg->{'version'}//""). ($pkg->{'binary_nmu_version'} ? ";b".$pkg->{'binary_nmu_version'} : ""). - ", $pkg->{'state'}):"; + ", $pkg->{'state'}".($pkg->{'notes'} ? "/".$pkg->{'notes'} : "")."):"; if (isin($pkgs->{'status'}, qw (installed related)) && $pkgs->{'version'} eq $pkg->{'version'} && ($pkgs->{'binnmu'}//0) < int($pkg->{'binary_nmu_version'}//0)) { $pkgs->{'status'} = 'out-of-date'; } - if (isin($pkgs->{'status'}, qw (installed related auto-not-for-us))) { + if (isin($pkgs->{'status'}, qw )) { my $change = 0; - my $tstate = {'installed' => 'Installed', 'related' => 'Installed', 'auto-not-for-us' => 'Auto-Not-For-Us'}->{$pkgs->{'status'}}; + my $tstate = {'installed' => 'Installed', 'related' => 'Installed', + 'arch-not-in-arch-list' => 'Auto-Not-For-Us', 'packages-arch-specific' => 'Auto-Not-For-Us', 'overwritten-by-arch-all' => 'Auto-Not-For-Us', 'arch-all-only' => 'Auto-Not-For-Us', + }->{$pkgs->{'status'}}; next if isin( $pkg->{'state'}, qw) && isin( $tstate, qw); # if the package is currently current, the status is Installed, not not-for-us if ($pkg->{'state'} ne $tstate) { @@ -2409,9 +2398,12 @@ sub parse_all_v3 { $change++; } } - if (isin($pkgs->{'status'}, qw (related)) and $pkg->{'notes'} ne "related") { - $pkg->{'notes'} = "related"; - $change++; + if (isin($pkgs->{'status'}, qw )) { + my $tnotes = $pkgs->{'status'}; + if (($pkg->{'notes'}//"") ne $tnotes) { + $pkg->{'notes'} = $tnotes; + $change++; + } } if ($change) { print "$logstr set to $tstate/".($pkg->{'notes'}//"")."\n" if $verbose || $simulate; @@ -2421,21 +2413,6 @@ sub parse_all_v3 { next; } - if ($pkgs->{'status'} eq 'not-for-us') { - next if isin( $pkg->{'state'}, qw(Not-For-Us Installed Failed-Removed)); - - if (isin( $pkg->{'state'}, qw(Failed Build-Attempted Built))) { - change_state( \$pkg, "Failed-Removed" ); - log_ta( $pkg, "--merge-v3: Failed-Removed" ) unless $simulate; - update_source_info($pkg) unless $simulate; - print "$logstr (virtually) deleted from database\n" if $verbose || $simulate; - next; - } - - 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 if (!(isin($pkgs->{'status'}, qw (uncompiled out-of-date)))) { print "$logstr package in unknown state: $pkgs->{'status'}\n"; @@ -2467,6 +2444,7 @@ sub parse_all_v3 { delete $pkg->{'builder'}; delete $pkg->{'binary_nmu_version'} unless $pkgs->{'binnmu'}; delete $pkg->{'binary_nmu_changelog'} unless $pkgs->{'binnmu'}; + delete $pkg->{'buildpri'}; log_ta( $pkg, "--merge-v3: needs-build" ) unless $simulate; update_source_info($pkg) unless $simulate; print "$logstr set to needs-builds\n" if $simulate || $verbose;