commit bc33512b7846c7871477a8cd00ace8130a2a0063
Author: Sérgio M. Basto <sergio(a)serjux.com>
Date: Sat Sep 28 18:06:44 2024 +0100
Rollback to VirtualBox-7.0.20
We can't build VirtualBox-7.1 on el8 because el8 don't have qt6 on repos
009-properly-handle-i3wm.patch | 75 ------------
VirtualBox-6.0.10-remove-duplicated-define.patch | 29 +++++
...-6.1.14-fix-missing-includes-with-qt-5.15.patch | 22 ++++
VirtualBox-6.1.4-gcc10.patch | 21 ++++
VirtualBox-7.0.2-default-to-Fedora.patch | 47 ++++++++
VirtualBox-7.0.2-xclient-cleanups.patch | 30 +++--
VirtualBox-7.1.0-default-to-Fedora.patch | 30 -----
VirtualBox-gcc.patch | 13 +++
VirtualBox-python3.12.patch | 129 +++++++++++++++++++++
VirtualBox.spec | 123 ++++++++++++--------
sources | 4 +-
update_vbox.sh | 6 +-
vbox-python-selection.patch | 100 ++++++++++++++++
13 files changed, 458 insertions(+), 171 deletions(-)
---
diff --git a/VirtualBox-6.0.10-remove-duplicated-define.patch
b/VirtualBox-6.0.10-remove-duplicated-define.patch
new file mode 100644
index 0000000..6e2f0ba
--- /dev/null
+++ b/VirtualBox-6.0.10-remove-duplicated-define.patch
@@ -0,0 +1,29 @@
+
+Already defined in Mga8+:
+
+/home/iurt/rpmbuild/BUILD/VirtualBox-6.0.10/include/VBox/VBoxGL2D.h:116:19: error:
conflicting declaration 'typedef ptrdiff_t GLsizeiptr'
+ typedef ptrdiff_t GLsizeiptr;
+ ^~~~~~~~~~
+In file included from /usr/lib/qt5/include/QtGui/qopengl.h:146,
+ from /usr/lib/qt5/include/QtOpenGL/qgl.h:45,
+ from /usr/lib/qt5/include/QtOpenGL/QGLWidget:1,
+ from
/home/iurt/rpmbuild/BUILD/VirtualBox-6.0.10/src/VBox/Frontends/VirtualBox/src/VBoxGLSupportInfo.cpp:22:
+/usr/lib/qt5/include/QtGui/qopenglext.h:475:30: note: previous declaration as
'typedef long int GLsizeiptr'
+ typedef signed long int GLsizeiptr;
+
+diff -Nurp VirtualBox-6.0.10.orig/include/VBox/VBoxGL2D.h
VirtualBox-6.0.10/include/VBox/VBoxGL2D.h
+--- VirtualBox-6.0.10.orig/include/VBox/VBoxGL2D.h 2019-07-12 11:28:22.000000000 +0300
++++ VirtualBox-6.0.10/include/VBox/VBoxGL2D.h 2019-07-20 21:13:31.481755822 +0300
+@@ -110,12 +110,6 @@ typedef GLvoid (APIENTRY *PFNVBOXVHWA_UN
+ typedef GLvoid (APIENTRY *PFNVBOXVHWA_UNIFORM3I)(GLint location, GLint v0, GLint v1,
GLint v2);
+ typedef GLvoid (APIENTRY *PFNVBOXVHWA_UNIFORM4I)(GLint location, GLint v0, GLint v1,
GLint v2, GLint v3);
+
+-/* GL_ARB_pixel_buffer_object*/
+-#ifndef Q_WS_MAC
+-/* apears to be defined on mac */
+-typedef ptrdiff_t GLsizeiptr;
+-#endif
+-
+ #ifndef GL_READ_ONLY
+ # define GL_READ_ONLY 0x88B8
+ #endif
diff --git a/VirtualBox-6.1.14-fix-missing-includes-with-qt-5.15.patch
b/VirtualBox-6.1.14-fix-missing-includes-with-qt-5.15.patch
new file mode 100644
index 0000000..f1dc737
--- /dev/null
+++ b/VirtualBox-6.1.14-fix-missing-includes-with-qt-5.15.patch
@@ -0,0 +1,22 @@
+diff -up VirtualBox-6.1.14/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp.qt515
VirtualBox-6.1.14/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp
+---
VirtualBox-6.1.14/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp.qt515 2020-09-04
09:38:30.000000000 +0200
++++ VirtualBox-6.1.14/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.cpp 2020-09-05
19:41:54.423116616 +0200
+@@ -18,6 +18,7 @@
+ /* Qt includes: */
+ #include <QApplication>
+ #include <QLabel>
++#include <QPainterPath>
+ #include <QPaintEvent>
+ #include <QStyle>
+ #include <QVBoxLayout>
+diff -up VirtualBox-6.1.14/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h.qt515
VirtualBox-6.1.14/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h
+---
VirtualBox-6.1.14/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h.qt515 2020-09-04
09:38:30.000000000 +0200
++++ VirtualBox-6.1.14/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupBox.h 2020-09-05
19:41:54.423116616 +0200
+@@ -37,7 +37,6 @@ class QIcon;
+ class QLabel;
+ class QMouseEvent;
+ class QObject;
+-class QPainterPath;
+ class QPaintEvent;
+ class QResizeEvent;
+ class QString;
diff --git a/VirtualBox-6.1.4-gcc10.patch b/VirtualBox-6.1.4-gcc10.patch
new file mode 100644
index 0000000..a5812b2
--- /dev/null
+++ b/VirtualBox-6.1.4-gcc10.patch
@@ -0,0 +1,21 @@
+Patch 2: Fix
+
+/builddir/build/BUILD/VirtualBox-6.1.4/src/VBox/Debugger/DBGCDumpImage.cpp: In function
'const char* dbgcMachoCpuType(uint32_t, uint32_t)':
+/builddir/build/BUILD/VirtualBox-6.1.4/include/iprt/formats/mach-o.h:41:46: error:
narrowing conversion of '-1' from 'int' to 'unsigned int'
[-Wnarrowing]
+ 41 | #define CPU_TYPE_ANY INT32_C(-1)
+ | ^
+/builddir/build/BUILD/VirtualBox-6.1.4/src/VBox/Debugger/DBGCDumpImage.cpp:471:14: note:
in expansion of macro 'CPU_TYPE_ANY'
+ 471 | case CPU_TYPE_ANY: return "CPU_TYPE_ANY";
+ | ^~~~~~~~~~~~
+
+--- VirtualBox-6.1.6/src/VBox/Debugger/DBGCDumpImage.cpp.orig 2020-04-09
20:37:26.000000000 +0300
++++ VirtualBox-6.1.6/src/VBox/Debugger/DBGCDumpImage.cpp 2020-05-08 01:32:01.400447560
+0300
+@@ -468,7 +468,7 @@ static const char *dbgcMachoCpuType(uint
+ {
+ switch (iType)
+ {
+- case CPU_TYPE_ANY: return "CPU_TYPE_ANY";
++ default: return "CPU_TYPE_ANY";
+ case CPU_TYPE_VAX: return "VAX";
+ case CPU_TYPE_MC680x0: return "MC680x0";
+ case CPU_TYPE_X86: return "X86";
diff --git a/VirtualBox-7.0.2-default-to-Fedora.patch
b/VirtualBox-7.0.2-default-to-Fedora.patch
new file mode 100644
index 0000000..8159e4d
--- /dev/null
+++ b/VirtualBox-7.0.2-default-to-Fedora.patch
@@ -0,0 +1,47 @@
+Default to Linux and Fedora.
+
+Signed-off-by: Thomas Backlund <tmb(a)Fedora.org>
+
+---
+ src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.cpp | 14
+++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff -Nurp
VirtualBox-7.0.2.orig/src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.cpp
VirtualBox-7.0.2/src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.cpp
+---
VirtualBox-7.0.2.orig/src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.cpp 2022-10-19
21:28:39.000000000 +0300
++++
VirtualBox-7.0.2/src/VBox/Frontends/VirtualBox/src/settings/editors/UINameAndSystemEditor.cpp 2022-10-22
13:32:01.577033153 +0300
+@@ -397,15 +397,15 @@ void UINameAndSystemEditor::sltFamilyCha
+ if (iIndexWin10 != -1)
+ m_pComboType->setCurrentIndex(iIndexWin10);
+ }
+- /* Or select Oracle Linux item for Linux family as default: */
++ /* Or select Fedora Linux item for Linux family as default: */
+ else if (m_strFamilyId == "Linux")
+ {
+- QString strDefaultID = "Oracle";
++ QString strDefaultID = "Fedora";
+ if (ARCH_BITS == 64)
+ strDefaultID += "_64";
+- const int iIndexUbuntu = m_pComboType->findData(strDefaultID, TypeID);
+- if (iIndexUbuntu != -1)
+- m_pComboType->setCurrentIndex(iIndexUbuntu);
++ const int iIndexFedora = m_pComboType->findData(strDefaultID, TypeID);
++ if (iIndexFedora != -1)
++ m_pComboType->setCurrentIndex(iIndexFedora);
+ }
+ /* Else simply select the first one present: */
+ else
+@@ -665,6 +665,10 @@ void UINameAndSystemEditor::prepareFamil
+
+ /* Choose the 1st item to be the current: */
+ m_pComboFamily->setCurrentIndex(0);
++ /* Default to Linux */
++ const int liIndex = m_pComboFamily->findData("Linux", TypeID);
++ if (liIndex != -1)
++ m_pComboFamily->setCurrentIndex(liIndex);
+ /* And update the linked widgets accordingly: */
+ sltFamilyChanged(m_pComboFamily->currentIndex());
+ }
+
+Default to Linux and Fedora.
+
+
diff --git a/VirtualBox-7.0.2-xclient-cleanups.patch
b/VirtualBox-7.0.2-xclient-cleanups.patch
index a292b61..84635ef 100644
--- a/VirtualBox-7.0.2-xclient-cleanups.patch
+++ b/VirtualBox-7.0.2-xclient-cleanups.patch
@@ -1,6 +1,15 @@
---- ./src/VBox/Additions/x11/Installer/98vboxadd-xclient.orig 2024-09-11
22:57:09.623398840 +0100
-+++ ./src/VBox/Additions/x11/Installer/98vboxadd-xclient 2024-09-11 22:58:14.239296616
+0100
-@@ -31,16 +31,9 @@ for i in $HOME/.vboxclient-*.pid; do
+# Do not show an error dialog when not running under vbox
+# Do not start VBoxClient --vmsvga, we run VBoxClient --vmsvga as
+# a systemd service, this works with both Wayland and Xorg based sessions
+
+---
+ src/VBox/Additions/x11/Installer/98vboxadd-xclient | 13 +++----------
+ 1 file changed, 3 insertions(+), 10 deletions(-)
+
+diff -Nurp VirtualBox-7.0.2.orig/src/VBox/Additions/x11/Installer/98vboxadd-xclient
VirtualBox-7.0.2/src/VBox/Additions/x11/Installer/98vboxadd-xclient
+--- VirtualBox-7.0.2.orig/src/VBox/Additions/x11/Installer/98vboxadd-xclient 2022-10-19
21:20:45.000000000 +0300
++++ VirtualBox-7.0.2/src/VBox/Additions/x11/Installer/98vboxadd-xclient 2022-10-22
12:05:28.770187860 +0300
+@@ -31,18 +31,11 @@ for i in $HOME/.vboxclient-*.pid; do
test -w $i || rm -f $i
done
@@ -13,16 +22,13 @@
- # This script can also be triggered by a connection over SSH, which is not
- # what we had in mind, so we do not start VBoxClient in that case. We do
- # not use "exit" here as this script is "source"d, not executed.
--
+# Do not start if the kernel module is not present; or if this script is
+# triggered by a connection over SSH.
+if [ -c /dev/vboxguest -a -z "${SSH_CONNECTION}" ]; then
- # Check wheather X11 or Wayland version of VBoxClient should be started.
- vbox_wl_check=$(/usr/bin/vboxwl --check 2> /dev/null)
- if test "$vbox_wl_check" = "WL"; then
-@@ -52,5 +45,4 @@ elif test -z "${SSH_CONNECTION}"; then
- fi
-
- /usr/bin/VBoxClient --checkhostversion
-- /usr/bin/VBoxClient --vmsvga-session # In case VMSVGA emulation is enabled
+ /usr/bin/VBoxClient --clipboard
+ /usr/bin/VBoxClient --checkhostversion
+ /usr/bin/VBoxClient --seamless
+ /usr/bin/VBoxClient --draganddrop
+- /usr/bin/VBoxClient --vmsvga-session # In case VMSVGA emulation is enabled
fi
+
diff --git a/VirtualBox-gcc.patch b/VirtualBox-gcc.patch
new file mode 100644
index 0000000..fe837b2
--- /dev/null
+++ b/VirtualBox-gcc.patch
@@ -0,0 +1,13 @@
+--- ./configure.orig 2018-01-15 14:49:37.000000000 +0000
++++ ./configure 2018-02-03 07:14:08.669272715 +0000
+@@ -440,8 +440,8 @@ check_gcc()
+ elif [ $cc_maj -lt 4 \
+ -o \( $cc_maj -eq 4 -a $cc_min -lt 4 -a "$OS" !=
"darwin" \) \
+ -o \( $cc_maj -eq 4 -a $cc_min -lt 2 -a "$OS" =
"darwin" \) \
+- -o $cc_maj -gt 7 ]; then
+- log_failure "gcc version $cc_maj.$cc_min found, expected gcc
4.x...7.x"
++ -o $cc_maj -gt 8 ]; then
++ log_failure "gcc version $cc_maj.$cc_min found, expected gcc
4.x...8.x"
+ fail really
+ else
+ log_success "found version $cc_ver"
diff --git a/VirtualBox-python3.12.patch b/VirtualBox-python3.12.patch
new file mode 100644
index 0000000..71c5fcf
--- /dev/null
+++ b/VirtualBox-python3.12.patch
@@ -0,0 +1,129 @@
+--- ./src/libs/xpcom18a4/python/Makefile.kmk.python3.11 2023-04-17 16:58:21.000000000
+0100
++++ ./src/libs/xpcom18a4/python/Makefile.kmk 2023-04-18 20:34:47.463630061 +0100
+@@ -30,7 +30,7 @@ include $(KBUILD_PATH)/subheader.kmk
+
+ #
+ # List of supported Python versions, defining a number of
+-#
VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|DEF]_[INC|LIB]
variables
++#
VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|39|39M|310|310M|311|311M|312|312M|DEF]_[INC|LIB]
variables
+ # which get picked up below.
+ #
+ ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script.
+@@ -665,6 +665,98 @@ ifndef VBOX_ONLY_SDK
+ endif
+ endif
+
++ ifdef VBOX_PYTHON311_INC
++ #
++ # Python 3.11 version
++ #
++ DLLS += VBoxPython3_11
++ VBoxPython3_11_EXTENDS = VBoxPythonBase
++ VBoxPython3_11_EXTENDS_BY = appending
++ VBoxPython3_11_TEMPLATE = XPCOM
++ VBoxPython3_11_INCS = $(VBOX_PYTHON311_INC)
++ VBoxPython3_11_LIBS = $(VBOX_PYTHON311_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++ ifdef VBOX_PYTHON311_LIB_X86
++ DLLS += VBoxPython3_11_x86
++ VBoxPython3_11_x86_EXTENDS = VBoxPythonBase_x86
++ VBoxPython3_11_x86_EXTENDS_BY = appending
++ VBoxPython3_11_x86_TEMPLATE = XPCOM
++ VBoxPython3_11_x86_INCS = $(VBOX_PYTHON311_INC)
++ VBoxPython3_11_x86_LIBS = $(VBOX_PYTHON311_LIB_X86)
++ endif
++ endif
++ endif
++
++ ifdef VBOX_PYTHON311M_INC
++ #
++ # Python 3.11 version with pymalloc
++ #
++ DLLS += VBoxPython3_11m
++ VBoxPython3_11m_EXTENDS = VBoxPythonBase_m
++ VBoxPython3_11m_EXTENDS_BY = appending
++ VBoxPython3_11m_TEMPLATE = XPCOM
++ VBoxPython3_11m_INCS = $(VBOX_PYTHON311M_INC)
++ VBoxPython3_11m_LIBS = $(VBOX_PYTHON311M_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++ ifdef VBOX_PYTHON311M_LIB_X86
++ DLLS += VBoxPython3_11m_x86
++ VBoxPython3_11m_x86_EXTENDS = VBoxPythonBase_x86_m
++ VBoxPython3_11m_x86_EXTENDS_BY = appending
++ VBoxPython3_11m_x86_TEMPLATE_ = XPCOM
++ VBoxPython3_11m_x86_INCS = $(VBOX_PYTHON311M_INC)
++ VBoxPython3_11m_x86_LIBS = $(VBOX_PYTHON311M_LIB_X86)
++ endif
++ endif
++ endif
++
++ ifdef VBOX_PYTHON312_INC
++ #
++ # Python 3.12 version
++ #
++ DLLS += VBoxPython3_12
++ VBoxPython3_12_EXTENDS = VBoxPythonBase
++ VBoxPython3_12_EXTENDS_BY = appending
++ VBoxPython3_12_TEMPLATE = XPCOM
++ VBoxPython3_12_INCS = $(VBOX_PYTHON312_INC)
++ VBoxPython3_12_LIBS = $(VBOX_PYTHON312_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++ ifdef VBOX_PYTHON312_LIB_X86
++ DLLS += VBoxPython3_12_x86
++ VBoxPython3_12_x86_EXTENDS = VBoxPythonBase_x86
++ VBoxPython3_12_x86_EXTENDS_BY = appending
++ VBoxPython3_12_x86_TEMPLATE = XPCOM
++ VBoxPython3_12_x86_INCS = $(VBOX_PYTHON312_INC)
++ VBoxPython3_12_x86_LIBS = $(VBOX_PYTHON312_LIB_X86)
++ endif
++ endif
++ endif
++
++ ifdef VBOX_PYTHON312M_INC
++ #
++ # Python 3.12 version with pymalloc
++ #
++ DLLS += VBoxPython3_12m
++ VBoxPython3_12m_EXTENDS = VBoxPythonBase_m
++ VBoxPython3_12m_EXTENDS_BY = appending
++ VBoxPython3_12m_TEMPLATE = XPCOM
++ VBoxPython3_12m_INCS = $(VBOX_PYTHON312M_INC)
++ VBoxPython3_12m_LIBS = $(VBOX_PYTHON312M_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++ ifdef VBOX_PYTHON312M_LIB_X86
++ DLLS += VBoxPython3_12m_x86
++ VBoxPython3_12m_x86_EXTENDS = VBoxPythonBase_x86_m
++ VBoxPython3_12m_x86_EXTENDS_BY = appending
++ VBoxPython3_12m_x86_TEMPLATE_ = XPCOM
++ VBoxPython3_12m_x86_INCS = $(VBOX_PYTHON312M_INC)
++ VBoxPython3_12m_x86_LIBS = $(VBOX_PYTHON312M_LIB_X86)
++ endif
++ endif
++ endif
++
+ ifdef VBOX_PYTHONDEF_INC
+ #
+ # Python without versioning
+--- ./src/libs/xpcom18a4/python/src/module/_xpcom.cpp.orig 2022-10-30 04:19:33.834495672
+0000
++++ ./src/libs/xpcom18a4/python/src/module/_xpcom.cpp 2022-10-30 04:24:11.895463023
+0000
+@@ -84,7 +84,15 @@ extern PYXPCOM_EXPORT void PyXPCOM_Inter
+ # define MANGLE_MODULE_INIT(a_Name) RT_CONCAT(a_Name, MODULE_NAME_SUFFIX)
+ # endif
+ # if defined(VBOX_PYXPCOM_VERSIONED) && !defined(VBOX_PYXPCOM_MAJOR_VERSIONED)
+-# if PY_VERSION_HEX >= 0x030a0000 && PY_VERSION_HEX < 0x030b0000
++# if PY_VERSION_HEX >= 0x030c0000 && PY_VERSION_HEX < 0x030d0000
++# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython3_12")
++# define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_12)
++
++# elif PY_VERSION_HEX >= 0x030b0000 && PY_VERSION_HEX < 0x030c0000
++# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython3_11")
++# define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_11)
++
++# elif PY_VERSION_HEX >= 0x030a0000 && PY_VERSION_HEX < 0x030b0000
+ # define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython3_10")
+ # define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_10)
+
diff --git a/VirtualBox.spec b/VirtualBox.spec
index 02848c3..b4959f8 100644
--- a/VirtualBox.spec
+++ b/VirtualBox.spec
@@ -22,6 +22,7 @@
# Now we use upstream pdf
%bcond_with docs
%bcond_without vnc
+%bcond_with legacy_vboxvideo_drv
%if 0%{?fedora} > 27 || 0%{?rhel} >= 9
%bcond_with guest_additions
@@ -41,20 +42,15 @@
%bcond_with dxvk_native
%endif
-%if 0%{?fedora} > 40
-# Python is not detected, yet
-%bcond_with python3
-%else
%bcond_without python3
-%endif
Name: VirtualBox
-Version: 7.1.0
-Release: 2%{?dist}
+Version: 7.0.20
+Release: 1%{?dist}
Summary: A general-purpose full virtualizer for PC hardware
-License: GPL-3.0-only AND (GPL-3.0-only OR CDDL-1.0)
-URL:
https://www.virtualbox.org/wiki/VirtualBox
+License: GPLv2 or (GPLv2 and CDDL)
+URL:
http://www.virtualbox.org/wiki/VirtualBox
ExclusiveArch: x86_64
@@ -82,18 +78,22 @@ Source27: os_mageia_64_x4.png
Patch1: VirtualBox-7.0.2-noupdate.patch
Patch2: VirtualBox-6.1.0-strings.patch
-Patch3: VirtualBox-7.1.0-default-to-Fedora.patch
+Patch3: VirtualBox-7.0.2-default-to-Fedora.patch
Patch4: VirtualBox-5.1.0-lib64-VBox.sh.patch
+#Patch27: VirtualBox-gcc.patch
# from Mageia
Patch50: VirtualBox-7.0.2-update-Mageia-support.patch
+Patch52: VirtualBox-6.1.14-fix-missing-includes-with-qt-5.15.patch
+Patch53: VirtualBox-6.0.10-remove-duplicated-define.patch
Patch54: VirtualBox-7.0.2-ExtPacks-VBoxDTrace-no-publisher-in-version.patch
# from Fedora
Patch60: VirtualBox-7.0.2-xclient-cleanups.patch
# from OpenSuse
-# from Arch
-Patch70: 009-properly-handle-i3wm.patch
+#Patch70: vbox-python-selection.patch
+Patch80: VirtualBox-6.1.4-gcc10.patch
+Patch90: VirtualBox-python3.12.patch
BuildRequires: gcc-c++
BuildRequires: kBuild >= 0.1.9998.r3093
@@ -114,9 +114,14 @@ BuildRequires: python%{python3_pkgversion}-setuptools
%endif
BuildRequires: desktop-file-utils
BuildRequires: libcap-devel
-BuildRequires: pkgconfig(Qt6Core)
-BuildRequires: pkgconfig(Qt6Help)
-BuildRequires: pkgconfig(Qt6Scxml)
+BuildRequires: pkgconfig(Qt5Core)
+BuildRequires: pkgconfig(Qt5Gui)
+BuildRequires: pkgconfig(Qt5Help)
+BuildRequires: pkgconfig(Qt5OpenGL)
+BuildRequires: pkgconfig(Qt5PrintSupport)
+BuildRequires: pkgconfig(Qt5Widgets)
+BuildRequires: pkgconfig(Qt5X11Extras)
+BuildRequires: pkgconfig(Qt5Xml)
%if %{with webservice}
BuildRequires: gsoap-devel
@@ -160,6 +165,10 @@ BuildRequires: libstdc++-static
# For the X11 module
BuildRequires: libdrm-devel
+%if %{with legacy_vboxvideo_drv}
+BuildRequires: libpciaccess-devel
+BuildRequires: pixman-devel
+%endif
BuildRequires: xorg-x11-proto-devel
BuildRequires: libXcomposite-devel
BuildRequires: libXcursor-devel
@@ -177,8 +186,8 @@ BuildRequires: libvncserver-devel
%if %{with system_libtpms}
BuildRequires: pkgconfig(libtpms)
%endif
-#BuildRequires: pkgconfig(ogg)
-#BuildRequires: pkgconfig(vorbis)
+BuildRequires: pkgconfig(ogg)
+BuildRequires: pkgconfig(vorbis)
%if %{with dxvk_native}
BuildRequires: glslang
#BuildRequires: dxvk-native-devel
@@ -202,7 +211,7 @@ OS/2, and OpenBSD.
%package server
-Summary: Core part (host server) for %{name}
+Summary: core part (host server) for %{name}
Group: Development/Tools
Requires: %{name}-kmod = %{version}
Requires: hicolor-icon-theme
@@ -292,7 +301,11 @@ find -name '*.py[co]' -delete
rm -r src/VBox/Additions/WINNT
rm -r src/VBox/Additions/os2
rm -r kBuild/
+#mv tools/kBuildUnits .
rm -r tools/
+#mkdir tools
+#mv kBuildUnits tools/
+
# Remove bundle X11 sources and some lib sources, before patching.
rm -r src/VBox/Additions/x11/x11include/
rm -r src/VBox/Additions/3D/mesa/mesa-21.3.8/
@@ -300,9 +313,6 @@ rm -r src/VBox/Additions/3D/mesa/mesa-21.3.8/
#rm include/VBox/HostServices/wglext.h
# src/VBox/GuestHost/OpenGL/include/GL/glext.h have VBOX definitions
#rm -r src/VBox/GuestHost/OpenGL/include/GL
-rm -r src/VBox/Runtime/r3/darwin
-rm -r src/VBox/Runtime/r0drv/darwin
-rm -r src/VBox/Runtime/darwin
rm -r src/libs/liblzf-3.*/
rm -r src/libs/libpng-1.6.*/
@@ -324,12 +334,15 @@ rm -r src/libs/libtpms-0.9.*/
%patch -P 2 -p1 -b .strings
%patch -P 3 -p1 -b .default_os_fedora
%patch -P 4 -p1 -b .lib64-VBox.sh
-
-#patch -P 50 -p1 -b .mageia-support
+#patch -P 27 -p1 -b .gcc
+%patch -P 50 -p1 -b .mageia-support
+%patch -P 52 -p1 -b .qt
+%patch -P 53 -p1 -b .qt2
%patch -P 54 -p1 -b .dtrace
%patch -P 60 -p1 -b .xclient
-
-%patch -P 70 -p1 -b .i3wm
+#patch -P 70 -p1 -b .python-detection
+%patch -P 80 -p1 -b .gcc10
+%patch -P 90 -p1 -b .python3.12
%build
@@ -346,6 +359,7 @@ rm -r src/libs/libtpms-0.9.*/
%if !%{with python3}
--disable-python \
%endif
+ --enable-libogg --enable-libvorbis
%if !%{with docs}
cp %{SOURCE1} UserManual.pdf
@@ -370,24 +384,24 @@ umask 0022
# really been installed to. Therefore we do not override any of
# the installation paths, but install the tree with the default
# layout under 'obj' and shuffle files around in %%install.
-kmk %{_smp_mflags} \
- KBUILD_VERBOSE=2 \
- PATH_OUT="$PWD/obj" \
- TOOL_YASM_AS=yasm \
+kmk %{_smp_mflags} \
+ KBUILD_VERBOSE=2 \
+ PATH_OUT="$PWD/obj" \
+ TOOL_YASM_AS=yasm \
VBOX_PATH_APP_PRIVATE=%{_libdir}/virtualbox \
VBOX_PATH_APP_DOCS=%{_docdir}/VirtualBox \
VBOX_WITH_VBOX_IMG=1 \
VBOX_WITH_VBOXIMGMOUNT=1 \
VBOX_WITH_SYSFS_BY_DEFAULT=1 \
- VBOX_USE_SYSTEM_XORG_HEADERS=1 \
+ VBOX_USE_SYSTEM_XORG_HEADERS=1 \
VBOX_USE_SYSTEM_GL_HEADERS=1 \
- VBOX_NO_LEGACY_XORG_X11=1 \
+%{!?legacy_vboxvideo_drv: VBOX_NO_LEGACY_XORG_X11=1 } \
SDK_VBoxLibPng_INCS=/usr/include/libpng16 \
SDK_VBoxLibXml2_INCS=/usr/include/libxml2 \
SDK_VBoxLzf_LIBS="lzf" \
SDK_VBoxLzf_INCS="/usr/include/liblzf" \
- SDK_VBoxOpenSslStatic_INCS="/usr/include/openssl"
\
- SDK_VBoxOpenSslStatic_LIBS="ssl crypto" \
+ SDK_VBOX_OPENSSL_INCS="" \
+ SDK_VBOX_OPENSSL_LIBS="ssl crypto" \
SDK_VBoxZlib_INCS="" \
%{?with_system_libtpms: SDK_VBOX_LIBTPMS_INCS="/usr/include/libtpms"} \
SDK_VBoxLibVorbis_INCS="/usr/include/vorbis" \
@@ -484,7 +498,9 @@ install -p -m 0755 -t %{buildroot}%{_libdir}/virtualbox \
obj/bin/VBoxExtPackHelperApp \
obj/bin/VBoxManage \
obj/bin/VBoxSVC \
+ obj/bin/VBoxTestOGL \
obj/bin/VBoxVMMPreload \
+ obj/bin/VBoxXPCOMIPCD \
obj/bin/VBoxSysInfo.sh \
obj/bin/vboxweb-service.sh \
%if %{with python3}
@@ -500,8 +516,6 @@ install -p -m 0755 -t %{buildroot}%{_libdir}/virtualbox \
obj/bin/webtest \
%endif
-# obj/bin/VBoxSDL \
-
# Wrapper with Launchers
ln -s VBox %{buildroot}%{_bindir}/VirtualBox
ln -s VBox %{buildroot}%{_bindir}/virtualbox
@@ -540,10 +554,12 @@ install -p -m 0755 -t %{buildroot}%{_libdir}/virtualbox/nls \
# Python
%if %{with python3}
-pushd obj/bin/sdk/installer/python
+pushd obj/bin/sdk/installer
export VBOX_INSTALL_PATH=%{_libdir}/virtualbox
%{__python3} vboxapisetup.py install --prefix %{_prefix} --root %{buildroot}
-%py3_shebang_fix -pni "%{__python3} %{py3_shbang_opts}"
%{buildroot}${VBOX_INSTALL_PATH}/vboxshell.py
+if [ -x /usr/bin/pathfix.py ]; then
+ pathfix.py -pni "%{__python3} %{py3_shbang_opts}"
%{buildroot}${VBOX_INSTALL_PATH}/vboxshell.py
+fi
popd
%endif
@@ -569,6 +585,22 @@ install -p -m 0644 obj/bin/virtualbox.xml
%{buildroot}%{_datadir}/mime/packages
# Guest X.Org drivers
mkdir -p %{buildroot}%{_libdir}/security
+# Michael Thayer from Oracle wrote: I have applied the patch [1] I posted so that you
+# can build with VBOX_USE_SYSTEM_XORG_HEADERS=1 set in future to only
+# build the X.Org drivers against the installed system headers.
+# also wrote:
+# As vboxmouse_drv is not needed at all for X.Org Server 1.7 and later do not
+# build it in this case.
+# and
+# Build using local X.Org headers. We assume X.Org Server 1.7 or later.
+#
+# [1]
https://www.virtualbox.org/changeset/43588/vbox
+
+%if %{with legacy_vboxvideo_drv}
+install -m 0755 -D obj/bin/additions/vboxvideo_drv_system.so \
+ %{buildroot}%{_libdir}/xorg/modules/drivers/vboxvideo_drv.so
+%endif
+
# Guest-additions tools
install -m 0755 -t %{buildroot}%{_sbindir} \
obj/bin/additions/VBoxService \
@@ -771,6 +803,7 @@ getent passwd vboxadd >/dev/null || \
%{_libdir}/virtualbox/VBoxExtPackHelperApp
%{_libdir}/virtualbox/VBoxManage
%{_libdir}/virtualbox/VBoxSVC
+%{_libdir}/virtualbox/VBoxXPCOMIPCD
%{_libdir}/virtualbox/VBoxBalloonCtrl
%{_libdir}/virtualbox/SUPInstall
%{_libdir}/virtualbox/SUPLoggerCtl
@@ -798,6 +831,7 @@ getent passwd vboxadd >/dev/null || \
%files
%{_bindir}/VirtualBox
%{_bindir}/virtualbox
+%{_libdir}/virtualbox/VBoxTestOGL
%{_libdir}/virtualbox/VBoxDbg.so
%{_libdir}/virtualbox/UICommon.so
%{_libdir}/virtualbox/VirtualBox
@@ -839,6 +873,9 @@ getent passwd vboxadd >/dev/null || \
%{_sbindir}/VBoxService
%{_sbindir}/mount.vboxsf
%{_libdir}/security/pam_vbox.so
+%if %{with legacy_vboxvideo_drv}
+%{_libdir}/xorg/modules/drivers/*
+%endif
%{_sysconfdir}/X11/xinit/xinitrc.d/98vboxadd-xclient.sh
%{_sysconfdir}/xdg/autostart/vboxclient.desktop
%{_unitdir}/vboxclient.service
@@ -851,18 +888,6 @@ getent passwd vboxadd >/dev/null || \
%{_datadir}/%{name}-kmod-%{version}
%changelog
-* Tue Sep 17 2024 Sérgio Basto <sergio(a)serjux.com> - 7.1.0-2
-- Also drop VirtualBox-python3.12.patch
-- Drop support to enable the build of old vboxvideo (guest drive)
- is disabled with VBOX_NO_LEGACY_XORG_X11=1 , no need to patch the code !
-
https://www.virtualbox.org/changeset/64270/vbox
-
-* Mon Sep 16 2024 Sérgio Basto <sergio(a)serjux.com> - 7.1.0-1
-- Update VirtualBox to 7.1.0
-
-* Thu Aug 01 2024 RPM Fusion Release Engineering <sergiomb(a)rpmfusion.org> -
7.0.20-2
-- Rebuilt for
https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
-
* Tue Jul 16 2024 Sérgio Basto <sergio(a)serjux.com> - 7.0.20-1
- Update VirtualBox to 7.0.20
diff --git a/sources b/sources
index fe75877..d0a5f02 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (VirtualBox-7.1.0.tar.bz2) =
d0fc27195b859fb537d57229d60a8895ced24b04c0f703c5862982de01d4787d20a3acb9cee4af29d18c56cd8c7ad846fd0eacc14af0c419e738953ca488463b
-SHA512 (UserManual.pdf) =
2e80f786e103fff7b3de97e891f3a67e18a4930d620ac813891fef08aa38450de3e13aa75b4ffc64d7137882bfb6991081ba77275048c3487aaf261466955b10
+SHA512 (VirtualBox-7.0.20.tar.bz2) =
7682e24d60c1896c661f2689af6820ae67b6bd8d9faaf18c58e8159bc7694ef80722f8e9611d6272da5b46eb2f3a44fc637b277e6801b7a8bf53aad045a81fe9
+SHA512 (UserManual.pdf) =
523333b108fe58de1e5ac7758af5d556326ba72ea2a1c18cceebaf4ae24489500d9107b8483a4de5040066d03e58e86bc397ca3ad0c86e63156f0e03723bb490
diff --git a/update_vbox.sh b/update_vbox.sh
index 1c77115..333ef53 100755
--- a/update_vbox.sh
+++ b/update_vbox.sh
@@ -1,7 +1,7 @@
-VERSION=7.1.0
+VERSION=7.0.20
REL=1
-RAWHIDE=42
-REPOS="f41 f40 f39 el9 el8"
+RAWHIDE=41
+REPOS="f40 f39 el9 el8"
if [ -z "$1" ]
then
stage=0
diff --git a/vbox-python-selection.patch b/vbox-python-selection.patch
new file mode 100644
index 0000000..5b238b6
--- /dev/null
+++ b/vbox-python-selection.patch
@@ -0,0 +1,100 @@
+--- VirtualBox-7.0.6.orig/src/bldprogs/scm.cpp
++++ VirtualBox-7.0.6/src/bldprogs/scm.cpp
+@@ -2335,7 +2335,7 @@ static int scmProcessFileInner(PSCMRWSTA
+ pszTreatAs = "shell";
+ else if ( (cchFirst >= 15 && strncmp(pchFirst,
"/usr/bin/python", 15) == 0)
+ || (cchFirst >= 19 && strncmp(pchFirst,
"/usr/bin/env python", 19) == 0) )
+- pszTreatAs = "python";
++ pszTreatAs = "python3";
+ else if ( (cchFirst >= 13 && strncmp(pchFirst,
"/usr/bin/perl", 13) == 0)
+ || (cchFirst >= 17 && strncmp(pchFirst,
"/usr/bin/env perl", 17) == 0) )
+ pszTreatAs = "perl";
+--- VirtualBox-7.0.6.orig/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
++++ VirtualBox-7.0.6/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
+@@ -32,6 +32,9 @@
+ %define VBOXDOCDIR %{_defaultdocdir}/%NAME%
+ %global __requires_exclude_from
^/usr/lib/virtualbox/VBoxPython.*$|^/usr/lib/python.*$|^.*\\.py$
+ %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from
distutils.sysconfig import get_python_lib; print(get_python_lib())")}
++# SUSE defines these in python-rpm-macros, not necessarily available here
++%{!?__python3:%{_bindir}/python3}}
++%{!?python3_sitelib: %define python_sitelib python3 -c "import sysconfig as s;
print(s.get_paths().get('purelib'))"}
+
+ Summary: Oracle VM VirtualBox
+ Name: %NAME%
+--- VirtualBox-7.0.6.orig/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
++++ VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
+@@ -438,7 +438,9 @@ char *PyTraceback_AsString(PyObject *exc
+
+ { // a temp scope so I can use temp locals.
+ #if PY_MAJOR_VERSION <= 2
+- char *tempResult = PyString_AsString(obResult);
++ char *tempResult = (char *)PyString_AsString(obResult);
++#elif PY_MINOR_VERSION <= 6
++ char *tempResult = (char *)PyUnicode_AsUTF8(obResult);
+ #else
+ /* PyUnicode_AsUTF8() is const char * as of Python 3.7, char * earlier. */
+ const char *tempResult = (const char *)PyUnicode_AsUTF8(obResult);
+--- VirtualBox-7.0.6.orig/src/libs/xpcom18a4/python/src/PyGBase.cpp
++++ VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/PyGBase.cpp
+@@ -183,7 +183,11 @@ PyG_Base::~PyG_Base()
+ // Get the correct interface pointer for this object given the IID.
+ void *PyG_Base::ThisAsIID( const nsIID &iid )
+ {
+- if (this==NULL) return NULL;
++#if PY_MINOR_VERSION <= 6
++ if (!this) return NULL;
++#else
++ if (!this) return NULL;
++#endif
+ if (iid.Equals(NS_GET_IID(nsISupports)))
+ return (nsISupports *)(nsIInternalPython *)this;
+ if (iid.Equals(NS_GET_IID(nsISupportsWeakReference)))
+--- VirtualBox-7.0.6.orig/src/libs/xpcom18a4/python/gen_python_deps.py
++++ VirtualBox-7.0.6/src/libs/xpcom18a4/python/gen_python_deps.py
+@@ -96,7 +96,7 @@ def main(argv):
+ else:
+ multi = 1
+
+- if multi == 0:
++ if not multi:
+ prefixes = ["/usr"]
+ versions = [str(sys.version_info[0])+'.'+str(sys.version_info[1]),
+
str(sys.version_info[0])+'.'+str(sys.version_info[1])+'m']
+@@ -124,24 +124,25 @@ def main(argv):
+ continue
+ for p in prefixes:
+ c = checkPair(p, v, dllpre, dllsuff, bitness_magic)
+- if c is not None:
++ if c:
+ known[v] = c
+ break
+- keys = list(known.keys())
+- # we want default to be the lowest versioned Python
+- keys.sort()
+- d = None
+ # We need separator other than newline, to sneak through $(shell)
+ sep = "|"
+- for k in keys:
+- if d is None:
+- d = k
+- vers = k.replace('.', '').upper()
+- print_vars(vers, known[k], sep, bitness_magic)
+- if d is not None:
+- print_vars("DEF", known[d], sep, bitness_magic)
++
++ if not known:
++ # this type of problem should be detected in configure
++ # print_vars("DEF", defaultpaths, sep, bitness_magic)
++ pass
+ else:
+ print(argv[0] + ": No Python development package found!",
file=sys.stderr)
++ if multi:
++ for ver, paths in known.items():
++ print_vars(ver.replace('.', '').upper(), paths, sep,
bitness_magic)
++ else:
++ ver = versions[0]
++ paths = known[ver]
++ print_vars(ver.replace('.', ''), paths, sep, bitness_magic)
+
+ if __name__ == '__main__':
+ main(sys.argv)