From 416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5 Mon Sep 17 00:00:00 2001 From: Sebastian Schmelzer Date: Thu, 2 Sep 2010 17:50:49 +0200 Subject: change dir structure --- .../plugins/xserver/OpenSLX/Distro/Suse_11_0.pm | 360 --------------------- 1 file changed, 360 deletions(-) delete mode 100644 os-plugins/plugins/xserver/OpenSLX/Distro/Suse_11_0.pm (limited to 'os-plugins/plugins/xserver/OpenSLX/Distro/Suse_11_0.pm') diff --git a/os-plugins/plugins/xserver/OpenSLX/Distro/Suse_11_0.pm b/os-plugins/plugins/xserver/OpenSLX/Distro/Suse_11_0.pm deleted file mode 100644 index 4117c421..00000000 --- a/os-plugins/plugins/xserver/OpenSLX/Distro/Suse_11_0.pm +++ /dev/null @@ -1,360 +0,0 @@ -# Copyright (c) 2008..2010 - OpenSLX GmbH -# -# This program is free software distributed under the GPL version 2. -# See http://openslx.org/COPYING -# -# If you have any feedback please consult http://openslx.org/feedback and -# send your suggestions, praise, or complaints to feedback@openslx.org -# -# General information about OpenSLX can be found at http://openslx.org/ -# ----------------------------------------------------------------------------- -# xserver/OpenSLX/Distro/Suse_11_0.pm -# - provides SUSE-specific overrides of the Distro API for the xserver -# plugin. -# ----------------------------------------------------------------------------- -package xserver::OpenSLX::Distro::Suse_11_0; - -use strict; -use warnings; - -use base qw(xserver::OpenSLX::Distro::Base); - -use File::Path; - -use OpenSLX::Basics; -use OpenSLX::Utils; -use OpenSLX::DistroUtils; - -use Data::Dumper; - -################################################################################ -### interface methods -################################################################################ - -sub setupXserverScript -{ - my $self = shift; - my $repoPath = shift; - - my $script = $self->SUPER::setupXserverScript($repoPath); - - $script .= unshiftHereDoc(<<' End-of-Here'); - # SuSE specific extension to stage3 xserver.sh - testmkd /mnt/var/lib/xkb/compiled - testmkd /mnt/var/X11R6/bin - testmkd /mnt/var/lib/xdm/authdir/authfiles 0700 - ln -s /usr/bin/Xorg /mnt/var/X11R6/bin/X - rm /mnt/etc/X11/xdm/SuSEconfig.xdm - End-of-Here - - return $script; -} - -# This function needs wget installed -sub installNvidia -{ - my $self = shift; - my $repopath = shift || "/opt/openslx/plugin-repo/xserver/"; - my $pkgpath = shift || "packages"; - - my $tmpdir = "$repopath/nvidia/temp"; - if( !-d $tmpdir ) { - mkdir( $tmpdir ); - } - else { - system("rm -rf $tmpdir/*"); - } - - my $mykernel = getKernelVersionForDistro("/boot"); - my $kver = $mykernel->{'version'}; - my $ksuffix = $mykernel->{'suffix'}; - - my $srinfo = `head -n1 /etc/SuSE-release`; - my @data = split (/ /, $srinfo); - chomp(@data); - - my $version = $data[1]; - my $chost = substr($data[2],1,-1); - - my $url = "ftp://download.nvidia.com/opensuse/$version/$chost"; - - print " * Downloading NVIDIA rpm from ftp://download.nvidia.com/opensuse/$version\n"; - - system("wget -P $tmpdir -t2 -T2 $url/nvidia-gfxG01-kmp-$ksuffix* >/dev/null 2>&1"); - - if($? > 0) { - print "Could not download nvidia kernel module rpm!\n"; - } - - my @rpm = glob "$tmpdir/nvidia-gfxG01*.rpm"; - my $rpm = @rpm; - $rpm[0] =~ /nvidia-gfxG01-kmp-$ksuffix-(.*?)_(.*?)-.*?\.$chost.rpm/; - - my $nv_kver = $2; - $nv_kver =~ s/_/-/g; - - if($rpm == 0) { - print "Could not download nvidia kernel module rpm!"; - return; - } - - system("cd $tmpdir; rpm2cpio $rpm[0] | cpio -idv >/dev/null 2>&1"); - - if(!-d "$repopath/nvidia/modules/") - { - mkdir("$repopath/nvidia/modules/"); - } - - - # since kernel 2.6.25.20-0.1 there has to be a call to ld - # ld -r -m elf_i386 -o ../modules/nvidia.ko lib/modules/2.6.25.20-0.4-pae/updates/{nv-kernel,nv-linux}.o - - my $nv_path = glob "$tmpdir/lib/modules/*-$ksuffix/updates/"; - if ( -f "$nv_path/nv-kernel.o" ) { - # we have to link our kernel module here - system("ld -r -m elf_i386 -o $nv_path/nvidia.ko $nv_path/{nv-kernel,nv-linux}.o"); - } - - copyFile("$nv_path/nvidia.ko", "$repopath/nvidia/modules"); - - - my @versions = split(/-/, $rpm[0]); - my @nv_versions = split('_',$versions[5]); - my $nv_version = $nv_versions[0]; - - system("wget -P $tmpdir -t2 -T2 $url/x11-video-nvidiaG01-$nv_version* >/dev/null 2>&1"); - - @rpm = glob "$tmpdir/x11-video-nvidiaG01-$nv_version*"; - $rpm = @rpm; - - if($rpm == 0) - { - print "Could not download x11-video-nvidiaG01-$nv_version*.rpm!\n"; - print "Exiting nvidia driver installation!\n"; - return; - } - - system("cd $tmpdir; rpm2cpio $rpm[0] | cpio -idv >/dev/null 2>&1"); - - rmtree("$tmpdir/usr/share"); - system("mv $tmpdir/usr $repopath/nvidia/"); - - rmtree($tmpdir); - -} - -# this function needs wget -sub installAti -{ - my $self = shift; - my $repopath = shift || "/opt/openslx/plugin-repo/xserver/"; - my $pkgpath = shift || "packages"; - - my $tmpdir = "$repopath/ati/temp"; - if( !-d $tmpdir ) { - mkdir( $tmpdir ); - } - else { - system("rm -rf $tmpdir/*"); - } - - my $mykernel = getKernelVersionForDistro("/boot"); - my $kver = $mykernel->{'version'}; - my $kver_ati = $kver; - $kver_ati =~ s/-/_/; - - my $ksuffix = $mykernel->{'suffix'}; - - my $srinfo = `head -n1 /etc/SuSE-release`; - my @data = split (/ /, $srinfo); - chomp(@data); - - my $version = $data[1]; - my $chost = substr($data[2],1,-1); - - my $url = "http://www2.ati.com/suse/$version/"; - - print " * Downloading ATI rpm from http://www2.ati.com/suse/$version\n"; - - system("wget -P $tmpdir -t2 -T2 $url/repodata/primary.xml.gz >/dev/null 2>&1"); - - my $url2 = `zcat $tmpdir/primary.xml.gz | grep -P -o "$chost/ati-fglrxG01-kmp-$ksuffix.*?$kver_ati.*?$chost.rpm"`; - chomp($url2); - - if($url2 eq '') { - # Taking more general kernel version (minus local suse version) - my $newkernvers = ''; - if($kver_ati =~ /(.*)_(.*?)$/) { - # if we have a match here - $newkernvers = $1; - } - else { - # just try the old method - $newkernvers = substr $kver_ati, 0, -4; - } - $url2 = `zcat $tmpdir/primary.xml.gz | grep -P -o "$chost/ati-fglrxG01-kmp-$ksuffix.*?$newkernvers.*?$chost.rpm"`; - chomp($url2); - if(! $url2 eq '') { - $kver = $newkernvers; - } - else { - # Minus local Suse version number - hoping, there was no ABI change - if($newkernvers =~ /(.*).(.*?)$/) { - # here we try with yet another older kernel version - $newkernvers = $1; - } - else { - $newkernvers = substr $kver_ati, 0, -7; - } - $url2 = `zcat $tmpdir/primary.xml.gz | grep -P -o "$chost/ati-fglrxG01-kmp-$ksuffix.*?$newkernvers.*?$chost.rpm"`; - chomp($url2); - if(! $url2 eq '') { - $kver = $newkernvers; - } - - } - } - -# print "KVER = $kver; CHOST = $chost; ksuffix=$ksuffix\n"; -# system("bash"); - - if($url2 eq '') { - print "No ATI module rpm for the chosen kernel version ($kver) found! Exiting!\n"; - return; - } - system("wget -P $tmpdir -t2 -T2 $url/$url2 >/dev/null 2>&1"); - - my @rpm = glob "$tmpdir/ati-fglrxG01-kmp-$ksuffix*$chost.rpm"; - my $rpm = @rpm; - - if($rpm == 0) { - print "Could not download ATI kernel module rpm (for kernel $kver)!\n"; - print "Consider downgrading your Kernel! \nTrying package-install!\n"; - $self->installAtiOldStyle(@_); - return; - } - - system("cd $tmpdir; rpm2cpio $rpm[0] | cpio -idv >/dev/null 2>&1"); - - if(!-d "$repopath/ati/modules/") - { - mkdir("$repopath/ati/modules/"); - } - copyFile("$tmpdir/lib/modules/$kver*-$ksuffix/updates/fglrx.ko", - "$repopath/ati/modules"); - - my @versions = split(/-/, $rpm[0]); - my @ati_versions = split('_',$versions[5]); - my $ati_version = $ati_versions[0]; - - $url2 = `zcat $tmpdir/primary.xml.gz | grep -P -o "$chost/x11-video-fglrxG01-$ati_version-.*?.$chost.rpm"`; - chomp($url2); - system("wget -P $tmpdir -t2 -T2 $url/$url2 >/dev/null 2>&1"); - - @rpm = glob "$tmpdir/x11-video-fglrxG01-$ati_version*"; - $rpm = @rpm; - - if($rpm == 0) - { - print " Could not download x11-video-fglrxG01-$ati_version*.rpm!\n"; - print " Exiting ATI driver installation!\n"; - return; - } - - system("cd $tmpdir; rpm2cpio $rpm[0] | cpio -idv >/dev/null 2>&1"); - - rmtree("$tmpdir/usr/share"); - system("mv $tmpdir/usr $repopath/ati/"); - system("mv $tmpdir/etc $repopath/ati/"); - if( ! -d "/usr/X11R6/lib/modules/dri/" ) { - system("mkdir -p /usr/X11R6/lib/modules/dri/"); - } - symlink("$repopath/ati/usr/lib/dri/fglrx_dri.so","/usr/X11R6/lib/modules/dri/fglrx_dri.so"); - - rmtree($tmpdir); -} - - - -sub installAtiOldStyle -{ - my $self = shift; - my $repopath = shift || "/opt/openslx/plugin-repo/xserver/"; - my $pkgpath = shift || "packages"; - - - my $ret = $self->SUPER::installAti(@_); - - if($ret =~ /^error$/) { - print "Something went wrong installing ATI files!\n"; - return; - } - - $self->SUPER::getdkms(); - my $mykernel = getKernelVersionForDistro("/boot"); - my $kver = $mykernel->{'version'}; - my $kver_ati = $kver; - $kver_ati =~ s/-/_/; - - my $ksuffix = $mykernel->{'suffix'}; - - my $srinfo = `head -n1 /etc/SuSE-release`; - my @data = split (/ /, $srinfo); - chomp(@data); - - my $version = $data[1]; - my $chost = substr($data[2],1,-1); - - # here we have to compile the kernel modules for all kernels - # - my $ati_version = `head $repopath/$pkgpath/ati-driver-installer-*.run | grep -P -o '[0-9]+\.[0-9]{3}' | tail -n1`; - chomp($ati_version); - - system("mv $ret /usr/src/fglrx-$ati_version >/dev/null 2>&1"); - - open FH,">/usr/src/fglrx-$ati_version/dkms.conf"; - print FH "DEST_MODULE_LOCATION=/updates\n"; - print FH "PACKAGE_NAME=fglrx\n"; - print FH "PACKAGE_VERSION=$ati_version\n"; - close FH; - - my $cmd = "#============= Executing following command =============\n". - "/sbin/dkms ". - " -m fglrx -v $ati_version ". - " -k $kver-$ksuffix ". - " --kernelsourcedir /usr/src/linux-$kver-obj/i586/$ksuffix ". - " --no-prepare-kernel ". - " --no-clean-kernel ". - " build >/dev/null 2>&1 \n". - "#=========================================================="; - -#print $cmd; - if(!-f "/var/lib/dkms/fglrx/$ati_version/$kver-$ksuffix/$chost/module/fglrx.ko") { - system("/sbin/dkms add -m fglrx -v $ati_version >/dev/null 2>&1"); - system($cmd); - #if ($? > 0) { - # print "\n\nCould not compile module! Exit with Ctrl-D\n"; - # system("/bin/bash"); - #} - } - - - if(!-d "$repopath/ati/modules/") - { - mkdir( "$repopath/ati/modules/" ); - } - - if( -e "/var/lib/dkms/fglrx/$ati_version/$kver-$ksuffix/$chost/module/fglrx.ko") { - copyFile("/var/lib/dkms/fglrx/$ati_version/$kver-$ksuffix/$chost/module/fglrx.ko", - "$repopath/ati/modules"); - } - else { - print "Could not install ati driver via pkg-installer!\n"; - rmtree($repopath."/ati"); - return; - } - rmtree("$repopath/ati/temp"); - -} - -1; -- cgit v1.2.3-55-g7522