Compare commits

...

4 Commits

9 changed files with 227 additions and 68 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5717b94fb45dc973c932c784bef311e1c605766489e8a40b498cd8dd2789480b
size 151174176

Binary file not shown.

108
cxx17.patch Normal file
View File

@ -0,0 +1,108 @@
From: Jan Engelhardt <ej@inai.de>
Date: 2024-09-20 22:48:58.758026690 +0200
The code uses <filesystem>, so ensure we always use -std=c++17 at the
very least.
Prior to C++17, noexcept cannot be part of a type alias, and so is
not part of the function signature, and so is not part of the ABI.
In C++17, noexcept is significant. There is a compile error because
the FNCONSUMER alias as defined in a .h file does not match the
function body in a .cpp file.
The def file is also wrong, but no one at virtualbox.org noticed for
some reason, even though the def mismatch also caused a link/build
failure in its own right.
To resolve the mismatch between .cpp/.h, the function signature is
augmented by RT_NOEXCEPT, based upon the function head being the
authoritative source as to whether something was meant to be noexcept
or not.
In turn, adding RT_NOEXCEPT causes a change in the ABI of VBoxRT.so.
The closed-source VirtualBox extension pack does not expect that and
is unable to load [LD_BIND_NOW=1]. To resolve _that_, we add extra
symbol aliases.
---
Config.kmk | 3 +++
include/iprt/cpp/restclient.h | 12 ++++++++++--
src/VBox/Runtime/VBox/VBoxRTImp-gcc.def | 2 +-
src/VBox/Runtime/common/rest/rest-binary.cpp | 9 +++++++++
4 files changed, 23 insertions(+), 3 deletions(-)
Index: VirtualBox-7.1.0/Config.kmk
===================================================================
--- VirtualBox-7.1.0.orig/Config.kmk
+++ VirtualBox-7.1.0/Config.kmk
@@ -3093,6 +3093,9 @@ ifeq ($(KBUILD_TARGET),darwin)
endif
endif
endif
+ifndef VBOX_GCC_std
+ VBOX_GCC_std := -std=c++17
+endif
#
# Check for incompatible rpath combinations.
Index: VirtualBox-7.1.0/include/iprt/cpp/restclient.h
===================================================================
--- VirtualBox-7.1.0.orig/include/iprt/cpp/restclient.h
+++ VirtualBox-7.1.0/include/iprt/cpp/restclient.h
@@ -130,7 +130,11 @@ public:
* is the sum of the previously returned @a *pcbActual values.
*/
typedef DECLCALLBACKTYPE(int, FNPRODUCER,(RTCRestBinaryParameter *a_pThis, void *a_pvDst, size_t a_cbDst,
- uint64_t a_offContent, size_t *a_pcbActual)) /*RT_NOEXCEPT*/;
+ uint64_t a_offContent, size_t *a_pcbActual))
+#if defined(__cplusplus) && __cplusplus >= 201700L
+RT_NOEXCEPT
+#endif
+;
/** Pointer to a byte producer callback. */
typedef FNPRODUCER *PFNPRODUCER;
@@ -268,7 +272,11 @@ public:
* is the sum of the previous @a a_cbSrc values.
*/
typedef DECLCALLBACKTYPE(int, FNCONSUMER,(RTCRestBinaryResponse *a_pThis, const void *a_pvSrc, size_t a_cbSrc,
- uint32_t a_uHttpStatus, uint64_t a_offContent, uint64_t a_cbContent)) /*RT_NOEXCEPT*/;
+ uint32_t a_uHttpStatus, uint64_t a_offContent, uint64_t a_cbContent))
+#if defined(__cplusplus) && __cplusplus >= 201700L
+RT_NOEXCEPT
+#endif
+;
/** Pointer to a byte consumer callback. */
typedef FNCONSUMER *PFNCONSUMER;
Index: VirtualBox-7.1.0/src/VBox/Runtime/VBox/VBoxRTImp-gcc.def
===================================================================
--- VirtualBox-7.1.0.orig/src/VBox/Runtime/VBox/VBoxRTImp-gcc.def
+++ VirtualBox-7.1.0/src/VBox/Runtime/VBox/VBoxRTImp-gcc.def
@@ -379,7 +379,7 @@ EXPORTS
_ZN22RTCRestBinaryParameter16xmitHttpCallbackEP14RTHTTPINTERNALPvmyPmS2_ ; int64=llong
_ZN22RTCRestBinaryParameter19setProducerCallbackEPFiPS_PvmmPmES1_m ; before-noexcept int64=long
_ZN22RTCRestBinaryParameter19setProducerCallbackEPFiPS_PvmyPmES1_y ; before-noexcept int64=llong
- _ZN22RTCRestBinaryParameter19setProducerCallbackEPDoFiPS_PvmyPmES1_m ; after-noexcept int64=long
+ _ZN22RTCRestBinaryParameter19setProducerCallbackEPDoFiPS_PvmmPmES1_m ; after-noexcept int64=long
_ZN22RTCRestBinaryParameter19setProducerCallbackEPDoFiPS_PvmyPmES1_y ; after-noexcept int64=llong
_ZN22RTCRestBinaryParameterC1Ev
_ZN22RTCRestBinaryParameterC2Ev
Index: VirtualBox-7.1.0/src/VBox/Runtime/common/rest/rest-binary.cpp
===================================================================
--- VirtualBox-7.1.0.orig/src/VBox/Runtime/common/rest/rest-binary.cpp
+++ VirtualBox-7.1.0/src/VBox/Runtime/common/rest/rest-binary.cpp
@@ -706,3 +706,12 @@ void RTCRestBinaryResponse::receiveCompl
AssertRC(rc);
}
+// extpack was built with wrong -std=, add a redirect
+extern "C" void DECLEXPORT_CLASS __attribute__((weak,
+alias("_ZN21RTCRestBinaryResponse19setConsumerCallbackEPDoFiPS_PKvmjmmEPv"))) // T symbol that exists
+ _ZN21RTCRestBinaryResponse19setConsumerCallbackEPFiPS_PKvmjmmEPv( // W symbol to make
+ RTCRestBinaryResponse::PFNCONSUMER, void *);
+extern "C" void DECLEXPORT_CLASS __attribute__((weak,
+alias("_ZN22RTCRestBinaryParameter19setProducerCallbackEPDoFiPS_PvmmPmES1_m"))) // T
+ _ZN22RTCRestBinaryParameter19setProducerCallbackEPFiPS_PvmmPmES1_m( // W
+ RTCRestBinaryParameter::PFNPRODUCER, void *, uint64_t);

View File

@ -1,19 +1,11 @@
Index: VirtualBox-7.0.20/src/libs/dxvk-native-1.9.2a/src/util/util_bit.h
---
src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h | 3 +++
1 file changed, 3 insertions(+)
Index: VirtualBox-7.1.0/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
===================================================================
--- VirtualBox-7.0.20.orig/src/libs/dxvk-native-1.9.2a/src/util/util_bit.h
+++ VirtualBox-7.0.20/src/libs/dxvk-native-1.9.2a/src/util/util_bit.h
@@ -13,6 +13,7 @@
#include <intrin.h>
#endif
+#include <cstdint>
#include "util_likely.h"
#include "util_math.h"
Index: VirtualBox-7.0.20/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
===================================================================
--- VirtualBox-7.0.20.orig/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
+++ VirtualBox-7.0.20/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
--- VirtualBox-7.1.0.orig/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
+++ VirtualBox-7.1.0/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
@@ -66,6 +66,9 @@ TORTIOUS ACTION, ARISING OUT OF OR IN CO
OF THIS SOFTWARE.

View File

@ -1,7 +1,11 @@
Index: VirtualBox-7.0.20/src/VBox/Installer/linux/vboxdrv.sh
---
src/VBox/Installer/linux/vboxdrv.sh | 42 ++++++------------------------------
1 file changed, 7 insertions(+), 35 deletions(-)
Index: VirtualBox-7.1.0/src/VBox/Installer/linux/vboxdrv.sh
===================================================================
--- VirtualBox-7.0.20.orig/src/VBox/Installer/linux/vboxdrv.sh
+++ VirtualBox-7.0.20/src/VBox/Installer/linux/vboxdrv.sh
--- VirtualBox-7.1.0.orig/src/VBox/Installer/linux/vboxdrv.sh
+++ VirtualBox-7.1.0/src/VBox/Installer/linux/vboxdrv.sh
@@ -29,11 +29,12 @@
#
### BEGIN INIT INFO
@ -66,17 +70,3 @@ Index: VirtualBox-7.0.20/src/VBox/Installer/linux/vboxdrv.sh
# Sign kernel modules if kernel configuration requires it.
if test "$(kernel_requires_module_signature)" = "1"; then
Index: VirtualBox-7.0.20/Config.kmk
===================================================================
--- VirtualBox-7.0.20.orig/Config.kmk
+++ VirtualBox-7.0.20/Config.kmk
@@ -3087,6 +3087,9 @@ else
endif
VBOX_MACOSX_ICON_FILE ?= $(PATH_ROOT)/src/VBox/Artwork/darwin/NonOSE/VirtualBox.icns
endif
+ifndef VBOX_GCC_std
+ VBOX_GCC_std := -std=c++17
+endif
ifndef VBOX_NOINC_DYNAMIC_CONFIG_KMK

View File

@ -1,5 +1,10 @@
#!/bin/bash
if [ -z "$1" ]; then
echo "You need to pass the filename VirtualBox-x.y.z.tar.bz2 as first argument."
exit 1
fi
REMOVE_DIRS=(
src/VBox/Additions/WINNT
src/VBox/Additions/os2
@ -54,4 +59,4 @@ fi
cp -a "$BASENAME.tar.bz2" "$BASENAME-patched.tar.bz2"
bunzip2 "$BASENAME-patched.tar.bz2"
tar --wildcards --delete -f "$BASENAME-patched.tar" "${REMOVE_DIRS[@]}"
bzip2 "$BASENAME-patched.tar"
pixz -9 "$BASENAME-patched.tar"

View File

@ -67,4 +67,4 @@ then
exit 1
fi
# Now run the VB GUI
LD_LIBRARY_PATH="/usr/lib/virtualbox${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" /usr/lib/virtualbox/VirtualBox6 $@
LD_LIBRARY_PATH="/usr/lib/virtualbox${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" exec /usr/lib/virtualbox/VirtualBoxQt "$@"

View File

@ -1,3 +1,52 @@
-------------------------------------------------------------------
Wed Oct 16 23:37:43 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 7.1.4
* NAT: Fixed DHCP problems with certain guests when domain is
empty
* VMSVGA: Improved flickering, black screen and other screen
update issues with recent Linux kernels
* Linux Guest Additions: Introduce initial support for kernel 6.12
* EFI: Added missing LsiLogic MPT SCSI driver again to fix
booting from devices attached to this device if the EFI
firmware is used (7.1.0 regression)
* EFI: Restored broken network boot support (7.1.0 regression)
* Adressed CVE-2024-21248 [boo#1231735],
CVE-2024-21273 [boo#1231736], CVE-2024-21259 [boo#1231737],
CVE-2024-21263 [boo#1231738]
-------------------------------------------------------------------
Tue Oct 1 23:30:00 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Edit cxx17.patch to make the Extension Pack work with our
compiler flags and RT_NOEXCEPT choices. [boo#1231225]
-------------------------------------------------------------------
Sun Sep 29 12:00:17 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Set BuildRequire on glslang to 11.5; this is when it starts to
recognize GL_EXT_spirv_intrinsics.
-------------------------------------------------------------------
Fri Sep 20 22:33:49 UTC 2024 - Jan Engelhardt <jengelh@inai.de>
- Update to release 7.1
* The GUI now offers a selection between Basic and Experienced
user level with reduced or full UI functionality.
* VRDE: If user does not set up TLS with custom certificates,
enable it with self-signed certificate, including issuing a
new one before the old one expires
* NAT: New engine with IPv6 support.
* Linux host and guest: Added Wayland support for Clipboard
sharing.
- Add cxx17.patch to workaround "new" build failures
with gcc14/C++17
- Move the C++17 command line switch from vbox-vboxadd-init-script.diff
to cxx17.patch
- Add Conflict markers to prevent the situation {virtualbox-7.1
combined with virtualbox-qt-7.0}; old VBQT did not have the right
(strong enough) Requires lines.
---------------------------------------------------------------------
Wed Aug 12 20:12:00 UTC 2024 - Larry Rainey <llrainey15@gmail.com>

View File

@ -52,7 +52,7 @@
%endif
# ********* If the VB version exceeds 6.1.x, notify the libvirt maintainer!!
Name: virtualbox%{?dash}%{?name_suffix}
Version: 7.0.20
Version: 7.1.4
Release: 0
Summary: %{package_summary}
License: GPL-3.0-or-later
@ -67,7 +67,7 @@ URL: https://www.virtualbox.org/
# script virtualbox-patch-source.sh will do the job :)
# WARNING: This is not a comment, but the real command to repack source
#%%(bash %%{_sourcedir}/virtualbox-patch-source.sh VirtualBox-%%{version}.tar.bz2)
Source0: VirtualBox-%{version}-patched.tar.bz2
Source0: VirtualBox-%{version}-patched.tpxz
Source1: UserManual.pdf
Source3: virtualbox-60-vboxguest.rules
Source4: virtualbox-default.virtualbox
@ -113,6 +113,7 @@ Patch8: turn_off_cloud_net.patch
Patch9: vbox-usb-warning.diff
# Patch for 15.5
Patch10: fix_for_leap15.5.patch
Patch11: cxx17.patch
#
# Common BuildRequires for both virtualbox and virtualbox-kmp
BuildRequires: %{kernel_module_package_buildreqs}
@ -122,9 +123,14 @@ BuildRequires: kernel-syms-longterm
BuildRequires: acpica
BuildRequires: cmake-full
BuildRequires: dwarves
%if 0%{?suse_version} && 0%{?suse_version} >= 1600
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: kbuild >= 0.1.9998svn3101
%else
BuildRequires: gcc11
BuildRequires: gcc11-c++
%endif
BuildRequires: kbuild >= 0.1.9998+svn3613
BuildRequires: libcap-devel
BuildRequires: libcurl-devel
BuildRequires: libopenssl-devel
@ -148,7 +154,7 @@ BuildRequires: dmidecode
BuildRequires: e2fsprogs-devel
BuildRequires: fdupes
BuildRequires: glibc-devel-static
BuildRequires: glslang-devel
BuildRequires: glslang-devel >= 11.5
BuildRequires: gsoap-devel >= 2.8.50
BuildRequires: java-devel >= 1.6.0
#BuildRequires: libSDL2-2_0-0
@ -156,11 +162,6 @@ BuildRequires: libelf-devel
BuildRequires: libidl-devel
BuildRequires: libopenssl-devel
BuildRequires: libopus-devel
BuildRequires: libqt5-linguist
BuildRequires: libqt5-linguist-devel
BuildRequires: libqt5-qtbase-devel
BuildRequires: libqt5-qttools-devel
BuildRequires: libqt5-qtx11extras-devel
BuildRequires: libtpms-devel
BuildRequires: libvpx-devel
BuildRequires: libxslt-devel
@ -170,6 +171,7 @@ BuildRequires: lzfse-devel
BuildRequires: pulseaudio-devel
BuildRequires: python-rpm-macros
BuildRequires: python3-devel
BuildRequires: qt6-tools-linguist
BuildRequires: rpm
BuildRequires: sed
BuildRequires: systemd-rpm-macros
@ -177,6 +179,16 @@ BuildRequires: sysuser-tools
BuildRequires: update-desktop-files
BuildRequires: which
BuildRequires: xorg-x11-server
BuildRequires: pkgconfig(Qt6Core)
BuildRequires: pkgconfig(Qt6DBus)
BuildRequires: pkgconfig(Qt6Gui)
BuildRequires: pkgconfig(Qt6Help)
BuildRequires: pkgconfig(Qt6Network)
BuildRequires: pkgconfig(Qt6PrintSupport)
BuildRequires: pkgconfig(Qt6Sql)
BuildRequires: pkgconfig(Qt6StateMachine)
BuildRequires: pkgconfig(Qt6Widgets)
BuildRequires: pkgconfig(Qt6Xml)
BuildRequires: pkgconfig(fontsproto)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(glx)
@ -203,7 +215,12 @@ BuildRequires: pkgconfig(xproto)
BuildRequires: pkgconfig(xrandr)
Requires: %{name}-kmp = %{version}
Requires(pre): %fillup_prereq
Requires(pre): permissions
Requires(post): permissions
Requires(verify): permissions
Conflicts: %{name}-qt < %{version}
Conflicts: %{name}-qt > %{version}
Conflicts: %{name}-websrv < %{version}
Conflicts: %{name}-websrv > %{version}
Recommends: %{name}-gui = %{version}
# package i4l-vbox from source package i4l-base shares the directory /etc/vbox
# with us, but with different owner.
@ -219,8 +236,13 @@ BuildRequires: libboost_headers-devel
BuildRequires: boost-devel
%endif
%ifarch amd64 x86_64 ia32e em64t
%if 0%{?suse_version} && 0%{?suse_version} >= 1600
BuildRequires: gcc-32bit
BuildRequires: gcc-c++-32bit
%else
BuildRequires: gcc11-32bit
BuildRequires: gcc11-c++-32bit
%endif
BuildRequires: xorg-x11-libX11-devel-32bit
BuildRequires: xorg-x11-libXext-devel-32bit
BuildRequires: xorg-x11-libXmu-devel-32bit
@ -256,7 +278,9 @@ the terms of the GNU Public License (GPL).
Summary: Qt GUI part for %{name}
Group: System/Emulators/PC
Requires(pre): %{name} = %{version}
Requires(pre): permissions
Requires: %{name} = %{version}
Requires(post): permissions
Requires(verify): permissions
Provides: %{name}-gui = %{version}
#this is needed during update to trigger installing qt subpackage
#http://en.opensuse.org/openSUSE:Upgrade_dependencies_explanation#Splitting_and_Merging
@ -388,17 +412,7 @@ This package contains the kernel-modules that VirtualBox uses to create or run v
%endif
%prep
%setup -q -n VirtualBox-%{version}
%patch -P 1 -p1
%patch -P 2 -p1
%patch -P 3 -p1
%patch -P 4 -p1
%patch -P 5 -p1
%patch -P 6 -p1
%patch -P 7 -p1
%patch -P 8 -p1
%patch -P 9 -p1
%patch -P 10 -p1
%autosetup -n VirtualBox-%{version} -p1
### Documents for virtualbox main package ###
%if %{main_package}
@ -419,13 +433,20 @@ sed -i 's:include/drm:%{_prefix}/src/linux/include/drm:' src/VBox/Additions/linu
### %%build, %%install, and %%file sections for virtualbox ###
%if %{main_package}
%build
%if 0%{?suse_version} && 0%{?suse_version} < 1600
# kmk is annoying, does not respond to CXX=g++-11 ...
mkdir tc
export PATH="$PWD/tc:$PATH"
ln -s /usr/bin/gcc-11 tc/gcc
ln -s /usr/bin/g++-11 tc/g++
%endif
# Disable LTO - Link Time Optimization
%define _lto_cflags %{nil}
#ensure we don't ever use them
rm -rf src/libs/{libpng-*,libxml2-*,libxslt-*,zlib-*,boost-*}
# --disable-kmods don't build Linux kernel modules - but use SUSE specific way see few lines under
# NOT an autoconf ceonfigure macro
# NOT an autoconf configure script
./configure \
--enable-vnc \
--enable-vde \
@ -558,15 +579,13 @@ ln -s %{_vbox_instdir}/VBoxHeadless %{buildroot}%{_bindir}/VBoxHeadless
ln -s %{_vbox_instdir}/VBoxSDL %{buildroot}%{_bindir}/VBoxSDL
ln -s %{_vbox_instdir}/vboximg-mount %{buildroot}%{_bindir}/vboximg-mount
install -m 755 VBoxSVC %{buildroot}%{_vbox_instdir}
install -m 755 VBoxXPCOMIPCD %{buildroot}%{_vbox_instdir}
install -m 755 VBoxExtPackHelperApp %{buildroot}%{_vbox_instdir}
install -m 755 VBoxTestOGL %{buildroot}%{_vbox_instdir}
install -m 755 VBoxPermissionMessage %{buildroot}%{_vbox_instdir}
install -m 755 VBoxSUIDMessage %{buildroot}%{_vbox_instdir}
install -m 755 VBoxUSB_DevRules %{buildroot}%{_vbox_instdir}
install -m 755 VBoxNetDHCP %{buildroot}%{_vbox_instdir}
install -m 755 VBoxNetAdpCtl %{buildroot}%{_vbox_instdir}
install -m 755 VirtualBox %{buildroot}%{_vbox_instdir}/VirtualBox6
install -m 755 VirtualBox %{buildroot}%{_vbox_instdir}/VirtualBoxQt
install -m 755 VirtualBoxVM %{buildroot}%{_vbox_instdir}
# compatibility symlink in order to keep old desktop links functional
ln -s %{_vbox_instdir}/VirtualBoxVM %{buildroot}%{_vbox_instdir}/VirtualBox
@ -639,7 +658,7 @@ install -m 0755 -D src/VBox/Installer/linux/VBoxCreateUSBNode.sh %{buildroot}%{_
######################################################
echo "entering python-virtualbox install section"
######################################################
pushd out/linux.*/release/bin/sdk/installer
pushd out/linux.*/release/bin/sdk/installer/python
VBOX_INSTALL_PATH=%{_vbox_instdir} python3 vboxapisetup.py install --prefix=%{_prefix} --root=%{buildroot}
popd
install -d -m 755 %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom
@ -857,7 +876,7 @@ export DISABLE_RESTART_ON_UPDATE=yes
%{_vbox_instdir}/VBoxEFI*.fd
%{_vbox_instdir}/VBoxManage
%{_vbox_instdir}/VBoxSVC
%{_vbox_instdir}/VBoxXPCOMIPCD
%{_vbox_instdir}/VBoxXPCOMIPCD.so
%{_vbox_instdir}/VBoxExtPackHelperApp
%{_vbox_instdir}/vboximg-mount
%{_vbox_instdir}/DbgPlugInDiggers.so
@ -869,6 +888,7 @@ export DISABLE_RESTART_ON_UPDATE=yes
%{_vbox_instdir}/VBoxDxVk.so
%{_vbox_instdir}/UICommon.so
%{_vbox_instdir}/VBoxHostChannel.so
%{_vbox_instdir}/VBoxTraceLogDecoders.so
%dir %{_vbox_instdir}/components
%{_vbox_instdir}/components/*.so
%{_vbox_instdir}/components/*.xpt
@ -907,15 +927,13 @@ export DISABLE_RESTART_ON_UPDATE=yes
%attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxPermissionMessage
%attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxSUIDMessage
%attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxUSB_DevRules
%attr(0755,root,vboxusers) %{_vbox_instdir}/VirtualBox6
%attr(0755,root,vboxusers) %{_vbox_instdir}/VirtualBoxQt
%verify(not mode) %attr(0750,root,vboxusers) %{_vbox_instdir}/VirtualBoxVM
%verify(not mode) %attr(0755,root,vboxusers) %{_vbox_instdir}/VBoxSDL
%{_vbox_instdir}/VirtualBox
#wrapper script is in bindir
%attr(0755,root,root) %{_bindir}/VirtualBox
%attr(0755,root,root) %{_bindir}/update-extpack.sh
#ldd shows libQt* dependency
%{_vbox_instdir}/VBoxTestOGL
#qm's translations
%{_datadir}/virtualbox/nls
%{_vbox_instdir}/VBoxSVGA3D.so