summaryrefslogtreecommitdiffstats
path: root/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm
diff options
context:
space:
mode:
authorBastian Wissler2009-06-05 20:17:40 +0200
committerBastian Wissler2009-06-05 20:17:40 +0200
commit6fb82427d4e3cb76e20700d8e0cfb609056ec2b9 (patch)
treec5bd7c32cd586e4ff482c27478d91d3906ea6c3f /os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm
parentFixing #450: (diff)
downloadcore-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.pm39
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;