]> git.donarmstrong.com Git - wannabuild.git/blobdiff - bin/wanna-build
Always base lock fail name on master database
[wannabuild.git] / bin / wanna-build
index c093a7f13b31faac485ca90f5a8328655d3208dc..64adfaf6fedd2e423c1d1e329c4303c2398135b3 100755 (executable)
@@ -336,8 +336,10 @@ if ($op_mode eq "start-transaction") {
 }
 
 if ($op_mode eq "commit-transaction") {
-       move ( db_filename_transaction( $distribution ), db_filename_master( $distribution ))
-               or die "Move failed: $!";
+       # we need to copy here to preserve the owner and group of the file
+       copy ( db_filename_transaction( $distribution ), db_filename_master( $distribution ))
+               or die "Copy failed: $!";
+       unlink db_filename_transaction( $distribution );
        open TLOG, "<", db_transactlog_transaction( $distribution )
                or die "Could not open logfile from transaction: $!";
        open LOG, ">>", db_transactlog_master( $distribution )
@@ -1900,7 +1902,7 @@ sub info_packages {
                                my $val = $pkg->{$key};
                                chomp( $val );
                                $val = "\n$val" if isin( $key, qw(Failed Old-Failed));
-                               $val =~ s/\n/\n /g;
+                               $val =~ s/\n/\n    /g;
                                printf "  %-20s: %s\n", $key, $val;
                        }
                        foreach $key (sort keys %$pkg) {
@@ -1908,7 +1910,7 @@ sub info_packages {
                                my $val = $pkg->{$key};
                                chomp( $val );
                                $val = "\n$val" if isin( $key, qw(Failed Old-Failed));
-                               $val =~ s/\n/\n /g;
+                               $val =~ s/\n/\n    /g;
                                printf "  %-20s: %s\n", $key, $val;
                        }
                }
@@ -1967,7 +1969,7 @@ sub forget_users {
 sub lock_db {
        my $dist = shift;
        my $try = 0;
-       my $lockfile = db_filename($dist) . ".lock";
+       my $lockfile = db_lockfilename($dist);
        local( *F );
        
        print "Locking $dist database\n" if $verbose >= 2;
@@ -2012,7 +2014,7 @@ sub lock_db {
 
 sub unlock_db {
        my $dist = shift;
-       my $lockfile = db_filename($dist) . ".lock";
+       my $lockfile = db_lockfilename($dist);
 
        if (!$main::keep_lock{$dist}) {
                print "Unlocking $dist database\n" if $verbose >= 2;
@@ -2021,7 +2023,7 @@ sub unlock_db {
 }
 
 sub create_maintlock {
-       my $lockfile = db_filename("maintenance") . ".lock";
+       my $lockfile = db_lockfilename("maintenance");
        my $try = 0;
        local( *F );
        
@@ -2060,14 +2062,14 @@ sub create_maintlock {
 }
 
 sub remove_maintlock {
-       my $lockfile = db_filename("maintenance") . ".lock";
+       my $lockfile = db_lockfilename("maintenance");
 
        print "Removing maintenance lock\n" if $verbose >= 2;
        unlink $lockfile;
 }
 
 sub waitfor_maintlock {
-       my $lockfile = db_filename("maintenance") . ".lock";
+       my $lockfile = db_lockfilename("maintenance");
        my $try = 0;
        local( *F );
        
@@ -2319,6 +2321,11 @@ sub db_filename_transaction {
        return "$conf::basedir/$conf::dbbase-$dist-transaction";
 }
 
+sub db_lockfilename {
+       my $dist = shift;
+       return db_filename_master($dist) . ".lock";
+}
+
 
 sub db_transactlog {
        my $dist = shift;
@@ -2592,6 +2599,9 @@ Options:
         for some source dependencies to become available
     --binNMU num: Schedule a re-build of the package with unchanged source, but
          a new version number (source-version + "+b<num>")
+    --give-back: Mark a package as ready to build that is in state Building,
+        Built or Build-Attempted. To give back a package in state Failed, use
+        --override
     --merge-quinn: Merge quinn-diff output into database.
     --merge-packages: Merge Packages files into database.
     --pretend-avail: Pretend that given packages are available now and give