1
0
forked from pool/virtualbox
virtualbox/vbox-python-selection.patch
Larry Rainey 030c30350e Accepting request 1060705 from home:larryr:branches:Virtualization
- VirtualBox 7.0.6 (released January 17 2023)
This is a maintenance release. The following items were fixed and/or added: [1]
- VMM: Fixed guru running the FreeBSD loader on older Intel CPUs without unrestricted guest support (bug #21332)
- GUI: Fixed virtual machines grouping when VM was created or modified in command line (bugs #11500, #20933)
- GUI: Introduced generic changes in settings dialogs
- VirtioNet: Fixed broken network after loading saved state (bug #21172)
- Storage: Added support for increasing the size of the following VMDK image variants: monolithicFlat, monolithicSparse, twoGbMaxExtentSparse, twoGbMaxExtentFlat
- VBoxManage: Added missing --directory switch for guestcontrol mktemp command
- Mouse Integration: Guest was provided with extended host mouse state (bug #21139)
- DnD: Introduced generic improvements
- Guest Control: Fixed handling creation mode for temporary directories (bug #21394)
- Linux Host and Guest: Added initial support for building UEK7 kernel on Oracle Linux 8
- Linux Host and Guest: Added initial support for RHEL 9.1 kernel
- Linux Guest Additions: Added initial support for kernel 6.2 for vboxvideo
- Audio: The "--audio" option in VBoxManage is now marked as deprecated; please use "--audio-driver" and "--audio-enabled" instead. This will allow more flexibility when changing the driver and/or controlling the audio functionality 
Additionally, it fixes 6 CVE's: [2]
CVE-2023-21886 	Oracle VM VirtualBox 	Core 	Multiple 	Yes 	8.1 	Network 	High 	None 	None 	Un-
changed 	High 	High 	High 	Prior to 6.1.42, prior to 7.0.6 	 
CVE-2023-21898 	Oracle VM VirtualBox 	Core 	None 	No 	5.5 	Local 	Low 	Low 	None 	Un-
changed 	None 	None 	High 	Prior to 6.1.42, prior to 7.0.6 	See Note 1
CVE-2023-21899 	Oracle VM VirtualBox 	Core 	None 	No 	5.5 	Local 	Low 	Low 	None 	Un-
changed 	None 	None 	High 	Prior to 6.1.42, prior to 7.0.6 	See Note 1
CVE-2023-21884 	Oracle VM VirtualBox 	Core 	None 	No 	4.4 	Local 	Low 	High 	None 	Un-
changed 	None 	None 	High 	Prior to 6.1.42, prior to 7.0.6 	 
CVE-2023-21885 	Oracle VM VirtualBox 	Core 	None 	No 	3.8 	Local 	Low 	Low 	None 	Changed 	Low 	None 	None 	Prior to 6.1.42, prior to 7.0.6 	See Note 2
CVE-2023-21889 	Oracle VM VirtualBox 	Core 	None 	No 	3.8 	Local 	Low 	Low 	None 	Changed 	Low 	None 	None 	Prior to 6.1.42, prior to 7.0.6 	 
								
Note 1: Applies to VirtualBox VMs running Windows 7 and later.
Note 2: Applies to Windows only.
Links:

OBS-URL: https://build.opensuse.org/request/show/1060705
OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=673
2023-01-24 21:49:25 +00:00

179 lines
7.0 KiB
Diff

Index: VirtualBox-7.0.6/src/bldprogs/scm.cpp
===================================================================
--- VirtualBox-7.0.6.orig/src/bldprogs/scm.cpp
+++ VirtualBox-7.0.6/src/bldprogs/scm.cpp
@@ -2335,7 +2335,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-7.0.6/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
===================================================================
--- VirtualBox-7.0.6.orig/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
+++ VirtualBox-7.0.6/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec
@@ -32,6 +32,9 @@
%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())")}
+# SUSE defines these in python-rpm-macros, not necessarily available here
+%{!?__python3:%{_bindir}/python3}}
+%{!?python3_sitelib: %define python_sitelib python3 -c "import sysconfig as s; print(s.get_paths().get('purelib'))"}
Summary: Oracle VM VirtualBox
Name: %NAME%
Index: VirtualBox-7.0.6/src/libs/libxml2-2.9.14/libxml.spec.in
===================================================================
--- VirtualBox-7.0.6.orig/src/libs/libxml2-2.9.14/libxml.spec.in
+++ VirtualBox-7.0.6/src/libs/libxml2-2.9.14/libxml.spec.in
@@ -1,3 +1,4 @@
+%global with_python2 0
%global with_python3 1
Summary: Library providing XML and HTML support
@@ -8,7 +9,9 @@ License: MIT
Group: Development/Libraries
Source: https://download.gnome.org/sources/libxml2/@LIBXML_MAJOR_VERSION@.@LIBXML_MINOR_VERSION@/libxml2-%{version}.tar.xz
BuildRoot: %{_tmppath}/%{name}-%{version}-root
+%if 0%{?with_python2}
BuildRequires: python-devel
+%endif
%if 0%{?with_python3}
BuildRequires: python3-devel
%endif # with_python3
@@ -75,7 +78,6 @@ to read, modify and write XML and HTML f
this includes parsing and validation even with complex DTDs, either
at parse time or later once the document has been modified.
-%if 0%{?with_python3}
%package -n python3-%{name}
Summary: Python 3 bindings for the libxml2 library
Group: Development/Libraries
@@ -92,7 +94,6 @@ This library allows to manipulate XML fi
to read, modify and write XML and HTML files. There is DTDs support
this includes parsing and validation even with complex DTDs, either
at parse time or later once the document has been modified.
-%endif # with_python3
%prep
%setup -q
@@ -110,11 +111,14 @@ find doc -type f -exec chmod 0644 \{\} \
%install
rm -fr %{buildroot}
+%if 0%{?with_python2}
+make clean
+%configure --with-python=python
make install DESTDIR=%{buildroot}
-
+%endif # with_python2
%if 0%{?with_python3}
make clean
-%configure --with-python=%{__python3}
+%configure --with-python=python3
make install DESTDIR=%{buildroot}
%endif # with_python3
@@ -177,6 +181,7 @@ rm -fr %{buildroot}
%{_libdir}/*a
+%if 0%{?with_python2}
%files -n python-%{name}
%defattr(-, root, root)
@@ -188,6 +193,7 @@ rm -fr %{buildroot}
%doc python/tests/*.py
%doc doc/*.py
%doc doc/python.html
+%endif
%if 0%{?with_python3}
%files -n python3-%{name}
Index: VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
===================================================================
--- VirtualBox-7.0.6.orig/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
+++ VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
@@ -438,7 +438,9 @@ char *PyTraceback_AsString(PyObject *exc
{ // a temp scope so I can use temp locals.
#if PY_MAJOR_VERSION <= 2
- char *tempResult = PyString_AsString(obResult);
+ char *tempResult = (char *)PyString_AsString(obResult);
+#elif PY_MINOR_VERSION <= 6
+ char *tempResult = (char *)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-7.0.6/src/libs/xpcom18a4/python/src/PyGBase.cpp
===================================================================
--- VirtualBox-7.0.6.orig/src/libs/xpcom18a4/python/src/PyGBase.cpp
+++ VirtualBox-7.0.6/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-7.0.6/src/libs/xpcom18a4/python/gen_python_deps.py
===================================================================
--- VirtualBox-7.0.6.orig/src/libs/xpcom18a4/python/gen_python_deps.py
+++ VirtualBox-7.0.6/src/libs/xpcom18a4/python/gen_python_deps.py
@@ -96,7 +96,7 @@ def main(argv):
else:
multi = 1
- if multi == 0:
+ if not multi:
prefixes = ["/usr"]
versions = [str(sys.version_info[0])+'.'+str(sys.version_info[1]),
str(sys.version_info[0])+'.'+str(sys.version_info[1])+'m']
@@ -124,24 +124,25 @@ def main(argv):
continue
for p in prefixes:
c = checkPair(p, v, dllpre, dllsuff, bitness_magic)
- if c is not None:
+ if c:
known[v] = c
break
- keys = list(known.keys())
- # we want default to be the lowest versioned Python
- keys.sort()
- d = None
# We need separator other than newline, to sneak through $(shell)
sep = "|"
- for k in keys:
- if d is None:
- d = k
- vers = k.replace('.', '').upper()
- print_vars(vers, known[k], sep, bitness_magic)
- if d is not None:
- print_vars("DEF", known[d], sep, bitness_magic)
+
+ if not known:
+ # this type of problem should be detected in configure
+ # print_vars("DEF", defaultpaths, sep, bitness_magic)
+ pass
else:
print(argv[0] + ": No Python development package found!", file=sys.stderr)
+ if multi:
+ for ver, paths in known.items():
+ print_vars(ver.replace('.', '').upper(), paths, sep, bitness_magic)
+ else:
+ ver = versions[0]
+ paths = known[ver]
+ print_vars(ver.replace('.', ''), paths, sep, bitness_magic)
if __name__ == '__main__':
main(sys.argv)