Changeset 1531 in ProjectBuilder
- Timestamp:
- May 13, 2012, 4:27:42 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
devel/rpmbootstrap/bin/rpmbootstrap
r1429 r1531 118 118 at the end of the chroot build. 119 119 120 =item B<--no-stop-on-error> 121 122 Continue through errors with best effort. 123 120 124 =back 121 125 … … 170 174 # --------------------------------------------------------------------------- 171 175 176 $Global::pb_stop_on_error = 1; 172 177 my ($projectbuilderver,$projectbuilderrev) = pb_version_init(); 173 178 my $appname = "rpmbootstrap"; … … 191 196 "add|a=s" => \$opts{'a'}, 192 197 "version|V=s" => \$opts{'V'}, 198 "stop-on-error!" => \$Global::pb_stop_on_error, 193 199 ) || pb_syntax(-1,0); 194 200 … … 247 253 if (not defined $vepath) { 248 254 my ($vestdpath) = pb_conf_get("vepath"); 249 $vepath = "$vestdpath->{'default'}/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}"if (defined $vestdpath->{'default'});255 $vepath = pb_path_expand("$vestdpath->{'default'}/$pbos->{'name'}/$pbos->{'version'}/$pbos->{'arch'}") if (defined $vestdpath->{'default'}); 250 256 } 251 257 … … 259 265 my ($rbscachedir) = pb_conf_get_if("cachedir"); 260 266 my ($pkgs,$mirror) = pb_distro_get_param($pbos,pb_conf_get("rbsmindep","rbsmirrorsrv")); 267 die "No packages defined for $pbos->{name}-$pbos->{version}-$pbos->{arch}" unless $pkgs =~ /\w/; 261 268 262 269 my $cachedir = "/var/cache/rpmbootstrap"; … … 373 380 my $warning = 0; 374 381 my $lwpkg =""; 382 my @installed_packages; 383 375 384 foreach my $p (split(/,/,$pkgs)) { 376 385 pb_log(1,"Processing package $p ...\n"); … … 408 417 unlink("$cachedir/$p1"); 409 418 } 410 419 push(@installed_packages, $p); 411 420 } 412 421 } else { … … 452 461 pb_mkdir_p("$vepath/usr/lib/python2.4/site-packages/urlgrabber.skx"); 453 462 foreach my $i (<$vepath/usr/lib/python2.4/site-packages/urlgrabber/keepalive.*>) { 454 463 move($i,"$vepath/usr/lib/python2.4/site-packages/urlgrabber.skx/"); 455 464 } 456 465 } … … 460 469 # 461 470 pb_mkdir_p("$vepath/proc"); 462 pb_system("mount -o bind /proc $vepath/proc","Mounting /proc") ;471 pb_system("mount -o bind /proc $vepath/proc","Mounting /proc") unless (-d "$vepath/proc/$$";); 463 472 464 473 # … … 484 493 # $releasever also needs to be filtered 485 494 # yum.conf as well 486 foreach my $i (<$vepath/etc/yum.repos.d/* >,"$vepath/etc/yum.conf") {495 foreach my $i (<$vepath/etc/yum.repos.d/*.repo>,"$vepath/etc/yum.conf") { 487 496 pb_system("sed -i -e 's/\$basearch/$pbos->{'arch'}/g' $i","","quiet"); 488 497 pb_system("sed -i -e 's/\$releasever/$pbos->{'version'}/g' $i","","quiet"); … … 492 501 } 493 502 $minipkglist = "ldconfig yum passwd vim-minimal dhclient authconfig"; 503 # TODO 504 # $minipkglist = join(" ", "ldconfig yum passwd vim-minimal dhclient authconfig", @installed_packages); 494 505 } elsif ($pbos->{'install'} =~ /zypper/) { 495 506 pb_mkdir_p("$vepath/etc/zypp/repos.d"); … … 500 511 pb_system("chroot $vepath /bin/bash -c \"yes | /usr/bin/zypper sa $baseurl $pbos->{'name'}-$pbos->{'version'}\"","Bootstrapping Zypper"); 501 512 } else { 513 pb_system("chroot $vepath /bin/bash -c \"/usr/bin/zypper rr $pbos->{'name'}-$pbos->{'version'}\"","Bootstrapping Zypper",undef,1); # don't care if remove fails if add succeeds. 502 514 pb_system("chroot $vepath /bin/bash -c \"/usr/bin/zypper ar $baseurl $pbos->{'name'}-$pbos->{'version'}\"","Bootstrapping Zypper"); 503 515 } … … 512 524 close(REPO); 513 525 $minipkglist = "zypper"; 526 # TODO: Re-installing packages missing and necessary on opensuse 11.4 to get /etc/passwd created. 527 # $minipkglist = join(" ", "zypper", @installed_packages); 514 528 } elsif ($pbos->{'install'} =~ /urpmi/) { 515 529 # Setup the repo 516 530 my $baseurl = dirname(dirname(dirname($mirror))); 517 531 pb_system("chroot $vepath /bin/bash -c \"urpmi.addmedia --distrib $baseurl\"","Bootstrapping URPMI"); 532 # TODO here too ? 518 533 $minipkglist = "ldconfig urpmi passwd vim-minimal dhcp-client"; 519 534 } … … 525 540 $pbos->{'install'} =~ s/sudo//g; 526 541 pb_system("chroot $vepath /bin/bash -c \"$pbos->{'install'} $minipkglist \"","Bootstrapping OS by running $pbos->{'install'} $minipkglist"); 542 543 # CentOS6 will replace the yum.repos.d files; oddly it will leave the yum.conf file alone and make the new one ".rpmnew" 544 if (($pbos->{'name'} eq "centos") && ($pbos->{'version'} =~ /^6.*/)) { 545 pb_log(0,"Fixing $pbos->{'name'} $pbos->{'version'} bug for yum conf files"); 546 foreach my $from (<$vepath/etc/yum.repos.d/*.rpmorig>) { 547 my $to = $from; 548 $to =~ s/.rpmorig$//; 549 pb_system("mv $from $to", "Recover $from"); 550 } 551 } 527 552 528 553 # … … 553 578 } 554 579 580 if ($warning > 0) { 581 pb_log(0,"\n\n\n\n$warning WARNINGS found.\nMaybe you should review your package list for $pbos->{'name'}-$pbos->{'version'}-$pbos->{'arch'}\nand remove$lwpkg\n"); 582 pb_log(0,"waiting 60 seconds to give you a chance to notice.\n"); 583 sleep(60); 584 } 585 555 586 # Function for File::Find 556 587 sub unlink_old_conf {
Note:
See TracChangeset
for help on using the changeset viewer.