Changeset 867 in ProjectBuilder for devel/pb-modules/lib
- Timestamp:
- Oct 21, 2009, 11:48:11 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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.