]> git.donarmstrong.com Git - wannabuild.git/blobdiff - bin/wanna-build
Don't change state on give-back if we're already in needs-build.
[wannabuild.git] / bin / wanna-build
index f929b46fb338955e179ceb3dc521df431d95a05e..cdfd60c86b03c80684ad730a2c8b476fdfd3c139 100755 (executable)
@@ -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;
@@ -2348,6 +2356,7 @@ sub usage {
 Usage: $prgname <options...> <package_version...>
 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
@@ -2418,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;
 }