X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=VirtualBox.spec;h=a2b365968521a05336e33c50b22f3cfc3079c605;hb=632ec0b7d8120e472875d0ac5d369748eae052bc;hp=798320aeabcbd00eab54ee655a34782d61f1fbb7;hpb=4365ecafce037c761e94152cfcec25d011d0f67f;p=packages%2FVirtualBox.git diff --git a/VirtualBox.spec b/VirtualBox.spec index 798320a..a2b3659 100644 --- a/VirtualBox.spec +++ b/VirtualBox.spec @@ -6,6 +6,7 @@ # - guest x11 additions: currently incomplete/untested # - enable VDE networking: --enable-vde # - initscripts for webservice +# - fix desc for dkms packages (proper wording needed), kernel modules desc is mess as well # # Conditional build: %bcond_without doc # don't build the documentation @@ -14,36 +15,58 @@ %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_with force_userspace # force userspace build (useful if alt_kernel is set) %if %{without kernel} %undefine with_dist_kernel +%else +%define _duplicate_files_terminate_build 0 +%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}" -%undefine with_userspace +%if 0%{?build_kernels:1} +%{error:alt_kernel and build_kernels are mutually exclusive} +exit 1 %endif -%if %{with force_userspace} -%define with_userspace 1 +%undefine with_userspace +%global _build_kernels %{alt_kernel} +%else +%global _build_kernels %{?build_kernels:,%{?build_kernels}} %endif + %if %{without userspace} # nothing to be placed to debuginfo package %define _enable_debug_packages 0 %endif -%define rel 0.1 +%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 3 %define pname VirtualBox Summary: VirtualBox - x86 hardware virtualizer Summary(pl.UTF-8): VirtualBox - wirtualizator sprzętu x86 -Name: %{pname}%{_alt_kernel} -Version: 4.3.0 -Release: %{rel} +Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel} +Version: 4.3.8 +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: 1f49237686d095859f3dbea0941f8b12 +# Source0-md5: 422ab09b7eb9c0564b55a6a0a6e6678f Source1: http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso -# Source1-md5: 6b72a59aba1660afa4f430faa88d727a +# Source1-md5: f23d3980a509418b2dcb614483271ffa Source2: vboxservice.init Source3: vboxservice.service Source4: %{pname}.sh @@ -58,10 +81,9 @@ Patch3: %{pname}-dri.patch Patch5: xserver-1.12.patch Patch7: lightdm-greeter-glib-includes.patch Patch8: lightdm-greeter-g++-link.patch -# ubuntu patches +Patch9: pld-guest.patch Patch10: 16-no-update.patch Patch11: 18-system-xorg.patch -# /ubuntu patches URL: http://www.virtualbox.org/ %if %{with userspace} %ifarch %{x8664} @@ -93,6 +115,7 @@ BuildRequires: bin86 BuildRequires: curl-devel BuildRequires: device-mapper-devel %{?with_doc:BuildRequires: docbook-dtd44-xml} +%{?with_lightdm:BuildRequires: fltk-devel} BuildRequires: gcc >= 5:3.2.3 %{?with_webservice:BuildRequires: gsoap-devel} BuildRequires: issue @@ -105,6 +128,7 @@ BuildRequires: libstdc++-devel >= 5:3.2.3 BuildRequires: libstdc++-static >= 5:3.2.3 BuildRequires: libuuid-devel BuildRequires: libvncserver-devel >= 0.9.9 +BuildRequires: libvpx-devel BuildRequires: libxml2-devel >= 2.6.26 BuildRequires: libxslt-devel >= 1.1.17 BuildRequires: libxslt-progs >= 1.1.17 @@ -119,7 +143,7 @@ BuildRequires: python-devel BuildRequires: python-modules BuildRequires: qt4-build >= 4.2.0 BuildRequires: qt4-linguist -BuildRequires: rpmbuild(macros) >= 1.664 +BuildRequires: rpmbuild(macros) >= 1.678 BuildRequires: sed >= 4.0 %if %{with doc} BuildRequires: texlive-fonts-bitstream @@ -135,20 +159,13 @@ BuildRequires: xerces-c-devel >= 2.6.0 BuildRequires: yasm BuildRequires: zlib-devel >= 1.2.1 %endif -%if %{with dist_kernel} -BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.20 -%endif +%{?with_dist_kernel:%{expand:%kbrs}} Requires(post,preun): /sbin/chkconfig Requires(postun): /usr/sbin/groupdel Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd -Requires: QtCore >= 4.7.0 -Requires: desktop-file-utils -Requires: fontconfig -Requires: fonts-Type1-urw Requires: libvncserver >= 0.9.9 Requires: udev-core -Suggests: gxmessage Provides: group(vbox) Obsoletes: VirtualBox-udev < 4.2.10-5 ExclusiveArch: %{ix86} %{x8664} @@ -163,16 +180,6 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define outdir out/%{vbox_platform}/release/bin %define objdir out/%{vbox_platform}/release/obj -# 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 is a general-purpose full virtualizer for x86 hardware. Targeted at server, desktop and embedded use, it is now the @@ -218,6 +225,22 @@ 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 gui +Summary: Qt GUI part for VirtualBox +Group: X11/Applications +Requires: %{name} = %{version}-%{release} +Requires: QtCore >= 4.7.0 +Requires: desktop-file-utils +Requires: desktop-file-utils +Requires: fontconfig +Requires: fonts-Type1-urw +Requires: shared-mime-info +Suggests: gxmessage +Conflicts: %{name} < 4.3.8-3 + +%description gui +Qt GUI part for VirtualBox. + %package doc Summary: VirtualBox documentation Group: Documentation @@ -228,7 +251,7 @@ This package contains VirtualBox User Manual. %package additions Summary: VirtualBox Guest Additions Group: Base -Requires: %{name} = %{version}-%{release} +Requires: %{name} = %{version} %description additions VirtualBox Guest Additions. @@ -242,8 +265,8 @@ Summary: VirtualBox Guest tools Group: Base Requires(post,preun): /sbin/chkconfig Requires(post): systemd-units >= 38 -Requires: systemd-units >= 38 Requires: rc-scripts +Requires: systemd-units >= 38 Suggests: kernel(vboxguest) Suggests: kernel(vboxsf) Suggests: pam-pam_vbox @@ -307,8 +330,9 @@ 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) <= 14.1 +Requires: xorg-xserver-server(videodrv-abi) <= 15.0 Requires: xorg-xserver-server(videodrv-abi) >= 2.0 +Provides: xorg-driver-video %description -n xorg-driver-video-vboxvideo X.org video driver for VirtualBox guest OS. @@ -316,72 +340,168 @@ 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. -# KERNEL PACKAGES - -# KEEP ALL REGULAR SUBPACKAGES BEFORE KERNEL PACKAGES. - -%package -n kernel%{_alt_kernel}-virtualbox-guest -Summary: VirtualBox kernel modules for Linux Guest +%package -n dkms-vboxguest +Summary: VirtualBox kernel modules source for Linux Guest Summary(pl.UTF-8): Moduły VirtualBoksa do jądra Linuksa dla systemu gościa -Release: %{rel}@%{_kernel_ver_str} +License: GPL v2+ Group: Base/Kernel -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 +Requires(pre): dkms +Requires(post): dkms +%if "%{_rpmversion}" >= "5" +BuildArch: noarch %endif -Suggests: %{name}-kernel-init-guest >= %{version}-%{rel} -Provides: kernel(vboxguest) = %{version}-%{rel} -Provides: kernel(vboxsf) = %{version}-%{rel} -Provides: kernel(vboxvideo) = %{version}-%{rel} -Obsoletes: kernel-init-guest -Conflicts: kernel%{_alt_kernel}-virtualbox-host - -%description -n kernel%{_alt_kernel}-virtualbox-guest -This package contains VirtualBox Guest Additions for Linux Module, -host file system access (Shared Folders) and DRM support for + +%description -n dkms-vboxguest +This package contains DKMS-ready VirtualBox Guest Additions for Linux +Module, host file system access (Shared Folders) and DRM support for Linux guest system. -%description -n kernel%{_alt_kernel}-virtualbox-guest -l pl.UTF-8 +%description -n dkms-vboxguest -l pl.UTF-8 Ten pakiet zawiera moduł jądra Linuksa vboxguest dla VirtualBoksa - dodatki dla systemu gościa, dostęp do plików systemu głównego z poziomu systemu gościa i sterownik obsługi DRM. -%package -n kernel%{_alt_kernel}-virtualbox-host -Summary: VirtualBox Support Drivers +%package -n dkms-vboxhost +Summary: VirtualBox Support Drivers source Summary(pl.UTF-8): Moduły jądra Linuksa dla VirtualBoksa -Release: %{rel}@%{_kernel_ver_str} +License: GPL v2+ 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 +Requires(pre): dkms +Requires(post): dkms +%if "%{_rpmversion}" >= "5" +BuildArch: noarch %endif -Requires: systemd-units >= 38 -Suggests: %{name}-kernel-init-host >= %{version}-%{rel} -Provides: kernel(vboxdrv) = %{version}-%{rel} -Provides: kernel(vboxnetadp) = %{version}-%{rel} -Provides: kernel(vboxnetflt) = %{version}-%{rel} -Provides: kernel(vboxpci) = %{version}-%{rel} -Obsoletes: kernel-init-host - -%description -n kernel%{_alt_kernel}-virtualbox-host -This package contains VirtualBox Support Driver, Network Adapter -Driver, Network Filter Driver and PCI card passthrough driver that -works as host proxy between guest and PCI hardware. - -%description -n kernel%{_alt_kernel}-virtualbox-host -l pl.UTF-8 + +%description -n dkms-vboxhost +This package contains DKMS enabled sourcecode of VirtualBox Support +Driver, Network Adapter Driver, Network Filter Driver and PCI card +passthrough driver that works as host proxy between guest and PCI +hardware. + +%description -n dkms-vboxhost -l pl.UTF-8 Ten pakiet zawiera sterownik wsparcia dla systemu głównego, sterownik witrualnej karty sieciowej, sterownik filtrowania sieci dla systemu głównego oraz sterownik, ktory działa jako proxy między gościem i gospodarzem sprzętu PCI. +# KERNEL PACKAGES + +# KEEP ALL REGULAR SUBPACKAGES BEFORE KERNEL PACKAGES. + +%define kernel_pkg()\ +%package -n kernel%{_alt_kernel}-virtualbox-guest\ +Summary: VirtualBox kernel modules for Linux Guest\ +Summary(pl.UTF-8): Moduły VirtualBoksa do jądra Linuksa dla systemu gościa\ +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: 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}\ +Obsoletes: kernel-init-guest\ +Conflicts: kernel%{_alt_kernel}-virtualbox-host\ +\ +%description -n kernel%{_alt_kernel}-virtualbox-guest\ +This package contains VirtualBox Guest Additions for Linux Module,\ +host file system access (Shared Folders) and DRM support for\ +Linux guest system.\ +\ +%description -n kernel%{_alt_kernel}-virtualbox-guest -l pl.UTF-8\ +Ten pakiet zawiera moduł jądra Linuksa vboxguest dla VirtualBoksa -\ +dodatki dla systemu gościa, dostęp do plików systemu głównego z\ +poziomu systemu gościa i sterownik obsługi DRM.\ +\ +%package -n kernel%{_alt_kernel}-virtualbox-host\ +Summary: VirtualBox Support Drivers\ +Summary(pl.UTF-8): Moduły 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}\ +Provides: kernel(vboxnetadp) = %{version}-%{rel}\ +Provides: kernel(vboxnetflt) = %{version}-%{rel}\ +Provides: kernel(vboxpci) = %{version}-%{rel}\ +Obsoletes: kernel-init-host\ +\ +%description -n kernel%{_alt_kernel}-virtualbox-host\ +This package contains VirtualBox Support Driver, Network Adapter\ +Driver, Network Filter Driver and PCI card passthrough driver that\ +works as host proxy between guest and PCI hardware.\ +\ +%description -n kernel%{_alt_kernel}-virtualbox-host -l pl.UTF-8\ +Ten pakiet zawiera sterownik wsparcia dla systemu głównego, sterownik\ +witrualnej karty sieciowej, sterownik filtrowania sieci dla systemu\ +głównego oraz sterownik, ktory działa jako proxy między gościem i\ +gospodarzem sprzętu PCI.\ +\ +%if %{with kernel}\ +%files -n kernel%{_alt_kernel}-virtualbox-guest\ +%defattr(644,root,root,755)\ +%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-guest.conf\ +/lib/modules/%{_kernel_ver}/misc/vboxguest.ko*\ +/lib/modules/%{_kernel_ver}/misc/vboxsf.ko*\ +/lib/modules/%{_kernel_ver}/misc/vboxvideo.ko*\ +\ +%files -n kernel%{_alt_kernel}-virtualbox-host\ +%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-host.conf\ +/lib/modules/%{_kernel_ver}/misc/vboxdrv.ko*\ +/lib/modules/%{_kernel_ver}/misc/vboxnetadp.ko*\ +/lib/modules/%{_kernel_ver}/misc/vboxnetflt.ko*\ +/lib/modules/%{_kernel_ver}/misc/vboxpci.ko*\ +%endif\ +\ +%post -n kernel%{_alt_kernel}-virtualbox-guest\ +%depmod %{_kernel_ver}\ +\ +%postun -n kernel%{_alt_kernel}-virtualbox-guest\ +%depmod %{_kernel_ver}\ +\ +%post -n kernel%{_alt_kernel}-virtualbox-host\ +%depmod %{_kernel_ver}\ +\ +%postun -n kernel%{_alt_kernel}-virtualbox-host\ +%depmod %{_kernel_ver}\ +%{nil} + +%define build_kernel_pkg()\ +export KERN_DIR=%{_kernelsrcdir}\ +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\ +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\ +%{nil} + +%{?with_kernel:%{expand:%kpkg}} + %prep %setup -q -n %{pname}-%{version} %patch0 -p1 @@ -391,6 +511,7 @@ gospodarzem sprzętu PCI. %patch5 -p1 %patch7 -p1 %patch8 -p1 +%patch9 -p1 %{__sed} -i -e 's,@VBOX_DOC_PATH@,%{_docdir}/%{name}-%{version},' \ -e 's/Categories=.*/Categories=Utility;Emulator;/' src/VBox/Installer/common/virtualbox.desktop.in @@ -415,6 +536,10 @@ cd - # using system kBuild package %{__rm} -r kBuild +# use linux icon for now +cp -p src/VBox/Frontends/VirtualBox/images/os_{linux26,pld}.png +cp -p src/VBox/Frontends/VirtualBox/images/os_{linux26,pld}_64.png + cat <<'EOF'>> LocalConfig.kmk %{?with_verbose:KBUILD_VERBOSE=3} USERNAME=%(id -un) @@ -445,41 +570,27 @@ EOF %{__enable webservice} \ %{nil} -XSERVER_VERSION=$(rpm -q --queryformat '%{VERSION}\n' xorg-xserver-server-devel | awk -F. ' { print $1 $2 } ' 2> /dev/null || echo ERROR) kmk %{?_smp_mflags} -%endif -%if %{with kernel} -export KERN_DIR=%{_kernelsrcdir} -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 -cp -a vboxguest/Module.symvers vboxsf -%build_kernel_modules -m vboxsf -C vboxsf -c -%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 +%{?with_kernel:%{expand:%bkpkg}} + %install rm -rf $RPM_BUILD_ROOT %if %{with userspace} install -d $RPM_BUILD_ROOT{%{_bindir},/sbin,%{_sbindir},%{_libdir}/%{pname}/ExtensionPacks} \ - $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir}} \ + $RPM_BUILD_ROOT{%{_pixmapsdir},%{_desktopdir},%{_datadir}/mime/packages} \ $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,dri,input} \ $RPM_BUILD_ROOT{/lib/udev,/etc/udev/rules.d} \ $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{systemdunitdir}} # test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition -if cp -al VBox.png $RPM_BUILD_ROOT/Vbox.png 2>/dev/null; then +if cp -al COPYING $RPM_BUILD_ROOT/COPYING; then l=l - %{__rm} -f $RPM_BUILD_ROOT/VBox.png + %{__rm} -f $RPM_BUILD_ROOT/COPYING fi cp -a$l %{outdir}/* $RPM_BUILD_ROOT%{_libdir}/%{pname} @@ -502,6 +613,7 @@ install -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/vboxservice.service %{__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},%{_datadir}/mime/packages}/virtualbox.xml %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/vboxvideo_drv_system.so,%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so} %{__mv} $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/VBoxOGL.so,%{_libdir}/xorg/modules/dri/vboxvideo_dri.so} @@ -568,21 +680,28 @@ cp -p %{objdir}/Additions/Installer/linux/share/VBoxGuestAdditions/vbox-greeter. %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/scripts/install_service %endif -# packaged by kernel part %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/mount.vboxsf + +install -p mount.vboxsf $RPM_BUILD_ROOT/sbin/mount.vboxsf + +%if %{with dkms} +install -d $RPM_BUILD_ROOT%{_usrsrc}/vbox{host,guest}-%{version}-%{rel} +cp -a PLD-MODULE-BUILD/HostDrivers/* $RPM_BUILD_ROOT%{_usrsrc}/vboxhost-%{version}-%{rel} +cp -p src/VBox/HostDrivers/linux/dkms.conf $RPM_BUILD_ROOT%{_usrsrc}/vboxhost-%{version}-%{rel} +%{__make} -C $RPM_BUILD_ROOT%{_usrsrc}/vboxhost-%{version}-%{rel} clean +rm -rf $RPM_BUILD_ROOT%{_usrsrc}/vboxhost-%{version}-%{rel}/*/o + +cp -a PLD-MODULE-BUILD/GuestDrivers/* $RPM_BUILD_ROOT%{_usrsrc}/vboxguest-%{version}-%{rel} +cp -p src/VBox/Additions/common/VBoxGuest/linux/dkms.conf $RPM_BUILD_ROOT%{_usrsrc}/vboxguest-%{version}-%{rel} +%{__make} -C $RPM_BUILD_ROOT%{_usrsrc}/vboxguest-%{version}-%{rel} clean +rm -rf $RPM_BUILD_ROOT%{_usrsrc}/vboxguest-%{version}-%{rel}/*/o +%endif %endif %if %{with kernel} install -d $RPM_BUILD_ROOT{/etc/modules-load.d,/sbin} -%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/vboxvideo -d misc -install -p mount.vboxsf $RPM_BUILD_ROOT/sbin/mount.vboxsf +cp -a PLD-MODULE-BUILD/installed/* $RPM_BUILD_ROOT # Tell systemd to load modules cp -p %{SOURCE7} $RPM_BUILD_ROOT/etc/modules-load.d/virtualbox-host.conf @@ -596,7 +715,6 @@ rm -rf $RPM_BUILD_ROOT %groupadd -g 221 -r -f vbox %post -%update_desktop_database for i in /sys/bus/usb/devices/*; do if [ -r "$i/dev" ]; then dev="`cat "$i/dev" 2>/dev/null || true`" @@ -609,10 +727,10 @@ done cat << 'EOF' You must install vboxdrv kernel modules for this software to work: - kernel%{_alt_kernel}-virtualbox-host-%{version}-%{rel}@%{_kernel_ver_str} + kernel*-virtualbox-host-%{version}-%{rel}@* On Guest Linux system you might want to install: - kernel%{_alt_kernel}-virtualbox-guest-%{version}-%{rel}@%{_kernel_ver_str} + kernel*-virtualbox-guest-%{version}-%{rel}@* EOF @@ -621,6 +739,14 @@ if [ "$1" = "0" ]; then %groupremove vbox fi +%post gui +%update_desktop_database +%update_mime_database + +%postun gui +%update_desktop_database +%update_mime_database + %post guest /sbin/chkconfig --add vboxservice %service vboxservice restart @@ -642,17 +768,25 @@ fi %pre -n lightdm-greeter-vbox %addusertogroup xdm vbox -%post -n kernel%{_alt_kernel}-virtualbox-guest -%depmod %{_kernel_ver} +%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 || : -%postun -n kernel%{_alt_kernel}-virtualbox-guest -%depmod %{_kernel_ver} +%preun -n dkms-vboxguest +set -x +dkms remove -m vboxguest -v %{version}-%{rel} --rpm_safe_upgrade --all || : -%post -n kernel%{_alt_kernel}-virtualbox-host -%depmod %{_kernel_ver} +%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 || : -%postun -n kernel%{_alt_kernel}-virtualbox-host -%depmod %{_kernel_ver} +%preun -n dkms-vboxhost +set -x +dkms remove -m vboxhost -v %{version}-%{rel} --rpm_safe_upgrade --all || : %if %{with userspace} %files @@ -663,7 +797,6 @@ fi %dir %{_libdir}/%{pname}/ExtensionPacks/VNC/linux* %dir %{_libdir}/%{pname}/additions %dir %{_libdir}/%{pname}/components -%dir %{_libdir}/%{pname}/nls %attr(755,root,root) %{_bindir}/VBoxBFE %attr(755,root,root) %{_bindir}/VBoxHeadless %attr(755,root,root) %{_bindir}/VBoxManage @@ -671,14 +804,12 @@ fi %attr(755,root,root) %{_bindir}/VBoxSVC %attr(755,root,root) %{_bindir}/VBoxTunctl %attr(755,root,root) %{_bindir}/VBoxXPCOMIPCD -%attr(755,root,root) %{_bindir}/VirtualBox %attr(755,root,root) /sbin/mount.vdi %attr(755,root,root) %{_libdir}/%{pname}/DBGCPlugInDiggers.so %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuth.so %attr(755,root,root) %{_libdir}/%{pname}/VBoxAuthSimple.so %attr(755,root,root) %{_libdir}/%{pname}/VBoxAutostart %attr(755,root,root) %{_libdir}/%{pname}/VBoxBalloonCtrl -%attr(755,root,root) %{_libdir}/%{pname}/VBoxDbg.so %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD2.so %attr(755,root,root) %{_libdir}/%{pname}/VBoxDD.so %attr(755,root,root) %{_libdir}/%{pname}/VBoxDDU.so @@ -714,14 +845,12 @@ fi %attr(755,root,root) %{_libdir}/%{pname}/VBoxSharedFolders.so %attr(755,root,root) %{_libdir}/%{pname}/VBoxSVC %attr(755,root,root) %{_libdir}/%{pname}/VBoxSysInfo.sh -%attr(755,root,root) %{_libdir}/%{pname}/VBoxTestOGL %attr(755,root,root) %{_libdir}/%{pname}/VBoxTunctl %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMM.so %attr(755,root,root) %{_libdir}/%{pname}/VBoxVMMPreload %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMC.so %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOMIPCD %attr(755,root,root) %{_libdir}/%{pname}/VBoxXPCOM.so -%attr(755,root,root) %{_libdir}/%{pname}/VirtualBox %attr(755,root,root) %{_libdir}/%{pname}/VirtualBox-wrapper.sh %attr(755,root,root) %{_libdir}/%{pname}/ExtensionPacks/VNC/linux*/VBoxVNC*.so %{_libdir}/%{pname}/VBoxDD2GC.debug @@ -738,12 +867,24 @@ fi %{_libdir}/%{pname}/VMMGC.gc %{_libdir}/%{pname}/VMMR0.debug %{_libdir}/%{pname}/VMMR0.r0 -%{_libdir}/%{pname}/components/VBoxXPCOMBase.xpt %{_libdir}/%{pname}/ExtensionPacks/VNC/ExtPack.xml +%{_libdir}/%{pname}/components/VBoxXPCOMBase.xpt %{_libdir}/%{pname}/components/VirtualBox_XPCOM.xpt %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxC.so %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxSVCM.so %attr(755,root,root) %{_libdir}/%{pname}/components/VBoxXPCOMIPCC.so + +%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules +%attr(755,root,root) /lib/udev/VBoxCreateUSBNode.sh + +%files gui +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/VirtualBox +%attr(755,root,root) %{_libdir}/%{pname}/VirtualBox +%attr(755,root,root) %{_libdir}/%{pname}/VBoxDbg.so +%attr(755,root,root) %{_libdir}/%{pname}/VBoxTestOGL +%{_libdir}/%{pname}/icons +%dir %{_libdir}/%{pname}/nls %lang(bg) %{_libdir}/%{pname}/nls/*_bg.qm %lang(ca) %{_libdir}/%{pname}/nls/*_ca.qm %lang(ca_VA) %{_libdir}/%{pname}/nls/*_ca_VA.qm @@ -778,12 +919,8 @@ fi %lang(zh_CN) %{_libdir}/%{pname}/nls/*_zh_CN.qm %lang(zh_TW) %{_libdir}/%{pname}/nls/*_zh_TW.qm %{_pixmapsdir}/virtualbox.png -%{_desktopdir}/*.desktop -%{_libdir}/%{pname}/icons -%{_libdir}/%{pname}/virtualbox.xml - -%config(noreplace) %verify(not md5 mtime size) /etc/udev/rules.d/virtualbox.rules -%attr(755,root,root) /lib/udev/VBoxCreateUSBNode.sh +%{_desktopdir}/virtualbox.desktop +%{_datadir}/mime/packages/virtualbox.xml %files additions %defattr(644,root,root,755) @@ -851,20 +988,14 @@ fi %attr(755,root,root) %{_libdir}/VBoxOGLfeedbackspu.so %attr(755,root,root) %{_libdir}/VBoxOGLpackspu.so %attr(755,root,root) %{_libdir}/VBoxOGLpassthroughspu.so -%endif -%if %{with kernel} -%files -n kernel%{_alt_kernel}-virtualbox-guest +%if %{with dkms} +%files -n dkms-vboxguest %defattr(644,root,root,755) -%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-guest.conf -/lib/modules/%{_kernel_ver}/misc/vboxguest.ko* -/lib/modules/%{_kernel_ver}/misc/vboxsf.ko* -/lib/modules/%{_kernel_ver}/misc/vboxvideo.ko* - -%files -n kernel%{_alt_kernel}-virtualbox-host -%config(noreplace) %verify(not md5 mtime size) /etc/modules-load.d/virtualbox-host.conf -/lib/modules/%{_kernel_ver}/misc/vboxdrv.ko* -/lib/modules/%{_kernel_ver}/misc/vboxnetadp.ko* -/lib/modules/%{_kernel_ver}/misc/vboxnetflt.ko* -/lib/modules/%{_kernel_ver}/misc/vboxpci.ko* +%{_usrsrc}/vboxguest-%{version}-%{rel} + +%files -n dkms-vboxhost +%defattr(644,root,root,755) +%{_usrsrc}/vboxhost-%{version}-%{rel} +%endif %endif