98vboxadd-xclient revision 73dad9d84c12dfeea573f0153ee2f5a20788197c
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync#!/bin/sh
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync## @file
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# Start the Guest Additions X11 Client
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync#
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync#
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# Copyright (C) 2007-2011 Oracle Corporation
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync#
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# available from http://www.virtualbox.org. This file is free software;
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# you can redistribute it and/or modify it under the terms of the GNU
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# General Public License (GPL) as published by the Free Software
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync#
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# It can happen that pidfiles from a sudo session can land in the user's
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# home directory and prevent new ones from being created. This is not really
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# our fault, but the user may not quite appreciate that...
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsyncfor i in $HOME/.vboxclient-*.pid; do
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync if test -r $i && ! ps -e | grep `cat $i`; then
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync rm -f $i
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync fi
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsyncdone
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# Check whether the display we are running on running a known buggy version
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync# of X.Org which might crash when we resize.
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsyncno_display=
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsyncxorgbin=Xorg
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsyncfound=`which Xorg | grep "no Xorg"`
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsyncif test ! -z "$found"; then
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync if test -f "/usr/X11/bin/Xorg"; then
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync xorgbin=/usr/X11/bin/Xorg
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync else
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync exit 1
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync fi
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsyncfi
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsyncxout=`$xorgbin -version 2>&1`
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsyncif echo "$xout" | grep "1\.4\.99\.90[12345]" > /dev/null
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsyncthen
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync no_display=1
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsyncfi
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync/usr/bin/VBoxClient --clipboard
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync/usr/bin/VBoxClient --checkhostversion
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsynctest -z "$no_display" &&
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync /usr/bin/VBoxClient --display
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsynctest -z "$no_display" &&
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync /usr/bin/VBoxClient --seamless
9fc464631dc4a68fbb5eb6419d61fbe91b6b16bdvboxsync