X-Git-Url: http://git.pld-linux.org/?p=packages%2FVirtualBox.git;a=blobdiff_plain;f=VirtualBox.spec;h=fc15f6ab919f852ffe9cb986456a6bbcd0311e63;hp=a5ee40e829c7188edaf6da4c21734a1f3437c765;hb=de615b50e14a98bbea0156fc369802ba71142315;hpb=182e37cd12b2f0e89b30b2b0b1096afc9ece427e diff --git a/VirtualBox.spec b/VirtualBox.spec index a5ee40e..fc15f6a 100644 --- a/VirtualBox.spec +++ b/VirtualBox.spec @@ -6,6 +6,9 @@ # - 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 @@ -29,35 +32,46 @@ %define _enable_debug_packages 0 %endif -%define rel 4 +%define rel 8 %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: 4.0.4 +Version: 4.1.10 Release: %{rel} License: GPL v2 Group: Applications/Emulators Source0: http://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}.tar.bz2 -# Source0-md5: b4770ca14d1a8cbad9b3eb0e0028ff4b +# Source0-md5: 263e495ef3a7ab75943af28d446ee702 Source1: http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso -# Source1-md5: 88604a0e94bf1b8c0d0f18fe4314cfdf +# Source1-md5: 322a8fdaec597bc2aad5f8ae8a37f21b 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 +Source8: %{pname}-vboxpci.init +Source9: %{pname}.sh +Source10: mount.vdi +Source11: udev.rules +Source12: %{pname}-vboxdrv-modules-load.conf +Source13: %{pname}-vboxguest-modules-load.conf +Source14: %{pname}-vboxnetflt-modules-load.conf +Source15: %{pname}-vboxsf-modules-load.conf +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}-vnc.patch Patch5: %{pname}-dri.patch -Patch6: %{pname}-vboxnetflt-no-qdisc.patch +Patch6: %{pname}-disable_build_NetBiosBin.patch +Patch7: xserver-1.12.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} @@ -70,8 +84,11 @@ BuildRequires: libstdc++-multilib-static %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 @@ -89,29 +106,34 @@ BuildRequires: curl-devel 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 +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: mkisofs BuildRequires: makeself +BuildRequires: mkisofs BuildRequires: pam-devel +BuildRequires: pixman-devel BuildRequires: pkgconfig BuildRequires: pulseaudio-devel >= 0.9.0 BuildRequires: python-devel BuildRequires: python-modules BuildRequires: qt4-build >= 4.2.0 BuildRequires: qt4-linguist +BuildRequires: rpmbuild(macros) >= 1.627 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 @@ -139,22 +161,32 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define outdir out/%{vbox_platform}/release/bin %define _sbindir /sbin +# workaround buggy 'file' results: +# +# EfiThunk: \0 +# qt_ro.qm: \0 "<\270d\030\312\357\234\225\315!\034\277`\241\275\335B" +# VBoxEFI32.fd: \0 +# VBoxEFI64.fd: \0 +# +# which lead to 'Stripping ... ELF shared libraries... (...)/nls/qt_ro.qm: File format not recognized' +%define _noautostrip .*%{_libdir}/%{name}/.* + %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 @@ -164,35 +196,41 @@ ported to other computers. 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 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 and in Guest OS. @@ -214,10 +252,10 @@ You should install this package in your Host OS. %package guest Summary: VirtualBox Guest Additions Group: Base -Suggests: kernel%{_alt_kernel}-misc-vboxsf = %{version}-%{rel}@%{_kernel_ver_str} -Suggests: kernel%{_alt_kernel}-misc-vboxvideo = %{version}-%{rel}@%{_kernel_ver_str} 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 @@ -235,154 +273,192 @@ PAM module (Pluggable Authentication Module) which can be used to 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 -Requires: xorg-xserver-server(xinput-abi) <= 11.0 +Requires: xorg-xserver-server(xinput-abi) <= 16.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 -Requires: xorg-xserver-server(videodrv-abi) <= 8.0 +Requires: xorg-xserver-server(videodrv-abi) <= 12.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 +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(vboxguest) = %{version}-%{rel} Obsoletes: kernel%{_alt_kernel}-misc-vboxadd 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 +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} %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 +Requires(post): systemd-units >= 38 Requires: dev >= 2.9.0-7 Requires: kernel%{_alt_kernel}-misc-vboxdrv %if %{with dist_kernel} %requires_releq_kernel Requires(postun): %releq_kernel %endif +Requires: systemd-units >= 38 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 +Requires(post): systemd-units >= 38 Requires: dev >= 2.9.0-7 Requires: kernel%{_alt_kernel}-misc-vboxdrv %if %{with dist_kernel} %requires_releq_kernel Requires(postun): %releq_kernel %endif +Requires: systemd-units >= 38 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(post): systemd-units >= 38 +Requires: dev >= 2.9.0-7 +Requires: kernel%{_alt_kernel}-misc-vboxdrv +%if %{with dist_kernel} +%requires_releq_kernel +Requires(postun): %releq_kernel +%endif +Requires: systemd-units >= 38 +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 +Requires(post): systemd-units >= 38 Requires: dev >= 2.9.0-7 Requires: kernel%{_alt_kernel}-misc-vboxguest %if %{with dist_kernel} %requires_releq_kernel Requires(postun): %releq_kernel %endif +Requires: systemd-units >= 38 Provides: kernel(vboxsf) = %{version}-%{rel} 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 @@ -397,26 +473,28 @@ Requires(postun): %releq_kernel 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 +%setup -q -n %{pname}-%{version} %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 +%patch7 -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}#' < %{SOURCE8} > VirtualBox-wrapper.sh +sed 's#@LIBDIR@#%{_libdir}#' < %{SOURCE9} > VirtualBox-wrapper.sh install -d PLD-MODULE-BUILD/{GuestDrivers,HostDrivers} cd PLD-MODULE-BUILD @@ -426,7 +504,9 @@ tar -zxf guest-modules.tar.gz -C GuestDrivers ../src/VBox/HostDrivers/linux/export_modules host-modules.tar.gz --without-hardening tar -zxf host-modules.tar.gz -C HostDrivers cd - -%patch6 -p1 +%patch10 -p1 +%patch11 -p1 + %build %if %{with userspace} @@ -437,10 +517,16 @@ echo "VBOX_WITH_TESTCASES := " > LocalConfig.kmk %{!?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} @@ -448,6 +534,7 @@ cd PLD-MODULE-BUILD/HostDrivers %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 @@ -475,21 +562,21 @@ fi cp -a$l %{outdir}/* $RPM_BUILD_ROOT%{_libdir}/%{pname} cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso -install -p %{SOURCE9} $RPM_BUILD_ROOT%{_sbindir}/mount.vdi +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 -mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxmouse_drv_19.so,%{_libdir}/xorg/modules/input/vboxmouse_drv.so} -mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxvideo_drv_19.so,%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so} +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 @@ -500,7 +587,7 @@ mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpackspu.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 @@ -515,7 +602,14 @@ rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/tst* 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 @@ -523,8 +617,6 @@ rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/SUPInstall 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 @@ -534,21 +626,38 @@ rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/mount.vboxsf %endif %if %{with kernel} -install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,modprobe.d},%{_sbindir}} +install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,modules-load.d},%{_sbindir},%{systemdunitdir}} install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxdrv install -p %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/vboxguest 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 install -p mount.vboxsf $RPM_BUILD_ROOT%{_sbindir}/mount.vboxsf +# Tell systemd to load modules +install -p %{SOURCE12} $RPM_BUILD_ROOT/etc/modules-load.d/vboxdrv.conf +install -p %{SOURCE13} $RPM_BUILD_ROOT/etc/modules-load.d/vboxguest.conf +install -p %{SOURCE14} $RPM_BUILD_ROOT/etc/modules-load.d/vboxnetflt.conf +install -p %{SOURCE15} $RPM_BUILD_ROOT/etc/modules-load.d/vboxsf.conf +install -p %{SOURCE16} $RPM_BUILD_ROOT/etc/modules-load.d/vboxnetadp.conf +install -p %{SOURCE17} $RPM_BUILD_ROOT/etc/modules-load.d/vboxpci.conf + +# And mask module-loading services +ln -sf /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/vboxdrv.service +ln -sf /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/vboxguest.service +ln -sf /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/vboxnetflt.service +ln -sf /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/vboxsf.service +ln -sf /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/vboxnetadp.service +ln -sf /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/vboxpci.service %endif %clean @@ -558,6 +667,8 @@ rm -rf $RPM_BUILD_ROOT %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} @@ -565,6 +676,7 @@ You must install vboxdrv kernel module for this software to work: 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} @@ -581,7 +693,8 @@ fi %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" +%systemd_reload %postun -n kernel%{_alt_kernel}-misc-vboxguest %depmod %{_kernel_ver} @@ -595,7 +708,8 @@ fi %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" +%systemd_reload %postun -n kernel%{_alt_kernel}-misc-vboxdrv %depmod %{_kernel_ver} @@ -609,7 +723,8 @@ fi %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" +%systemd_reload %postun -n kernel%{_alt_kernel}-misc-vboxnetadp %depmod %{_kernel_ver} @@ -623,7 +738,8 @@ fi %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" +%systemd_reload %postun -n kernel%{_alt_kernel}-misc-vboxnetflt %depmod %{_kernel_ver} @@ -634,10 +750,26 @@ if [ "$1" = "0" ]; then /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" +%systemd_reload + +%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)" +%systemd_reload %postun -n kernel%{_alt_kernel}-misc-vboxsf %depmod %{_kernel_ver} @@ -657,13 +789,10 @@ fi %if %{with userspace} %files %defattr(644,root,root,755) -%{?with_doc:%doc %{outdir}/UserManual.pdf} %dir %{_libdir}/VirtualBox %dir %{_libdir}/VirtualBox/ExtensionPacks %dir %{_libdir}/VirtualBox/additions %dir %{_libdir}/VirtualBox/components -%dir %{_libdir}/VirtualBox/icons -%dir %{_libdir}/VirtualBox/icons/*x* %dir %{_libdir}/VirtualBox/nls %attr(755,root,root) %{_bindir}/VBoxBFE %attr(755,root,root) %{_bindir}/VBoxHeadless @@ -678,6 +807,7 @@ fi %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/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 @@ -763,12 +893,9 @@ fi %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/*/virtualbox-ova.png -%{_libdir}/VirtualBox/icons/*/virtualbox-ovf.png -%{_libdir}/VirtualBox/icons/*/virtualbox-vbox-extpack.png -%{_libdir}/VirtualBox/icons/*/virtualbox-vbox.png +%{_libdir}/VirtualBox/icons %{_libdir}/VirtualBox/virtualbox.xml %files additions @@ -779,8 +906,12 @@ fi %defattr(644,root,root,755) # NOTE: unfinished, should contain .desktop files for starting up mouse # integration and other desktop services -# NOTE: the filelist is incopmplete too +# 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 @@ -791,6 +922,12 @@ fi %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 @@ -816,26 +953,43 @@ fi %files -n kernel%{_alt_kernel}-misc-vboxguest %defattr(644,root,root,755) %attr(754,root,root) /etc/rc.d/init.d/vboxguest +%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/vboxguest.conf +%{systemdunitdir}/vboxguest.service /lib/modules/%{_kernel_ver}/misc/vboxguest.ko* %files -n kernel%{_alt_kernel}-misc-vboxdrv %defattr(644,root,root,755) %attr(754,root,root) /etc/rc.d/init.d/vboxdrv +%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/vboxdrv.conf +%{systemdunitdir}/vboxdrv.service /lib/modules/%{_kernel_ver}/misc/vboxdrv.ko* %files -n kernel%{_alt_kernel}-misc-vboxnetadp %defattr(644,root,root,755) %attr(754,root,root) /etc/rc.d/init.d/vboxnetadp +%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/vboxnetadp.conf +%{systemdunitdir}/vboxnetadp.service /lib/modules/%{_kernel_ver}/misc/vboxnetadp.ko* %files -n kernel%{_alt_kernel}-misc-vboxnetflt %defattr(644,root,root,755) %attr(754,root,root) /etc/rc.d/init.d/vboxnetflt +%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/vboxnetflt.conf +%{systemdunitdir}/vboxnetflt.service /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 +%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/vboxpci.conf +%{systemdunitdir}/vboxpci.service +/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 +%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/vboxsf.conf +%{systemdunitdir}/vboxsf.service %attr(755,root,root) %{_sbindir}/mount.vboxsf /lib/modules/%{_kernel_ver}/misc/vboxsf.ko*