forked from pool/virtualbox
82780ab706
- Update file "switch_to_python3.4+.patch" to handle Python 3.8. (bsc#1158288) OBS-URL: https://build.opensuse.org/request/show/754101 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=522
258 lines
11 KiB
Diff
258 lines
11 KiB
Diff
Index: VirtualBox-6.0.14/configure
|
|
===================================================================
|
|
--- VirtualBox-6.0.14.orig/configure
|
|
+++ VirtualBox-6.0.14/configure
|
|
@@ -1977,17 +1977,17 @@ extern "C" int main(void)
|
|
{
|
|
Py_Initialize();
|
|
printf("found version %s", PY_VERSION);
|
|
-#if PY_VERSION_HEX >= 0x02060000
|
|
+#if PY_VERSION_HEX >= 0x03040000
|
|
printf(", OK.\n");
|
|
return 0;
|
|
#else
|
|
- printf(", expected version 2.6 or higher\n");
|
|
+ printf(", expected version 3.4 or higher\n");
|
|
return 1;
|
|
#endif
|
|
}
|
|
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"
|
|
+ SUPPYTHONLIBS="python3.4 python3.4m python3.5 python3.5m python3.6m python3.6 python3.7m python3.7 python3.8m python3.8"
|
|
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: VirtualBox-6.0.14/src/VBox/Installer/linux/routines.sh
|
|
===================================================================
|
|
--- VirtualBox-6.0.14.orig/src/VBox/Installer/linux/routines.sh
|
|
+++ VirtualBox-6.0.14/src/VBox/Installer/linux/routines.sh
|
|
@@ -391,8 +391,8 @@ terminate_proc() {
|
|
maybe_run_python_bindings_installer() {
|
|
VBOX_INSTALL_PATH="${1}"
|
|
|
|
- PYTHON=python
|
|
- if [ "`python -c 'import sys
|
|
+ PYTHON=python3
|
|
+ if [ "`python3 -c 'import sys
|
|
if sys.version_info >= (2, 6):
|
|
print \"test\"' 2> /dev/null`" != "test" ]; then
|
|
echo 1>&2 "Python 2.6 or later not available, skipping bindings installation."
|
|
Index: VirtualBox-6.0.14/src/bldprogs/scm.cpp
|
|
===================================================================
|
|
--- VirtualBox-6.0.14.orig/src/bldprogs/scm.cpp
|
|
+++ VirtualBox-6.0.14/src/bldprogs/scm.cpp
|
|
@@ -2206,7 +2206,7 @@ static int scmProcessFileInner(PSCMRWSTA
|
|
pszTreatAs = "shell";
|
|
else if ( (cchFirst >= 15 && strncmp(pchFirst, "/usr/bin/python", 15) == 0)
|
|
|| (cchFirst >= 19 && strncmp(pchFirst, "/usr/bin/env python", 19) == 0) )
|
|
- pszTreatAs = "python";
|
|
+ pszTreatAs = "python3";
|
|
else if ( (cchFirst >= 13 && strncmp(pchFirst, "/usr/bin/perl", 13) == 0)
|
|
|| (cchFirst >= 17 && strncmp(pchFirst, "/usr/bin/env perl", 17) == 0) )
|
|
pszTreatAs = "perl";
|
|
Index: VirtualBox-6.0.14/src/libs/libxml2-2.9.4/configure
|
|
===================================================================
|
|
--- VirtualBox-6.0.14.orig/src/libs/libxml2-2.9.4/configure
|
|
+++ VirtualBox-6.0.14/src/libs/libxml2-2.9.4/configure
|
|
@@ -15153,10 +15153,10 @@ PYTHON_SITE_PACKAGES=
|
|
PYTHON_TESTS=
|
|
pythondir=
|
|
if test "$with_python" != "no" ; then
|
|
- if test -x "$with_python/bin/python"
|
|
+ if test -x "$with_python/bin/python3"
|
|
then
|
|
- echo Found python in $with_python/bin/python
|
|
- PYTHON="$with_python/bin/python"
|
|
+ echo Found python in $with_python/bin/python3
|
|
+ PYTHON="$with_python/bin/python3"
|
|
else
|
|
if test -x "$with_python/python.exe"
|
|
then
|
|
@@ -15174,7 +15174,8 @@ if test "$with_python" != "no" ; then
|
|
with_python=`$PYTHON -c "import sys; print(sys.exec_prefix)"`
|
|
else
|
|
# Extract the first word of "python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5", so it can be a program name with args.
|
|
-set dummy python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5; ac_word=$2
|
|
+PYTHON=python3
|
|
+set dummy python3 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5; ac_word=$2
|
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
|
$as_echo_n "checking for $ac_word... " >&6; }
|
|
if ${ac_cv_path_PYTHON+:} false; then :
|
|
Index: VirtualBox-6.0.14/src/VBox/ValidationKit/testboxscript/setup.sh
|
|
===================================================================
|
|
--- VirtualBox-6.0.14.orig/src/VBox/ValidationKit/testboxscript/setup.sh
|
|
+++ VirtualBox-6.0.14/src/VBox/ValidationKit/testboxscript/setup.sh
|
|
@@ -652,7 +652,7 @@ import sys;\
|
|
x = sys.version_info[0] == 2 and (sys.version_info[1] >= 6 or (sys.version_info[1] == 5 and sys.version_info[2] >= 1));\
|
|
sys.exit(not x);\
|
|
";
|
|
- for python in python2.7 python2.6 python2.5 python;
|
|
+ for python in python3.6 python2.7 python2.6 python2.5 python;
|
|
do
|
|
python=`which ${python} 2> /dev/null`
|
|
if [ -n "${python}" -a -x "${python}" ]; then
|
|
Index: VirtualBox-6.0.14/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
|
|
===================================================================
|
|
--- VirtualBox-6.0.14.orig/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
|
|
+++ VirtualBox-6.0.14/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
|
|
@@ -20,7 +20,7 @@
|
|
%define %PYTHON% 1
|
|
%define VBOXDOCDIR %{_defaultdocdir}/%NAME%
|
|
%global __requires_exclude_from ^/usr/lib/virtualbox/VBoxPython.*$
|
|
-%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
|
|
+%{!?python_sitelib: %define python_sitelib python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}
|
|
|
|
Summary: Oracle VM VirtualBox
|
|
Name: %NAME%
|
|
@@ -100,7 +100,7 @@ install -m 755 -d $RPM_BUILD_ROOT/usr/sh
|
|
%if %{?with_python:1}%{!?with_python:0}
|
|
(export VBOX_INSTALL_PATH=/usr/lib/virtualbox && \
|
|
cd ./sdk/installer && \
|
|
- %{vbox_python} ./vboxapisetup.py install --prefix %{_prefix} --root $RPM_BUILD_ROOT)
|
|
+ %{python3} ./vboxapisetup.py install --prefix %{_prefix} --root $RPM_BUILD_ROOT)
|
|
%endif
|
|
rm -rf sdk/installer
|
|
mv nls $RPM_BUILD_ROOT/usr/share/virtualbox
|
|
Index: VirtualBox-6.0.14/src/libs/libxml2-2.9.4/libxml.spec.in
|
|
===================================================================
|
|
--- VirtualBox-6.0.14.orig/src/libs/libxml2-2.9.4/libxml.spec.in
|
|
+++ VirtualBox-6.0.14/src/libs/libxml2-2.9.4/libxml.spec.in
|
|
@@ -101,11 +101,11 @@ rm -fr %{buildroot}
|
|
|
|
make install DESTDIR=%{buildroot}
|
|
|
|
-%if 0%{?with_python3}
|
|
+%if 0%{?with_python}
|
|
make clean
|
|
-%configure --with-python=%{__python3}
|
|
+%configure --with-python=python3
|
|
make install DESTDIR=%{buildroot}
|
|
-%endif # with_python3
|
|
+%endif # with_python
|
|
|
|
|
|
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
|
|
Index: VirtualBox-6.0.14/src/libs/libxml2-2.9.4/libxml2.spec
|
|
===================================================================
|
|
--- VirtualBox-6.0.14.orig/src/libs/libxml2-2.9.4/libxml2.spec
|
|
+++ VirtualBox-6.0.14/src/libs/libxml2-2.9.4/libxml2.spec
|
|
@@ -103,7 +103,7 @@ make install DESTDIR=%{buildroot}
|
|
|
|
%if 0%{?with_python3}
|
|
make clean
|
|
-%configure --with-python=%{__python3}
|
|
+%configure --with-python=python3
|
|
make install DESTDIR=%{buildroot}
|
|
%endif # with_python3
|
|
|
|
Index: VirtualBox-6.0.14/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
|
|
===================================================================
|
|
--- VirtualBox-6.0.14.orig/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
|
|
+++ VirtualBox-6.0.14/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
|
|
@@ -439,6 +439,8 @@ char *PyTraceback_AsString(PyObject *exc
|
|
{ // a temp scope so I can use temp locals.
|
|
#if PY_MAJOR_VERSION <= 2
|
|
char *tempResult = PyString_AsString(obResult);
|
|
+#elif PY_MINOR_VERSION <= 6
|
|
+ char *tempResult = PyUnicode_AsUTF8(obResult);
|
|
#else
|
|
/* PyUnicode_AsUTF8() is const char * as of Python 3.7, char * earlier. */
|
|
const char *tempResult = (const char *)PyUnicode_AsUTF8(obResult);
|
|
Index: VirtualBox-6.0.14/src/libs/xpcom18a4/python/src/PyGBase.cpp
|
|
===================================================================
|
|
--- VirtualBox-6.0.14.orig/src/libs/xpcom18a4/python/src/PyGBase.cpp
|
|
+++ VirtualBox-6.0.14/src/libs/xpcom18a4/python/src/PyGBase.cpp
|
|
@@ -183,7 +183,11 @@ PyG_Base::~PyG_Base()
|
|
// Get the correct interface pointer for this object given the IID.
|
|
void *PyG_Base::ThisAsIID( const nsIID &iid )
|
|
{
|
|
- if (this==NULL) return NULL;
|
|
+#if PY_MINOR_VERSION <= 6
|
|
+ if (!this) return NULL;
|
|
+#else
|
|
+ if (!this) return NULL;
|
|
+#endif
|
|
if (iid.Equals(NS_GET_IID(nsISupports)))
|
|
return (nsISupports *)(nsIInternalPython *)this;
|
|
if (iid.Equals(NS_GET_IID(nsISupportsWeakReference)))
|
|
Index: VirtualBox-6.0.14/src/libs/xpcom18a4/python/Makefile.kmk
|
|
===================================================================
|
|
--- VirtualBox-6.0.14.orig/src/libs/xpcom18a4/python/Makefile.kmk
|
|
+++ VirtualBox-6.0.14/src/libs/xpcom18a4/python/Makefile.kmk
|
|
@@ -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|DEF]_[INC|LIB] variables
|
|
+# VBOX_PYTHON[26|27|31|32|32M|33|33M|34|34M|35|35M|36|36M|37|37M|38|38M|DEF]_[INC|LIB] variables
|
|
# which get picked up below.
|
|
#
|
|
ifeq ($(KBUILD_TARGET),darwin) # Relatively predictable, don't script.
|
|
@@ -486,6 +486,52 @@ VBoxPython3_7m_x86_LIBS = $(VBOX_P
|
|
endif
|
|
endif
|
|
endif
|
|
+
|
|
+ifdef VBOX_PYTHON38_INC
|
|
+#
|
|
+# Python 3.8 version
|
|
+#
|
|
+DLLS += VBoxPython3_8
|
|
+VBoxPython3_8_EXTENDS = VBoxPythonBase
|
|
+VBoxPython3_8_EXTENDS_BY = appending
|
|
+VBoxPython3_8_TEMPLATE = XPCOM
|
|
+VBoxPython3_8_INCS = $(VBOX_PYTHON38_INC)
|
|
+VBoxPython3_8_LIBS = $(VBOX_PYTHON38_LIB)
|
|
+
|
|
+ ifdef VBOX_WITH_32_ON_64_MAIN_API
|
|
+ ifdef VBOX_PYTHON38_LIB_X86
|
|
+DLLS += VBoxPython3_8_x86
|
|
+VBoxPython3_8_x86_EXTENDS = VBoxPythonBase_x86
|
|
+VBoxPython3_8_x86_EXTENDS_BY = appending
|
|
+VBoxPython3_8_x86_TEMPLATE = XPCOM
|
|
+VBoxPython3_8_x86_INCS = $(VBOX_PYTHON38_INC)
|
|
+VBoxPython3_8_x86_LIBS = $(VBOX_PYTHON38_LIB_X86)
|
|
+ endif
|
|
+ endif
|
|
+endif
|
|
+
|
|
+ifdef VBOX_PYTHON38M_INC
|
|
+#
|
|
+# Python 3.8 version with pymalloc
|
|
+#
|
|
+DLLS += VBoxPython3_8m
|
|
+VBoxPython3_8m_EXTENDS = VBoxPythonBase_m
|
|
+VBoxPython3_8m_EXTENDS_BY = appending
|
|
+VBoxPython3_8m_TEMPLATE = XPCOM
|
|
+VBoxPython3_8m_INCS = $(VBOX_PYTHON38M_INC)
|
|
+VBoxPython3_8m_LIBS = $(VBOX_PYTHON38M_LIB)
|
|
+
|
|
+ ifdef VBOX_WITH_32_ON_64_MAIN_API
|
|
+ ifdef VBOX_PYTHON38M_LIB_X86
|
|
+DLLS += VBoxPython3_8m_x86
|
|
+VBoxPython3_8m_x86_EXTENDS = VBoxPythonBase_x86_m
|
|
+VBoxPython3_8m_x86_EXTENDS_BY = appending
|
|
+VBoxPython3_8m_x86_TEMPLATE_ = XPCOM
|
|
+VBoxPython3_8m_x86_INCS = $(VBOX_PYTHON38M_INC)
|
|
+VBoxPython3_8m_x86_LIBS = $(VBOX_PYTHON38M_LIB_X86)
|
|
+ endif
|
|
+ endif
|
|
+endif
|
|
|
|
ifdef VBOX_PYTHONDEF_INC
|
|
#
|
|
Index: VirtualBox-6.0.14/src/libs/xpcom18a4/python/gen_python_deps.py
|
|
===================================================================
|
|
--- VirtualBox-6.0.14.orig/src/libs/xpcom18a4/python/gen_python_deps.py
|
|
+++ VirtualBox-6.0.14/src/libs/xpcom18a4/python/gen_python_deps.py
|
|
@@ -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"]
|
|
+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"]
|
|
prefixes = ["/usr", "/usr/local", "/opt", "/opt/local"]
|
|
known = {}
|
|
|