X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bin%2Fwanna-build;h=cdfd60c86b03c80684ad730a2c8b476fdfd3c139;hb=4056cd30f3cfda96a2fd3ed622b15cbe31738586;hp=772964c15c7682b12669875580c55bcc6f19e950;hpb=bc8d757377963868b046fa4e6d4087d8f3c0d7d0;p=wannabuild.git diff --git a/bin/wanna-build b/bin/wanna-build index 772964c..cdfd60c 100755 --- a/bin/wanna-build +++ b/bin/wanna-build @@ -25,7 +25,7 @@ $basedir ||= "/var/lib/debbuild"; $dbbase ||= "build-db"; $transactlog ||= "transactions.log"; $mailprog ||= "/usr/sbin/sendmail"; -require "/etc/wanna-build.conf"; +require "/org/wanna-build/etc/wanna-build.conf"; die "$conf::basedir is not a directory\n" if ! -d $conf::basedir; die "dbbase is empty\n" if ! $dbbase; die "transactlog is empty\n" if ! $transactlog; @@ -39,6 +39,7 @@ use POSIX; use FileHandle; use File::Copy; use DBI; +use lib '/org/wanna-build/bin'; use WannaBuild; our ($verbose, $mail_logs, $list_order, $list_state, @@ -896,6 +897,12 @@ sub add_one_needsbuild { } $state = $pkg->{'state'}; + if ($state eq "Needs-Build") + { + print "$name: Already in Needs-Build.\n"; + return; + } + if ($state eq "BD-Uninstallable") { if ($opt_override) { print "$name: Forcing uninstallability mark to be removed. This is not permanent and might be reset with the next trigger run\n"; @@ -937,7 +944,8 @@ sub add_one_needsbuild { } } if (defined ($pkg->{'builder'}) && $user ne $pkg->{'builder'} && - !($pkg->{'builder'} =~ /^(\w+)-\w+/ && $1 eq $user)) { + !($pkg->{'builder'} =~ /^(\w+)-\w+/ && $1 eq $user) && + !$opt_override) { print "$name: not taken by you, but by ". "$pkg->{'builder'}. Skipping.\n"; return; @@ -1843,15 +1851,39 @@ sub info_packages { chomp( $val ); $val = "\n$val" if isin( $key, qw(Failed Old-Failed)); $val =~ s/\n/\n /g; - printf " %-20s: %s\n", $key, $val; + my $print_key = $key; + $print_key = 'Package' if ($key eq 'package'); + $print_key = 'Version' if ($key eq 'version'); + $print_key = 'Builder' if ($key eq 'builder'); + $print_key = 'State' if ($key eq 'state'); + $print_key = 'Section' if ($key eq 'section'); + $print_key = 'Priority' if ($key eq 'priority'); + $print_key = 'Installed-Version' if ($key eq 'installed_version'); + $print_key = 'Previous-State' if ($key eq 'previous_state'); + $print_key = 'State-Change' if ($key eq 'state_change'); + printf " %-20s: %s\n", $print_key, $val; } foreach $key (sort keys %$pkg) { next if isin( $key, @firstkeys ); my $val = $pkg->{$key}; + next if !defined($val); chomp( $val ); $val = "\n$val" if isin( $key, qw(Failed Old-Failed)); $val =~ s/\n/\n /g; - printf " %-20s: %s\n", $key, $val; + my $print_key = $key; + $print_key = 'BD-Problem' if ($key eq 'bd_problem'); + $print_key = 'Binary-NMU-Changelog' if ($key eq 'binary_nmu_changelog'); + $print_key = 'Binary-NMU-Version' if ($key eq 'binary_nmu_version'); + $print_key = 'BuildPri' if ($key eq 'buildpri'); + $print_key = 'Depends' if ($key eq 'depends'); + $print_key = 'Failed' if ($key eq 'failed'); + $print_key = 'Failed-Category' if ($key eq 'failed_category'); + $print_key = 'Notes' if ($key eq 'notes'); + $print_key = 'Distribution' if ($key eq 'distribution'); + $print_key = 'Old-Failed' if ($key eq 'old_failed'); + $print_key = 'PermBuildPri' if ($key eq 'permbuildpri'); + $print_key = 'Rel' if ($key eq 'rel'); + printf " %-20s: %s\n", $print_key, $val; } } } @@ -2324,6 +2356,7 @@ sub usage { Usage: $prgname Options: -v, --verbose: Verbose execution. + -A arch: Architecture this operation is for. --take: Take package for building [default operation] -f, --failed: Record in database that a build failed due to deficiencies in the package (that aren't fixable without a new @@ -2394,7 +2427,8 @@ sub user_table_name { sub get_source_info { my $name = shift; my $pkg = $dbh->selectrow_hashref('SELECT * FROM ' . - table_name() . ' WHERE package = ? AND distribution = ?', + table_name() . ' WHERE package = ? AND distribution = ?' . + 'FOR UPDATE', undef, $name, $distribution); return $pkg; }