preremove.sh revision b28acfbccfb51c10f8c08887210a7231cf7bce98
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync#!/bin/sh
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync#
8afc9dbdcbb840ad831ecd58eb4ebc6345cc0a4cvboxsync# VirtualBox pre-remove script for Solaris Guest Additions.
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync#
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# Copyright (C) 2008-2010 Oracle Corporation
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync#
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
ed298623061b963361a1345a0982861ec1300d9cvboxsync# 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
ed298623061b963361a1345a0982861ec1300d9cvboxsync# 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# The contents of this file may alternatively be used under the terms
ed298623061b963361a1345a0982861ec1300d9cvboxsync# of the Common Development and Distribution License Version 1.0
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# VirtualBox OSE distribution, in which case the provisions of the
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# CDDL are applicable instead of those of the GPL.
ed298623061b963361a1345a0982861ec1300d9cvboxsync#
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# You may elect to license modified versions of this file under the
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# terms and conditions of either the GPL or the CDDL or both.
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync#
ed298623061b963361a1345a0982861ec1300d9cvboxsync
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncLC_ALL=C
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncexport LC_ALL
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync
ed298623061b963361a1345a0982861ec1300d9cvboxsyncLANG=C
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncexport LANG
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsyncecho "Removing VirtualBox service..."
ed298623061b963361a1345a0982861ec1300d9cvboxsync
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync# stop and unregister VBoxService
15f5ec010f877cf7deb5f99855da0a8bdd1d3904vboxsync/usr/sbin/svcadm disable -s virtualbox/vboxservice
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync# Don't need to delete, taken care of by the manifest action
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync# /usr/sbin/svccfg delete svc:/application/virtualbox/vboxservice:default
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync/usr/sbin/svcadm restart svc:/system/manifest-import:default
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync# stop VBoxClient
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsyncpkill -INT VBoxClient
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsyncecho "Removing VirtualBox kernel modules..."
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync# vboxguest.sh would've been installed, we just need to call it.
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync/opt/VirtualBoxAdditions/vboxguest.sh stopall silentunload
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync# remove devlink.tab entry for vboxguest
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsyncsed -e '
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync/name=vboxguest/d' /etc/devlink.tab > /etc/devlink.vbox
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsyncmv -f /etc/devlink.vbox /etc/devlink.tab
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync# remove the link
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsyncif test -h "/dev/vboxguest" || test -f "/dev/vboxguest"; then
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync rm -f /dev/vboxdrv
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsyncfi
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync# Try and restore xorg.conf!
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsyncecho "Restoring X.Org..."
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync/opt/VirtualBoxAdditions/x11restore.pl
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync# Restore crogl symlink mess
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync# 32-bit crogl opengl library replacement
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsyncif test -f "/usr/lib/VBoxOGL.so" && test -f "/usr/X11/lib/mesa/libGL_original_.so.1"; then
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync mv -f /usr/X11/lib/mesa/libGL_original_.so.1 /usr/X11/lib/mesa/libGL.so.1
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsyncfi
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync# 64-bit crogl opengl library replacement
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsyncif test -f "/usr/lib/amd64/VBoxOGL.so" && test -f "/usr/X11/lib/mesa/amd64/libGL_original_.so.1"; then
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync mv -f /usr/X11/lib/mesa/amd64/libGL_original_.so.1 /usr/X11/lib/mesa/amd64/libGL.so.1
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsyncfi
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsyncecho "Done."
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync
bd3ace813dea26b3064f232eab359d3a517e9c87vboxsync