-#
# 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.
%bcond_without dist_kernel # without distribution kernel
%bcond_without kernel # don't build kernel module
%bcond_without userspace # don't build userspace package
+%bcond_with webservice # webservice (soap) support
+%bcond_without verbose
%bcond_with force_userspace # force userspace build (useful if alt_kernel is set)
-%bcond_with verbose
%if %{without kernel}
%undefine with_dist_kernel
%define _enable_debug_packages 0
%endif
-%define rel 1
+%define rel 6
%define pname VirtualBox
Summary: VirtualBox - x86 hardware virtualizer
Summary(pl.UTF-8): VirtualBox - wirtualizator sprzętu x86
Name: %{pname}%{_alt_kernel}
-Version: 4.2.2
+Version: 4.2.4
Release: %{rel}
License: GPL v2
Group: Applications/Emulators
Source0: http://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}.tar.bz2
-# Source0-md5: 2b65dcd9649e56ac6338670b3fb4a14d
+# Source0-md5: d1ec2d2a3f2f3f0b277dfe2c520c2e33
Source1: http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
-# Source1-md5: 5336ec5a543549df7b5792b050376aa6
+# Source1-md5: 46fc9cf002e384fb199029c681efd7e8
Source3: %{pname}-vboxdrv.init
Source4: %{pname}-vboxguest.init
Source5: %{pname}-vboxnetflt.init
Source16: %{pname}-vboxnetadp-modules-load.conf
Source17: %{pname}-vboxpci-modules-load.conf
Patch0: %{pname}-configure-spaces.patch
-Patch1: %{pname}-export_modules.patch
-Patch2: %{pname}-VBoxSysInfo.patch
-Patch3: %{pname}-warning_workaround.patch
-Patch4: %{pname}-dri.patch
-Patch5: %{pname}-disable_build_NetBiosBin.patch
-Patch6: xserver-1.12.patch
+Patch1: %{pname}-VBoxSysInfo.patch
+Patch2: %{pname}-warning_workaround.patch
+Patch3: %{pname}-dri.patch
+Patch4: %{pname}-disable_build_NetBiosBin.patch
+Patch5: xserver-1.12.patch
# ubuntu patches
Patch10: 16-no-update.patch
Patch11: 18-system-xorg.patch
BuildRequires: curl-devel
%{?with_doc:BuildRequires: docbook-dtd44-xml}
BuildRequires: gcc >= 5:3.2.3
+%{?with_webservice:BuildRequires: gsoap-devel}
+BuildRequires: kBuild >= 0.1.9998-2
BuildRequires: libIDL-devel
BuildRequires: libcap-static
BuildRequires: libdrm-devel
Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires: QtCore >= 4.7.0
+Requires: desktop-file-utils
Requires: libvncserver >= 0.9.9
Suggests: gxmessage
Provides: group(vbox)
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%ifarch %{x8664}
-%define vbox_platform linux.amd64
+%define vbox_arch amd64
%else
-%define vbox_platform linux.x86
+%define vbox_arch x86
%endif
+%define vbox_platform linux.%{vbox_arch}
%define outdir out/%{vbox_platform}/release/bin
%define _sbindir /sbin
%patch3 -p1
%patch4 -p1
%patch5 -p1
-%patch6 -p1
%{__sed} -i -e 's,@VBOX_DOC_PATH@,%{_docdir}/%{name}-%{version},' \
-e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/common/virtualbox.desktop.in
-sed 's#@LIBDIR@#%{_libdir}#' < %{SOURCE9} > VirtualBox-wrapper.sh
+# Respect LDFLAGS
+%{__sed} -i -e "s@_LDFLAGS\.%{vbox_arch}*.*=@& %{rpmldflags}@g" \
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk
+
+%{__sed} 's#@LIBDIR@#%{_libdir}#' < %{SOURCE9} > VirtualBox-wrapper.sh
install -d PLD-MODULE-BUILD/{GuestDrivers,HostDrivers}
cd PLD-MODULE-BUILD
%patch10 -p1
%patch11 -p1
-# fix build translations (missing qt_fa_IR.ts)
-cp -p src/VBox/Frontends/VirtualBox/nls/{qt_en,qt_fa_IR}.ts
+# using system kBuild package
+%{__rm} -r kBuild
%build
%if %{with userspace}
--disable-java \
--disable-hardening \
--disable-kmods \
- --enable-vnc
+ --enable-vnc \
+ %{__enable webservice} \
+ %{nil}
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 \
+kmk %{?_smp_mflags} \
%{?with_verbose:KBUILD_VERBOSE=3} \
- USER=$(id -un) \
+ USER=%(id -un) \
VBOX_VERSION_STRING='$(VBOX_VERSION_MAJOR).$(VBOX_VERSION_MINOR).$(VBOX_VERSION_BUILD)'_PLD \
- XSERVER_VERSION="$XSERVER_VERSION"
+ XSERVER_VERSION="$XSERVER_VERSION" \
+ TOOL_GCC3_CFLAGS="%{rpmcflags}" \
+ TOOL_GCC3_CXXFLAGS="%{rpmcxxflags}" \
+ VBOX_GCC_OPT="%{rpmcxxflags}" \
+ %{nil}
%endif
%if %{with kernel}
%build_kernel_modules -m vboxguest -C vboxguest
cp -a vboxguest/Module.symvers vboxsf
%build_kernel_modules -m vboxsf -C vboxsf -c
-%build_kernel_modules -m vboxvideo -C vboxvideo_drm
+%build_kernel_modules -m vboxvideo -C vboxvideo
cd ../..
%{__cc} %{rpmcflags} %{rpmldflags} -Wall -Werror src/VBox/Additions/linux/sharedfolders/{mount.vboxsf.c,vbsfmount.c} -o mount.vboxsf
%endif
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxshell.py
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/xpidl
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/runasroot.sh
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/amd64/CPUMInternal.d
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/amd64/cpumctx.d
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/amd64/vbox-arch-types.d
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/amd64/vbox-types.d
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/amd64/vm.d
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/amd64/x86.d
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/testcase/amd64/vbox-vm-struct-test.d
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/load.sh
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/loadall.sh
+rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/CPUMInternal.d
+rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/cpumctx.d
+rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-arch-types.d
+rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vbox-types.d
+rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/vm.d
+rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/lib/%{vbox_arch}/x86.d
+rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/dtrace/testcase/%{vbox_arch}/vbox-vm-struct-test.d
%endif
# packaged by kernel part
%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
+%install_kernel_modules -m PLD-MODULE-BUILD/GuestDrivers/vboxvideo/vboxvideo -d misc
install -p mount.vboxsf $RPM_BUILD_ROOT%{_sbindir}/mount.vboxsf