summaryrefslogtreecommitdiffstats
path: root/os-plugins
diff options
context:
space:
mode:
authorSebastian Schmelzer2008-03-13 11:20:44 +0100
committerSebastian Schmelzer2008-03-13 11:20:44 +0100
commita80b581d041872ab0407a3133e2f49af65f0adef (patch)
treedc08bad4daaebc7bd735bbf71aedf62f3466f5c6 /os-plugins
parent* added support for new action 'list-selections' which shows the available (diff)
downloadcore-a80b581d041872ab0407a3133e2f49af65f0adef.tar.gz
core-a80b581d041872ab0407a3133e2f49af65f0adef.tar.xz
core-a80b581d041872ab0407a3133e2f49af65f0adef.zip
* fixed suse problems with autoprobing Xauthority files
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@1629 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'os-plugins')
-rw-r--r--os-plugins/plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm2
-rw-r--r--os-plugins/plugins/x11vnc/XX_x11vnc.sh10
-rwxr-xr-xos-plugins/plugins/x11vnc/files/x11vnc38
3 files changed, 29 insertions, 21 deletions
diff --git a/os-plugins/plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm b/os-plugins/plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm
index 6525ccc7..8accd45d 100644
--- a/os-plugins/plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm
+++ b/os-plugins/plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm
@@ -211,7 +211,7 @@ sub installationPhase
}
if ( $self->{'os-plugin-engine'}->{'vendor-os-name'} =~ m/suse/i ) {
# PLEASE TEST THIS!!!
- my $cmd = "yast --install x11vnc";
+ my $cmd = "zypper -n in x11vnc";
vlog(3, "executing: $cmd");
if (slxsystem($cmd)) {
die _tr(
diff --git a/os-plugins/plugins/x11vnc/XX_x11vnc.sh b/os-plugins/plugins/x11vnc/XX_x11vnc.sh
index 35245aef..2b640885 100644
--- a/os-plugins/plugins/x11vnc/XX_x11vnc.sh
+++ b/os-plugins/plugins/x11vnc/XX_x11vnc.sh
@@ -1,5 +1,8 @@
#! /bin/sh
#
+[ -e /etc/functions ] && . /etc/functions
+[ -e /etc/distro-functions ] && . /etc/distro-functions
+[ -e /etc/sysconfig/config ] && . /etc/sysconfig/config
if [ -e /initramfs/plugin-conf/x11vnc.conf ]; then
. /initramfs/plugin-conf/x11vnc.conf
@@ -83,12 +86,7 @@ if [ -e /initramfs/plugin-conf/x11vnc.conf ]; then
echo "X11VNC_PARAMS=\"$PARAMS\"" >> /mnt/etc/x11vnc/x11vnc.conf
echo "X11VNC_X11=\"$X11VNC_X11\"" >> /mnt/etc/x11vnc/x11vnc.conf
- ln -sf ../init.d/x11vnc /mnt/etc/rc0.d/K20x11vnc
- ln -sf ../init.d/x11vnc /mnt/etc/rc1.d/K20x11vnc
- ln -sf ../init.d/x11vnc /mnt/etc/rc6.d/K20x11vnc
- ln -sf ../init.d/x11vnc /mnt/etc/rc2.d/S20x11vnc
- ln -sf ../init.d/x11vnc /mnt/etc/rc3.d/S20x11vnc
- ln -sf ../init.d/x11vnc /mnt/etc/rc4.d/S20x11vnc
+ rllinker "x11vnc" 30 10
[ $DEBUGLEVEL -gt 0 ] && echo "done with 'x11vnc' os-plugin ...";
fi
diff --git a/os-plugins/plugins/x11vnc/files/x11vnc b/os-plugins/plugins/x11vnc/files/x11vnc
index f51ce83b..81be80de 100755
--- a/os-plugins/plugins/x11vnc/files/x11vnc
+++ b/os-plugins/plugins/x11vnc/files/x11vnc
@@ -10,21 +10,31 @@ fi
# find xauthority file
find_xauth () {
- TIMEOUT=5
- XPID=`pidof X`
- XRUNNING=$?
- while [ "$XRUNNING" -ne "0" -a "$TIMEOUT" -gt "0" ]
- do
- echo -n "."
- sleep 1
- let "TIMEOUT-=1"
- XPID=`pidof X`
- XRUNNING=$?
- done
- if [ "$XRUNNING" -eq "0" ]; then
- XAUTHORITY=`ps ex|grep bin/X|sed -e "s/ /\n/g"|grep "^XAUTHORITY"|sed -e "s/XAUTHORITY=//"`
+ FOUND=0
+ RETRIES=4
+ [ -z "$1" ] && RETRIES="$1"
+
+ [ -e "/var/lib/kdm/" ] &&
+ XAUTHFILE_KDM=`find /var/lib/kdm/ -iname "A\:0-*"`
+ [ -e "/var/lib/xdm/authdir/authfiles/" ] &&
+ XAUTHFILE_XDM=`find /var/lib/xdm/authdir/authfiles/ -iname "A\:0-*"`
+ [ -e "/var/lib/gdm/" ] &&
+ XAUTHFILE_GDM=`find /var/lib/gdm/ -iname *Xauth*`
+
+ [ -f "$XAUTHFILE_KDM" ] && FOUND=1 && XAUTHORITY="$XAUTHFILE_KDM"
+ [ -f "$XAUTHFILE_XDM" ] && FOUND=1 && XAUTHORITY="$XAUTHFILE_XDM"
+ [ -f "$XAUTHFILE_GDM" ] && FOUND=1 && XAUTHORITY="$XAUTHFILE_GDM"
+
+ if [ "$FOUND" -eq "0" ]; then
+ if [ "$RETRIES" -gt "0" ]; then
+ let "RETRIES-=1"
+ find_xauth "$RETRIES"
+ else
+ echo " .. FAILED (can't find way to authenticate myself against X)"
+ exit -1
+ fi
else
- echo " .. FAILED (no running X found)"
+ echo "found ($XAUTHORITY)"
fi
}