postinstall.sh revision 02487e3b759646add535e475e35311265235a629
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync#!/bin/sh
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# Sun xVM VirtualBox
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# VirtualBox postinstall script for Solaris.
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync#
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# Copyright (C) 2008 Sun Microsystems, Inc.
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync#
a0a3a26a4065b9401681a8c99a11bd83e08f94ccvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# available from http://www.virtualbox.org. This file is free software;
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# you can redistribute it and/or modify it under the terms of the GNU
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# General Public License (GPL) as published by the Free Software
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync#
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# additional information or have any questions.
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync#
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncecho "Sun xVM VirtualBox Guest Additions - postinstall script"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncecho "This script will setup and load the VirtualBox Guest kernel module..."
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncvboxadditions_path="/opt/VirtualBoxAdditions"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# vboxguest.sh would've been installed, we just need to call it.
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync$vboxadditions_path/vboxguest.sh restart silentunload
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# suid permissions for timesync
01ae4433227141e4e4782116adae9f6bc287c8b8vboxsyncchmod 04755 $vboxadditions_path/VBoxService
01ae4433227141e4e4782116adae9f6bc287c8b8vboxsync
2050786855059bc194ff2314a212acb91f36a516vboxsync# create links
2050786855059bc194ff2314a212acb91f36a516vboxsync/usr/sbin/installf -c none $PKGINST /dev/vboxguest=../devices/pci@0,0/pci80ee,cafe@4:vboxguest s
2050786855059bc194ff2314a212acb91f36a516vboxsync/usr/sbin/installf -c none $PKGINST /usr/bin/VBoxClient=$vboxadditions_path/VBoxClient s
01ae4433227141e4e4782116adae9f6bc287c8b8vboxsync/usr/sbin/installf -c none $PKGINST /usr/bin/VBoxService=$vboxadditions_path/VBoxService s
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync/usr/sbin/installf -c none $PKGINST /usr/bin/VBoxRandR=$vboxadditions_path/VBoxRandR.sh s
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync# Install Xorg components to the required places
6d73c66200a04223ae56a22ff221ec32193717a5vboxsyncxorgversion_long=`/usr/bin/X11/Xorg -version 2>&1 | grep "X Window System Version"`
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncxorgversion=`/usr/bin/expr "${xorgversion_long}" : 'X Window System Version \([^ ]*\)'`
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncvboxmouse_src=""
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncvboxvideo_src=""
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsynccase "$xorgversion" in
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync 1.3.* )
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync vboxmouse_src="$vboxadditions_path/vboxmouse_drv_71.so"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync vboxvideo_src="$vboxadditions_path/vboxvideo_drv_13.so"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync ;;
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync 1.4.* )
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync vboxmouse_src="$vboxadditions_path/vboxmouse_drv_14.so"
63754a9ea73e5a586fef56e9085955a296342b4evboxsync vboxvideo_src="$vboxadditions_path/vboxvideo_drv_14.so"
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync ;;
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync 7.1.* | *7.2.* )
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync vboxmouse_src="$vboxadditions_path/vboxmouse_drv_71.so"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync vboxvideo_src="$vboxadditions_path/vboxvideo_drv_71.so"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync ;;
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync 6.9.* | 7.0.* )
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync vboxmouse_src="$vboxadditions_path/vboxmouse_drv_70.so"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync vboxvideo_src="$vboxadditions_path/vboxvideo_drv_70.so"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync ;;
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncesac
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncretval=0
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncif test -z "$vboxmouse_src"; then
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync echo "*** Unknown version of the X Window System installed."
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync echo "*** Failed to install the VirtualBox X Window System drivers."
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync # Exit as partially failed installation
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync retval=2
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncelse
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync echo "Configuring Xorg..."
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync vboxmouse_dest="/usr/lib/X11/modules/input/vboxmouse_drv.so"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync vboxvideo_dest="/usr/lib/X11/modules/input/vboxvideo_drv.so"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync /usr/sbin/installf -c none $PKGINST "$vboxmouse_dest" f
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync /usr/sbin/installf -c none $PKGINST "$vboxvideo_dest" f
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync cp "$vboxmouse_src" "$vboxmouse_dest"
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync cp "$vboxvideo_src" "$vboxvideo_dest"
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync
63754a9ea73e5a586fef56e9085955a296342b4evboxsync # Removing redudant files
63754a9ea73e5a586fef56e9085955a296342b4evboxsync /usr/sbin/removef $PKGINST $vboxadditions_path/vboxmouse_drv_* 1>/dev/null 2>/dev/null
63754a9ea73e5a586fef56e9085955a296342b4evboxsync /usr/sbin/removef $PKGINST $vboxadditions_path/vboxvideo_drv_* 1>/dev/null 2>/dev/null
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync rm -f $vboxadditions_path/vboxmouse_drv_*
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync rm -f $vboxadditions_path/vboxvideo_drv_*
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync /usr/sbin/removef -f $PKGINST
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync
6c91bb6da5c5e29d15700a6f6da6c88463247a9fvboxsync # Some distros like Indiana have no xorg.conf, deal with this
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync if test ! -f '/etc/X11/xorg.conf' && test ! -f '/etc/X11/.xorg.conf'; then
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync mv -f $vboxadditions_path/solaris_xorg.conf /etc/X11/.xorg.conf
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync fi
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync $vboxadditions_path/x11config.pl
6d73c66200a04223ae56a22ff221ec32193717a5vboxsyncfi
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync# Setup our VBoxClient
63754a9ea73e5a586fef56e9085955a296342b4evboxsyncecho "Configuring client..."
63754a9ea73e5a586fef56e9085955a296342b4evboxsyncvboxclient_src=$vboxadditions_path
6d73c66200a04223ae56a22ff221ec32193717a5vboxsyncvboxclient_dest="/usr/dt/config/Xsession.d"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncif test -d "$vboxclient_dest"; then
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync /usr/sbin/installf -c none $PKGINST "$vboxclient_dest/1099.vboxclient" f
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync cp "$vboxclient_src/1099.vboxclient" "$vboxclient_dest/1099.vboxclient"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync chmod a+rwx "$vboxclient_dest/1099.vboxclient"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncelif test -d "/usr/share/gnome/autostart"; then
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync vboxclient_dest="/usr/share/gnome/autostart"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync /usr/sbin/installf -c none $PKGINST "$vboxclient_dest/vboxclient.desktop" f
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync cp "$vboxclient_src/vboxclient.desktop" "$vboxclient_dest/vboxclient.desktop"
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncelse
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync echo "*** Failed to configure client!! Couldn't find autostart directory."
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync retval=2
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncfi
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync# Remove redundant files
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync/usr/sbin/removef $PKGINST $vboxadditions_path/etc/devlink.tab 1>/dev/null
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync/usr/sbin/removef $PKGINST $vboxadditions_path/etc 1>/dev/null
63754a9ea73e5a586fef56e9085955a296342b4evboxsyncrm -rf $vboxadditions_path/etc
63754a9ea73e5a586fef56e9085955a296342b4evboxsync/usr/sbin/removef -f $PKGINST
63754a9ea73e5a586fef56e9085955a296342b4evboxsync
63754a9ea73e5a586fef56e9085955a296342b4evboxsync/usr/sbin/installf -f $PKGINST
63754a9ea73e5a586fef56e9085955a296342b4evboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync# Setup our VBoxService SMF service
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncecho "Configuring service..."
6d73c66200a04223ae56a22ff221ec32193717a5vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync/usr/sbin/svccfg import /var/svc/manifest/system/virtualbox/vboxservice.xml
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync/usr/sbin/svcadm enable svc:/system/virtualbox/vboxservice
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync/usr/sbin/devlinks
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncecho "Done."
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncif test $retval -eq 0; then
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync echo "Please re-login to activate the X11 guest additions."
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncfi
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsyncexit $retval
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync
e7668566fb8c8659f002fc6b55692bd52a4b3ac4vboxsync