summaryrefslogtreecommitdiffstats
path: root/remote/modules
diff options
context:
space:
mode:
authorChristian Rößler2013-05-10 15:03:15 +0200
committerChristian Rößler2013-05-10 15:03:15 +0200
commit1a7f3585a7e05c6c047d3527d2c47d0152306efe (patch)
tree3fa11f5628abc3bf8bf69ea752cbb9f64515a81b /remote/modules
parentcommit (diff)
parentRemove unneeded packages from vmplayer.conf (diff)
downloadtm-scripts-1a7f3585a7e05c6c047d3527d2c47d0152306efe.tar.gz
tm-scripts-1a7f3585a7e05c6c047d3527d2c47d0152306efe.tar.xz
tm-scripts-1a7f3585a7e05c6c047d3527d2c47d0152306efe.zip
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
Diffstat (limited to 'remote/modules')
-rw-r--r--remote/modules/kernel/kernel.build2
l---------remote/modules/pam/data/etc/openldap/ldap.conf1
-rw-r--r--remote/modules/pam/data/etc/pam.d/common-session2
-rw-r--r--remote/modules/pam/pam.conf3
-rw-r--r--remote/modules/rsyslogd/data/etc/rsyslog.conf2
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/activate-swap30
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/analyse-disk.sh120
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/fetch-config178
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/ip-dns-conf86
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/nfs-mount.service2
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/udhcpc@.service2
-rw-r--r--remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.mount10
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/vmchooser/bin/run-virt.sh440
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/vmchooser/bin/vmplayer8
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/vmchooser/bin/vmware8
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/vmchooser/bin/xmlfilter.sh50
l---------remote/modules/vmchooser/data/var/opt/openslx/bin/run-virt.sh1
-rwxr-xr-xremote/modules/vmplayer/data/bin/vmplayer10
-rw-r--r--remote/modules/vmplayer/data/etc/vmware/bootstrap11
-rw-r--r--remote/modules/vmplayer/data/etc/vmware/config19
l---------remote/modules/vmplayer/data/etc/vmware/icu1
l---------remote/modules/vmplayer/data/etc/vmware/installer.sh1
-rw-r--r--remote/modules/vmplayer/data/etc/vmware/networking12
-rw-r--r--remote/modules/vmplayer/data/etc/vmware/usbarb.rules4
-rw-r--r--remote/modules/vmplayer/data/etc/vmware/vmnet1/dhcpd/dhcpd.conf40
-rw-r--r--remote/modules/vmplayer/data/etc/vmware/vmnet1/dhcpd/dhcpd.leases7
-rw-r--r--remote/modules/vmplayer/data/etc/vmware/vmnet8/dhcpd/dhcpd.conf43
-rw-r--r--remote/modules/vmplayer/data/etc/vmware/vmnet8/dhcpd/dhcpd.leases7
-rw-r--r--remote/modules/vmplayer/data/etc/vmware/vmnet8/nat.mac1
-rw-r--r--remote/modules/vmplayer/data/etc/vmware/vmnet8/nat/nat.conf60
-rw-r--r--remote/modules/vmplayer/vmplayer.build60
-rw-r--r--remote/modules/vmplayer/vmplayer.conf5
-rw-r--r--remote/modules/xorg/data/etc/X11/Xsession34
33 files changed, 333 insertions, 927 deletions
diff --git a/remote/modules/kernel/kernel.build b/remote/modules/kernel/kernel.build
index 1ac0dc34..d7fab596 100644
--- a/remote/modules/kernel/kernel.build
+++ b/remote/modules/kernel/kernel.build
@@ -45,7 +45,7 @@ build() {
make oldconfig || perror "make oldconfig failed"
fi
pinfo "Kompaliere kernel... (this will take some time)"
- if gcc --version | grep "4\.7"; then
+ if gcc --version | grep "4\.7" && which distcc; then
pinfo "USING DISTCC"
make CC="distcc gcc-4.7" -j16 || perror "make failed"
else
diff --git a/remote/modules/pam/data/etc/openldap/ldap.conf b/remote/modules/pam/data/etc/openldap/ldap.conf
new file mode 120000
index 00000000..c0aaf459
--- /dev/null
+++ b/remote/modules/pam/data/etc/openldap/ldap.conf
@@ -0,0 +1 @@
+/etc/ldap.conf \ No newline at end of file
diff --git a/remote/modules/pam/data/etc/pam.d/common-session b/remote/modules/pam/data/etc/pam.d/common-session
index b130bb1f..25311276 100644
--- a/remote/modules/pam/data/etc/pam.d/common-session
+++ b/remote/modules/pam/data/etc/pam.d/common-session
@@ -28,5 +28,5 @@ session optional pam_umask.so
# and here are more per-package modules (the "Additional" block)
session [success=1] pam_unix.so
session [success=ok] pam_ldap.so
-session optional pam_ck_connector.so nox11
+session optional pam_mkhomedir.so skel=/etc/skel umask=0022
# end of pam-auth-update config
diff --git a/remote/modules/pam/pam.conf b/remote/modules/pam/pam.conf
index 4f353ade..0afd3ec3 100644
--- a/remote/modules/pam/pam.conf
+++ b/remote/modules/pam/pam.conf
@@ -12,7 +12,8 @@ REQUIRED_PACKAGES=" libpam0g
REQUIRED_DIRECTORIES=" /lib
/usr/lib
/etc/security"
-REQUIRED_SYSTEM_FILES=" /etc/pam.conf
+REQUIRED_SYSTEM_FILES=" /sbin/mkhomedir_helper
+ /etc/pam.conf
/etc/login.defs
/etc/securetty
/etc/default/locale
diff --git a/remote/modules/rsyslogd/data/etc/rsyslog.conf b/remote/modules/rsyslogd/data/etc/rsyslog.conf
index c002d602..65b4db88 100644
--- a/remote/modules/rsyslogd/data/etc/rsyslog.conf
+++ b/remote/modules/rsyslogd/data/etc/rsyslog.conf
@@ -81,4 +81,4 @@ news.notice -/var/log/news/news.notice
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
- *.=notice;*.=warn
+ *.=notice;*.=warn |/dev/tty11
diff --git a/remote/modules/systemd/data/etc/systemd/system/activate-swap b/remote/modules/systemd/data/etc/systemd/system/activate-swap
deleted file mode 100644
index 10cb42e9..00000000
--- a/remote/modules/systemd/data/etc/systemd/system/activate-swap
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2013 - 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 feedback to feedback@openslx.org
-#
-# General information about OpenSLX can be found under http://openslx.org
-#
-# Initialize swap for OpenSLX linux stateless clients, both for swap on local
-# disk partitions as well as compressed ramzswap or similar
-
-#############################################################################
-
-# depends on mount-disk.sh
-# depends on availability of the appropriate kernel module/functionality
-
-# try to enable compressed RAM SWAP / ZRAM
-if modprobe ${MODPRV} ramzswap 2>/dev/null && [ -f /usr/bin/rzscontrol ] ; then
- rzscontrol /dev/ramzswap0 --init
- swapon /dev/ramzswap0 2>/dev/null
- #hdswap="# disk swap disabled because of enabled compressed ramswap"
-elif modprobe ${MODPRV} zram 2>/dev/null ; then
- # assign a quarter of total mem to zram
- echo $(( $(free -k | awk '/^Mem:/ { print $2 }') * 256 )) > /sys/block/zram0/disksize
- mkswap /dev/zram0 2>/dev/null
- swapon /dev/zram0 2>/dev/null
-fi
diff --git a/remote/modules/systemd/data/etc/systemd/system/analyse-disk.sh b/remote/modules/systemd/data/etc/systemd/system/analyse-disk.sh
deleted file mode 100644
index 0c152dbf..00000000
--- a/remote/modules/systemd/data/etc/systemd/system/analyse-disk.sh
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2013 - 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 feedback to feedback@openslx.org
-#
-# General information about OpenSLX can be found under http://openslx.org
-#
-# Local hard disk autoconfiguration script for OpenSLX linux stateless
-# clients, detecting swap and special partitions
-
-#############################################################################
-
-# Todo:
-# * This script should be run just once per boot!
-# * The activation of swap could/should be handled in separate script!?
-# * The mounting of /tmp could/should be done separately?
-# * Same for other partitions, use information of /etc/fstab for that?
-# * Should we just install xfs in the source system and boil down everything
-# onto that?
-
-# General formatter for the /tmp partition on a local harddisk
-diskfm () {
-local target=$1
-local mntpnt=$2
-local fs
-local path
-for fs in xfs reiserfs ext2 ; do
- if strinfile "$fs" /proc/filesystems || modprobe ${MODPRV} $fs ; then
- unset $found
- for path in /sbin /bin /usr/sbin /usr/bin ; do
- if test -x /mnt/$path/mkfs.$fs ; then
- found=yes
- case mkfs.$fs in
- mkfs.xfs)
- fopt="-f"
- mopt="-o noexec"
- ;;
- mkfs.ext2)
- fopt="-Fq"
- mopt="-o nocheck,noexec"
- ;;
- mkfs.reiserfs)
- fopt="-f"
- mopt="-o noexec"
- ;;
- esac
- mkfs.$fs $fopt $target >/dev/null 2>&1 #|| error
- if [ -z $mntpnt ] ; then
- umount /tmp 2>/dev/null
- if mount -t $fs -n $mopt $target /tmp 2>/dev/null; then
- return 0
- else
- mount -n -t tmpfs none /tmp
- fi
- else
- mkdir -p $mntpnt
- mount -t $fs -n -o loop $target $mntpnt 2>/dev/null
- return 0
- fi
- fi
- done
- [ -z $found ] && continue
- else break
- fi
-done
-}
-
-# Check for local harddisks and appropriate partitions
-fdisk -l /dev/$hd|sed -n "/^\/dev\//p" >/etc/disk.partition
-
-# Check for standard swap partitions and make them available to the system
-for hdpartnr in $(cat /etc/disk.partition | \
- sed -n -e "/ 82 /p"|sed -e "s/[[:space:]].*//") ; do
- echo -e "$hdpartnr\tswap\t\tswap\t\tdefaults\t 0 0" >>/etc/fstab
-done
-
-# We use special non assigned partition type (id44) for harddisk scratch
-# space, thus no normal filesystem will be incidentally deleted or
-# corrupted
-for hdpartnr in $(cat /etc/disk.partition | \
- sed -n -e "/ 44 /p"|sed -e "s/[[:space:]].*//") ; do
- # check for supported filesystem and formatter
- ( if diskfm $hdpartnr ; then
- echo "$hdpartnr is mounted to /mnt/tmp at $(sysup)" >/tmp/tmpready
- echo -e "$hdpartnr\t/tmp\t\tauto\t\tdefaults\t 0 0" >>/etc/fstab
- else
- echo "formatting failed for some reason ($(sysup))" >/tmp/tmpready
- fi ) &
- break
-done
-
-# Put detected linux partitions (83) into /etc/fstab with "noauto", special
-# partition 45 (persistent scratch) to /var/scratch and 46 to /var/openslx
-for partid in 83 45 46 ; do
- for hdpartnr in $(cat /etc/disk.partition | \
- sed -n -e "/ ${partid} /p"|sed -e "s/[[:space:]].*//") ; do
- mkdir -p /media/${hdpartnr#/dev/*} 2>/dev/null
- if [ ${partid} -eq 83 ] ; then
- echo -e "$hdpartnr\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto,\
-noexec\t 0 0" >>/tmp/fstab
- elif [ ${partid} -eq 45 ] ; then
- #mount -t auto ${hdpartnr} /media/${hdpartnr#/dev/*}
- #ln -sf /media/${hdpartnr#/dev/*} /var/scratch
- echo -e "${hdpartnr}\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto\
-\t\t 0 0" >>/tmp/fstab
- elif [ ${partid} -eq 46 ] ; then
- # Mount a home directory to (/mnt)/var/home
- #mount -t auto ${hdpartnr} /mnt/media/${hdpartnr#/dev/*} \n\
- #test -d /mnt/media/${hdpartnr#/dev/*}/home && \
- # ln -sf /media/${hdpartnr#/dev/*} /var/home
- echo -e "${hdpartnr}\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto\
-\t\t 0 0" >>/tmp/fstab
- fi
- done
-done
-
diff --git a/remote/modules/systemd/data/etc/systemd/system/fetch-config b/remote/modules/systemd/data/etc/systemd/system/fetch-config
deleted file mode 100644
index 556f0f41..00000000
--- a/remote/modules/systemd/data/etc/systemd/system/fetch-config
+++ /dev/null
@@ -1,178 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2013 - 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 feedback to feedback@openslx.org
-#
-# General information about OpenSLX can be found under http://openslx.org
-#
-# Fetch configuration from server ...
-
-#############################################################################
-
-# Depends on configured networking, provides configuration
-
-
-# Todo: rewrite for next-gen system - principle would be the same ...
-
-# Function for retrieving configuration file (machine-setup) via tftp from a
-# predefined server or given source (file=tftp-server:/path via kernel
-# command line)
-unpack () {
-# $1 is config file name to get, $2 IP of server to get file from
-local dst=$1
-if [ -s $dst ] ; then
- # fixme: handle different types of packaging (gzip/bzip2)??
- if ! tar -xpzf $dst 2> /tmp/ConfTGZ-tar-error ; then
- cat /tmp/ConfTGZ-tar-error
- error "$unpack_ConfTGZ" nonfatal
- rm /tmp/ConfTGZ-tar-error
- fi
- [ "$DEBUGLEVEL" -le 2 -o "$DEBUGLEVEL" -eq 8 ] && rm $dst
- return 0
-else
- return 1
-fi
-}
-
-# tftp wrapper
-# usage tftp_get <path> <tftpdserver> [count]
-# count is optional - default is 3 - use -1 for indefinit
-tftp_get () {
- local file="$1"
- local file_server="$2"
- local download_successful=0
- local countdown="$3"
-
- if [ -z "$1" -o -z "$2" ]; then
- [ $DEBUGLEVEL -ge 1 ] && \
- echo "[tftp_get] Usage: tftp_get <path> <server> [count]"
- return 1;
- fi
-
- [ "$countdown" = "" ] && countdown=3
-
- until [ $download_successful -eq 1 ]
- do
- if [ "$countdown" = "0" ]; then
- [ $DEBUGLEVEL -ge 1 ] && \
- echo "[tftp_get] download of \"$file\" from \"$file_server\" ... failed"
- return 0;
- fi
- tftp -g -r "/$file" -l /tmp/$(basename $file) $file_server
- [ -s /tmp/$(basename $file) ] && download_successful=1
- countdown=$(expr $countdown - 1)
- usleep 200000
- done
- [ $DEBUGLEVEL -ge 1 ] && \
- echo "[tftp_get] download of \"$file\" from \"$file_server\" ... successful"
- return 0;
-}
-
-
-# wget wrapper
-# usage wget_get <path> <ftp/httpserver> [count]
-# count is optional - default is 3 - use -1 for indefinit
-wget_get () {
- local file="$1"
- local file_server="$2"
- local download_successful=0
- local countdown="$3"
-
- if [ -z "$1" -o -z "$2" ]; then
- [ $DEBUGLEVEL -ge 1 ] && \
- echo "[wget_get] Usage: wget_get <path> <server> [count]"
- return 1;
- fi
-
- [ "$countdown" = "" ] && countdown=3
-
- until [ $download_successful -eq 1 ]
- do
- if [ "$countdown" = "0" ]; then
- [ $DEBUGLEVEL -ge 1 ] && \
- echo "[wget_get] download of \"$file\" from \"$file_server\" ... failed"
- return 0;
- fi
- wget -q $file_server$file -O /tmp/$(basename $file)
- [ -s /tmp/$(basename $file) ] && download_successful=1
- countdown=$(expr $countdown - 1)
- usleep 200000
- done
- [ $DEBUGLEVEL -ge 1 ] && \
- echo "[wget_get] download of \"$file\" from \"$file_server\" ... successful"
- return 0;
-}
-
-
-fileget () {
-# normally tftp would be used, alternatively use wget for ftp or http
-# if local device file is specified - mount and unmount after copying
-local cfgfile
-[ "x$fileprot" = "x" ] && fileprot=tftp
-if [ "x$filepath" != "x" ] ; then
- cfgfile=${filepath}
- [ "x$fileserv" = "x" ] && fileserv=$(checkip ${serverip})
- # wait for dns if "fileserv" is a name and not lbd device
- [ "$fileprot" != "lbd" ] && \
- echo ${fileserv} | grep -qi [a-z]
- [ $DEBUGLEVEL -ge 1 ] && echo "fileget - fileprot:$fileprot, filepath:\
-$filepath, fileserv:$fileserv" >>$LOGFILE
- case "$fileprot" in
- ftp|http)
- wget_get $cfgfile $fileprot://$fileserv \
- && { unpack /tmp/$(basename $cfgfile) && break; } 2>>$LOGFILE
- ;;
- lbd)
- local ldev=$fileserv
- echo "Waiting for configuration file ${cfgfile} ...."
- [ $DEBUGLEVEL -ge 1 ] && echo "fileget - fileprot:$fileprot, filepath:\
-$filepath, fileserv:$fileserv" >>$LOGFILE
- waitfor /mnt/${cfgfile} 10000
- if [ -f /mnt/${cfgfile} ]; then
- unpack /mnt/$cfgfile
- else
- error "$init_errlfg"
- fi
- ;;
- *)
- tftp_get $cfgfile $fileserv \
- && unpack /tmp/$(basename $cfgfile) 2>>$LOGFILE
- ;;
- esac
-else
- # predefined value for OpenSLX environment; it is expected that this
- # directory is just below the tftpboot (path to which the daemon is
- # restricted to)
- filepath="client-config"
- [ "x$fileserv" = "x" ] && fileserv=$(checkip ${serverip})
- [ $DEBUGLEVEL -ge 1 ] && echo "fileget - fileprot:$fileprot, filepath:\
-$filepath, fileserv:$fileserv" >>$LOGFILE
- # try to get configuration files successively; start with distro client
- # and try last distro default ...
- mac=$(echo $macaddr|sed "s/:/-/g")
- for cfgfile in ${filepath}/${SYSTEM_NAME}/01-$mac.tgz \
- ${filepath}/${SYSTEM_NAME}/default.tgz ; do
- case "$fileprot" in
- ftp|http)
- wget $fileprot://$fileserv/$cfgfile -O /tmp/$(basename $cfgfile) \
- 2>>$LOGFILE && { unpack /tmp/$(basename $cfgfile) && break; }
- ;;
- tftp)
- tftp_get $cfgfile $fileserv \
- 2>>$LOGFILE && { unpack /tmp/$(basename $cfgfile) && break; }
- ;;
- esac
- done
- echo -e "\n## Configuration via fileget from ${fileprot}://${fileserv}/\
-${cfgfile}\n# Hierarchy is distro client and as last distro/default" \
- >>/tmp/confviafile
-fi
-cat /initramfs/machine-setup >>/tmp/confviafile 2>/dev/null || \
- error "$nomachsetup"
-echo "fileget via $fileprot from $fileserv/$cfgfile finished" >/tmp/file-done
-[ $DEBUGLEVEL -ge 1 ] && echo "fileget from $cfgfile finished" >>$LOGFILE
-}
diff --git a/remote/modules/systemd/data/etc/systemd/system/ip-dns-conf b/remote/modules/systemd/data/etc/systemd/system/ip-dns-conf
deleted file mode 100644
index f14ecd88..00000000
--- a/remote/modules/systemd/data/etc/systemd/system/ip-dns-conf
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2013 - 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 feedback to feedback@openslx.org
-#
-# General information about OpenSLX can be found under http://openslx.org
-#
-# Set IP and DNS configuration ...
-
-#############################################################################
-
-# Depends on running network interface, provides IP and DNS configuration
-
-# Dns and ip configuration, hostname of the machine --> to be merged with udhcpc.default.script!!
-echo "$host_name" >/proc/sys/kernel/hostname
-echo -e "# /etc/hosts - file generated by $0 during OpenSLX stage3\
-\n#\n# IP-Address Full-Qualified-Hostname Short-Hostname\n#\n\
-127.0.0.1\tlocalhost\n::1\t\tlocalhost ipv6-localhost ipv6-loopback\n\
-fe00::0\t\tipv6-localnet\nff00::0\t\tipv6-mcastprefix\nff02::1\
-\t\tipv6-allnodes\nff02::2\t\tipv6-allrouters\nff02::3\t\t\
-ipv6-allhosts\n" >/etc/hosts
-if [ -n "${domain_name}" ]; then
- echo -en "${clientip}\t" >>/etc/hosts
- for name in ${domain_name}; do
- echo -en "${host_name}.${name} " >>/etc/hosts
- done
- echo -e "${host_name}" >>/etc/hosts
-else
- echo -e "${clientip}\t${host_name}" >>/etc/hosts
-fi
-# set up domainname and resolving
-#rm -rf /etc/resolv.conf
-
-out=/etc/resolv.conf
-echo -e "# /etc/resolv.conf - file generated by\n#\t$0:\n\
-#\t${date}\n#options timeout:1 attempts:1 rotate" > $out
-
-[ "x${domain_name}" != "x" ] && echo -e "domain ${domain_name}" >> $out
-[ "x${domain_search}" != "x" ] && echo -e "search ${domain_search}" >> $out
-# fallback
-[ "x${domain_search}" == "x" ] && [ "x${domain_name}" != "x" ] && \
- echo -e "search ${domain_name}" >> $out
-
-[ -n "${domain_name_servers}" ] && {
- for name in ${domain_name_servers}; do
- echo nameserver ${name} >> $out;
- done; }
-
-# Create hostname file
-[ -n ${host_name} ] && [ -n ${domain_name} ] && \
- echo "${host_name}.${domain_name}" > /etc/hostname
-
-
-# Set greeting and add information on booted system
-len=$(expr length ${SLXVERSION}${SYSTEM_NAME})
-if [ $len -le 28 ] ; then
- vdstr="Stateless Workstation (V${SLXVERSION}/${SYSTEM_NAME})"
- smax=28
-else
- vdstr="V${SLXVERSION}/${SYSTEM_NAME}"
- smax=52
-fi
-while [ $len -le $smax ] ; do
- vdstr="$vdstr "
- len=$(($len + 1))
-done
-len=$(expr length ${host_name})
-while [ $len -le 30 ] ; do
- space="$space "
- len=$(($len + 1))
-done
-echo "
- WELCOME TO $space \n (\l)
- _____ ______ ______ __ __ _______ __ __ __
- / _ | _ | ___| | | | | ____| | | | | |
- | | | | |_| | |_ | | | | |___ | | / /
- | | | | ___/| _| | | ____ | | | |
- | |_| | | | |___| | | | ____| | |___ / /
- _____/|__| |______|__| |__| |_______|______|__| |__|
-
- $vdstr (c) <OpenSLX.ORG>
-" >/etc/issue
diff --git a/remote/modules/systemd/data/etc/systemd/system/nfs-mount.service b/remote/modules/systemd/data/etc/systemd/system/nfs-mount.service
index 408bc053..a2f9dc54 100644
--- a/remote/modules/systemd/data/etc/systemd/system/nfs-mount.service
+++ b/remote/modules/systemd/data/etc/systemd/system/nfs-mount.service
@@ -4,4 +4,4 @@ Description=Mount NFS Share [TEST]
[Service]
Type=oneshot
RemainAfterExit=yes
-ExecStart=/usr/sbin/mountexport
+ExecStart=/opt/openslx/bin/mountexport
diff --git a/remote/modules/systemd/data/etc/systemd/system/udhcpc@.service b/remote/modules/systemd/data/etc/systemd/system/udhcpc@.service
index af4c70bb..db67c6b6 100644
--- a/remote/modules/systemd/data/etc/systemd/system/udhcpc@.service
+++ b/remote/modules/systemd/data/etc/systemd/system/udhcpc@.service
@@ -3,7 +3,7 @@ Description=DHCP Client
[Service]
Type=simple
-ExecStart=/opt/openslx/sbin/udhcpc -O domain -O nissrv -O nisdomain -O wpad -t 8 -s /etc/udhcpc.openslx.script -i %I
+ExecStart=/opt/openslx/bin/dhcp++ %I
[Install]
WantedBy=multi-user.target
diff --git a/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.mount b/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.mount
new file mode 100644
index 00000000..704606a6
--- /dev/null
+++ b/remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.mount
@@ -0,0 +1,10 @@
+[Unit]
+ Description=Mount vm-store NFS
+
+ [Mount]
+ What=vm-store.public.ads.uni-freiburg.de:vmwareImages/vmware/vmware65
+ Where=/var/lib/virt
+ Type=nfs
+ Options=rw,async,nolock,vers=3
+ StandardOutput=syslog
+ StandardError=syslog
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/run-virt.sh b/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/run-virt.sh
deleted file mode 100755
index b3863a2e..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/run-virt.sh
+++ /dev/null
@@ -1,440 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------------
-# Copyright (c) 2007..2010 - RZ Uni FR
-# Copyright (c) 2007..2011 - 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/
-# -----------------------------------------------------------------------------
-# run-virt.sh
-# - This is the generic wrapper for the several virtualization solutions.
-# The idea is to setup a set of variables used by at least two different
-# tools and then include the specific plugin which configures the speci-
-# fied virtualization tool.
-################################################################################
-
-. /etc/opt/openslx/openslx.conf
-
-################################################################################
-### Define default dirs / get configs
-################################################################################
-
-PLUGINCONFROOT=${OPENSLX_DEFAULT_CONFDIR}/plugins
-PLUGINCONFDIR=${PLUGINCONFROOT}/vmchooser
-# include general configuration from vmchooser
-[ -f ${PLUGINCONFROOT}/vmchooser/vmchooser.conf ] && \
- . ${PLUGINCONFROOT}/vmchooser/vmchooser.conf
-# load general virtualization information
-[ -f ${PLUGINCONFROOT}/virtualization/virtualization.conf ] && \
- . ${PLUGINCONFROOT}/virtualization/virtualization.conf
-
-################################################################################
-### Functions used throughout the script
-################################################################################
-
-# function to write to stdout and logfile
-LOGFILE=${OPENSLX_DEFAULT_LOGDIR}/run-virt.${USER}.$$.log
-writelog () {
- # write to stdout
- echo -e "$1"
- # log into file
- echo -e "$1" >> ${LOGFILE}
-}
-
-# remove config dirs when exit
-cleanexit () {
- if echo "${RMDIRS}" 2>/dev/null | grep -q ${xmlvirt}; then
- writelog "${xmlvirt} exited. Cleanning up... \c"
- rm -rf ${RMDIRS} >/dev/null 2>&1
- writelog "done"
- fi
-
- exit "$1"
-}
-
-# check for important files used
-filecheck ()
-{
- filecheck=$(LANG=us ls -lh ${diskfile} 2>&1)
- writelog "Filecheck:\n${filecheck}\n"
- noimage=$(echo ${filecheck} | grep -i "no such file or directory" | wc -l)
- rightsfile=${diskfile}
-
- # check if link
- if [ -L "${diskfile}" ]; then
- # take link target
- rightsfile=$(ls -lh ${diskfile} 2>&1 | awk -F '-> *' '{print $2}')
- rightsfile=${vmdir}/${rightsfile}
- filecheck=$(LANG=us ls -lh ${rightsfile} 2>&1)
- fi
-
- # does file exist
- if [ "${noimage}" -ge "1" ]; then
- writelog "Virtual Machine Image Problem:\c "
- writelog "\tThe image you've specified doesn't exist."
- writelog "Filecheck says:\c "
- writelog "\t\t${diskfile}:\n\t\t\tNo such file or directory"
- writelog "Hint:\c "
- writelog "\t\t\tCompare spelling of the image with your options.\n"
- exit 1
- fi
-
- # readable by calling user
- if ! [ -r "${diskfile}" >/dev/null 2>&1 \
- -o -r "${diskfile}" >/dev/null 2>&1 ]; then
- writelog "Vmware Image Problem:\c "
- writelog "\tThe image you've specified has wrong rights."
- writelog "Filecheck says:\t\t$(echo ${filecheck} \
- | awk '{print $1" "$3" "$4}') ${rightsfile}"
- writelog "Hint:\t\t\tChange rights with: chmod a+r ${rightsfile}\n"
- exit 1
- fi
-
- # writable (for persistent-mode)?
- if ! [ -w "${diskfile}" >/dev/null 2>&1 \
- -o -w "${diskfile}" >/dev/null 2>&1 ] \
- && [ "${np}" = "independent-persistent" ]; then
- writelog "Vmware Image Problem:\c "
- writelog "\tThe image you have specified has wrong rights."
- writelog "Filecheck says:\t\t$(echo ${filecheck} \
- | awk '{print $1" "$3" "$4}') ${rightsfile}"
- writelog "Hint:\t\t\tUse nonpersistent-mode or change rights to rw\n"
- exit 1
- fi
-}
-
-################################################################################
-### Get XML file and dir
-################################################################################
-
-# absolute or relative path?
-xmlfile=$1
-if ls ${xmlfile} 2>/dev/null | grep '/' >/dev/null 2>&1; then
- xmlpath=$(dirname ${xmlfile})
- xmlfile=$(basename ${xmlfile})
-else
- xmlpath=${vmchooser_xmlpath}
-fi
-# full path
-xmlfile="${xmlpath}/${xmlfile%.xml}.xml"
-
-################################################################################
-### Sanity checks
-################################################################################
-
-# test if the xml file is valid
-if ! [ -r "${xmlfile}" ]; then
- writelog "${xmlfile} not a readable XML file!"
- exit 1
-fi
-
-# test if XML file
-if ! grep '<?xml' "${xmlfile}" >/dev/null 2>&1; then
- writelog \
- "Submitted configuration file ${xmlfile} seems to have wrong XML format"
- exit 1
-fi
-
-# check for running in graphical environment otherwise no much use here
-[ -z "$DISPLAY" ] && echo -e "\n\tStart only within a graphical desktop!\n" \
- && exit 1
-
-################################################################################
-### Logo for console
-################################################################################
-
-cat <<EOL
- __ __
- .----.--.--.-----.___.--.--.|__|.----.| |_
- | _| | | |___| | || || _|| _|
- |__| |_____|__|__| \___/ |__||__| |____|
- OpenSLX virtual machine environment preparation script ...
-
-EOL
-
-################################################################################
-### Read needed variables from XML file
-################################################################################
-
-writelog "Starting configuration..."
-writelog "\tLogfile:\t\t${LOGFILE}"
-writelog "\t/tmp info:\t\t$(df -h | grep " /tmp$" | awk '{print $2}') \c"
-writelog "$(grep "/tmp " /proc/mounts | awk '{print $1" "$2" "$3" "$4}')"
-writelog "\tVM XML dir:\t\t$(dirname ${xmlfile})"
-writelog "\tXML file:\t\t${xmlfile}"
-writelog "VM config:"
-
-# Name of the virt image
-imgname=$(grep -io '<image_name param=.*"' ${xmlfile} \
- | sed -e "s/&.*;/; /g" | awk -F '"' '{ print $2 }')
-
-# Imagename /w full path
-if echo ${imgname} 2>/dev/null | grep -q '^/' >/dev/null 2>&1; then
- imgpath=$(dirname ${imgname})
- imgname=$(basename ${imgname})
- vmpath=${imgpath}/${imgname}
-# If old vmchooser binary stuff
-# We do not need folder name as it is already included by vmchooser
-elif echo ${xmlfile} 2>/dev/null | grep -q '^/tmp/' >/dev/null 2>&1; then
- vmpath=$imgname
- imgname=$(basename ${imgname})
-# Else use same path as xml
-else
- imgpath=${xmlpath}
- vmpath=${imgpath}/${imgname}
-fi
-
-# Check if virtual machine container file exists
-if ! [ -e "${vmpath}" ]; then
- writelog "Virtual machine image ${vmpath} not found!"
- exit 1
-fi
-
-# Name of the virt machine, sed because of Windows formatting
-vm_name=$(grep -o 'short_description param=.*"' ${xmlfile} \
- | sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}')
-# If ${vm_name} not defined use ${xmlfile}
-vm_name=${vm_name:-${xmlfile%.xml}}
-
-# Define vm_shortname since vm_name can be very long
-vm_shortname=$(basename ${xmlfile%.xml} | sed -e "s, ,-,g")
-
-# vm_name = displayname, define for old scripts
-displayname=${vm_name}
-
-# image is for the following virtual machine
-xmlvirt=$(grep -o 'virtualmachine param=.*"' ${xmlfile} \
- | sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}')
-
-# choose the proper virtualization/emulator plugin
-[ "x${xmlvirt}" != "x" -a "x${xmlvirt}" != "xqemukvm" -a \
- "x${xmlvirt}" != "xvirtualbox" -a "x${xmlvirt}" != "xvmware" ] && \
- xmlvirt="emufe"
-
-# make a guess from the filename extension if ${xmlvirt} is empty
-# (not set within the XML file)
-# TODO: implement possibility to submit own configuration files
-if [ -z "${xmlvirt}" ] && [ -n "${additional_config}" ]; then
- writelog "No virtual machine parameter defined in ${xmlfile}"
- writelog "Trying to guess VM...\c"
- case "$(cat ${additional_config} | tr \"[A-Z]\" \"[a-z]\")" in
- *config.version*|*virtualhw.version*|*independent-nonpersistent*|*vmdk*)
- xmlvirt="vmware"
- ;;
- *innotek*|*virtualbox*)
- xmlvirt="virtualbox"
- ;;
- *qemu*|*kvm*)
- xmlvirt="qemukvm"
- ;;
- *)
- xmlvirt="none"
- ;;
- esac
-elif [ -z "${xmlvirt}" ]; then
- case "$(echo ${imgname##*.} | tr \"[A-Z]\" \"[a-z]\")" in
- vmdk)
- xmlvirt="vmware"
- ;;
- vbox|vdi)
- xmlvirt="virtualbox"
- ;;
- qcow*)
- xmlvirt="qemukvm"
- ;;
- *)
- xmlvirt="emufe"
- ;;
- esac
- writelog "result:\t${xmlvirt}"
-fi
-
-# Definition of the client system
-vmostype=$(grep -io '<os param=.*"' ${xmlfile} | awk -F '"' '{ print $2 }' |\
- tr "[A-Z]" "[a-z]")
-
-# Definition of the networking the client system is connected to
-network_kind=$(grep -io '<network param=.*"' ${xmlfile} \
- | awk -F '"' '{ print $2 }' | tr "[A-Z]" "[a-z]")
-network_card=$(grep -io '<netcard param=.*"' ${xmlfile} \
- | awk -F '"' '{ print $2 }'| tr "[A-Z]" "[a-z]")
-
-# Set redirects to 0, see vmgrid if you want to define some
-redirects=0
-
-# Serial/parallel ports defined (e.g. "ttyS0" or "autodetect")
-serial=$(grep -io '<serialport param=.*"' ${xmlfile} \
- | awk -F '"' '{ print $2 }')
-parallel=$(grep -io '<parport param=.*"' ${xmlfile} \
- | awk -F '"' '{ print $2 }')
-
-writelog "\tVirtualization:\t\t$xmlvirt"
-writelog "\tVM name:\t\t$vm_name"
-writelog "\tVM short name:\t\t$vm_shortname"
-
-###############################################################################
-### Declaration of default variables
-###############################################################################
-
-# VM-ID static (00)
-VM_ID="00"
-# take last two digits of current pid...
-VM_ID=$(expr substr $$ $(expr ${#$} - 1) 2)
-
-# Make sure cpu_cores is not empty
-cpu_cores=${cpu_cores:-"1"}
-
-# Total amount of memory defined in stage 3
-# TODO: Should be dependent on the setup (if diff is written to RAM ...)
-permem=60
-if [ "x${VMCHOOSER_FORCE_HALF_MEM}" == "x1" ]; then
- permem=30
-fi
-# Get a result which can be divided through 4
-mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4)
-if [ -n "${mainvirtmem}" ]; then
- forcemem=$(expr ${mainvirtmem} / 4 \* 4)
- mem=${forcemem}
-fi
-hostmem=$(expr ${totalmem} - ${mem})
-
-# Configuring ethernet mac address: first 3 bytes are fixed (00:50:56)
-# 4th byte is the VM-ID (0D)
-# last two bytes are taken from the bridge of the host
-# define one MAC per guest
-macguestpart="00:50:56:${VM_ID}"
-machostpart=$(echo ${hostmacaddr} | awk -F ":" '{print $(NF-1)":"$NF}')
-macaddr=$(echo "${macguestpart}:${machostpart}" | tr "[a-z]" "[A-Z]")
-
-# Virtual fd/cd/dvd and drive devices, floppy b: for configuration
-# if $floppy_0 from run-virt.include set then fdtest="TRUE"
-fdtest=
-fdtest=${floppy_0:+"TRUE"}
-# if $fdtest not set floppy0="FALSE", else "TRUE"
-floppy0=${fdtest:-"FALSE"}
-floppy1="TRUE"
-floppy1name="${PLUGINCONFDIR}/loopimg/fd.img"
-# if $cdrom_0 from run-virt.include set then cdtest="TRUE"
-cdtest=
-cdtest=${cdrom_0:+"TRUE"}
-# if $cdtest not set cdrom0="FALSE", else "TRUE"
-cdrom0=${cdtest:-"FALSE"}
-# if $cdrom_1 from run-virt.include set then cdtest="TRUE"
-cdtest=
-cdtest=${cdrom_1:+"TRUE"}
-# if $cdtest not set cdrom1="FALSE", else "TRUE"
-cdrom1=${cdtest:-"FALSE"}
-# IDE is expected default, test for the virtual disk image type should
-# be done while creating the runscripts ...
-ide="TRUE"
-scsi="FALSE"
-hddrv="ide"
-audio="true"
-remotedesktopport="590${VM_ID}"
-
-# Display resolution within the host system
-hostres=$(xvidtune -show 2>/dev/null| grep -ve "^$")
-xres=$(echo "${hostres}" | awk '{print $3}')
-yres=$(echo "${hostres}" | awk '{print $7}')
-
-# Resolution defined via xml parameter: fullscreen, full/X*Y/depth; windowed,
-# win/X*Y/depth
-userres=$(grep -io '<screen param=.*"' ${xmlfile} | awk -F '"' '{ print $2 }' | \
- tr "A-Z" "a-z")
-case "${userres}" in
- full*)
- res=$(echo "${hostres}" | awk -F "/" '{print $2}')
- uxres=${res%\**}
- uyres=${#*\*}
- userres="full"
- ;;
- win*)
- res=$(echo "${hostres}" | awk -F "/" '{print $2}')
- uxres=${res%\**}
- uyres=${#*\*}
- userres="win"
- ;;
-esac
-
-
-# Enable 3D
-enable3d=$(grep -i "<enable3d param=.*" ${xmlfile} 2>/dev/null | \
- awk -F '=' {'print $2'} | tr "[A-Z]" "[a-z]")
-
-# Add rw share
-sharepath="${HOME}"
-sharename="home"
-
-# Set hostname: using original hostname and adding string
-hostname="virt-$(hostname)"
-
-writelog "\tVM Hostname:\t\t$hostname"
-
-################################################################################
-### Setup the rest of the environment and run the configured vm
-################################################################################
-
-# Adjust sound volume
-writelog "Unmuting sound...\c "
-amixer -q sset Master 80% unmute 2>/dev/null
-amixer -q sset PCM 80% unmute 2>/dev/null
-amixer -q sset CD 80% unmute 2>/dev/null
-amixer -q sset Headphone 80% unmute 2>/dev/null
-amixer -q sset Front 80% unmute 2>/dev/null # in SUSE 11.0 it's headphone
-amixer -q sset Speaker 80% unmute 2>/dev/null # annoying built-in speaker
-writelog "finished\n"
-
-# Copy guest configuration (with added information) config.xml to be accessed
-# via virtual floppy
-# fixme -> to be changed (vmchooser adapts the file content!?)
-#TODO: wozu echo?
-#echo "Please fix the config.xml generation"
-cp ${xmlfile} ${PLUGINCONFDIR}/fd-loop/config.xml
-
-# Get all virtual machine specific stuff from the respective include file
-if [ -e ${PLUGINCONFROOT}/${xmlvirt}/run-virt.include ] ; then
- self=${xmlvirt}
- . ${PLUGINCONFROOT}/${xmlvirt}/run-virt.include
- # start a windowmanager for easier handling
- # (expect problems /w windows opening in background /w vmware without wm)
- for dm in xfwm4 metacity openbox blackbox kwin fvwm2 ; do
- if which $dm >/dev/null 2>&1 ; then
- if [ "$dm" = "fvwm2" ] ; then
- echo "EdgeScroll 0 0" > ${redodir}/fvwm
- fvwm2 -f ${redodir}/fvwm >/dev/null 2>&1 &
- else
- $dm >/dev/null 2>&1 &
- fi
- break
- fi
- done
- # Start poolvideoswitch if we find the autostarter file
- if [ -e /etc/xdg/autostart/pvsgui.desktop ]; then
- /usr/local/bin/pvsgui -p 2 -b >/dev/null 2>&1 &
- fi
- eval ${VIRTCMD} ${VIRTCMDOPTS}
- writelog "Bye."
-
- # Postrun for commands after virtualization finishes
- if [ -n "${POSTRUN}" ]; then
- eval ${POSTRUN} >/dev/null 2>&1
- fi
-
- cleanexit 0
-else
- writelog "Failed because of missing ${xmlvirt} plugin."
- cleanexit 1
-fi
-
-# Postrun for commands after virtualization finishes
-if [ -n "${POSTRUN}" ]; then
- eval ${POSTRUN} >/dev/null 2>&1
-fi
-
-cleanexit 0
-exit 0
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/vmplayer b/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/vmplayer
deleted file mode 100755
index c9b57a65..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/vmplayer
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-# written by OpenSLX-plugin 'vmware' in Stage1
-# radically simplified version of the original script vmplayer by VMware Inc.
-PREFIX=/usr/lib/vmware # depends on the vmware location
-exec "$PREFIX"'/lib/wrapper-gtk24.sh' \
- "$PREFIX"'/lib' \
- "$PREFIX"'/bin/vmplayer' \
- "$PREFIX"'/libconf' "$@"
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/vmware b/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/vmware
deleted file mode 100755
index 8b568f53..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/vmware
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-# written by OpenSLX-plugin 'vmware' in Stage1
-# radically simplified version of the original script vmware by VMware Inc.
-PREFIX=/usr/lib/vmware # depends on the vmware location
-exec "$PREFIX"'/lib/wrapper-gtk24.sh' \
- "$PREFIX"'/lib' \
- "$PREFIX"'/bin/vmware' \
- "$PREFIX"'/libconf' "$@"
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/xmlfilter.sh b/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/xmlfilter.sh
deleted file mode 100755
index ded5d114..00000000
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/xmlfilter.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/bash
-# -----------------------------------------------------------------------------
-# Copyright (c) 2007..2009 - RZ Uni FR
-# Copyright (c) 2007..2011 - 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/
-# -----------------------------------------------------------------------------
-# xmlfilter.sh
-# - This script is invoked by the vmchooser tool. It simply filters xml-
-# files (taking the path to these files in $1). You might modify it in any
-# way to match your needs, e.g. ask some database instead. You can re-
-# implement it in any other programming language too. You simply have to
-# return a list of proper xml files to be interpreted by the vmchooser
-# binary). Please check for vmchooser.sh too ...
-# -----------------------------------------------------------------------------
-
-# This script .
-#
-# currently:
-# - filter for slxgrp (which comes from /etc/machine-setup)
-#
-
-# include default directories
-. /etc/opt/openslx/openslx.conf
-
-if [ -f ${OPENSLX_DEFAULT_CONFDIR}/plugins/vmchooser/vmchooser.conf ]; then
- . ${OPENSLX_DEFAULT_CONFDIR}/plugins/vmchooser/vmchooser.conf
-fi
-
-for FILE in $(find $1 -iname "*.xml"); do
- # filter all xmls which aren't set active
- if [ $(grep "<active param=.*true.*" ${FILE} | wc -l) -eq 1 ]; then
- if [ -n ${vmchooser_env} ]; then
- # filter all xmls with pool-param not equal to vmchooser::env
- if [ $(grep "<pools param=\"${vmchooser_env}\"" ${FILE} | wc -l) -eq 1 ];\
- then
- echo ${FILE};
- fi
- else
- # if there is no pool set, just take all available xmls
- echo -e ${active}
- fi
- fi
-done
diff --git a/remote/modules/vmchooser/data/var/opt/openslx/bin/run-virt.sh b/remote/modules/vmchooser/data/var/opt/openslx/bin/run-virt.sh
new file mode 120000
index 00000000..ea04a6ad
--- /dev/null
+++ b/remote/modules/vmchooser/data/var/opt/openslx/bin/run-virt.sh
@@ -0,0 +1 @@
+/opt/openslx/bin/run-virt.sh \ No newline at end of file
diff --git a/remote/modules/vmplayer/data/bin/vmplayer b/remote/modules/vmplayer/data/bin/vmplayer
new file mode 100755
index 00000000..874c3d96
--- /dev/null
+++ b/remote/modules/vmplayer/data/bin/vmplayer
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+for mod in /lib/modules/vmware/*.ko; do
+ insmod "$mod" && continue
+ xmessage "Could not load kernel module $mod. vmplayer might fail."
+done
+
+export LIBCONF_DIR=/usr/lib/vmware/libconf
+/usr/lib/vmware/bin/vmplayer $@
+
diff --git a/remote/modules/vmplayer/data/etc/vmware/bootstrap b/remote/modules/vmplayer/data/etc/vmware/bootstrap
new file mode 100644
index 00000000..9417c7fe
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/vmware/bootstrap
@@ -0,0 +1,11 @@
+PREFIX="/usr"
+BINDIR="/usr/bin"
+SBINDIR="/usr/sbin"
+LIBDIR="/usr/lib"
+DATADIR="/usr/share"
+SYSCONFDIR="/etc"
+DOCDIR="/usr/share/doc"
+MANDIR="/usr/share/man"
+INCLUDEDIR="/usr/include"
+INITDIR="/etc/init.d"
+INITSCRIPTDIR="/etc/init.d"
diff --git a/remote/modules/vmplayer/data/etc/vmware/config b/remote/modules/vmplayer/data/etc/vmware/config
new file mode 100644
index 00000000..5a62a179
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/vmware/config
@@ -0,0 +1,19 @@
+.encoding = "UTF-8"
+NETWORKING = "yes"
+VMBLOCK_CONFED = "no"
+gksu.rootMethod = "su"
+libdir = "/usr/lib/vmware"
+VMCI_CONFED = "no"
+VSOCK_CONFED = "no"
+initscriptdir = "/etc/init.d"
+authd.fullpath = "/usr/sbin/vmware-authd"
+bindir = "/usr/bin"
+installerDefaults.componentDownloadEnabled = "yes"
+installerDefaults.autoSoftwareUpdateEnabled.epoch = "4837526839"
+vix.config.version = "1"
+player.product.version = "5.0.2"
+installerDefaults.dataCollectionEnabled.epoch = "9979927113"
+installerDefaults.dataCollectionEnabled = "no"
+installerDefaults.transferVersion = "1"
+installerDefaults.autoSoftwareUpdateEnabled = "no"
+product.buildNumber = "1031769"
diff --git a/remote/modules/vmplayer/data/etc/vmware/icu b/remote/modules/vmplayer/data/etc/vmware/icu
new file mode 120000
index 00000000..d1ebea7d
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/vmware/icu
@@ -0,0 +1 @@
+/usr/lib/vmware/icu \ No newline at end of file
diff --git a/remote/modules/vmplayer/data/etc/vmware/installer.sh b/remote/modules/vmplayer/data/etc/vmware/installer.sh
new file mode 120000
index 00000000..f178b8cc
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/vmware/installer.sh
@@ -0,0 +1 @@
+/usr/lib/vmware-installer/2.1.0/vmware-uninstall-downgrade \ No newline at end of file
diff --git a/remote/modules/vmplayer/data/etc/vmware/networking b/remote/modules/vmplayer/data/etc/vmware/networking
new file mode 100644
index 00000000..d2ea7361
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/vmware/networking
@@ -0,0 +1,12 @@
+VERSION=1,0
+answer VNET_1_DHCP yes
+answer VNET_1_DHCP_CFG_HASH ABD785E9C7BA236946CF10ED6B15A580E522B13D
+answer VNET_1_HOSTONLY_NETMASK 255.255.255.0
+answer VNET_1_HOSTONLY_SUBNET 172.16.110.0
+answer VNET_1_VIRTUAL_ADAPTER yes
+answer VNET_8_DHCP yes
+answer VNET_8_DHCP_CFG_HASH 5E30544D23705A65173565BC8D6C51008A0F9AF2
+answer VNET_8_HOSTONLY_NETMASK 255.255.255.0
+answer VNET_8_HOSTONLY_SUBNET 192.168.167.0
+answer VNET_8_NAT yes
+answer VNET_8_VIRTUAL_ADAPTER yes
diff --git a/remote/modules/vmplayer/data/etc/vmware/usbarb.rules b/remote/modules/vmplayer/data/etc/vmware/usbarb.rules
new file mode 100644
index 00000000..c3198bb4
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/vmware/usbarb.rules
@@ -0,0 +1,4 @@
+{
+ "version": 1,
+ "rules": []
+} \ No newline at end of file
diff --git a/remote/modules/vmplayer/data/etc/vmware/vmnet1/dhcpd/dhcpd.conf b/remote/modules/vmplayer/data/etc/vmware/vmnet1/dhcpd/dhcpd.conf
new file mode 100644
index 00000000..6aeb3f1e
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/vmware/vmnet1/dhcpd/dhcpd.conf
@@ -0,0 +1,40 @@
+# Configuration file for ISC 2.0 vmnet-dhcpd operating on vmnet1.
+#
+# This file was automatically generated by the VMware configuration program.
+# See Instructions below if you want to modify it.
+#
+# We set domain-name-servers to make some DHCP clients happy
+# (dhclient as configured in SuSE, TurboLinux, etc.).
+# We also supply a domain name to make pump (Red Hat 6.x) happy.
+#
+
+
+###### VMNET DHCP Configuration. Start of "DO NOT MODIFY SECTION" #####
+# Modification Instructions: This section of the configuration file contains
+# information generated by the configuration program. Do not modify this
+# section.
+# You are free to modify everything else. Also, this section must start
+# on a new line
+# This file will get backed up with a different name in the same directory
+# if this section is edited and you try to configure DHCP again.
+
+# Written at: 05/06/2013 17:43:41
+allow unknown-clients;
+default-lease-time 1800; # default is 30 minutes
+max-lease-time 7200; # default is 2 hours
+
+subnet 172.16.110.0 netmask 255.255.255.0 {
+ range 172.16.110.128 172.16.110.254;
+ option broadcast-address 172.16.110.255;
+ option domain-name-servers 172.16.110.1;
+ option domain-name localdomain;
+ default-lease-time 1800; # default is 30 minutes
+ max-lease-time 7200; # default is 2 hours
+}
+host vmnet1 {
+ hardware ethernet 00:50:56:C0:00:01;
+ fixed-address 172.16.110.1;
+ option domain-name-servers 0.0.0.0;
+ option domain-name "";
+}
+####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
diff --git a/remote/modules/vmplayer/data/etc/vmware/vmnet1/dhcpd/dhcpd.leases b/remote/modules/vmplayer/data/etc/vmware/vmnet1/dhcpd/dhcpd.leases
new file mode 100644
index 00000000..512c0de2
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/vmware/vmnet1/dhcpd/dhcpd.leases
@@ -0,0 +1,7 @@
+# All times in this file are in UTC (GMT), not your local timezone. This is
+# not a bug, so please don't ask about it. There is no portable way to
+# store leases in the local timezone, so please don't request this as a
+# feature. If this is inconvenient or confusing to you, we sincerely
+# apologize. Seriously, though - don't ask.
+# The format of this file is documented in the dhcpd.leases(5) manual page.
+
diff --git a/remote/modules/vmplayer/data/etc/vmware/vmnet8/dhcpd/dhcpd.conf b/remote/modules/vmplayer/data/etc/vmware/vmnet8/dhcpd/dhcpd.conf
new file mode 100644
index 00000000..9f27b6f0
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/vmware/vmnet8/dhcpd/dhcpd.conf
@@ -0,0 +1,43 @@
+# Configuration file for ISC 2.0 vmnet-dhcpd operating on vmnet8.
+#
+# This file was automatically generated by the VMware configuration program.
+# See Instructions below if you want to modify it.
+#
+# We set domain-name-servers to make some DHCP clients happy
+# (dhclient as configured in SuSE, TurboLinux, etc.).
+# We also supply a domain name to make pump (Red Hat 6.x) happy.
+#
+
+
+###### VMNET DHCP Configuration. Start of "DO NOT MODIFY SECTION" #####
+# Modification Instructions: This section of the configuration file contains
+# information generated by the configuration program. Do not modify this
+# section.
+# You are free to modify everything else. Also, this section must start
+# on a new line
+# This file will get backed up with a different name in the same directory
+# if this section is edited and you try to configure DHCP again.
+
+# Written at: 05/06/2013 17:43:41
+allow unknown-clients;
+default-lease-time 1800; # default is 30 minutes
+max-lease-time 7200; # default is 2 hours
+
+subnet 192.168.167.0 netmask 255.255.255.0 {
+ range 192.168.167.128 192.168.167.254;
+ option broadcast-address 192.168.167.255;
+ option domain-name-servers 192.168.167.2;
+ option domain-name localdomain;
+ default-lease-time 1800; # default is 30 minutes
+ max-lease-time 7200; # default is 2 hours
+ option netbios-name-servers 192.168.167.2;
+ option routers 192.168.167.2;
+}
+host vmnet8 {
+ hardware ethernet 00:50:56:C0:00:08;
+ fixed-address 192.168.167.1;
+ option domain-name-servers 0.0.0.0;
+ option domain-name "";
+ option routers 0.0.0.0;
+}
+####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
diff --git a/remote/modules/vmplayer/data/etc/vmware/vmnet8/dhcpd/dhcpd.leases b/remote/modules/vmplayer/data/etc/vmware/vmnet8/dhcpd/dhcpd.leases
new file mode 100644
index 00000000..512c0de2
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/vmware/vmnet8/dhcpd/dhcpd.leases
@@ -0,0 +1,7 @@
+# All times in this file are in UTC (GMT), not your local timezone. This is
+# not a bug, so please don't ask about it. There is no portable way to
+# store leases in the local timezone, so please don't request this as a
+# feature. If this is inconvenient or confusing to you, we sincerely
+# apologize. Seriously, though - don't ask.
+# The format of this file is documented in the dhcpd.leases(5) manual page.
+
diff --git a/remote/modules/vmplayer/data/etc/vmware/vmnet8/nat.mac b/remote/modules/vmplayer/data/etc/vmware/vmnet8/nat.mac
new file mode 100644
index 00000000..337d094a
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/vmware/vmnet8/nat.mac
@@ -0,0 +1 @@
+00:50:56:E9:43:27
diff --git a/remote/modules/vmplayer/data/etc/vmware/vmnet8/nat/nat.conf b/remote/modules/vmplayer/data/etc/vmware/vmnet8/nat/nat.conf
new file mode 100644
index 00000000..791f9a7e
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/vmware/vmnet8/nat/nat.conf
@@ -0,0 +1,60 @@
+# VMware NAT configuration file
+
+[host]
+
+# NAT gateway address
+ip = 192.168.167.2
+netmask = 255.255.255.0
+
+# VMnet device if not specified on command line
+device = /dev/vmnet8
+
+# Allow PORT/EPRT FTP commands (they need incoming TCP stream ...)
+activeFTP = 1
+
+# Allows the source to have any OUI. Turn this on if you change the OUI
+# in the MAC address of your virtual machines.
+allowAnyOUI = 1
+
+# Controls if (TCP) connections should be reset when the adapter they are
+# bound to goes down
+resetConnectionOnLinkDown = 1
+
+# Controls if (TCP) connection should be reset when guest packet's destination
+# is NAT's IP address
+resetConnectionOnDestLocalHost = 1
+
+[tcp]
+
+# Value of timeout in TCP TIME_WAIT state, in seconds
+timeWaitTimeout = 30
+
+[udp]
+
+# Timeout in seconds. Dynamically-created UDP mappings will purged if
+# idle for this duration of time 0 = no timeout, default = 60; real
+# value might be up to 100% longer
+timeout = 60
+
+[netbios]
+# Timeout for NBNS queries.
+nbnsTimeout = 2
+
+# Number of retries for each NBNS query.
+nbnsRetries = 3
+
+# Timeout for NBDS queries.
+nbdsTimeout = 3
+
+[incomingtcp]
+
+# Use these with care - anyone can enter into your VM through these...
+# The format and example are as follows:
+#<external port number> = <VM's IP address>:<VM's port number>
+#8080 = 172.16.3.128:80
+
+[incomingudp]
+
+# UDP port forwarding example
+#6000 = 172.16.3.0:6001
+
diff --git a/remote/modules/vmplayer/vmplayer.build b/remote/modules/vmplayer/vmplayer.build
new file mode 100644
index 00000000..2bcfd896
--- /dev/null
+++ b/remote/modules/vmplayer/vmplayer.build
@@ -0,0 +1,60 @@
+fetch_source() {
+ ARCH=$(uname -m)
+ [ "$ARCH" = "i686" ] && ARCH=i386
+ local BUNDLE="$(find /mnt/store/vmware -type f -name "VMware-Player*.${ARCH}.bundle" | head -1)"
+ [ -z "$BUNDLE" ] && perror "Could not find vmplayer at /mnt/store for ARCH = $ARCH"
+ [ -e "./src" ] && { rm -r ./src || perror "Could not delete old src dir."; }
+ pinfo "Extracting bundle"
+ $BUNDLE -x ./src/ || perror "Extracting the vmplayer bundle failed."
+ pinfo "done"
+}
+
+build() {
+ [ ! -d "./src/vmware-player" ] && perror "Extracted vmplayer bundle not found in ./src - please clean vmplayer module."
+ local TARGET="$MODULE_BUILD_DIR/usr/lib/vmware/"
+ mkdir -p "$TARGET"{lib,share,bin}
+ pinfo "Copying data to build dir"
+ cp -r ./src/vmware-installer/lib/lib* "$TARGET" || perror "Could not copy libs from vmware-installer"
+ cp -r ./src/vmware-network-editor/lib "$MODULE_BUILD_DIR/usr/" || perror "Could not copy libs from vmware-network-config"
+ cp -r ./src/vmware-player/lib/share "$TARGET" || perror "Could not copy lib/share from vmware-player"
+ cp -r ./src/vmware-player/share "$MODULE_BUILD_DIR/usr/" || perror "C0oudld not copy share from vmware-player"
+ cp -r ./src/vmware-player-app/etc "$MODULE_BUILD_DIR/" || perror "Could not copy bin and etc from vmware-player-app."
+ cp -r ./src/vmware-player-app/lib/* "$TARGET" || perror "Could not copy lib subtree from vmware-player-app."
+ cp -r ./src/vmware-player-app/{bin,share} "$MODULE_BUILD_DIR/usr/" || perror "could not copy share from vmware-player-app."
+ cp -r ./src/vmware-usbarbitrator/bin "$MODULE_BUILD_DIR/usr/" || perror "Could not copy bin from vmware-usbarbitrator."
+ cp -r ./src/vmware-vmx/{bin,etc,sbin} "$MODULE_BUILD_DIR/usr/" || perror "could not copy bin,etc,sbin to usr for vmare-vmx."
+ cp -r ./src/vmware-vmx/lib/{bin,icu,lib,libconf,scripts} "$TARGET" || perror "Could not copy many things from vmware-vmx."
+ [ ! -L "$TARGET/bin/vmplayer" ] && { ln -s /usr/lib/vmware/bin/appLoader "$TARGET/bin/vmplayer" || perror "Could not link vmplayer to appLoader."; }
+ chmod +x "$TARGET"/bin/*
+ pinfo "Patching LIBCONF_DIR"
+ local file=""
+ for file in $(grep -rl "@@LIBCONF_DIR@@" "$MODULE_BUILD_DIR"); do
+ sed -i 's#@@LIBCONF_DIR@@#/usr/lib/vmware/libconf#g' "$file"
+ done
+ # Extract libgconf-2 stuff
+ COPYLIST="list_dpkg_output"
+ [ -e "${COPYLIST}" ] && rm "${COPYLIST}"
+
+ list_packet_files >> "${COPYLIST}"
+ tarcopy "$(cat "${COPYLIST}" | sort -u)" "${MODULE_BUILD_DIR}"
+ # Compile kernel modules
+ return 0 # TODO: Fix kompalieren
+ pinfo "Compiling required kernel modules."
+ cd "./src/vmware-vmx/lib/modules/source" || perror "vmplayer modules source not found."
+ local tarball
+ for tarball in *.tar; do
+ pinfo "Building $tarball...."
+ tar xf "$tarball" || perror "Could not untar $tarball"
+ cd "${tarball/.tar}-only" || perror "Could not cd to extracted $tarball (tried ${tarball/.tar}-only)"
+ make LINUXINCLUDE="${TARGET_DIR}/kernel/build/headers/include" || perror "Could not build kernel module $tarball"
+ cp "${tarball/.tar}.ko" "$MODULE_BUILD_DIR/lib/modules/vmware/" || perror "Could not copy ${tarball/.tar}.ko to $MODULE_BUILD_DIR/lib/modules/vmware/"
+ cd -
+ done
+ cd -
+}
+
+post_copy() {
+ # FIXME: gconftool is copied without dependencies
+ tarcopy "$(find /usr/lib/ -name gconv -type d) $(which gconftool-2)" "$TARGET_BUILD_DIR"
+}
+
diff --git a/remote/modules/vmplayer/vmplayer.conf b/remote/modules/vmplayer/vmplayer.conf
new file mode 100644
index 00000000..df88968e
--- /dev/null
+++ b/remote/modules/vmplayer/vmplayer.conf
@@ -0,0 +1,5 @@
+#REQUIRED_DEPENDENCIES="libgconf-2-4 fontconfig-config"
+#REQUIRED_PACKAGES="libgconf-2-4 fontconfig-config"
+REQUIRED_BINARIES=""
+REQUIRED_SYSTEM_FILES=""
+REQUIRED_DIRECTORIES="/etc /usr"
diff --git a/remote/modules/xorg/data/etc/X11/Xsession b/remote/modules/xorg/data/etc/X11/Xsession
index 529208cd..a9b3d43b 100644
--- a/remote/modules/xorg/data/etc/X11/Xsession
+++ b/remote/modules/xorg/data/etc/X11/Xsession
@@ -3,4 +3,36 @@
#Workaround to start Xsession. The original Xsession script includes error handling functionality and sources other scrips from the Xsession.d/ directory.
#start selected session
-exec $1
+ case "$1" in
+ failsafe)
+ # Failsafe session was requested.
+ if [ -e /usr/bin/xterm ]; then
+ if [ -x /usr/bin/xterm ]; then
+ exec xterm -geometry +1+1
+ else
+ # fatal error
+ errormsg "unable to launch failsafe X session ---" \
+ "x-terminal-emulator not executable; aborting."
+ fi
+ else
+ # fatal error
+ errormsg "unable to launch failsafe X session ---" \
+ "x-terminal-emulator not found; aborting."
+ fi
+ ;;
+ *)
+ # Specific program was requested.
+ STARTUP_FULL_PATH=$(/opt/openslx/usr/bin/which "${1%% *}" || true)
+ if [ -n "$STARTUP_FULL_PATH" ] && [ -e "$STARTUP_FULL_PATH" ]; then
+ if [ -x "$STARTUP_FULL_PATH" ]; then
+ exec $1
+ else
+ message "unable to launch \"$1\" X session ---" \
+ "\"$1\" not executable; falling back to default session."
+ fi
+ else
+ message "unable to launch \"$1\" X session ---" \
+ "\"$1\" not found; falling back to default session."
+ fi
+ ;;
+ esac