summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2013-05-14 16:41:56 +0200
committerSimon Rettberg2013-05-14 16:41:56 +0200
commit113ce521770232a6d99cdb07dd55d8879214c213 (patch)
treec1233152bfb18b8bd427cf3a1178900bfd768d8c
parentultrastracke 2 (diff)
parentultrastracke update (diff)
downloadtm-scripts-113ce521770232a6d99cdb07dd55d8879214c213.tar.gz
tm-scripts-113ce521770232a6d99cdb07dd55d8879214c213.tar.xz
tm-scripts-113ce521770232a6d99cdb07dd55d8879214c213.zip
Merge branch 'master' of openslx:openslx-ng/tm-scripts
-rwxr-xr-xclone_stage433
-rw-r--r--data/basic.nocopy23
-rwxr-xr-xdata/install_server.sh133
-rw-r--r--data/kernel.wanted.config76
-rwxr-xr-xgenerate_bootmenu.sh131
-rw-r--r--helper/fileutil.inc6
-rw-r--r--helper/kernel.inc11
-rw-r--r--remote/modules/busybox/busybox.conf2
-rw-r--r--remote/modules/kdm/data/etc/kde4/kdm/kdmrc8
-rw-r--r--remote/modules/kernel/kernel.build7
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.conf207
-rw-r--r--remote/modules/rsyslogd/rsyslogd.build7
-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/debug-shell.service2
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/fetch-config178
l---------remote/modules/systemd/data/etc/systemd/system/getty.target.wants/load-german-keymap.service1
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/ip-dns-conf86
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/load-german-keymap.service2
-rw-r--r--remote/modules/systemd/data/etc/systemd/system/network-interface@.service2
-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/openslx/vmchooser/virtualization.conf8
-rw-r--r--remote/modules/vmchooser/data/etc/systemd/system/var-lib-virt.mount10
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/bin/run-virt.sh (renamed from remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/run-virt.sh)51
-rwxr-xr-xremote/modules/vmchooser/data/opt/openslx/bin/xmlfilter.sh (renamed from remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/xmlfilter.sh)0
-rw-r--r--remote/modules/vmchooser/data/usr/local/share/icons/xterm_48x48.xpm53
-rwxr-xr-xremote/modules/vmchooser/data/usr/share/xsessions/default.desktop4
-rwxr-xr-xremote/modules/vmchooser/data/usr/share/xsessions/xterm.desktop10
l---------remote/modules/vmchooser/data/var/opt/openslx/bin/run-virt.sh1
-rw-r--r--remote/modules/vmchooser/vmchooser.build16
-rw-r--r--remote/modules/vmchooser/vmchooser.conf2
-rw-r--r--remote/modules/vmplayer/data/etc/openslx/vmware/nvrambin0 -> 8664 bytes
-rw-r--r--remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include530
-rwxr-xr-xremote/modules/vmplayer/data/etc/openslx/vmware/vmware-env128
-rw-r--r--remote/modules/vmplayer/data/etc/openslx/vmware/vmware.conf8
-rw-r--r--remote/modules/vmplayer/data/etc/systemd/system/vmware.service8
-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
-rwxr-xr-xremote/modules/vmplayer/data/opt/openslx/bin/vmplayer (renamed from remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/vmplayer)5
-rwxr-xr-xremote/modules/vmplayer/data/opt/openslx/bin/vmware (renamed from remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/vmware)7
-rw-r--r--remote/modules/vmplayer/vmplayer.build133
-rw-r--r--remote/modules/vmplayer/vmplayer.conf5
-rw-r--r--[-rwxr-xr-x]remote/modules/xorg/data/etc/X11/Xsession152
-rw-r--r--remote/modules/xorg/data/usr/share/xsessions/gnome.desktop9
-rw-r--r--remote/modules/xorg/xorg.conf1
-rwxr-xr-xremote/rootfs/rootfs-stage31/data/init6
-rw-r--r--remote/rootfs/rootfs-stage31/rootfs-stage31.build6
-rw-r--r--remote/rootfs/rootfs-stage31/rootfs-stage31.conf1
-rw-r--r--remote/rootfs/rootfs-stage32/data/etc/modprobe.d/blacklist3
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/etc/openslx/udhcpc.openslx.script (renamed from remote/rootfs/rootfs-stage32/data/etc/udhcpc.openslx.script)11
-rw-r--r--remote/rootfs/rootfs-stage32/data/etc/profile8
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/bin/dhcp++10
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/bin/mountexport17
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/usr/sbin/mountexport17
-rw-r--r--remote/rootfs/rootfs-stage32/rootfs-stage32.build13
-rw-r--r--remote/rootfs/rootfs-stage32/rootfs-stage32.conf10
-rw-r--r--remote/rootfs/rootfs-stage32/rootfs-stage32.conf.zypper1
-rwxr-xr-xremote/setup_target6
l---------remote/targets/stage32-opensuse/vmplayer1
l---------remote/targets/stage32/vmchooser1
l---------remote/targets/stage32/vmplayer1
-rwxr-xr-xserver/export_target2
-rwxr-xr-xuseful/ultrastrace.php5
77 files changed, 1682 insertions, 859 deletions
diff --git a/clone_stage4 b/clone_stage4
new file mode 100755
index 00000000..f692c9e4
--- /dev/null
+++ b/clone_stage4
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+. "helper/logging.inc"
+
+MLTK_PID="$$"
+
+qnd_exit() {
+ unset_quiet
+ kill "$MLTK_PID"
+ [ $# -ge 1 ] && kill "$1"
+}
+
+
+[ $# -lt 3 ] && perror "$0 <vorlage> <stage> <target_dir>"
+
+BASEDIR="./server/local_builds/$1"
+BOOTDIR="./server/boot/$1"
+[ ! -d "$BASEDIR" ] && perror "Unknown Vorlage '$1'"
+BASEDIR="$BASEDIR/$2"
+[ ! -d "$BASEDIR" ] && perror "Unknown Stage '$2' for Vorlage '$1'"
+TARGETDIR="$3"
+mkdir -p "$TARGETDIR"
+mkdir -p "$BOOTDIR"
+[ ! -z "$(ls "$TARGETDIR")" ] && perror "Target dir '$TARGETDIR' not empty"
+
+pinfo "Building rsync exclude-file for building stage 4...."
+cp "data/basic.nocopy" "$BOOTDIR/exclude-stage4"
+find "$BASEDIR" -type f | cut -c $[${#BASEDIR} + 1]- >> "$BOOTDIR/exclude-stage4"
+pinfo "Done."
+
+pinfo "Cloning via rsync"
+rsync -a --numeric-ids -v --exclude-from="$BOOTDIR/exclude-stage4" -e "ssh -oStrictHostKeyChecking=no" "root@$1:/" "$TARGETDIR" || perror "rsync from 'root@$1:/' to '$TARGETDIR' failed."
+
diff --git a/data/basic.nocopy b/data/basic.nocopy
new file mode 100644
index 00000000..ea8ce588
--- /dev/null
+++ b/data/basic.nocopy
@@ -0,0 +1,23 @@
+/var/run
+/var/log
+/dev
+/proc
+/sys
+/boot
+/export
+/home/vmuser
+/lost+found
+/media
+/mnt
+/opt/openslx
+/run
+/tmp
+/root
+/usr/src
+/lib/modules
+*tm-scripts*
+*~
+*.bak
+*.tmp
+*.pid
+
diff --git a/data/install_server.sh b/data/install_server.sh
new file mode 100755
index 00000000..ca67a6ed
--- /dev/null
+++ b/data/install_server.sh
@@ -0,0 +1,133 @@
+#!/bin/sh
+
+TOOLS="git squashfs-tools rsync lighttpd tftpd"
+
+for tool in $TOOLS; do
+ echo " ###### Installiere $tool ##########"
+ apt-get install -y $tool
+done
+
+# lighttpd konfigurieren
+# konfig: www-root = /srv/openslx/www
+
+# damit es keinen Ärger wg. noch nicht vorhandenem docroot gibt
+echo "Konfiguriere lighttpd ..."
+echo "Stoppe installierten lighttpd ..."
+/etc/init.d/lighttpd stop
+ERR=$?
+if [ "$ERR" -gt 0 ]; then
+ echo "Konnte lighttpd nicht anhalten - Abbruch!"
+ exit 1
+fi
+
+# lighttpd-Konfiguration patchen
+
+echo "Passe lighttpd-Konfiguration an ..."
+cp -p /etc/lighttpd/lighttpd.conf /etc/lighttpd/lighttpd.conf.orig
+ERR=$?
+if [ "$ERR" -gt 0 ]; then
+ echo "Konnte alte lighttpd-Konfiguration nicht sichern - Abbruch!"
+ exit 1
+fi
+
+cat /etc/lighttpd/lighttpd.conf|sed 's/\/var\/www/\/srv\/openslx\/www/g'>/etc/lighttpd/lighttpd.conf.tmp
+ERR=$?
+if [ "$ERR" -gt 0 ]; then
+ echo "Konnte lighttpd-Konfiguration nicht patchen - Abbruch!"
+ exit 1
+fi
+
+mv /etc/lighttpd/lighttpd.conf.tmp /etc/lighttpd/lighttpd.conf
+ERR=$?
+if [ "$ERR" -gt 0 ]; then
+ echo "Konnte neue lighttpd-Konfiguration nicht speichern - Abbruch!"
+ exit 1
+fi
+
+# neues docroot (/srv/openslx/www) prüfen und ggf. erzeugen - ggf. altes docroot löschen?
+echo "Prüfe docroot für lighttpd (/srv/openslx/www) ..."
+if [ ! -d /srv/openslx/www ] ; then
+ echo "Erzeuge neues docroot für lighttpd (/srv/openslx/www) ..."
+ mkdir -p /srv/openslx/www
+ ERR=$?
+ if [ "$ERR" -gt 0 ]; then
+ echo "Konnte kein lighttpd-docroot-Verzeichnis erstellen - Abbruch!"
+ exit 1
+ fi
+fi
+
+# ... und lighttpd wieder hochziehen:
+echo "Starte installierten lighttpd ..."
+/etc/init.d/lighttpd start
+ERR=$?
+if [ "$ERR" -gt 0 ]; then
+ echo "Konnte lighttpd nicht starten - Abbruch!"
+ exit 1
+fi
+
+# tftpd konfigurieren
+# tftp root = /srv/openslx/tftp
+
+echo "Konfiguriere tftpd ..."
+# neues docroot (/srv/openslx/tftp) prüfen und ggf. erzeugen - ggf. altes docroot löschen?
+echo "Prüfe docroot für tftpd (/srv/openslx/tftp) ..."
+if [ ! -d /srv/openslx/tftp ] ; then
+ echo "Erzeuge neues docroot für tftpf (/srv/openslx/tftp) ..."
+ mkdir -p /srv/openslx/tftp
+ ERR=$?
+ if [ "$ERR" -gt 0 ]; then
+ echo "Konnte kein tftpd-docroot-Verzeichnis erstellen - Abbruch!"
+ exit 1
+ fi
+fi
+
+echo "Halte xinetd an ..."
+# Erstmal xinetd (kam mit tftpd) anhalten
+/etc/init.d/xinetd stop # besser wäre zB service xinetd stop, aber wg. Kompatibilität
+ERR=$?
+if [ "$ERR" -gt 0 ]; then
+ echo "Konnte xinetd nicht anhalten - Abbruch!"
+ exit 1
+fi
+
+# tftpd-Konfiguration einschreiben
+cat>/etc/xinetd.d/tftp<<HEREEND #
+service tftp
+{
+protocol = udp
+port = 69
+socket_type = dgram
+wait = yes
+user = nobody
+server = /usr/sbin/in.tftpd
+server_args = /srv/openslx/tftp
+disable = no
+}
+HEREEND
+
+echo "starte xinetd ..."
+/etc/init.d/xinetd start
+ERR=$?
+if [ "$ERR" -gt 0 ]; then
+ echo "Konnte xinetd nicht starten - Abbruch!"
+ exit 1
+fi
+
+
+echo " ##### Klone das mltk repository ########"
+
+mkdir -p /opt/openslx
+cd /opt/openslx
+
+git clone git://git.openslx.org/openslx-ng/tm-scripts
+
+echo "....Fertig"
+echo "mltk liegt nun im Verzeichnis $(pwd)/tm-scripts"
+echo "Extrahieren und Erstellen der Basissystemdaten:"
+echo "./mltk remote stage31 -b"
+echo "./mltk remote stage32 -b"
+echo "Verpacken der Daten als initramfs:"
+echo "./mltk server local stage31 -e stage31"
+echo "./mltk server local stage32 -e stage32"
+echo "."
+
diff --git a/data/kernel.wanted.config b/data/kernel.wanted.config
index 05eb508a..80367038 100644
--- a/data/kernel.wanted.config
+++ b/data/kernel.wanted.config
@@ -1,3 +1,4 @@
+CONFIG_LOCALVERSION="-openslx"
CONFIG_8139CP=y
CONFIG_8139TOO=y
CONFIG_8139TOO_8129=y
@@ -92,81 +93,8 @@ CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_FS_XATTR=y
CONFIG_EXT4_USE_FOR_EXT23=y
CONFIG_EXYNOS_VIDEO=y
-#CONFIG_FB_3DFX_ACCEL=y
-#CONFIG_FB_3DFX_I2C=y
-#CONFIG_FB_3DFX=y
-#CONFIG_FB_ARC=y
-#CONFIG_FB_ARK=y
-#CONFIG_FB_ASILIANT=y
-#CONFIG_FB_ATY128_BACKLIGHT=y
-#CONFIG_FB_ATY128=y
-#CONFIG_FB_ATY_BACKLIGHT=y
-#CONFIG_FB_ATY_CT=y
-#CONFIG_FB_ATY_GX=y
-#CONFIG_FB_ATY=y
-#CONFIG_FB_BACKLIGHT=y
CONFIG_FB_BOOT_VESA_SUPPORT=y
-#CONFIG_FB_BROADSHEET=y
-#CONFIG_FB_CARILLO_RANCH=y
-#CONFIG_FB_CARMINE_DRAM_EVAL=y
-#CONFIG_FB_CARMINE=y
-#CONFIG_FB_CIRRUS=y
-#CONFIG_FB_CYBER2000_DDC=y
-#CONFIG_FB_CYBER2000=y
-#CONFIG_FB_DDC=y
-#CONFIG_FB_DEFERRED_IO=y
-#CONFIG_FB_GEODE_GX1=y
-#CONFIG_FB_GEODE_GX=y
-#CONFIG_FB_GEODE_LX=y
-#CONFIG_FB_GEODE=y
-#CONFIG_FB_I740=y
-#CONFIG_FB_IMSTT=y
-#CONFIG_FB_KYRO=y
-#CONFIG_FB_LE80578=y
-#CONFIG_FB_MATROX_G=y
-#CONFIG_FB_MATROX_I2C=y
-#CONFIG_FB_MATROX_MAVEN=y
-#CONFIG_FB_MATROX_MILLENIUM=y
-#CONFIG_FB_MATROX_MYSTIQUE=y
-#CONFIG_FB_MATROX=y
-#CONFIG_FB_MB862XX_I2C=y
-#CONFIG_FB_MB862XX_PCI_GDC=y
-#CONFIG_FB_MB862XX=y
-#CONFIG_FB_METRONOME=y
-#CONFIG_FB_NEOMAGIC=y
-#CONFIG_FB_NVIDIA_BACKLIGHT=y
-#CONFIG_FB_NVIDIA_I2C=y
-#CONFIG_FB_NVIDIA=y
-#CONFIG_FB_PM2_FIFO_DISCONNECT=y
-#CONFIG_FB_PM2=y
-#CONFIG_FB_PM3=y
-#CONFIG_FB_RADEON_BACKLIGHT=y
-#CONFIG_FB_RADEON_I2C=y
-#CONFIG_FB_RADEON=y
-#CONFIG_FB_RIVA_BACKLIGHT=y
-#CONFIG_FB_RIVA_I2C=y
-#CONFIG_FB_RIVA=y
-#CONFIG_FB_S3_DDC=y
-#CONFIG_FB_S3=y
-#CONFIG_FB_SAVAGE_ACCEL=y
-#CONFIG_FB_SAVAGE_I2C=y
-#CONFIG_FB_SAVAGE=y
-#CONFIG_FB_SIS_300=y
-#CONFIG_FB_SIS_315=y
-#CONFIG_FB_SIS=y
-#CONFIG_FB_SMSCUFX=y
-#CONFIG_FB_SVGALIB=y
-#CONFIG_FB_SYS_COPYAREA=y
-#CONFIG_FB_SYS_FILLRECT=y
-#CONFIG_FB_SYS_FOPS=y
-#CONFIG_FB_SYS_IMAGEBLIT=y
-#CONFIG_FB_TRIDENT=y
-#CONFIG_FB_UDL=y
CONFIG_FB_VESA=y
-#CONFIG_FB_VIA_X_COMPATIBILITY=y
-#CONFIG_FB_VIA=y
-#CONFIG_FB_VOODOO1=y
-#CONFIG_FB_VT8623=y
CONFIG_FEALNX=y
CONFIG_FORCEDETH=y
CONFIG_GENERIC_GPIO=y
@@ -176,6 +104,7 @@ CONFIG_HP100=y
CONFIG_IGB=y
CONFIG_IGBVF=y
CONFIG_IP1000=y
+CONFIG_INPUT_EVBUG=n
CONFIG_IXGB=y
CONFIG_IXGBE=y
CONFIG_IXGBEVF=y
@@ -239,6 +168,7 @@ CONFIG_NET_VENDOR_XIRCOM=y
CONFIG_NIU=y
CONFIG_NS83820=y
CONFIG_OVERLAYFS_FS=y
+CONFIG_PACKET=y
CONFIG_PARPORT=y
CONFIG_PCH_GBE=y
CONFIG_PCMCIA_XIRCOM=y
diff --git a/generate_bootmenu.sh b/generate_bootmenu.sh
new file mode 100755
index 00000000..de3dc24e
--- /dev/null
+++ b/generate_bootmenu.sh
@@ -0,0 +1,131 @@
+#!/bin/bash
+
+# This is a temporary script to create/update the PXE boot menu
+# for OpenSLX-NG. It is designed to facilitate testing in early
+# stages and will be replaced by more sophisticated scripts or tools
+# later on.
+# - Simon Rettberg
+
+MLTK_PID="$$"
+qnd_exit() {
+ unset_quiet
+ kill "$MLTK_PID"
+ [ $# -ge 1 ] && kill "$1"
+}
+
+
+. "helper/logging.inc"
+
+[ $# -lt 1 ] && perror "Usage: $0 <this server's ip address>"
+
+[ ! -d "server/boot" ] && perror "Not in tm-scripts root directory or no cloned systems created."
+
+cd "server/boot" || perror "Could not cd to server/boot"
+
+SERVERIP="$1"
+
+ifconfig | grep -- "$SERVERIP" > /dev/null
+RET=$?
+if [ "x$RET" != "x0" ]; then
+ pwarning "Given server IP '$SERVERIP' not found in ifconfig output. Are you sure this machine is reachable with this address?"
+ sleep 2
+fi
+
+# generate config header
+LINKLOC="/srv/openslx/www"
+if [ -L "$LINKLOC/boot" -o ! -e "$LINKLOC/boot" ]; then
+ ln -sf -t "$LINKLOC" "$(pwd)" "boot" || perror "Could not link $LINKLOC/boot to $(pwd)"
+fi
+mkdir -p "/srv/openslx/tftp/pxelinux.cfg" || perror "Could not create directory /srv/openslx/tftp/pxelinux.cfg"
+CONF="/srv/openslx/tftp/pxelinux.cfg/default"
+
+## This is the template for the boot menu
+cat > "$CONF" << HEREEND
+# generated by openslx-ng
+# if you intend to change this file, remember that it will
+# be overwritten by generate_bootmenu.sh
+# this file was generated $(date)
+
+DEFAULT vesamenu.c32
+
+# static configuration (override with include file)
+NOESCAPE 0
+PROMPT 0
+
+MENU BACKGROUND openslx.png
+MENU WIDTH 78
+MENU MARGIN 9
+MENU PASSWORDMARGIN 9
+MENU ROWS 10
+MENU TABMSGROW 16
+MENU CMDLINEROW 16
+MENU ENDROW -1
+MENU PASSWORDROW 16
+MENU TIMEOUTROW 20
+MENU HELPMSGROW 16
+MENU HELPMSGENDROW -1
+MENU HSHIFT 0
+MENU VSHIFT 7
+
+menu color screen 37;40 #80ffffff #00000000 std
+menu color border 37;40 #40000000 #ff8093a1 std
+menu color title 1;37;40 #ffff8b00 #ff8093a1 std
+menu color unsel 37;40 #fff0f0f0 #ff8093a1 std
+menu color hotkey 1;37;40 #ffff8b00 #ff8093a1 std
+menu color sel 7;37;40 #ff1c2a33 #667799bb all
+menu color hotsel 1;7;37;40 #ffff8b00 #667799bb all
+menu color disabled 1;37;40 #ffff8b00 #ff8093a1 std
+menu color scrollbar 37;40 #40000000 #ee000000 std
+menu color tabmsg 37;40 #ffff8b00 #ff8093a1 std
+menu color cmdmark 1;37;40 #ffff8b00 #ff8093a1 std
+menu color cmdline 37;40 #fff0f0f0 #ff8093a1 std
+menu color pwdborder 37;40 #40000000 #ff8093a1 std
+menu color pwdheader 37;40 #ffff8b00 #ff8093a1 std
+menu color pwdentry 37;40 #ffff8b00 #ff8093a1 std
+menu color timeout_msg 37;40 #fff0f0f0 #ff8093a1 std
+menu color timeout 1;37;40 #ffff8b00 #ff8093a1 std
+menu color help 37;40 #ff1c2a33 #00000000 none
+MENU MSGCOLOR #ff1c2a33 #00000000 none
+
+
+# slxsettings configuration
+TIMEOUT 600
+TOTALTIMEOUT 1800
+MENU TITLE OpenSLX-NG Preview
+
+HEREEND
+
+BASEDIR="$(pwd)"
+LABEL=0
+for BASE in $(ls "$BASEDIR"); do
+ pinfo "Found base $BASE....."
+ for STAGE31 in $(ls "$BASEDIR/$BASE/initramfs-stage31"*); do
+ STAGE31="$(basename "$STAGE31")"
+ SSTAGE31="$(echo "$STAGE31" | cut -c 19-)"
+ [ ! -z "$SSTAGE31" ] && SSTAGE31="(31-$SSTAGE31)"
+ pinfo " Found stage31 $SSTAGE31"
+ for STAGE32 in $(ls "$BASEDIR/$BASE/initramfs-stage32"*); do
+ STAGE32="$(basename "$STAGE32")"
+ SSTAGE32="$(echo "$STAGE32" | cut -c 19-)"
+ [ ! -z "$SSTAGE32" ] && SSTAGE32="(32-$SSTAGE32)"
+ pinfo " Found stage32 $SSTAGE32"
+ for KERNEL in $(ls "$BASEDIR/$BASE/kernel/vmlinuz-"*); do
+ KERNEL="$(basename "$KERNEL")"
+ KKERNEL="$(echo "$KERNEL" | cut -c 9-)"
+ pinfo " Found kernel $KKERNEL"
+ LABEL=$[$LABEL + 1]
+ # write out this combination
+ cat >> "$CONF" << HEREEND
+
+# --- $BASE --- $KERNEL --- $STAGE31 --- $STAGE32 --- #
+LABEL system$LABEL
+ MENU LABEL $BASE ($KKERNEL) $SSTAGE31 $SSTAGE32
+ KERNEL http://$SERVERIP/boot/$BASE/kernel/$KERNEL
+ INITRD http://$SERVERIP/boot/$BASE/$STAGE31,http://$SERVERIP/boot/$BASE/$STAGE32
+ IPAPPEND 3
+HEREEND
+ done
+ done
+ done
+done
+
diff --git a/helper/fileutil.inc b/helper/fileutil.inc
index d37d546e..24b50a5f 100644
--- a/helper/fileutil.inc
+++ b/helper/fileutil.inc
@@ -132,7 +132,8 @@ generate_initramfs() {
[ "x${PS[1]}" != "x0" ] && perror "cpio create failed."
[ "x${PS[2]}" != "x0" ] && perror "gzip to '$3' failed."
cd - &> /dev/null
- pinfo "Created initramfs of $1 at $3. Size: $(du -bsh "$3" | awk 'END {print $1}')"
+ pinfo "Created initramfs of $1 at $3"
+ pinfo "Size: $(du -bsh "$3" | awk 'END {print $1}')"
}
# generates squashfs of directory
@@ -143,5 +144,6 @@ generate_squashfs() {
[ -d "$1" ] || perror "$1 is not a directory."
mksquashfs "$1" "$2" -comp xz -b 1M -no-recovery >&6 \
|| perror "mksquashfs failed ($?)."
- pinfo "Created squashfs of $1 at $2. Size: $(du -bsh "$2" | awk 'END {print $1}')"
+ pinfo "Created squashfs of $1 at $2"
+ pinfo "Size: $(du -bsh "$2" | awk 'END {print $1}')"
}
diff --git a/helper/kernel.inc b/helper/kernel.inc
index 2482a128..6901c4b4 100644
--- a/helper/kernel.inc
+++ b/helper/kernel.inc
@@ -69,6 +69,17 @@ copy_kernel_modules() {
pwarning "Module ${KERNEL_MODULE} not found. Skipping. (might cause problems on certain clients!)"
continue
fi
+
+ # check for dependencies
+ local DEPS=$(grep "${KERNEL_MODULE}:" "${KERNEL_BUILD_DIR}/${KERNEL_MODULES_DIR}/modules.dep" | cut -d ":" -f2-)
+ if [ ! -z "$DEPS" ]; then
+ for DEP in $DEPS; do
+ pdebug "Adding dep: ${KERNEL_MODULES_DIR}/$DEP"
+ KERNEL_MODULES_LIST+=" ${KERNEL_MODULES_DIR}/$DEP"
+ done
+ else
+ pdebug "${KERNEL_MODULE} has no dependencies."
+ fi
done
if [ ! -z "${KERNEL_MODULES_LIST}" ]; then
diff --git a/remote/modules/busybox/busybox.conf b/remote/modules/busybox/busybox.conf
index f7c866f2..e8236c26 100644
--- a/remote/modules/busybox/busybox.conf
+++ b/remote/modules/busybox/busybox.conf
@@ -1,5 +1,5 @@
GIT=git://git.openslx.org/openslx/tools/busybox
-PREFIX="/openslx"
+PREFIX="/opt/openslx"
REQUIRED_BINARIES=" busybox"
REQUIRED_DIRECTORIES=" ${PREFIX}/bin
${PREFIX}/sbin
diff --git a/remote/modules/kdm/data/etc/kde4/kdm/kdmrc b/remote/modules/kdm/data/etc/kde4/kdm/kdmrc
index 855e9aa7..2cd04adc 100644
--- a/remote/modules/kdm/data/etc/kde4/kdm/kdmrc
+++ b/remote/modules/kdm/data/etc/kde4/kdm/kdmrc
@@ -18,13 +18,13 @@ UseAdminSession=true
AllowRootLogin=true
AllowShutdown=All
AutoLoginEnable=false
-#Reset=/etc/kde4/kdm/Xreset
+Reset=/etc/kde4/kdm/Xreset
ServerAttempts=2
#TODO: Xsession doesn't work because scripts are missing under /etc/X11/Xsession.d/
-#Session=/etc/kde4/kdm/Xsession
+Session=/etc/kde4/kdm/Xsession
SessionsDirs=/etc/X11/session,/usr/share/xsessions,/usr/share/apps/kdm/sessions
-#Setup=/etc/kde4/kdm/Xsetup
-#Startup=/etc/kde4/kdm/Xstartup
+Setup=/etc/kde4/kdm/Xsetup
+Startup=/etc/kde4/kdm/Xstartup
[X-:0-Greeter]
LogSource=/dev/xconsole
diff --git a/remote/modules/kernel/kernel.build b/remote/modules/kernel/kernel.build
index 1d8e41a7..63b0a336 100644
--- a/remote/modules/kernel/kernel.build
+++ b/remote/modules/kernel/kernel.build
@@ -45,11 +45,12 @@ 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
- make || perror "make failed"
+ # explicitly state number of cores here, as MAKEFLAGS seems to be overridden
+ make "-j$CPU_CORES" || perror "make failed"
fi
# install modules to build directory
@@ -115,7 +116,7 @@ patch_aufs() {
git checkout origin/aufs$NEEDED_BRANCH
pinfo "Starting to patch..."
tar c include/linux/aufs_type.h Documentation fs | tar x -C ../ksrc
- cd ../ksrc
+ cd ../ksrc || perror "cd nicht geklappt: ../ksrc"
patch -p1 < ../aufs3-standalone/aufs3-kbuild.patch || perror "aufs3-standalone/aufs3-kbuild.patch failed"
patch -p1 < ../aufs3-standalone/aufs3-base.patch || perror "aufs3-standalone/aufs3-base.patch failed"
patch -p1 < ../aufs3-standalone/aufs3-proc_map.patch || perror "aufs3-standalone/aufs3-proc_map.patch failed"
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 e2548c99..65b4db88 100644
--- a/remote/modules/rsyslogd/data/etc/rsyslog.conf
+++ b/remote/modules/rsyslogd/data/etc/rsyslog.conf
@@ -1,169 +1,84 @@
-##
-## === When you're using remote logging, enable on-disk queues ===
-## === in rsyslog.d/remote.conf. When neccesary also set the ===
-## === SYSLOG_REQUIRES_NETWORK=yes in /etc/sysconfig/syslog, ===
-## === e.g. when rsyslog has to receive on a specific IP only. ===
-##
-## Note, that when the MYSQL, PGSQL, GSSAPI, GnuTLS or SNMP modules
-## (provided in separate rsyslog-module-* packages) are enabled, the
-## configuration can't be used on a system with /usr on a remote
-## filesystem, except on newer systems where initrd mounts /usr.
-## [The modules are linked against libraries installed bellow of
-## /usr thus also installed in /usr/lib*/rsyslog because of this.]
-##
-
+# /etc/rsyslog.conf Configuration file for rsyslogd.
#
-# if you experience problems, check
-# http://www.rsyslog.com/troubleshoot for assistance
-# and report them at http://bugzilla.novell.com/
+# For more information see
+# /usr/share/doc/rsyslog/html/rsyslog_conf.html
+#
+# First some standard logfiles. Log by facility.
#
-# since rsyslog v3: load input modules
-# If you do not load inputs, nothing happens!
-
-# provides --MARK-- message capability (every 1 hour)
-$ModLoad immark.so
+$ModLoad imuxsock # provides support for local system logging
+$ModLoad imklog # provides kernel logging support (previously done by rklogd)
+$ModLoad immark
$MarkMessagePeriod 3600
-
-# provides support for local system logging (e.g. via logger command)
-$ModLoad imuxsock.so
-
-# reduce dupplicate log messages (last message repeated n times)
$RepeatedMsgReduction on
-# kernel logging (may be also provided by /sbin/klogd)
-# see also http://www.rsyslog.com/doc-imklog.html.
-$ModLoad imklog.so
-# set log level 1 (same as in /etc/sysconfig/syslog).
-$klogConsoleLogLevel 1
-
-# Use rsyslog native, rfc5424 conform log format as default
-# ($ActionFileDefaultTemplate RSYSLOG_FileFormat).
-#
-# To change a single file to use obsolete BSD syslog format
-# (rfc 3164, no high-precision timestamps), set the variable
-# bellow or append ";RSYSLOG_FileFormat" to the filename.
-# See
-# http://www.rsyslog.com/doc/rsyslog_conf_templates.html
-# for more informations.
-#
-#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
-
-#
-# Include config generated by /etc/init.d/syslog script
-# using the SYSLOGD_ADDITIONAL_SOCKET* variables in the
-# /etc/sysconfig/syslog file.
-#
-#$IncludeConfig /var/run/rsyslog/additional-log-sockets.conf
-
-#
-# Include config files, that the admin provided? :
-#
-$IncludeConfig /etc/rsyslog.d/*.conf
-
-###
-# print most important on tty10 and on the xconsole pipe
-#
-if ( \
- /* kernel up to warning except of firewall */ \
- ($syslogfacility-text == 'kern') and \
- ($syslogseverity <= 4 /* warning */ ) and not \
- ($msg contains 'IN=' and $msg contains 'OUT=') \
- ) or ( \
- /* up to errors except of facility authpriv */ \
- ($syslogseverity <= 3 /* errors */ ) and not \
- ($syslogfacility-text == 'authpriv') \
- ) \
-then /dev/tty10
-& |/dev/console
+if ( \
+ /* kernel up to warning except of firewall */ \
+ ($syslogfacility-text == 'kern') and \
+ ($syslogseverity <= 4 /* warning */ ) and not \
+ ($msg contains 'IN=' and $msg contains 'OUT=') \
+ ) or ( \
+ /* up to errors except of facility authpriv */ \
+ ($syslogseverity <= 3 /* errors */ ) and not \
+ ($syslogfacility-text == 'authpriv') \
+ ) \
+then /dev/tty10
-# Emergency messages to everyone logged on (wall)
-*.emerg :omusrmsg:*
-
-# enable this, if you want that root is informed
-# immediately, e.g. of logins
-#*.alert root
-
+auth,authpriv.* /var/log/auth.log
+*.*;auth,authpriv.none -/var/log/syslog
+#cron.* /var/log/cron.log
+daemon.* -/var/log/daemon.log
+kern.* -/var/log/kern.log
+lpr.* -/var/log/lpr.log
+mail.* -/var/log/mail.log
+user.* -/var/log/user.log
#
-# firewall messages into separate file and stop their further processing
+# Logging for the mail system. Split it up so that
+# it is easy to write scripts to parse these files.
#
-if ($syslogfacility-text == 'kern') and \
- ($msg contains 'IN=' and $msg contains 'OUT=') \
-then -/var/log/firewall
-& ~
-
-
+mail.info -/var/log/mail.info
+mail.warn -/var/log/mail.warn
+mail.err /var/log/mail.err
#
-# acpid messages into separate file and stop their further processing
+# Logging for INN news system
#
-# => all acpid messages for debuging (uncomment if needed):
-#if ($programname == 'acpid' or $syslogtag == '[acpid]:') then \
-# -/var/log/acpid
+news.crit /var/log/news/news.crit
+news.err /var/log/news/news.err
+news.notice -/var/log/news/news.notice
#
-# => up to notice (skip info and debug)
-if ($programname == 'acpid' or $syslogtag == '[acpid]:') and \
- ($syslogseverity <= 5 /* notice */) \
-then -/var/log/acpid
-& ~
-
-
+# Some `catch-all' logfiles.
#
-# NetworkManager into separate file and stop their further processing
+*.=debug;\
+ auth,authpriv.none;\
+ news.none;mail.none -/var/log/debug
+*.=info;*.=notice;*.=warn;\
+ auth,authpriv.none;\
+ cron,daemon.none;\
+ mail,news.none -/var/log/messages
#
-if ($programname == 'NetworkManager') or \
- ($programname startswith 'nm-') \
-then -/var/log/NetworkManager
-& ~
-
-
+# Emergencies are sent to everybody logged in.
#
-# email-messages
-#
-mail.* -/var/log/mail
-mail.info -/var/log/mail.info
-mail.warning -/var/log/mail.warn
-mail.err /var/log/mail.err
-
-
+*.emerg *
#
-# news-messages
+# I like to have messages displayed on the console, but only on a virtual
+# console I usually leave idle.
#
-news.crit -/var/log/news/news.crit
-news.err -/var/log/news/news.err
-news.notice -/var/log/news/news.notice
-# enable this, if you want to keep all news messages
-# in one file
-#news.* -/var/log/news.all
-
-
+#daemon,mail.*;\
+# news.=crit;news.=err;news.=notice;\
+# *.=debug;*.=info;\
+# *.=notice;*.=warn /dev/tty8
+# The named pipe /dev/xconsole is for the `xconsole' utility. To use it,
+# you must invoke `xconsole' with the `-file' option:
#
-# Warnings in one file
+# $ xconsole -file /dev/xconsole [...]
#
-*.=warning;*.=err -/var/log/warn
-*.crit /var/log/warn
-
-
+# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
+# busy site..
#
-# the rest in one file
-#
-*.*;mail.none;news.none -/var/log/messages
-
-
-#
-# enable this, if you want to keep all messages
-# in one file
-#*.* -/var/log/allmessages
-
-
-#
-# Some foreign boot scripts require local7
-#
-local0.*;local1.* -/var/log/localmessages
-local2.*;local3.* -/var/log/localmessages
-local4.*;local5.* -/var/log/localmessages
-local6.*;local7.* -/var/log/localmessages
-
-###
+daemon.*;mail.*;\
+ news.err;\
+ *.=debug;*.=info;\
+ *.=notice;*.=warn |/dev/tty11
diff --git a/remote/modules/rsyslogd/rsyslogd.build b/remote/modules/rsyslogd/rsyslogd.build
index 14e6de8b..c35d07b7 100644
--- a/remote/modules/rsyslogd/rsyslogd.build
+++ b/remote/modules/rsyslogd/rsyslogd.build
@@ -26,8 +26,9 @@ post_copy() {
sed -i 's/^Before=udev/#&/' "${TARGET_BUILD_DIR}"/etc/systemd/system/rsyslog.service
# activate the service
- ln -s rsyslog.service "${TARGET_BUILD_DIR}"/etc/systemd/system/syslog.service
+ ln -sf rsyslog.service "${TARGET_BUILD_DIR}"/etc/systemd/system/syslog.service
[ ! -d "${TARGET_BUILD_DIR}"/etc/systemd/system/basic.target.wants ] && mkdir -p "${TARGET_BUILD_DIR}"/etc/systemd/system/basic.target.wants
- ln -s ../syslog.service "${TARGET_BUILD_DIR}"/etc/systemd/system/basic.target.wants/syslog.service
-
+ ln -sf ../syslog.service "${TARGET_BUILD_DIR}"/etc/systemd/system/basic.target.wants/syslog.service
+ # TODO: more checks
+ sed -i.bak '/^After\=var-run.mount/d;/^Requires\=var-run.mount/d;/^Before\=syslog.target/d' "$TARGET_BUILD_DIR/etc/systemd/system/rsyslog.service"
}
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/debug-shell.service b/remote/modules/systemd/data/etc/systemd/system/debug-shell.service
index 5b7d5de9..f702064d 100644
--- a/remote/modules/systemd/data/etc/systemd/system/debug-shell.service
+++ b/remote/modules/systemd/data/etc/systemd/system/debug-shell.service
@@ -13,7 +13,7 @@ IgnoreOnIsolate=yes
[Service]
Environment=TERM=linux
-EnvironmentPath=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/openslx/sbin:/openslx/bin:/openslx/usr/sbin:/openslx/usr/bin
+EnvironmentPath=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/sbin:/opt/openslx/bin:/opt/openslx/usr/sbin:/opt/openslx/usr/bin
ExecStart=/bin/sh
Restart=always
RestartSec=0
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/getty.target.wants/load-german-keymap.service b/remote/modules/systemd/data/etc/systemd/system/getty.target.wants/load-german-keymap.service
deleted file mode 120000
index d329f45a..00000000
--- a/remote/modules/systemd/data/etc/systemd/system/getty.target.wants/load-german-keymap.service
+++ /dev/null
@@ -1 +0,0 @@
-../load-german-keymap.service \ No newline at end of file
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/load-german-keymap.service b/remote/modules/systemd/data/etc/systemd/system/load-german-keymap.service
index 74753259..fa4cf5f2 100644
--- a/remote/modules/systemd/data/etc/systemd/system/load-german-keymap.service
+++ b/remote/modules/systemd/data/etc/systemd/system/load-german-keymap.service
@@ -2,4 +2,4 @@
Description=Setup german keyboard layout
[Service]
-ExecStart=/bin/bash -c 'exec /openslx/sbin/loadkmap < /etc/keymaps/de_DE'
+ExecStart=/bin/bash -c 'exec /opt/openslx/sbin/loadkmap < /etc/keymaps/de_DE'
diff --git a/remote/modules/systemd/data/etc/systemd/system/network-interface@.service b/remote/modules/systemd/data/etc/systemd/system/network-interface@.service
index 137b3af6..13a30bbc 100644
--- a/remote/modules/systemd/data/etc/systemd/system/network-interface@.service
+++ b/remote/modules/systemd/data/etc/systemd/system/network-interface@.service
@@ -5,4 +5,4 @@ Before=udhcpc@%i.service
[Service]
Type=simple
-ExecStart=/openslx/bin/ip link set dev %I up
+ExecStart=/opt/openslx/bin/ip link set dev %I up
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 a945e743..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=/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/openslx/vmchooser/virtualization.conf b/remote/modules/vmchooser/data/etc/openslx/vmchooser/virtualization.conf
new file mode 100644
index 00000000..8887ee6f
--- /dev/null
+++ b/remote/modules/vmchooser/data/etc/openslx/vmchooser/virtualization.conf
@@ -0,0 +1,8 @@
+totalmem=1000
+cpu_cores=1
+host_arch=i686
+vtflag=0
+hostmacaddr=00:0c:29:4e:ee:57
+hostip=132.230.4.54
+hostname=slx-client
+cdrom_0=/dev/sr0
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/bin/run-virt.sh
index b3863a2e..9314bb42 100755
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/run-virt.sh
+++ b/remote/modules/vmchooser/data/opt/openslx/bin/run-virt.sh
@@ -18,27 +18,25 @@
# fied virtualization tool.
################################################################################
-. /etc/opt/openslx/openslx.conf
-
################################################################################
### Define default dirs / get configs
################################################################################
-PLUGINCONFROOT=${OPENSLX_DEFAULT_CONFDIR}/plugins
-PLUGINCONFDIR=${PLUGINCONFROOT}/vmchooser
+PLUGINCONFROOT=/etc/opt/openslx/plugins
+PLUGINCONFDIR=/etc/opt/openslx/plugins/vmchooser
# include general configuration from vmchooser
-[ -f ${PLUGINCONFROOT}/vmchooser/vmchooser.conf ] && \
- . ${PLUGINCONFROOT}/vmchooser/vmchooser.conf
+[ -f /etc/openslx/vmchooser/vmchooser.conf ] && \
+ . /etc/openslx/vmchooser/vmchooser.conf
# load general virtualization information
-[ -f ${PLUGINCONFROOT}/virtualization/virtualization.conf ] && \
- . ${PLUGINCONFROOT}/virtualization/virtualization.conf
+[ -f /etc/openslx/vmchooser/virtualization.conf ] && \
+ . /etc/openslx/vmchooser/virtualization.conf
################################################################################
### Functions used throughout the script
################################################################################
# function to write to stdout and logfile
-LOGFILE=${OPENSLX_DEFAULT_LOGDIR}/run-virt.${USER}.$$.log
+LOGFILE=/var/log/openslx/run-virt.${USER}.$$.log
writelog () {
# write to stdout
echo -e "$1"
@@ -118,7 +116,7 @@ if ls ${xmlfile} 2>/dev/null | grep '/' >/dev/null 2>&1; then
xmlpath=$(dirname ${xmlfile})
xmlfile=$(basename ${xmlfile})
else
- xmlpath=${vmchooser_xmlpath}
+ xmlpath=${path}
fi
# full path
xmlfile="${xmlpath}/${xmlfile%.xml}.xml"
@@ -318,7 +316,7 @@ fdtest=${floppy_0:+"TRUE"}
# if $fdtest not set floppy0="FALSE", else "TRUE"
floppy0=${fdtest:-"FALSE"}
floppy1="TRUE"
-floppy1name="${PLUGINCONFDIR}/loopimg/fd.img"
+floppy1name="/etc/openslx/vmchooser/loopimg/fd.img"
# if $cdrom_0 from run-virt.include set then cdtest="TRUE"
cdtest=
cdtest=${cdrom_0:+"TRUE"}
@@ -379,30 +377,31 @@ writelog "\tVM Hostname:\t\t$hostname"
### Setup the rest of the environment and run the configured vm
################################################################################
+#TODO: ALSA MIXER IN STAGE32
# 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"
+#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
+cp ${xmlfile} /etc/openslx/vmchooser/fd-loop/config.xml
# Get all virtual machine specific stuff from the respective include file
-if [ -e ${PLUGINCONFROOT}/${xmlvirt}/run-virt.include ] ; then
+if [ -e /etc/openslx/${xmlvirt}/run-virt.include ] ; then
self=${xmlvirt}
- . ${PLUGINCONFROOT}/${xmlvirt}/run-virt.include
+ . /etc/openslx/${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
+ for dm in twm 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
@@ -414,9 +413,9 @@ if [ -e ${PLUGINCONFROOT}/${xmlvirt}/run-virt.include ] ; then
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
+ #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."
diff --git a/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/xmlfilter.sh b/remote/modules/vmchooser/data/opt/openslx/bin/xmlfilter.sh
index ded5d114..ded5d114 100755
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/xmlfilter.sh
+++ b/remote/modules/vmchooser/data/opt/openslx/bin/xmlfilter.sh
diff --git a/remote/modules/vmchooser/data/usr/local/share/icons/xterm_48x48.xpm b/remote/modules/vmchooser/data/usr/local/share/icons/xterm_48x48.xpm
new file mode 100644
index 00000000..44fb8109
--- /dev/null
+++ b/remote/modules/vmchooser/data/usr/local/share/icons/xterm_48x48.xpm
@@ -0,0 +1,53 @@
+/* XPM */
+static char * xterm_48x48_xpm[] = {
+"48 48 2 1",
+" c #000000",
+". c #FFFFFF",
+"................................................",
+"...... ........",
+"..... .................................. ......",
+"..... ... ... . .....",
+"..... .. ............................ .. .. ....",
+"..... . .............................. . ... ...",
+"..... . . .... ................... . .... ..",
+"..... . .. .... .................... . .... ..",
+"..... . ... .. ..................... . .... ..",
+"..... . ... .. ..................... . .... ..",
+"..... . .... ...................... . .... ..",
+"..... . .... ...................... . .... ..",
+"..... . ..... ....................... . .... ..",
+"..... . .... ...................... . .... ..",
+"..... . .... ...................... . .... ..",
+"..... . ... .. ..................... . .... ..",
+"..... . ... .. ..................... . .... ..",
+"..... . .. .... .................... . .... ..",
+"..... . . .... ................... . .... ..",
+"..... . .............................. . .... ..",
+"..... . .............................. . .... ..",
+"..... . . . .. ... ... . . .... ..",
+"..... . ... .... ...... ... .. ... . . .... ..",
+"..... . ... .... ...... ... .. . . . . . .... ..",
+"..... . ... .... ... ... . . . . . .... ..",
+"..... . ... .... ...... . .... .. .. . . ... ...",
+"..... . ... .... ...... .. ... .. .. . . ... ...",
+"..... . ... .... .. ... .. ..... . . .. ....",
+"..... . .............................. . .. ....",
+"..... . .............................. . . .....",
+"..... .. ............................ .. . .....",
+"..... ... ... ......",
+"..... .................................. ......",
+"...... ........",
+"................................................",
+"................................................",
+"...... ......",
+"..... .................................. ......",
+"..... . . . . . . . . . . . . . . . . .. ......",
+".... .................................. . ......",
+".... . . . . . . . . . . . . . . . . .. . ......",
+"... .................................. .. ......",
+"... . . . . . . . . . . . . . . . . .. .. ......",
+".. .................................. .. .......",
+".. . . . . . ........",
+". .................................. . .........",
+". ..........",
+"................................................"};
diff --git a/remote/modules/vmchooser/data/usr/share/xsessions/default.desktop b/remote/modules/vmchooser/data/usr/share/xsessions/default.desktop
index 48812a8e..d33615cf 100755
--- a/remote/modules/vmchooser/data/usr/share/xsessions/default.desktop
+++ b/remote/modules/vmchooser/data/usr/share/xsessions/default.desktop
@@ -4,7 +4,7 @@ Name=virtual machine chooser (default)
Name[de]=Virtuelle Maschine auswählen
Comment=This session starts the vm session chooser
Comment[de]=Diese Sitzung startet das Auswahlmenü für die vorhandenen Sitzungen
-Exec=/opt/openslx/vmchooser/bin/vmchooser -c /etc/openslx/vmchooser/vmchooser.conf
-TryExec=/opt/openslx/vmchooser/bin/vmchooser -c /etc/openslx/vmchooser/vmchooser.conf
+Exec=/opt/openslx/bin/vmchooser -c /etc/openslx/vmchooser/vmchooser.conf
+TryExec=/opt/openslx/bin/vmchooser
Icon=
Type=Application
diff --git a/remote/modules/vmchooser/data/usr/share/xsessions/xterm.desktop b/remote/modules/vmchooser/data/usr/share/xsessions/xterm.desktop
new file mode 100755
index 00000000..150b65f2
--- /dev/null
+++ b/remote/modules/vmchooser/data/usr/share/xsessions/xterm.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Xterm
+Name[de]=Xterm
+Comment=This session starts Xterm
+Comment[de]=Diese Sitzung startet Xterm
+Exec=/usr/bin/xterm -fullscreen
+TryExec=/usr/bin/xterm
+Icon=/usr/local/share/icons/xterm_48x48.xpm
+Type=Application
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/vmchooser/vmchooser.build b/remote/modules/vmchooser/vmchooser.build
index 340b1d9a..facd8c54 100644
--- a/remote/modules/vmchooser/vmchooser.build
+++ b/remote/modules/vmchooser/vmchooser.build
@@ -5,11 +5,17 @@ fetch_source() {
}
build() {
- cd src
- pinfo "Running vmchooser buildscript"
- . build.sh
- pinfo ""
- cd - &> /dev/null
+
+SRCDIR="${MODULE_DIR}/src/"
+
+[ ! -d "${MODULE_BUILD_DIR}/${PREFIX}" ] && mkdir -p "${MODULE_BUILD_DIR}/${PREFIX}"
+cd "${MODULE_BUILD_DIR}/${PREFIX}"
+
+pinfo "Running make"
+cmake $CMAKE_ARGS $SRCDIR && make
+
+cd - &> /dev/null
+
}
post_copy() {
diff --git a/remote/modules/vmchooser/vmchooser.conf b/remote/modules/vmchooser/vmchooser.conf
index 4054d59b..976384aa 100644
--- a/remote/modules/vmchooser/vmchooser.conf
+++ b/remote/modules/vmchooser/vmchooser.conf
@@ -1,5 +1,5 @@
GIT=git://git.openslx.org/openslx/tools/vmchooser.git
REQUIRED_DEPENDENCIES=" cmake
libqt4-dev"
-TARGET_DIR="opt/openslx/vmchooser/bin"
+PREFIX="/opt/openslx/bin"
REQUIRED_BINARIES="vmchooser"
diff --git a/remote/modules/vmplayer/data/etc/openslx/vmware/nvram b/remote/modules/vmplayer/data/etc/openslx/vmware/nvram
new file mode 100644
index 00000000..85125f1e
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/openslx/vmware/nvram
Binary files differ
diff --git a/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include b/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include
new file mode 100644
index 00000000..65db53da
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/openslx/vmware/run-virt.include
@@ -0,0 +1,530 @@
+# run-virt.include
+# -----------------------------------------------------------------------------
+# Copyright (c) 2009..2012 - RZ Uni Freiburg
+# Copyright (c) 2009..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 suggestions, praise, or complaints to feedback@openslx.org
+#
+# General information about OpenSLX can be found at http://openslx.org/
+# -----------------------------------------------------------------------------
+# run-virt.include
+# - component for vmware/player of the vmchooser plugin run-virt.sh
+################################################################################
+
+# configuration writer functions
+################################################################################
+
+runvmwareconfheader ()
+{
+echo "# This configuration file was generated by $0" >${conffile}
+
+# check for the ostype
+case "${vmostype}" in
+ win31*)
+ mem="32"
+ cpu_cores="1"
+ sound="sb16"
+ shfolders="FALSE"
+ ;;
+ win95*)
+ mem="92"
+ cpu_cores="1"
+ shfolders="FALSE"
+ ;;
+ win98*|winme*)
+ mem="256"
+ cpu_cores="1"
+ shfolders="FALSE"
+ ;;
+ winxp*|windowsxp*)
+ shfolders="TRUE"
+ ;;
+ winvista*|windowsvista*)
+ shfolders="TRUE"
+ ;;
+ windows7*)
+ shfolders="TRUE"
+ ;;
+ windows8*)
+ shfolders="TRUE"
+ ;;
+ linux*|*ubuntu*|*suse*|debian*|*sci*)
+ vmostype="linux"
+ shfolders="TRUE"
+ ;;
+ macos*)
+ cpu_cores="1"
+ vmostype="other"
+ shfolders="FALSE"
+ ;;
+ beos*)
+ cpu_cores="1"
+ vmostype="other"
+ shfolders="FALSE"
+ ;;
+ *)
+ vmostype="other"
+ shfolders="FALSE"
+ ;;
+esac
+case "$vmversion" in
+ *)
+ svga_autodetect="TRUE"
+ numvcpus="1"
+ echo ".encoding = \"UTF-8\"
+# version specific stuff - all versions
+config.version = \"8\"" >>${conffile}
+ ;;
+esac
+case "$vmversion" in
+ 2.*|3.*|4.*|5.*|6.*|7.*|8.*|9.*)
+ [ ${shfolders} == FALSE ] || echo "
+# version specific stuff - ver. 2.*|3.*|6.*|7.*|8.*|9.*
+sharedFolder.option = \"alwaysEnabled\"" >>${conffile}
+ ;;
+esac
+case "$vmversion" in
+ 2.5|3.*|4.*|5.*|6.5|7.*|8.*|9.*)
+ if [ "${cpu_cores}" -ge "2" 2>/dev/null ]; then
+ numvcpus="2"
+ fi
+ if [ "${mem}" -ge "8000" 2>/dev/null ]; then
+ mem=8000
+ fi
+ cap3d="TRUE" # helper var for loging output
+ echo "
+# version specific stuff - ver. 2.5|3.*|6.5|7.*
+ehci.present = \"TRUE\"
+mks.enable3d = \"${enable3d}\"" >>${conffile}
+ ;;
+esac
+case "$vmversion" in
+ 3.*|4.*|7.*|8.*|9.*)
+ numvcpus="${cpu_cores}"
+ if [ "${cpu_cores}" -ge "4" 2>/dev/null ]; then
+ numvcpus="4"
+ fi
+ # svga_autodetect="FALSE" # if defined manual, see below
+ echo "
+# version specific stuff - ver. 3.*|7.*
+cpuid.coresPerSocket = \"${cpu_cores}\"
+maxvcpus = \"4\"
+monitor.virtual_mmu = \"automatic\"
+monitor.virtual_exec = \"automatic\"
+floppy1.clientDevice = \"FALSE\"
+floppy1.readonly = \"TRUE\"" >>${conffile}
+ ;;
+esac
+
+echo "
+# id
+virtualHW.version = \"${hwver}\"
+displayName = \"${displayname}\"
+guestOS = \"${vmostype}\"
+
+# CPU/MEM
+numvcpus = \"${numvcpus}\"
+memsize = \"${mem}\"
+MemAllowAutoScaleDown = \"FALSE\"
+MemTrimRate = \"-1\"
+
+# ide-disks
+ide0:0.present = \"${ide}\"
+ide0:0.fileName = \"${diskfile}\"
+ide0:0.mode = \"independent-nonpersistent\"
+ide1:0.present = \"${cdrom0}\"
+ide1:0.autodetect = \"TRUE\"
+ide1:0.fileName = \"auto detect\"
+ide1:0.deviceType = \"cdrom-raw\"
+ide1:1.present = \"${cdrom1}\"
+ide1:1.autodetect = \"TRUE\"
+ide1:1.fileName = \"auto detect\"
+ide1:1.deviceType = \"cdrom-raw\"
+
+# scsi-disks
+scsi0.present = \"${scsi}\"
+scsi0:0.present = \"${scsi}\"
+scsi0:0.fileName = \"${diskfile}\"
+scsi0.virtualDev = \"${hddrv}\"
+scsi0:0.mode = \"independent-nonpersistent\"
+
+# floppies
+floppy0.present = \"${floppy0}\"
+floppy0.startConnected = \"FALSE\"
+floppy0.autodetect = \"TRUE\"
+floppy0.fileName = \"auto detect\"
+# we need floppy b: for our windows client configuration
+floppy1.present = \"${floppy1}\"
+floppy1.startConnected = \"TRUE\"
+floppy1.fileType = \"file\"
+floppy1.fileName = \"${floppy1name}\"
+
+# nics
+ethernet0.present = \"TRUE\"
+ethernet0.addressType = \"static\"
+${network_virtualDev}
+ethernet0.connectionType = \"${network_kind}\"
+#ethernet1.connectionType = \"custom\"
+#ethernet1.vnet = \"/dev/vmnet2\"
+ethernet0.address = \"00:50:56:${VM_ID}:${machostpart}\"
+ethernet0.wakeOnPcktRcv = \"FALSE\"
+
+# sound
+sound.present = \"TRUE\"
+sound.fileName = \"-1\"
+sound.autodetect = \"TRUE\"
+sound.virtualdev = \"${sound}\"
+
+# svga
+svga.autodetect = \"${svga_autodetect}\"
+
+# usb
+usb.present = \"TRUE\"
+usb.generic.autoconnect = \"TRUE\"
+
+# pci configuration
+usb.pciSlotNumber = "16"
+ethernet0.pciSlotNumber = "17"
+sound.pciSlotNumber = "18"
+ehci.pciSlotNumber = "19"
+scsi0.pciSlotNumber = "20"
+
+# shared folders
+sharedFolder0.present = \"${shfolders}\"
+sharedFolder0.enabled = \"${shfolders}\"
+sharedFolder0.expiration = \"never\"
+sharedFolder0.guestName = \"${sharename}\"
+sharedFolder0.hostPath = \"${sharepath}\"
+sharedFolder0.readAccess = \"TRUE\"
+sharedFolder0.writeAccess = \"TRUE\"
+sharedFolder.maxNum = \"1\"
+
+# dirs/configs
+tmpDirectory = \"${redodir}\"
+redoLogDir = \"${redodir}\"
+mainMem.useNamedFile = \"TRUE\"
+snapshot.disabled = \"TRUE\"
+tools.syncTime = \"TRUE\"
+isolation.tools.hgfs.disable = \"FALSE\"
+hgfs.mapRootShare = \"TRUE\"
+isolation.tools.dnd.disable = \"FALSE\"
+isolation.tools.copy.enable = \"TRUE\"
+isolation.tools.paste.enabled = \"TRUE\"
+
+# serial port
+serial0.present = \"${serial}\"
+${serialdev}
+
+# parallel port
+parallel0.present = \"${parallel}\"
+parallel0.bidirectional = \"${paralbidi}\"
+${paraldev}" >>${conffile}
+
+# set the appropriate permissions for the vmware config file
+chmod u+rwx ${conffile} >/dev/null 2>&1
+}
+
+preferencesheader ()
+{
+echo ".encoding = \"UTF-8\"
+# This configuration file was generated by $0
+
+# updates/tips
+webUpdate.enabled = \"FALSE\"
+pref.downloadPermission = \"deny\"
+pref.vmplayer.downloadPermission = \"deny\"
+pref.vmplayer.webUpdateOnStartup = \"FALSE\"
+pref.tip.startup = \"FALSE\"
+hints.hideAll = \"TRUE\"
+hint.vmui.showAllUSBDevs = \"FALSE\"
+
+# configs
+prefvmx.defaultVMPath = \"${vmhome}\"
+prefvmx.mru.config = \"${conffile}:\"
+
+# hot keys
+pref.hotkey.control = \"true\"
+pref.hotkey.alt = \"true\"
+pref.hotkey.shift = \"true\"
+pref.hotkey.gui = \"true\"
+gui.restricted = \"true\"
+
+# fullscreen/mouse/keyboard
+pref.fullscreen.toolbarPixels = \"0\"
+pref.vmplayer.fullscreen.autohide = \"TRUE\"
+pref.grabOnMouseClick = \"TRUE\"
+pref.grabOnKeyPress = \"FALSE\"
+pref.motionGrab = \"TRUE\"
+pref.motionUngrab = \"TRUE\"
+pref.hideCursorOnUngrab = \"TRUE\"
+pref.autoFit = \"TRUE\"
+pref.autoFitFullScreen = \"fitGuestToHost\"
+pref.vmplayer.exit.vmAction = \"poweroff\"
+pref.vmplayer.confirmOnExit = \"TRUE\"
+
+# shared folders
+pref.enableAllSharedFolders = \"TRUE\"
+
+# eula" >${vmhome}/preferences
+
+# different eula parameters from Workstation 9+/ Player 5+
+case "$vmversion" in
+ 3.*|4.*|7.*|8.*)
+ echo "
+pref.eula.size = \"2\"
+pref.eula.0.appName = \"VMware Player\"
+pref.eula.0.buildNumber = \"${vmbuild}\"
+pref.eula.1.appName = \"VMware Workstation\"
+pref.eula.1.buildNumber = \"${vmbuild}\"" >>${vmhome}/preferences
+ ;;
+ 5.*|9.*)
+ # code
+ echo "
+pref.eula.count = \"2\"
+pref.eula0.product = \"VMware Player\"
+pref.eula0.build = \"${vmbuild}\"
+pref.eula1.product = \"VMware Workstation\"
+pref.eula1.build = \"${vmbuild}\"" >>${vmhome}/preferences
+ ;;
+esac
+
+}
+
+
+# declaration of default variables
+################################################################################
+
+# VM-ID static (0D), remove if changed to 00
+VM_ID="0D"
+# should be dynamic
+if [ "x$(which bc)" != "x" ]; then
+ VM_ID=$(echo "obase=16; $$" | bc)
+ VM_ID=$(expr substr $VM_ID $(expr ${#VM_ID} - 1) 2)
+fi
+# temporary disk space for logs, etc...
+redodir=/tmp/vmware/${USER}.$$
+# dir for configs and vmem file
+confdir=/tmp/vmware/${USER}.$$
+# configfile
+conffile="${confdir}/run-vmware.conf"
+# diskfile
+diskfile=${vmpath}
+# users vmware config folder
+vmhome="${HOME}/.vmware"
+
+# get several version infos for vmware/player
+. /etc/openslx/vmware/vmware.conf
+vmbuild=$buildversion
+vmversion=$version
+
+# VMware start options
+# "-X": start in fullscreen
+vmopt="-X"
+
+
+# hardware checks
+################################################################################
+
+# use different network card (default e1000, vlance, vmxnet)
+if [ -n "${network_card}" ]; then
+ network_virtualDev="ethernet0.virtualDev = \"${network_card}\""
+else
+ network_virtualDev='# using default virtualDev for ethernet0'
+fi
+
+# set standard sound card, overwrite depending on OS (options sb16, es1371, hdaudio)
+sound="es1371"
+
+# check for 3D configuration setting
+case "${enable3d}" in
+ *true*|*yes*)
+ enable3d="TRUE"
+ ;;
+ *)
+ enable3d="FALSE"
+ ;;
+esac
+
+# serial/parallel port defined (e.g. "ttyS0, lp0" or "autodetect")
+case "$serial" in
+ tty*)
+ serialdev="serial0.filename = \"/dev/${serial}\""
+ serial="TRUE"
+ ;;
+ auto*)
+ serialdev="serial0.autodetect = \"TRUE\""
+ serial="TRUE"
+ ;;
+ *)
+ serialdev="# no serial port configured"
+ serial="FALSE"
+ ;;
+esac
+case "$parallel" in
+ lp*|parport*)
+ paraldev="parallel0.filename = \"/dev/${parallel}\""
+ paralbidi="TRUE"
+ parallel="TRUE"
+ ;;
+ auto*)
+ paraldev="parallel0.autodetect = \"TRUE\""
+ paralbidi="TRUE"
+ parallel="TRUE"
+ ;;
+ *)
+ paraldev="# no parallel port configured"
+ paralbidi="FALSE"
+ parallel="FALSE"
+ ;;
+esac
+
+# adjust memory available for vmware guests
+#if [ -n "${forcemem}" ]; then
+# mem="${forcemem}"
+#else
+# case "$vmversion" in
+# 2.*|6.*)
+# permem=30
+# ;;
+# 3.*|7.*)
+# permem=25
+# ;;
+# esac
+# if [ "${totalmem}" -ge "2500" ]; then
+# permem=40
+# fi
+# # check if /tmp is on harddisk
+# if grep -qe "/dev/.* /tmp " /proc/mounts ; then
+# permem=60
+# id44="1"
+# # Hack, if more than 2,5G RAM use 40% of Ram and write vmem into Ram as well
+# # (40% vmware | 40% confdir(vmem...) | 20% host
+# # VMplayer 2+ issue
+# if [ "${totalmem}" -ge "2500" ]; then
+# permem=40
+# confdir=/dev/shm/vmware/$USER
+# conffile=${confdir}/run-vmware.conf
+# mkdir -p /dev/shm/vmware/$USER
+# fi
+# fi
+# mem=$(expr ${totalmem} / 100 \* ${permem} / 4 \* 4)
+# if [ "${id44}" = "1" ]; then
+# hostmem=$(expr ${totalmem} - ${mem})
+# else
+# hostmem=$(expr ${totalmem} - ${mem} - ${mem})
+# fi
+#fi
+
+# check if ide/scsi and hwver of image
+# read only the first 30 lines to be shure
+imghead=$(head -30 ${diskfile})
+hddrv=$(echo "${imghead}" | grep -m1 -ia "ddb.adapterType" |\
+ awk -F '"' '{print $2}')
+hwver=$(echo "${imghead}" | grep -m1 -ia "ddb.virtualHWVersion" |\
+ awk -F '"' '{print $2}')
+case "${hddrv}" in
+ ide)
+ ide="TRUE"
+ scsi="FALSE"
+ ;;
+ lsilogic|buslogic)
+ ide="FALSE"
+ scsi="TRUE"
+ ;;
+esac
+
+# write configuration files
+################################################################################
+
+# create vmware directories
+mkdir -p ${redodir} >/dev/null 2>&1
+mkdir -p ${confdir} >/dev/null 2>&1
+mkdir -p ${vmhome}/dndlogs >/dev/null 2>&1
+touch ${vmhome}/dndlogs/dndlog.conf >/dev/null 2>&1
+
+# create preferences
+preferencesheader
+
+# create VMware startup file
+runvmwareconfheader
+# link to conffile if confdir != redodir
+ln -s ${conffile} ${redodir}/run-vmware.conf >/dev/null 2>&1
+
+# sync is needed to ensure that data is really written to virtual disk
+sync
+
+# own nvram. We need it for floppy drive b, default nvram has just drive a
+# TODO: optimize, currently kinda inefficient, too much copys, but we
+# don't know which one is installed...
+cp /etc/openslx/vmware/nvram ${confdir}/nvram 2>/dev/null
+
+
+# logging and stdout
+################################################################################
+
+# log script information
+writelog "# File created by $0 (VMversion ${vmversion})\n# on $(date)\n"
+writelog "Starting with non-persistent mode ...\n"
+
+# write all results to logfile
+# log disksetup
+writelog "Directories:"
+writelog "\tConfdir:\t${confdir}"
+writelog "\tConffile:\t${conffile}"
+writelog "\tRedodir:\t${redodir}"
+writelog "\tVMhome:\t\t${vmhome}"
+writelog "\t/tmp info: \
+ $(grep "/tmp " /proc/mounts) $(df -h | grep " /tmp$" | awk '{print $2}')"
+# hw setup
+writelog "Hardware:"
+writelog "\tMAC:\t\t00:50:56:${VM_ID}:${machostpart}"
+if [ -n "${network_card}" ]; then
+ writelog "\tNet Adaptor:\t${network_card}"
+fi
+writelog "\tMem:\t\t${mem} MB"
+# echo nur wenn hostmem gesetzt
+[ -n "${hostmem}" ] && writelog "\tHostmem:\t${hostmem} MB"
+writelog "\tMax. res.:\t${xres}x${yres}"
+writelog "\tCD-ROM1:\t${cdrom0}"
+writelog "\tCD-ROM2:\t${cdrom1}"
+writelog "\tFloppy_A:\t${floppy0}"
+if [ "${serial}" = "TRUE" ]; then
+ writelog "\tSerial Port:\t${serialdev}"
+fi
+if [ "${parallel}" = "TRUE" ]; then
+ writelog "\tParallel Port:\t${paraldev}"
+fi
+# image
+writelog "Diskimage:"
+writelog "\tDiskfile:\t${diskfile}"
+writelog "\tDisktype:\t${hddrv}"
+writelog "\tHWVersion:\t${hwver}"
+writelog "\tVMostype:\t${vmostype}"
+# misc
+writelog "Misc:"
+writelog "\tDisplayname:\t${displayname}"
+if [ "${cap3d}" = "TRUE" -a "${enable3d}" = "TRUE" ]; then
+ writelog "\t3D Graphics:\tenabled"
+fi
+# empty line at end
+writelog ""
+
+
+# finally set env for run-virt.sh
+################################################################################
+
+# configure and start samba service to provide user's home directory
+if [ -f /usr/sbin/smbd ] ; then
+ sudo /opt/openslx/bin/sed -i /etc/vmware/smb.conf -e "s,USER,$USER,"
+ sudo /usr/sbin/nmbd -s /etc/vmware/smb.conf
+ sudo /usr/sbin/smbd -s /etc/vmware/smb.conf
+fi
+
+# using the modified version of the wrapper script
+VIRTCMD="/opt/openslx/bin/vmplayer"
+VIRTCMDOPTS="${vmopt} ${conffile}"
+RMDIRS="${redodir} ${conffile}"
diff --git a/remote/modules/vmplayer/data/etc/openslx/vmware/vmware-env b/remote/modules/vmplayer/data/etc/openslx/vmware/vmware-env
new file mode 100755
index 00000000..41360bb3
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/openslx/vmware/vmware-env
@@ -0,0 +1,128 @@
+#!/bin/sh
+# Copyright (c) 2009 - 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/
+# -----------------------------------------------------------------------------
+# §filename§
+# - §desc§
+# §generated§
+# -----------------------------------------------------------------------------
+
+export PATH=$PATH:/opt/openslx/bin:/opt/openslx/sbin:/opt/openslx/usr/bin:/opt/openslx/usr/sbin
+
+#functions: helper functions
+tempdir () {
+# Create a special tempfs directory
+mkdir -m 1777 -p /tmp/vmware
+# Don't mount special tempfs, when using local harddrive for /tmp
+[ ! -n "$(cat /proc/mounts |grep ' /tmp '|grep '/dev/sd')" ] \
+ && mount -t tmpfs -o size=180%,mode=1777 tmpfs /tmp/vmware
+}
+
+load_modules () {
+# VMplayer common stuff
+insmod /lib/modules/vmware/vmmon.ko || return 1
+insmod /lib/modules/vmware/vmnet.ko || return 1
+# VMplayer 3.X specific stuff
+insmod /lib/modules/vmware/vmci.ko
+insmod /lib/modules/vmware/vmblock.ko
+insmod /lib/modules/vmware/vsock.ko
+
+}
+
+unload_modules () {
+rmmod vmnet vmmonvsock vmci vmblock 2>/dev/null
+}
+
+vmnetif () {
+# let point the path directly to the directory where the binary lives
+location="/usr/bin"
+if [ -n "$vmnet0" ] ; then
+ # the path might be directly point to the plugin dir
+ $location/vmnet-bridge -d /var/run/vmnet-bridge-0.pid -n 0
+fi
+if [ -n "$vmnet1" ] ; then
+ $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet1.pid \
+ /dev/vmnet1 vmnet1
+ ip addr add $vmnet1 dev vmnet1
+ ip link set vmnet1 up
+ if [ -n "$vmnet1nat" ] ; then
+ echo "1" >/proc/sys/net/ipv4/conf/vmnet1/forwarding 2>/dev/null
+ echo "1" >/proc/sys/net/ipv4/conf/br0/forwarding 2>/dev/null
+ fi
+ /opt/openslx/usr/sbin/udhcpd \
+ -S /etc/vmware/udhcpd/udhcpd-vmnet1.conf
+fi
+if [ -n "$vmnet8" ] ; then
+ $location/vmnet-netifup -d /var/run/vmnet-netifup-vmnet8.pid \
+ /dev/vmnet8 vmnet8
+ ip addr add $vmnet8 dev vmnet8
+ ip link set vmnet8 up
+ echo "1" >/proc/sys/net/ipv4/conf/vmnet8/forwarding 2>/dev/null
+ echo "1" >/proc/sys/net/ipv4/conf/br0/forwarding 2>/dev/null
+# TODO: iptables in stage32?
+# iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
+ # /etc/vmware/vmnet-natd-8.mac simply contains a mac like 00:50:56:F1:30:50
+ $location/vmnet-natd -d /var/run/vmnet-natd-8.pid \
+ -m /etc/vmware/vmnet-natd-8.mac -c /etc/vmware/nat.conf 2>/dev/null # or logfile
+ /opt/openslx/usr/sbin/udhcpd \
+ -S /etc/vmware/udhcpd/udhcpd-vmnet8.conf
+fi
+
+}
+
+vmblock () {
+# let point the path directly to the directory where the binary lives
+# TODO: get it to work
+ /usr/bin/vmware-usbarbitrator
+
+}
+
+
+case "$1" in
+ start)
+ #start: defines start function for initscript
+ # load the configuration file
+ . /etc/openslx/vmware/vmware.conf
+ # hack to access the first serial/parallel port
+ chmod a+rw /dev/ttyS0
+ chmod a+rw /dev/parport0
+ tempdir
+ load_modules
+ vmnetif
+# vmblock
+
+ ;;
+ stop)
+ #stop: defines stop function for initscript
+ killall vmnet-netifup vmnet-natd vmnet-bridge vmware vmplayer \
+ vmware-tray vmnet-dhcpd 2>/dev/null
+ # might take a while until all services are shut down
+ sleep 1
+ umount -l /tmp/vmware 2>/dev/null
+ unload_modules
+
+ ;;
+ restart)
+ #restart: defines restart function for initscript
+ $0 stop && $0 start
+ ;;
+ status)
+ #status: defines status function for initscript
+ vmstatus
+ ;;
+ *)
+ #usage: defines usage function for initscript
+ ## print out usage
+ echo "Usage: $0 {start, stop, restart, status}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/remote/modules/vmplayer/data/etc/openslx/vmware/vmware.conf b/remote/modules/vmplayer/data/etc/openslx/vmware/vmware.conf
new file mode 100644
index 00000000..5a52ca41
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/openslx/vmware/vmware.conf
@@ -0,0 +1,8 @@
+# configuration file for vmware background services written in stage3 setup
+#vmnet0=true
+#vmnet1=192.168.101.1/24
+#vmnet1nat=true
+#vmnet8=192.168.102.1/24
+# stage1 variables produced during plugin install
+version="5.0"
+buildversion="1031769"
diff --git a/remote/modules/vmplayer/data/etc/systemd/system/vmware.service b/remote/modules/vmplayer/data/etc/systemd/system/vmware.service
new file mode 100644
index 00000000..067b15a0
--- /dev/null
+++ b/remote/modules/vmplayer/data/etc/systemd/system/vmware.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Sets up the vmware environment
+Wants=graphical.target
+
+[Service]
+Type=simple
+ExecStart=/etc/openslx/vmware/vmware-env start
+ExecStop=/etc/openslx/vmware/vmware-env stop
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/vmchooser/data/opt/openslx/vmchooser/bin/vmplayer b/remote/modules/vmplayer/data/opt/openslx/bin/vmplayer
index c9b57a65..030e9175 100755
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/vmplayer
+++ b/remote/modules/vmplayer/data/opt/openslx/bin/vmplayer
@@ -1,8 +1,11 @@
#!/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/vmplayer/data/opt/openslx/bin/vmware
index 8b568f53..1fe9b11d 100755
--- a/remote/modules/vmchooser/data/opt/openslx/vmchooser/bin/vmware
+++ b/remote/modules/vmplayer/data/opt/openslx/bin/vmware
@@ -1,8 +1,11 @@
#!/bin/sh
-# written by OpenSLX-plugin 'vmware' in Stage1
-# radically simplified version of the original script vmware by VMware Inc.
+# 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/vmware' \
"$PREFIX"'/libconf' "$@"
+
+
+
+
diff --git a/remote/modules/vmplayer/vmplayer.build b/remote/modules/vmplayer/vmplayer.build
new file mode 100644
index 00000000..1e3090ac
--- /dev/null
+++ b/remote/modules/vmplayer/vmplayer.build
@@ -0,0 +1,133 @@
+fetch_source() {
+ #mount vmware bundle directory
+ [ ! -d /mnt/store/vmware ] && mkdir -p /mnt/store/vmware
+ mount -t nfs -o ro,async,nolock 132.230.8.113:/srv/vmext /mnt/store/vmware || perror "Could not mount vmware bundle directory. Exiting."
+ 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
+ pinfo "Compiling required kernel modules."
+ # build modules
+ build_modules
+
+}
+
+post_copy() {
+ # FIXME: gconftool is copied without dependencies
+ #tarcopy "$(find /usr/lib/ -name gconv -type d)" "$TARGET_BUILD_DIR"
+ :
+}
+
+build_modules(){
+ pdebug "PAtCHIGN"
+ # need to be in src
+ cd "$MODULE_DIR/src" || perror "Could not cd to '$MODULE_DIR/src'"
+ local VMWARE_MODCONFIG="$MODULE_DIR/src/vmware-vmx/bin/vmware-modconfig"
+ [ -e "$VMWARE_MODCONFIG" ] && chmod +x "$VMWARE_MODCONFIG" || perror "Could not find $VMWARE_MODCONFIG"
+ # link vmware-modconfig-console in the build dir
+ local MANIFEST="$MODULE_DIR/src/vmware-vmx/manifest.xml"
+ local BUILD_NUMBER="$(grep -o -E '<buildNumber>[0-9]*</buildNumber>' "$MANIFEST"|grep -o -E '[0-9]*')"
+ local VERSION="$(grep -o -E '<version>[0-9.]*</version>' "$MANIFEST"|grep -o -E '[0-9.]*')"
+ local CORE_VERSION="$(grep -o -E '<coreVersion>[0-9.]*</coreVersion>' "$MANIFEST"|grep -o -E '[0-9.]*')"
+ # /etc/vmware/config gen
+
+ sed -i.bak1 '/^ETCDIR/d;/^VMISETCDIR/d;/bootstrap/d' "$VMWARE_MODCONFIG"
+ sed -i.bak2 "s/libdir=.*/libdir=$(echo $MODULE_BUILD_DIR | escape_replace)\/usr\/lib\/vmware/g" "$VMWARE_MODCONFIG"
+ sed -i.bak3 "s#set -e#set -e\nPREFIX=\"/usr\"\nBINDIR=\"/usr/bin\"\nSBINDIR=\"/usr/sbin\"\nLIBDIR=\"/usr/lib\"\nDATADIR=\"/usr/share\"\nSYSCONFDIR=\"/etc\"\nDOCDIR=\"/usr/share/doc\"\nMANDIR=\"/usr/share/man\"\nINCLUDEDIR=\"/usr/include\"\nINITDIR=\"/etc\"\nINITSCRIPTDIR=\"/etc/init.d\"\nVMWARE_INSTALLER=\"/usr/lib/vmware-installer/$CORE_VERSION\"\nVERSION=\"$CORE_VERSION\"\nVMISVERSION=\"$CORE_VERSION\"\nVMISPYVERSION=\"25\"#g" "$VMWARE_MODCONFIG"
+
+
+ [ -e "/etc/vmware/config" ] && cp "/etc/vmware/config" "/etc/vmware/config.mltk.bak"
+ cat > "/etc/vmware/config" << EOF
+.encoding = "UTF-8"
+installerDefaults.componentDownloadEnabled = "yes"
+installerDefaults.dataCollectionEnabled = "no"
+installerDefaults.transferVersion = "1"
+installerDefaults.autoSoftwareUpdateEnabled = "yes"
+NETWORKING = "yes"
+VMBLOCK_CONFED = "yes"
+gksu.rootMethod = "sudo"
+libdir = "$MODULE_BUILD_DIR/usr/lib/vmware"
+VMCI_CONFED = "yes"
+VSOCK_CONFED = "yes"
+initscriptdir = "/etc/init.d"
+authd.fullpath = "/usr/sbin/vmware-authd"
+bindir = "/usr/bin"
+vmware.fullpath = "/usr/bin/vmware"
+vix.libdir = "/usr/lib/vmware-vix"
+vix.config.version = "1"
+player.product.version = "$VERSION"
+product.buildNumber = "$BUILD_NUMBER"
+authd.client.port = "902"
+authd.proxy.nfc = "vmware-hostd:ha-nfc"
+authd.soapserver = "TRUE"
+product.version = "9.0.1"
+workstation.product.version = "9.0.1"
+product.name = "VMware Workstation"
+EOF
+ mkdir -p "$MODULE_BUILD_DIR/usr/lib/vmware/modules"
+ ln -sf "$MODULE_DIR/src/vmware-vmx/extra/modules.xml" "$MODULE_BUILD_DIR/usr/lib/vmware/modules/"
+ ln -sf "$MODULE_DIR/src/vmware-vmx/lib/modules/source" "$MODULE_BUILD_DIR/usr/lib/vmware/modules/"
+
+ ln -sf "appLoader" "$MODULE_BUILD_DIR/usr/lib/vmware/bin/vmware-modconfig"
+ ln -sf "appLoader" "$MODULE_BUILD_DIR/usr/lib/vmware/bin/vmware-modconfig-console"
+
+ [ ! -e "$MODULES_DIR/kernel/ksrc/include/generated/utsrelease.h" ] && perror "Could not find uts release!!!"
+ local UTS_RELEASE="$(cat "$MODULES_DIR/kernel/ksrc/include/generated/utsrelease.h" | awk -F '"' '{print $2}')"
+ pinfo "Patching vmblock.tar"
+ cd "$MODULE_BUILD_DIR/usr/lib/vmware/modules/source" || perror "cd failed."
+ tar xf "vmblock.tar" || perror "untar of vmblock.tar failed."
+ for sourcefile in $(grep -l -r -E '\sputname' "vmblock-only/"); do
+ sed -r -i 's/\sputname/__putname/g' "$sourcefile" || perror "sed of $sourcefile failed."
+ done
+ tar cf "vmblock.tar" "vmblock-only/" || perror "repacking of vmblock.tar failed."
+ cd -
+
+ pinfo "KOMPALIERE VMWARE KERNEL MODULE"
+ for MOD in vsock vmblock vmmon vmnet vmci; do
+ pinfo "Kompaliere $MOD"
+ "$VMWARE_MODCONFIG" --console --build-mod -k "$UTS_RELEASE $MOD" "$(which gcc)" "$MODULES_DIR/kernel/ksrc/include" "vmplayer" "$MOD"
+ done
+
+ cd -
+
+ mkdir -p "$TARGET_BUILD_DIR/lib/modules/vmware/"
+ cp "/lib/modules/$UTS_RELEASE/vmplayer/"* "$TARGET_BUILD_DIR/lib/modules/vmware/" || perror "Could not cp vmware modules to target!"
+ [ -e /etc/vmware/config ] && rm -f /etc/vmware/config
+ cp /etc/vmware/config.mltk.bak /etc/vmware/config
+
+}
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 e239d586..a9b3d43b 100755..100644
--- a/remote/modules/xorg/data/etc/X11/Xsession
+++ b/remote/modules/xorg/data/etc/X11/Xsession
@@ -1,114 +1,38 @@
-#!/bin/sh
-#
-# /etc/X11/Xsession
-#
-# global Xsession file -- used by display managers and xinit (startx)
-
-# $Id: Xsession 967 2005-12-27 07:20:55Z dnusinow $
-
-set -e
-
-PROGNAME=Xsession
-
-message () {
- # pretty-print messages of arbitrary length; use xmessage if it
- # is available and $DISPLAY is set
- MESSAGE="$PROGNAME: $*"
- echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2
- if [ -n "$DISPLAY" ] && which xmessage > /dev/null 2>&1; then
- echo "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file -
- fi
-}
-
-message_nonl () {
- # pretty-print messages of arbitrary length (no trailing newline); use
- # xmessage if it is available and $DISPLAY is set
- MESSAGE="$PROGNAME: $*"
- echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} >&2;
- if [ -n "$DISPLAY" ] && which xmessage > /dev/null 2>&1; then
- echo -n "$MESSAGE" | fold -s -w ${COLUMNS:-80} | xmessage -center -file -
- fi
-}
-
-errormsg () {
- # exit script with error
- message "$*"
- exit 1
-}
-
-internal_errormsg () {
- # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message
- # One big call to message() for the sake of xmessage; if we had two then
- # the user would have dismissed the error we want reported before seeing the
- # request to report it.
- errormsg "$*" \
- "Please report the installed version of the \"x11-common\"" \
- "package and the complete text of this error message to" \
- "<debian-x@lists.debian.org>."
-}
-
-# initialize variables for use by all session scripts
-
-OPTIONFILE=/etc/X11/Xsession.options
-
-SYSRESOURCES=/etc/X11/Xresources
-USRRESOURCES=$HOME/.Xresources
-
-SYSSESSIONDIR=/etc/X11/Xsession.d
-USERXSESSION=$HOME/.xsession
-USERXSESSIONRC=$HOME/.xsessionrc
-ALTUSERXSESSION=$HOME/.Xsession
-ERRFILE=$HOME/.xsession-errors
-
-# attempt to create an error file; abort if we cannot
-if (umask 077 && touch "$ERRFILE") 2> /dev/null && [ -w "$ERRFILE" ] &&
- [ ! -L "$ERRFILE" ]; then
- chmod 600 "$ERRFILE"
-elif ERRFILE=$(tempfile 2> /dev/null); then
- if ! ln -sf "$ERRFILE" "${TMPDIR:=/tmp}/xsession-$USER"; then
- message "warning: unable to symlink \"$TMPDIR/xsession-$USER\" to" \
- "\"$ERRFILE\"; look for session log/errors in" \
- "\"$TMPDIR/xsession-$USER\"."
- fi
-else
- errormsg "unable to create X session log/error file; aborting."
-fi
-
-# truncate ERRFILE if it is too big to avoid disk usage DoS
-if [ "`stat -c%s \"$ERRFILE\"`" -gt 500000 ]; then
- T=`mktemp -p "$HOME"`
- tail -c 500000 "$ERRFILE" > "$T" && mv -f "$T" "$ERRFILE" || rm -f "$T"
-fi
-
-exec >>"$ERRFILE" 2>&1
-
-echo "$PROGNAME: X session started for $LOGNAME at $(date)"
-
-# Attempt to create a file of non-zero length in /tmp; a full filesystem can
-# cause mysterious X session failures. We do not use touch, :, or test -w
-# because they won't actually create a file with contents. We also let standard
-# error from tempfile and echo go to the error file to aid the user in
-# determining what went wrong.
-WRITE_TEST=$(tempfile)
-if ! echo "*" >>"$WRITE_TEST"; then
- message "warning: unable to write to ${WRITE_TEST%/*}; X session may exit" \
- "with an error"
-fi
-rm -f "$WRITE_TEST"
-
-# use run-parts to source every file in the session directory; we source
-# instead of executing so that the variables and functions defined above
-# are available to the scripts, and so that they can pass variables to each
-# other
-SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)
-if [ -n "$SESSIONFILES" ]; then
- set +e
- for SESSIONFILE in $SESSIONFILES; do
- . $SESSIONFILE
- done
- set -e
-fi
-
-exit 0
-
-# vim:set ai et sts=2 sw=2 tw=80:
+#!/bin/bash
+
+#Workaround to start Xsession. The original Xsession script includes error handling functionality and sources other scrips from the Xsession.d/ directory.
+
+#start selected session
+ 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
diff --git a/remote/modules/xorg/data/usr/share/xsessions/gnome.desktop b/remote/modules/xorg/data/usr/share/xsessions/gnome.desktop
deleted file mode 100644
index cdc66661..00000000
--- a/remote/modules/xorg/data/usr/share/xsessions/gnome.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-X-SuSE-translate=true
-Encoding=UTF-8
-Type=XSession
-Exec=gnome-session
-#TryExec=gnome-session
-Name=GNOME
-Comment=The GNU Network Object Model Environment. A complete, free and easy-to-use desktop environment
-
diff --git a/remote/modules/xorg/xorg.conf b/remote/modules/xorg/xorg.conf
index 81bc1531..a63ef508 100644
--- a/remote/modules/xorg/xorg.conf
+++ b/remote/modules/xorg/xorg.conf
@@ -29,7 +29,6 @@ REQUIRED_PACKAGES=" xserver-xorg
@xserver-xorg-video-s3
@xserver-xorg-video-tdfx"
REQUIRED_BINARIES=" Xorg
- vmwarectrl
gtf
cvt
X
diff --git a/remote/rootfs/rootfs-stage31/data/init b/remote/rootfs/rootfs-stage31/data/init
index 1e41012e..9bda6db1 100755
--- a/remote/rootfs/rootfs-stage31/data/init
+++ b/remote/rootfs/rootfs-stage31/data/init
@@ -22,6 +22,7 @@ mount -n -t tmpfs -o 'mode=755' run "/run"
[ ! -f /proc/cpuinfo ] && mount -n -t proc proc /proc
[ ! -d /sys/class ] && mount -n -t sysfs sysfs /sys
+echo "1" > /proc/sys/kernel/sysrq
echo "/sbin/mdev" > /proc/sys/kernel/hotplug
# read graphic and network adaptor configuration (without proprietary drivers yet)
@@ -111,7 +112,7 @@ if [ -n "$nfs" ] ; then
mount -t nfs -o ro,async,nolock ${nfsserver}:${nfspath} /rorootfs || { echo "Problem mounting NFS-Directory from ${nfsserver}:${nfspath}. Dropping to DEBUG shell."; DEBUG=1; }
else
echo "Mounting stage 3.2 as SquashFS"
- mount -t squashfs /mnt/$(ls /mnt) /rorootfs || { echo "Problem mounting Squashfs. Dropping to DEBUG shell."; DEBUG=1; }
+ mount -t squashfs /mnt/*.sqfs /rorootfs || { echo "Problem mounting Squashfs. Dropping to DEBUG shell."; DEBUG=1; }
fi
if [ $DEBUG -ge 1 ]; then
@@ -123,13 +124,14 @@ else
fi
echo "Building aufs..."
+mv /mnt/modprobing /dev/shm/uniontmp
#mount -t overlayfs -o lowerdir=/rorootfs,upperdir=/dev/shm/uniontmp overlayfs /mnt
mount -n -t aufs -o br:/dev/shm/uniontmp:/rorootfs=ro none /mnt
mkdir -p /mnt/uniontmp /mnt/tmp
mount -n --move /dev/shm/uniontmp /mnt/uniontmp
# create udev rule for nic we booted from
-[ -e "/mnt/etc/udev/rules.d/70-net-boot-nic-name.rules" ] && echo 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="'$macaddr'", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"' > "/mnt/etc/udev/rules.d/70-net-boot-nic-name.rules"
+echo 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="'$macaddr'", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"' > "/mnt/etc/udev/rules.d/70-net-boot-nic-name.rules"
for mnt in proc sys run ; do
umount -n $mnt
diff --git a/remote/rootfs/rootfs-stage31/rootfs-stage31.build b/remote/rootfs/rootfs-stage31/rootfs-stage31.build
index 19a5838a..9e4d7663 100644
--- a/remote/rootfs/rootfs-stage31/rootfs-stage31.build
+++ b/remote/rootfs/rootfs-stage31/rootfs-stage31.build
@@ -24,9 +24,9 @@ post_copy() {
copy_firmware
copy_kernel
- # copy busybox that has been under /openslx back to /
- cp -r "${TARGET_BUILD_DIR}"/openslx/* "${TARGET_BUILD_DIR}"
- rm -rf "${TARGET_BUILD_DIR}/openslx"
+ # copy busybox that has been under /opt/openslx back to /
+ cp -r "${TARGET_BUILD_DIR}"/opt/openslx/* "${TARGET_BUILD_DIR}"
+ rm -rf "${TARGET_BUILD_DIR}/opt/openslx"
}
#
diff --git a/remote/rootfs/rootfs-stage31/rootfs-stage31.conf b/remote/rootfs/rootfs-stage31/rootfs-stage31.conf
index b39895e2..521b45ed 100644
--- a/remote/rootfs/rootfs-stage31/rootfs-stage31.conf
+++ b/remote/rootfs/rootfs-stage31/rootfs-stage31.conf
@@ -4,6 +4,7 @@ REQUIRED_KERNEL_MODULES=" kernel/drivers/video/sis/sisfb.ko
kernel/drivers/video/via/viafb.ko
kernel/drivers/acpi/video.ko
kernel/drivers/ssb/ssb.ko
+ kernel/drivers/acpi/button.ko
kernel/drivers/gpu/drm/drm*.ko
kernel/drivers/gpu/drm/*/*.ko
kernel/drivers/i2c/algos/i2c-algo-bit.ko
diff --git a/remote/rootfs/rootfs-stage32/data/etc/modprobe.d/blacklist b/remote/rootfs/rootfs-stage32/data/etc/modprobe.d/blacklist
new file mode 100644
index 00000000..cedabdcb
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/etc/modprobe.d/blacklist
@@ -0,0 +1,3 @@
+# evbug byebye
+blacklist evbug
+blacklist pcspkr
diff --git a/remote/rootfs/rootfs-stage32/data/etc/udhcpc.openslx.script b/remote/rootfs/rootfs-stage32/data/etc/openslx/udhcpc.openslx.script
index b4cd0ee5..199495aa 100755
--- a/remote/rootfs/rootfs-stage32/data/etc/udhcpc.openslx.script
+++ b/remote/rootfs/rootfs-stage32/data/etc/openslx/udhcpc.openslx.script
@@ -20,9 +20,7 @@
RESOLV_CONF="/etc/resolv.conf"
IP_CONF="/tmp/udhcpc_ip_config"
-export PATH=$PATH:/openslx/sbin:/openslx/bin
-
-set >> /root/udhcpc_args
+export PATH=$PATH:/opt/openslx/sbin:/opt/openslx/bin
case $1 in
bound|renew)
@@ -45,6 +43,7 @@ case $1 in
"
else
R="domain lp.ruf.uni-freiburg.de
+search lp.ruf.uni-freiburg.de
"
fi
count=1;
@@ -62,8 +61,10 @@ case $1 in
fi
# TODO i.e. event trigger
- [ "x$(grep -ci debug /proc/cmdline)" == "x0" ] && systemctl start nfs-mount.service
-
+ [ "x$(grep -ci mount /proc/cmdline)" != "x0" ] && systemctl start nfs-mount.service
+ # Always mount virtlib directory
+ systemctl start var-lib-virt.mount
+
;;
deconfig)
diff --git a/remote/rootfs/rootfs-stage32/data/etc/profile b/remote/rootfs/rootfs-stage32/data/etc/profile
index ff29e9c5..a9b85a9c 100644
--- a/remote/rootfs/rootfs-stage32/data/etc/profile
+++ b/remote/rootfs/rootfs-stage32/data/etc/profile
@@ -5,10 +5,10 @@ export PATH=\
/sbin:\
/usr/bin:\
/usr/sbin:\
-/openslx/bin:\
-/openslx/sbin:\
-/openslx/usr/bin:\
-/openslx/usr/sbin
+/opt/openslx/bin:\
+/opt/openslx/sbin:\
+/opt/openslx/usr/bin:\
+/opt/openslx/usr/sbin
# If running interactively, then:
if [ "$PS1" ]; then
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/dhcp++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/dhcp++
new file mode 100755
index 00000000..256c6f49
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/dhcp++
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+export PATH=$PATH:/opt/openslx/bin:/opt/openslx/sbin:/opt/openslx/usr/bin:/opt/openslx/usr/sbin
+
+NET_IF=$1
+NET_IP=$(ip addr show dev ${NET_IF} | grep "inet " | awk -F " " '{print $2}' | awk -F "/" '{print $1}')
+
+UDHCPC_OPTS=""
+[ ! -z "$NET_IP" ] && UDHCPC_OPTS=" -r $NET_IP "
+/opt/openslx/sbin/udhcpc $UDHCPC_OPTS -O domain -O nissrv -O nisdomain -O wpad -t 8 -s /etc/udhcpc.openslx.script -i $NET_IF
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/mountexport b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/mountexport
new file mode 100755
index 00000000..64d5f485
--- /dev/null
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/bin/mountexport
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+export PATH=$PATH:/opt/openslx/usr/sbin:/opt/openslx/usr/bin:/opt/openslx/sbin:/opt/openslx/bin
+
+if grep "Ubuntu 13.04" "/etc/issue" >/dev/null; then
+ EXPORT="132.230.8.113:/srv/ubuntu1304"
+elif grep "SUSE" "/etc/issue" >/dev/null; then
+ EXPORT="132.230.8.113:/srv/suse"
+else
+ echo "Could not determine System"
+ exit 1
+fi
+
+echo "Mounting ${EXPORT} to /opt/openslx/mnt"
+mount -t nfs -o ro,async,nolock,vers=3 "$EXPORT" /opt/openslx/mnt || { echo "Fail." && exit 1; }
+echo "Appending /opt/openslx/mnt to /"
+mount -o remount,append:/opt/openslx/mnt=ro / || { echo "Fail." && exit 1; }
diff --git a/remote/rootfs/rootfs-stage32/data/usr/sbin/mountexport b/remote/rootfs/rootfs-stage32/data/usr/sbin/mountexport
deleted file mode 100755
index 61176364..00000000
--- a/remote/rootfs/rootfs-stage32/data/usr/sbin/mountexport
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-export PATH=$PATH:/openslx/usr/sbin:/openslx/usr/bin:/openslx/sbin:/openslx/bin
-
-if grep "Ubuntu" "/etc/issue" >/dev/null; then
- EXPORT="132.230.8.113:/srv/ubuntu1304"
-elif grep "SUSE" "/etc/issue" >/dev/null; then
- EXPORT="132.230.8.113:/srv/suse"
-else
- echo "Could not determine System"
- exit 1
-fi
-
-echo "Mounting ${EXPORT} to /openslx/mnt"
-mount -t nfs -o ro,async,nolock,vers=3 "$EXPORT" /openslx/mnt || { echo "Fail." && exit 1; }
-echo "Appending /openslx/mnt to /"
-mount -o remount,append:/openslx/mnt=ro / || { echo "Fail." && exit 1; }
diff --git a/remote/rootfs/rootfs-stage32/rootfs-stage32.build b/remote/rootfs/rootfs-stage32/rootfs-stage32.build
index 164a3464..7d639450 100644
--- a/remote/rootfs/rootfs-stage32/rootfs-stage32.build
+++ b/remote/rootfs/rootfs-stage32/rootfs-stage32.build
@@ -54,16 +54,23 @@ build() {
}
post_copy() {
+ # symlink for more
+ [ ! -e "$TARGET_BUILD_DIR/bin/more" ] && ln -s /usr/bin/more "$TARGET_BUILD_DIR/bin/more"
+ # same hack for mount
+ [ ! -e "$TARGET_BUILD_DIR/bin/mount" ] && ln -s /usr/bin/mount "$TARGET_BUILD_DIR/bin/mount"
# make basic directory structure
- mkdir -p "${TARGET_BUILD_DIR}"/{bin,dev,proc,lib,etc,mnt,sys,var/run,var/lock,var/log,run/lock,run/shm,openslx/mnt}
+ mkdir -p "${TARGET_BUILD_DIR}"/{bin,dev,proc,lib,etc,mnt,sys,var/run,var/lock,var/log,run/lock,run/shm,opt/openslx/mnt}
+
+ # make openslx log directory
+ mkdir -p "${TARGET_BUILD_DIR}"/var/log/openslx
# copy devices from running system
cp -a /dev/{console,kmsg,mem,null,shm,tty,tty0,tty1,tty9,fb0,urandom,zero} \
"${TARGET_BUILD_DIR}"/dev || perror "Copying devices from running system failed."
- # set /etc/environment to include /openslx/bin and /openslx/sbin
- echo "PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/openslx/sbin:/openslx/bin\"" \
+ # set /etc/environment to include /opt/openslx/bin and /opt/openslx/sbin
+ echo "PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/sbin:/opt/openslx/bin\"" \
> "${TARGET_BUILD_DIR}/etc/environment"
# copy static files
diff --git a/remote/rootfs/rootfs-stage32/rootfs-stage32.conf b/remote/rootfs/rootfs-stage32/rootfs-stage32.conf
index 90faa567..a34634ab 100644
--- a/remote/rootfs/rootfs-stage32/rootfs-stage32.conf
+++ b/remote/rootfs/rootfs-stage32/rootfs-stage32.conf
@@ -25,7 +25,9 @@ REQUIRED_BINARIES=" bash
ssh
tput
xterm
- ckbcomp"
+ ckbcomp
+ xvidtune
+ bc"
REQUIRED_LIBRARIES=" libcap
libcidn
libcom_err
@@ -55,7 +57,8 @@ REQUIRED_FILES=" /etc/environment
/etc/networks
/etc/netconfig
/etc/modprobe.d/blacklist.conf
- /etc/fonts/fonts.conf"
+ /etc/fonts/fonts.conf
+ /etc/X11/app-defaults/Xvidtune"
REQUIRED_KERNEL_MODULES=" kernel/drivers/cpufreq
kernel/drivers/memstick
kernel/drivers/mfd
@@ -115,7 +118,8 @@ REQUIRED_KERNEL_MODULES=" kernel/drivers/cpufreq
kernel/fs
kernel/crypto
kernel/net
- kernel/sound"
+ kernel/sound
+ kernel/fs/autofs4/autofs4"
REQUIRED_FIRMWARE=" 3com
acenic
adaptec
diff --git a/remote/rootfs/rootfs-stage32/rootfs-stage32.conf.zypper b/remote/rootfs/rootfs-stage32/rootfs-stage32.conf.zypper
index 3fdfe499..8543a284 100644
--- a/remote/rootfs/rootfs-stage32/rootfs-stage32.conf.zypper
+++ b/remote/rootfs/rootfs-stage32/rootfs-stage32.conf.zypper
@@ -51,7 +51,6 @@ REQUIRED_FILES=" /etc/environment
/etc/inputrc
/etc/localtime
/etc/login.defs
- /etc/nsswitch.conf
/etc/securetty
/etc/protocols
/etc/services
diff --git a/remote/setup_target b/remote/setup_target
index 924450fd..10d6b575 100755
--- a/remote/setup_target
+++ b/remote/setup_target
@@ -213,11 +213,11 @@ process_module() {
install_dependencies
pinfo "## Fetching source"
[ -e "${MODULE_DIR}/.fetched_source" ] || { fetch_source && touch "${MODULE_DIR}/.fetched_source"; }
- if [ -e "${MODULE_DIR}/.built" -a -d "${MODULE_DIR}/build" ]; then
+ if [ -e "${MODULE_DIR}/.built" -a -d "${MODULE_BUILD_DIR}" ]; then
pinfo "# built-flag is set, skipping build..."
else
pinfo "## Building"
- mkdir -p "${MODULE_DIR}/build" || perror "Could not create build dir"
+ mkdir -p "${MODULE_BUILD_DIR}" || perror "Could not create build dir"
build # calls perror if something fails, no need to do that here
touch "${MODULE_DIR}/.built" || pwarning "Error setting built-flag"
fi
@@ -275,7 +275,7 @@ clean_modules() {
&& rm -rf "${TARGET_BUILD_DIR}"/* \
|| perror "Error deleting $TARGET_BUILD_DIR"
fi
- set -- $(ls ${TARGET_DIR})
+ set -- $(ls ${TARGET_DIR} | grep -v kernel)
fi
cd ${TARGET_DIR}
while (( "$#" )); do
diff --git a/remote/targets/stage32-opensuse/vmplayer b/remote/targets/stage32-opensuse/vmplayer
new file mode 120000
index 00000000..9303aa6a
--- /dev/null
+++ b/remote/targets/stage32-opensuse/vmplayer
@@ -0,0 +1 @@
+../../modules/vmplayer \ No newline at end of file
diff --git a/remote/targets/stage32/vmchooser b/remote/targets/stage32/vmchooser
new file mode 120000
index 00000000..d918fbdc
--- /dev/null
+++ b/remote/targets/stage32/vmchooser
@@ -0,0 +1 @@
+../../modules/vmchooser \ No newline at end of file
diff --git a/remote/targets/stage32/vmplayer b/remote/targets/stage32/vmplayer
new file mode 120000
index 00000000..9303aa6a
--- /dev/null
+++ b/remote/targets/stage32/vmplayer
@@ -0,0 +1 @@
+../../modules/vmplayer \ No newline at end of file
diff --git a/server/export_target b/server/export_target
index 80ffd7ae..f177bbfd 100755
--- a/server/export_target
+++ b/server/export_target
@@ -88,7 +88,7 @@ generate_addons() {
export_target() {
initial_checks
-#copy_kernel
+copy_kernel
TARGET=$1
[ -d ${SERVER_BUILD_DIR}/${TARGET} ] || perror "Given target directory does not exist: ${SERVER_BUILD_DIR}/${TARGET}"
diff --git a/useful/ultrastrace.php b/useful/ultrastrace.php
index 8c826ee5..0caaf64a 100755
--- a/useful/ultrastrace.php
+++ b/useful/ultrastrace.php
@@ -5,6 +5,7 @@ if ($argc < 2) die("$argv[0] <tracefile>\n");
function parseTime($time)
{
+ if (isset($time['ts'])) return $time['ts'];
return $time['h'] * 3600 + $time['m'] * 60 + $time['s'];
}
@@ -30,7 +31,7 @@ foreach ($argv as $fname) {
$lineNo++;
$line = fgets($fh);
// open("/lib/x86_64-linux-gnu/tls/x86_64/libkdeui.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
- if (preg_match('#^(\d+\s+)?(?<h>\d+):(?<m>\d+):(?<s>\d+(\.\d+)?)\s#', $line, $out) >= 1) {
+ if (preg_match('#^(\d+\s+)?((?<h>\d+):(?<m>\d+):(?<s>\d+(\.\d+)?)|(?<ts>\d+\.\d+))\s#', $line, $out) >= 1) {
$time = parseTime($out);
if (isset($lastLine)) {
if ($time < $lastTime) $lastTime -= 86400;
@@ -41,7 +42,7 @@ foreach ($argv as $fname) {
$lastLine = $line;
$lastTime = $time;
}
- if (preg_match('#^(\d+\s+)?(\d+:\d+:\d+\.?\d*\s+)?(?<action>access|stat|lstat|stat64|lstat64|readlink|open|openat|execve)\("(?<lib>[^"]*[^"]*[^/])".*\)\s+=\s+(?<ret>\S+)(\s+(?<err>\S+)\s+|$)#', $line, $out) < 1) continue;
+ if (preg_match('#^(\d+\s+)?(\d+:\d+:\d+\.?\d*\s+|\d+\.\d+\s+)?(?<action>access|stat|lstat|stat64|lstat64|readlink|open|openat|execve)\("(?<lib>[^"]*[^"]*[^/])".*\)\s+=\s+(?<ret>\S+)(\s+(?<err>\S+)\s+|$)#', $line, $out) < 1) continue;
//echo "Match: {$out['lib']} -> {$out['ret']} ({$out['err']})\n";
$file = basename($out['lib']);
$file = preg_replace('/\.so(\.\d+)*$/', '', $file);