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


Ignore:
Timestamp:
Feb 9, 2009, 8:12:00 PM (15 years ago)
Author:
Bruno Cornec
Message:

Adds rinse support for VE (begining)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/pb/bin/pb

    r669 r670  
    13541354                $vmexist = 0;
    13551355            }
     1356        } else {
     1357            #VE
     1358            $vmexist = 0;
     1359            $vmpid = 0;
    13561360        }
    13571361
     
    14691473        # Get VE context
    14701474        my ($ptr,$vetmout,$vepath,$verebuild,$veconf,$vepostinstall) = pb_conf_get("vetype","vetmout","vepath","verebuild","veconf");
    1471         my ($veb4pi) = pb_conf_get_if("veb4pi");
     1475        my ($veb4pi,$vepkglist) = pb_conf_get_if("veb4pi","vepkglist");
    14721476        my $vetype = $ptr->{$ENV{'PBPROJ'}};
    14731477
     
    14831487            }
    14841488
     1489            my ($verpmtype) = pb_conf_get("verpmtype");
    14851490            if (($create != 0) || ($verebuild->{$ENV{'PBPROJ'}} eq "true") || ($force == 1)) {
    14861491                # We have to rebuild the chroot
    14871492                if ($dtype eq "rpm") {
    1488                     # This was originaly planed to be used with mock => rinse
    1489                     #pb_system("sudo /usr/sbin/mock --init --resultdir=\"/tmp\" --configdir=\"$veconf->{$ENV{'PBPROJ'}}\" -r $v","Creating the mock VE");
    1490                     # Once setup we need to install some packages, the pb account, ...
    1491                     #pb_system("sudo /usr/sbin/mock --install --configdir=\"$veconf->{$ENV{'PBPROJ'}}\" -r $v su","Configuring the mock VE");
    1492                     my $post = "--before-post-install ";
    1493                     if (defined $veb4pi->{"$ddir-$dver-$darch"}) {
    1494                         $post .= $veb4pi->{"$ddir-$dver-$darch"};
    1495                     } elsif (defined $veb4pi->{"$ddir-$dver"}) {
    1496                         $post .= $veb4pi->{"$ddir-$dver"};
    1497                     } elsif (defined $veb4pi->{"$ddir"}) {
    1498                         $post .= $veb4pi->{"$ddir"};
    1499                     } elsif (defined $veb4pi->{"default"}) {
    1500                         $post .= $veb4pi->{"default"};
    1501                     } else {
    1502                         $post = "";
     1493
     1494                    my $verpmstyle = pb_get_dist_param($ddir,$dver,$darch,$verpmtype);
     1495                    if ($verpmstyle eq "rinse") {
     1496                        # Need to reshape the mirrors generated
     1497                        my $post = "--before-post-install ";
     1498                        my $postparam = pb_get_dist_param($ddir,$dver,$darch,$veb4pi);
     1499                        if ($postparam eq "") {
     1500                            $post = "";
     1501                        } else {
     1502                            $post .= $postparam;
     1503                        }
     1504
     1505                        # Need to reshape the package list for pb
     1506                        my $addpkgs;
     1507                        $postparam = pb_get_dist_param($ddir,$dver,$darch,$vepkglist);
     1508                        if ($postparam eq "") {
     1509                            $addpkgs = "";
     1510                        } else {
     1511                            my $pkgfile = "$ENV{'PBTMP'}/addpkgs.lis";
     1512                            open(PKG,"> $pkgfile") || die "Unable to create $pkgfile";
     1513                            foreach my $p (split(/,/,$postparam)) {
     1514                                print PKG "$p\n";
     1515                            }
     1516                            close(PKG);
     1517                            $addpkgs = "--add-pkg-list $pkgfile";
     1518                        }
     1519                        my $rinseverb = "--verbose" if ($pbdebug gt 0);
     1520
     1521                        pb_system("sudo /usr/sbin/rinse --directory \"$vepath->{$ENV{'PBPROJ'}}/$ddir/$dver/$darch\" --arch \"$darch\" --distribution \"$ddir-$dver\" --config \"$veconf->{$ENV{'PBPROJ'}}\" $post $addpkgs $rinseverb","Creating the rinse VE for $ddir-$dver ($darch)", "verbose");
     1522                    } elsif ($verpmstyle eq "mock") {
     1523                        pb_system("sudo /usr/sbin/mock --init --resultdir=\"/tmp\" --configdir=\"$veconf->{$ENV{'PBPROJ'}}\" -r $v","Creating the mock VE for $ddir-$dver ($darch)");
     1524                        # Once setup we need to install some packages, the pb account, ...
     1525                        pb_system("sudo /usr/sbin/mock --install --configdir=\"$veconf->{$ENV{'PBPROJ'}}\" -r $v su","Configuring the mock VE");
    15031526                    }
    1504                     pb_system("sudo /usr/sbin/rinse --directory \"$vepath->{$ENV{'PBPROJ'}}/$ddir/$dver/$darch\" --arch \"$darch\" --distribution \"$ddir-$dver\" --config \"$veconf->{$ENV{'PBPROJ'}}\" $post","Creating the rinse VE for $ddir-$dver ($darch)", "verbose");
    15051527                } elsif ($dtype eq "deb") {
    15061528                    pb_system("","Creating the pbuilder VE");
     
    24632485}
    24642486
     2487sub pb_get_dist_param {
     2488
     2489my $param = "";
     2490my $ddir = shift;
     2491my $dver = shift;
     2492my $darch = shift;
     2493my $opt = shift;
     2494
     2495if (defined $opt->{"$ddir-$dver-$darch"}) {
     2496    $param = $opt->{"$ddir-$dver-$darch"};
     2497} elsif (defined $opt->{"$ddir-$dver"}) {
     2498    $param = $opt->{"$ddir-$dver"};
     2499} elsif (defined $opt->{"$ddir"}) {
     2500    $param = $opt->{"$ddir"};
     2501} elsif (defined $opt->{"default"}) {
     2502    $param = $opt->{"default"};
     2503} else {
     2504    $param = "";
     2505}
     2506return($param);
     2507}
     2508
    246525091;
Note: See TracChangeset for help on using the changeset viewer.