Date: Friday, December 10, 2021 @ 19:52:38 Author: foutrelis Revision: 1068152
upgpkg: virtualbox 6.1.30-3: fix build with Python 3.10 Added: virtualbox/trunk/002-python310.patch virtualbox/trunk/003-pyunicode.patch Modified: virtualbox/trunk/PKGBUILD ---------------------+ 002-python310.patch | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++ 003-pyunicode.patch | 26 +++++++++ PKGBUILD | 10 +-- 3 files changed, 174 insertions(+), 5 deletions(-) Added: 002-python310.patch =================================================================== --- 002-python310.patch (rev 0) +++ 002-python310.patch 2021-12-10 19:52:38 UTC (rev 1068152) @@ -0,0 +1,143 @@ +# https://www.virtualbox.org/changeset/90537/vbox + +Index: trunk/configure +=================================================================== +--- trunk/configure (revision 90536) ++++ trunk/configure (revision 90537) +@@ -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 @@ + } + 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 +Index: trunk/src/libs/xpcom18a4/python/src/module/_xpcom.cpp +=================================================================== +--- trunk/src/libs/xpcom18a4/python/src/module/_xpcom.cpp (revision 90536) ++++ trunk/src/libs/xpcom18a4/python/src/module/_xpcom.cpp (revision 90537) +@@ -84,7 +84,11 @@ + # 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) + +Index: trunk/src/libs/xpcom18a4/python/Makefile.kmk +=================================================================== +--- trunk/src/libs/xpcom18a4/python/Makefile.kmk (revision 90536) ++++ trunk/src/libs/xpcom18a4/python/Makefile.kmk (revision 90537) +@@ -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 @@ + + # + # 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 @@ + 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 @@ + + + include $(FILE_KBUILD_SUB_FOOTER) +- +Index: trunk/src/libs/xpcom18a4/python/gen_python_deps.py +=================================================================== +--- trunk/src/libs/xpcom18a4/python/gen_python_deps.py (revision 90536) ++++ trunk/src/libs/xpcom18a4/python/gen_python_deps.py (revision 90537) +@@ -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 @@ + 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 = {} + Added: 003-pyunicode.patch =================================================================== --- 003-pyunicode.patch (rev 0) +++ 003-pyunicode.patch 2021-12-10 19:52:38 UTC (rev 1068152) @@ -0,0 +1,26 @@ +# https://www.virtualbox.org/changeset/86623/vbox + +Index: trunk/src/libs/xpcom18a4/python/src/PyXPCOM.h +=================================================================== +--- trunk/src/libs/xpcom18a4/python/src/PyXPCOM.h (revision 86622) ++++ trunk/src/libs/xpcom18a4/python/src/PyXPCOM.h (revision 86623) +@@ -137,12 +137,14 @@ + # define PyInt_Check(o) PyLong_Check(o) + # define PyInt_AsLong(o) PyLong_AsLong(o) + # define PyNumber_Int(o) PyNumber_Long(o) +-# ifndef PyUnicode_AsUTF8 +-# define PyUnicode_AsUTF8(o) _PyUnicode_AsString(o) ++# 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 ++# ifndef PyUnicode_AsUTF8AndSize ++# define PyUnicode_AsUTF8AndSize(o,s) _PyUnicode_AsStringAndSize(o,s) ++# endif + # endif +-# ifndef PyUnicode_AsUTF8AndSize +-# define PyUnicode_AsUTF8AndSize(o,s) _PyUnicode_AsStringAndSize(o,s) +-# endif + typedef struct PyMethodChain + { + PyMethodDef *methods; Modified: PKGBUILD =================================================================== --- PKGBUILD 2021-12-10 19:33:38 UTC (rev 1068151) +++ PKGBUILD 2021-12-10 19:52:38 UTC (rev 1068152) @@ -10,7 +10,7 @@ 'virtualbox-ext-vnc') pkgver=6.1.30 _tarver=${pkgver} -pkgrel=2 +pkgrel=3 arch=('x86_64') url='https://virtualbox.org/' license=('GPL' 'custom') @@ -65,6 +65,8 @@ 'vboxweb.service' 'vboxreload' '001-disable-update.patch' + '002-python310.patch' + '003-pyunicode.patch' '005-gsoap-build.patch' '006-rdesktop-vrdp-keymap-path.patch' '008-no-vboxvideo.patch' @@ -87,6 +89,8 @@ 'e6e875ef186578b53106d7f6af48e426cdaf1b4e86834f01696b8ef1c685787f' '4001b5927348fe669a541e80526d4f9ea91b883805f102f7d571edbb482a9b9d' '9ee947c9b5ec5b25f52d3e72340fc3a57ca6e65a604e15b669ac582a3fb0dc1b' + '361a6de4fd91070f3e34d4a59b086a84c8a38c707f44b6db82b658d9076f69ce' + '3bb1643a212b9ecb4d75e31add984a6b206f71a9f46f460007812d1ce648c1a0' '7d2da8fe10a90f76bbfc80ad1f55df4414f118cd10e10abfb76070326abebd46' '13c6ca9be0f91582445fd2a14a8c58a0625a15d9cb98cb6e8c2736d77ea976ab' '053bfeee8863f3ffdf2f0e3f9f0d77dc61dd32764700a97a7635fd8611e20491' @@ -113,10 +117,6 @@ echo 'Use our CFLAGS' echo "VBOX_GCC_OPT=$CXXFLAGS" >> LocalConfig.kmk - - # Fix Python 3.10 detection - # (keep this for next python update, just comment!) - sed -i 's/\(python3.9 python3.9m\)/\1 python3.10 python3.10m/' configure } build() {