Changeset 652


Ignore:
Timestamp:
01/14/09 01:47:26 (4 years ago)
Author:
bruno
Message:
  • Improves SuSE 11.1 build
  • Improves ntp handling in VMs (depending on distro)
  • Removes > version deps type at the end of line also
Location:
devel
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • devel/pb-modules/lib/ProjectBuilder/Distribution.pm

    r647 r652  
    106106    $dtype="rpm"; 
    107107    $dsuf=".$ddir$dver"; 
    108     $dupd="export TERM=linux ; export PATH=\$PATH:/sbin:/usr/sbin ; sudo yast2 -y "; 
     108    $dupd="export TERM=linux ; export PATH=\$PATH:/sbin:/usr/sbin ; sudo yast2 -i "; 
    109109} elsif (($ddir =~ /redhat/) || 
    110110        ($ddir =~ /rhel/) || 
     
    412412    pb_log(2,"found deps: $_\n"); 
    413413    s/$regexp/$1/; 
    414     # Remove conditions 
    415     s/>[=]*.*,//g; 
     414    # Remove conditions in the middle and at the end 
     415    s/[><=]+.*,/,/g; 
     416    s/[><=]+.*$//g; 
    416417    # Improve string format (remove , and spaces at start, end and in double 
    417     s/,//g; 
     418    s/,/ /g; 
    418419    s/^\s*//; 
    419420    s/\s*$//; 
  • 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.