- Timestamp:
- Dec 20, 2007, 11:10:49 AM (17 years ago)
- Location:
- devel/pb
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
devel/pb/bin/pb
r290 r291 14 14 use Data::Dumper; 15 15 use English; 16 use AppConfig qw(:argcount :expand);17 16 use File::Basename; 18 17 use File::Copy; … … 401 400 foreach my $f (@specfile) { 402 401 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'}"); 404 403 last; 405 404 } … … 569 568 # This is a test pkg => target dir is under test 570 569 $tdir .= "/test"; 570 } 571 571 } else { 572 572 return; -
devel/pb/contrib/pbsetupqemu
r274 r291 82 82 #chomp($topbuilddir); 83 83 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"; 91 85 } 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"))) { 92 86 # Suppose pkg are installed already 93 87 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 -rfDateManip* ; 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 .. "; 95 89 } elsif ($ddir eq "suse") { 96 90 # 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"; 98 92 } elsif ( $dfam eq "md" ) { 99 93 if (( $dver eq "2006.0" ) || ( $dver eq "10.2" )) { 100 94 # 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"; 102 96 } 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"; 104 98 } 105 99 } elsif ( $dfam eq "du" ) { 106 100 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"; 108 102 } 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-perlwodim 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"; 110 104 } 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"; 112 106 } 113 107 } 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 AppConfigDateManip";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"; 115 109 } else { 116 110 print "No pkg to install\n"; … … 140 134 system "/usr/sbin/ntpdate ntp.home.musique-ancienne.org"; 141 135 142 # Patch AppConfig143 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 key162 if ($nargs eq AppConfig::ARGCOUNT_HASH) {163 delete $state->{ VARIABLE }->{ $variable }{1};164 }165 166 EOF167 }168 print PBOUT "$_";169 }170 close(PBFILE);171 close(PBOUT);172 rename($module1,$module);173 }174 175 136 system "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 .."; 176 137 -
devel/pb/lib/ProjectBuilder/Base.pm
r288 r291 11 11 use File::Path; 12 12 use File::Temp qw /tempdir/; 13 use AppConfig qw(ARGCOUNT_HASH);14 13 use Data::Dumper; 15 14 … … 127 126 } 128 127 } 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}/)); 130 129 131 130 if (not defined $ENV{'PBTAG'}) { … … 754 753 } 755 754 756 sub pb_no_err {757 }758 759 755 # Function which returns a pointer on a hash 760 756 # corresponding to a declaration (arg2) in a conf file (arg1) … … 765 761 my $trace; 766 762 my @ptr; 763 my %h; 767 764 768 765 my $debug = 0; 769 766 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); 767 open(CONF,$conffile) || die "Unable to open $conffile"; 768 while(<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 } 774 close(CONF); 775 788 776 for 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 } 779 print "DEBUG: h:".Dumper(%h)." param:".Dumper(@param)." ptr:".Dumper(@ptr)."\n" if ($debug >= 1); 792 780 return(@ptr); 793 781 } … … 1030 1018 my $ptr; # returned value pointer on the hash of filters 1031 1019 my %ptr; 1020 my %h; 1032 1021 1033 1022 # Global filter files first, then package specificities … … 1062 1051 print $LOG "DEBUG ffiles: ".Dumper(\@ffiles)."\n" if ($debug >= 1); 1063 1052 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 } 1071 1059 } 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 } 1077 1065 } else { 1078 1066 $ptr = { };
Note:
See TracChangeset
for help on using the changeset viewer.