preremove.sh revision e27467c77543dda00047807bdd69b62f1cd50fee
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor#!/bin/sh
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor#
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# VirtualBox pre-remove script for Solaris Guest Additions.
a99c5d4cc3cab6a62b04d52000dbc22ce1fa2d94coar#
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# Copyright (C) 2008-2010 Oracle Corporation
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor#
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# This file is part of VirtualBox Open Source Edition (OSE), as
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# available from http://www.virtualbox.org. This file is free software;
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# you can redistribute it and/or modify it under the terms of the GNU
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# General Public License (GPL) as published by the Free Software
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# Foundation, in version 2 as it comes in the "COPYING" file of the
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor#
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# The contents of this file may alternatively be used under the terms
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# of the Common Development and Distribution License Version 1.0
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# VirtualBox OSE distribution, in which case the provisions of the
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# CDDL are applicable instead of those of the GPL.
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor#
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# You may elect to license modified versions of this file under the
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# terms and conditions of either the GPL or the CDDL or both.
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor#
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorLC_ALL=C
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorexport LC_ALL
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorLANG=C
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorexport LANG
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorecho "Removing VirtualBox service..."
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# stop and unregister VBoxService
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor/usr/sbin/svcadm disable -s virtualbox/vboxservice
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# Don't need to delete, taken care of by the manifest action
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# /usr/sbin/svccfg delete svc:/application/virtualbox/vboxservice:default
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor/usr/sbin/svcadm restart svc:/system/manifest-import:default
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# stop VBoxClient
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorpkill -INT VBoxClient
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorecho "Removing VirtualBox kernel modules..."
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# vboxguest.sh would've been installed, we just need to call it.
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor/opt/VirtualBoxAdditions/vboxguest.sh stopall silentunload
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# remove devlink.tab entry for vboxguest
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorsed -e '
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor/name=vboxguest/d' /etc/devlink.tab > /etc/devlink.vbox
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzormv -f /etc/devlink.vbox /etc/devlink.tab
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# remove the link
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorif test -h "/dev/vboxguest" || test -f "/dev/vboxguest"; then
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor rm -f /dev/vboxdrv
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorif test -h "/dev/vboxms" || test -f "/dev/vboxms"; then
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor rm -f /dev/vboxms
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorfi
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# Try and restore xorg.conf!
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorecho "Restoring X.Org..."
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor/opt/VirtualBoxAdditions/x11restore.pl
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# Restore crogl symlink mess
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# 32-bit crogl opengl library replacement
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorif test -f "/usr/lib/VBoxOGL.so" && test -f "/usr/X11/lib/mesa/libGL_original_.so.1"; then
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor mv -f /usr/X11/lib/mesa/libGL_original_.so.1 /usr/X11/lib/mesa/libGL.so.1
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorfi
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor# 64-bit crogl opengl library replacement
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorif test -f "/usr/lib/amd64/VBoxOGL.so" && test -f "/usr/X11/lib/mesa/amd64/libGL_original_.so.1"; then
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor mv -f /usr/X11/lib/mesa/amd64/libGL_original_.so.1 /usr/X11/lib/mesa/amd64/libGL.so.1
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorfi
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzorecho "Done."
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor
dfb59c684345700bf9186b8d44936f8b1ba082ffgryzor