#
-# TODO:
+# TODO
+# - java bindings
# - Find how to compile with PLD CFLAGS/CXXFLAGS/LDFLAGS.
# - Package SDK.
# - Package utils (and write initscripts ?) for Guest OS.
# - Check License of VBoxGuestAdditions_*.iso, it's probably not GPL v2.
# If so check if it is distributable.
+# - resolve mess with subpackages?
+# - addtions: iso (containing additions/*.iso)
+# - guest: to be installed to guests (deps on x11 drivers)
#
# Conditional build:
+%bcond_without doc # don't build the documentation
%bcond_without dist_kernel # without distribution kernel
%bcond_without kernel # don't build kernel module
%bcond_without userspace # don't build userspace package
%define _enable_debug_packages 0
%endif
-%define rel 0.1
+%define rel 1
%define pname VirtualBox
-
-Summary: VirtualBox OSE - x86 hardware virtualizer
-Summary(pl.UTF-8): VirtualBox OSE - wirtualizator sprzętu x86
+Summary: VirtualBox - x86 hardware virtualizer
+Summary(pl.UTF-8): VirtualBox - wirtualizator sprzętu x86
Name: %{pname}%{_alt_kernel}
-Version: 3.2.8
+Version: 4.1.6
Release: %{rel}
License: GPL v2
Group: Applications/Emulators
-Source0: http://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}-OSE.tar.bz2
-# Source0-md5: 84de65bddb365ba61eddd3b112b303e5
-Source1: http://download.virtualbox.org/virtualbox/%{version}/UserManual.pdf
-# Source1-md5: 322feb471c55b81e95e0caecdc93efb0
-Source2: http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
-# Source2-md5: 023cc07b07e0b3850c5e8c354ddc6075
+Source0: http://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}.tar.bz2
+# Source0-md5: 03cd0875729558a46f910483e1984316
+Source1: http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
+# Source1-md5: 69d144809cec66c61aadcbbf16005d48
Source3: %{pname}-vboxdrv.init
Source4: %{pname}-vboxguest.init
Source5: %{pname}-vboxnetflt.init
Source6: %{pname}-vboxsf.init
Source7: %{pname}-vboxnetadp.init
-Source8: %{pname}.sh
-Source9: mount.vdi
-Source10: udev.rules
-Patch0: %{pname}-configure.patch
-Patch1: %{pname}-configure-spaces.patch
-Patch2: %{pname}-export_modules.patch
-Patch3: %{pname}-VBoxSysInfo.patch
-Patch4: %{pname}-warning_workaround.patch
+Source8: %{pname}-vboxpci.init
+Source9: %{pname}.sh
+Source10: mount.vdi
+Source11: udev.rules
+Patch0: %{pname}-configure-spaces.patch
+Patch1: %{pname}-export_modules.patch
+Patch2: %{pname}-VBoxSysInfo.patch
+Patch3: %{pname}-warning_workaround.patch
+Patch4: %{pname}-vnc.patch
+Patch5: %{pname}-dri.patch
+Patch6: %{pname}-disable_build_NetBiosBin.patch
+# ubuntu patches
+Patch10: 16-no-update.patch
+Patch11: 18-system-xorg.patch
+# /ubuntu patches
URL: http://www.virtualbox.org/
BuildRequires: rpmbuild(macros) >= 1.535
%if %{with userspace}
%if "%{pld_release}" == "ac"
BuildRequires: XFree86-devel
%else
+BuildRequires: xorg-lib-libXcomposite-devel
BuildRequires: xorg-lib-libXcursor-devel
BuildRequires: xorg-lib-libXmu-devel
+BuildRequires: xorg-proto-glproto-devel
+BuildRequires: xorg-xserver-server-devel
%endif
BuildRequires: OpenGL-GLU-devel
BuildRequires: OpenGL-devel
BuildRequires: bcc
BuildRequires: bin86
BuildRequires: curl-devel
+%{?with_doc:BuildRequires: docbook-dtd44-xml}
BuildRequires: gcc >= 5:3.2.3
BuildRequires: libIDL-devel
BuildRequires: libcap-static
+BuildRequires: libdrm-devel
BuildRequires: libpng-devel >= 1.2.5
BuildRequires: libstdc++-devel >= 5:3.2.3
BuildRequires: libstdc++-static >= 5:3.2.3
BuildRequires: libuuid-devel
+BuildRequires: libvncserver-devel >= 0.9.7
BuildRequires: libxml2-devel >= 2.6.26
BuildRequires: libxslt-devel >= 1.1.17
BuildRequires: libxslt-progs >= 1.1.17
+BuildRequires: makeself
+BuildRequires: mkisofs
BuildRequires: pam-devel
+BuildRequires: pixman-devel
BuildRequires: pkgconfig
BuildRequires: pulseaudio-devel >= 0.9.0
BuildRequires: python-devel
BuildRequires: qt4-build >= 4.2.0
BuildRequires: qt4-linguist
BuildRequires: sed >= 4.0
+%if %{with doc}
+BuildRequires: texlive-fonts-bitstream
+BuildRequires: texlive-fonts-other
+BuildRequires: texlive-fonts-type1-bitstream
+BuildRequires: texlive-format-pdflatex
+BuildRequires: texlive-latex-ucs
+BuildRequires: texlive-xetex
+%endif
BuildRequires: which
BuildRequires: xalan-c-devel >= 1.10.0
BuildRequires: xerces-c-devel >= 2.6.0
Requires(postun): /usr/sbin/groupdel
Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
-Requires: QtCore >= 4.6.1
+Requires: QtCore >= 4.7.0
Suggests: gxmessage
Provides: group(vbox)
ExclusiveArch: %{ix86} %{x8664}
%define _sbindir /sbin
%description
-Oracle VirtualBox OSE is a general-purpose full virtualizer for x86
+Oracle VirtualBox is a general-purpose full virtualizer for x86
hardware. Targeted at server, desktop and embedded use, it is now the
only professional-quality virtualization solution that is also Open
Source Software.
-Some of the features of VirtualBox OSE are:
+Some of the features of VirtualBox are:
-Modularity: VirtualBox OSE has an extremely modular design with
+Modularity: VirtualBox has an extremely modular design with
well-defined internal programming interfaces and a client/server
design. This makes it easy to control it from several interfaces at
once: for example, you can start a virtual machine in a typical
virtual machine GUI and then control that machine from the command
-line. VirtualBox OSE also comes with a full Software Development Kit:
-even though it is Open Source Software, you don't have to hack the
-source to write a new interface for VirtualBox OSE.
+line. VirtualBox also comes with a full Software Development Kit: even
+though it is Open Source Software, you don't have to hack the source
+to write a new interface for VirtualBox.
Virtual machine descriptions in XML: the configuration settings of
virtual machines are stored entirely in XML and are independent of the
You should install this package in your Host OS.
%description -l pl.UTF-8
-Oracle VirtualBox OSE jest emulatorem sprzętu x86. Kierowany do
-zastosowań serwerowych, desktopowych oraz wbudowanych jest obecnie
-jedynym wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym
-również jako Otwarte Oprogramowanie.
+Oracle VirtualBox jest emulatorem sprzętu x86. Kierowany do zastosowań
+serwerowych, desktopowych oraz wbudowanych jest obecnie jedynym
+wysokiej jakości rozwiązaniem wirtualizacyjnym dostępnym również jako
+Otwarte Oprogramowanie.
Przykładowe cechy VirtualBoksa:
-Modularność: VirtualBox OSE jest wysoce zmodularyzowanym produktem z
+Modularność: VirtualBox jest wysoce zmodularyzowanym produktem z
dobrze zaprojektowanym wewnętrznym interfejsem programowym typu
klient/serwer. Dzięki temu można łatwo kontrolować go za pomocą
różnych interfejsów. Można na przykład uruchomić maszynę wirtualną z
poziomu interfejsu graficznego, a później kontrolować ją z linii
-poleceń. VirtualBox OSE dostarcza również pełny pakiet deweloperski,
-co pozwala stworzyć dowolny inny interfejs zarządzania maszyną
-wirtualną.
+poleceń. VirtualBox dostarcza również pełny pakiet deweloperski, co
+pozwala stworzyć dowolny inny interfejs zarządzania maszyną wirtualną.
Opisy maszyn wirtualnych w XML-u: konfiguracje poszczególnych maszyn
wirtualnych są w całości przechowywane w XML-u i są niezależne od
lokalnej maszyny. Dzięki temu można szybko i łatwo przenieść
konfigurację maszyny wirtualnej na inny komputer.
+%package doc
+Summary: VirtualBox documentation
+Group: Documentation
+
+%description doc
+This package contains VirtualBox User Manual.
+
%package udev
-Summary: udev rules for VirtualBox OSE kernel modules
+Summary: udev rules for VirtualBox kernel modules
Summary(pl.UTF-8): Reguły udev dla modułów jądra Linuksa dla VirtualBoksa
-Release: %{rel}
Group: Base/Kernel
Requires: udev-core
%description udev
-udev rules for VirtualBox OSE kernel modules.
+udev rules for VirtualBox kernel modules.
-You should install this package in your Host OS.
+You should install this package in your Host OS and in Guest OS.
%description udev -l pl.UTF-8
Reguły udev dla modułów jądra Linuksa dla VirtualBoksa.
%package guest
Summary: VirtualBox Guest Additions
Group: Base
-Requires: kernel%{_alt_kernel}-misc-vboxsf = %{version}-%{release}
-Requires: kernel%{_alt_kernel}-misc-vboxvideo = %{version}-%{release}
Requires: xorg-driver-input-vboxmouse = %{version}-%{release}
Requires: xorg-driver-video-vboxvideo = %{version}-%{release}
+Suggests: kernel%{_alt_kernel}-misc-vboxsf = %{version}-%{rel}@%{_kernel_ver_str}
+Suggests: kernel%{_alt_kernel}-misc-vboxvideo = %{version}-%{rel}@%{_kernel_ver_str}
%description guest
Tools that utilize kernel modules for supporting integration with the
perform automated guest logons.
%package -n xorg-driver-input-vboxmouse
-Summary: X.org mouse driver for VirtualBox OSE guest OS
-Summary(pl.UTF-8): Sterownik myszy dla systemu gościa w VirtualBoksie OSE
+Summary: X.org mouse driver for VirtualBox guest OS
+Summary(pl.UTF-8): Sterownik myszy dla systemu gościa w VirtualBoksie
Group: X11/Applications
Requires: xorg-xserver-server >= 1.0.99.901
-%if "%{pld_release}" == "ti"
-Requires: xorg-xserver-server(xinput-abi) <= 7.0
-%else
-Requires: xorg-xserver-server(xinput-abi) <= 9.0
-%endif
+Requires: xorg-xserver-server(xinput-abi) <= 13.0
Requires: xorg-xserver-server(xinput-abi) >= 4.0
%description -n xorg-driver-input-vboxmouse
-X.org mouse driver for VirtualBox OSE guest OS.
+X.org mouse driver for VirtualBox guest OS.
%description -n xorg-driver-input-vboxmouse -l pl.UTF-8
Sterownik myszy dla systemu gościa w VirtualBoksie.
%package -n xorg-driver-video-vboxvideo
-Summary: X.org video driver for VirtualBox OSE guest OS
-Summary(pl.UTF-8): Sterownik grafiki dla systemu gościa w VirtualBoksie OSE
+Summary: X.org video driver for VirtualBox guest OS
+Summary(pl.UTF-8): Sterownik grafiki dla systemu gościa w VirtualBoksie
Group: X11/Applications
+Requires: Mesa-dri-driver-swrast
Requires: xorg-xserver-libdri >= 1.7.4
Requires: xorg-xserver-server >= 1.0.99.901
-%if "%{pld_release}" == "ti"
-Requires: xorg-xserver-server(videodrv-abi) <= 6.0
-%else
-Requires: xorg-xserver-server(videodrv-abi) <= 7.0
-%endif
+Requires: xorg-xserver-server(videodrv-abi) <= 11.0
Requires: xorg-xserver-server(videodrv-abi) >= 2.0
%description -n xorg-driver-video-vboxvideo
-X.org video driver for VirtualBox OSE guest OS.
+X.org video driver for VirtualBox guest OS.
%description -n xorg-driver-video-vboxvideo -l pl.UTF-8
-Sterownik grafiki dla systemu gościa w VirtualBoksie OSE.
+Sterownik grafiki dla systemu gościa w VirtualBoksie.
+# KERNEL PACKAGES
+# KEEP ALL REGULAR SUBPACKAGES BEFORE KERNEL PACKAGES.
%package -n kernel%{_alt_kernel}-misc-vboxguest
-Summary: VirtualBox OSE Guest Additions for Linux Module
-Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa OSE
+Summary: VirtualBox Guest Additions for Linux Module
+Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
Release: %{rel}@%{_kernel_ver_str}
Group: Base/Kernel
Requires(post,postun): /sbin/depmod
Conflicts: kernel%{_alt_kernel}-misc-vboxdrv
%description -n kernel%{_alt_kernel}-misc-vboxguest
-VirtualBox OSE Guest Additions for Linux Module.
+VirtualBox Guest Additions for Linux Module.
You should install this package in your Guest OS.
%description -n kernel%{_alt_kernel}-misc-vboxguest -l pl.UTF-8
-Moduł jądra Linuksa vboxguest dla VirtualBoksa OSE - dodatki dla
-systemu gościa.
+Moduł jądra Linuksa vboxguest dla VirtualBoksa - dodatki dla systemu
+gościa.
%package -n kernel%{_alt_kernel}-misc-vboxdrv
-Summary: VirtualBox OSE Support Driver
-Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa OSE
+Summary: VirtualBox Support Driver
+Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
Release: %{rel}@%{_kernel_ver_str}
Group: Base/Kernel
Requires(post,postun): /sbin/depmod
Provides: kernel(vboxdrv) = %{version}-%{rel}
%description -n kernel%{_alt_kernel}-misc-vboxdrv
-VirtualBox OSE Support Driver.
+VirtualBox Support Driver.
You should install this package in your Host OS.
%description -n kernel%{_alt_kernel}-misc-vboxdrv -l pl.UTF-8
-Moduł jądra Linuksa dla VirtualBoksa OSE - sterownik wsparcia dla
-systemu głównego.
+Moduł jądra Linuksa dla VirtualBoksa - sterownik wsparcia dla systemu
+głównego.
%package -n kernel%{_alt_kernel}-misc-vboxnetadp
-Summary: VirtualBox OSE Network Adapter Driver
-Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa OSE
+Summary: VirtualBox Network Adapter Driver
+Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
Release: %{rel}@%{_kernel_ver_str}
Group: Base/Kernel
Requires(post,postun): /sbin/depmod
Provides: kernel(vboxnetflt) = %{version}-%{rel}
%description -n kernel%{_alt_kernel}-misc-vboxnetadp
-VirtualBox OSE Network Adapter Driver.
+VirtualBox Network Adapter Driver.
You should install this package in your Host OS.
%description -n kernel%{_alt_kernel}-misc-vboxnetadp -l pl.UTF-8
-Moduł jądra Linuksa dla VirtualBoksa OSE - sterownik witrualnej karty
+Moduł jądra Linuksa dla VirtualBoksa - sterownik witrualnej karty
sieciowej.
%package -n kernel%{_alt_kernel}-misc-vboxnetflt
-Summary: VirtualBox OSE Network Filter Driver
-Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa OSE
+Summary: VirtualBox Network Filter Driver
+Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
Release: %{rel}@%{_kernel_ver_str}
Group: Base/Kernel
Requires(post,postun): /sbin/depmod
Provides: kernel(vboxnetflt) = %{version}-%{rel}
%description -n kernel%{_alt_kernel}-misc-vboxnetflt
-VirtualBox OSE Network Filter Driver.
+VirtualBox Network Filter Driver.
+
+You should install this package in your Host OS.
+
+%description -n kernel%{_alt_kernel}-misc-vboxnetflt -l pl.UTF-8
+Moduł jądra Linuksa dla VirtualBoksa - sterownik filtrowania sieci dla
+systemu głównego.
+
+%package -n kernel%{_alt_kernel}-misc-vboxpci
+Summary: VirtualBox PCI card passthrough Driver
+Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
+Release: %{rel}@%{_kernel_ver_str}
+Group: Base/Kernel
+Requires(post,postun): /sbin/depmod
+Requires: dev >= 2.9.0-7
+Requires: kernel%{_alt_kernel}-misc-vboxdrv
+%if %{with dist_kernel}
+%requires_releq_kernel
+Requires(postun): %releq_kernel
+%endif
+Provides: kernel(vboxpci) = %{version}-%{rel}
+
+%description -n kernel%{_alt_kernel}-misc-vboxpci
+VirtualBox PCI card passthrough driver that works as host proxy
+between guest and PCI hardware.
You should install this package in your Host OS.
%description -n kernel%{_alt_kernel}-misc-vboxnetflt -l pl.UTF-8
-Moduł jądra Linuksa dla VirtualBoksa OSE - sterownik filtrowania sieci
-dla systemu głównego.
+Moduł jądra Linuksa dla VirtualBoksa - sterownik, ktory działa jako
+proxy między gościem i gospodarzem sprzętu PCI.
%package -n kernel%{_alt_kernel}-misc-vboxsf
-Summary: Host file system access (Shared Folders) for VirtualBox OSE
-Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa OSE
+Summary: Host file system access (Shared Folders) for VirtualBox
+Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
Release: %{rel}@%{_kernel_ver_str}
Group: Base/Kernel
Requires(post,postun): /sbin/depmod
Obsoletes: kernel%{_alt_kernel}-misc-vboxvfs
%description -n kernel%{_alt_kernel}-misc-vboxsf
-Host file system access (Shared Folders) for VirtualBox OSE.
+Host file system access (Shared Folders) for VirtualBox.
You should install this package in your Guest OS.
%description -n kernel%{_alt_kernel}-misc-vboxsf -l pl.UTF-8
-Moduł jądra Linuksa dla VirtualBoksa OSE - dostęp do plików systemu
+Moduł jądra Linuksa dla VirtualBoksa - dostęp do plików systemu
głównego z poziomu systemu gościa.
%package -n kernel%{_alt_kernel}-misc-vboxvideo
-Summary: DRM support for VirtualBox OSE
-Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa OSE
+Summary: DRM support for VirtualBox
+Summary(pl.UTF-8): Moduł jądra Linuksa dla VirtualBoksa
Release: %{rel}@%{_kernel_ver_str}
Group: Base/Kernel
Requires(post,postun): /sbin/depmod
Provides: kernel(vboxvideo) = %{version}-%{rel}
%description -n kernel%{_alt_kernel}-misc-vboxvideo
-DRM support for VirtualBox OSE.
+DRM support for VirtualBox.
You should install this package in your Guest OS.
%description -n kernel%{_alt_kernel}-misc-vboxvideo -l pl.UTF-8
-Moduł jądra Linuksa dla VirtualBoksa OSE - sterownik obsługi DRM.
+Moduł jądra Linuksa dla VirtualBoksa - sterownik obsługi DRM.
%prep
%setup -q -n %{pname}-%{version}_OSE
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
+%patch6 -p1
-%{__sed} -i -e 's,$VBOX_DOC_PATH,%{_docdir}/%{name}-%{version},' src/VBox/Installer/linux/virtualbox.desktop
-%{__sed} -i -e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/linux/virtualbox.desktop
+%{__sed} -i -e 's,@VBOX_DOC_PATH@,%{_docdir}/%{name}-%{version},' \
+ -e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/common/virtualbox.desktop.in
-cp -a %{SOURCE1} .
-sed 's#@LIBDIR@#%{_libdir}#' < %{SOURCE8} > VirtualBox-wrapper.sh
+sed 's#@LIBDIR@#%{_libdir}#' < %{SOURCE9} > VirtualBox-wrapper.sh
install -d PLD-MODULE-BUILD/{GuestDrivers,HostDrivers}
cd PLD-MODULE-BUILD
../src/VBox/HostDrivers/linux/export_modules host-modules.tar.gz --without-hardening
tar -zxf host-modules.tar.gz -C HostDrivers
cd -
+%patch10 -p1
+%patch11 -p1
+
%build
%if %{with userspace}
+echo "VBOX_WITH_TESTCASES := " > LocalConfig.kmk
./configure \
--with-gcc="%{__cc}" \
--with-g++="%{__cxx}" \
+ %{!?with_doc:--disable-docs} \
+ --disable-java \
--disable-hardening \
- --disable-kmods
+ --disable-kmods \
+ --enable-vnc
+XSERVER_VERSION=$(rpm -q --queryformat '%{VERSION}\n' xorg-xserver-server-devel | awk -F. ' { print $1 $2 } ' 2> /dev/null || echo ERROR)
. ./env.sh && \
-kmk -j1 %{?with_verbose:KBUILD_VERBOSE=3} USER=$(id -un)
+kmk -j1 \
+ %{?with_verbose:KBUILD_VERBOSE=3} \
+ USER=$(id -un) \
+ VBOX_VERSION_STRING='$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)'_PLD \
+ XSERVER_VERSION="$XSERVER_VERSION"
%endif
%if %{with kernel}
%build_kernel_modules -m vboxdrv -C vboxdrv
%build_kernel_modules -m vboxnetadp -C vboxnetadp
%build_kernel_modules -m vboxnetflt -C vboxnetflt
+%build_kernel_modules -m vboxpci -C vboxpci
cd ../GuestDrivers
%build_kernel_modules -m vboxguest -C vboxguest
%build_kernel_modules -m vboxsf -C vboxsf -c
%build_kernel_modules -m vboxvideo -C vboxvideo_drm
cd ../..
-%{__cc} %{rpmcflags} %{rpmldflags} -Wall -Werror src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c -o mount.vboxsf
+%{__cc} %{rpmcflags} %{rpmldflags} -Wall -Werror src/VBox/Additions/linux/sharedfolders/{mount.vboxsf.c,vbsfmount.c} -o mount.vboxsf
%endif
%install
rm -rf $RPM_BUILD_ROOT
%if %{with userspace}
-install -d \
- $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir},%{_pixmapsdir},%{_desktopdir}} \
+install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}/%{pname}/ExtensionPacks} \
+ $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \
$RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,dri,input}
# test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
rm -f $RPM_BUILD_ROOT/VBox.png
fi
-cp -a$l %{outdir} $RPM_BUILD_ROOT%{_libdir}/%{pname}
+cp -a$l %{outdir}/* $RPM_BUILD_ROOT%{_libdir}/%{pname}
-cp -a %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso
-install -p %{SOURCE9} $RPM_BUILD_ROOT%{_sbindir}/mount.vdi
+cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso
+install -p %{SOURCE10} $RPM_BUILD_ROOT%{_sbindir}/mount.vdi
install -p VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_libdir}/%{pname}
for f in {VBox{BFE,Headless,Manage,SDL,SVC,Tunctl,XPCOMIPCD},VirtualBox}; do
ln -s %{_libdir}/%{pname}/VirtualBox-wrapper.sh $RPM_BUILD_ROOT%{_bindir}/$f
done
-mv $RPM_BUILD_ROOT{%{_libdir}/%{pname},%{_pixmapsdir}}/VBox.png
+mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/VBox.png,%{_pixmapsdir}/virtualbox.png}
mv $RPM_BUILD_ROOT{%{_libdir}/%{pname},%{_desktopdir}}/virtualbox.desktop
-%if "%{pld_release}" == "ti"
-mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxmouse_drv_17.so,%{_libdir}/xorg/modules/input/vboxmouse_drv.so}
-mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxvideo_drv_17.so,%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so}
-%else
-mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxmouse_drv_18.so,%{_libdir}/xorg/modules/input/vboxmouse_drv.so}
-mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxvideo_drv_18.so,%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so}
-%endif
+mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/vboxmouse_drv.so,%{_libdir}/xorg/modules/input/vboxmouse_drv.so}
+mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxvideo_drv.so,%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so}
mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/VBoxOGL.so,%{_libdir}/xorg/modules/dri/vboxvideo_dri.so}
# xorg other driver versions
-rm -vf $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/vboxmouse_drv*.{o,so}
-rm -vf $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/vboxvideo_drv*.{o,so}
+rm -vf $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxmouse_drv*.{o,so}
+rm -vf $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxvideo_drv*.{o,so}
# XXX: where else to install them that vboxvideo_dri.so finds them? patch with rpath?
mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLarrayspu.so
mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpassthroughspu.so
install -d $RPM_BUILD_ROOT/etc/udev/rules.d
-cp -a %{SOURCE10} $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
+cp -a %{SOURCE11} $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
install -d $RPM_BUILD_ROOT/%{_lib}/security
mv $RPM_BUILD_ROOT{%{_libdir}/VirtualBox/additions,/%{_lib}/security}/pam_vbox.so
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/scm
# Guest Only Tools
+install -d $RPM_BUILD_ROOT/etc/{X11/xinit/xinitrc.d,xdg/autostart}
mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxService
+mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxClient
+mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_bindir}}/VBoxControl
+install -p -D src/VBox/Additions/x11/Installer/98vboxadd-xclient \
+ $RPM_BUILD_ROOT/etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
+cp -p src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ $RPM_BUILD_ROOT/etc/xdg/autostart/vboxclient.desktop
# unknown - checkme
%if 1
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPLoggerCtl
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPUninstall
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/VBox.sh
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxClient
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxControl
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxshell.py
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/xpidl
%endif
install -p %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxnetflt
install -p %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxsf
install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxnetadp
+install -p %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxpci
%install_kernel_modules -m PLD-MODULE-BUILD/HostDrivers/vboxdrv/vboxdrv -d misc
%install_kernel_modules -m PLD-MODULE-BUILD/HostDrivers/vboxnetadp/vboxnetadp -d misc
%install_kernel_modules -m PLD-MODULE-BUILD/HostDrivers/vboxnetflt/vboxnetflt -d misc
+%install_kernel_modules -m PLD-MODULE-BUILD/HostDrivers/vboxpci/vboxpci -d misc
%install_kernel_modules -m PLD-MODULE-BUILD/GuestDrivers/vboxguest/vboxguest -d misc
%install_kernel_modules -m PLD-MODULE-BUILD/GuestDrivers/vboxsf/vboxsf -d misc
%install_kernel_modules -m PLD-MODULE-BUILD/GuestDrivers/vboxvideo_drm/vboxvideo -d misc
%groupadd -g 221 -r -f vbox
%post
+%update_desktop_database
+
cat << 'EOF'
You must install vboxdrv kernel module for this software to work:
kernel-misc-vboxdrv-%{version}-%{rel}@%{_kernel_ver_str}
Additionally you might want to install:
kernel-misc-vboxnetadp-%{version}-%{rel}@%{_kernel_ver_str}
kernel-misc-vboxnetflt-%{version}-%{rel}@%{_kernel_ver_str}
+ kernel-misc-vboxpci-%{version}-%{rel}@%{_kernel_ver_str}
On Guest Linux system you might want to install:
kernel-misc-vboxguest-%{version}-%{rel}@%{_kernel_ver_str}
%post -n kernel%{_alt_kernel}-misc-vboxguest
%depmod %{_kernel_ver}
/sbin/chkconfig --add vboxguest
-%service vboxguest restart "VirtualBox OSE Guest additions driver"
+%service vboxguest restart "VirtualBox Guest additions driver"
%postun -n kernel%{_alt_kernel}-misc-vboxguest
%depmod %{_kernel_ver}
%post -n kernel%{_alt_kernel}-misc-vboxdrv
%depmod %{_kernel_ver}
/sbin/chkconfig --add vboxdrv
-%service vboxdrv restart "VirtualBox OSE Support Driver"
+%service vboxdrv restart "VirtualBox Support Driver"
%postun -n kernel%{_alt_kernel}-misc-vboxdrv
%depmod %{_kernel_ver}
%post -n kernel%{_alt_kernel}-misc-vboxnetadp
%depmod %{_kernel_ver}
/sbin/chkconfig --add vboxnetadp
-%service vboxnetadp restart "VirtualBox OSE Network HostOnly driver"
+%service vboxnetadp restart "VirtualBox Network HostOnly driver"
%postun -n kernel%{_alt_kernel}-misc-vboxnetadp
%depmod %{_kernel_ver}
%post -n kernel%{_alt_kernel}-misc-vboxnetflt
%depmod %{_kernel_ver}
/sbin/chkconfig --add vboxnetflt
-%service vboxnetflt restart "VirtualBox OSE Network Filter driver"
+%service vboxnetflt restart "VirtualBox Network Filter driver"
%postun -n kernel%{_alt_kernel}-misc-vboxnetflt
%depmod %{_kernel_ver}
/sbin/chkconfig --del vboxnetflt
fi
+%post -n kernel%{_alt_kernel}-misc-vboxpci
+%depmod %{_kernel_ver}
+/sbin/chkconfig --add vboxpci
+%service vboxnetflt restart "VirtualBox PCI passthrough driver"
+
+%postun -n kernel%{_alt_kernel}-misc-vboxpci
+%depmod %{_kernel_ver}
+
+%preun -n kernel%{_alt_kernel}-misc-vboxpci
+if [ "$1" = "0" ]; then
+ %service vboxpci stop
+ /sbin/chkconfig --del vboxpci
+fi
+
%post -n kernel%{_alt_kernel}-misc-vboxsf
%depmod %{_kernel_ver}
/sbin/chkconfig --add vboxsf
-%service vboxsf restart "VirtualBox OSE Host file system access (Shared Folders)"
+%service vboxsf restart "VirtualBox Host file system access (Shared Folders)"
%postun -n kernel%{_alt_kernel}-misc-vboxsf
%depmod %{_kernel_ver}
%if %{with userspace}
%files
%defattr(644,root,root,755)
-%doc UserManual.pdf
%dir %{_libdir}/VirtualBox
+%dir %{_libdir}/VirtualBox/ExtensionPacks
%dir %{_libdir}/VirtualBox/additions
%dir %{_libdir}/VirtualBox/components
%dir %{_libdir}/VirtualBox/nls
%attr(755,root,root) %{_bindir}/VBoxXPCOMIPCD
%attr(755,root,root) %{_bindir}/VirtualBox
%attr(755,root,root) %{_sbindir}/mount.vdi
-%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSVC
+%attr(755,root,root) %{_libdir}/VirtualBox/DBGCPlugInDiggers.so
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxAuth.so
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxAuthSimple.so
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxBFE
-%attr(755,root,root) %{_libdir}/VirtualBox/VBoxHeadless
-%attr(755,root,root) %{_libdir}/VirtualBox/VBoxManage
-%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL
-%attr(755,root,root) %{_libdir}/VirtualBox/VBoxTestOGL
-%attr(755,root,root) %{_libdir}/VirtualBox/VBoxTunctl
-%attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMIPCD
-%attr(755,root,root) %{_libdir}/VirtualBox/VBoxDD.so
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxBalloonCtrl
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxCreateUSBNode.sh
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxDbg.so
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxDD2.so
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxDD.so
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxDDU.so
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxExtPackHelperApp
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxGuestControlSvc.so
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxGuestPropSvc.so
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxHeadless
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxKeyboard.so
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxManage
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxNetAdpCtl
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxNetDHCP
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxOGLhostcrutil.so
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxREM64.so
%endif
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxRT.so
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSDL
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSharedClipboard.so
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSharedCrOpenGL.so
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSharedFolders.so
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSVC
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSysInfo.sh
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxTestOGL
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxTunctl
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxVMM.so
-%attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOM.so
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMC.so
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOMIPCD
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxXPCOM.so
%attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox
%attr(755,root,root) %{_libdir}/VirtualBox/VirtualBox-wrapper.sh
-%attr(755,root,root) %{_libdir}/VirtualBox/VBoxSysInfo.sh
%{_libdir}/VirtualBox/VBoxDD2GC.gc
%{_libdir}/VirtualBox/VBoxDDGC.gc
%{_libdir}/VirtualBox/VMMGC.gc
%lang(ja) %{_libdir}/VirtualBox/nls/*_ja.qm
%lang(km_KH) %{_libdir}/VirtualBox/nls/*_km_KH.qm
%lang(ko) %{_libdir}/VirtualBox/nls/*_ko.qm
+%lang(lt) %{_libdir}/VirtualBox/nls/*_lt.qm
%lang(nl) %{_libdir}/VirtualBox/nls/*_nl.qm
%lang(pl) %{_libdir}/VirtualBox/nls/*_pl.qm
%lang(pt) %{_libdir}/VirtualBox/nls/*_pt.qm
%lang(uk) %{_libdir}/VirtualBox/nls/*_uk.qm
%lang(zh_CN) %{_libdir}/VirtualBox/nls/*_zh_CN.qm
%lang(zh_TW) %{_libdir}/VirtualBox/nls/*_zh_TW.qm
-%{_pixmapsdir}/VBox.png
+%{_pixmapsdir}/virtualbox.png
%{_desktopdir}/*.desktop
+%{_libdir}/VirtualBox/icons
+%{_libdir}/VirtualBox/virtualbox.xml
%files additions
%defattr(644,root,root,755)
%files guest
%defattr(644,root,root,755)
+# NOTE: unfinished, should contain .desktop files for starting up mouse
+# integration and other desktop services
+# NOTE: the filelist is incomplete too
+%attr(755,root,root) %{_bindir}/VBoxClient
+%attr(755,root,root) %{_bindir}/VBoxControl
%attr(755,root,root) %{_bindir}/VBoxService
+/etc/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
+/etc/xdg/autostart/vboxclient.desktop
+
+%attr(755,root,root) %{_libdir}/VirtualBox/additions/autorun.sh
+%attr(755,root,root) %{_libdir}/VirtualBox/additions/vboxadd
+%attr(755,root,root) %{_libdir}/VirtualBox/additions/vboxadd-service
+%attr(755,root,root) %{_libdir}/VirtualBox/additions/vboxadd-x11
%files -n pam-pam_vbox
%defattr(644,root,root,755)
%attr(755,root,root) /%{_lib}/security/pam_vbox.so
+%if %{with doc}
+%files doc
+%defattr(644,root,root,755)
+%doc %{outdir}/UserManual.pdf
+%endif
+
%files udev
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
%attr(754,root,root) /etc/rc.d/init.d/vboxnetflt
/lib/modules/%{_kernel_ver}/misc/vboxnetflt.ko*
+%files -n kernel%{_alt_kernel}-misc-vboxpci
+%defattr(644,root,root,755)
+%attr(754,root,root) /etc/rc.d/init.d/vboxpci
+/lib/modules/%{_kernel_ver}/misc/vboxpci.ko*
+
%files -n kernel%{_alt_kernel}-misc-vboxsf
%defattr(644,root,root,755)
%attr(754,root,root) /etc/rc.d/init.d/vboxsf