VirtualBox.tmpl.spec revision 20fc4a350a4a8e56ffaac6cf57dcd677a7ac36c5
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# Spec file for creating VirtualBox rpm packages
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# Copyright (C) 2006-2012 Oracle Corporation
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# This file is part of VirtualBox Open Source Edition (OSE), as
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# available from http://www.virtualbox.org. This file is free software;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# you can redistribute it and/or modify it under the terms of the GNU
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# General Public License (GPL) as published by the Free Software
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# Foundation, in version 2 as it comes in the "COPYING" file of the
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%define %SPEC% 1
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%define %OSE% 1
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkSummary: Oracle VM VirtualBox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkName: %NAME%
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkVersion: %BUILDVER%_%BUILDREL%
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkRelease: 1
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkURL: http://www.virtualbox.org/
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkSource: VirtualBox.tar.bz2
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkLicense: GPLv2
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkGroup: Applications/System
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkVendor: Oracle Corporation
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkBuildRoot: %BUILDROOT%
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkRequires: %INITSCRIPTS% %LIBASOUND%
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%if %{?rpm_suse:1}%{!?rpm_suse:0}
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%debug_package
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%endif
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%MACROSPYTHON%
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%description
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkVirtualBox is a powerful PC virtualization solution allowing
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkyou to run a wide range of PC operating systems on your Linux
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenksystem. This includes Windows, Linux, FreeBSD, DOS, OpenBSD
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkand others. VirtualBox comes with a broad feature set and
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkexcellent performance, making it the premier virtualization
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenksoftware solution on the market.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%prep
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%setup -q
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkDESTDIR=""
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkunset DESTDIR
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%build
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%install
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# Mandriva: prevent replacing 'echo' by 'gprintf'
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkexport DONT_GPRINTIFY=1
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkrm -rf $RPM_BUILD_ROOT
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT/sbin
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT%{_initrddir}
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT/lib/modules
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT/etc/vbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT/usr/bin
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT/usr/src
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT/usr/share/applications
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT/usr/share/pixmaps
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT/usr/share/icons/hicolor
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT%{_defaultdocdir}/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT/usr/lib/virtualbox/ExtensionPacks
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT/usr/share/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -m 755 -d $RPM_BUILD_ROOT/usr/share/mime/packages
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv VBoxEFI32.fd $RPM_BUILD_ROOT/usr/lib/virtualbox || true
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv VBoxEFI64.fd $RPM_BUILD_ROOT/usr/lib/virtualbox || true
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv *.gc $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv *.r0 $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv *.rel $RPM_BUILD_ROOT/usr/lib/virtualbox || true
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv VBoxNetDHCP $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv VBoxNetNAT $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv VBoxNetAdpCtl $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkif [ -f VBoxVolInfo ]; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk mv VBoxVolInfo $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkfi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv VBoxXPCOMIPCD $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv components $RPM_BUILD_ROOT/usr/lib/virtualbox/components
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv *.so $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv *.so.4 $RPM_BUILD_ROOT/usr/lib/virtualbox || true
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s ../VBoxVMM.so $RPM_BUILD_ROOT/usr/lib/virtualbox/components/VBoxVMM.so
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv VBoxTestOGL $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv vboxshell.py $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk(export VBOX_INSTALL_PATH=/usr/lib/virtualbox && \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk cd ./sdk/installer && \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk %{__python} ./vboxapisetup.py install --prefix %{_prefix} --root $RPM_BUILD_ROOT)
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkrm -rf sdk/installer
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv sdk $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv nls $RPM_BUILD_ROOT/usr/share/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkcp -a src $RPM_BUILD_ROOT/usr/share/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv VBox.sh $RPM_BUILD_ROOT/usr/bin/VBox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv VBoxSysInfo.sh $RPM_BUILD_ROOT/usr/share/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv VBoxCreateUSBNode.sh $RPM_BUILD_ROOT/usr/share/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkcp icons/128x128/virtualbox.png $RPM_BUILD_ROOT/usr/share/pixmaps/virtualbox.png
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkcd icons
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk for i in *; do
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk if [ -f $i/virtualbox.png ]; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk install -d $RPM_BUILD_ROOT/usr/share/icons/hicolor/$i/apps
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk mv $i/virtualbox.png $RPM_BUILD_ROOT/usr/share/icons/hicolor/$i/apps
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk fi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk install -d $RPM_BUILD_ROOT/usr/share/icons/hicolor/$i/mimetypes
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk mv $i/* $RPM_BUILD_ROOT/usr/share/icons/hicolor/$i/mimetypes || true
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk rmdir $i
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk done
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkcd -
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkrmdir icons
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv virtualbox.xml $RPM_BUILD_ROOT/usr/share/mime/packages
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkfor i in VBoxManage VBoxSVC VBoxSDL VirtualBox VBoxHeadless VBoxExtPackHelperApp VBoxBalloonCtrl VBoxAutostart; do
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk mv $i $RPM_BUILD_ROOT/usr/lib/virtualbox; done
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkif %WEBSVC%; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk for i in vboxwebsrv webtest; do
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk mv $i $RPM_BUILD_ROOT/usr/lib/virtualbox; done
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkfi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkfor i in VBoxSDL VirtualBox VBoxHeadless VBoxNetDHCP VBoxNetNAT VBoxNetAdpCtl; do
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk chmod 4511 $RPM_BUILD_ROOT/usr/lib/virtualbox/$i; done
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkif [ -f $RPM_BUILD_ROOT/usr/lib/virtualbox/VBoxVolInfo ]; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk chmod 4511 $RPM_BUILD_ROOT/usr/lib/virtualbox/VBoxVolInfo
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkfi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkif [ -d ExtensionPacks/VNC ]; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk mv ExtensionPacks/VNC $RPM_BUILD_ROOT/usr/lib/virtualbox/ExtensionPacks
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkfi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv VBoxTunctl $RPM_BUILD_ROOT/usr/bin
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%if %{?is_ose:0}%{!?is_ose:1}
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkfor d in /lib/modules/*; do
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk if [ -L $d/build ]; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk rm -f /tmp/vboxdrv-Module.symvers
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk ./src/vboxhost/build_in_tmp \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk --save-module-symvers /tmp/vboxdrv-Module.symvers \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk --module-source `pwd`/src/vboxhost/vboxdrv \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk KBUILD_VERBOSE= KERN_DIR=$d/build MODULE_DIR=$RPM_BUILD_ROOT/$d/misc -j4 \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk %INSTMOD%
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk ./src/vboxhost/build_in_tmp \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk --use-module-symvers /tmp/vboxdrv-Module.symvers \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk --module-source `pwd`/src/vboxhost/vboxnetflt \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk KBUILD_VERBOSE= KERN_DIR=$d/build MODULE_DIR=$RPM_BUILD_ROOT/$d/misc -j4 \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk %INSTMOD%
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk ./src/vboxhost/build_in_tmp \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk --use-module-symvers /tmp/vboxdrv-Module.symvers \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk --module-source `pwd`/src/vboxhost/vboxnetadp \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk KBUILD_VERBOSE= KERN_DIR=$d/build MODULE_DIR=$RPM_BUILD_ROOT/$d/misc -j4 \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk %INSTMOD%
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk ./src/vboxhost/build_in_tmp \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk --use-module-symvers /tmp/vboxdrv-Module.symvers \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk --module-source `pwd`/src/vboxhost/vboxpci \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk KBUILD_VERBOSE= KERN_DIR=$d/build MODULE_DIR=$RPM_BUILD_ROOT/$d/misc -j4 \
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk %INSTMOD%
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk fi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkdone
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%endif
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%if %{?is_ose:0}%{!?is_ose:1}
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk mv kchmviewer $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk for i in rdesktop-vrdp.tar.gz rdesktop-vrdp-keymaps; do
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk mv $i $RPM_BUILD_ROOT/usr/share/virtualbox; done
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk mv rdesktop-vrdp $RPM_BUILD_ROOT/usr/bin
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%endif
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkfor i in additions/VBoxGuestAdditions.iso; do
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk mv $i $RPM_BUILD_ROOT/usr/share/virtualbox; done
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkif [ -d accessible ]; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk mv accessible $RPM_BUILD_ROOT/usr/lib/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkfi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -D -m 755 vboxdrv.init $RPM_BUILD_ROOT%{_initrddir}/vboxdrv
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%if %{?rpm_suse:1}%{!?rpm_suse:0}
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -sf ../etc/init.d/vboxdrv $RPM_BUILD_ROOT/sbin/rcvboxdrv
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%endif
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -D -m 755 vboxballoonctrl-service.init $RPM_BUILD_ROOT%{_initrddir}/vboxballoonctrl-service
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -D -m 755 vboxautostart-service.init $RPM_BUILD_ROOT%{_initrddir}/vboxautostart-service
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkinstall -D -m 755 vboxweb-service.init $RPM_BUILD_ROOT%{_initrddir}/vboxweb-service
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%if %{?rpm_suse:1}%{!?rpm_suse:0}
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -sf ../etc/init.d/vboxballoonctrl-service $RPM_BUILD_ROOT/sbin/rcvboxballoonctrl-service
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -sf ../etc/init.d/vboxautostart-service $RPM_BUILD_ROOT/sbin/rcvboxautostart-service
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -sf ../etc/init.d/vboxweb-service $RPM_BUILD_ROOT/sbin/rcvboxweb-service
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%endif
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/VirtualBox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxManage
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxmanage
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxSDL
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxsdl
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxVRDP
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxHeadless
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxheadless
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxBalloonCtrl
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxballoonctrl
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/VBoxAutostart
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxautostart
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s VBox $RPM_BUILD_ROOT/usr/bin/vboxwebsrv
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkln -s /usr/share/virtualbox/src/vboxhost $RPM_BUILD_ROOT/usr/src/vboxhost-%VER%
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv virtualbox.desktop $RPM_BUILD_ROOT/usr/share/applications/virtualbox.desktop
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkmv VBox.png $RPM_BUILD_ROOT/usr/share/pixmaps/VBox.png
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk%pre
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# defaults
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk[ -r /etc/default/virtualbox ] && . /etc/default/virtualbox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# check for active VMs of the installed (old) package
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkVBOXSVC_PID=`pidof VBoxSVC 2>/dev/null || true`
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkif [ -n "$VBOXSVC_PID" ]; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk # executed before the new package is installed!
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk if [ -f /etc/init.d/vboxballoonctrl-service ]; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk # try graceful termination; terminate the balloon control service first
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /etc/init.d/vboxballoonctrl-service stop 2>/dev/null || true
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk fi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk if [ -f /etc/init.d/vboxautostart-service ]; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk # try graceful termination; terminate the autostart service first
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /etc/init.d/vboxautostart-service stop 2>/dev/null || true
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk fi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk if [ -f /etc/init.d/vboxweb-service ]; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk # try graceful termination; terminate the webservice first
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk /etc/init.d/vboxweb-service stop 2>/dev/null || true
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk fi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk # ask the daemon to terminate immediately
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk kill -USR1 $VBOXSVC_PID
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk sleep 1
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk if pidof VBoxSVC > /dev/null 2>&1; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk echo "A copy of VirtualBox is currently running. Please close it and try again."
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk echo "Please note that it can take up to ten seconds for VirtualBox (in particular"
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk echo "the VBoxSVC daemon) to finish running."
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk exit 1
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk fi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkfi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# check for old installation
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkif [ -r /etc/vbox/vbox.cfg ]; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk . /etc/vbox/vbox.cfg
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk if [ "x$INSTALL_DIR" != "x" -a -d "$INSTALL_DIR" ]; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk echo "An old installation of VirtualBox was found. To install this package the"
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk echo "old package has to be removed first. Have a look at /etc/vbox/vbox.cfg to"
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk echo "determine the installation directory of the previous installation. After"
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk echo "uninstalling the old package remove the file /etc/vbox/vbox.cfg."
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk exit 1
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk fi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkfi
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk# XXX remove old modules from previous versions (disable with INSTALL_NO_VBOXDRV=1 in /etc/default/virtualbox)
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkif [ "$INSTALL_NO_VBOXDRV" != "1" ]; then
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk find /lib/modules -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2> /dev/null || true
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk find /lib/modules -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2> /dev/null || true
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk 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 -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/10-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