]> git.pld-linux.org Git - packages/VirtualBox.git/blobdiff - VirtualBox.spec
- cleanup kernel module building
[packages/VirtualBox.git] / VirtualBox.spec
index fa5d47493a3b78d7b7c443a69decfe0f6e4614aa..0386a0f349cebabb990d7bcb92b94cbe590e8952 100644 (file)
 # Conditional build:
 %bcond_without doc             # don't build the documentation
 %bcond_without debuginfo               # disable debuginfo creation (to save space when compiling)
-%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 lightdm         # lightdm greeter
 %bcond_without dkms            # build dkms package
 %bcond_without verbose
+%bcond_without gui                     # disable Qt4 GUI frontend build
 
-%if %{without kernel}
-%undefine      with_dist_kernel
-%else
-%define                _duplicate_files_terminate_build        0
+%if "%{?alt_kernel}" != "" && 0%{?build_kernels:1}
+       %{error:alt_kernel (%{?alt_kernel}) and build_kernels (%{?build_kernels}) defined}
 %endif
 
-# The goal here is to have main, userspace, package built once with
-# simple release number, and only rebuild kernel packages with kernel
-# version as part of release number, without the need to bump release
-# with every kernel change.
 %if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace}
 %{error:kernel and userspace cannot be built at the same time on PLD builders}
 exit 1
 %endif
 
-%if "%{_alt_kernel}" != "%{nil}"
-%if 0%{?build_kernels:1}
-%{error:alt_kernel and build_kernels are mutually exclusive}
-exit 1
-%endif
-%undefine      with_userspace
-%global                _build_kernels          %{alt_kernel}
-%else
-%global                _build_kernels          %{?build_kernels:,%{?build_kernels}}
+%if %{with kernel}
+%define                _duplicate_files_terminate_build        0
 %endif
 
 %if %{without userspace}
@@ -56,24 +43,19 @@ exit 1
 %define                _enable_debug_packages  0
 %endif
 
-%define                kbrs    %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo "BuildRequires:kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2" ; done)
-%define                kpkg    %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%kernel_pkg ; done)
-%define                bkpkg   %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%build_kernel_pkg ; done)
-%define                ikpkg   %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%install_kernel_pkg ; done)
-
-%define                rel             1
+%define                rel             2
 %define                pname           VirtualBox
 Summary:       VirtualBox - x86 hardware virtualizer
 Summary(pl.UTF-8):     VirtualBox - wirtualizator sprzętu x86
 Name:          %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
-Version:       4.3.14
+Version:       4.3.26
 Release:       %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
 License:       GPL v2
 Group:         Applications/Emulators
 Source0:       http://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}.tar.bz2
-# Source0-md5: 407099867bd9786e23619b5c11611e53
+# Source0-md5: df8fa3b1820773556b33ae0405553120
 Source1:       http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
-# Source1-md5: c5be49b6d530ae53685e44b743bc987c
+# Source1-md5: 0e81ff4d6014c7353df0f7b84db2c2b2
 Source2:       vboxservice.init
 Source3:       vboxservice.service
 Source5:       mount.vdi
@@ -94,13 +76,15 @@ Patch8:             lightdm-greeter-g++-link.patch
 Patch9:                pld-guest.patch
 Patch10:       16-no-update.patch
 Patch11:       18-system-xorg.patch
+Patch12:       %{pname}-all-translations.patch
+Patch13:       x32.patch
 URL:           http://www.virtualbox.org/
 %if %{with userspace}
 %ifarch %{x8664}
-BuildRequires: gcc-multilib
+BuildRequires: gcc-multilib-32
 BuildRequires: glibc-devel(i686)
-BuildRequires: libstdc++-multilib-devel
-BuildRequires: libstdc++-multilib-static
+BuildRequires: libstdc++-multilib-32-devel
+BuildRequires: libstdc++-multilib-32-static
 %endif
 %if "%{pld_release}" == "ac"
 BuildRequires: XFree86-devel
@@ -143,7 +127,7 @@ BuildRequires:      libvpx-devel
 BuildRequires: libxml2-devel >= 2.6.26
 BuildRequires: libxslt-devel >= 1.1.17
 BuildRequires: libxslt-progs >= 1.1.17
-%{?with_lightdm:BuildRequires: lightdm-libs-qt-devel}
+%{?with_lightdm:BuildRequires: lightdm-libs-qt4-devel}
 BuildRequires: makeself
 BuildRequires: mkisofs
 BuildRequires: pam-devel
@@ -154,7 +138,7 @@ BuildRequires:      python-devel
 BuildRequires: python-modules
 BuildRequires: qt4-build >= 4.2.0
 BuildRequires: qt4-linguist
-BuildRequires: rpmbuild(macros) >= 1.678
+BuildRequires: rpmbuild(macros) >= 1.701
 BuildRequires: sed >= 4.0
 %if %{with doc}
 BuildRequires: texlive-fonts-bitstream
@@ -170,7 +154,7 @@ BuildRequires:      xerces-c-devel >= 2.6.0
 BuildRequires: yasm
 BuildRequires: zlib-devel >= 1.2.1
 %endif
-%{?with_dist_kernel:%{expand:%kbrs}}
+%{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}}
 Requires(post,preun):  /sbin/chkconfig
 Requires(postun):      /usr/sbin/groupdel
 Requires(pre): /usr/bin/getgid
@@ -179,7 +163,7 @@ Requires:   libvncserver >= 0.9.9
 Requires:      udev-core
 Provides:      group(vbox)
 Obsoletes:     VirtualBox-udev < 4.2.10-5
-ExclusiveArch: %{ix86} %{x8664}
+ExclusiveArch: %{ix86} %{x8664} x32
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %ifarch %{x8664}
@@ -353,8 +337,7 @@ Group:              X11/Applications
 Requires:      Mesa-dri-driver-swrast
 Requires:      xorg-xserver-libdri >= 1.7.4
 Requires:      xorg-xserver-server >= 1.0.99.901
-Requires:      xorg-xserver-server(videodrv-abi) <= 15.0
-Requires:      xorg-xserver-server(videodrv-abi) >= 2.0
+%{?requires_xorg_xserver_videodrv}
 Provides:      OpenGL = 2.1
 Provides:      OpenGL-GLX = 1.3
 Provides:      xorg-driver-video
@@ -422,11 +405,9 @@ Requires(post,postun):     /sbin/depmod\
 Requires(post):        systemd-units >= 38\
 Requires:      dev >= 2.9.0-7\
 Requires:      systemd-units >= 38\
-%if %{with dist_kernel}\
 %requires_releq_kernel\
 Requires:      %{releq_kernel -n drm}\
 Requires(postun):      %releq_kernel\
-%endif\
 Provides:      kernel(vboxguest) = %{version}-%{rel}\
 Provides:      kernel(vboxsf) = %{version}-%{rel}\
 Provides:      kernel(vboxvideo) = %{version}-%{rel}\
@@ -451,10 +432,8 @@ Group:             Base/Kernel\
 Requires(post,postun): /sbin/depmod\
 Requires(post):        systemd-units >= 38\
 Requires:      dev >= 2.9.0-7\
-%if %{with dist_kernel}\
 %requires_releq_kernel\
 Requires(postun):      %releq_kernel\
-%endif\
 Requires:      systemd-units >= 38\
 Provides:      kernel(vboxdrv) = %{version}-%{rel}\
 Provides:      kernel(vboxnetadp) = %{version}-%{rel}\
@@ -515,16 +494,10 @@ cp -a vboxguest/Module.symvers vboxsf\
 %build_kernel_modules -m vboxsf -C vboxsf -c\
 %build_kernel_modules -m vboxvideo -C vboxvideo\
 cd ../..\
-%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxdrv/vboxdrv -d misc\
-%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxnetadp/vboxnetadp -d misc\
-%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxnetflt/vboxnetflt -d misc\
-%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxpci/vboxpci -d misc\
-%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxguest/vboxguest -d misc\
-%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxsf/vboxsf -d misc\
-%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/GuestDrivers/vboxvideo/vboxvideo -d misc\
+%install_kernel_modules -D PLD-MODULE-BUILD/installed -m PLD-MODULE-BUILD/HostDrivers/vboxdrv/vboxdrv,PLD-MODULE-BUILD/HostDrivers/vboxnetadp/vboxnetadp,PLD-MODULE-BUILD/HostDrivers/vboxnetflt/vboxnetflt,PLD-MODULE-BUILD/HostDrivers/vboxpci/vboxpci,PLD-MODULE-BUILD/GuestDrivers/vboxguest/vboxguest,PLD-MODULE-BUILD/GuestDrivers/vboxsf/vboxsf,PLD-MODULE-BUILD/GuestDrivers/vboxvideo/vboxvideo -d misc\
 %{nil}
 
-%{?with_kernel:%{expand:%kpkg}}
+%{?with_kernel:%{expand:%create_kernel_packages}}
 
 %prep
 %setup -q -n %{pname}-%{version}
@@ -540,6 +513,8 @@ cd ../..\
 %patch9 -p1
 %patch10 -p1
 %patch11 -p1
+%patch12 -p0
+%patch13 -p1
 
 %{__sed} -i -e 's,@VBOX_DOC_PATH@,%{_docdir}/%{name}-%{version},' \
        -e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/common/virtualbox.desktop.in
@@ -568,6 +543,11 @@ cd -
 cp -p src/VBox/Frontends/VirtualBox/images/os_{linux26,pld}.png
 cp -p src/VBox/Frontends/VirtualBox/images/os_{linux26,pld}_64.png
 
+# don't force whole userspace to be built with -fPIC
+# see https://www.virtualbox.org/pipermail/vbox-dev/2015-February/012863.html
+%define                filterout_c             -fPIC
+%define                filterout_cxx           -fPIC
+
 cat <<'EOF'>> LocalConfig.kmk
 %{?with_verbose:KBUILD_VERBOSE=3}
 USERNAME=%(id -un)
@@ -595,6 +575,9 @@ VBOX_WITH_TESTCASES :=
 VBOX_WITH_TESTSUITE :=
 EOF
 
+%undefine      filterout_c
+%undefine      filterout_cxx
+
 %build
 %if %{with userspace}
 ./configure \
@@ -605,6 +588,7 @@ EOF
        --disable-hardening \
        --disable-kmods \
        --enable-vnc \
+       %{!?with_gui:--disable-qt} \
        %{__enable webservice} \
        %{nil}
 
@@ -613,7 +597,7 @@ kmk %{?_smp_mflags}
 %{__cc} %{rpmcflags} %{rpmldflags} -Wall -Werror src/VBox/Additions/linux/sharedfolders/{mount.vboxsf.c,vbsfmount.c} -o mount.vboxsf
 %endif
 
-%{?with_kernel:%{expand:%bkpkg}}
+%{?with_kernel:%{expand:%build_kernel_packages}}
 
 %install
 rm -rf $RPM_BUILD_ROOT
@@ -633,7 +617,13 @@ if cp -al COPYING $RPM_BUILD_ROOT/COPYING; then
 fi
 
 cp -a$l %{outdir}/* $RPM_BUILD_ROOT%{_libdir}/%{pname}
-cp -a$l %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
+cp -p$l %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso ||
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxGuestAdditions.iso
+
+%if %{without gui}
+%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/icons
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/virtualbox.xml
+%endif
 
 # vboxvideo
 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/VBoxOGL.so,%{_libdir}/xorg/modules/dri/vboxvideo_dri.so}
@@ -711,10 +701,11 @@ fakeroot sh -x $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/install.sh \
        --ose \
        --prefix %{_prefix} \
        %{!?with_webservice:--no-web-service} \
+       %{!?with_gui:--no-qt} \
        --root $RPM_BUILD_ROOT
 
 %{__mv} $RPM_BUILD_ROOT{%{_datadir}/%{pname},/lib/udev}/VBoxCreateUSBNode.sh
-cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
+cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/udev/rules.d/60-vboxdrv.rules
 
 %if %{with dkms}
 mv $RPM_BUILD_ROOT%{_datadir}/%{pname}/src $RPM_BUILD_ROOT%{_usrsrc}/vboxhost-%{version}-%{rel}
@@ -727,7 +718,6 @@ mv $RPM_BUILD_ROOT%{_datadir}/%{pname}/src $RPM_BUILD_ROOT%{_usrsrc}/vboxhost-%{
 %{__rm} -r $RPM_BUILD_ROOT%{_bindir}/vboxheadless
 %{__rm} -r $RPM_BUILD_ROOT%{_bindir}/vboxmanage
 %{__rm} -r $RPM_BUILD_ROOT%{_bindir}/vboxsdl
-%{__rm} -r $RPM_BUILD_ROOT%{_bindir}/virtualbox
 
 # cleanup unpackaged
 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/{sdk,testcase}
@@ -738,8 +728,13 @@ mv $RPM_BUILD_ROOT%{_datadir}/%{pname}/src $RPM_BUILD_ROOT%{_usrsrc}/vboxhost-%{
 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack-license.*
 %{__rm} -r $RPM_BUILD_ROOT%{py_sitescriptdir}/vboxapi*
 
+%if %{with gui}
+# cleanup lowercased variants, not used in any script (less cruft)
+%{__rm} -r $RPM_BUILD_ROOT%{_bindir}/virtualbox
 # weird icon size
 %{__rm} -r $RPM_BUILD_ROOT%{_iconsdir}/hicolor/40x40
+%endif
+
 # duplicate, we already have virtualbox.png (128x128), this is 32x32
 %{__rm} -r $RPM_BUILD_ROOT%{_pixmapsdir}/VBox.png
 
@@ -840,23 +835,19 @@ fi
 %addusertogroup xdm vbox
 
 %post -n dkms-vboxguest
-set -x
 dkms add -m vboxguest -v %{version}-%{rel} --rpm_safe_upgrade && \
 dkms build -m vboxguest -v %{version}-%{rel} --rpm_safe_upgrade && \
 dkms install -m vboxguest -v %{version}-%{rel} --rpm_safe_upgrade || :
 
 %preun -n dkms-vboxguest
-set -x
 dkms remove -m vboxguest -v %{version}-%{rel} --rpm_safe_upgrade --all || :
 
 %post -n dkms-vboxhost
-set -x
 dkms add -m vboxhost -v %{version}-%{rel} --rpm_safe_upgrade && \
 dkms build -m vboxhost -v %{version}-%{rel} --rpm_safe_upgrade && \
 dkms install -m vboxhost -v %{version}-%{rel} --rpm_safe_upgrade || :
 
 %preun -n dkms-vboxhost
-set -x
 dkms remove -m vboxhost -v %{version}-%{rel} --rpm_safe_upgrade --all || :
 
 %if %{with userspace}
@@ -922,6 +913,14 @@ dkms remove -m vboxhost -v %{version}-%{rel} --rpm_safe_upgrade --all || :
 %if %{with doc}
 %attr(755,root,root) %{_libdir}/%{pname}/VBoxManageHelp
 %endif
+%dir %{_libdir}/%{pname}/tools
+%attr(755,root,root) %{_libdir}/%{pname}/tools/RTGzip
+%attr(755,root,root) %{_libdir}/%{pname}/tools/RTLdrFlt
+%attr(755,root,root) %{_libdir}/%{pname}/tools/RTManifest
+%attr(755,root,root) %{_libdir}/%{pname}/tools/RTRm
+%attr(755,root,root) %{_libdir}/%{pname}/tools/RTShutdown
+%attr(755,root,root) %{_libdir}/%{pname}/tools/RTSignTool
+%attr(755,root,root) %{_libdir}/%{pname}/tools/RTTar
 
 %dir %{_libdir}/%{pname}/ExtensionPacks
 %{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack.xml
@@ -954,9 +953,10 @@ dkms remove -m vboxhost -v %{version}-%{rel} --rpm_safe_upgrade --all || :
 %dir %{_datadir}/%{pname}
 %attr(755,root,root) %{_datadir}/%{pname}/VBoxSysInfo.sh
 
-%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules
+%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/*.rules
 %attr(755,root,root) /lib/udev/VBoxCreateUSBNode.sh
 
+%if %{with gui}
 %files gui
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/VirtualBox
@@ -1003,6 +1003,7 @@ dkms remove -m vboxhost -v %{version}-%{rel} --rpm_safe_upgrade --all || :
 %{_iconsdir}/hicolor/*/apps/virtualbox.svg
 %{_iconsdir}/hicolor/*/mimetypes/virtualbox-*.png
 %{_datadir}/mime/packages/virtualbox.xml
+%endif
 
 %files additions
 %defattr(644,root,root,755)
This page took 0.118247 seconds and 4 git commands to generate.