From c3c77545b5d70a2dc8d104b8b18ce385b25ff6f1 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Fri, 3 May 2013 13:45:53 +0200 Subject: vmchooser in opt --- remote/modules/vmchooser/vmchooser.build | 16 +++++++++++----- remote/modules/vmchooser/vmchooser.conf | 2 +- .../modules/xorg/data/usr/share/xsessions/gnome.desktop | 9 --------- 3 files changed, 12 insertions(+), 15 deletions(-) delete mode 100644 remote/modules/xorg/data/usr/share/xsessions/gnome.desktop 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..1e41bc6e 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/vmchooser/bin" REQUIRED_BINARIES="vmchooser" 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 - -- cgit v1.2.3-55-g7522 From e18fddc3f4748aab23c594f5503e4ca99ce4b118 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Fri, 3 May 2013 14:16:15 +0200 Subject: add xterm test session --- .../modules/vmchooser/data/usr/share/xsessions/xterm.desktop | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100755 remote/modules/vmchooser/data/usr/share/xsessions/xterm.desktop 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..57e2c190 --- /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=/opt/openslx/vmchooser/bin/vmchooser -c /etc/openslx/vmchooser/vmchooser.conf +TryExec=/opt/openslx/vmchooser/bin/vmchooser -c /etc/openslx/vmchooser/vmchooser.conf +Icon= +Type=Application -- cgit v1.2.3-55-g7522 From 3df42c7b23aefa8086784d0a18deb5f82bbe11a1 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Fri, 3 May 2013 14:17:15 +0200 Subject: move /openslx to /opt/openslx --- remote/modules/busybox/busybox.conf | 2 +- .../systemd/data/etc/systemd/system/debug-shell.service | 2 +- .../systemd/data/etc/systemd/system/load-german-keymap.service | 2 +- .../systemd/data/etc/systemd/system/network-interface@.service | 2 +- remote/modules/systemd/data/etc/systemd/system/udhcpc@.service | 2 +- remote/rootfs/rootfs-stage32/data/etc/profile | 8 ++++---- remote/rootfs/rootfs-stage32/data/etc/udhcpc.openslx.script | 2 +- remote/rootfs/rootfs-stage32/data/usr/sbin/mountexport | 10 +++++----- remote/rootfs/rootfs-stage32/rootfs-stage32.build | 2 +- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/remote/modules/busybox/busybox.conf b/remote/modules/busybox/busybox.conf index f7c866f2..04f31b23 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/busybox" REQUIRED_BINARIES=" busybox" REQUIRED_DIRECTORIES=" ${PREFIX}/bin ${PREFIX}/sbin 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/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/udhcpc@.service b/remote/modules/systemd/data/etc/systemd/system/udhcpc@.service index a945e743..af4c70bb 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/sbin/udhcpc -O domain -O nissrv -O nisdomain -O wpad -t 8 -s /etc/udhcpc.openslx.script -i %I [Install] WantedBy=multi-user.target 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/etc/udhcpc.openslx.script b/remote/rootfs/rootfs-stage32/data/etc/udhcpc.openslx.script index b4cd0ee5..773a7370 100755 --- a/remote/rootfs/rootfs-stage32/data/etc/udhcpc.openslx.script +++ b/remote/rootfs/rootfs-stage32/data/etc/udhcpc.openslx.script @@ -20,7 +20,7 @@ RESOLV_CONF="/etc/resolv.conf" IP_CONF="/tmp/udhcpc_ip_config" -export PATH=$PATH:/openslx/sbin:/openslx/bin +export PATH=$PATH:/opt/openslx/sbin:/opt/openslx/bin set >> /root/udhcpc_args diff --git a/remote/rootfs/rootfs-stage32/data/usr/sbin/mountexport b/remote/rootfs/rootfs-stage32/data/usr/sbin/mountexport index 61176364..cc08728e 100755 --- a/remote/rootfs/rootfs-stage32/data/usr/sbin/mountexport +++ b/remote/rootfs/rootfs-stage32/data/usr/sbin/mountexport @@ -1,6 +1,6 @@ #!/bin/bash -export PATH=$PATH:/openslx/usr/sbin:/openslx/usr/bin:/openslx/sbin:/openslx/bin +export PATH=$PATH:/opt/openslx/usr/sbin:/opt/openslx/usr/bin:/opt/openslx/sbin:/opt/openslx/bin if grep "Ubuntu" "/etc/issue" >/dev/null; then EXPORT="132.230.8.113:/srv/ubuntu1304" @@ -11,7 +11,7 @@ else 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; } +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/rootfs-stage32.build b/remote/rootfs/rootfs-stage32/rootfs-stage32.build index 164a3464..fe0a32ad 100644 --- a/remote/rootfs/rootfs-stage32/rootfs-stage32.build +++ b/remote/rootfs/rootfs-stage32/rootfs-stage32.build @@ -63,7 +63,7 @@ post_copy() { "${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\"" \ + 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 -- cgit v1.2.3-55-g7522 From 264643f7f739efbd7681569b597f09c5a613a6f2 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Fri, 3 May 2013 14:17:54 +0200 Subject: unlink load-german-keymap.service --- .../etc/systemd/system/getty.target.wants/load-german-keymap.service | 1 - 1 file changed, 1 deletion(-) delete mode 120000 remote/modules/systemd/data/etc/systemd/system/getty.target.wants/load-german-keymap.service 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 -- cgit v1.2.3-55-g7522 From 99df9f1542a3cdae2d784d67a85c1fbcddc98607 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Fri, 3 May 2013 14:30:51 +0200 Subject: Overwrite Xsession file to start sessions --- remote/modules/kdm/data/etc/kde4/kdm/kdmrc | 8 +- remote/modules/xorg/data/etc/X11/Xsession | 116 +---------------------------- 2 files changed, 8 insertions(+), 116 deletions(-) mode change 100755 => 100644 remote/modules/xorg/data/etc/X11/Xsession 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/xorg/data/etc/X11/Xsession b/remote/modules/xorg/data/etc/X11/Xsession old mode 100755 new mode 100644 index e239d586..529208cd --- a/remote/modules/xorg/data/etc/X11/Xsession +++ b/remote/modules/xorg/data/etc/X11/Xsession @@ -1,114 +1,6 @@ -#!/bin/sh -# -# /etc/X11/Xsession -# -# global Xsession file -- used by display managers and xinit (startx) +#!/bin/bash -# $Id: Xsession 967 2005-12-27 07:20:55Z dnusinow $ +#Workaround to start Xsession. The original Xsession script includes error handling functionality and sources other scrips from the Xsession.d/ directory. -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" \ - "." -} - -# 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: +#start selected session +exec $1 -- cgit v1.2.3-55-g7522 From 83265a769ff6f714e6819334e876384564748389 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Fri, 3 May 2013 14:45:42 +0200 Subject: move /openslx to /opt/openslx --- remote/rootfs/rootfs-stage31/rootfs-stage31.build | 6 +++--- remote/rootfs/rootfs-stage32/rootfs-stage32.build | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) 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-stage32/rootfs-stage32.build b/remote/rootfs/rootfs-stage32/rootfs-stage32.build index fe0a32ad..04b6c5b4 100644 --- a/remote/rootfs/rootfs-stage32/rootfs-stage32.build +++ b/remote/rootfs/rootfs-stage32/rootfs-stage32.build @@ -56,13 +56,13 @@ build() { post_copy() { # 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} # 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 + # 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" -- cgit v1.2.3-55-g7522 From 2163d6da50b091e18a7fc3a370d4c358bb707c5e Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Fri, 3 May 2013 18:22:30 +0200 Subject: general rsyslog conf file --- remote/modules/rsyslogd/data/etc/rsyslog.conf | 208 ++++++++------------------ 1 file changed, 62 insertions(+), 146 deletions(-) diff --git a/remote/modules/rsyslogd/data/etc/rsyslog.conf b/remote/modules/rsyslogd/data/etc/rsyslog.conf index e2548c99..3099f250 100644 --- a/remote/modules/rsyslogd/data/etc/rsyslog.conf +++ b/remote/modules/rsyslogd/data/etc/rsyslog.conf @@ -1,169 +1,85 @@ -## -## === 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 +& |/dev/console -# 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/console -- cgit v1.2.3-55-g7522 From b9faedd776dbfae40c2cbc0f05b49815149f7b88 Mon Sep 17 00:00:00 2001 From: Michael Neves Date: Fri, 3 May 2013 18:48:22 +0200 Subject: vmchooser --- remote/modules/busybox/busybox.conf | 2 +- .../vmchooser/data/opt/openslx/bin/run-virt.sh | 440 +++++++++++++++++++++ .../vmchooser/data/opt/openslx/bin/vmplayer | 8 + .../modules/vmchooser/data/opt/openslx/bin/vmware | 8 + .../vmchooser/data/opt/openslx/bin/xmlfilter.sh | 50 +++ .../data/usr/share/xsessions/default.desktop | 4 +- .../data/usr/share/xsessions/xterm.desktop | 4 +- remote/modules/vmchooser/vmchooser.conf | 2 +- remote/targets/stage32/vmchooser | 1 + 9 files changed, 513 insertions(+), 6 deletions(-) create mode 100755 remote/modules/vmchooser/data/opt/openslx/bin/run-virt.sh create mode 100755 remote/modules/vmchooser/data/opt/openslx/bin/vmplayer create mode 100755 remote/modules/vmchooser/data/opt/openslx/bin/vmware create mode 100755 remote/modules/vmchooser/data/opt/openslx/bin/xmlfilter.sh create mode 120000 remote/targets/stage32/vmchooser diff --git a/remote/modules/busybox/busybox.conf b/remote/modules/busybox/busybox.conf index 04f31b23..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="/opt/openslx/busybox" +PREFIX="/opt/openslx" REQUIRED_BINARIES=" busybox" REQUIRED_DIRECTORIES=" ${PREFIX}/bin ${PREFIX}/sbin diff --git a/remote/modules/vmchooser/data/opt/openslx/bin/run-virt.sh b/remote/modules/vmchooser/data/opt/openslx/bin/run-virt.sh new file mode 100755 index 00000000..b3863a2e --- /dev/null +++ b/remote/modules/vmchooser/data/opt/openslx/bin/run-virt.sh @@ -0,0 +1,440 @@ +#!/bin/bash +# ----------------------------------------------------------------------------- +# Copyright (c) 2007..2010 - RZ Uni FR +# Copyright (c) 2007..2011 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# run-virt.sh +# - This is the generic wrapper for the several virtualization solutions. +# The idea is to setup a set of variables used by at least two different +# tools and then include the specific plugin which configures the speci- +# fied virtualization tool. +################################################################################ + +. /etc/opt/openslx/openslx.conf + +################################################################################ +### Define default dirs / get configs +################################################################################ + +PLUGINCONFROOT=${OPENSLX_DEFAULT_CONFDIR}/plugins +PLUGINCONFDIR=${PLUGINCONFROOT}/vmchooser +# include general configuration from vmchooser +[ -f ${PLUGINCONFROOT}/vmchooser/vmchooser.conf ] && \ + . ${PLUGINCONFROOT}/vmchooser/vmchooser.conf +# load general virtualization information +[ -f ${PLUGINCONFROOT}/virtualization/virtualization.conf ] && \ + . ${PLUGINCONFROOT}/virtualization/virtualization.conf + +################################################################################ +### Functions used throughout the script +################################################################################ + +# function to write to stdout and logfile +LOGFILE=${OPENSLX_DEFAULT_LOGDIR}/run-virt.${USER}.$$.log +writelog () { + # write to stdout + echo -e "$1" + # log into file + echo -e "$1" >> ${LOGFILE} +} + +# remove config dirs when exit +cleanexit () { + if echo "${RMDIRS}" 2>/dev/null | grep -q ${xmlvirt}; then + writelog "${xmlvirt} exited. Cleanning up... \c" + rm -rf ${RMDIRS} >/dev/null 2>&1 + writelog "done" + fi + + exit "$1" +} + +# check for important files used +filecheck () +{ + filecheck=$(LANG=us ls -lh ${diskfile} 2>&1) + writelog "Filecheck:\n${filecheck}\n" + noimage=$(echo ${filecheck} | grep -i "no such file or directory" | wc -l) + rightsfile=${diskfile} + + # check if link + if [ -L "${diskfile}" ]; then + # take link target + rightsfile=$(ls -lh ${diskfile} 2>&1 | awk -F '-> *' '{print $2}') + rightsfile=${vmdir}/${rightsfile} + filecheck=$(LANG=us ls -lh ${rightsfile} 2>&1) + fi + + # does file exist + if [ "${noimage}" -ge "1" ]; then + writelog "Virtual Machine Image Problem:\c " + writelog "\tThe image you've specified doesn't exist." + writelog "Filecheck says:\c " + writelog "\t\t${diskfile}:\n\t\t\tNo such file or directory" + writelog "Hint:\c " + writelog "\t\t\tCompare spelling of the image with your options.\n" + exit 1 + fi + + # readable by calling user + if ! [ -r "${diskfile}" >/dev/null 2>&1 \ + -o -r "${diskfile}" >/dev/null 2>&1 ]; then + writelog "Vmware Image Problem:\c " + writelog "\tThe image you've specified has wrong rights." + writelog "Filecheck says:\t\t$(echo ${filecheck} \ + | awk '{print $1" "$3" "$4}') ${rightsfile}" + writelog "Hint:\t\t\tChange rights with: chmod a+r ${rightsfile}\n" + exit 1 + fi + + # writable (for persistent-mode)? + if ! [ -w "${diskfile}" >/dev/null 2>&1 \ + -o -w "${diskfile}" >/dev/null 2>&1 ] \ + && [ "${np}" = "independent-persistent" ]; then + writelog "Vmware Image Problem:\c " + writelog "\tThe image you have specified has wrong rights." + writelog "Filecheck says:\t\t$(echo ${filecheck} \ + | awk '{print $1" "$3" "$4}') ${rightsfile}" + writelog "Hint:\t\t\tUse nonpersistent-mode or change rights to rw\n" + exit 1 + fi +} + +################################################################################ +### Get XML file and dir +################################################################################ + +# absolute or relative path? +xmlfile=$1 +if ls ${xmlfile} 2>/dev/null | grep '/' >/dev/null 2>&1; then + xmlpath=$(dirname ${xmlfile}) + xmlfile=$(basename ${xmlfile}) +else + xmlpath=${vmchooser_xmlpath} +fi +# full path +xmlfile="${xmlpath}/${xmlfile%.xml}.xml" + +################################################################################ +### Sanity checks +################################################################################ + +# test if the xml file is valid +if ! [ -r "${xmlfile}" ]; then + writelog "${xmlfile} not a readable XML file!" + exit 1 +fi + +# test if XML file +if ! grep '/dev/null 2>&1; then + writelog \ + "Submitted configuration file ${xmlfile} seems to have wrong XML format" + exit 1 +fi + +# check for running in graphical environment otherwise no much use here +[ -z "$DISPLAY" ] && echo -e "\n\tStart only within a graphical desktop!\n" \ + && exit 1 + +################################################################################ +### Logo for console +################################################################################ + +cat </dev/null | grep -q '^/' >/dev/null 2>&1; then + imgpath=$(dirname ${imgname}) + imgname=$(basename ${imgname}) + vmpath=${imgpath}/${imgname} +# If old vmchooser binary stuff +# We do not need folder name as it is already included by vmchooser +elif echo ${xmlfile} 2>/dev/null | grep -q '^/tmp/' >/dev/null 2>&1; then + vmpath=$imgname + imgname=$(basename ${imgname}) +# Else use same path as xml +else + imgpath=${xmlpath} + vmpath=${imgpath}/${imgname} +fi + +# Check if virtual machine container file exists +if ! [ -e "${vmpath}" ]; then + writelog "Virtual machine image ${vmpath} not found!" + exit 1 +fi + +# Name of the virt machine, sed because of Windows formatting +vm_name=$(grep -o 'short_description param=.*"' ${xmlfile} \ + | sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}') +# If ${vm_name} not defined use ${xmlfile} +vm_name=${vm_name:-${xmlfile%.xml}} + +# Define vm_shortname since vm_name can be very long +vm_shortname=$(basename ${xmlfile%.xml} | sed -e "s, ,-,g") + +# vm_name = displayname, define for old scripts +displayname=${vm_name} + +# image is for the following virtual machine +xmlvirt=$(grep -o 'virtualmachine param=.*"' ${xmlfile} \ + | sed -e "s/&.*;/; /g" | awk -F '"' '{print $2}') + +# choose the proper virtualization/emulator plugin +[ "x${xmlvirt}" != "x" -a "x${xmlvirt}" != "xqemukvm" -a \ + "x${xmlvirt}" != "xvirtualbox" -a "x${xmlvirt}" != "xvmware" ] && \ + xmlvirt="emufe" + +# make a guess from the filename extension if ${xmlvirt} is empty +# (not set within the XML file) +# TODO: implement possibility to submit own configuration files +if [ -z "${xmlvirt}" ] && [ -n "${additional_config}" ]; then + writelog "No virtual machine parameter defined in ${xmlfile}" + writelog "Trying to guess VM...\c" + case "$(cat ${additional_config} | tr \"[A-Z]\" \"[a-z]\")" in + *config.version*|*virtualhw.version*|*independent-nonpersistent*|*vmdk*) + xmlvirt="vmware" + ;; + *innotek*|*virtualbox*) + xmlvirt="virtualbox" + ;; + *qemu*|*kvm*) + xmlvirt="qemukvm" + ;; + *) + xmlvirt="none" + ;; + esac +elif [ -z "${xmlvirt}" ]; then + case "$(echo ${imgname##*.} | tr \"[A-Z]\" \"[a-z]\")" in + vmdk) + xmlvirt="vmware" + ;; + vbox|vdi) + xmlvirt="virtualbox" + ;; + qcow*) + xmlvirt="qemukvm" + ;; + *) + xmlvirt="emufe" + ;; + esac + writelog "result:\t${xmlvirt}" +fi + +# Definition of the client system +vmostype=$(grep -io '/dev/null| grep -ve "^$") +xres=$(echo "${hostres}" | awk '{print $3}') +yres=$(echo "${hostres}" | awk '{print $7}') + +# Resolution defined via xml parameter: fullscreen, full/X*Y/depth; windowed, +# win/X*Y/depth +userres=$(grep -io '/dev/null | \ + awk -F '=' {'print $2'} | tr "[A-Z]" "[a-z]") + +# Add rw share +sharepath="${HOME}" +sharename="home" + +# Set hostname: using original hostname and adding string +hostname="virt-$(hostname)" + +writelog "\tVM Hostname:\t\t$hostname" + +################################################################################ +### Setup the rest of the environment and run the configured vm +################################################################################ + +# Adjust sound volume +writelog "Unmuting sound...\c " +amixer -q sset Master 80% unmute 2>/dev/null +amixer -q sset PCM 80% unmute 2>/dev/null +amixer -q sset CD 80% unmute 2>/dev/null +amixer -q sset Headphone 80% unmute 2>/dev/null +amixer -q sset Front 80% unmute 2>/dev/null # in SUSE 11.0 it's headphone +amixer -q sset Speaker 80% unmute 2>/dev/null # annoying built-in speaker +writelog "finished\n" + +# Copy guest configuration (with added information) config.xml to be accessed +# via virtual floppy +# fixme -> to be changed (vmchooser adapts the file content!?) +#TODO: wozu echo? +#echo "Please fix the config.xml generation" +cp ${xmlfile} ${PLUGINCONFDIR}/fd-loop/config.xml + +# Get all virtual machine specific stuff from the respective include file +if [ -e ${PLUGINCONFROOT}/${xmlvirt}/run-virt.include ] ; then + self=${xmlvirt} + . ${PLUGINCONFROOT}/${xmlvirt}/run-virt.include + # start a windowmanager for easier handling + # (expect problems /w windows opening in background /w vmware without wm) + for dm in xfwm4 metacity openbox blackbox kwin fvwm2 ; do + if which $dm >/dev/null 2>&1 ; then + if [ "$dm" = "fvwm2" ] ; then + echo "EdgeScroll 0 0" > ${redodir}/fvwm + fvwm2 -f ${redodir}/fvwm >/dev/null 2>&1 & + else + $dm >/dev/null 2>&1 & + fi + break + fi + done + # Start poolvideoswitch if we find the autostarter file + if [ -e /etc/xdg/autostart/pvsgui.desktop ]; then + /usr/local/bin/pvsgui -p 2 -b >/dev/null 2>&1 & + fi + eval ${VIRTCMD} ${VIRTCMDOPTS} + writelog "Bye." + + # Postrun for commands after virtualization finishes + if [ -n "${POSTRUN}" ]; then + eval ${POSTRUN} >/dev/null 2>&1 + fi + + cleanexit 0 +else + writelog "Failed because of missing ${xmlvirt} plugin." + cleanexit 1 +fi + +# Postrun for commands after virtualization finishes +if [ -n "${POSTRUN}" ]; then + eval ${POSTRUN} >/dev/null 2>&1 +fi + +cleanexit 0 +exit 0 diff --git a/remote/modules/vmchooser/data/opt/openslx/bin/vmplayer b/remote/modules/vmchooser/data/opt/openslx/bin/vmplayer new file mode 100755 index 00000000..c9b57a65 --- /dev/null +++ b/remote/modules/vmchooser/data/opt/openslx/bin/vmplayer @@ -0,0 +1,8 @@ +#!/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/bin/vmware b/remote/modules/vmchooser/data/opt/openslx/bin/vmware new file mode 100755 index 00000000..8b568f53 --- /dev/null +++ b/remote/modules/vmchooser/data/opt/openslx/bin/vmware @@ -0,0 +1,8 @@ +#!/bin/sh +# written by OpenSLX-plugin 'vmware' in Stage1 +# radically simplified version of the original script vmware by VMware Inc. +PREFIX=/usr/lib/vmware # depends on the vmware location +exec "$PREFIX"'/lib/wrapper-gtk24.sh' \ + "$PREFIX"'/lib' \ + "$PREFIX"'/bin/vmware' \ + "$PREFIX"'/libconf' "$@" diff --git a/remote/modules/vmchooser/data/opt/openslx/bin/xmlfilter.sh b/remote/modules/vmchooser/data/opt/openslx/bin/xmlfilter.sh new file mode 100755 index 00000000..ded5d114 --- /dev/null +++ b/remote/modules/vmchooser/data/opt/openslx/bin/xmlfilter.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# ----------------------------------------------------------------------------- +# Copyright (c) 2007..2009 - RZ Uni FR +# Copyright (c) 2007..2011 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# xmlfilter.sh +# - This script is invoked by the vmchooser tool. It simply filters xml- +# files (taking the path to these files in $1). You might modify it in any +# way to match your needs, e.g. ask some database instead. You can re- +# implement it in any other programming language too. You simply have to +# return a list of proper xml files to be interpreted by the vmchooser +# binary). Please check for vmchooser.sh too ... +# ----------------------------------------------------------------------------- + +# This script . +# +# currently: +# - filter for slxgrp (which comes from /etc/machine-setup) +# + +# include default directories +. /etc/opt/openslx/openslx.conf + +if [ -f ${OPENSLX_DEFAULT_CONFDIR}/plugins/vmchooser/vmchooser.conf ]; then + . ${OPENSLX_DEFAULT_CONFDIR}/plugins/vmchooser/vmchooser.conf +fi + +for FILE in $(find $1 -iname "*.xml"); do + # filter all xmls which aren't set active + if [ $(grep "