Changeset 1156 in ProjectBuilder for devel/pb/bin/pb
- Timestamp:
- Jan 13, 2011, 1:18:37 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
devel/pb/bin/pb
r1155 r1156 1751 1751 pb_system("sudo chown $UID $ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$","Adapt owner in $tdir to $UID"); 1752 1752 } 1753 # return here to avoid breaking the load on VMs/VEs in case of a bad one1754 1753 if (not -f "$ENV{'PBBUILDDIR'}/pbgen-$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.$$") { 1755 1754 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") { 1788 1786 #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") { 1790 1788 #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 } 1800 1799 } 1801 1800 unlink("$ENV{'PBDESTDIR'}/pbscript.$$") if ($cmt =~ /^V[ME]/); … … 2584 2583 # They are appended at the end. 2585 2584 2585 # Define mandatory global vars 2586 2586 our $pbdebug; 2587 2587 our $pbLOG; … … 2597 2597 ($vmexist,$vmpid) = pb_launchv($vtype,$v,0,0,0); 2598 2598 2599 my $keyfile; 2600 my $nport; 2601 my $vmhost; 2602 2599 2603 if ($vtype eq "vm") { 2600 2604 # Prepare the key to be used and transfered remotely 2601 my$keyfile = pb_ssh_get(1);2605 $keyfile = pb_ssh_get(1); 2602 2606 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'}}); 2605 2610 2606 2611 # Skip that VM if something went wrong … … 2837 2842 my ($pkg) = pb_conf_read("$ENV{'PBDESTDIR'}/$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.pb","pbpkg"); 2838 2843 die "Unable to get package list" if (not defined $pkg); 2839 my ($vepath) = pb_conf_get("vepath");2840 2844 2841 2845 # We consider 2 specific packages … … 2845 2849 my ($pbver1,$tmp1) = split(/-/,$vertag1); 2846 2850 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 } 2850 2859 $cmdget = "mv /tmp/ProjectBuilder-$pbver1.tar.gz ProjectBuilder-latest.tar.gz ; mv /tmp/project-builder-$pbver2.tar.gz project-builder-latest.tar.gz"; 2851 2860 } else { … … 2904 2913 } 2905 2914 2906 # Adds pb_distro_init and all functions needed from ProjectBuilder::Distribution and Base2915 # Adds pb_distro_init and all functions needed from ProjectBuilder::Distribution, Conf and Base 2907 2916 foreach my $d (@INC) { 2908 2917 my @f = ("$d/ProjectBuilder/Base.pm","$d/ProjectBuilder/Distribution.pm","$d/ProjectBuilder/Conf.pm"); … … 2921 2930 } 2922 2931 } 2932 # Use a fake pb_version_init version here 2933 print SCRIPT << "EOF"; 2934 sub pb_version_init { 2935 2936 return("$projectbuilderver","$projectbuilderrev"); 2937 } 2938 1; 2939 EOF 2923 2940 close(SCRIPT); 2924 2941 chmod 0755,"$pbscript";
Note:
See TracChangeset
for help on using the changeset viewer.