#
-# 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 pname VirtualBox
+%define rel 4
+%define pname VirtualBox
+
Summary: VirtualBox OSE - x86 hardware virtualizer
Summary(pl.UTF-8): VirtualBox OSE - wirtualizator sprzętu x86
Name: %{pname}%{_alt_kernel}
-Version: 3.1.8
+Version: 4.0.8
Release: %{rel}
License: GPL v2
Group: Applications/Emulators
-Source0: http://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}-OSE.tar.bz2
-# Source0-md5: 93b5caaac8571591c21b679987cbe518
-Source1: http://download.virtualbox.org/virtualbox/%{version}/UserManual.pdf
-# Source1-md5: 8561a2b883fbede1e93b7dfb2238e7cc
-Source2: http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
-# Source2-md5: bfcf00607c6def732365bf83c6a45315
+Source0: http://download.virtualbox.org/virtualbox/%{version}/%{pname}-%{version}.tar.bz2
+# Source0-md5: a3e81289f2357fcf4bbe3e77805f38b6
+Source1: http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso
+# Source1-md5: 598ca9b231c1f1ff7817aa76c80f55d6
Source3: %{pname}-vboxdrv.init
Source4: %{pname}-vboxguest.init
Source5: %{pname}-vboxnetflt.init
-Source6: %{pname}-vboxvfs.init
+Source6: %{pname}-vboxsf.init
Source7: %{pname}-vboxnetadp.init
Source8: %{pname}.sh
Source9: mount.vdi
-Patch0: %{pname}-configure.patch
-Patch1: %{pname}-configure-spaces.patch
-Patch2: %{pname}-export_modules.patch
-Patch3: %{pname}-VBoxSysInfo.patch
-Patch4: %{pname}-gcc.patch
+Source10: 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}-vboxnetflt-no-qdisc.patch
+# ubuntu patches
+Patch7: 16-no-update.patch
+Patch8: 18-system-xorg.patch
+Patch9: 22-no-static-libstdcpp.patch
+# /ubuntu patches
URL: http://www.virtualbox.org/
-BuildRequires: rpmbuild(macros) >= 1.531
+BuildRequires: rpmbuild(macros) >= 1.535
%if %{with userspace}
%ifarch %{x8664}
BuildRequires: gcc-multilib
%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-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
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
-InnoTek VirtualBox OSE is a general-purpose full virtualizer for x86
+Oracle VirtualBox OSE 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.
local machines. Virtual machine definitions can therefore easily be
ported to other computers.
+You should install this package in your Host OS.
+
%description -l pl.UTF-8
-InnoTek VirtualBox OSE jest emulatorem sprzętu x86. Kierowany do
+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.
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(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.
+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.
This package contains ISO9660 image with drivers for Guest OS.
+You should install this package in your Host OS.
+
+%package guest
+Summary: VirtualBox Guest Additions
+Group: Base
+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
+Host, including file sharing and tracking of mouse pointer movement
+and X.org X11 video and mouse driver.
+
+You should install this package in your Guest OS.
+
+%package -n pam-pam_vbox
+Summary: PAM module to perform automated guest logons
+Group: Base
+
+%description -n pam-pam_vbox
+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
+Group: X11/Applications
+Requires: xorg-xserver-server >= 1.0.99.901
+Requires: xorg-xserver-server(xinput-abi) <= 12.2
+Requires: xorg-xserver-server(xinput-abi) >= 4.0
+
+%description -n xorg-driver-input-vboxmouse
+X.org mouse driver for VirtualBox OSE 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
+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) <= 10.0
+Requires: xorg-xserver-server(videodrv-abi) >= 2.0
+
+%description -n xorg-driver-video-vboxvideo
+X.org video driver for VirtualBox OSE guest OS.
+
+%description -n xorg-driver-video-vboxvideo -l pl.UTF-8
+Sterownik grafiki dla systemu gościa w VirtualBoksie OSE.
+
%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
%description -n kernel%{_alt_kernel}-misc-vboxguest
VirtualBox OSE 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.
%description -n kernel%{_alt_kernel}-misc-vboxdrv
VirtualBox OSE 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.
%description -n kernel%{_alt_kernel}-misc-vboxnetadp
VirtualBox OSE 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
sieciowej.
%description -n kernel%{_alt_kernel}-misc-vboxnetflt
VirtualBox OSE 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 OSE - sterownik filtrowania sieci
dla systemu głównego.
%description -n kernel%{_alt_kernel}-misc-vboxsf
Host file system access (Shared Folders) for VirtualBox OSE.
+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
głównego z poziomu systemu gościa.
Requires: dev >= 2.9.0-7
%if %{with dist_kernel}
%requires_releq_kernel
+%if "%{rpm_build_macros}" >= "1.531"
%requires_releq_kernel -n drm
+%endif
Requires(postun): %releq_kernel
%endif
Provides: kernel(vboxvideo) = %{version}-%{rel}
%description -n kernel%{_alt_kernel}-misc-vboxvideo
DRM support for VirtualBox OSE.
+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.
-%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
-Release: %{rel}
-Group: X11/Applications
-Requires: xorg-xserver-server >= 1.0.99.901
-Requires: xorg-xserver-server(xinput-abi) <= 7.0
-Requires: xorg-xserver-server(xinput-abi) >= 4.0
-
-%description -n xorg-driver-input-vboxmouse
-X.org mouse driver for VirtualBox OSE 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
-Release: %{rel}
-Group: X11/Applications
-Requires: xorg-xserver-libdri >= 1.7.4
-Requires: xorg-xserver-server >= 1.0.99.901
-Requires: xorg-xserver-server(videodrv-abi) <= 6.0
-Requires: xorg-xserver-server(videodrv-abi) >= 2.0
-
-%description -n xorg-driver-video-vboxvideo
-X.org video driver for VirtualBox OSE guest OS.
-
-%description -n xorg-driver-video-vboxvideo -l pl.UTF-8
-Sterownik grafiki dla systemu gościa w VirtualBoksie OSE.
-
%prep
%setup -q -n %{pname}-%{version}_OSE
%patch0 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -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
-
-cat <<'EOF' > udev.conf
-KERNEL=="vboxdrv", GROUP="vbox", MODE="0660"
-KERNEL=="vboxguest", GROUP="vbox", MODE="0660"
-KERNEL=="vboxnetctl", GROUP="vbox", MODE="0660"
-EOF
+%{__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
-rm -rf PLD-MODULE-BUILD && mkdir PLD-MODULE-BUILD && cd PLD-MODULE-BUILD
-../src/VBox/Additions/linux/export_modules modules.tar.gz
- tar -zxf modules.tar.gz && rm -f modules.tar.gz
-../src/VBox/HostDrivers/linux/export_modules modules.tar.gz --without-hardening && \
- tar -zxf modules.tar.gz && rm -f modules.tar.gz
+install -d PLD-MODULE-BUILD/{GuestDrivers,HostDrivers}
+cd PLD-MODULE-BUILD
+../src/VBox/Additions/linux/export_modules guest-modules.tar.gz
+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
+%patch7 -p1
+%patch8 -p1
+%patch9 -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
+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}
-cd PLD-MODULE-BUILD
-%build_kernel_modules -m vboxguest -C vboxguest
+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
+
+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_drm
-cd ..
-%{__cc} %{rpmcflags} %{rpmldflags} -Wall -Werror src/VBox/Additions/linux/sharedfolders/mount.vboxsf.c -o mount.vboxsf
+cd ../..
+%{__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
+cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso
install -p %{SOURCE9} $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_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}
+mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions/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 -f $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/vboxmouse_drv*.{o,so}
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/vboxvideo_drv*.{o,so}
+rm -vf $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/vboxmouse_drv*.{o,so}
+rm -vf $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/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}}/VBoxOGLcrutil.so
-mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLpackspu.so
mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLerrorspu.so
mv $RPM_BUILD_ROOT{%{_libdir}/%{pname}/additions,%{_libdir}}/VBoxOGLfeedbackspu.so
+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 udev.conf $RPM_BUILD_ROOT/etc/udev/rules.d/virtualbox.rules
+cp -a %{SOURCE10} $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
# cleanup unpackaged
rm -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/{src,sdk,testcase}
rm -r $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/src
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxkeyboard.tar.gz
+rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxkeyboard.tar.bz2
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/tst*
+# IPRT Testcase / Tool - Source Code Massager.
+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
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/EfiThunk
+%if 1
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}/VBoxEFI32.fd
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/VBoxEFI64.fd
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxClient
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxControl
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxOGLarrayspu.so
-rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/VBoxService
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/vboxshell.py
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/xpidl
+%endif
# packaged by kernel part
rm $RPM_BUILD_ROOT%{_libdir}/%{pname}/additions/mount.vboxsf
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/vboxvfs
+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_kernel_modules -m PLD-MODULE-BUILD/vboxdrv/vboxdrv -d misc
-%install_kernel_modules -m PLD-MODULE-BUILD/vboxguest/vboxguest -d misc
-%install_kernel_modules -m PLD-MODULE-BUILD/vboxnetadp/vboxnetadp -d misc
-%install_kernel_modules -m PLD-MODULE-BUILD/vboxnetflt/vboxnetflt -d misc
-%install_kernel_modules -m PLD-MODULE-BUILD/vboxsf/vboxsf -d misc
-%install_kernel_modules -m PLD-MODULE-BUILD/vboxvideo_drm/vboxvideo -d misc
+%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/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
%post
cat << 'EOF'
-You must also install kernel module for this software to work:
+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-vboxsf-%{version}-%{rel}@%{_kernel_ver_str}
kernel-misc-vboxvideo-%{version}-%{rel}@%{_kernel_ver_str}
-NOTE: for different kernel brands append after word kernel the brand, like:
- kernel-desktop-misc-vboxdrv-%{version}-%{rel}@%{_kernel_ver_str}
- kernel-laptop-misc-vboxdrv-%{version}-%{rel}@%{_kernel_ver_str}
- kernel-vanilla-misc-vboxdrv-%{version}-%{rel}@%{_kernel_ver_str}
- ...etc.
-
-Depending on which kernel brand You use.
-
EOF
%postun
%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}/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}/VirtualBox/VBoxSVC
+%attr(755,root,root) %{_sbindir}/mount.vdi
+%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/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/VBoxOGLhosterrorspu.so
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxOGLrenderspu.so
-%attr(755,root,root) %{_libdir}/VirtualBox/VBoxPython.so
-%attr(755,root,root) %{_libdir}/VirtualBox/VBoxPython2_6.so
+%attr(755,root,root) %{_libdir}/VirtualBox/VBoxPython*.so
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxREM.so
%ifarch %{ix86}
%attr(755,root,root) %{_libdir}/VirtualBox/VBoxREM32.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
%{_libdir}/VirtualBox/VBoxDD2R0.r0
%{_libdir}/VirtualBox/VBoxDDR0.r0
%{_libdir}/VirtualBox/VMMR0.r0
+%{_libdir}/VirtualBox/EfiThunk
+%{_libdir}/VirtualBox/VBoxEFI32.fd
+%{_libdir}/VirtualBox/VBoxEFI64.fd
%{_libdir}/VirtualBox/components/VBoxXPCOMBase.xpt
%{_libdir}/VirtualBox/components/VirtualBox_XPCOM.xpt
%attr(755,root,root) %{_libdir}/VirtualBox/components/VBoxC.so
%lang(ar) %{_libdir}/VirtualBox/nls/*_ar.qm
%lang(bg) %{_libdir}/VirtualBox/nls/*_bg.qm
%lang(ca) %{_libdir}/VirtualBox/nls/*_ca.qm
+%lang(ca_VA) %{_libdir}/VirtualBox/nls/*_ca_VA.qm
%lang(cs) %{_libdir}/VirtualBox/nls/*_cs.qm
%lang(da) %{_libdir}/VirtualBox/nls/*_da.qm
%lang(de) %{_libdir}/VirtualBox/nls/*_de.qm
%lang(el) %{_libdir}/VirtualBox/nls/*_el.qm
+%lang(en) %{_libdir}/VirtualBox/nls/*_en.qm
%lang(es) %{_libdir}/VirtualBox/nls/*_es.qm
%lang(eu) %{_libdir}/VirtualBox/nls/*_eu.qm
%lang(fi) %{_libdir}/VirtualBox/nls/*_fi.qm
%lang(fr) %{_libdir}/VirtualBox/nls/*_fr.qm
+%lang(gl_ES) %{_libdir}/VirtualBox/nls/*_gl_ES.qm
%lang(hu) %{_libdir}/VirtualBox/nls/*_hu.qm
%lang(id) %{_libdir}/VirtualBox/nls/*_id.qm
%lang(it) %{_libdir}/VirtualBox/nls/*_it.qm
%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)
%{_libdir}/VirtualBox/additions/VBoxGuestAdditions.iso
+%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(755,root,root) %{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/vboxvideo_dri.so
# vboxvideo_dri.so deps
+%attr(755,root,root) %{_libdir}/VBoxOGLarrayspu.so
%attr(755,root,root) %{_libdir}/VBoxOGLcrutil.so
%attr(755,root,root) %{_libdir}/VBoxOGLerrorspu.so
%attr(755,root,root) %{_libdir}/VBoxOGLfeedbackspu.so
%files -n kernel%{_alt_kernel}-misc-vboxsf
%defattr(644,root,root,755)
-%attr(754,root,root) /etc/rc.d/init.d/vboxvfs
+%attr(754,root,root) /etc/rc.d/init.d/vboxsf
%attr(755,root,root) %{_sbindir}/mount.vboxsf
/lib/modules/%{_kernel_ver}/misc/vboxsf.ko*