diff options
author | Sebastian Schmelzer | 2008-03-13 11:20:44 +0100 |
---|---|---|
committer | Sebastian Schmelzer | 2008-03-13 11:20:44 +0100 |
commit | a80b581d041872ab0407a3133e2f49af65f0adef (patch) | |
tree | dc08bad4daaebc7bd735bbf71aedf62f3466f5c6 | |
parent | * added support for new action 'list-selections' which shows the available (diff) | |
download | core-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
-rw-r--r-- | os-plugins/plugins/x11vnc/OpenSLX/OSPlugin/x11vnc.pm | 2 | ||||
-rw-r--r-- | os-plugins/plugins/x11vnc/XX_x11vnc.sh | 10 | ||||
-rwxr-xr-x | os-plugins/plugins/x11vnc/files/x11vnc | 38 |
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 } |