summaryrefslogtreecommitdiffstats
path: root/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm
diff options
context:
space:
mode:
authorSebastian Schmelzer2010-09-02 17:50:49 +0200
committerSebastian Schmelzer2010-09-02 17:50:49 +0200
commit416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5 (patch)
tree4715f7d742fec50931017f38fe6ff0a89d4ceccc /os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm
parentFix for the problem reported on the list (sed filter forgotten for the (diff)
downloadcore-416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5.tar.gz
core-416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5.tar.xz
core-416ab8a37f1b07dc9f6c0fb3ff1a8ff2036510b5.zip
change dir structure
Diffstat (limited to 'os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm')
-rw-r--r--os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm212
1 files changed, 0 insertions, 212 deletions
diff --git a/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm b/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm
deleted file mode 100644
index 51c1c60b..00000000
--- a/os-plugins/plugins/xserver/OpenSLX/Distro/Base.pm
+++ /dev/null
@@ -1,212 +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/Base.pm
-# - provides base implementation of the Distro API for the xserver plugin.
-# -----------------------------------------------------------------------------
-package xserver::OpenSLX::Distro::Base;
-
-use strict;
-use warnings;
-
-our $VERSION = 1.01; # API-version . implementation-version
-
-use File::Basename;
-use File::Path;
-use Scalar::Util qw( weaken );
-
-use OpenSLX::Basics;
-use OpenSLX::Utils;
-
-################################################################################
-### interface methods
-################################################################################
-sub new
-{
- my $class = shift;
- my $self = {};
- return bless $self, $class;
-}
-
-sub initialize
-{
- my $self = shift;
- $self->{engine} = shift;
- weaken($self->{engine});
- # avoid circular reference between plugin and its engine
-
- return 1;
-}
-
-sub setupXserverScript
-{
- my $self = shift;
- my $repoPath = shift;
-
- my $pathInfo = $self->XserverPathInfo();
- my $configFile = $pathInfo->{config};
-
- my $script = unshiftHereDoc(<<' End-of-Here');
- # xserver.sh (base part)
- # written by OpenSLX-plugin 'xserver' (via xserver/Distro/Base.pm module)
-
- # generating the base configuration file (might be split into several
- # files for newer Xorg servers)
- echo -e "# ${xfc#/mnt*}\n# autogenerated X hardware configuration by \
- the xserver plugin in OpenSLX stage3\n# DO NOT EDIT THIS FILE BUT THE PLUGIN \
- INSTEAD" >${xfc}
- # using variables defined in XX_xserver.sh
- echo -e "${x_modpath}\n${x_srvflags}\n${x_modules}" >>${xfc}
- echo -e "${x_keyboard}\n${x_mouse}\n${x_videocard}" >>${xfc}
- echo -e "${x_monitor}\n${x_screen}\n${x_srvlayout}\n${x_dri}" >>${xfc}
- # if no module was detected, stick to vesa module
- if [ -n "$xmodule" ] ; then
- sed "s/vesa/$xmodule/;s/\"us\"/\"${XKEYBOARD}\"/" -i ${xfc}
- else
- sed "s/\"us\"/\"${XKEYBOARD}\"/" -i ${xfc}
- fi
- if [ -n "${BUSID}" ]; then
- sed -e "s,^#.*BusID .*, BusID \"${BUSID}\",g" -i ${xfc}
- fi
- # end of base xorg.conf generation
-
- End-of-Here
-
- return $script;
-}
-
-# not used yet, kept as example
-sub XserverPathInfo
-{
- my $self = shift;
-
- my $pathInfo = {
- config => '/etc/X11/xorg.conf',
- paths => [
- '/usr/bin',
- ],
- };
-
- return $pathInfo;
-}
-
-
-# looks for the NVIDIA-installer and extracts it
-sub installNvidia
-{
- my $self = shift;
- my $repopath = shift || "/opt/openslx/plugin-repo/xserver/";
- my $pkgpath = shift || "packages";
-
- my @paths = glob $repopath.$pkgpath."/NVIDIA-Linux-x86*\n";
- my $paths = @paths;
-
- if ($paths > 1)
- {
- print "Found more than one NVIDIA-Linux-x86 installer. Taking first one.\n";
- }
- if ($paths == 0)
- {
- print "Found no NVIDIA-Linux-x86 installer. Quitting NVIDIA installation!\n";
- return "error";
- }
-
- if ( ! -X $paths[0] )
- {
- system("chmod +x ".$paths[0]);
- }
- system($paths[0]." -x --target $repopath/nvidia/temp >/dev/null 2>&1");
-
- if($? == -1 )
- {
- print "Failed to execute ".$paths[0]."\n";
- return "error";
- }
-
- system("mv $repopath/nvidia/temp/usr/src $repopath/nvidia/temp/");
- system("mv $repopath/nvidia/temp/usr/ $repopath/nvidia/");
- rmtree("$repopath/nvidia/usr/share/");
-
- return "$repopath/nvidia/temp/src/nv";
-}
-
-
-sub installAti
-{
- my $self = shift;
- my $repopath = shift || "/opt/openslx/plugin-repo/xserver/";
- my $pkgpath = shift || "packages";
-
- my @paths = glob $repopath."/".$pkgpath."/ati-driver-installer*";
- my $paths = @paths;
-
- if ($paths > 1)
- {
- print "Found more than one ati-driver-installer. Taking first one.\n";
- }
- if ($paths == 0)
- {
- print "Found no ati-driver-installer. Quitting ATI installation!\n";
- return "error";
- }
-
- if ( ! -X $paths[0] )
- {
- system("chmod +x ".$paths[0]);
- }
- system($paths[0]." --extract $repopath/ati/temp >/dev/null 2>&1");
-
- if($? == -1 )
- {
- print "Failed to execute ".$paths[0]."\n";
- return "error";
- }
-
- # TODO: allow x86_64 driver installation (libs)
- my $arch = "x86";
-
- rmtree("$repopath/ati/usr");
- system("mv $repopath/ati/temp/common/usr $repopath/ati/");
- if (!-d "$repopath/ati/usr/lib" ) {
- mkdir "$repopath/ati/usr/lib";
- }
- system("mv $repopath/ati/temp/arch/$arch/usr/X11R6/lib/* $repopath/ati/usr/lib/");
- system("mv $repopath/ati/temp/arch/$arch/usr/lib/* $repopath/ati/usr/lib/");
- rmtree("$repopath/ati/usr/share/");
-
- my $cmd='gcc --version | head -n 1 | sed -e "s/[^0-9. ]//g;s/^ *//;s/^\(.\)\..*$/\1/"';
- my $gcc_ver_maj =`$cmd`;
- chomp($gcc_ver_maj);
-
- system("mv $repopath/ati/temp/arch/$arch/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC$gcc_ver_maj $repopath/ati/temp/common/lib/modules/fglrx/build_mod/");
-
-
- return "$repopath/ati/temp/common/lib/modules/fglrx/build_mod";
-}
-
-# get dkms with wget/tar and put it into /sbin
-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 >/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 >/dev/null 2>&1");
- die("Could not extract dkms script from tarball! Exiting!") if($? > 0 );
- }
- copyFile("dkms-2.0.21.1/dkms","/sbin");
- chmod 0755, "/sbin/dkms";
- }
-}
-
-
-1;