5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#!/bin/sh
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#
c58f1213e628a545081c70e26c6b67a841cff880vboxsync# Copyright (C) 2006-2012 Oracle Corporation
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# available from http://www.virtualbox.org. This file is free software;
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# you can redistribute it and/or modify it under the terms of the GNU
d63de4508a08b11f57c307a15eda3cd95485bf2cvboxsync# General Public License (GPL) as published by the Free Software
d63de4508a08b11f57c307a15eda3cd95485bf2cvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
d63de4508a08b11f57c307a15eda3cd95485bf2cvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
d63de4508a08b11f57c307a15eda3cd95485bf2cvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# we can be called with the following arguments (6.5 of Debian policy):
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# upgrade: (new version): upgrade to a new version
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# failed-upgrade: (our version): failed to upgrade
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# remove: (our version): remove this package
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# purge: (our version): purge this package
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# deconfigure: (our version): removing conflicting version
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
8ae363736c5bbaa490ae89e3a7174f9ad31fe54bvboxsyncrm -f /etc/udev/rules.d/60-vboxdrv.rules
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncrm -f /etc/vbox/license_agreed
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncrm -f /etc/vbox/module_not_compiled
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# defaults
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync[ -r /etc/default/virtualbox ] && . /etc/default/virtualbox
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncif [ "$1" = "upgrade" -o "$1" = "remove" -o "$1" = "failed-upgrade" ]; then
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync . /usr/share/debconf/confmodule
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync db_version 2.0
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync db_capb backup
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync # check for active VMs
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync VBOXSVC_PID=`pidof VBoxSVC 2>/dev/null`
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync if [ -n "$VBOXSVC_PID" ]; then
17d67aeb3722c094c6493a3e9a9d0cdfb9453ecdvboxsync # try graceful termination; terminate the balloon control servic first
17d67aeb3722c094c6493a3e9a9d0cdfb9453ecdvboxsync if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
17d67aeb3722c094c6493a3e9a9d0cdfb9453ecdvboxsync invoke-rc.d vboxballoonctrl-service stop || true
17d67aeb3722c094c6493a3e9a9d0cdfb9453ecdvboxsync else
17d67aeb3722c094c6493a3e9a9d0cdfb9453ecdvboxsync /etc/init.d/vboxballoonctrl-service stop || true
17d67aeb3722c094c6493a3e9a9d0cdfb9453ecdvboxsync fi
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync # try graceful termination; terminate the webservice first
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync invoke-rc.d vboxweb-service stop || true
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync else
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync /etc/init.d/vboxweb-service stop || true
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync fi
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync kill -USR1 $VBOXSVC_PID
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync sleep 1
4ab3529cde8c5258f459eeb71a532d1ba522111avboxsync if pidof VBoxSVC > /dev/null 2>&1; then
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync if [ "$1" != "failed-upgrade" ]; then
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync db_fset virtualbox/old-running seen false || true
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync db_input critical virtualbox/old-running || true
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync db_go || true
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync fi
cf5af7fccfec4bef83f4ec21662d6a6e6cbe3835vboxsync exit 1
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync fi
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync fi
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncfi
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync# make sure we de-register the DMKS modules before the files get removed
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsyncif [ "$1" = "upgrade" -o "$1" = "remove" -o "$1" = "deconfigure" ]; then
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync DKMS=`which dkms 2>/dev/null`
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync if [ -n "$DKMS" ]; then
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync $DKMS remove -m vboxhost -v %VER% --all > /dev/null 2>&1 || true
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync fi
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncfi
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
60b3bb99d58c291474ef79573ae7738ce769fdbbvboxsync# stop vboxnet/vboxdrv manually as we use our own error handling in postrm
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncif [ -x "/etc/init.d/vboxdrv" ]; then
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync invoke-rc.d vboxdrv stop || exit $?
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync else
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync /etc/init.d/vboxdrv stop || exit $?
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync fi
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncfi
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncif [ -x "/etc/init.d/vboxnet" ]; then
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync invoke-rc.d vboxnet stop || exit $?
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync else
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync /etc/init.d/vboxnet stop || exit $?
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync fi
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncfi
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#DEBHELPER#
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsyncexit 0