File vbox-python-py310.patch of Package virtualbox.openSUSE_Leap_15.3_Update

# https://www.virtualbox.org/changeset/90537/vbox

Index: VirtualBox-6.1.40/src/libs/xpcom18a4/python/Makefile.kmk
===================================================================
--- VirtualBox-6.1.40.orig/src/libs/xpcom18a4/python/Makefile.kmk
+++ VirtualBox-6.1.40/src/libs/xpcom18a4/python/Makefile.kmk
@@ -625,6 +625,52 @@ VBoxPython3_10m_x86_LIBS       = $(VBOX_
  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
Index: VirtualBox-6.1.40/src/libs/xpcom18a4/python/src/PyXPCOM.h
===================================================================
--- VirtualBox-6.1.40.orig/src/libs/xpcom18a4/python/src/PyXPCOM.h
+++ VirtualBox-6.1.40/src/libs/xpcom18a4/python/src/PyXPCOM.h
@@ -137,7 +137,7 @@ inline PyObject *PyBool_FromLong(long ok
 #  define PyInt_Check(o) PyLong_Check(o)
 #  define PyInt_AsLong(o) PyLong_AsLong(o)
 #  define PyNumber_Int(o) PyNumber_Long(o)
-#  if PY_VERSION_HEX <= 0x03030000 /* 3.3 added PyUnicode_AsUTF8AndSize */
+#  if !defined(Py_LIMITED_API) && PY_VERSION_HEX <= 0x03030000 /* 3.3 added PyUnicode_AsUTF8AndSize */
 #   ifndef PyUnicode_AsUTF8
 #    define PyUnicode_AsUTF8(o) _PyUnicode_AsString(o)
 #   endif
openSUSE Build Service is sponsored by