VirtualBox.tmpl.spec revision bc04e4cfbb35893dd91b43c52d7f50f824131172
d9ef684564c53b70e20e0d8a98aa721687cf2605kess#
d9ef684564c53b70e20e0d8a98aa721687cf2605kess# Spec file for creating VirtualBox rpm packages
eca1144dc479593f288406c5135a8b71d02c36c5kess#
6e14faf37935e36804b8bad802bc9dd58f3cf65dsf
d9ef684564c53b70e20e0d8a98aa721687cf2605kess#
a3d2b657dd7ca66251b562b6a82c2335135b9172nd# Copyright (C) 2006-2012 Oracle Corporation
031b91a62d25106ae69d4693475c79618dd5e884fielding#
031b91a62d25106ae69d4693475c79618dd5e884fielding# This file is part of VirtualBox Open Source Edition (OSE), as
031b91a62d25106ae69d4693475c79618dd5e884fielding# available from http://www.virtualbox.org. This file is free software;
031b91a62d25106ae69d4693475c79618dd5e884fielding# you can redistribute it and/or modify it under the terms of the GNU
031b91a62d25106ae69d4693475c79618dd5e884fielding# General Public License (GPL) as published by the Free Software
031b91a62d25106ae69d4693475c79618dd5e884fielding# Foundation, in version 2 as it comes in the "COPYING" file of the
a3d2b657dd7ca66251b562b6a82c2335135b9172nd# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
a3d2b657dd7ca66251b562b6a82c2335135b9172nd# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
a3d2b657dd7ca66251b562b6a82c2335135b9172nd#
a3d2b657dd7ca66251b562b6a82c2335135b9172nd
a3d2b657dd7ca66251b562b6a82c2335135b9172nd%define %SPEC% 1
a3d2b657dd7ca66251b562b6a82c2335135b9172nd%define %OSE% 1
a3d2b657dd7ca66251b562b6a82c2335135b9172nd%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
a3d2b657dd7ca66251b562b6a82c2335135b9172nd
a3d2b657dd7ca66251b562b6a82c2335135b9172ndSummary: Oracle VM VirtualBox
a3d2b657dd7ca66251b562b6a82c2335135b9172ndName: %NAME%
d9ef684564c53b70e20e0d8a98aa721687cf2605kessVersion: %BUILDVER%_%BUILDREL%
d9ef684564c53b70e20e0d8a98aa721687cf2605kessRelease: 1
d9ef684564c53b70e20e0d8a98aa721687cf2605kessURL: http://www.virtualbox.org/
d9ef684564c53b70e20e0d8a98aa721687cf2605kessSource: VirtualBox.tar.bz2
d9ef684564c53b70e20e0d8a98aa721687cf2605kessLicense: GPLv2
d9ef684564c53b70e20e0d8a98aa721687cf2605kessGroup: Applications/System
d9ef684564c53b70e20e0d8a98aa721687cf2605kessVendor: Oracle Corporation
d9ef684564c53b70e20e0d8a98aa721687cf2605kessBuildRoot: %BUILDROOT%
d9ef684564c53b70e20e0d8a98aa721687cf2605kessRequires: %INITSCRIPTS% %LIBASOUND%
d9ef684564c53b70e20e0d8a98aa721687cf2605kess
d9ef684564c53b70e20e0d8a98aa721687cf2605kess%if %{?rpm_suse:1}%{!?rpm_suse:0}
d9ef684564c53b70e20e0d8a98aa721687cf2605kess%debug_package
d9ef684564c53b70e20e0d8a98aa721687cf2605kess%endif
d9ef684564c53b70e20e0d8a98aa721687cf2605kess
d9ef684564c53b70e20e0d8a98aa721687cf2605kess%MACROSPYTHON%
d9ef684564c53b70e20e0d8a98aa721687cf2605kess
d9ef684564c53b70e20e0d8a98aa721687cf2605kess
d9ef684564c53b70e20e0d8a98aa721687cf2605kess%description
d9ef684564c53b70e20e0d8a98aa721687cf2605kessVirtualBox is a powerful PC virtualization solution allowing
d9ef684564c53b70e20e0d8a98aa721687cf2605kessyou to run a wide range of PC operating systems on your Linux
d9ef684564c53b70e20e0d8a98aa721687cf2605kesssystem. This includes Windows, Linux, FreeBSD, DOS, OpenBSD
d9ef684564c53b70e20e0d8a98aa721687cf2605kessand others. VirtualBox comes with a broad feature set and
d9ef684564c53b70e20e0d8a98aa721687cf2605kessexcellent performance, making it the premier virtualization
d9ef684564c53b70e20e0d8a98aa721687cf2605kesssoftware solution on the market.
d9ef684564c53b70e20e0d8a98aa721687cf2605kess
d9ef684564c53b70e20e0d8a98aa721687cf2605kess
d9ef684564c53b70e20e0d8a98aa721687cf2605kess%prep
d9ef684564c53b70e20e0d8a98aa721687cf2605kess%setup -q
d9ef684564c53b70e20e0d8a98aa721687cf2605kessDESTDIR=""
d9ef684564c53b70e20e0d8a98aa721687cf2605kessunset DESTDIR
d9ef684564c53b70e20e0d8a98aa721687cf2605kess
d9ef684564c53b70e20e0d8a98aa721687cf2605kess
d9ef684564c53b70e20e0d8a98aa721687cf2605kess%build
d9ef684564c53b70e20e0d8a98aa721687cf2605kess
d9ef684564c53b70e20e0d8a98aa721687cf2605kess
d9ef684564c53b70e20e0d8a98aa721687cf2605kess%install
d9ef684564c53b70e20e0d8a98aa721687cf2605kess# Mandriva: prevent replacing 'echo' by 'gprintf'
d9ef684564c53b70e20e0d8a98aa721687cf2605kessexport DONT_GPRINTIFY=1
d9ef684564c53b70e20e0d8a98aa721687cf2605kessrm -rf $RPM_BUILD_ROOT
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT/sbin
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT%{_initrddir}
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT/lib/modules
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT/etc/vbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT/usr/bin
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT/usr/src
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT/usr/share/applications
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT/usr/share/pixmaps
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT/usr/share/icons/hicolor
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT%{_defaultdocdir}/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT/usr/lib/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT/usr/lib/virtualbox/ExtensionPacks
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT/usr/share/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessinstall -m 755 -d $RPM_BUILD_ROOT/usr/share/mime/packages
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv VBoxEFI32.fd $RPM_BUILD_ROOT/usr/lib/virtualbox || true
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv VBoxEFI64.fd $RPM_BUILD_ROOT/usr/lib/virtualbox || true
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv *.gc $RPM_BUILD_ROOT/usr/lib/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv *.r0 $RPM_BUILD_ROOT/usr/lib/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv *.rel $RPM_BUILD_ROOT/usr/lib/virtualbox || true
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv VBoxNetDHCP $RPM_BUILD_ROOT/usr/lib/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv VBoxNetNAT $RPM_BUILD_ROOT/usr/lib/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv VBoxNetAdpCtl $RPM_BUILD_ROOT/usr/lib/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessif [ -f VBoxVolInfo ]; then
d9ef684564c53b70e20e0d8a98aa721687cf2605kess mv VBoxVolInfo $RPM_BUILD_ROOT/usr/lib/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessfi
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv VBoxXPCOMIPCD $RPM_BUILD_ROOT/usr/lib/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv components $RPM_BUILD_ROOT/usr/lib/virtualbox/components
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv *.so $RPM_BUILD_ROOT/usr/lib/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv *.so.4 $RPM_BUILD_ROOT/usr/lib/virtualbox || true
d9ef684564c53b70e20e0d8a98aa721687cf2605kessln -s ../VBoxVMM.so $RPM_BUILD_ROOT/usr/lib/virtualbox/components/VBoxVMM.so
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv VBoxTestOGL $RPM_BUILD_ROOT/usr/lib/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv vboxshell.py $RPM_BUILD_ROOT/usr/lib/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kess(export VBOX_INSTALL_PATH=/usr/lib/virtualbox && \
d9ef684564c53b70e20e0d8a98aa721687cf2605kess cd ./sdk/installer && \
d9ef684564c53b70e20e0d8a98aa721687cf2605kess %{__python} ./vboxapisetup.py install --prefix %{_prefix} --root $RPM_BUILD_ROOT)
d9ef684564c53b70e20e0d8a98aa721687cf2605kessrm -rf sdk/installer
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv sdk $RPM_BUILD_ROOT/usr/lib/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv nls $RPM_BUILD_ROOT/usr/share/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kesscp -a src $RPM_BUILD_ROOT/usr/share/virtualbox
d9ef684564c53b70e20e0d8a98aa721687cf2605kessmv VBox.sh $RPM_BUILD_ROOT/usr/bin/VBox
d282b5abebd9c783b5db6b95b7d0a2707dd3317cndmv VBoxSysInfo.sh $RPM_BUILD_ROOT/usr/share/virtualbox
d282b5abebd9c783b5db6b95b7d0a2707dd3317cndmv VBoxCreateUSBNode.sh $RPM_BUILD_ROOT/usr/share/virtualbox
d282b5abebd9c783b5db6b95b7d0a2707dd3317cndcp icons/128x128/virtualbox.png $RPM_BUILD_ROOT/usr/share/pixmaps/virtualbox.png
d9ef684564c53b70e20e0d8a98aa721687cf2605kesscd icons
d9ef684564c53b70e20e0d8a98aa721687cf2605kess for i in *; do
if [ -f $i/virtualbox.png ]; then
install -d $RPM_BUILD_ROOT/usr/share/icons/hicolor/$i/apps
mv $i/virtualbox.png $RPM_BUILD_ROOT/usr/share/icons/hicolor/$i/apps
fi
install -d $RPM_BUILD_ROOT/usr/share/icons/hicolor/$i/mimetypes
mv $i/* $RPM_BUILD_ROOT/usr/share/icons/hicolor/$i/mimetypes || true
rmdir $i
done
cd -
rmdir icons
mv virtualbox.xml $RPM_BUILD_ROOT/usr/share/mime/packages
for i in VBoxManage VBoxSVC VBoxSDL VirtualBox VBoxHeadless VBoxExtPackHelperApp VBoxBalloonCtrl VBoxAutostart; do
mv $i $RPM_BUILD_ROOT/usr/lib/virtualbox; done
if %WEBSVC%; then
for i in vboxwebsrv webtest; do
mv $i $RPM_BUILD_ROOT/usr/lib/virtualbox; done
fi
for i in VBoxSDL VirtualBox VBoxHeadless VBoxNetDHCP VBoxNetNAT VBoxNetAdpCtl; do
chmod 4511 $RPM_BUILD_ROOT/usr/lib/virtualbox/$i; done
if [ -f $RPM_BUILD_ROOT/usr/lib/virtualbox/VBoxVolInfo ]; then
chmod 4511 $RPM_BUILD_ROOT/usr/lib/virtualbox/VBoxVolInfo
fi
if [ -d ExtensionPacks/VNC ]; then
mv ExtensionPacks/VNC $RPM_BUILD_ROOT/usr/lib/virtualbox/ExtensionPacks
fi
mv VBoxTunctl $RPM_BUILD_ROOT/usr/bin
%if %{?is_ose:0}%{!?is_ose:1}
for d in /lib/modules/*; do
if [ -L $d/build ]; then
rm -f /tmp/vboxdrv-Module.symvers
./src/vboxhost/build_in_tmp \
--save-module-symvers /tmp/vboxdrv-Module.symvers \
--module-source `pwd`/src/vboxhost/vboxdrv \
KBUILD_VERBOSE= KERN_DIR=$d/build MODULE_DIR=$RPM_BUILD_ROOT/$d/misc -j4 \
%INSTMOD%
./src/vboxhost/build_in_tmp \
--use-module-symvers /tmp/vboxdrv-Module.symvers \
--module-source `pwd`/src/vboxhost/vboxnetflt \
KBUILD_VERBOSE= KERN_DIR=$d/build MODULE_DIR=$RPM_BUILD_ROOT/$d/misc -j4 \
%INSTMOD%
./src/vboxhost/build_in_tmp \
--use-module-symvers /tmp/vboxdrv-Module.symvers \
--module-source `pwd`/src/vboxhost/vboxnetadp \
KBUILD_VERBOSE= KERN_DIR=$d/build MODULE_DIR=$RPM_BUILD_ROOT/$d/misc -j4 \
%INSTMOD%
./src/vboxhost/build_in_tmp \
--use-module-symvers /tmp/vboxdrv-Module.symvers \
--module-source `pwd`/src/vboxhost/vboxpci \
KBUILD_VERBOSE= KERN_DIR=$d/build MODULE_DIR=$RPM_BUILD_ROOT/$d/misc -j4 \
%INSTMOD%
fi
done
%endif
%if %{?is_ose:0}%{!?is_ose:1}
mv kchmviewer $RPM_BUILD_ROOT/usr/lib/virtualbox
for i in rdesktop-vrdp.tar.gz rdesktop-vrdp-keymaps; do
mv $i $RPM_BUILD_ROOT/usr/share/virtualbox; done
mv rdesktop-vrdp $RPM_BUILD_ROOT/usr/bin
%endif
for i in additions/VBoxGuestAdditions.iso; do
mv $i $RPM_BUILD_ROOT/usr/share/virtualbox; done
if [ -d accessible ]; then
mv accessible $RPM_BUILD_ROOT/usr/lib/virtualbox
fi
install -D -m 755 vboxdrv.init $RPM_BUILD_ROOT%{_initrddir}/vboxdrv
%if %{?rpm_suse:1}%{!?rpm_suse:0}
ln -sf ../etc/init.d/vboxdrv $RPM_BUILD_ROOT/sbin/rcvboxdrv
%endif
install -D -m 755 vboxballoonctrl-service.init $RPM_BUILD_ROOT%{_initrddir}/vboxballoonctrl-service
install -D -m 755 vboxautostart-service.init $RPM_BUILD_ROOT%{_initrddir}/vboxautostart-service
install -D -m 755 vboxweb-service.init $RPM_BUILD_ROOT%{_initrddir}/vboxweb-service
%if %{?rpm_suse:1}%{!?rpm_suse:0}
ln -sf ../etc/init.d/vboxballoonctrl-service $RPM_BUILD_ROOT/sbin/rcvboxballoonctrl-service
ln -sf ../etc/init.d/vboxautostart-service $RPM_BUILD_ROOT/sbin/rcvboxautostart-service
ln -sf ../etc/init.d/vboxweb-service $RPM_BUILD_ROOT/sbin/rcvboxweb-service
%endif
ln -s VBox $RPM_BUILD_ROOT/usr/bin/VirtualBox
ln -s VBox $RPM_BUILD_ROOT/usr/bin/virtualbox
ln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxManage
ln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxmanage
ln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxSDL
ln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxsdl
ln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxVRDP
ln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxHeadless
ln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxheadless
ln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxBalloonCtrl
ln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxballoonctrl
ln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxAutostart
ln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxautostart
ln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxwebsrv
ln -s /usr/share/virtualbox/src/vboxhost $RPM_BUILD_ROOT/usr/src/vboxhost-%VER%
mv virtualbox.desktop $RPM_BUILD_ROOT/usr/share/applications/virtualbox.desktop
mv VBox.png $RPM_BUILD_ROOT/usr/share/pixmaps/VBox.png
%pre
# defaults
[ -r /etc/default/virtualbox ] && . /etc/default/virtualbox
# check for active VMs of the installed (old) package
VBOXSVC_PID=`pidof VBoxSVC 2>/dev/null || true`
if [ -n "$VBOXSVC_PID" ]; then
# executed before the new package is installed!
if [ -f /etc/init.d/vboxballoonctrl-service ]; then
# try graceful termination; terminate the balloon control service first
/etc/init.d/vboxballoonctrl-service stop 2>/dev/null || true
fi
if [ -f /etc/init.d/vboxautostart-service ]; then
# try graceful termination; terminate the autostart service first
/etc/init.d/vboxautostart-service stop 2>/dev/null || true
fi
if [ -f /etc/init.d/vboxweb-service ]; then
# try graceful termination; terminate the webservice first
/etc/init.d/vboxweb-service stop 2>/dev/null || true
fi
# ask the daemon to terminate immediately
kill -USR1 $VBOXSVC_PID
sleep 1
if pidof VBoxSVC > /dev/null 2>&1; then
echo "A copy of VirtualBox is currently running. Please close it and try again."
echo "Please note that it can take up to ten seconds for VirtualBox (in particular"
echo "the VBoxSVC daemon) to finish running."
exit 1
fi
fi
# check for old installation
if [ -r /etc/vbox/vbox.cfg ]; then
. /etc/vbox/vbox.cfg
if [ "x$INSTALL_DIR" != "x" -a -d "$INSTALL_DIR" ]; then
echo "An old installation of VirtualBox was found. To install this package the"
echo "old package has to be removed first. Have a look at /etc/vbox/vbox.cfg to"
echo "determine the installation directory of the previous installation. After"
echo "uninstalling the old package remove the file /etc/vbox/vbox.cfg."
exit 1
fi
fi
# XXX remove old modules from previous versions (disable with INSTALL_NO_VBOXDRV=1 in /etc/default/virtualbox)
if [ "$INSTALL_NO_VBOXDRV" != "1" ]; then
find /lib/modules -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2> /dev/null || true
find /lib/modules -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2> /dev/null || true
find /lib/modules -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2> /dev/null || true
find /lib/modules -name "vboxpci\.*" 2>/dev/null|xargs rm -f 2> /dev/null || true
fi
%post
#include installer-common.sh
LOG="/var/log/vbox-install.log"
# defaults
[ -r /etc/default/virtualbox ] && . /etc/default/virtualbox
# remove old cruft
if [ -f /etc/init.d/vboxdrv.sh ]; then
echo "Found old version of /etc/init.d/vboxdrv.sh, removing."
rm /etc/init.d/vboxdrv.sh
fi
if [ -f /etc/vbox/vbox.cfg ]; then
echo "Found old version of /etc/vbox/vbox.cfg, removing."
rm /etc/vbox/vbox.cfg
fi
rm -f /etc/vbox/module_not_compiled
# XXX SELinux: allow text relocation entries
%if %{?rpm_redhat:1}%{!?rpm_redhat:0}
set_selinux_permissions /usr/lib/virtualbox /usr/share/virtualbox
%endif
# create users groups (disable with INSTALL_NO_GROUP=1 in /etc/default/virtualbox)
if [ "$INSTALL_NO_GROUP" != "1" ]; then
echo
echo "Creating group 'vboxusers'. VM users must be member of that group!"
echo
groupadd -r -f vboxusers 2> /dev/null
fi
# install udev rule (disable with INSTALL_NO_UDEV=1 in /etc/default/virtualbox)
# and /dev/vboxdrv and /dev/vboxusb/*/* device nodes
install_device_node_setup root 0600 /usr/share/virtualbox "${usb_group}"
%if %{?rpm_redhat:1}%{!?rpm_redhat:0}
/sbin/chkconfig --add vboxdrv
/sbin/chkconfig --add vboxballoonctrl-service
/sbin/chkconfig --add vboxautostart-service
/sbin/chkconfig --add vboxweb-service
%endif
%if %{?rpm_suse:1}%{!?rpm_suse:0}
%{fillup_and_insserv -f -y -Y vboxdrv vboxballoonctrl-service vboxautostart-service vboxweb-service}
%endif
%if %{?rpm_mdv:1}%{!?rpm_mdv:0}
/sbin/ldconfig
%_post_service vboxdrv
%_post_service vboxballoonctrl-service
%_post_service vboxautostart-service
%_post_service vboxweb-service
%update_menus
%endif
update-mime-database /usr/share/mime &> /dev/null || :
update-desktop-database -q > /dev/null 2>&1 || :
touch --no-create /usr/share/icons/hicolor
gtk-update-icon-cache -q /usr/share/icons/hicolor 2> /dev/null || :
# Disable module compilation with INSTALL_NO_VBOXDRV=1 in /etc/default/virtualbox
BUILD_MODULES=0
REGISTER_MODULES=1
if [ ! -f /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
REGISTER_MODULES=0
if [ "$INSTALL_NO_VBOXDRV" != "1" ]; then
# compile problem
cat << EOF
No precompiled module for this kernel found -- trying to build one. Messages
emitted during module compilation will be logged to $LOG.
EOF
BUILD_MODULES=1
fi
fi
# if INSTALL_NO_VBOXDRV is set to 1, remove all shipped modules
if [ "$INSTALL_NO_VBOXDRV" = "1" ]; then
rm -f /lib/modules/*/misc/vboxdrv.ko
rm -f /lib/modules/*/misc/vboxnetflt.ko
rm -f /lib/modules/*/misc/vboxnetadp.ko
rm -f /lib/modules/*/misc/vboxpci.ko
fi
if [ $BUILD_MODULES -eq 1 ]; then
/etc/init.d/vboxdrv setup || true
else
if lsmod | grep -q "vboxdrv[^_-]"; then
/etc/init.d/vboxdrv stop || true
fi
if [ $REGISTER_MODULES -eq 1 ]; then
DKMS=`which dkms 2>/dev/null`
if [ -n "$DKMS" ]; then
$DKMS remove -m vboxhost -v %VER% --all > /dev/null 2>&1 || true
fi
fi
/etc/init.d/vboxdrv start > /dev/null
fi
/etc/init.d/vboxballoonctrl-service start > /dev/null
/etc/init.d/vboxautostart-service start > /dev/null
/etc/init.d/vboxweb-service start > /dev/null
%preun
# $1==0: remove the last version of the package
# $1==1: install the first time
# $1>=2: upgrade
%if %{?rpm_suse:1}%{!?rpm_suse:0}
%stop_on_removal vboxballoonctrl-service
%stop_on_removal vboxautostart-service
%stop_on_removal vboxweb-service
%endif
%if %{?rpm_mdv:1}%{!?rpm_mdv:0}
%_preun_service vboxballoonctrl-service
%_preun_service vboxautostart-service
%_preun_service vboxweb-service
%endif
%if %{?rpm_redhat:1}%{!?rpm_redhat:0}
if [ "$1" = 0 ]; then
/sbin/service vboxballoonctrl-service stop > /dev/null
/sbin/chkconfig --del vboxballoonctrl-service
/sbin/service vboxautostart-service stop > /dev/null
/sbin/chkconfig --del vboxautostart-service
/sbin/service vboxweb-service stop > /dev/null
/sbin/chkconfig --del vboxweb-service
fi
%endif
if [ "$1" = 0 ]; then
# check for active VMs
VBOXSVC_PID=`pidof VBoxSVC 2>/dev/null || true`
if [ -n "$VBOXSVC_PID" ]; then
kill -USR1 $VBOXSVC_PID
sleep 1
if pidof VBoxSVC > /dev/null 2>&1; then
echo "A copy of VirtualBox is currently running. Please close it and try again."
echo "Please note that it can take up to ten seconds for VirtualBox (in particular"
echo "the VBoxSVC daemon) to finish running."
exit 1
fi
fi
fi
%if %{?rpm_suse:1}%{!?rpm_suse:0}
%stop_on_removal vboxdrv
%endif
%if %{?rpm_mdv:1}%{!?rpm_mdv:0}
%_preun_service vboxdrv
%endif
if [ "$1" = 0 ]; then
%if %{?rpm_redhat:1}%{!?rpm_redhat:0}
/sbin/service vboxdrv stop > /dev/null
/sbin/chkconfig --del vboxdrv
%endif
rm -f /etc/udev/rules.d/60-vboxdrv.rules
rm -f /etc/vbox/license_agreed
rm -f /etc/vbox/module_not_compiled
fi
DKMS=`which dkms 2>/dev/null`
if [ -n "$DKMS" ]; then
$DKMS remove -m vboxhost -v %VER% --all > /dev/null 2>&1 || true
fi
%postun
%if %{?rpm_redhat:1}%{!?rpm_redhat:0}
if [ "$1" -ge 1 ]; then
/sbin/service vboxdrv restart > /dev/null 2>&1
/sbin/service vboxballoonctrl-service restart > /dev/null 2>&1
/sbin/service vboxautostart-service restart > /dev/null 2>&1
/sbin/service vboxweb-service restart > /dev/null 2>&1
fi
%endif
%if %{?rpm_suse:1}%{!?rpm_suse:0}
%restart_on_update vboxdrv vboxballoonctrl-service vboxautostart-service vboxweb-service
%insserv_cleanup
%endif
%if %{?rpm_mdv:1}%{!?rpm_mdv:0}
/sbin/ldconfig
%{clean_desktop_database}
%clean_menus
%endif
update-mime-database /usr/share/mime &> /dev/null || :
update-desktop-database -q > /dev/null 2>&1 || :
touch --no-create /usr/share/icons/hicolor
gtk-update-icon-cache -q /usr/share/icons/hicolor 2> /dev/null || :
rm -rf /usr/lib/virtualbox/ExtensionPacks
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%doc %{!?is_ose: LICENSE}
%doc UserManual*.pdf
%doc %{!?is_ose: VirtualBox*.chm}
%{_initrddir}/vboxdrv
%{_initrddir}/vboxballoonctrl-service
%{_initrddir}/vboxautostart-service
%{_initrddir}/vboxweb-service
%{?rpm_suse: %{py_sitedir}/*}
%{!?rpm_suse: %{python_sitelib}/*}
%{?rpm_suse: /sbin/rcvboxdrv}
%{?rpm_suse: /sbin/rcvboxballoonctrl-service}
%{?rpm_suse: /sbin/rcvboxautostart-service}
%{?rpm_suse: /sbin/rcvboxweb-service}
/etc/vbox
/usr/bin/*
/usr/src/vbox*
/usr/lib/virtualbox
/usr/share/applications/*
/usr/share/icons/hicolor/*/apps/*
/usr/share/icons/hicolor/*/mimetypes/*
/usr/share/mime/packages/*
/usr/share/pixmaps/*
/usr/share/virtualbox