diff options
author | Bastian Wissler | 2009-06-05 20:17:40 +0200 |
---|---|---|
committer | Bastian Wissler | 2009-06-05 20:17:40 +0200 |
commit | 6fb82427d4e3cb76e20700d8e0cfb609056ec2b9 (patch) | |
tree | c5bd7c32cd586e4ff482c27478d91d3906ea6c3f /os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm | |
parent | Fixing #450: (diff) | |
download | core-6fb82427d4e3cb76e20700d8e0cfb609056ec2b9.tar.gz core-6fb82427d4e3cb76e20700d8e0cfb609056ec2b9.tar.xz core-6fb82427d4e3cb76e20700d8e0cfb609056ec2b9.zip |
Various changes to xserver plugin:
* added support for kernel version detection - yet from local function
* now falls back to ati package installation, if download fails
ATTENTION: If you have a recent Kernel Version in Suse-11.1, consider downgrading your Kernel to support fglrx-drivers from their RPM repository.
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2937 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm')
-rw-r--r-- | os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm b/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm index 04f85ed9..70a08859 100644 --- a/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm +++ b/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm @@ -173,11 +173,11 @@ sub getdkms { if( !-f "/sbin/dkms") { if(!-f "dkms-2.0.21.1.tar.gz" ) { - system("wget http://linux.dell.com/dkms/permalink/dkms-2.0.21.1.tar.gz"); + system("wget http://linux.dell.com/dkms/permalink/dkms-2.0.21.1.tar.gz >/dev/null 2>&1"); die("Could not download dkms tarball! Exiting!") if($? > 0 ); } if(!-f "dkms-2.0.21.1/dkms" ) { - system("tar -zxvf dkms-2.0.21.1.tar.gz dkms-2.0.21.1/dkms"); + system("tar -zxvf dkms-2.0.21.1.tar.gz dkms-2.0.21.1/dkms >/dev/null 2>&1"); die("Could not extract dkms script from tarball! Exiting!") if($? > 0 ); } copyFile("dkms-2.0.21.1/dkms","/sbin"); @@ -185,4 +185,39 @@ sub getdkms } } + +sub getKernelVersion +{ + my $self = shift; + my $kernelPath = shift; + + my $newestKernelFile; + my $newestKernelFileSortKey = ''; + my $sortKey; + my $kernelPattern = '{vmlinuz,kernel-genkernel-x86}-*'; + foreach my $kernelFile (glob("$kernelPath/$kernelPattern")) { + next unless $kernelFile =~ m{ + (?:vmlinuz|x86)-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?-(\d+(?:\.\d+)?) + }x; + $sortKey + = sprintf("%02d.%02d.%02d.%02d-%2.1f", $1, $2, $3, $4||0, $5); + if ($newestKernelFileSortKey lt $sortKey) { + $newestKernelFile = $kernelFile; + $newestKernelFileSortKey = $sortKey; + } + } + + if (!defined $newestKernelFile) { + die _tr("unable to pick a kernel-file from path '%s'!", $kernelPath); + } + + $newestKernelFile =~ /.*?-([.\-0-9]*)-([a-zA-Z]*?)$/; + my $kernel = {}; + $kernel->{'version'} = $1; + $kernel->{'suffix'} = $2; + return $kernel; +# return $newestKernelFile; + +} + 1; |