1
0
forked from pool/virtualbox
virtualbox/switch_to_python3.4+.patch
Larry Finger 221b12cb3b Accepting request 888128 from home:lwfinger:branches:Virtualization
- Version bump to (released April 20 2021 by Oracle)
  This is a maintenance release. The following items were fixed and/or added:
  VMM: Fixed extremely poor VM performance depending on the timing of various actions (regression in 6.1.0)
  VMM: Fixed guest OS hanging under certain circumstances when Hyper-V is present (bug #20141)
  VMM: Fixed Guru Meditation error when using a nested hypervisor under certain circumstances (bug #20175)
  VMM: Fixed a SMAP related host panic affecting Solaris 11.4 systems with Intel Haswell CPUs or later (bug #16068)
  OCI: Add cloud-init support for export to OCI and for OCI instance creation
  GUI: Fixed "Delete all files" leaving behind Logs/VBoxUI.log (bug #20235)
  Audio: Multiple fixes and enhancements
  Audio: Fixed detection of duplex audio devices on macOS (5.0 regression; bug #20171)
  Network: Fixed link status reporting for "not attached" adapters
  Network: Fixed connectivity issues with e1000 in OS/2 guests (6.1.18 regression; bug #20148)
  Network: Fixed VxWorks e1000 driver compatibility issue (bug #20182)
  Network: Fixed GUI checks for port forwarding rules rejecting IPv6 with "Nat Network" (bug #14847)
  DHCP: Don't crash in the presence of fixed address assignments (bug #20128)
  Serial: Fixed possible VM hang when using the a serial port in disconnected mode (bug #19854)
  Webcam: Fixed interoperability with v4l2loopback and fixed a crash under certain circumstances (bug #20176)
  NVMe: Fixed sporadic Windows VM hang or reboot on high CPU load
  VBoxManage: Allow changing network adapter attachment of a saved VM with "modifyvm"
  vboximg-mount: Fix for argument processing to honor the '--root' option (6.0 regression; bug #20073)
  Linux host and guest: Support kernel versions 5.11 (bug #20198) and 5.12
  Linux host: Maximum MTU size increased to 16110 for host-only adapters on Linux kernels 4.10+ (bug #19122)
  Linux Guest Additions: Fix vboxvideo module compilation for kernel version 5.10.x
  Linux Guest Additions: Fixed kernel module build for RHEL 8.4 beta and CentOS Stream (bug #20289)
  File "fixes-for-5.11.patch" is deleted. The issue is fixed upstream.
  File "vboxautostart.sh" is replaced by "vboxautostart-service.sh"
  File "vboxautostart.service" is replaced by "vboxautostart-service.service"
  Fixes boo#1183329 "virtualbox 6.1.18 crashes when it runs nested VM"
  Fixes boo#1183125 "Leap 15.3 installation in Virtualbox without VBox integration"
  Fixes CVE-2021-2264 and boo#1184542. The directory for the <user>.start files for
    autostarting VMs is moved from /etc/vbox to /etc/vbox/autostart.d. In addition, the autostart
    service is hardened (by Oracle).

OBS-URL: https://build.opensuse.org/request/show/888128
OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=597
2021-04-24 13:48:44 +00:00

209 lines
9.1 KiB
Diff

Index: VirtualBox-6.1.20/src/bldprogs/scm.cpp
===================================================================
--- VirtualBox-6.1.20.orig/src/bldprogs/scm.cpp
+++ VirtualBox-6.1.20/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.1.20/src/libs/libxml2-2.9.4/configure
===================================================================
--- VirtualBox-6.1.20.orig/src/libs/libxml2-2.9.4/configure
+++ VirtualBox-6.1.20/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.1.20/src/VBox/ValidationKit/testboxscript/setup.sh
===================================================================
--- VirtualBox-6.1.20.orig/src/VBox/ValidationKit/testboxscript/setup.sh
+++ VirtualBox-6.1.20/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.1.20/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
===================================================================
--- VirtualBox-6.1.20.orig/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
+++ VirtualBox-6.1.20/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.*$|^/usr/lib/python.*$|^.*\\.py$
-%{!?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.1.20/src/libs/libxml2-2.9.4/libxml.spec.in
===================================================================
--- VirtualBox-6.1.20.orig/src/libs/libxml2-2.9.4/libxml.spec.in
+++ VirtualBox-6.1.20/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.1.20/src/libs/libxml2-2.9.4/libxml2.spec
===================================================================
--- VirtualBox-6.1.20.orig/src/libs/libxml2-2.9.4/libxml2.spec
+++ VirtualBox-6.1.20/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.1.20/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
===================================================================
--- VirtualBox-6.1.20.orig/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
+++ VirtualBox-6.1.20/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.1.20/src/libs/xpcom18a4/python/src/PyGBase.cpp
===================================================================
--- VirtualBox-6.1.20.orig/src/libs/xpcom18a4/python/src/PyGBase.cpp
+++ VirtualBox-6.1.20/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.1.20/src/libs/xpcom18a4/python/Makefile.kmk
===================================================================
--- VirtualBox-6.1.20.orig/src/libs/xpcom18a4/python/Makefile.kmk
+++ VirtualBox-6.1.20/src/libs/xpcom18a4/python/Makefile.kmk
@@ -579,6 +579,52 @@ VBoxPython3_9m_x86_LIBS = $(VBOX_P
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
#
# Python without versioning
Index: VirtualBox-6.1.20/src/libs/xpcom18a4/python/gen_python_deps.py
===================================================================
--- VirtualBox-6.1.20.orig/src/libs/xpcom18a4/python/gen_python_deps.py
+++ VirtualBox-6.1.20/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", "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.8", "3.8m", "3.9", "3.9m" ]
prefixes = ["/usr", "/usr/local", "/opt", "/opt/local"]
known = {}