From a2b67f09195af7f7debbd00effc8d0035c08c0111b1dea64fb968c394efbb3ca Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Sun, 29 Sep 2024 12:01:17 +0000 Subject: [PATCH 1/4] [info=61f012062ba94d3937eade127cdfda55003e2ff193fe212a237162ade7373915] OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=748 --- .gitattributes | 2 - VirtualBox-7.1.0-patched.tpxz | 3 -- _scmsync.obsinfo | 4 ++ build.specials.obscpio | 3 ++ cxx17.patch | 75 --------------------------------- fixes_for_gcc13.patch | 22 ++++++---- vbox-vboxdrv-init-script.diff | 24 +++++++---- virtualbox-patch-source.sh | 7 +--- virtualbox-wrapper.sh | 2 +- virtualbox.changes | 20 --------- virtualbox.spec | 78 ++++++++++++++--------------------- 11 files changed, 71 insertions(+), 169 deletions(-) delete mode 100644 VirtualBox-7.1.0-patched.tpxz create mode 100644 _scmsync.obsinfo create mode 100644 build.specials.obscpio delete mode 100644 cxx17.patch diff --git a/.gitattributes b/.gitattributes index c4682d1..9b03811 100644 --- a/.gitattributes +++ b/.gitattributes @@ -21,5 +21,3 @@ *.xz filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text -## Specific LFS patterns -VirtualBox-7.1.0-patched.tpxz filter=lfs diff=lfs merge=lfs -text diff --git a/VirtualBox-7.1.0-patched.tpxz b/VirtualBox-7.1.0-patched.tpxz deleted file mode 100644 index 123015a..0000000 --- a/VirtualBox-7.1.0-patched.tpxz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:042b9b6fb25c19e98f71f75f1c3c2225b00544fb50b88ca32d049f4502af8a9b -size 150384828 diff --git a/_scmsync.obsinfo b/_scmsync.obsinfo new file mode 100644 index 0000000..81e6691 --- /dev/null +++ b/_scmsync.obsinfo @@ -0,0 +1,4 @@ +mtime: 1723708645 +commit: 61f012062ba94d3937eade127cdfda55003e2ff193fe212a237162ade7373915 +url: https://src.opensuse.org/jengelh/virtualbox +revision: master diff --git a/build.specials.obscpio b/build.specials.obscpio new file mode 100644 index 0000000..183b224 --- /dev/null +++ b/build.specials.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aac2915fcf89aedcf3540bc39a4cc0077a74e4dd1c15ae3edad6ef8675769798 +size 256 diff --git a/cxx17.patch b/cxx17.patch deleted file mode 100644 index ba0eafe..0000000 --- a/cxx17.patch +++ /dev/null @@ -1,75 +0,0 @@ -From: Jan Engelhardt -Date: 2024-09-20 22:48:58.758026690 +0200 - -The code uses , 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 noexcept is not part of the -function signature. So it was ok that FNCONSUMER *didn't* match the function definition. - -In C++17, noexcept is part of the signature, so its absence/presence is significant. - -The def file is also wrong, but no one at virtualbox.org noticed for some reason even -though it also caused a link/build failure. ---- - Config.kmk | 3 +++ - include/iprt/cpp/restclient.h | 12 ++++++++++-- - src/VBox/Runtime/VBox/VBoxRTImp-gcc.def | 2 +- - 3 files changed, 14 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 diff --git a/fixes_for_gcc13.patch b/fixes_for_gcc13.patch index a71b060..a1856ec 100644 --- a/fixes_for_gcc13.patch +++ b/fixes_for_gcc13.patch @@ -1,11 +1,19 @@ ---- - 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 +Index: VirtualBox-7.0.20/src/libs/dxvk-native-1.9.2a/src/util/util_bit.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 +--- 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 + #endif + ++#include + #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 @@ -66,6 +66,9 @@ TORTIOUS ACTION, ARISING OUT OF OR IN CO OF THIS SOFTWARE. diff --git a/vbox-vboxdrv-init-script.diff b/vbox-vboxdrv-init-script.diff index aceec1e..cf179cf 100644 --- a/vbox-vboxdrv-init-script.diff +++ b/vbox-vboxdrv-init-script.diff @@ -1,11 +1,7 @@ ---- - 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 +Index: 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 +--- VirtualBox-7.0.20.orig/src/VBox/Installer/linux/vboxdrv.sh ++++ VirtualBox-7.0.20/src/VBox/Installer/linux/vboxdrv.sh @@ -29,11 +29,12 @@ # ### BEGIN INIT INFO @@ -70,3 +66,17 @@ Index: VirtualBox-7.1.0/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 diff --git a/virtualbox-patch-source.sh b/virtualbox-patch-source.sh index e64fb71..eca8f6e 100644 --- a/virtualbox-patch-source.sh +++ b/virtualbox-patch-source.sh @@ -1,10 +1,5 @@ #!/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 @@ -59,4 +54,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[@]}" -pixz -9 "$BASENAME-patched.tar" +bzip2 "$BASENAME-patched.tar" diff --git a/virtualbox-wrapper.sh b/virtualbox-wrapper.sh index 6ed8de5..814f6e2 100644 --- a/virtualbox-wrapper.sh +++ b/virtualbox-wrapper.sh @@ -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}" exec /usr/lib/virtualbox/VirtualBoxQt "$@" +LD_LIBRARY_PATH="/usr/lib/virtualbox${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" /usr/lib/virtualbox/VirtualBox6 $@ diff --git a/virtualbox.changes b/virtualbox.changes index d9920e6..d807f23 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,23 +1,3 @@ -------------------------------------------------------------------- -Fri Sep 20 22:33:49 UTC 2024 - Jan Engelhardt - -- 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 diff --git a/virtualbox.spec b/virtualbox.spec index cb6f642..6cf58d3 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -52,7 +52,7 @@ %endif # ********* If the VB version exceeds 6.1.x, notify the libvirt maintainer!! Name: virtualbox%{?dash}%{?name_suffix} -Version: 7.1.0 +Version: 7.0.20 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.tpxz +Source0: VirtualBox-%{version}-patched.tar.bz2 Source1: UserManual.pdf Source3: virtualbox-60-vboxguest.rules Source4: virtualbox-default.virtualbox @@ -113,7 +113,6 @@ 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} @@ -123,14 +122,9 @@ BuildRequires: kernel-syms-longterm BuildRequires: acpica BuildRequires: cmake-full BuildRequires: dwarves -%if 0%{?suse_version} && 0%{?suse_version} >= 1600 BuildRequires: gcc BuildRequires: gcc-c++ -%else -BuildRequires: gcc11 -BuildRequires: gcc11-c++ -%endif -BuildRequires: kbuild >= 0.1.9998+svn3613 +BuildRequires: kbuild >= 0.1.9998svn3101 BuildRequires: libcap-devel BuildRequires: libcurl-devel BuildRequires: libopenssl-devel @@ -162,6 +156,11 @@ 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 @@ -171,7 +170,6 @@ 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 @@ -179,16 +177,6 @@ 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) @@ -215,12 +203,7 @@ BuildRequires: pkgconfig(xproto) BuildRequires: pkgconfig(xrandr) Requires: %{name}-kmp = %{version} Requires(pre): %fillup_prereq -Requires(post): permissions -Requires(verify): permissions -Conflicts: %{name}-qt < %{version} -Conflicts: %{name}-qt > %{version} -Conflicts: %{name}-websrv < %{version} -Conflicts: %{name}-websrv > %{version} +Requires(pre): permissions Recommends: %{name}-gui = %{version} # package i4l-vbox from source package i4l-base shares the directory /etc/vbox # with us, but with different owner. @@ -236,13 +219,8 @@ 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 @@ -278,9 +256,7 @@ the terms of the GNU Public License (GPL). Summary: Qt GUI part for %{name} Group: System/Emulators/PC Requires(pre): %{name} = %{version} -Requires: %{name} = %{version} -Requires(post): permissions -Requires(verify): permissions +Requires(pre): 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 @@ -412,7 +388,17 @@ This package contains the kernel-modules that VirtualBox uses to create or run v %endif %prep -%autosetup -n VirtualBox-%{version} -p1 +%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 ### Documents for virtualbox main package ### %if %{main_package} @@ -433,20 +419,13 @@ 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 configure script +# NOT an autoconf ceonfigure macro ./configure \ --enable-vnc \ --enable-vde \ @@ -579,13 +558,15 @@ 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}/VirtualBoxQt +install -m 755 VirtualBox %{buildroot}%{_vbox_instdir}/VirtualBox6 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 @@ -658,7 +639,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/python +pushd out/linux.*/release/bin/sdk/installer VBOX_INSTALL_PATH=%{_vbox_instdir} python3 vboxapisetup.py install --prefix=%{_prefix} --root=%{buildroot} popd install -d -m 755 %{buildroot}%{_vbox_instdir}/sdk/bindings/xpcom @@ -876,7 +857,7 @@ export DISABLE_RESTART_ON_UPDATE=yes %{_vbox_instdir}/VBoxEFI*.fd %{_vbox_instdir}/VBoxManage %{_vbox_instdir}/VBoxSVC -%{_vbox_instdir}/VBoxXPCOMIPCD.so +%{_vbox_instdir}/VBoxXPCOMIPCD %{_vbox_instdir}/VBoxExtPackHelperApp %{_vbox_instdir}/vboximg-mount %{_vbox_instdir}/DbgPlugInDiggers.so @@ -888,7 +869,6 @@ 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 @@ -927,13 +907,15 @@ 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}/VirtualBoxQt +%attr(0755,root,vboxusers) %{_vbox_instdir}/VirtualBox6 %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 From a2a4e0d8730542e769281f19a91a93da017925ec497f47a764cb8f3b292495fb Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Sun, 29 Sep 2024 12:05:29 +0000 Subject: [PATCH 2/4] [info=e025fac446ecbef0842cc722f451380f4d249ee76f5dae1a384d8d7c7f784449] OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=749 --- .gitattributes | 2 + VirtualBox-7.0.20-patched.tar.bz2 | 3 -- VirtualBox-7.1.0-patched.tpxz | 3 ++ _scmsync.obsinfo | 4 +- build.specials.obscpio | 2 +- cxx17.patch | 75 +++++++++++++++++++++++++++++ fixes_for_gcc13.patch | 22 +++------ vbox-vboxdrv-init-script.diff | 24 +++------- virtualbox-patch-source.sh | 7 ++- virtualbox-wrapper.sh | 2 +- virtualbox.changes | 26 ++++++++++ virtualbox.spec | 80 +++++++++++++++++++------------ 12 files changed, 179 insertions(+), 71 deletions(-) delete mode 100644 VirtualBox-7.0.20-patched.tar.bz2 create mode 100644 VirtualBox-7.1.0-patched.tpxz create mode 100644 cxx17.patch diff --git a/.gitattributes b/.gitattributes index 9b03811..c4682d1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -21,3 +21,5 @@ *.xz filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text +## Specific LFS patterns +VirtualBox-7.1.0-patched.tpxz filter=lfs diff=lfs merge=lfs -text diff --git a/VirtualBox-7.0.20-patched.tar.bz2 b/VirtualBox-7.0.20-patched.tar.bz2 deleted file mode 100644 index 43a6541..0000000 --- a/VirtualBox-7.0.20-patched.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5717b94fb45dc973c932c784bef311e1c605766489e8a40b498cd8dd2789480b -size 151174176 diff --git a/VirtualBox-7.1.0-patched.tpxz b/VirtualBox-7.1.0-patched.tpxz new file mode 100644 index 0000000..123015a --- /dev/null +++ b/VirtualBox-7.1.0-patched.tpxz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:042b9b6fb25c19e98f71f75f1c3c2225b00544fb50b88ca32d049f4502af8a9b +size 150384828 diff --git a/_scmsync.obsinfo b/_scmsync.obsinfo index 81e6691..8861618 100644 --- a/_scmsync.obsinfo +++ b/_scmsync.obsinfo @@ -1,4 +1,4 @@ -mtime: 1723708645 -commit: 61f012062ba94d3937eade127cdfda55003e2ff193fe212a237162ade7373915 +mtime: 1727611249 +commit: e025fac446ecbef0842cc722f451380f4d249ee76f5dae1a384d8d7c7f784449 url: https://src.opensuse.org/jengelh/virtualbox revision: master diff --git a/build.specials.obscpio b/build.specials.obscpio index 183b224..59a0cf6 100644 --- a/build.specials.obscpio +++ b/build.specials.obscpio @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:aac2915fcf89aedcf3540bc39a4cc0077a74e4dd1c15ae3edad6ef8675769798 +oid sha256:9b2d0fb674ff92328cdf555b27d9cb87d2494564e48c473cbd34e7e256528648 size 256 diff --git a/cxx17.patch b/cxx17.patch new file mode 100644 index 0000000..ba0eafe --- /dev/null +++ b/cxx17.patch @@ -0,0 +1,75 @@ +From: Jan Engelhardt +Date: 2024-09-20 22:48:58.758026690 +0200 + +The code uses , 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 noexcept is not part of the +function signature. So it was ok that FNCONSUMER *didn't* match the function definition. + +In C++17, noexcept is part of the signature, so its absence/presence is significant. + +The def file is also wrong, but no one at virtualbox.org noticed for some reason even +though it also caused a link/build failure. +--- + Config.kmk | 3 +++ + include/iprt/cpp/restclient.h | 12 ++++++++++-- + src/VBox/Runtime/VBox/VBoxRTImp-gcc.def | 2 +- + 3 files changed, 14 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 diff --git a/fixes_for_gcc13.patch b/fixes_for_gcc13.patch index a1856ec..a71b060 100644 --- a/fixes_for_gcc13.patch +++ b/fixes_for_gcc13.patch @@ -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 - #endif - -+#include - #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. diff --git a/vbox-vboxdrv-init-script.diff b/vbox-vboxdrv-init-script.diff index cf179cf..aceec1e 100644 --- a/vbox-vboxdrv-init-script.diff +++ b/vbox-vboxdrv-init-script.diff @@ -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 diff --git a/virtualbox-patch-source.sh b/virtualbox-patch-source.sh index eca8f6e..e64fb71 100644 --- a/virtualbox-patch-source.sh +++ b/virtualbox-patch-source.sh @@ -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" diff --git a/virtualbox-wrapper.sh b/virtualbox-wrapper.sh index 814f6e2..6ed8de5 100644 --- a/virtualbox-wrapper.sh +++ b/virtualbox-wrapper.sh @@ -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 "$@" diff --git a/virtualbox.changes b/virtualbox.changes index d807f23..21f4b40 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,3 +1,29 @@ +------------------------------------------------------------------- +Sun Sep 29 12:00:17 UTC 2024 - Jan Engelhardt + +- 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 + +- 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 diff --git a/virtualbox.spec b/virtualbox.spec index 6cf58d3..ba0f9fe 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -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.0 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 From fa4643bc2e4c0971aba99c4f1d56ceca908d77261baf95c6a1ca31dbf6bf7f13 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Tue, 1 Oct 2024 23:42:22 +0000 Subject: [PATCH 3/4] [info=9a0c938a8f191766a80b02b1ead5a8e2090c3041f8478d34302cb0228225e728] OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=750 --- _scmsync.obsinfo | 4 ++-- build.specials.obscpio | 2 +- cxx17.patch | 53 ++++++++++++++++++++++++++++++++++-------- virtualbox.changes | 6 +++++ 4 files changed, 52 insertions(+), 13 deletions(-) diff --git a/_scmsync.obsinfo b/_scmsync.obsinfo index 8861618..6f9f7ef 100644 --- a/_scmsync.obsinfo +++ b/_scmsync.obsinfo @@ -1,4 +1,4 @@ -mtime: 1727611249 -commit: e025fac446ecbef0842cc722f451380f4d249ee76f5dae1a384d8d7c7f784449 +mtime: 1727826113 +commit: 9a0c938a8f191766a80b02b1ead5a8e2090c3041f8478d34302cb0228225e728 url: https://src.opensuse.org/jengelh/virtualbox revision: master diff --git a/build.specials.obscpio b/build.specials.obscpio index 59a0cf6..e508ffc 100644 --- a/build.specials.obscpio +++ b/build.specials.obscpio @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9b2d0fb674ff92328cdf555b27d9cb87d2494564e48c473cbd34e7e256528648 +oid sha256:ae1d16b98d6e8d40d372ac0d52305fdb37d0175e09483ec1eb427a4fce439941 size 256 diff --git a/cxx17.patch b/cxx17.patch index ba0eafe..ad13122 100644 --- a/cxx17.patch +++ b/cxx17.patch @@ -1,20 +1,36 @@ From: Jan Engelhardt Date: 2024-09-20 22:48:58.758026690 +0200 -The code uses , so ensure we always use -std=c++17 at the very least. +The code uses , 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 noexcept is not part of the -function signature. So it was ok that FNCONSUMER *didn't* match the function definition. +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 part of the signature, so its absence/presence is significant. +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. -The def file is also wrong, but no one at virtualbox.org noticed for some reason even -though it also caused a link/build failure. --- - Config.kmk | 3 +++ - include/iprt/cpp/restclient.h | 12 ++++++++++-- - src/VBox/Runtime/VBox/VBoxRTImp-gcc.def | 2 +- - 3 files changed, 14 insertions(+), 3 deletions(-) + 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 =================================================================== @@ -73,3 +89,20 @@ Index: VirtualBox-7.1.0/src/VBox/Runtime/VBox/VBoxRTImp-gcc.def _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); diff --git a/virtualbox.changes b/virtualbox.changes index 21f4b40..fea7536 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Oct 1 23:30:00 UTC 2024 - Jan Engelhardt + +- Edit cxx17.patch to make the Extension Pack work with our + compiler flags and RT_NOEXCEPT choices. [boo#1231255] + ------------------------------------------------------------------- Sun Sep 29 12:00:17 UTC 2024 - Jan Engelhardt From d1f29f048a011852723b55a73e506e176c0b983037f04f26b618bb836104c306 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Wed, 2 Oct 2024 13:26:07 +0000 Subject: [PATCH 4/4] [info=e20690747e339af0538ba9cbf6b354945b9fb9e14db75ef65ba4444cb32b78d7] OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=751 --- _scmsync.obsinfo | 4 ++-- build.specials.obscpio | 2 +- virtualbox.changes | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/_scmsync.obsinfo b/_scmsync.obsinfo index 6f9f7ef..7034d5f 100644 --- a/_scmsync.obsinfo +++ b/_scmsync.obsinfo @@ -1,4 +1,4 @@ -mtime: 1727826113 -commit: 9a0c938a8f191766a80b02b1ead5a8e2090c3041f8478d34302cb0228225e728 +mtime: 1727875546 +commit: e20690747e339af0538ba9cbf6b354945b9fb9e14db75ef65ba4444cb32b78d7 url: https://src.opensuse.org/jengelh/virtualbox revision: master diff --git a/build.specials.obscpio b/build.specials.obscpio index e508ffc..21c2f09 100644 --- a/build.specials.obscpio +++ b/build.specials.obscpio @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ae1d16b98d6e8d40d372ac0d52305fdb37d0175e09483ec1eb427a4fce439941 +oid sha256:6fcd3759656e0ee5348fb7ddc57701e29e8d51027befc7a6b74ddf57301dfc50 size 256 diff --git a/virtualbox.changes b/virtualbox.changes index fea7536..a343cad 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -2,7 +2,7 @@ Tue Oct 1 23:30:00 UTC 2024 - Jan Engelhardt - Edit cxx17.patch to make the Extension Pack work with our - compiler flags and RT_NOEXCEPT choices. [boo#1231255] + compiler flags and RT_NOEXCEPT choices. [boo#1231225] ------------------------------------------------------------------- Sun Sep 29 12:00:17 UTC 2024 - Jan Engelhardt