From a80b581d041872ab0407a3133e2f49af65f0adef Mon Sep 17 00:00:00 2001 From: Sebastian Schmelzer Date: Thu, 13 Mar 2008 10:20:44 +0000 Subject: * fixed suse problems with autoprobing Xauthority files git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@1629 95ad53e4-c205-0410-b2fa-d234c58c8868 --- .../plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm | 2 +- os-plugins/plugins/x11vnc/XX_x11vnc.sh | 10 +++--- os-plugins/plugins/x11vnc/files/x11vnc | 38 ++++++++++++++-------- 3 files changed, 29 insertions(+), 21 deletions(-) (limited to 'os-plugins') 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 } -- cgit v1.2.3-55-g7522