commit eeba9817d0f3ab31c7a2677dff8dbac01512021b
Author: Sérgio M. Basto <sergio(a)serjux.com>
Date: Sat Feb 19 01:13:52 2022 +0000
add upstream patch not yet in released versions
...Added-support-for-running-with-Python-3.1.patch | 158 +++++++++++++++++++++
VirtualBox.spec | 2 +
2 files changed, 160 insertions(+)
---
diff --git a/0001-libs-xpcom-Added-support-for-running-with-Python-3.1.patch
b/0001-libs-xpcom-Added-support-for-running-with-Python-3.1.patch
new file mode 100644
index 0000000..2ca8df0
--- /dev/null
+++ b/0001-libs-xpcom-Added-support-for-running-with-Python-3.1.patch
@@ -0,0 +1,158 @@
+From d90a7f1fe4367600d91f596b4b270f11639e58d9 Mon Sep 17 00:00:00 2001
+From: vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>
+Date: Fri, 6 Aug 2021 06:37:38 +0000
+Subject: [PATCH] libs/xpcom: Added support for running with Python 3.10
+ (untested).
+
+git-svn-id:
http://www.virtualbox.org/svn/vbox@90537
cfe28804-0f27-0410-a406-dd0f0b0b656f
+---
+ trunk/configure | 4 +-
+ trunk/src/libs/xpcom18a4/python/Makefile.kmk | 51 +++++++++++++++++--
+ .../libs/xpcom18a4/python/gen_python_deps.py | 4 +-
+ .../xpcom18a4/python/src/module/_xpcom.cpp | 6 ++-
+ 4 files changed, 57 insertions(+), 8 deletions(-)
+
+diff --git a/trunk/configure b/trunk/configure
+index f525dd60cf2..39782f6ff21 100755
+--- a/trunk/configure
++++ b/trunk/configure
+@@ -3,7 +3,7 @@
+ # libraries VBox OSE depends on.
+
+ #
+-# Copyright (C) 2006-2020 Oracle Corporation
++# Copyright (C) 2006-2021 Oracle Corporation
+ #
+ # This file is part of VirtualBox Open Source Edition (OSE), as
+ # available from
http://www.virtualbox.org. This file is free software;
+@@ -2043,7 +2043,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"
++ 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"
+ 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/trunk/src/libs/xpcom18a4/python/Makefile.kmk
b/trunk/src/libs/xpcom18a4/python/Makefile.kmk
+index 23272feb0d7..84cd3e863e7 100644
+--- a/trunk/src/libs/xpcom18a4/python/Makefile.kmk
++++ b/trunk/src/libs/xpcom18a4/python/Makefile.kmk
+@@ -4,7 +4,7 @@
+ #
+
+ #
+-# Copyright (C) 2009-2017 Oracle Corporation
++# Copyright (C) 2009-2021 Oracle Corporation
+ #
+ # This file is part of VirtualBox Open Source Edition (OSE), as
+ # available from
http://www.virtualbox.org. This file is free software;
+@@ -20,7 +20,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|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|DEF]_[INC|LIB]
variables
+ # which get picked up below.
+ #
+ ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script.
+@@ -646,6 +646,52 @@ VBoxPython3_9m_x86_LIBS = $(VBOX_PYTHON39M_LIB_X86)
+ endif
+ endif
+
++ifdef VBOX_PYTHON310_INC
++#
++# Python 3.10 version
++#
++DLLS += VBoxPython3_10
++VBoxPython3_10_EXTENDS = VBoxPythonBase
++VBoxPython3_10_EXTENDS_BY = appending
++VBoxPython3_10_TEMPLATE = XPCOM
++VBoxPython3_10_INCS = $(VBOX_PYTHON310_INC)
++VBoxPython3_10_LIBS = $(VBOX_PYTHON310_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++ ifdef VBOX_PYTHON310_LIB_X86
++DLLS += VBoxPython3_10_x86
++VBoxPython3_10_x86_EXTENDS = VBoxPythonBase_x86
++VBoxPython3_10_x86_EXTENDS_BY = appending
++VBoxPython3_10_x86_TEMPLATE = XPCOM
++VBoxPython3_10_x86_INCS = $(VBOX_PYTHON310_INC)
++VBoxPython3_10_x86_LIBS = $(VBOX_PYTHON310_LIB_X86)
++ endif
++ endif
++endif
++
++ifdef VBOX_PYTHON310M_INC
++#
++# Python 3.10 version with pymalloc
++#
++DLLS += VBoxPython3_10m
++VBoxPython3_10m_EXTENDS = VBoxPythonBase_m
++VBoxPython3_10m_EXTENDS_BY = appending
++VBoxPython3_10m_TEMPLATE = XPCOM
++VBoxPython3_10m_INCS = $(VBOX_PYTHON310M_INC)
++VBoxPython3_10m_LIBS = $(VBOX_PYTHON310M_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++ ifdef VBOX_PYTHON310M_LIB_X86
++DLLS += VBoxPython3_10m_x86
++VBoxPython3_10m_x86_EXTENDS = VBoxPythonBase_x86_m
++VBoxPython3_10m_x86_EXTENDS_BY = appending
++VBoxPython3_10m_x86_TEMPLATE_ = XPCOM
++VBoxPython3_10m_x86_INCS = $(VBOX_PYTHON310M_INC)
++VBoxPython3_10m_x86_LIBS = $(VBOX_PYTHON310M_LIB_X86)
++ endif
++ endif
++endif
++
+ ifdef VBOX_PYTHONDEF_INC
+ #
+ # Python without versioning
+@@ -730,4 +776,3 @@ VBoxPython-inst-py-xpcom_SOURCES = \
+
+
+ include $(FILE_KBUILD_SUB_FOOTER)
+-
+diff --git a/trunk/src/libs/xpcom18a4/python/gen_python_deps.py
b/trunk/src/libs/xpcom18a4/python/gen_python_deps.py
+index b116313add2..d5107975763 100755
+--- a/trunk/src/libs/xpcom18a4/python/gen_python_deps.py
++++ b/trunk/src/libs/xpcom18a4/python/gen_python_deps.py
+@@ -1,7 +1,7 @@
+ #!/usr/bin/python
+
+ """
+-Copyright (C) 2009-2016 Oracle Corporation
++Copyright (C) 2009-2021 Oracle Corporation
+
+ This file is part of VirtualBox Open Source Edition (OSE), as
+ available from
http://www.virtualbox.org. This file is free software;
+@@ -16,7 +16,7 @@ from __future__ import print_function
+ import os,sys
+ from distutils.version import StrictVersion
+
+-versions = ["2.6", "2.7", "3.1", "3.2",
"3.2m", "3.3", "3.3m", "3.4", "3.4m",
"3.5", "3.5m", "3.6", "3.6m", "3.7",
"3.7m", "3.8", "3.8m", "3.9", "3.9m" ]
++versions = ["2.6", "2.7", "3.1", "3.2",
"3.2m", "3.3", "3.3m", "3.4", "3.4m",
"3.5", "3.5m", "3.6", "3.6m", "3.7",
"3.7m", "3.8", "3.8m", "3.9", "3.9m",
"3.10", "3.10m" ]
+ prefixes = ["/usr", "/usr/local", "/opt",
"/opt/local"]
+ known = {}
+
+diff --git a/trunk/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
b/trunk/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
+index 412f75b2899..d40d2b52384 100644
+--- a/trunk/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
++++ b/trunk/src/libs/xpcom18a4/python/src/module/_xpcom.cpp
+@@ -84,7 +84,11 @@ extern PYXPCOM_EXPORT void PyXPCOM_InterpreterState_Ensure();
+ # define MANGLE_MODULE_INIT(a_Name) RT_CONCAT(a_Name, MODULE_NAME_SUFFIX)
+ # endif
+ # ifdef VBOX_PYXPCOM_VERSIONED
+-# if PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
++# if PY_VERSION_HEX >= 0x030a0000 && PY_VERSION_HEX < 0x030b0000
++# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython3_10")
++# define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_10)
++
++# elif PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
+ # define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython3_9")
+ # define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_9)
+
+--
+2.34.1
+
diff --git a/VirtualBox.spec b/VirtualBox.spec
index 02caa32..ff79534 100644
--- a/VirtualBox.spec
+++ b/VirtualBox.spec
@@ -93,6 +93,7 @@ Patch73: vb-6.1.16-modal-dialog-parent.patch
Patch80: VirtualBox-6.1.4-gcc10.patch
Patch88: VirtualBox-lzf.patch
+Patch90: 0001-libs-xpcom-Added-support-for-running-with-Python-3.1.patch
BuildRequires: gcc-c++
BuildRequires: kBuild >= 0.1.9998.r3093
@@ -340,6 +341,7 @@ rm -r src/libs/zlib-1.2.*/
%patch73 -p1 -b .modal-dialog-parent
%patch80 -p1 -b .gcc10
%patch88 -p1 -b .lzf
+%patch90 -p2 -b .python3.10
%build