postinstall.sh revision c11bd53b8a7019cd1079a8f82b27e3d4defb91ce
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync#!/bin/sh
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync# Sun xVM VirtualBox
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync# VirtualBox postinstall script for Solaris.
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync#
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# Copyright (C) 2008 Sun Microsystems, Inc.
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync#
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# available from http://www.virtualbox.org. This file is free software;
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# you can redistribute it and/or modify it under the terms of the GNU
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# General Public License (GPL) as published by the Free Software
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync#
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# Clara, CA 95054 USA or visit http://www.sun.com if you need
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# additional information or have any questions.
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync#
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncecho "Configuring VirtualBox guest kernel module..."
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncsync
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncvboxadditions_path="/opt/VirtualBoxAdditions"
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# vboxguest.sh would've been installed, we just need to call it.
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync$vboxadditions_path/vboxguest.sh restart silentunload
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# get what ISA the guest is running
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsynccputype=`isainfo -k`
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncisadir=""
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncif test "$cputype" = "amd64"; then
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync isadir="amd64"
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncfi
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# suid permissions for timesync
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncchmod 04755 $vboxadditions_path/VBoxService
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncchmod a+x $vboxadditions_path/VBoxClient
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncchmod a+x $vboxadditions_path/VBoxControl
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncchmod a+x $vboxadditions_path/VBoxRandR.sh
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync# create links
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncecho "Creating links..."
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync/usr/sbin/installf -c none $PKGINST /dev/vboxguest=../devices/pci@0,0/pci80ee,cafe@4:vboxguest s
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync/usr/sbin/installf -c none $PKGINST /usr/bin/VBoxClient=$vboxadditions_path/VBoxClient s
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync/usr/sbin/installf -c none $PKGINST /usr/bin/VBoxService=$vboxadditions_path/VBoxService s
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync/usr/sbin/installf -c none $PKGINST /usr/bin/VBoxControl=$vboxadditions_path/VBoxControl s
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync/usr/sbin/installf -c none $PKGINST /usr/bin/VBoxRandR=$vboxadditions_path/VBoxRandR.sh s
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync# Install Xorg components to the required places
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncxorgversion_long=`/usr/X11/bin/Xorg -version 2>&1 | grep "X Window System Version"`
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncxorgversion=`/usr/bin/expr "${xorgversion_long}" : 'X Window System Version \([^ ]*\)'`
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncvboxmouse_src=""
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncvboxvideo_src=""
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsynccase "$xorgversion" in
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync 1.3.* )
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync vboxmouse_src="$vboxadditions_path/vboxmouse_drv_71.so"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync vboxvideo_src="$vboxadditions_path/vboxvideo_drv_13.so"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync ;;
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync 1.4.* )
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync vboxmouse_src="$vboxadditions_path/vboxmouse_drv_14.so"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync vboxvideo_src="$vboxadditions_path/vboxvideo_drv_14.so"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync ;;
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync 7.1.* | *7.2.* )
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync vboxmouse_src="$vboxadditions_path/vboxmouse_drv_71.so"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync vboxvideo_src="$vboxadditions_path/vboxvideo_drv_71.so"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync ;;
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync 6.9.* | 7.0.* )
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync vboxmouse_src="$vboxadditions_path/vboxmouse_drv_70.so"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync vboxvideo_src="$vboxadditions_path/vboxvideo_drv_70.so"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync ;;
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncesac
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncretval=0
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncif test -z "$vboxmouse_src"; then
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync echo "*** Unknown version of the X Window System installed."
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync echo "*** Failed to install the VirtualBox X Window System drivers."
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync # Exit as partially failed installation
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync retval=2
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncelse
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync echo "Configuring Xorg..."
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync vboxmouse_dest="/usr/X11/lib/modules/input/$isadir/vboxmouse_drv.so"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync vboxvideo_dest="/usr/X11/lib/modules/drivers/$isadir/vboxvideo_drv.so"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync /usr/sbin/installf -c none $PKGINST "$vboxmouse_dest" f
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync /usr/sbin/installf -c none $PKGINST "$vboxvideo_dest" f
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync cp "$vboxmouse_src" "$vboxmouse_dest"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync cp "$vboxvideo_src" "$vboxvideo_dest"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync # Removing redudant files
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync /usr/sbin/removef $PKGINST $vboxadditions_path/vboxmouse_drv_* 1>/dev/null 2>/dev/null
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync /usr/sbin/removef $PKGINST $vboxadditions_path/vboxvideo_drv_* 1>/dev/null 2>/dev/null
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync rm -f $vboxadditions_path/vboxmouse_drv_*
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync rm -f $vboxadditions_path/vboxvideo_drv_*
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync /usr/sbin/removef -f $PKGINST
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync # Some distros like Indiana have no xorg.conf, deal with this
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync if test ! -f '/etc/X11/xorg.conf' && test ! -f '/etc/X11/.xorg.conf'; then
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync mv -f $vboxadditions_path/solaris_xorg.conf /etc/X11/.xorg.conf
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync fi
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync $vboxadditions_path/x11config.pl
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncfi
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync# Setup our VBoxClient
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncecho "Configuring client..."
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncvboxclient_src=$vboxadditions_path
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncvboxclient_dest="/usr/dt/config/Xsession.d"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncif test -d "$vboxclient_dest"; then
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync /usr/sbin/installf -c none $PKGINST "$vboxclient_dest/1099.vboxclient" f
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync cp "$vboxclient_src/1099.vboxclient" "$vboxclient_dest/1099.vboxclient"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync chmod a+rx "$vboxclient_dest/1099.vboxclient"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncelif test -d "/usr/share/gnome/autostart"; then
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync vboxclient_dest="/usr/share/gnome/autostart"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync /usr/sbin/installf -c none $PKGINST "$vboxclient_dest/vboxclient.desktop" f
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync cp "$vboxclient_src/vboxclient.desktop" "$vboxclient_dest/vboxclient.desktop"
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncelse
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync echo "*** Failed to configure client!! Couldn't find autostart directory."
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync retval=2
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncfi
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync# Remove redundant files
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync/usr/sbin/removef $PKGINST $vboxadditions_path/etc/devlink.tab 1>/dev/null
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync/usr/sbin/removef $PKGINST $vboxadditions_path/etc 1>/dev/null
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncrm -rf $vboxadditions_path/etc
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync/usr/sbin/removef -f $PKGINST
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync/usr/sbin/installf -f $PKGINST
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync# Setup our VBoxService SMF service
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncecho "Configuring service..."
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync/usr/sbin/svccfg import /var/svc/manifest/system/virtualbox/vboxservice.xml
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync/usr/sbin/svcadm enable svc:/system/virtualbox/vboxservice
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync/usr/sbin/devfsadm -i vboxguest
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncecho "Done."
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncif test $retval -eq 0; then
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync echo "Please re-login to activate the X11 guest additions."
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync echo "If you have just un-installed the previous guest additions a REBOOT is required."
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncfi
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsyncexit $retval
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync
fb1a9f79a0cd51c5793428dc7a5882780ab91930vboxsync