]> git.donarmstrong.com Git - wannabuild.git/blobdiff - bin/wanna-build
Merge commit 'origin/master'
[wannabuild.git] / bin / wanna-build
index ed0477c53fd448fcb6f05921dd95dac00db37e87..2f3cfd66fb88fb66851df9060fcacd4188e873c2 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 )
@@ -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 );
        
@@ -2186,6 +2188,7 @@ sub write_db {
                                if (!defined($ui->{'User'}));
                            foreach $key (keys %{$ui}) {
                                my $val = $ui->{$key};
+                                $val =~ s/\n*$//;
                                $val =~ s/^/ /mg;
                                $val =~ s/^ $/ ./mg;
                                print F "$key: $val\n";
@@ -2196,7 +2199,7 @@ sub write_db {
                else {
                        foreach $key (keys %{$pkg}) {
                                my $val = $pkg->{$key};
-                               chomp( $val );
+                                $val =~ s/\n*$//;
                                $val =~ s/^/ /mg;
                                $val =~ s/^ $/ ./mg;
                                print F "$key: $val\n";
@@ -2319,6 +2322,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 +2600,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