$ git diff --patch-with-stat --summary bbbee27f756791614b6258d0c6f26ee7f9731261..05b1e47ea9c247f48d0d45eba38a157f625ab921
.abf.yml | 6 +-
.onedev-buildspec.yml | 4 +
12-make-module.patch | 14 +-
18-system-xorg.patch | 16 +--
29-fix-ftbfs-as-needed.patch | 28 ++--
32-disable-guest-version-check.patch | 33 +++--
..._BETA3-dont-check-for-mkisofs-or-makeself.patch | 12 +-
VirtualBox-5.0.18-xserver_guest_xorg19.patch | 10 +-
VirtualBox-5.1.8-gsoap-2.8.13.patch | 11 +-
...Box-6.1.2-revert-removal-of-vital-symbols.patch | 16 +--
VirtualBox-7.1.4-unload-kvm.patch | 28 ++++
vbox-1024x768-instead-of-800x600.patch | 15 +++
vbox-7.1.6-workaround-doc-build-failure.patch | 11 ++
vbox-7.2.2-curl-8.16.patch | 62 +++++++++
virtualbox-6.1.32-python3.11.patch | 12 --
virtualbox-7.0.8-libstdc++13.patch | 11 ++
virtualbox-7.1.10-c23.patch | 13 ++
virtualbox-fix-build-with-gcc-14.patch | 23 ++++
virtualbox-fix-modules-rebuild-command.patch | 10 +-
virtualbox-no-prehistoric-xfree86.patch | 47 +++----
virtualbox.spec | 145 ++++++++++++++-------
21 files changed, 366 insertions(+), 161 deletions(-)
create mode 100644 .onedev-buildspec.yml
create mode 100644 VirtualBox-7.1.4-unload-kvm.patch
create mode 100644 vbox-1024x768-instead-of-800x600.patch
create mode 100644 vbox-7.1.6-workaround-doc-build-failure.patch
create mode 100644 vbox-7.2.2-curl-8.16.patch
delete mode 100644 virtualbox-6.1.32-python3.11.patch
create mode 100644 virtualbox-7.0.8-libstdc++13.patch
create mode 100644 virtualbox-7.1.10-c23.patch
create mode 100644 virtualbox-fix-build-with-gcc-14.patch
diff --git a/.abf.yml b/.abf.yml
index 630374f..72db7a1 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,6 +1,6 @@
sources:
os_openmandriva.png: 3c1c957c644369db0009773c895fbbb0617d5785
os_openmandriva_64.png: 80cce1aee0eea3e7aed9ee36d5829c0f0fa50fd4
- openssl-1.1.1k.tar.gz: bad9dc4ae6dcc1855085463099b5dacb0ec6130b
- VirtualBox-7.0.0.tar.bz2: 017223866220034ece6902b4edd28f1f8e10d8f5
- UserManual.pdf: 4a389dce8a98e61e83340fc399b3fb88953fde1f
+ openssl-3.0.16.tar.gz: 9f2b9d6aa10576a5938b5a9cbc777af3ff51d64a
+ VirtualBox-7.2.8.tar.bz2: a000b0c81acffa02c535d01511036d03c101a142
+ UserManual.pdf: ce13d21df479f8a28bebfb679a54bb13663aa99b
diff --git a/.onedev-buildspec.yml b/.onedev-buildspec.yml
new file mode 100644
index 0000000..b95f83a
--- /dev/null
+++ b/.onedev-buildspec.yml
@@ -0,0 +1,4 @@
+version: 40
+imports:
+- projectPath: OpenMandriva/Packages
+ revision: mirroring
diff --git a/12-make-module.patch b/12-make-module.patch
index e4c73ba..7e6872c 100644
--- a/12-make-module.patch
+++ b/12-make-module.patch
@@ -1,12 +1,12 @@
-diff -up VirtualBox-6.1.36/src/VBox/Installer/linux/Makefile-header.gmk.21~ VirtualBox-6.1.36/src/VBox/Installer/linux/Makefile-header.gmk
---- VirtualBox-6.1.36/src/VBox/Installer/linux/Makefile-header.gmk.21~ 2022-07-20 14:52:18.700146467 +0200
-+++ VirtualBox-6.1.36/src/VBox/Installer/linux/Makefile-header.gmk 2022-07-20 14:53:19.121506077 +0200
-@@ -50,7 +50,7 @@
+diff -up VirtualBox-7.1.0_BETA1/src/VBox/Installer/linux/Makefile-header.gmk.14~ VirtualBox-7.1.0_BETA1/src/VBox/Installer/linux/Makefile-header.gmk
+--- VirtualBox-7.1.0_BETA1/src/VBox/Installer/linux/Makefile-header.gmk.14~ 2024-08-12 13:31:09.716391963 +0200
++++ VirtualBox-7.1.0_BETA1/src/VBox/Installer/linux/Makefile-header.gmk 2024-08-12 13:36:25.115834612 +0200
+@@ -60,7 +60,7 @@
#
- # VBOX_KBUILD_TARGET_ARCH = amd64|x86
+ # VBOX_KBUILD_TARGET_ARCH = amd64|x86|arm64|arm32
-ifeq ($(filter-out x86_64 amd64 AMD64,$(shell uname -m)),)
-+ifeq ($(filter-out x86_64 amd64 AMD64,$(shell rpm --eval %_target_cpu)),)
++ifeq ($(filter-out x86_64 amd64 AMD64 znver1,$(shell rpm --eval %_target_cpu)),)
VBOX_KBUILD_TARGET_ARCH_DEFAULT := amd64
else
- VBOX_KBUILD_TARGET_ARCH_DEFAULT := x86
+ ifeq ($(filter-out aarch64,$(shell uname -m)),)
diff --git a/18-system-xorg.patch b/18-system-xorg.patch
index 47ceafc..1e54f21 100644
--- a/18-system-xorg.patch
+++ b/18-system-xorg.patch
@@ -1,16 +1,16 @@
-diff -up VirtualBox-6.0.0/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk.0108~ VirtualBox-6.0.0/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk
---- VirtualBox-6.0.0/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk.0108~ 2018-12-19 00:23:11.145158830 +0100
-+++ VirtualBox-6.0.0/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk 2018-12-19 00:26:13.714950398 +0100
-@@ -38,18 +38,6 @@ endif
+diff -up VirtualBox-7.0.8/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk.15~ VirtualBox-7.0.8/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk
+--- VirtualBox-7.0.8/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk.15~ 2023-04-20 21:02:59.080692158 +0200
++++ VirtualBox-7.0.8/src/VBox/Additions/common/VBoxGuest/lib/Makefile.kmk 2023-04-20 21:29:53.776886999 +0200
+@@ -50,18 +50,6 @@ endif
LIBRARIES += \
VBoxGuestR3Lib \
VBoxGuestR3LibShared
-ifndef VBOX_ONLY_VALIDATIONKIT
- if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd)
-- ifndef VBOX_USE_SYSTEM_XORG_HEADERS
-- LIBRARIES += \
-- VBoxGuestR3LibXFree86
-- endif
+- ifndef VBOX_USE_SYSTEM_XORG_HEADERS
+- LIBRARIES += \
+- VBoxGuestR3LibXFree86
+- endif
- endif
- if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)
- LIBRARIES += \
diff --git a/29-fix-ftbfs-as-needed.patch b/29-fix-ftbfs-as-needed.patch
index a66501e..c635212 100644
--- a/29-fix-ftbfs-as-needed.patch
+++ b/29-fix-ftbfs-as-needed.patch
@@ -1,16 +1,12 @@
-Description: Fix FTBFS with ld --as-needed.
-Origin: vendor, http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-emulation/virtualbox/files/virtualbox-4.1.4-asneeded.patch?revision=1.2&view=markup
-
-Index: virtualbox/Config.kmk
-===================================================================
---- virtualbox.orig/Config.kmk 2015-04-02 15:46:59.611743003 +0200
-+++ virtualbox/Config.kmk 2015-04-02 15:46:59.611743003 +0200
-@@ -6409,7 +6409,7 @@
- TEMPLATE_VBoxBldProg_LDFLAGS.amd64 = -m64
- TEMPLATE_VBoxBldProg_LDFLAGS.sparc64 = -m64
- ifeq ($(KBUILD_HOST),linux)
--TEMPLATE_VBoxBldProg_LIBS = pthread m rt dl
-+TEMPLATE_VBoxBldProg_LIBS = pthread m rt dl crypt
- else ifeq ($(KBUILD_HOST),os2)
- TEMPLATE_VBoxBldProg_TOOL = GXX3OMF
- TEMPLATE_VBoxBldProg_LIBS = socket iconv
+diff -up VirtualBox-7.2.0_BETA2/Config.kmk.18~ VirtualBox-7.2.0_BETA2/Config.kmk
+--- VirtualBox-7.2.0_BETA2/Config.kmk.18~ 2025-06-26 14:36:17.000000000 +0200
++++ VirtualBox-7.2.0_BETA2/Config.kmk 2025-06-29 23:26:33.719070921 +0200
+@@ -6545,7 +6545,7 @@ else # the gcc guys
+ TEMPLATE_VBoxR3Exe_LDFLAGS.solaris = -Wl,-z,ignore # same as VBOX_LD_as_needed
+
+ ifeq ($(KBUILD_TARGET),linux)
+- TEMPLATE_VBoxR3Exe_LATE_LIBS = pthread m rt dl
++ TEMPLATE_VBoxR3Exe_LATE_LIBS = pthread m rt dl crypt
+ else ifeq ($(KBUILD_TARGET),os2)
+ TEMPLATE_VBoxR3Exe_TOOL = GXX3OMF
+ TEMPLATE_VBoxR3Exe_LATE_LIBS = socket iconv
diff --git a/32-disable-guest-version-check.patch b/32-disable-guest-version-check.patch
index 7068193..4e26481 100644
--- a/32-disable-guest-version-check.patch
+++ b/32-disable-guest-version-check.patch
@@ -1,15 +1,20 @@
-Description: Disable notifications about outdated guest additions.
-Author: Felix Geyer <fgeyer@debian.org>
-
-Index: virtualbox/src/VBox/Additions/x11/VBoxClient/hostversion.cpp
-===================================================================
---- virtualbox.orig/src/VBox/Additions/x11/VBoxClient/hostversion.cpp
-+++ virtualbox/src/VBox/Additions/x11/VBoxClient/hostversion.cpp
-@@ -45,6 +45,7 @@
+diff -up VirtualBox-7.2.6/src/VBox/Additions/x11/VBoxClient/hostversion.cpp.19~ VirtualBox-7.2.6/src/VBox/Additions/x11/VBoxClient/hostversion.cpp
+--- VirtualBox-7.2.6/src/VBox/Additions/x11/VBoxClient/hostversion.cpp.19~ 2026-01-27 13:48:24.000000000 +0100
++++ VirtualBox-7.2.6/src/VBox/Additions/x11/VBoxClient/hostversion.cpp 2026-02-09 17:58:52.920529967 +0100
+@@ -96,13 +96,13 @@ static DECLCALLBACK(int) vbclHostVerWork
+ * Guest Additions. Distributors are encouraged to customise this. */
+ RTStrPrintf(szMsg, sizeof(szMsg), "Your virtual machine is currently running the Guest Additions version %s. Since you are running a version of the Guest Additions provided by the operating system you installed in the virtual machine we recommend that you update it to at least version %s using that system's update features, or alternatively that you remove this version and then install the " VBOX_VENDOR_SHORT " Guest Additions package using the install option from the Devices menu. Please consult the documentation for the operating system you are running to find out how to update or remove the current Guest Additions package.", pszGuestVersion, pszHostVersion);
+ # endif /* VBOX_OSE */
++#if 0
+ rc = VBClShowNotify(szTitle, szMsg);
++#endif
+ }
- static int showNotify(const char *pszHeader, const char *pszBody)
- {
-+ return VINF_SUCCESS;
- int rc;
- # ifdef VBOX_WITH_DBUS
- DBusConnection *conn;
+ /* Store host version to not notify again */
+- int rc2 = VbglR3HostVersionLastCheckedStore(&GuestPropClient, pszHostVersion);
+- if (RT_SUCCESS(rc))
+- rc = rc2;
++ rc = VbglR3HostVersionLastCheckedStore(&GuestPropClient, pszHostVersion);
+
+ VbglGuestPropReadValueFree(pszHostVersion);
+ VbglGuestPropReadValueFree(pszGuestVersion);
diff --git a/VirtualBox-5.0.0_BETA3-dont-check-for-mkisofs-or-makeself.patch b/VirtualBox-5.0.0_BETA3-dont-check-for-mkisofs-or-makeself.patch
index 4258409..5c0d5f9 100644
--- a/VirtualBox-5.0.0_BETA3-dont-check-for-mkisofs-or-makeself.patch
+++ b/VirtualBox-5.0.0_BETA3-dont-check-for-mkisofs-or-makeself.patch
@@ -1,12 +1,12 @@
-diff -Naur VirtualBox-5.2.16/configure VirtualBox-5.2.16.tpg/configure
---- VirtualBox-5.2.16/configure 2018-07-27 16:16:32.858489000 +0000
-+++ VirtualBox-5.2.16.tpg/configure 2018-07-27 16:19:05.690495478 +0000
-@@ -2823,8 +2823,6 @@
+diff -up VirtualBox-7.2.0/configure.9~ VirtualBox-7.2.0/configure
+--- VirtualBox-7.2.0/configure.9~ 2025-08-13 21:37:05.000000000 +0200
++++ VirtualBox-7.2.0/configure 2025-08-18 02:26:38.405106403 +0200
+@@ -3016,7 +3016,7 @@ if [ "$OS" = "linux" ]; then
fi
check_compiler_h
- [ $ONLY_ADDITIONS -eq 0 -a "$BUILD_MACHINE" = "amd64" -a $WITH_VMMRAW -eq 1 ] && check_32bit
-- # tools/common/makeself*
+ # tools/common/makeself*
- [ $OSE -ge 1 ] && check_makeself
++ #[ $OSE -ge 1 ] && check_makeself
fi
[ -n "$SETUP_WINE" ] && setup_wine
diff --git a/VirtualBox-5.0.18-xserver_guest_xorg19.patch b/VirtualBox-5.0.18-xserver_guest_xorg19.patch
index 60b721a..d112067 100644
--- a/VirtualBox-5.0.18-xserver_guest_xorg19.patch
+++ b/VirtualBox-5.0.18-xserver_guest_xorg19.patch
@@ -1,12 +1,12 @@
-Fix FTBFS by not compile X.org-1.19 drv, we don't use it, just need in el <= 7
---- ./src/VBox/Additions/x11/vboxvideo/Makefile.kmk.orig 2016-10-11 02:49:23.184986182 +0100
-+++ ./src/VBox/Additions/x11/vboxvideo/Makefile.kmk 2016-10-11 02:49:39.879176964 +0100
-@@ -376,7 +376,7 @@ vboxvideo_drv_118_SOURCES := $(vboxvideo
+diff -up VirtualBox-7.0.8/src/VBox/Additions/x11/vboxvideo/Makefile.kmk.12~ VirtualBox-7.0.8/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
+--- VirtualBox-7.0.8/src/VBox/Additions/x11/vboxvideo/Makefile.kmk.12~ 2023-04-20 20:49:29.676339991 +0200
++++ VirtualBox-7.0.8/src/VBox/Additions/x11/vboxvideo/Makefile.kmk 2023-04-20 21:01:47.691147821 +0200
+@@ -406,7 +406,7 @@ vboxvideo_drv_118_LIBS += $(vboxvideo_dr
ifdef VBOX_USE_SYSTEM_XORG_HEADERS
# Build using local X.Org headers. We assume X.Org Server 1.7 or later.
- DLLS := $(filter-out vboxvideo_drv_%,$(DLLS)) vboxvideo_drv_system
+ DLLS := $(filter-out vboxvideo_drv_%,$(DLLS))
SYSMODS := $(filter-out vboxvideo_drv%,$(SYSMODS))
- vboxvideo_drv_system_TEMPLATE = VBOXGUESTR3XORGMOD
+ vboxvideo_drv_system_TEMPLATE = VBoxGuestR3XOrgMod
vboxvideo_drv_system_CFLAGS := \
diff --git a/VirtualBox-5.1.8-gsoap-2.8.13.patch b/VirtualBox-5.1.8-gsoap-2.8.13.patch
index 8dee154..d6e78b4 100644
--- a/VirtualBox-5.1.8-gsoap-2.8.13.patch
+++ b/VirtualBox-5.1.8-gsoap-2.8.13.patch
@@ -1,11 +1,12 @@
---- a/src/VBox/Main/webservice/Makefile.kmk.orig 2013-05-13 18:43:42.492674768 +0100
-+++ b/src/VBox/Main/webservice/Makefile.kmk 2013-05-13 18:43:51.484674243 +0100
-@@ -650,7 +650,7 @@
- $(RECOMPILE_ON_MAKEFILE_CURRENT) | $$(dir $$@)
+diff -up VirtualBox-7.0.8/src/VBox/Main/webservice/Makefile.kmk.10~ VirtualBox-7.0.8/src/VBox/Main/webservice/Makefile.kmk
+--- VirtualBox-7.0.8/src/VBox/Main/webservice/Makefile.kmk.10~ 2023-04-20 20:42:56.947946069 +0200
++++ VirtualBox-7.0.8/src/VBox/Main/webservice/Makefile.kmk 2023-04-20 20:45:08.118120834 +0200
+@@ -848,7 +848,7 @@ ifdef VBOX_GSOAP_INSTALLED
+ $(RECOMPILE_ON_MAKEFILE_CURRENT) | $$(dir $$@)
$(call MSG_GENERATE,,lots of files,$(GSOAPH_RELEVANT))
$(RM) -f $@
- $(REDIRECT) -C $(VBOXWEB_OUT_DIR) -- $(VBOX_SOAPCPP2) $(VBOXWEB_SOAPCPP2_SKIP_FILES) -L -2 -w -I$(VBOX_PATH_GSOAP_IMPORT) $(GSOAPH_RELEVANT)
+ $(REDIRECT) -C $(VBOXWEB_OUT_DIR) -- $(VBOX_SOAPCPP2) $(VBOXWEB_SOAPCPP2_SKIP_FILES) -z1 -L -2 -w -I$(VBOX_PATH_GSOAP_IMPORT) $(GSOAPH_RELEVANT)
- ifeq ($(KBUILD_TARGET),win) # MSC -Wall workaround.
+ ifeq ($(KBUILD_TARGET),win) # MSC -Wall workaround.
$(CP) -f "$(VBOXWEB_SOAP_CLIENT_H)" "$(VBOXWEB_SOAP_CLIENT_H).tmp"
$(SED) -f $(VBOX_PATH_WEBSERVICE)/stdsoap2.sed --output "$(VBOXWEB_SOAP_CLIENT_H)" "$(VBOXWEB_SOAP_CLIENT_H).tmp"
diff --git a/VirtualBox-6.1.2-revert-removal-of-vital-symbols.patch b/VirtualBox-6.1.2-revert-removal-of-vital-symbols.patch
index f69b688..5948d4b 100644
--- a/VirtualBox-6.1.2-revert-removal-of-vital-symbols.patch
+++ b/VirtualBox-6.1.2-revert-removal-of-vital-symbols.patch
@@ -1,12 +1,12 @@
-diff -urN VirtualBox-6.1.2/src/VBox/Devices/Makefile.kmk VirtualBox-6.1.0/src/VBox/Devices/Makefile.kmk
---- VirtualBox-6.1.2/src/VBox/Devices/Makefile.kmk 2020-01-13 11:51:54.000000000 +0100
-+++ VirtualBox-6.1.0/src/VBox/Devices/Makefile.kmk 2019-12-10 18:50:52.000000000 +0100
-@@ -1267,7 +1248,7 @@
- $(if $(VBOX_WITH_NAT_SERVICE),VBOX_WITH_NAT_SERVICE,)
+diff -up VirtualBox-7.0.8/src/VBox/Devices/Makefile.kmk.1~ VirtualBox-7.0.8/src/VBox/Devices/Makefile.kmk
+--- VirtualBox-7.0.8/src/VBox/Devices/Makefile.kmk.1~ 2023-04-20 20:40:15.803469429 +0200
++++ VirtualBox-7.0.8/src/VBox/Devices/Makefile.kmk 2023-04-20 20:40:50.679760846 +0200
+@@ -1433,7 +1433,7 @@ if !defined(VBOX_ONLY_EXTPACKS) && "$(in
+ $(if $(VBOX_WITH_NAT_SERVICE),VBOX_WITH_NAT_SERVICE,)
ServicesR0_SOURCES = \
- Network/SrvIntNetR0.cpp \
--# $(if $(VBOX_WITH_PCI_PASSTHROUGH),Bus/SrvPciRawR0.cpp,)
-+ $(if $(VBOX_WITH_PCI_PASSTHROUGH),Bus/SrvPciRawR0.cpp,)
+ Network/SrvIntNetR0.cpp
+- # $(if $(VBOX_WITH_PCI_PASSTHROUGH),Bus/SrvPciRawR0.cpp,)
++# $(if $(VBOX_WITH_PCI_PASSTHROUGH),Bus/SrvPciRawR0.cpp,)
Network/SrvIntNetR0.cpp_CXXFLAGS := $(if-expr $(KBUILD_TARGET) == "win",,$(VBOX_GCC_Wno-array_bounds))
diff --git a/VirtualBox-7.1.4-unload-kvm.patch b/VirtualBox-7.1.4-unload-kvm.patch
new file mode 100644
index 0000000..f1ad637
--- /dev/null
+++ b/VirtualBox-7.1.4-unload-kvm.patch
@@ -0,0 +1,28 @@
+diff -up VirtualBox-7.1.4/src/VBox/Installer/linux/VBox.sh.omv~ VirtualBox-7.1.4/src/VBox/Installer/linux/VBox.sh
+--- VirtualBox-7.1.4/src/VBox/Installer/linux/VBox.sh.omv~ 2024-11-21 01:11:45.133644133 +0100
++++ VirtualBox-7.1.4/src/VBox/Installer/linux/VBox.sh 2024-11-21 01:19:00.778717214 +0100
+@@ -61,6 +61,24 @@ else
+ exit 1
+ fi
+
++### As of kernel 6.12.0, the KVM module initializes itself on load,
++### preventing vboxdrv from grabbing the CPU extensions for itself
++### For newer kernels, irqbypass (also autoloaded) depends on kvm
++CONFLICTING_MODULES=""
++if lsmod |grep -q irqbypass; then
++ CONFLICTING_MODULES="$CONFLICTING_MODULES irqbypass"
++fi
++if lsmod |grep -q kvm_amd; then
++ CONFLICTING_MODULES="$CONFLICTING_MODULES kvm_amd"
++fi
++if lsmod |grep -q kvm_intel; then
++ CONFLICTING_MODULES="$CONFLICTING_MODULES kvm_intel"
++fi
++if lsmod |grep -q kvm; then
++ CONFLICTING_MODULES="$CONFLICTING_MODULES kvm"
++fi
++[ -n "$CONFLICTING_MODULES" ] && pkexec rmmod $CONFLICTING_MODULES
++
+ # Note: This script must not fail if the module was not successfully installed
+ # because the user might not want to run a VM but only change VM params!
+
diff --git a/vbox-1024x768-instead-of-800x600.patch b/vbox-1024x768-instead-of-800x600.patch
new file mode 100644
index 0000000..0f8f348
--- /dev/null
+++ b/vbox-1024x768-instead-of-800x600.patch
@@ -0,0 +1,15 @@
+diff -up VirtualBox-7.2.0_BETA2/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp.3~ VirtualBox-7.2.0_BETA2/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp
+--- VirtualBox-7.2.0_BETA2/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp.3~ 2025-06-26 14:49:53.000000000 +0200
++++ VirtualBox-7.2.0_BETA2/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp 2025-06-29 23:24:29.654689949 +0200
+@@ -963,9 +963,9 @@ void UIMachineView::sltHandleActionTrigg
+ {
+ /* Defaults: */
+ if (!uWidth)
+- uWidth = 800;
++ uWidth = 1024;
+ if (!uHeight)
+- uHeight = 600;
++ uHeight = 768;
+
+ /* Update current window size limitations: */
+ setMaximumGuestSize(QSize((int)uWidth, (int)uHeight));
diff --git a/vbox-7.1.6-workaround-doc-build-failure.patch b/vbox-7.1.6-workaround-doc-build-failure.patch
new file mode 100644
index 0000000..73a94d4
--- /dev/null
+++ b/vbox-7.1.6-workaround-doc-build-failure.patch
@@ -0,0 +1,11 @@
+diff -urN VirtualBox-7.1.6/doc/manual/en_US/dita/UserManual.ditamap VirtualBox-7.1.4/doc/manual/en_US/dita/UserManual.ditamap
+--- VirtualBox-7.1.6/doc/manual/en_US/dita/UserManual.ditamap 2025-01-21 13:41:16.000000000 +0100
++++ VirtualBox-7.1.4/doc/manual/en_US/dita/UserManual.ditamap 2024-10-10 18:55:33.000000000 +0200
+@@ -615,7 +615,6 @@
+ <topicref href="topics/security-model.dita"/>
+ <topicref href="topics/secure-config-vms.dita">
+ <topicref href="topics/security-networking.dita"/>
+- <topicref href="topics/security-of-remote-vms.dita"/>
+ <topicref href="topics/security-vrdp-auth.dita"/>
+ <topicref href="topics/security_clipboard.dita"/>
+ <topicref href="topics/security-shared-folders.dita"/>
diff --git a/vbox-7.2.2-curl-8.16.patch b/vbox-7.2.2-curl-8.16.patch
new file mode 100644
index 0000000..34e4b07
--- /dev/null
+++ b/vbox-7.2.2-curl-8.16.patch
@@ -0,0 +1,62 @@
+diff -up VirtualBox-7.2.6/src/VBox/Runtime/generic/http-curl.cpp.25~ VirtualBox-7.2.6/src/VBox/Runtime/generic/http-curl.cpp
+--- VirtualBox-7.2.6/src/VBox/Runtime/generic/http-curl.cpp.25~ 2026-01-27 13:58:06.000000000 +0100
++++ VirtualBox-7.2.6/src/VBox/Runtime/generic/http-curl.cpp 2026-02-09 18:05:20.887234314 +0100
+@@ -699,7 +699,7 @@ static int rtHttpUpdateAutomaticProxyDis
+ Log(("rtHttpUpdateAutomaticProxyDisable: pThis=%p\n", pThis));
+
+ AssertReturn(curl_easy_setopt(pThis->pCurl, CURLOPT_PROXYTYPE, (long)CURLPROXY_HTTP) == CURLE_OK, VERR_INTERNAL_ERROR_2);
+- pThis->enmProxyType = CURLPROXY_HTTP;
++ pThis->enmProxyType = static_cast<curl_proxytype>(CURLPROXY_HTTP);
+
+ AssertReturn(curl_easy_setopt(pThis->pCurl, CURLOPT_PROXYPORT, (long)1080) == CURLE_OK, VERR_INTERNAL_ERROR_2);
+ pThis->uProxyPort = 1080;
+@@ -874,7 +874,7 @@ static int rtHttpConfigureProxyFromUrl(P
+ long enmProxyType;
+ if (RTUriIsSchemeMatch(pszProxyUrl, "http"))
+ {
+- enmProxyType = CURLPROXY_HTTP;
++ enmProxyType = static_cast<curl_proxytype>(CURLPROXY_HTTP);
+ if (uProxyPort == UINT32_MAX)
+ uProxyPort = 80;
+ }
+@@ -882,7 +882,7 @@ static int rtHttpConfigureProxyFromUrl(P
+ # if CURL_AT_LEAST_VERSION(7,52,0)
+ else if (RTUriIsSchemeMatch(pszProxyUrl, "https"))
+ {
+- enmProxyType = CURLPROXY_HTTPS;
++ enmProxyType = static_cast<curl_proxytype>(CURLPROXY_HTTPS);
+ if (uProxyPort == UINT32_MAX)
+ uProxyPort = 443;
+ }
+@@ -890,17 +890,17 @@ static int rtHttpConfigureProxyFromUrl(P
+ #endif
+ else if ( RTUriIsSchemeMatch(pszProxyUrl, "socks4")
+ || RTUriIsSchemeMatch(pszProxyUrl, "socks"))
+- enmProxyType = CURLPROXY_SOCKS4;
++ enmProxyType = static_cast<curl_proxytype>(CURLPROXY_SOCKS4);
+ else if (RTUriIsSchemeMatch(pszProxyUrl, "socks4a"))
+- enmProxyType = CURLPROXY_SOCKS4A;
++ enmProxyType = static_cast<curl_proxytype>(CURLPROXY_SOCKS4A);
+ else if (RTUriIsSchemeMatch(pszProxyUrl, "socks5"))
+- enmProxyType = CURLPROXY_SOCKS5;
++ enmProxyType = static_cast<curl_proxytype>(CURLPROXY_SOCKS5);
+ else if (RTUriIsSchemeMatch(pszProxyUrl, "socks5h"))
+- enmProxyType = CURLPROXY_SOCKS5_HOSTNAME;
++ enmProxyType = static_cast<curl_proxytype>(CURLPROXY_SOCKS5_HOSTNAME);
+ else
+ {
+ fUnknownProxyType = true;
+- enmProxyType = CURLPROXY_HTTP;
++ enmProxyType = static_cast<curl_proxytype>(CURLPROXY_HTTP);
+ if (uProxyPort == UINT32_MAX)
+ uProxyPort = 8080;
+ }
+@@ -2094,7 +2094,7 @@ RTR3DECL(int) RTHttpSetProxy(RTHTTP hHtt
+ if (!pcszProxy)
+ return rtHttpUpdateAutomaticProxyDisable(pThis);
+
+- return rtHttpUpdateProxyConfig(pThis, CURLPROXY_HTTP, pcszProxy, uPort ? uPort : 1080, pcszProxyUser, pcszProxyPwd);
++ return rtHttpUpdateProxyConfig(pThis, static_cast<curl_proxytype>(CURLPROXY_HTTP), pcszProxy, uPort ? uPort : 1080, pcszProxyUser, pcszProxyPwd);
+ }
+
+
diff --git a/virtualbox-6.1.32-python3.11.patch b/virtualbox-6.1.32-python3.11.patch
deleted file mode 100644
index b28718f..0000000
--- a/virtualbox-6.1.32-python3.11.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up VirtualBox-6.1.36/configure.3~ VirtualBox-6.1.36/configure
---- VirtualBox-6.1.36/configure.3~ 2022-07-20 14:45:45.256281324 +0200
-+++ VirtualBox-6.1.36/configure 2022-07-20 14:46:53.634567672 +0200
-@@ -2027,7 +2027,7 @@ extern "C" int main(void)
- }
- EOF
- found=
-- SUPPYTHONLIBS="python2.7 python2.6 python3.1 python3.2 python3.3 python3.4 python3.4m python3.5 python3.5m python3.6 python3.6m python3.7 python3.7m python3.8 python3.8m python3.9 python3.9m python3.10 python3.10m"
-+ SUPPYTHONLIBS="python2.7 python2.6 python3.1 python3.2 python3.3 python3.4 python3.4m python3.5 python3.5m python3.6 python3.6m python3.7 python3.7m python3.8 python3.8m python3.9 python3.9m python3.10 python3.10m python3.11 python3.11m"
- for p in $PYTHONDIR; do
- for d in $SUPPYTHONLIBS; do
- for b in lib/x86_64-linux-gnu lib/i386-linux-gnu lib64 lib/64 lib; do
diff --git a/virtualbox-7.0.8-libstdc++13.patch b/virtualbox-7.0.8-libstdc++13.patch
new file mode 100644
index 0000000..191bdf6
--- /dev/null
+++ b/virtualbox-7.0.8-libstdc++13.patch
@@ -0,0 +1,11 @@
+diff -up VirtualBox-7.0.8/src/libs/dxvk-native-1.9.2a/src/util/util_bit.h.omv~ VirtualBox-7.0.8/src/libs/dxvk-native-1.9.2a/src/util/util_bit.h
+--- VirtualBox-7.0.8/src/libs/dxvk-native-1.9.2a/src/util/util_bit.h.omv~ 2023-04-25 18:02:48.709831851 +0200
++++ VirtualBox-7.0.8/src/libs/dxvk-native-1.9.2a/src/util/util_bit.h 2023-04-25 18:02:58.378894612 +0200
+@@ -16,6 +16,7 @@
+ #include "util_likely.h"
+ #include "util_math.h"
+
++#include <cstdint>
+ #include <cstring>
+ #include <iterator>
+ #include <type_traits>
diff --git a/virtualbox-7.1.10-c23.patch b/virtualbox-7.1.10-c23.patch
new file mode 100644
index 0000000..5abe999
--- /dev/null
+++ b/virtualbox-7.1.10-c23.patch
@@ -0,0 +1,13 @@
+diff -up VirtualBox-7.1.10/include/iprt/types.h.omv~ VirtualBox-7.1.10/include/iprt/types.h
+--- VirtualBox-7.1.10/include/iprt/types.h.omv~ 2025-06-06 21:29:06.874678096 +0200
++++ VirtualBox-7.1.10/include/iprt/types.h 2025-06-06 21:32:21.056426282 +0200
+@@ -280,6 +280,8 @@ typedef _Bool bool;
+ # undef bool
+ typedef _Bool bool;
+ # endif
++# elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L
++# include <stdbool.h>
+ # else
+ # undef bool /* see above netbsd explanation */
+ typedef _Bool bool;
+diff -up VirtualBox-7.1.10/include/iprt/types.h:.omv~ VirtualBox-7.1.10/include/iprt/types.h:
diff --git a/virtualbox-fix-build-with-gcc-14.patch b/virtualbox-fix-build-with-gcc-14.patch
new file mode 100644
index 0000000..da3670a
--- /dev/null
+++ b/virtualbox-fix-build-with-gcc-14.patch
@@ -0,0 +1,23 @@
+diff -up VirtualBox-7.1.0_BETA2/src/VBox/Devices/PC/ipxe/Makefile.kmk.omv~ VirtualBox-7.1.0_BETA2/src/VBox/Devices/PC/ipxe/Makefile.kmk
+--- VirtualBox-7.1.0_BETA2/src/VBox/Devices/PC/ipxe/Makefile.kmk.omv~ 2024-09-08 15:41:48.830631510 +0200
++++ VirtualBox-7.1.0_BETA2/src/VBox/Devices/PC/ipxe/Makefile.kmk 2024-09-08 15:41:58.000724843 +0200
+@@ -142,6 +142,7 @@ endif
+ -Wall \
+ -W \
+ -Wformat-nonliteral \
++ -Wno-array-bounds \
+ $(VBOX_GCC_fno-stack-protector) \
+ $(VBOX_GCC_fno-dwarf2-cfi-asm) \
+ $(VBOX_GCC_Wno-address)
+diff -up VirtualBox-7.1.0_BETA2/src/VBox/Devices/PC/ipxe/src/arch/i386/Makefile.omv~ VirtualBox-7.1.0_BETA2/src/VBox/Devices/PC/ipxe/src/arch/i386/Makefile
+--- VirtualBox-7.1.0_BETA2/src/VBox/Devices/PC/ipxe/src/arch/i386/Makefile.omv~ 2024-09-08 15:42:07.060817062 +0200
++++ VirtualBox-7.1.0_BETA2/src/VBox/Devices/PC/ipxe/src/arch/i386/Makefile 2024-09-08 15:42:21.800967112 +0200
+@@ -48,6 +48,8 @@ endif
+ #
+ CFLAGS += -freg-struct-return
+
++CFLAGS += -Wno-array-bounds
++
+ # Force 32-bit code even on an x86-64 machine
+ #
+ CFLAGS += -m32
diff --git a/virtualbox-fix-modules-rebuild-command.patch b/virtualbox-fix-modules-rebuild-command.patch
index a32d540..454f780 100644
--- a/virtualbox-fix-modules-rebuild-command.patch
+++ b/virtualbox-fix-modules-rebuild-command.patch
@@ -6,7 +6,7 @@ diff -up VirtualBox-6.0.6/src/VBox/Installer/linux/VBox.sh.0001~ VirtualBox-6.0.
load. Please recompile the kernel module and install it by
- sudo /sbin/vboxconfig
-+ sudo dnf --refresh install kernel-release-desktop-latest
++ sudo dnf --refresh install kernel-desktop
You will not be able to start VMs until this problem is fixed.
EOF
@@ -15,13 +15,13 @@ diff -up VirtualBox-6.0.6/src/VBox/Installer/linux/VBox.sh.0001~ VirtualBox-6.0.
sudo /sbin/vboxconfig
+ or
-+ sudo dnf --refresh install kernel-release-desktop-latest
++ sudo dnf --refresh install kernel-desktop
and if that is not successful, try to re-install the package.
-diff -up VirtualBox-6.0.6/src/VBox/VMM/VMMR3/VM.cpp.0001~ VirtualBox-6.0.6/src/VBox/VMM/VMMR3/VM.cpp
---- VirtualBox-6.0.6/src/VBox/VMM/VMMR3/VM.cpp.0001~ 2019-04-17 03:14:10.363183984 +0200
-+++ VirtualBox-6.0.6/src/VBox/VMM/VMMR3/VM.cpp 2019-04-17 03:18:48.068170511 +0200
+diff -up VirtualBox-6.0.6/src/VBox/VMM/VMMR3/VMR3.cpp.0001~ VirtualBox-6.0.6/src/VBox/VMM/VMMR3/VMR3.cpp
+--- VirtualBox-6.0.6/src/VBox/VMM/VMMR3/VMR3.cpp.0001~ 2019-04-17 03:14:10.363183984 +0200
++++ VirtualBox-6.0.6/src/VBox/VMM/VMMR3/VMR3.cpp 2019-04-17 03:18:48.068170511 +0200
@@ -274,9 +274,9 @@ VMMR3DECL(int) VMR3Create(uint32_t cCp
pszError = N_("One of the kernel modules was not successfully loaded. Make sure "
"that VirtualBox is correctly installed, and if you are using EFI "
diff --git a/virtualbox-no-prehistoric-xfree86.patch b/virtualbox-no-prehistoric-xfree86.patch
index ee21f91..640a804 100644
--- a/virtualbox-no-prehistoric-xfree86.patch
+++ b/virtualbox-no-prehistoric-xfree86.patch
@@ -1,30 +1,33 @@
---- VirtualBox-5.2.0/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp.0022~ 2017-10-18 09:06:44.000000000 +0200
-+++ VirtualBox-5.2.0/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp 2017-10-31 13:31:27.646597617 +0100
-@@ -36,16 +36,14 @@
- #if defined(VBOX_VBGLR3_XFREE86)
- extern "C" {
- # define XFree86LOADER
+diff -up VirtualBox-7.0.16/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp.12~ VirtualBox-7.0.16/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp
+--- VirtualBox-7.0.16/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp.12~ 2024-04-17 14:33:26.496478608 +0200
++++ VirtualBox-7.0.16/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp 2024-04-17 15:27:20.345432280 +0200
+@@ -43,22 +43,11 @@
+ #include <iprt/assert.h>
+ #include <iprt/log.h>
+ #include <iprt/mem.h>
+-#if defined(VBOX_VBGLR3_XFREE86)
+-extern "C" {
+-# define XFree86LOADER
+-# if RT_GNUC_PREREQ(13,0) /* cmath gets dragged in and the c++/13/cmath header is allergic to -ffreestanding. */
+-# define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
+-# endif
-# include <xf86_ansic.h>
- # undef size_t
- }
+-# undef size_t
+-}
-#else
--# include <stdarg.h>
--# include <stdlib.h>
--# define xalloc malloc
--# define xfree free
--extern "C" void ErrorF(const char *f, ...);
- #endif
-+#include <stdarg.h>
-+#include <stdlib.h>
-+#define xalloc malloc
-+#define xfree free
-+extern "C" void ErrorF(const char *f, ...);
+ # include <stdarg.h>
+ # include <stdlib.h>
+ # define xalloc malloc
+ # define xfree free
+ extern "C" void ErrorF(const char *f, ...);
+-#endif
RTDECL(void) RTAssertMsg1Weak(const char *pszExpr, unsigned uLine, const char *pszFile, const char *pszFunction)
{
---- VirtualBox-5.2.0/src/VBox/Additions/x11/vboxvideo/VBoxVideoIPRT.h.0022~ 2017-10-18 09:06:50.000000000 +0200
-+++ VirtualBox-5.2.0/src/VBox/Additions/x11/vboxvideo/VBoxVideoIPRT.h 2017-10-31 13:36:20.635971573 +0100
-@@ -52,7 +52,7 @@ RT_C_DECLS_BEGIN
+diff -up VirtualBox-7.0.16/src/VBox/Additions/x11/vboxvideo/VBoxVideoIPRT.h.12~ VirtualBox-7.0.16/src/VBox/Additions/x11/vboxvideo/VBoxVideoIPRT.h
+--- VirtualBox-7.0.16/src/VBox/Additions/x11/vboxvideo/VBoxVideoIPRT.h.12~ 2024-04-16 13:58:16.000000000 +0200
++++ VirtualBox-7.0.16/src/VBox/Additions/x11/vboxvideo/VBoxVideoIPRT.h 2024-04-17 14:33:26.496478608 +0200
+@@ -59,7 +59,7 @@ RT_C_DECLS_BEGIN
RT_C_DECLS_END
#endif /* defined(IN_XF86_MODULE) && !defined(NO_ANSIC) */
#define __STDC_LIMIT_MACROS /* define *INT*_MAX on C++ too. */
diff --git a/virtualbox.spec b/virtualbox.spec
index a05d22d..4d43a41 100644
--- a/virtualbox.spec
+++ b/virtualbox.spec
@@ -1,7 +1,12 @@
+# Useful for debugging build failures, vbox make output tends
+# to be quite garbled
+#global _smp_mflags -j1
+
+#define beta BETA2
%define kname vboxdrv
%define oname VirtualBox
-%define srcname %{oname}-%{version}%{?beta:_%{beta}}
-%define distname %{oname}-%{version}%{?beta:_%{beta}}
+%define srcname %{oname}-%(echo %{version}|sed -e 's,~,_,g')
+%define distname %{oname}-%(echo %{version}|sed -e 's,~,_,g')
%define pkgver %{ver}
%define vboxlibdir %{_prefix}/lib/%{name}
@@ -22,6 +27,9 @@
# error: Missing # define COM __gnu_lto_v1
%define _disable_lto 1
+# (tpg) reduce the opt flags, especially for znver1
+%global optflags %{optflags} -Os -Wno-error
+
%bcond_with java
%bcond_with clang
%bcond_with docs
@@ -29,20 +37,29 @@
## (crazy) fixem that is always true these days
%bcond_without additions
%bcond_without vnc_ext_pack
+# FIXME firmware currently doesn't build because of gcc 15.x strictness
+# Re-enable building firmware from source when this is fixed.
%bcond_with firmware
+#define svn 173562
+
Summary: A general-purpose full virtualizer for x86 hardware
Name: virtualbox
# WARNING: WHEN UPDATING THIS PACKAGE, ALWAYS REBUILD THE
-# kernel-release AND kernel-rc PACKAGES TO MAKE SURE MODULES
+# kernel AND kernel-rc PACKAGES TO MAKE SURE MODULES
# AND USERSPACE ARE IN SYNC
-Version: 7.0.0
+Version: 7.2.8%{?beta:~%{beta}}%{?svn:~%{svn}}
Release: 1
License: GPLv2
Group: Emulators
-Url: http://www.virtualbox.org/
-Source0: http://download.virtualbox.org/virtualbox/%(echo %{version} |sed -e 's,[a-z]*,,g')/%{srcname}.tar.bz2
-Source1: http://download.virtualbox.org/virtualbox/%(echo %{version} |sed -e 's,[a-z]*,,g')/UserManual.pdf
+Url: https://www.virtualbox.org/
+%if 0%{?svn:1}
+Source0: https://github.com/VirtualBox/virtualbox/archive/refs/heads/VBox-%(echo %{version}|cut -d. -f1-2).tar.gz
+Source2: https://github.com/VirtualBox/kbuild/archive/refs/heads/main.tar.gz#/kbuild.tar.gz
+%else
+Source0: http://download.virtualbox.org/virtualbox/%(echo %{version} |sed -e 's,[a-z]*,,g;s,~.*,,')%{?beta:_%{beta}}/%{srcname}.tar.bz2
+%endif
+Source1: http://download.virtualbox.org/virtualbox/%(echo %{version} |sed -e 's,[a-z]*,,g;s,~.*,,')%{?beta:_%{beta}}/UserManual.pdf
Source3: virtualbox-tmpfiles.conf
Source4: 60-vboxadd.perms
Source5: vboxadd.service
@@ -54,7 +71,7 @@ Source21: os_openmandriva_64.png
%if %{with firmware}
# Can't use system openssl because we built OpenSSL for UEFI, not
# for Linux
-%define openssl 1.1.1k
+%define openssl 3.0.16
Source50: https://www.openssl.org/source/openssl-%{openssl}.tar.gz
%endif
Source100: virtualbox.rpmlintrc
@@ -67,15 +84,18 @@ Source100: virtualbox.rpmlintrc
Patch0: VirtualBox-6.1.2-revert-removal-of-vital-symbols.patch
# Update docs on kernel modules
Patch1: virtualbox-fix-modules-rebuild-command.patch
-Patch2: virtualbox-6.1.32-python3.11.patch
+# 800x600 is too small to see the entire OM installer...
+Patch2: vbox-1024x768-instead-of-800x600.patch
# Fix docs to give the right mount command for the in-tree version of vboxsf
Patch3: VirtualBox-4.1.8-futex.patch
Patch4: virtualbox-fix-vboxadd-req.patch
-#Patch5: vbox-6.1.4-gcc10.patch
+#Patch5: virtualbox-7.0.8-libstdc++13.patch
# We build the kernel modules in-tree -- adjust the Makefiles to support it
Patch6: vbox-6.0.0-kernel-modules-in-tree.patch
# (tmb) disable update notification (OpenSuSe)
#Patch7: VirtualBox-4.3.0-noupdate-check.patch
+# Workaround for doc build failure
+Patch7: vbox-7.1.6-workaround-doc-build-failure.patch
# https://git.archlinux.org/svntogit/community.git/plain/trunk/101-vboxsf-automount.patch?h=packages/virtualbox
Patch8: 101-vboxsf-automount.patch
@@ -85,6 +105,7 @@ Patch8: 101-vboxsf-automount.patch
Patch9: VirtualBox-5.0.0_BETA3-dont-check-for-mkisofs-or-makeself.patch
# Default to a reasonable size in guest additions
Patch10: VirtualBox-6.1.12a-default-to-1024x768.patch
+Patch11: virtualbox-fix-build-with-gcc-14.patch
#Patch11: vbox-6.1.10-compile.patch
#Patch12: vbox-6.1.24-python-syntax.patch
@@ -95,6 +116,7 @@ Patch24: VirtualBox-5.0.18-xserver_guest_xorg19.patch
#Patch25: fix-vboxadd-xclient.patch
#Patch26: vbox-6.1.6-firmware-build-python3.9.patch
# "Borrowed" from Debian https://salsa.debian.org/pkg-virtualbox-team/virtualbox/blob/master/debian/patches
+# https://sources.debian.org/patches/virtualbox/
#Patch103: 06-xsession.patch
Patch104: 07-vboxnetflt-reference.patch
Patch105: 12-make-module.patch
@@ -106,33 +128,41 @@ Patch111: 32-disable-guest-version-check.patch
Patch112: 35-libvdeplug-soname.patch
# Fixes patch 107
#Patch113: disable-update-manager-for-real.patch
+Patch114: VirtualBox-7.1.4-unload-kvm.patch
# (tpg) add support for OpenMandriva
# (crazy) this should be prepared for upstream..
#Patch200: VirtualBox-add-support-for-OpenMandriva.patch
# (tpg) do not crash on Wayland
Patch201: VirtualBox-5.2.16-use-xcb-on-wayland.patch
Patch202: vbox-6.0.6-find-java-modules.patch
+Patch203: virtualbox-7.1.10-c23.patch
+Patch204: vbox-7.2.2-curl-8.16.patch
# From FrugalWare
#Patch300: https://gitweb.frugalware.org/frugalware-current/raw/master/source/xapps-extra/virtualbox/fix-EFI-boot.patch
#Patch301: https://gitweb.frugalware.org/frugalware-current/raw/67d0618e5c19f8b44ebb6eab78c56048b412bdc3/source/xapps-extra/virtualbox/firmware-build-fixes.patch
ExclusiveArch: %{x86_64}
# (tpg) 2019-10-16 vbox is not ready for LLVM/clang
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: slibtool
+BuildRequires: make
BuildRequires: gcc-c++
-BuildRequires: systemd-macros
+BuildRequires: systemd-rpm-macros
BuildRequires: dev86
BuildRequires: gawk
BuildRequires: gsoap
BuildRequires: acpica
BuildRequires: yasm
-BuildRequires: nasm
BuildRequires: vde2
BuildRequires: glslang
BuildRequires: pkgconfig(xorg-server)
+BuildRequires: which
%if %{with firmware}
BuildRequires: nasm
%endif
%if %{with java}
BuildRequires: jdk-current
+BuildRequires: java-18-openjdk-module-java.logging
BuildRequires: javax.activation
BuildRequires: javax.xml.bind
%endif
@@ -152,18 +182,19 @@ BuildRequires: pkgconfig(libIDL-2.0)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libvncserver)
BuildRequires: pkgconfig(python)
-BuildRequires: qt5-qttools
-BuildRequires: qt5-linguist-tools
-BuildRequires: pkgconfig(Qt5Core)
-BuildRequires: pkgconfig(Qt5Gui)
-BuildRequires: pkgconfig(Qt5Widgets)
-BuildRequires: pkgconfig(Qt5X11Extras)
-BuildRequires: pkgconfig(Qt5PrintSupport)
-BuildRequires: pkgconfig(Qt5OpenGL)
-BuildRequires: pkgconfig(Qt5DBus)
-BuildRequires: pkgconfig(Qt5Xml)
-BuildRequires: pkgconfig(Qt5Help)
+BuildRequires: qt6-qttools
+BuildRequires: qt6-qttools-linguist-tools
+BuildRequires: pkgconfig(Qt6Core)
+BuildRequires: pkgconfig(Qt6Gui)
+BuildRequires: pkgconfig(Qt6Widgets)
+BuildRequires: pkgconfig(Qt6PrintSupport)
+BuildRequires: pkgconfig(Qt6StateMachine)
+BuildRequires: pkgconfig(Qt6OpenGL)
+BuildRequires: pkgconfig(Qt6DBus)
+BuildRequires: pkgconfig(Qt6Xml)
+BuildRequires: pkgconfig(Qt6Help)
BuildRequires: pkgconfig(sdl)
+BuildRequires: pkgconfig(sdl2)
BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xinerama)
@@ -182,6 +213,9 @@ BuildRequires: pkgconfig(libpng)
BuildRequires: flex
BuildRequires: bison
BuildRequires: libxml2-utils
+# For now -- current versions of pylint find lots of additional
+# errors that cause the build to abort
+BuildConflicts: pylint python-pylint
# FIXME not sure why, but vbox checks if there's a working
# 32-bit compiler. Probably for the BIOS?
# But it doesn't use -nostdlib or so, so we need to BR
@@ -198,6 +232,8 @@ Requires(post,preun,postun): rpm-helper
#Requires: kmod(vboxdrv) = %{version}
Conflicts: dkms-%{name} < 5.0.24-1
+BuildRequires: rpm-helper
+
# Force kernel-headers from the release package - kernel-rc headers cause
# /usr/include/linux/usbdevice_fs.h:134:41: error: flexible array member 'usbdevfs_urb::iso_frame_desc' not at end of 'struct USBPROXYURBLNX'
BuildRequires: kernel-headers
@@ -264,7 +300,12 @@ This package contains the user manual PDF file for %{name}.
%endif
%prep
-%autosetup -p1 -n %(echo %{distname} |sed -e 's,[a-z]*$,,')
+%autosetup -p1 -n %{?svn:virtualbox-VBox-%(echo %{version}|cut -d. -f1-2)}%{!?svn:%(echo %{distname} |sed -e 's,[a-z]*$,,')}
+%if 0%{?svn:1}
+tar xf %{S:2}
+rmdir kBuild
+mv kbuild-main kBuild
+%endif
%if %{with java}
. %{_sysconfdir}/profile.d/90java.sh
@@ -279,8 +320,7 @@ cp -a %{SOURCE20} %{SOURCE21} src/VBox/Frontends/VirtualBox/images/
# Remove prebuilt binary tools
find -name '*.py[co]' -delete
-rm -r src/VBox/Additions/WINNT
-rm -r src/VBox/Additions/os2
+rm -r src/VBox/Additions/{win,os2,darwin,solaris,freebsd,haiku}
# Remove bundle X11 sources and some lib sources, before patching.
rm -rf src/VBox/Additions/x11/x11include
rm -rf src/VBox/Additions/x11/x11stubs
@@ -312,11 +352,12 @@ SDK_VBOX_VPX_LIBS:=vpx
SDK_VBOX_LIBCURL_INCS:=%{_includedir}/curl
SDK_VBOX_LIBCURL_LIBS:=curl
VBOX_WITH_TESTCASES:=0
+VBOX_WITH_TESTSUITE:=0
# FIXME re-enable when fixed upstream
#VBOX_WITH_PCI_PASSTHROUGH:=1
VBOX_WITH_VALIDATIONKIT:=0
%if %{with java}
-VBOX_JAVA_HOME:=%{java_home}
+VBOX_JAVA_HOME:=${JAVA_HOME}
%else
VBOX_JAVA_HOME:=
%endif
@@ -337,8 +378,15 @@ VBOX_PRODUCT=VirtualBox
%if %{with firmware}
VBOX_EFI_FIRMWARE_EFI_MODULES_KMK_INCLUDED := 0
%endif
+VBOX_WITH_VBOX_IMG := 1
+VBOX_WITH_VBOXIMGMOUNT := 1
+VBOX_WITH_VBOXSDL := 1
+VBOX_GCC_WERR:=
EOF
+# vbox code is dirty as ****, but tries to force -Werror...
+sed -i -e 's,-Werror$,,;s,-Werror ,,g' Config.kmk src/VBox/VMM/Makefile.kmk src/VBox/Devices/EFI/Firmware/BaseTools/Conf/tools_def.template src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/Makefiles/header.makefile src/VBox/Installer/linux/Makefile-header.gmk src/VBox/Devices/EFI/Firmware/BaseTools/Conf/tools_def.template src/VBox/Devices/EFI/Firmware/BaseTools/Source/C/Makefiles/header.makefile src/VBox/Installer/linux/Makefile-footer.gmk
+
# (tpg) 2019-10-16 vbox is not ready for LLVM/clang
%if %{with clang}
sed -i -e 's#CC="gcc"#CC="clang"#g' configure
@@ -350,7 +398,7 @@ sed -i -e 's,-mpreferred-stack-boundary=2,,g' Config.kmk src/VBox/Devices/PC/ipx
#sed -i -e 's#-fpermissive##g' -e 's#-finline-limit=8000##g' Config.kmk
%build
-# FIXME: gold linker dies with internal error in segment_precedes, at ../../gold/layout.cc:3250
+# FIXME: lld: src/VBox/Devices/PC/ipxe/src/arch/x86/scripts/pcbios.lds:267: at least one side of the expression must be absolute
mkdir -p BFD
ln -sf /usr/bin/ld.bfd BFD/ld
export PATH=$PWD/BFD:$PATH
@@ -358,11 +406,11 @@ export LIBPATH_LIB="%{_lib}"
# remove fPIC to avoid causing issues
%if %{with clang}
-echo VBOX_GCC_OPT="$(echo %{optflags} $(pkg-config --cflags pixman-1) | sed -e 's/-fPIC//' -e 's/-Werror=format-security//') -rtlib=libgcc" >> LocalConfig.kmk
+echo VBOX_GCC_OPT="$(echo %{optflags} | sed -e 's/-fPIC//' -e 's/-Werror=format-security//') -isystem %{_libdir}/gcc/x86_64-openmandriva-linux-gnu/15.1.0/include -rtlib=libgcc" >> LocalConfig.kmk
%else
-echo VBOX_GCC_OPT="$(echo %{optflags} $(pkg-config --cflags pixman-1) | sed -e 's/-fPIC//' -e 's/-Werror=format-security//')" >> LocalConfig.kmk
+echo VBOX_GCC_OPT="$(echo %{optflags} | sed -e 's/-fPIC//' -e 's/-Werror=format-security//') -Wno-error" >> LocalConfig.kmk
%endif
-echo TOOL_GCC_LDFLAGS="%{ldflags} -fuse-ld=bfd" >> LocalConfig.kmk
+echo TOOL_GCC_LDFLAGS="%{build_ldflags} -fuse-ld=bfd" >> LocalConfig.kmk
# (crazy) /opt is the wrong location
#sed -i -e 's|opt/VirtualBox|usr/share/virtualbox|g' src/VBox/RDP/client-1.8.4/Makefile.kmk
@@ -376,7 +424,6 @@ echo TOOL_GCC_LDFLAGS="%{ldflags} -fuse-ld=bfd" >> LocalConfig.kmk
--disable-java \
%endif
--disable-kmods \
- --enable-qt5 \
%if %{without docs}
--disable-docs \
%endif
@@ -393,10 +440,9 @@ export PATH=$PWD/BFD:$PATH
rm src/VBox/Devices/EFI/FirmwareBin/*
cd src/VBox/Devices/EFI/Firmware
. ./edksetup.sh
- cd CryptoPkg/Library/OpensslLib/openssl
- tar x --strip-components=1 -f %{S:50}
- cd ..
- perl process_files.pl
+ cd CryptoPkg/Library/OpensslLib
+ tar xf %{S:50}
+ mv openssl-3* openssl
cd ../../..
kmk
cd "${TOP}"
@@ -526,8 +572,8 @@ install -m755 src/VBox/Additions/x11/Installer/98vboxadd-xclient %{buildroot}%{_
install -m644 src/VBox/Additions/x11/Installer/vboxclient.desktop %{buildroot}%{_sysconfdir}/xdg/autostart/vboxclient.desktop
cd out/%{vbox_platform}/release/bin/additions
- install -d %{buildroot}/sbin %{buildroot}%{_sbindir} %{buildroot}%{_unitdir}
- install -m755 mount.vboxsf %{buildroot}/sbin/mount.vboxsf
+ install -d %{buildroot}%{_sbindir} %{buildroot}%{_unitdir}
+ install -m755 mount.vboxsf %{buildroot}%{_sbindir}/
install -m755 VBoxService %{buildroot}%{_sbindir}
install -m755 VBoxClient %{buildroot}%{_bindir}
install -m755 VBoxControl %{buildroot}%{_bindir}
@@ -559,8 +605,7 @@ EOF
cd -
# install PAM module:
-install -D -m755 out/%{vbox_platform}/release/bin/additions/pam_vbox.so %{buildroot}/%{_lib}/security/pam_vbox.so
-
+install -D -m755 out/%{vbox_platform}/release/bin/additions/pam_vbox.so %{buildroot}%{_libdir}/security/pam_vbox.so
%endif
# install mime types
@@ -598,13 +643,13 @@ install -m644 -D %{SOURCE3} %{buildroot}%{_tmpfilesdir}/%{name}.conf
%if %{with additions}
# Replace the vboxsf mount wrapper with one that works for
# the in-tree version of the kernel module
-mkdir -p %{buildroot}/sbin
-cat >%{buildroot}/sbin/mount.vboxsf <<'EOF'
+mkdir -p %{buildroot}%{_sbindir}
+cat >%{buildroot}%{_sbindir}/mount.vboxsf <<'EOF'
#!/bin/bash
name=${1#$PWD/}; shift
exec /bin/mount -cit vboxsf "$name" "$@"
EOF
-chmod 0755 %{buildroot}/sbin/mount.vboxsf
+chmod 0755 %{buildroot}%{_sbindir}/mount.vboxsf
%endif
%post
@@ -651,20 +696,21 @@ done
%{vboxlibdir}/dtrace
%{vboxlibdir}/components
%{vboxlibdir}/*.so
+%{vboxlibdir}/.autoreg
+%{vboxlibdir}/VBoxEFI-*.fd
+%{vboxlibdir}/svn2git-vbox
+%{vboxlibdir}/iPxeBaseBin
%{vboxlibdir}/UnattendedTemplates
%{vboxlibdir}/VBoxAutostart
%{vboxlibdir}/VBoxBalloonCtrl
%{vboxlibdir}/VBoxBugReport
%{vboxlibdir}/VBoxCpuReport
%{vboxlibdir}/VBoxDTrace
-%{vboxlibdir}/VBoxEFI32.fd
-%{vboxlibdir}/VBoxEFI64.fd
%{vboxlibdir}/VBoxExtPackHelperApp
%{vboxlibdir}/VBoxManage
+%{vboxlibdir}/VBoxSDL
%{vboxlibdir}/VBoxSVC
-%{vboxlibdir}/VBoxTestOGL
%{vboxlibdir}/VBoxVMMPreload
-%{vboxlibdir}/VBoxXPCOMIPCD
%{vboxlibdir}/VirtualBox
%{vboxlibdir}/vboxshell.py
%{vboxlibdir}/vboximg-mount
@@ -706,8 +752,8 @@ done
%if %{with additions}
%files guest-additions
-/%{_lib}/security/pam_vbox.so
-/sbin/mount.vboxsf
+%{_libdir}/security/pam_vbox.so
+%{_sbindir}/mount.vboxsf
%{_presetdir}/86-virtualbox-guest-additions.preset
%{_unitdir}/vboxadd.service
%{_unitdir}/vboxdrmclient.service
@@ -721,7 +767,6 @@ done
%{_sysconfdir}/xdg/autostart/*
%{_sysconfdir}/modules-load.d/vbox-guest-additions.conf
-
%files guest-kernel-module-sources
%{_usr}/src/vbox*-%{version}-%{release}
%endif