- Timestamp:
- Oct 21, 2009, 11:48:11 AM (15 years ago)
- Location:
- devel/pb-modules
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified devel/pb-modules/Makefile.PL ¶
r539 r867 1 1 use 5.006001; 2 2 use ExtUtils::MakeMaker; 3 use strict; 3 4 4 5 # See lib/ExtUtils/MakeMaker.pm for details of how to influence 5 6 # the contents of the Makefile that is written. 6 7 WriteMakefile( 7 8 9 10 8 NAME => 'PBPKG', 9 DISTNAME => 'PBPKG', 10 VERSION => 'PBVER', 11 INST_SCRIPT => 'blib/bin', 11 12 INSTALLDIRS => 'perl', 12 13 PREREQ_PM => { 13 14 #HTTP::Headers => 1.59, 14 15 #Template => 0, 15 16 }, # e.g., Module::Name => 1.1 16 17 #ABSTRACT_FROM => 'bin/pb', # retrieve abstract from module 17 18 AUTHOR => 'Bruno Cornec <bruno#project-builder.org>', 18 19 EXE_FILES => [ qw( bin/pbdistrocheck ) ], 19 20 MAN3PODS => { 'lib/ProjectBuilder/Distribution.pm' => '$(INST_MAN3DIR)/ProjectBuilder::Distribution.$(MAN3EXT)', … … 22 23 'lib/ProjectBuilder/Base.pm' => '$(INST_MAN3DIR)/ProjectBuilder::Base.$(MAN3EXT)', }, 23 24 ); 25 26 package MY; 27 28 sub postamble { 29 30 # Determine location of etc conf files 31 my $text =""; 32 33 # Grab out any CONFDIR param 34 my $confdir = undef; 35 36 while (my $arg = shift @ARGV) { 37 my ($key, $value) = split /=/, $arg; 38 if ($key =~ /^CONFDIR$/) { 39 $confdir = $value; 40 } 41 } 42 43 my $etcdir = $confdir || "/usr/local/etc/pb"; 44 45 # Use that conf dir info to modify Distribution.pm 46 system("perl -pi -e \"s~CCCC~$etcdir~\" lib/ProjectBuilder/Distribution.pm"); 47 48 $text .= "install ::\n"; 49 $text .= "\t".'install -m 755 -d $(DESTDIR)'."$etcdir\n"; 50 $text .= "\t".'cp etc/pb.conf $(DESTDIR)'."$etcdir\n"; 51 return($text); 52 } -
TabularUnified devel/pb-modules/etc/pb.conf ¶
r866 r867 14 14 # 15 15 # It should be noted that the list of all OS is the result of gathering 16 # all the keys from osrelfile and osrelambfile 17 # 18 16 # all the keys from osrelfile and osrelambfile, and the values of osrelambfile 17 # 18 19 # 20 # The following conf info are for pb_distro_get (man ProjectBuilder::Distribution) 19 21 # 20 22 # Those definitions are non-ambiguous (the file only exists for that OS) … … 131 133 osrelexpr solaris = Solaris (\d+) 132 134 135 # 136 # The following conf info are for pb_distro_init (man ProjectBuilder::Distribution) 137 # 133 138 # Ganularity is the following: 134 139 # … … 140 145 141 146 # Group OS by family to handle common actions more easily (filtering, install command, ...) 147 # Key is osname, Value is osfamily 142 148 osfamily debian = du 143 149 osfamily ubuntu = du … … 158 164 osfamily freebsd = bsd 159 165 osfamily solaris = sol 160 osfamily unknown = unknown161 166 162 167 # Group family by build types 168 # Key is osfamily, Value is build type 163 169 ostype du = deb 164 170 ostype slack = tgz … … 169 175 ostype bsd = port 170 176 ostype sol = pkg 171 ostype unknown = unknown172 177 173 178 # From the most generic to the most specialized, in term of granularity, 174 179 # give the command to use to install on the OS 175 180 # If none is given, no install can takes place 181 # key depends on granularity, value is install command 182 183 # Chaining the commands allow to only test for what is able to be installed, 184 # not the update of the repo which may well be unaccessible if too old 176 185 osupd du = sudo apt-get update ; sudo apt-get -y install 177 186 osupd gen = sudo emerge … … 182 191 osupd md = sudo urpmi.update -a ; sudo urpmi --auto 183 192 osupd novell = export TERM=linux ; export PATH=\$PATH:/sbin:/usr/sbin ; sudo yast2 -i 184 osupd unknown = unknown185 193 186 194 # From the most generic to the most specialized, in term of granularity, … … 189 197 # .osname and version 190 198 # osname being as defined upper as the keys of osrelfile and osrelambfile 199 # depends on granularity, value is install command 191 200 192 201 ossuffix slackware = slack … … 199 208 200 209 # For that OS no need to keep the version 210 # Key depends on granularity, value is boolean 201 211 osnover gentoo = true 202 212 203 # For that OS no need to keep the . in the version release 213 # For that OS no need to keep the . in the version release 214 # Key depends on granularity, value is boolean 204 215 osremovedotinver mandrake = true 205 216 osremovedotinver redhat = true -
TabularUnified devel/pb-modules/lib/ProjectBuilder/Distribution.pm ¶
r768 r867 84 84 my $dsuf = "unknown"; 85 85 my $dupd = "unknown"; 86 my $arch = shift || undef; 86 my $darch = shift || undef; 87 my $dnover = "false"; 88 my $drmdot = "false"; 87 89 88 90 # If we don't know which distribution we're on, then guess it … … 90 92 91 93 # Initialize arch 92 $arch=pb_get_arch() if (not defined $arch); 93 94 # There should be unicity of names between ddir dfam and dtype 95 # In case of duplicate, bad things can happen 96 if (($ddir =~ /debian/) || 97 ($ddir =~ /ubuntu/)) { 98 $dfam="du"; 99 $dtype="deb"; 100 $dsuf=".$ddir$dver"; 101 # Chaining the commands allow to only test for what is able o be installed, 102 # not the update of the repo which may well be unaccessible if too old 103 $dupd="sudo apt-get update ; sudo apt-get -y install "; 104 } elsif ($ddir =~ /gentoo/) { 105 $dfam="gen"; 106 $dtype="ebuild"; 107 $dver="nover"; 108 $dsuf=".$ddir"; 109 $dupd="sudo emerge "; 110 } elsif ($ddir =~ /slackware/) { 111 $dfam="slack"; 112 $dtype="tgz"; 113 $dsuf=".$dfam$dver"; 114 } elsif (($ddir =~ /suse/) || 115 ($ddir =~ /sles/)) { 116 $dfam="novell"; 117 $dtype="rpm"; 118 $dsuf=".$ddir$dver"; 119 $dupd="export TERM=linux ; export PATH=\$PATH:/sbin:/usr/sbin ; sudo yast2 -i "; 120 } elsif (($ddir =~ /redhat/) || 121 ($ddir =~ /rhel/) || 122 ($ddir =~ /fedora/) || 123 ($ddir =~ /vmware/) || 124 ($ddir =~ /asianux/) || 125 ($ddir =~ /centos/)) { 126 $dfam="rh"; 127 $dtype="rpm"; 128 my $dver1 = $dver; 129 $dver1 =~ s/\.//; 130 131 # By defaut propose yum 132 my $opt = ""; 133 if ($arch eq "x86_64") { 134 $opt="--exclude=*.i?86"; 135 } 136 $dupd="sudo yum clean all; sudo yum -y update ; sudo yum -y $opt install "; 137 if ($ddir =~ /fedora/) { 138 $dsuf=".fc$dver1"; 139 } elsif ($ddir =~ /redhat/) { 140 $dsuf=".rh$dver1"; 141 $dupd="unknown"; 142 } elsif ($ddir =~ /asianux/) { 143 $dsuf=".asianux$dver1"; 144 } elsif ($ddir =~ /vmware/) { 145 $dsuf=".vwm$dver1"; 146 $dupd="unknown"; 147 } else { 148 # older versions of rhel ran up2date 149 if ((($dver eq "2.1") || ($dver eq "3") || ($dver eq "4")) && ($ddir eq "rhel")) { 150 $dupd="sudo up2date -y "; 151 } 152 $dsuf=".$ddir$dver1"; 153 } 154 } elsif (($ddir =~ /mandrake/) || 155 ($ddir =~ /mandrakelinux/) || 156 ($ddir =~ /mandriva/)) { 157 $dfam="md"; 158 $dtype="rpm"; 159 if ($ddir =~ /mandrakelinux/) { 160 $ddir = "mandrake"; 161 } 162 if ($ddir =~ /mandrake/) { 163 my $dver1 = $dver; 164 $dver1 =~ s/\.//; 165 $dsuf=".mdk$dver1"; 166 } else { 167 $dsuf=".mdv$dver"; 168 } 169 # Chaining the commands allow to only test for what is able o be installed, 170 # not the update of the repo which may well be unaccessible if too old 171 $dupd="sudo urpmi.update -a ; sudo urpmi --auto "; 172 } elsif ($ddir =~ /freebsd/) { 173 $dfam="bsd"; 174 $dtype="port"; 175 my $dver1 = $dver; 176 $dver1 =~ s/\.//; 177 $dsuf=".$dfam$dver1"; 94 $darch=pb_get_arch() if (not defined $darch); 95 96 # Adds conf file for distribution description 97 # the location of the conf file is finalyzed at install time 98 # depending whether we deal with package install or tar file install 99 pb_conf_add("CCCC/pb.conf"); 100 my ($osfamily,$ostype,$osupd,$ossuffix,$osnover,$osremovedotinver) = pb_conf_get("osfamily","ostype","osupd","ossuffix","osnover","osremovedotinver"); 101 102 $dfam = pb_distro_get_param($ddir,$dver,$darch,$osfamily); 103 $dtype = $ostype->{$dfam} if (defined $ostype->{$dfam}); 104 $dupd = pb_distro_get_param($ddir,$dver,$darch,$osupd,$dfam,$dtype); 105 $dsuf = pb_distro_get_param($ddir,$dver,$darch,$ossuffix,$dfam,$dtype); 106 $dnover = pb_distro_get_param($ddir,$dver,$darch,$osnover,$dfam,$dtype); 107 $drmdot = pb_distro_get_param($ddir,$dver,$darch,$osremovedotinver,$dfam,$dtype); 108 109 # Some OS have no interesting version 110 $dver = "nover" if ($dnover eq "true"); 111 112 # For some OS remove the . in version name 113 $dver =~ s/\.// if ($drmdot eq "true"); 114 115 if ((not defined $dsuf) || ($dsuf eq "unknown")) { 116 # By default suffix is a concatenation of .ddir and dver 117 $dsuf = ".$ddir$dver" 178 118 } else { 179 $dfam="unknown"; 180 } 181 182 return($ddir, $dver, $dfam, $dtype, $dsuf, $dupd, $arch); 119 # concat just the version to what has been found 120 $dsuf = ".$dsuf$dver"; 121 } 122 123 # if ($arch eq "x86_64") { 124 # $opt="--exclude=*.i?86"; 125 # } 126 127 return($ddir, $dver, $dfam, $dtype, $dsuf, $dupd, $darch); 183 128 } 184 129 … … 557 502 my $darch = shift; 558 503 my $opt = shift; 504 my $dfam = shift || "unknown"; 505 my $dtype = shift || "unknown"; 559 506 560 507 if (defined $opt->{"$ddir-$dver-$darch"}) { … … 564 511 } elsif (defined $opt->{"$ddir"}) { 565 512 $param = $opt->{"$ddir"}; 513 } elsif (defined $opt->{$dfam}) { 514 $param = $opt->{$dfam}; 515 } elsif (defined $opt->{$dtype}) { 516 $param = $opt->{$dtype}; 566 517 } elsif (defined $opt->{"default"}) { 567 518 $param = $opt->{"default"}; 568 519 } else { 569 $param = " ";520 $param = "unknown"; 570 521 } 571 522 return($param);
Note:
See TracChangeset
for help on using the changeset viewer.