[arch-commits] Commit in virtualbox/trunk (3 files)

Evangelos Foutras foutrelis at gemini.archlinux.org
Fri Dec 10 19:52:39 UTC 2021


    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() {



More information about the arch-commits mailing list