Changeset 429 for devel/pb/bin/pb


Ignore:
Timestamp:
05/08/08 02:04:20 (5 years ago)
Author:
bruno
Message:
  • Change filtering interface to add pbrepo keyword support and PBREPO macro
  • Add repository generation support + conf files to pb for rpm
  • Adapt pb and mondorecue spec files to new interfaces
File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/pb/bin/pb

    r428 r429  
    446446    my ($pkgv, $pkgt) = pb_conf_get_if("pkgver","pkgtag"); 
    447447 
    448     # declare packager for filtering 
    449     my ($tmp) = pb_conf_get("pbpackager"); 
    450     $ENV{'PBPACKAGER'} = $tmp->{$ENV{'PBPROJ'}}; 
     448    # declare packager and repo for filtering 
     449    my ($tmp1, $tmp2) = pb_conf_get("pbpackager","pbrepo"); 
     450    $ENV{'PBPACKAGER'} = $tmp1->{$ENV{'PBPROJ'}}; 
     451    $ENV{'PBREPO'} = $tmp2->{$ENV{'PBPROJ'}}; 
    451452 
    452453    foreach my $pbpkg (@pkgs) { 
     
    551552            if (defined $ptr) { 
    552553                foreach my $f (values %bfiles,values %pkgfiles) { 
    553                     pb_filter_file_pb("$ENV{'PBROOTDIR'}/$f",$ptr,"$dest/pbconf/$ddir-$dver/".basename($f),$dtype,$pbsuf,$pbpkg,$pbver,$pbtag,$pbrev,$pbdate,$defpkgdir,$extpkgdir,$ENV{'PBPACKAGER'},$chglog,$ENV{'PBPROJ'}); 
     554                    pb_filter_file_pb("$ENV{'PBROOTDIR'}/$f",$ptr,"$dest/pbconf/$ddir-$dver/".basename($f),$dtype,$pbsuf,$pbpkg,$pbver,$pbtag,$pbrev,$pbdate,$defpkgdir,$extpkgdir,$ENV{'PBPACKAGER'},$chglog,$ENV{'PBPROJ'},$ENV{'PBREPO'}); 
    554555                } 
    555556            } 
     
    573574        if (defined $filteredfiles->{$pbpkg}) { 
    574575            foreach my $f (split(/,/,$filteredfiles->{$pbpkg})) { 
    575                 pb_filter_file_inplace($ptr,"$dest/$f",$pbpkg,$pbver,$pbtag,$pbrev,$pbdate,$ENV{'PBPACKAGER'},$ENV{'PBPROJ'}); 
     576                pb_filter_file_inplace($ptr,"$dest/$f",$pbpkg,$pbver,$pbtag,$pbrev,$pbdate,$ENV{'PBPACKAGER'},$ENV{'PBPROJ'},$ENV{'PBREPO'}); 
    576577                $liste = "$f $liste"; 
    577578            } 
     
    581582        # Prepare the dest directory for archive 
    582583        if (-x "$ENV{'PBROOTDIR'}/$pbpkg/pbinit") { 
    583             pb_filter_file("$ENV{'PBROOTDIR'}/$pbpkg/pbinit",$ptr,"$ENV{'PBTMP'}/pbinit",$pbpkg,$pbver,$pbtag,$pbrev,$pbdate,$ENV{'PBPACKAGER'},$ENV{'PBPROJ'}); 
     584            pb_filter_file("$ENV{'PBROOTDIR'}/$pbpkg/pbinit",$ptr,"$ENV{'PBTMP'}/pbinit",$pbpkg,$pbver,$pbtag,$pbrev,$pbdate,$ENV{'PBPACKAGER'},$ENV{'PBPROJ'},$ENV{'PBREPO'}); 
    584585            chmod 0755,"$ENV{'PBTMP'}/pbinit"; 
    585586            pb_system("cd $dest ; $ENV{'PBTMP'}/pbinit","Executing init script from $ENV{'PBROOTDIR'}/$pbpkg/pbinit"); 
     
    823824        } 
    824825    } 
    825     # Adds conf file for availanility of conf elements 
     826    # Adds conf file for availability of conf elements 
    826827    pb_conf_add("$ENV{'PBROOTDIR'}/$ENV{'PBPROJ'}.pb"); 
    827828 
    828829    if (($cmt eq "vm") || ($cmt eq "ve")) { 
    829         $src="$src $ENV{'PBDESTDIR'}/pbscript $ENV{'PBROOTDIR'}/$ENV{'PBPROJ'}.pb $ENV{'PBDESTDIR'}/$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.pb $ENV{'PBETC'} $ENV{'PBDESTDIR'}/pbrc"; 
     830        $src="$src $ENV{'PBROOTDIR'}/$ENV{'PBPROJ'}.pb $ENV{'PBDESTDIR'}/$ENV{'PBPROJVER'}-$ENV{'PBPROJTAG'}.pb $ENV{'PBETC'} $ENV{'PBDESTDIR'}/pbrc"; 
    830831    } elsif ($cmt eq "Script") { 
    831         $src="$src $ENV{'PBDESTDIR'}/pbscript"; 
     832        # Nothing special to do 
    832833    } elsif ($cmt eq "Packages") { 
    833834        # Get package list from file made during build2pkg 
     
    836837        chomp($src); 
    837838        close(KEEP); 
    838         if ($dtype eq "rpm") { 
    839             # Also make a pbscript to generate yum/urpmi bases 
    840             # $src = "$src $ENV{'PBDESTDIR'}/pbscript" 
    841         } elsif ($dtype eq "deb") { 
    842             # Also make a pbscript to generate apt bases 
    843             # $src = "$src $ENV{'PBDESTDIR'}/pbscript" 
    844         } 
    845     } 
     839 
     840    } 
     841    # Systematically adds the pbscript 
     842    $src="$src $ENV{'PBDESTDIR'}/pbscript"; 
    846843    # Remove potential leading spaces (cause problem with basename) 
    847844    $src =~ s/^ *//; 
     
    879876    } elsif ($cmt eq "Packages") { 
    880877        $tdir = "$sshdir->{$ENV{'PBPROJ'}}/$ddir/$dver"; 
     878 
    881879        if ((defined $testver) && (defined $testver->{$ENV{'PBPROJ'}}) && ($testver->{$ENV{'PBPROJ'}} =~ /true/i)) { 
    882880            # This is a test pkg => target dir is under test 
    883881            $tdir = "$sshdir->{$ENV{'PBPROJ'}}/test/$ddir/$dver"; 
    884882        } 
     883 
     884        my $repodir = $tdir; 
     885        $repodir =~ s|^$sshdir->{$ENV{'PBPROJ'}}/||; 
     886 
     887        my ($pbrepo) = pb_conf_get("pbrepo"); 
     888 
     889        # Repository management 
     890        open(PBS,"> $ENV{'PBDESTDIR'}/pbscript") || die "Unable to create $ENV{'PBDESTDIR'}/pbscript"; 
     891        if ($dtype eq "rpm") { 
     892            # Also make a pbscript to generate yum/urpmi bases 
     893            print PBS << "EOF"; 
     894# Prepare a script to ease yum setup 
     895cat > $ENV{'PBPROJ'}.repo << EOT 
     896[$ENV{'PBPROJ'}] 
     897name=$ddir $dver - $ENV{'PBPROJ'} Vanilla Packages 
     898baseurl=$pbrepo->{'PBPROJ'}/$repodir 
     899enabled=1 
     900gpgcheck=0 
     901EOT 
     902chmod 644 $ENV{'PBPROJ'}.repo 
     903 
     904# Clean up old repo content 
     905rm -rf headers/ repodata/ 
     906# Create yum repo 
     907yum-arch . 
     908# Create repodata 
     909createrepo . 
     910EOF 
     911            if ($dfam eq "md") { 
     912                # For Mandriva add urpmi management 
     913                print PBS << "EOF"; 
     914# Prepare a script to ease urpmi setup 
     915cat > $ENV{'PBPROJ'}.addmedia << EOT 
     916urpmi.addmedia $ENV{'PBPROJ'} $pbrepo->{'PBPROJ'}/$repodir with hdlist.cz 
     917EOT 
     918chmod 755 $ENV{'PBPROJ'}.addmedia 
     919 
     920# Clean up old repo content 
     921rm -f hdlist.cz 
     922# Create urpmi repo 
     923genhdlist . 
     924EOF 
     925            } 
     926        } elsif ($dtype eq "deb") { 
     927            # Also make a pbscript to generate apt bases 
     928        } 
     929        close(PBS); 
     930 
    885931    } else { 
    886932        return; 
Note: See TracChangeset for help on using the changeset viewer.