commit 46960e3e14d856fe9a88a40c6207d3d06e8d1d71
Author: Sérgio M. Basto <sergio(a)serjux.com>
Date: Mon Jun 1 00:10:00 2020 +0100
Add python-3.9 support
Fix some conditionals of python especially for el8
37-python-3.7-support.patch | 17 --------
VirtualBox-python.patch | 101 ++++++++++++++++++++++++++++++++++++++++++++
VirtualBox.spec | 30 +++++++------
3 files changed, 119 insertions(+), 29 deletions(-)
---
diff --git a/VirtualBox-python.patch b/VirtualBox-python.patch
new file mode 100644
index 0000000..c8006d3
--- /dev/null
+++ b/VirtualBox-python.patch
@@ -0,0 +1,101 @@
+--- ./src/libs/xpcom18a4/python/gen_python_deps.py.orig 2020-06-01 05:15:00.905907651
+0100
++++ ./src/libs/xpcom18a4/python/gen_python_deps.py 2020-06-01 05:15:48.161226499 +0100
+@@ -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" ]
++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" ]
+ prefixes = ["/usr", "/usr/local", "/opt",
"/opt/local"]
+ known = {}
+
+--- ./configure.orig 2020-06-01 01:15:53.880747364 +0100
++++ ./configure 2020-06-01 01:17:42.231478707 +0100
+@@ -1992,7 +1992,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"
++ 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"
+ 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
+--- ./src/libs/xpcom18a4/python/Makefile.kmk.orig 2020-06-01 05:16:07.610357728 +0100
++++ ./src/libs/xpcom18a4/python/Makefile.kmk 2020-06-01 05:22:44.735037239 +0100
+@@ -26,7 +26,7 @@ endif
+
+ #
+ # 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|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|DEF]_[INC|LIB]
variables
+ # which get picked up below.
+ #
+ ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script.
+@@ -532,6 +532,52 @@ VBoxPython3_8m_x86_LIBS = $(VBOX_P
+ endif
+ endif
+ endif
++
++ifdef VBOX_PYTHON39_INC
++#
++# Python 3.9 version
++#
++DLLS += VBoxPython3_9
++VBoxPython3_9_EXTENDS = VBoxPythonBase
++VBoxPython3_9_EXTENDS_BY = appending
++VBoxPython3_9_TEMPLATE = XPCOM
++VBoxPython3_9_INCS = $(VBOX_PYTHON39_INC)
++VBoxPython3_9_LIBS = $(VBOX_PYTHON39_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++ ifdef VBOX_PYTHON39_LIB_X86
++DLLS += VBoxPython3_9_x86
++VBoxPython3_9_x86_EXTENDS = VBoxPythonBase_x86
++VBoxPython3_9_x86_EXTENDS_BY = appending
++VBoxPython3_9_x86_TEMPLATE = XPCOM
++VBoxPython3_9_x86_INCS = $(VBOX_PYTHON39_INC)
++VBoxPython3_9_x86_LIBS = $(VBOX_PYTHON39_LIB_X86)
++ endif
++ endif
++endif
++
++ifdef VBOX_PYTHON39M_INC
++#
++# Python 3.9 version with pymalloc
++#
++DLLS += VBoxPython3_9m
++VBoxPython3_9m_EXTENDS = VBoxPythonBase_m
++VBoxPython3_9m_EXTENDS_BY = appending
++VBoxPython3_9m_TEMPLATE = XPCOM
++VBoxPython3_9m_INCS = $(VBOX_PYTHON39M_INC)
++VBoxPython3_9m_LIBS = $(VBOX_PYTHON39M_LIB)
++
++ ifdef VBOX_WITH_32_ON_64_MAIN_API
++ ifdef VBOX_PYTHON39M_LIB_X86
++DLLS += VBoxPython3_9m_x86
++VBoxPython3_9m_x86_EXTENDS = VBoxPythonBase_x86_m
++VBoxPython3_9m_x86_EXTENDS_BY = appending
++VBoxPython3_9m_x86_TEMPLATE_ = XPCOM
++VBoxPython3_9m_x86_INCS = $(VBOX_PYTHON39M_INC)
++VBoxPython3_9m_x86_LIBS = $(VBOX_PYTHON39M_LIB_X86)
++ endif
++ endif
++endif
+
+ ifdef VBOX_PYTHONDEF_INC
+ #
+--- ./src/libs/xpcom18a4/python/src/module/_xpcom.cpp.orig 2020-06-01 06:01:12.923522302
+0100
++++ ./src/libs/xpcom18a4/python/src/module/_xpcom.cpp 2020-06-01 06:02:25.704013030
+0100
+@@ -84,7 +84,11 @@ extern PYXPCOM_EXPORT void PyXPCOM_Inter
+ # define MANGLE_MODULE_INIT(a_Name) RT_CONCAT(a_Name, MODULE_NAME_SUFFIX)
+ # endif
+ # ifdef VBOX_PYXPCOM_VERSIONED
+-# if PY_VERSION_HEX >= 0x03080000 && PY_VERSION_HEX < 0x03090000
++# if PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x03100000
++# define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython3_9")
++# define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_9)
++
++# elif PY_VERSION_HEX >= 0x03080000 && PY_VERSION_HEX < 0x03090000
+ # define MODULE_NAME MANGLE_MODULE_NAME("VBoxPython3_8")
+ # define initVBoxPython MANGLE_MODULE_INIT(PyInit_VBoxPython3_8)
+
diff --git a/VirtualBox.spec b/VirtualBox.spec
index 7fc9a63..f2f3aaa 100644
--- a/VirtualBox.spec
+++ b/VirtualBox.spec
@@ -32,16 +32,16 @@
%bcond_without guest_additions
%endif
-%if 0%{?fedora} > 30
+%if 0%{?fedora} > 30 || 0%{?rhel} > 7
%bcond_with python2
%else
%bcond_without python2
%endif
-%if 0%{?fedora} < 16
- %bcond_with python3
-%else
+%if 0%{?fedora} > 15 || 0%{?rhel} > 7
%bcond_without python3
+%else
+ %bcond_with python3
%endif
Name: VirtualBox
@@ -73,9 +73,9 @@ Patch2: VirtualBox-6.1.0-strings.patch
Patch18: VirtualBox-OSE-4.0.2-aiobug.patch
Patch27: VirtualBox-gcc.patch
Patch29: 590355dbdcffa4081c377fd31565e172785b390c.patch
+Patch30: VirtualBox-python.patch
# from Debian
-Patch28: 02-gsoap-build-fix.patch
-Patch30: 37-python-3.7-support.patch
+Patch31: 02-gsoap-build-fix.patch
Patch32: VBoxVNC.fix.patch
# from ArchLinux
Patch40: 007-python2-path.patch
@@ -324,15 +324,17 @@ rm -r src/libs/zlib-1.2.*/
%patch2 -p1 -b .strings
%patch18 -p1 -b .aiobug
#patch27 -p1 -b .gcc
-%if 0%{?fedora} > 20
-%patch28 -p1 -b .gsoap2
-%endif
-%if 0%{?fedora} < 28 || 0%{?rhel}
+%if 0%{?rhel} && 0%{?rhel} < 8
%patch29 -p2 -R -b .gsoap3
%endif
-#patch30 -p1 -b .python37
+%patch30 -p1 -b .python39
+%if 0%{?fedora} > 20 || 0%{?rhel} > 7
+%patch31 -p1 -b .gsoap2
+%endif
%patch32 -p1 -b .vnc
+%if 0%{?fedora} || 0%{?rhel} > 7
%patch40 -p1 -b .python2_path
+%endif
# mageia support not ready for 6.0
#patch50 -p1 -b .mageia-support
%patch51 -p1 -b .revert-VBox.sh
@@ -870,7 +872,11 @@ getent passwd vboxadd >/dev/null || \
%{_datadir}/%{name}-kmod-%{version}
%changelog
-* Sat May 30 2020 Leigh Scott <leigh123linux(a)gmail.com> - 6.1.8-4
+* Sun May 31 2020 Sérgio Basto <sergio(a)serjux.com> - 6.1.8-4
+- Add python-3.9 support
+- Fix some conditionals of python especially for el8
+
+* Sat May 30 2020 Leigh Scott <leigh123linux(a)gmail.com>
- Rebuild for python-3.9
* Tue May 26 2020 Sérgio Basto <sergio(a)serjux.com> - 6.1.8-3