- Timestamp:
- May 9, 2012, 2:46:34 AM (13 years ago)
- Location:
- devel/pb-modules/lib/ProjectBuilder
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
devel/pb-modules/lib/ProjectBuilder/Base.pm
r1505 r1506 41 41 42 42 our @ISA = qw(Exporter); 43 our @EXPORT = qw(pb_mkdir_p pb_system pb_rm_rf pb_get_date pb_log pb_log_init pb_get_uri pb_get_content pb_set_content pb_display_file pb_syntax_init pb_syntax pb_temp_init pb_get_arch pb_get_osrelease pb_check_requirements pb_check_req $pbdebug $pbLOG $pbdisplaytype $pblocale);43 our @EXPORT = qw(pb_mkdir_p pb_system pb_rm_rf pb_get_date pb_log pb_log_init pb_get_uri pb_get_content pb_set_content pb_display_file pb_syntax_init pb_syntax pb_temp_init pb_get_arch pb_get_osrelease pb_check_requirements pb_check_req pb_path_expand $pbdebug $pbLOG $pbdisplaytype $pblocale); 44 44 ($VERSION,$REVISION) = pb_version_init(); 45 45 … … 153 153 unlink("$ENV{'PBTMP'}/system.$$.log") if (-f "$ENV{'PBTMP'}/system.$$.log"); 154 154 $redir = "2>> $ENV{'PBTMP'}/system.$$.log 1>> $ENV{'PBTMP'}/system.$$.log" if ((! defined $verbose) || ($verbose ne "noredir")); 155 156 # If sudo used, then be more verbose 157 pb_log(0,"Executing $cmd\n") if (($pbdebug < 1) && ($cmd =~ /^\s*\S*sudo/o)); 158 155 159 system("$cmd $redir"); 156 160 my $res = $?; … … 494 498 } 495 499 500 =item B<pb_path_expand> 501 502 Expand out a path by environment variables as ($ENV{XXX}) and ~ 503 504 =cut 505 506 sub pb_path_expand { 507 508 my $path = shift; 509 510 eval { $path =~ s/(\$ENV.+\})/$1/eeg; }; 511 $path =~ s/^\~/$ENV{HOME}/; 512 513 return($path); 514 } 515 496 516 =back 497 517 -
devel/pb-modules/lib/ProjectBuilder/Env.pm
r1495 r1506 249 249 } 250 250 # Expand potential env variable in it 251 eval { $ENV{'PBDEFDIR'} =~ s/(\$ENV.+\})/$1/eeg }; 252 251 $ENV{PBDEFDIR} = pb_path_expand($ENV{PBDEFDIR}); 253 252 pb_log(2,"PBDEFDIR: $ENV{'PBDEFDIR'}\n"); 254 253 -
devel/pb-modules/lib/ProjectBuilder/VE.pm
r1352 r1506 10 10 use strict; 11 11 use Data::Dumper; 12 use Carp 'confess'; 12 13 use English; 13 14 use ProjectBuilder::Version; … … 72 73 my $vetype = $ptr->{$ENV{'PBPROJ'}}; 73 74 75 confess "No vetype defined for $ENV{PBPROJ}" unless (defined $vetype); 76 pb_log(1, "Using vetype $vetype for $ENV{PBPROJ}\n"); 77 74 78 if (($vetype eq "chroot") || ($vetype eq "schroot")) { 75 79 … … 83 87 my $arch = pb_get_arch(); 84 88 if ($arch ne $pbos->{'arch'}) { 85 die "Unable to launch a VE of architecture $pbos->{'arch'} on a $arch platform" if (($pbos->{'arch'} eq "x86_64") && ($arch =~ /i?86/));89 die "Unable to launch a VE of architecture $pbos->{'arch'} on a $arch platform" unless (($pbos->{'arch'} =~ /i?86/o) && ($arch eq "x86_64")); 86 90 } 87 91 … … 90 94 $sudocmd ="sudo " if ($EFFECTIVE_USER_ID != 0); 91 95 96 my $root = pb_path_expand($vepath->{$ENV{PBPROJ}}); 92 97 if (((defined $verebuild) && ($verebuild->{$ENV{'PBPROJ'}} =~ /true/i)) || ($pbforce == 1)) { 93 98 my ($verpmtype,$vedebtype) = pb_conf_get("verpmtype","vedebtype"); … … 144 149 145 150 my $command = pb_check_req("rinse",0); 146 pb_system("$sudocmd $command --directory \"$ vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}\" --arch \"$pbos->{'arch'}\" --distribution \"$pbos->{'name'}-$pbos->{'version'}\" --config \"$rbsconf->{$ENV{'PBPROJ'}}\" $b4post $postinstall $rbsopt $addpkgs $rinseverb","Creating the rinse VE for $pbos->{'name'}-$pbos->{'version'} ($pbos->{'arch'})", "verbose");151 pb_system("$sudocmd $command --directory \"$root/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}\" --arch \"$pbos->{'arch'}\" --distribution \"$pbos->{'name'}-$pbos->{'version'}\" --config \"$rbsconf->{$ENV{'PBPROJ'}}\" $b4post $postinstall $rbsopt $addpkgs $rinseverb","Creating the rinse VE for $pbos->{'name'}-$pbos->{'version'} ($pbos->{'arch'})", "verbose"); 147 152 } elsif ($verpmstyle eq "rpmbootstrap") { 148 153 my $rbsverb = ""; … … 206 211 $rbsopt .= " --components=main,universe" if ($pbos->{'name'} eq "ubuntu"); 207 212 208 pb_system("$sudocmd /usr/sbin/debootstrap $dbsverb $rbsopt --arch=$debarch $addpkgs $codename \"$vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}\" $debmir","Creating the debootstrap VE for $pbos->{'name'}-$pbos->{'version'} ($pbos->{'arch'})", "verbose");213 pb_system("$sudocmd mkdir -p $root/$pbos->{name}/$pbos->{version}/$pbos->{arch} ; $sudocmd /usr/sbin/debootstrap $dbsverb $rbsopt --arch=$debarch $addpkgs $codename \"$root/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}\" $debmir","Creating the debootstrap VE for $pbos->{'name'}-$pbos->{'version'} ($pbos->{'arch'})", "verbose"); 209 214 # debootstrap doesn't create an /etc/hosts file 210 if (! -f "$ vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}/etc/hosts" ) {211 pb_system("$sudocmd cp /etc/hosts $ vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}/etc/hosts");215 if (! -f "$root/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}/etc/hosts" ) { 216 pb_system("$sudocmd cp /etc/hosts $root/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}/etc/hosts"); 212 217 } 213 218 } else { … … 222 227 223 228 # Fix modes to allow access to the VE for pb user 224 pb_system("$sudocmd chmod 755 $ vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'} $vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'}/$pbos->{'version'} $vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}","Fixing permissions");229 pb_system("$sudocmd chmod 755 $root/$pbos->{'name'} $root/$pbos->{'name'}/$pbos->{'version'} $root/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}","Fixing permissions"); 225 230 226 231 # Test if an existing snapshot exists and use it if appropriate 227 232 # And also use it of no local extracted VE is present 228 if ((-f "$ vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'}-$pbos->{'version'}-$pbos->{'arch'}.tar.gz") &&233 if ((-f "$root/$pbos->{'name'}-$pbos->{'version'}-$pbos->{'arch'}.tar.gz") && 229 234 (((defined $vesnap->{$v}) && ($vesnap->{$v} =~ /true/i)) || 230 235 ((defined $vesnap->{$ENV{'PBPROJ'}}) && ($vesnap->{$ENV{'PBPROJ'}} =~ /true/i)) || 231 236 ($pbsnap eq 1) || 232 (! -d "$ vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}"))) {233 pb_system("$sudocmd rm -rf $ vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'} ; $sudocmd mkdir -p $vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'} ; $sudocmd tar xz -C $vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'} -f $vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'}-$pbos->{'version'}-$pbos->{'arch'}.tar.gz","Extracting snapshot of $pbos->{'name'}-$pbos->{'version'}-$pbos->{'arch'}.tar.gz under $vepath->{$ENV{'PBPROJ'}}/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}");237 (! -d "$root/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}"))) { 238 pb_system("$sudocmd rm -rf $root/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'} ; $sudocmd mkdir -p $root/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'} ; $sudocmd tar xz -C $root/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'} -f $root/$pbos->{'name'}-$pbos->{'version'}-$pbos->{'arch'}.tar.gz","Extracting snapshot of $pbos->{'name'}-$pbos->{'version'}-$pbos->{'arch'}.tar.gz under $root/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}"); 234 239 } 235 240 # Nothing more to do for VE. No real launch
Note:
See TracChangeset
for help on using the changeset viewer.