Changeset 291


Ignore:
Timestamp:
12/20/07 11:10:49 (5 years ago)
Author:
bruno
Message:
  • Removes AppConfig? dependency by using just a perl regexp instead.
  • Interface to the version field has also changed
Location:
devel
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • devel/pb/bin/pb

    r290 r291  
    1414use Data::Dumper; 
    1515use English; 
    16 use AppConfig qw(:argcount :expand); 
    1716use File::Basename; 
    1817use File::Copy; 
     
    401400            foreach my $f (@specfile) { 
    402401                if ($f =~ /\.spec$/) { 
    403                     pb_system("rpmbuild --define \"packager $pbpackager\" --define \"_topdir $ENV{'PBBUILDDIR'}\" -ba $f","Building package with $f under $ENV{'PBBUILDDIR'}"); 
     402                    pb_system("rpmbuild --define \'packager $pbpackager\' --define \"_topdir $ENV{'PBBUILDDIR'}\" -ba $f","Building package with $f under $ENV{'PBBUILDDIR'}"); 
    404403                    last; 
    405404                } 
     
    569568            # This is a test pkg => target dir is under test 
    570569            $tdir .= "/test"; 
     570        } 
    571571    } else { 
    572572        return; 
  • devel/pb/contrib/pbsetupqemu

    r274 r291  
    8282    #chomp($topbuilddir); 
    8383 
    84     if ( $dver <= 4 ) { 
    85         # FC4 - AppConfig unavailable 
    86         system "yum -y $opt install neon newt-devel slang-devel autoconf automake libtool gcc rpm-build wget gcc-c++ docbook-utils-pdf ImageMagick man patch cdrecord mkisofs perl-DateManip ntp sudo ; rm -rf AppConfig-* ; rm -rf AppConfig* ; wget http://search.cpan.org/CPAN/authors/id/A/AB/ABW/AppConfig-1.66.tar.gz ; tar xvfz AppConfig-1.66.tar.gz ; cd AppConfig* ; perl Makefile.PL ; make ; make install ; cd .."; 
    87     } else { 
    88         # FC5/6/7 
    89         system "yum -y $opt install neon newt-devel slang-devel autoconf automake libtool gcc rpm-build wget gcc-c++ docbook-utils-pdf ImageMagick man patch cdrecord mkisofs ntp sudo perl-AppConfig perl-DateManip"; 
    90     } 
     84    system "yum -y $opt install neon newt-devel slang-devel autoconf automake libtool gcc rpm-build wget gcc-c++ docbook-utils-pdf ImageMagick man patch cdrecord mkisofs ntp sudo perl-DateManip"; 
    9185} elsif (( $dfam eq "rh" ) || ($ddir eq "sles") || (($ddir eq "suse") && (($dver eq "10.1") || ($dver eq "10.0"))) || (($ddir eq "mandrake") && ($dver eq "10.1"))) { 
    9286    # Suppose pkg are installed already 
    9387    system "rpm -e lsb 2>&1 > /dev/null"; 
    94     system "rm -rf AppConfig-* ; wget http://search.cpan.org/CPAN/authors/id/A/AB/ABW/AppConfig-1.66.tar.gz ; tar xvfz AppConfig-1.66.tar.gz ; cd AppConfig* ; perl Makefile.PL ; make ; make install ; cd .. ; rm -rf DateManip* ; wget http://search.cpan.org/CPAN/authors/id/S/SB/SBECK/Date-Manip-5.46.tar.gz ; tar xvfz Date-Manip-5.46.tar.gz ; cd Date-Manip* ; perl Makefile.PL ; make ; make install ; cd .. "; 
     88    system "rm -rf DateManip* ; wget http://search.cpan.org/CPAN/authors/id/S/SB/SBECK/Date-Manip-5.46.tar.gz ; tar xvfz Date-Manip-5.46.tar.gz ; cd Date-Manip* ; perl Makefile.PL ; make ; make install ; cd .. "; 
    9589} elsif ($ddir eq "suse") {  
    9690    # New OpenSuSE 
    97     system "export TERM=linux ; liste=\"\" ; for i in neon newt-devel slang-devel autoconf automake libtool make gcc wget gcc-c++ docbook-utils ImageMagick man patch mkisofs sudo perl-DateManip perl-AppConfig perl-File-HomeDir xntp; do rpm -q \$i 1> /dev/null 2> /dev/null ; if [ \$\? != 0 ]; then liste=\"\$liste \$i\"; fi; done; echo \"Liste: \$liste\" ; if [ \"\$liste\" != \"\" ]; then yast2 -i \$liste ; fi"; 
     91    system "export TERM=linux ; liste=\"\" ; for i in neon newt-devel slang-devel autoconf automake libtool make gcc wget gcc-c++ docbook-utils ImageMagick man patch mkisofs sudo perl-DateManip perl-File-HomeDir xntp; do rpm -q \$i 1> /dev/null 2> /dev/null ; if [ \$\? != 0 ]; then liste=\"\$liste \$i\"; fi; done; echo \"Liste: \$liste\" ; if [ \"\$liste\" != \"\" ]; then yast2 -i \$liste ; fi"; 
    9892} elsif ( $dfam eq "md" ) { 
    9993    if (( $dver eq "2006.0" ) || ( $dver eq "10.2" )) { 
    10094        # mondo not available 
    101         system "urpmi.update -a ; urpmi --auto neon newt-devel slang-devel glibc-static-devel autoconf automake libtool gcc rpm-build wget gcc-c++ docbook-utils-pdf ImageMagick sudo man patch mkisofs cdrecord ntp-client perl-AppConfig perl-DateManip"; 
     95        system "urpmi.update -a ; urpmi --auto neon newt-devel slang-devel glibc-static-devel autoconf automake libtool gcc rpm-build wget gcc-c++ docbook-utils-pdf ImageMagick sudo man patch mkisofs cdrecord ntp-client perl-DateManip"; 
    10296    } else { 
    103         system "urpmi.update -a ; urpmi --auto neon newt-devel slang-devel glibc-static-devel autoconf automake libtool gcc rpm-build wget gcc-c++ sudo docbook-utils-pdf ImageMagick man patch mondo mkisofs cdrecord ntp-client perl-AppConfig perl-DateManip"; 
     97        system "urpmi.update -a ; urpmi --auto neon newt-devel slang-devel glibc-static-devel autoconf automake libtool gcc rpm-build wget gcc-c++ sudo docbook-utils-pdf ImageMagick man patch mondo mkisofs cdrecord ntp-client perl-DateManip"; 
    10498    } 
    10599} elsif ( $dfam eq "du" ) { 
    106100    if (( $dver eq "3.1" ) && ($ddir eq "debian")) { 
    107         system "apt-get update; apt-get -y install autoconf automake libtool g++ wget patch mondo groff imagemagick docbook-utils docbook2x docbook-to-man ssh dpkg-dev sudo debian-builder dh-make fakeroot libnewt-dev ntpdate libncurses5-dev libdate-manip-perl libappconfig-perl"; 
     101        system "apt-get update; apt-get -y install autoconf automake libtool g++ wget patch mondo groff imagemagick docbook-utils docbook2x docbook-to-man ssh dpkg-dev sudo debian-builder dh-make fakeroot libnewt-dev ntpdate libncurses5-dev libdate-manip-perl"; 
    108102    } elsif (( $dver eq "7.10" ) && ($ddir eq "ubuntu")) { 
    109         system "apt-get update; apt-get -y install autoconf automake libtool g++ wget patch groff imagemagick docbook-utils docbook2x docbook-to-man openssh-server dpkg-dev sudo debian-builder dh-make fakeroot libnewt-dev ntpdate libncurses5-dev libdate-manip-perl libappconfig-perl wodim genisoimage afio buffer"; 
     103        system "apt-get update; apt-get -y install autoconf automake libtool g++ wget patch groff imagemagick docbook-utils docbook2x docbook-to-man openssh-server dpkg-dev sudo debian-builder dh-make fakeroot libnewt-dev ntpdate libncurses5-dev libdate-manip-perl wodim genisoimage afio buffer"; 
    110104    } else  { 
    111         system "apt-get update; apt-get -y install autoconf automake libtool g++ wget patch mondo groff imagemagick docbook-utils docbook2x docbook-to-man openssh-server dpkg-dev sudo debian-builder dh-make fakeroot libnewt-dev ntpdate libncurses5-dev libdate-manip-perl libappconfig-perl"; 
     105        system "apt-get update; apt-get -y install autoconf automake libtool g++ wget patch mondo groff imagemagick docbook-utils docbook2x docbook-to-man openssh-server dpkg-dev sudo debian-builder dh-make fakeroot libnewt-dev ntpdate libncurses5-dev libdate-manip-perl"; 
    112106    } 
    113107} elsif ( $dfam eq "gen" ) { 
    114         #system "emerge -u system ; emerge neon newt slang autoconf automake subversion libtool gcc wget vim man groff lynx grub afio buffer sudo ntp AppConfig DateManip"; 
     108        #system "emerge -u system ; emerge neon newt slang autoconf automake subversion libtool gcc wget vim man groff lynx grub afio buffer sudo ntp DateManip"; 
    115109} else { 
    116110    print "No pkg to install\n"; 
     
    140134system "/usr/sbin/ntpdate ntp.home.musique-ancienne.org"; 
    141135 
    142 # Patch AppConfig  
    143 my $module=`find /usr/*/perl5 -type f -name File.pm | grep AppConfig/File.pm`; 
    144 chomp($module); 
    145 $found = 0; 
    146 open(PBFILE,$module) || die "Unable to open $module"; 
    147 while (<PBFILE>) { 
    148     $found = 1 if (/Fix a bug if the variable is a hash/); 
    149 } 
    150 close(PBFILE); 
    151  
    152 if ( $found == 0 ) { 
    153     chdir basename($module); 
    154     open(PBFILE,$module) || die "Unable to open $module"; 
    155     my $module1 = $module."new"; 
    156     open(PBOUT," > $module1") || die "Unable to open $module1"; 
    157     while (<PBFILE>) { 
    158             s/^use AppConfig;/use AppConfig qw(:argcount);/; 
    159             if (/# variables prefixed '-' are reset to their default values/) { 
    160 print PBOUT << 'EOF'; 
    161                  # Fix a bug if the variable is a hash - 1 has been created as a key 
    162                  if ($nargs eq AppConfig::ARGCOUNT_HASH) { 
    163                      delete $state->{ VARIABLE }->{ $variable }{1}; 
    164                  } 
    165  
    166 EOF 
    167             } 
    168             print PBOUT "$_"; 
    169     } 
    170     close(PBFILE); 
    171     close(PBOUT); 
    172     rename($module1,$module); 
    173 } 
    174  
    175136system "rm -rf project-builder-* ; wget --passive-ftp ftp://ftp.mondorescue.org/src/project-builder-latest.tar.gz ; tar xvfz project-builder-latest.tar.gz ; cd project-builder-* ; perl Makefile.PL ; make ; make install ; cd .."; 
    176137 
  • devel/pb/lib/ProjectBuilder/Base.pm

    r288 r291  
    1111use File::Path; 
    1212use File::Temp qw /tempdir/; 
    13 use AppConfig qw(ARGCOUNT_HASH); 
    1413use Data::Dumper; 
    1514 
     
    127126        } 
    128127    } 
    129     die "Invalid version name $ENV{'PBVER'} in $ENV{'PBCONF'}/$proj.pb" if (($ENV{'PBVER'} !~ /[0-9.]+/) && (not exists $version{$ENV{'PBVER'}})); 
     128    die "Invalid version name $ENV{'PBVER'} in $ENV{'PBCONF'}/$proj.pb" if (($ENV{'PBVER'} !~ /[0-9.]+/) && (not defined $version) && ($ENV{'PBVER'} =~ /$version{$proj}/)); 
    130129     
    131130    if (not defined $ENV{'PBTAG'}) { 
     
    754753} 
    755754 
    756 sub pb_no_err { 
    757 } 
    758  
    759755# Function which returns a pointer on a hash 
    760756# corresponding to a declaration (arg2) in a conf file (arg1) 
     
    765761my $trace; 
    766762my @ptr; 
     763my %h; 
    767764 
    768765my $debug = 0; 
    769766 
    770 if ($debug > 0) { 
    771     $trace = 1; 
    772 } else { 
    773     $trace = 0; 
    774 } 
    775  
    776  
    777 my $config = AppConfig->new({ 
    778                             # Auto Create variables mentioned in Conf file 
    779                             CREATE => 1, 
    780                             DEBUG => $trace, 
    781                             ERROR => \&pb_no_err, 
    782                             GLOBAL => { 
    783                                 # Each conf item is a hash 
    784                                 ARGCOUNT => ARGCOUNT_HASH, 
    785                             }, 
    786                         }); 
    787 $config->file($conffile); 
     767open(CONF,$conffile) || die "Unable to open $conffile"; 
     768while(<CONF>) { 
     769    if (/^\s*([A-z0-9-_]+)\s+([[A-z0-9-_]+)\s*=\s*(.+)$/) { 
     770        print "DEBUG: 1:$1 2:$2 3:$3\n" if ($debug >= 1); 
     771        $h{$1}{$2}=$3; 
     772    } 
     773} 
     774close(CONF); 
     775 
    788776for my $param (@param) { 
    789     push @ptr,$config->get($param); 
    790 } 
    791 print "DEBUG: params: ".Dumper(@param)." ".Dumper(@ptr)."\n" if ($debug >= 1); 
     777    push @ptr,$h{$param}; 
     778} 
     779print "DEBUG: h:".Dumper(%h)." param:".Dumper(@param)." ptr:".Dumper(@ptr)."\n" if ($debug >= 1); 
    792780return(@ptr); 
    793781} 
     
    10301018my $ptr; # returned value pointer on the hash of filters 
    10311019my %ptr; 
     1020my %h; 
    10321021 
    10331022# Global filter files first, then package specificities 
     
    10621051    print $LOG "DEBUG ffiles: ".Dumper(\@ffiles)."\n" if ($debug >= 1); 
    10631052 
    1064     my $config = AppConfig->new({ 
    1065         # Auto Create variables mentioned in Conf file 
    1066         CREATE => 1, 
    1067         DEBUG => 0, 
    1068         GLOBAL => { 
    1069             # Each conf item is a hash 
    1070             ARGCOUNT => AppConfig::ARGCOUNT_HASH 
     1053    foreach my $f (@ffiles) { 
     1054        open(CONF,$f) || next; 
     1055        while(<CONF>)  { 
     1056            if (/^\s*([A-z0-9-_]+)\s+([[A-z0-9-_]+)\s*=\s*(.+)$/) { 
     1057                $h{$1}{$2}=$3; 
     1058            } 
    10711059        } 
    1072     }); 
    1073  
    1074     $config->file(@ffiles); 
    1075     $ptr = $config->get("filter"); 
    1076     print $LOG "DEBUG f:".Dumper($ptr)."\n" if ($debug >= 1); 
     1060        close(CONF); 
     1061 
     1062        $ptr = $h{"filter"}; 
     1063        print $LOG "DEBUG f:".Dumper($ptr)."\n" if ($debug >= 1); 
     1064    } 
    10771065} else { 
    10781066    $ptr = { }; 
  • devel/pbconf/pb.pb

    r290 r291  
    6666#pkgver project-builder = devel 
    6767#pkgtag project-builder = 1 
    68 pkgver nil 
    69 pkgtag nil 
    7068 
    7169# Is it a test version 
    72 testver pb 
     70testver pb = true 
    7371 
    7472# Hash of default package/package directory 
     
    7977 
    8078# Hash of valid version names 
    81 version devel 
    82 version stable 
     79version pb = devel,stable 
    8380 
    8481# List of files per pkg on which to apply filters 
  • devel/pbconf/project-builder/rpm/project-builder.spec

    r287 r291  
    1616BuildRoot:  %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -u -n) 
    1717BuildArch:  noarch 
    18 Requires:   perl >= 5.8.4, perl-DateManip, perl-AppConfig, PBDEP 
     18Requires:   perl >= 5.8.4, perl-DateManip, PBDEP 
    1919Provides:   perl(ProjectBuilder::Changelog), perl(ProjectBuilder::Base), perl(ProjectBuilder::Distribution), perl(ProjectBuilder::Version) 
    2020 
Note: See TracChangeset for help on using the changeset viewer.