--- loncom/build/distprobe 2003/04/15 15:25:51 1.3 +++ loncom/build/distprobe 2007/04/23 20:04:52 1.12 @@ -1,6 +1,31 @@ #!/usr/bin/perl - -# YEAR=2002 +# +# The LearningOnline Network with CAPA +# +# $Id: distprobe,v 1.12 2007/04/23 20:04:52 raeburn Exp $ +# +# Copyright Michigan State University Board of Trustees +# +# This file is part of the LearningOnline Network with CAPA (LON-CAPA). +# +# LON-CAPA is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# LON-CAPA is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LON-CAPA; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# /home/httpd/html/adm/gpl.txt +# +# http://www.lon-capa.org/ +# my $dist='default'; if (-e '/etc/redhat-release') { @@ -8,14 +33,31 @@ if (-e '/etc/redhat-release') { my $versionstring=; chomp($versionstring); close(IN); - my $version=(split(/\s+/,$versionstring))[4]; - if ($version=~/^7\./) { - $dist='redhat7'; - } elsif ($version=~/^8\./) { - $dist='redhat8'; + if ($versionstring =~ /^Red Hat Linux release ([\d\.]+) /) { + $version = $1; + if ($version=~/^7\./) { + $dist='redhat7'; + } elsif ($version=~/^8\./) { + $dist='redhat8'; + } elsif ($version=~/^9/) { + $dist='redhat9'; + } + } elsif ($versionstring =~ /Fedora Core release ([\d\.]+) /) { + my $version=$1; + if ($version - int($version) > .9) { + $dist = 'fedora'.(int($version)+1); + } else { + $dist = 'fedora'.int($version); + } + } elsif ($versionstring =~ /Red Hat Enterprise Linux [AE]S release ([\d\.]+) /) { + $dist = 'rhes'.$1; + } elsif ($versionstring =~ /Red Hat Enterprise Linux Server release (\d+)/) { + $dist = 'rhes'.$1; + } else { + warn('Unable to interpret /etc/redhat-release '. + 'to determine system type'); } -} -elsif (-e '/etc/debian_version') { +} elsif (-e '/etc/debian_version') { open(IN,'; chomp($version); @@ -23,9 +65,22 @@ elsif (-e '/etc/debian_version') { if ($version eq '2.2') { $dist='debian2.2'; } -} -else { - warn('Unknown installation filesystem; expecting debian version 2.2 '. - 'or redhat 6.* or 7.*'); +} elsif (-e '/etc/SuSE-release') { + open(IN,'; + chomp($versionstring); + close(IN); + if ($versionstring =~ /^SUSE LINUX Enterprise Server ([\d\.]+) /i) { + $dist='sles'.$1; + } elsif ($versionstring =~ /^SuSE Linux ([\d\.]+) /i) { + $dist = 'suse'.$1; + } elsif ($versionstring =~ /^openSUSE ([\d\.]+) /i) { + $dist = 'suse'.$1; + } else { + warn('Unable to interpret /etc/SuSE-release '. + 'to determine system type'); + } +} else { + warn('Unknown installation: expecting a debian, suse, or redhat system'); } print $dist;