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


Ignore:
Timestamp:
Jan 14, 2009, 1:47:26 AM (15 years ago)
Author:
Bruno Cornec
Message:
  • Improves SuSE 11.1 build
  • Improves ntp handling in VMs (depending on distro)
  • Removes > version deps type at the end of line also
File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/pb/bin/pb

    r650 r652  
    15011501
    15021502my $vtype = shift;
     1503my $v = shift;
    15031504
    15041505my ($ntp) = pb_conf_get($vtype."ntp");
     
    15071508
    15081509if (defined $vntp) {
    1509     $ntpline = "sudo /usr/sbin/ntpdate $vntp";
     1510    my ($ntpcmd) = pb_conf_get($vtype."ntpcmd");
     1511    my $vntpcmd;
     1512    if (defined $ntpcmd->{$v}) {
     1513        $vntpcmd = $ntpcmd->{$v};
     1514    } elsif (defined $vntpcmd->{$ENV{'PBPROJ'}}) {
     1515        $vntpcmd = $ntpcmd->{$ENV{'PBPROJ'}};
     1516    } else {
     1517        $vntpcmd = "/bin/true";
     1518    }
     1519    $ntpline = "sudo $vntpcmd $vntp";
    15101520} else {
    15111521    $ntpline = undef;
     
    15241534my $vtype = shift;
    15251535
    1526 # Prepare the script to be executed on the VM/VE
    1527 # in $ENV{'PBDESTDIR'}/pbscript
    1528 my ($ntpline,$dateline) = pb_date_v($vtype);
    1529 open(SCRIPT,"> $ENV{'PBDESTDIR'}/pbscript") || die "Unable to create $ENV{'PBDESTDIR'}/pbscript";
    1530 print SCRIPT "#!/bin/bash\n";
    1531 print SCRIPT "echo ... Execution needed\n";
    1532 print SCRIPT "# This is in directory delivery\n";
    1533 print SCRIPT "# Setup the variables required for building\n";
    1534 print SCRIPT "export PBPROJ=$ENV{'PBPROJ'}\n";
    1535 print SCRIPT "# Preparation for pb\n";
    1536 print SCRIPT "mv .pbrc \$HOME\n";
    1537 print SCRIPT "cd ..\n";
    1538 print SCRIPT "# Time sync\n";
    1539 if (defined $ntpline) {
    1540     print SCRIPT "if [ -x /usr/sbin/ntpdate ]; then\n";
    1541     print SCRIPT "  $ntpline\n";
    1542     print SCRIPT "else\n";
    1543 }
    1544 print SCRIPT "  $dateline\n";
    1545 if (defined $ntpline) {
    1546     print SCRIPT "fi\n";
    1547 }
    1548 
    1549 # Get list of packages to build and get some ENV vars as well
    1550 my $ptr = pb_get_pkg();
    1551 @pkgs = @$ptr;
    1552 my $p = join(' ',@pkgs) if (@pkgs);
    1553 print SCRIPT "export PBPROJVER=$ENV{'PBPROJVER'}\n";
    1554 print SCRIPT "export PBPROJTAG=$ENV{'PBPROJTAG'}\n";
    1555 print SCRIPT "export PBPACKAGER=\"$ENV{'PBPACKAGER'}\"\n";
    1556 print SCRIPT "# Build\n";
    1557 print SCRIPT "echo Building packages on $vtype...\n";
    1558 
    1559 # Transmit the verbosity level to the virtual env/mach.
    1560 my $verbose = "";
    1561 my $i = 0;                          # minimal debug level
    1562 while ($i lt $pbdebug) {
    1563     $verbose .= "-v ";
    1564     $i++;
    1565 }
    1566 # Quiet if asked to be so on the original system
    1567 $verbose = "-q" if ($pbdebug eq -1);
    1568 print SCRIPT "pb $verbose -p $ENV{'PBPROJ'} build2pkg $p\n";
    1569 close(SCRIPT);
    1570 chmod 0755,"$ENV{'PBDESTDIR'}/pbscript";
    1571 
    15721536my ($v,$all) = pb_get_v($vtype);
    15731537
     
    15781542
    15791543foreach my $v (@$v) {
     1544    # Prepare the script to be executed on the VM/VE
     1545    # in $ENV{'PBDESTDIR'}/pbscript
     1546    open(SCRIPT,"> $ENV{'PBDESTDIR'}/pbscript") || die "Unable to create $ENV{'PBDESTDIR'}/pbscript";
     1547    print SCRIPT "#!/bin/bash\n";
     1548    print SCRIPT "echo ... Execution needed\n";
     1549    print SCRIPT "# This is in directory delivery\n";
     1550    print SCRIPT "# Setup the variables required for building\n";
     1551    print SCRIPT "export PBPROJ=$ENV{'PBPROJ'}\n";
     1552    print SCRIPT "# Preparation for pb\n";
     1553    print SCRIPT "mv .pbrc \$HOME\n";
     1554    print SCRIPT "cd ..\n";
     1555   
     1556    # Get list of packages to build and get some ENV vars as well
     1557    my $ptr = pb_get_pkg();
     1558    @pkgs = @$ptr;
     1559    my $p = join(' ',@pkgs) if (@pkgs);
     1560    print SCRIPT "export PBPROJVER=$ENV{'PBPROJVER'}\n";
     1561    print SCRIPT "export PBPROJTAG=$ENV{'PBPROJTAG'}\n";
     1562    print SCRIPT "export PBPACKAGER=\"$ENV{'PBPACKAGER'}\"\n";
     1563
     1564    my ($ntpline,$dateline) = pb_date_v($vtype,$v);
     1565    print SCRIPT "# Time sync\n";
     1566    if (defined $ntpline) {
     1567        print SCRIPT "$ntpline\n";
     1568    } else {
     1569        print SCRIPT "$dateline\n";
     1570    }
     1571
     1572    # Transmit the verbosity level to the virtual env/mach.
     1573    my $verbose = "";
     1574    my $i = 0;                          # minimal debug level
     1575    while ($i lt $pbdebug) {
     1576        $verbose .= "-v ";
     1577        $i++;
     1578    }
     1579    # Quiet if asked to be so on the original system
     1580    $verbose = "-q" if ($pbdebug eq -1);
     1581
     1582    print SCRIPT "# Build\n";
     1583    print SCRIPT "echo Building packages on $vtype...\n";
     1584    print SCRIPT "pb $verbose -p $ENV{'PBPROJ'} build2pkg $p\n";
     1585    close(SCRIPT);
     1586    chmod 0755,"$ENV{'PBDESTDIR'}/pbscript";
     1587   
    15801588    if ($vtype eq "vm") {
    15811589        # Launch the VM
     
    17281736my $pbscript = "$ENV{'PBDESTDIR'}/setupv";
    17291737
    1730 # Deal with date sync.
    1731 my ($ntpline,$dateline) = pb_date_v($vtype);
    1732 
    17331738foreach my $v (@$vm) {
     1739    # Deal with date sync.
     1740    my ($ntpline,$dateline) = pb_date_v($vtype,$v);
     1741
    17341742    # Name of the account to deal with for VM/VE
    17351743    # Do not use the one passed potentially with -a
     
    18111819EOF
    18121820        if (defined $ntpline) {
    1813             print SCRIPT "if ( -x \"/usr/sbin/ntpdate\" ) {\n";
    1814             print SCRIPT "  system(\"$ntpline\")\n";
    1815             print SCRIPT "} else {\n";
    1816         }
    1817         print SCRIPT "  system(\"$dateline\")\n";
    1818         if (defined $ntpline) {
    1819             print SCRIPT "}\n";
     1821            print SCRIPT "system(\"$ntpline\");\n";
     1822        } else {
     1823            print SCRIPT "system(\"$dateline\");\n";
    18201824        }
    18211825    }
     
    20182022} elsif ($ddir eq "suse") {
    20192023    # New OpenSuSE
     2024    pb_distro_installdeps(undef,$dtype,$pbupd,pb_distro_only_deps_needed($dtype,"make wget patch sudo ntp"));
    20202025    pb_system("$insmb","$cmtmb");
    20212026    pb_system("$insfm","$cmtfm");
    20222027    pb_system("$insfb","$cmtfb");
    2023     pb_system("$insms","$cmtms");
    2024     pb_distro_installdeps(undef,$dtype,$pbupd,pb_distro_only_deps_needed($dtype,"make wget patch sudo perl-DateManip perl-File-HomeDir perl-Mail-Sendmail ntp"));
     2028    pb_distro_installdeps(undef,$dtype,$pbupd,pb_distro_only_deps_needed($dtype,"perl-Date-Manip perl-File-HomeDir perl-Mail-Sendmail"));
     2029    if ($dver < 11) {
     2030        pb_distro_installdeps(undef,$dtype,$pbupd,pb_distro_only_deps_needed($dtype,"ntp"));
     2031    } else {
     2032        pb_distro_installdeps(undef,$dtype,$pbupd,pb_distro_only_deps_needed($dtype,"sntp"));
     2033    }
    20252034} elsif ( $dfam eq "md" ) {
    20262035        my $addp = "";
Note: See TracChangeset for help on using the changeset viewer.