Changeset 1156 in ProjectBuilder for devel/pb/bin/pb


Ignore:
Timestamp:
Jan 13, 2011, 1:18:37 PM (13 years ago)
Author:
Bruno Cornec
Message:
  • Adds a global variable REVISION for version management
  • Do not return in pb_send2target if pb file not available in order to shutdown VM in all cases
  • Code and test sbx2setupvm
  • setup_v now needs a fake pb_version_init fct added at the end of the script
  • Fix pbdistrocheck install comand printing
  • Fix mandralinux old distro build in pb.conf (Note only non symlink release files are important)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/pb/bin/pb

    r1155 r1156  
    17511751            pb_system("sudo chown $UID $ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$","Adapt owner in $tdir to $UID");
    17521752        }
    1753         # return here to avoid breaking the load on VMs/VEs in case of a bad one
    17541753        if (not -f "$ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$") {
    17551754            pb_log(0,"Problem with VM $v on $ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$");
    1756             return;
    1757         }
    1758         open(KEEP,"$ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$") || die "Unable to read $ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$";
    1759         my $src = <KEEP>;
    1760         chomp($src);
    1761         close(KEEP);
    1762         unlink("$ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$");
    1763 
    1764         $src =~ s/^ *//;
    1765         pb_mkdir_p("$ENV{'PBBUILDDIR'}/$odir/$over/$oarch");
    1766         # Change pgben to make the next send2target happy
    1767         my $made = "";
    1768 
    1769         # For VM we don't want shell expansion to hapen locally but remotely
    1770         my $delim = '\'';
    1771         if ($cmt =~ /^VEbuild/) {
    1772             # For VE we need to support shell expansion locally
    1773             $delim = "";
    1774         }   
    1775 
    1776         open(KEEP,"> $ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}") || die "Unable to write $ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}";
    1777         foreach my $p (split(/ +/,$src)) {
    1778             my $j = basename($p);
    1779             pb_system("$cpcmd $cp2target/$delim$p$delim $ENV{'PBBUILDDIR'}/$odir/$over/$oarch 2> /dev/null","Recovery of package $j in $ENV{'PBBUILDDIR'}/$odir/$over/$oarch");
    1780             $made="$made $odir/$over/$oarch/$j"; # if (($dtype ne "rpm") || ($j !~ /.src.rpm$/));
    1781         }
    1782         print KEEP "$made\n";
    1783         close(KEEP);
    1784         pb_system("$shcmd \"rm -rf $tdir $bdir\"","$cmt cleanup");
    1785 
    1786         # Sign packages locally
    1787         if ($dtype eq "rpm") {
     1755        } else {
     1756            open(KEEP,"$ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$") || die "Unable to read $ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$";
     1757            my $src = <KEEP>;
     1758            chomp($src);
     1759            close(KEEP);
     1760            unlink("$ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$");
     1761
     1762            $src =~ s/^ *//;
     1763            pb_mkdir_p("$ENV{'PBBUILDDIR'}/$odir/$over/$oarch");
     1764            # Change pgben to make the next send2target happy
     1765            my $made = "";
     1766   
     1767            # For VM we don't want shell expansion to hapen locally but remotely
     1768            my $delim = '\'';
     1769            if ($cmt =~ /^VEbuild/) {
     1770                # For VE we need to support shell expansion locally
     1771                $delim = "";
     1772            }   
     1773
     1774            open(KEEP,"> $ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}") || die "Unable to write $ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}";
     1775            foreach my $p (split(/ +/,$src)) {
     1776                my $j = basename($p);
     1777                pb_system("$cpcmd $cp2target/$delim$p$delim $ENV{'PBBUILDDIR'}/$odir/$over/$oarch 2> /dev/null","Recovery of package $j in $ENV{'PBBUILDDIR'}/$odir/$over/$oarch");
     1778                $made="$made $odir/$over/$oarch/$j"; # if (($dtype ne "rpm") || ($j !~ /.src.rpm$/));
     1779            }
     1780            print KEEP "$made\n";
     1781            close(KEEP);
     1782            pb_system("$shcmd \"rm -rf $tdir $bdir\"","$cmt cleanup");
     1783
     1784            # Sign packages locally
     1785            if ($dtype eq "rpm") {
    17881786                #pb_system("rpm --addsign --define \"_signature gpg\" --define \"_gpg_name $ENV{'PBPACKAGER'}\" --define \"__gpg_sign_cmd /usr/bin/gpg --batch --no-verbose --no-armor --no-tty --no-secmem-warning -sbo %{__signature_filename} %{__plaintext_filename} --use-agent\" $made","Signing RPM packages packages");
    1789         } elsif ($dtype eq "deb") {
     1787            } elsif ($dtype eq "deb") {
    17901788                #pb_system("debsign $made","Signing DEB packages");
    1791         } else {
    1792             pb_log(0,"I don't know yet how to sign packages for type $dtype.\nPlease give feedback to dev team\n");
    1793         }
    1794 
    1795         # We want to send them to the ssh account so overwrite what has been done before
    1796         undef $pbaccount;
    1797         pb_log(2,"Before sending pkgs, vmexist: $vmexist, vmpid: $vmpid\n");
    1798         pb_send2target("Packages",$odir."-".$over."-".$oarch,$vmexist,$vmpid);
    1799         pb_rm_rf("$ENV{'PBBUILDDIR'}/$odir/$over/$oarch");
     1789            } else {
     1790                pb_log(0,"I don't know yet how to sign packages for type $dtype.\nPlease give feedback to dev team\n");
     1791            }
     1792
     1793            # We want to send them to the ssh account so overwrite what has been done before
     1794            undef $pbaccount;
     1795            pb_log(2,"Before sending pkgs, vmexist: $vmexist, vmpid: $vmpid\n");
     1796            pb_send2target("Packages",$odir."-".$over."-".$oarch,$vmexist,$vmpid);
     1797            pb_rm_rf("$ENV{'PBBUILDDIR'}/$odir/$over/$oarch");
     1798        }
    18001799    }
    18011800    unlink("$ENV{'PBDESTDIR'}/pbscript.$$") if ($cmt =~ /^V[ME]/);
     
    25842583# They are appended at the end.
    25852584
     2585# Define mandatory global vars
    25862586our $pbdebug;
    25872587our $pbLOG;
     
    25972597    ($vmexist,$vmpid) = pb_launchv($vtype,$v,0,0,0);
    25982598
     2599    my $keyfile;
     2600    my $nport;
     2601    my $vmhost;
     2602
    25992603    if ($vtype eq "vm") {
    26002604        # Prepare the key to be used and transfered remotely
    2601         my $keyfile = pb_ssh_get(1);
     2605        $keyfile = pb_ssh_get(1);
    26022606       
    2603         my ($vmhost,$vmport,$vmntp) = pb_conf_get("vmhost","vmport","vmntp");
    2604         my $nport = pb_get_port($vmport->{$ENV{'PBPROJ'}});
     2607        my ($vmport,$vmntp);
     2608        ($vmhost,$vmport,$vmntp) = pb_conf_get("vmhost","vmport","vmntp");
     2609        $nport = pb_get_port($vmport->{$ENV{'PBPROJ'}});
    26052610   
    26062611        # Skip that VM if something went wrong
     
    28372842            my ($pkg) = pb_conf_read("$ENV{'PBDESTDIR'}/$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.pb","pbpkg");
    28382843            die "Unable to get package list" if (not defined $pkg);
    2839             my ($vepath) = pb_conf_get("vepath");
    28402844
    28412845            # We consider 2 specific packages
     
    28452849            my ($pbver1,$tmp1) = split(/-/,$vertag1);
    28462850            my ($pbver2,$tmp2) = split(/-/,$vertag2);
    2847             # Copy inside the VM
    2848             copy("$ENV{'PBDESTDIR'}/ProjectBuilder-$pbver1.tar.gz","$vepath->{$ENV{'PBPROJ'}}/$ddir/$dver/$darch/tmp");
    2849             copy("$ENV{'PBDESTDIR'}/project-builder-$pbver2.tar.gz","$vepath->{$ENV{'PBPROJ'}}/$ddir/$dver/$darch/tmp");
     2851            # Copy inside the VE
     2852            if ($vtype eq "ve") {
     2853                my ($vepath) = pb_conf_get("vepath");
     2854                copy("$ENV{'PBDESTDIR'}/ProjectBuilder-$pbver1.tar.gz","$vepath->{$ENV{'PBPROJ'}}/$ddir/$dver/$darch/tmp");
     2855                copy("$ENV{'PBDESTDIR'}/project-builder-$pbver2.tar.gz","$vepath->{$ENV{'PBPROJ'}}/$ddir/$dver/$darch/tmp");
     2856            } else {
     2857                pb_system("scp -i $keyfile -p -o UserKnownHostsFile=/dev/null -P $nport $ENV{'PBDESTDIR'}/ProjectBuilder-$pbver1.tar.gz $ENV{'PBDESTDIR'}/project-builder-$pbver2.tar.gz root\@$vmhost->{$ENV{'PBPROJ'}}:/tmp","Copying local project files to $vtype.");
     2858            }
    28502859            $cmdget = "mv /tmp/ProjectBuilder-$pbver1.tar.gz ProjectBuilder-latest.tar.gz ; mv /tmp/project-builder-$pbver2.tar.gz project-builder-latest.tar.gz";
    28512860        } else {
     
    29042913    }
    29052914
    2906     # Adds pb_distro_init and all functions needed from ProjectBuilder::Distribution and Base
     2915    # Adds pb_distro_init and all functions needed from ProjectBuilder::Distribution, Conf and Base
    29072916    foreach my $d (@INC) {
    29082917        my @f = ("$d/ProjectBuilder/Base.pm","$d/ProjectBuilder/Distribution.pm","$d/ProjectBuilder/Conf.pm");
     
    29212930        }
    29222931    }
     2932    # Use a fake pb_version_init version here
     2933    print SCRIPT << "EOF";
     2934sub pb_version_init {
     2935
     2936return("$projectbuilderver","$projectbuilderrev");
     2937}
     29381;
     2939EOF
    29232940    close(SCRIPT);
    29242941    chmod 0755,"$pbscript";
Note: See TracChangeset for help on using the changeset viewer.