From d3fa2d0e39c0d9817ef43e48e362da9e983fc4b764406468f16896632d9422da Mon Sep 17 00:00:00 2001 From: Larry Finger Date: Sat, 7 Sep 2019 19:41:40 +0000 Subject: [PATCH] Accepting request 729117 from home:lwfinger:branches:Virtualization Added file "README.build" with instructions for me and any eventual successors. - Version update to 6.0.12 (released September 03 2019 by Oracle) This is a maintenance release. The following items were fixed and/or added: OCI export: handle empty disk image correctly API: fix potential crash when using the medium I/O functionality VBoxManage: fixed documentation of VBoxManage modifyvm uarttype documentation (bug #18759) Network: scrub inbound TCP URG pointer, working around incorrect OOB handling USB: Improved identification of power-saved devices on Windows hosts Audio: in the AC97 work around buggy guest drivers which reprogram the sampling rate, breaking audio in and/or audio out Linux host and guest: fix kernel module build for SLES 12 SP4 kernel 3D: fixed state saving and loading when the VBoxVGA graphics adapter is used with 3D enabled (bug #18802, 6.0.10 regression) Windows guests: fixed mouse cursor visibility updating Windows guests: fixed graphics corruption in Windows 10 search menu with VBoxSVGA adapter Windows guests: fixed dwm.exe crashes related to the WDDM driver for VBoxSVGA adapter when the VM has lots of RAM MacOS Guest Additions fail to start in 6.0.10 (bug #18793) Windows guests: fixed crashes when using shared folders (bug #18766) Linux guests: unprivileged users unable to create files inside shared folders (bug #18737) Linux guests: improve compatibility of vboxvideo.ko kernel module build logic (bug #18869) OBS-URL: https://build.opensuse.org/request/show/729117 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=502 --- README.build | 45 +++++++++++++++++++++ UserManual.pdf | 4 +- VirtualBox-6.0.10-patched.tar.bz2 | 3 -- VirtualBox-6.0.12-patched.tar.bz2 | 3 ++ fix_lib_search.patch | 20 +++++----- switch_to_python3.4+.patch | 66 +++++++++++++++---------------- virtualbox.changes | 26 ++++++++++++ virtualbox.spec | 2 +- 8 files changed, 120 insertions(+), 49 deletions(-) create mode 100644 README.build delete mode 100644 VirtualBox-6.0.10-patched.tar.bz2 create mode 100644 VirtualBox-6.0.12-patched.tar.bz2 diff --git a/README.build b/README.build new file mode 100644 index 0000000..2ba7559 --- /dev/null +++ b/README.build @@ -0,0 +1,45 @@ +Instructions for creating a separate VirtualBox project and building the packages + +Although it is possible to modify a project at the openSUSE Build System (OBS), +I have found it to be more convenient to use the various osc commands to create a +local copy, edit it on my own computer to fix any problems, and then push the result +to OBS. + +A. Create a new sub-project: + 1. Branch the package: + osc branch Virtualization virtualbox + 2. Checkout the package using the "osc co" command listed + +B. Build the project: + 1. Use "osc build" to build. This step is rather compute intensive and + takes about an hour on my Toshiba laptop with a dual-core Intel Core i7 CPU + with hyper-threading, 12 GB RAM, and an SSD. + 2. The build results are stored in the /var/tmp/build-root tree. These files + can occupy a lot of disc space, particularly when one builds several flavors. + To keep from running out of space on the / partition, I mount /var/tmp on + a separate partition. At present, I have used about 43 GiB in that partition. + 3. Special flavors: + When a new kernel is released, there may be several API changes that affect + builds of the kernel modules used by VirtualBox. In Factory, the project that + contains the latest kernels is "Kernel-HEAD-standard". To run a test build with + this kernel, use the command "osc build Kernel-HEAD-standard". When switching + between kernel projects, use of the "--clean" switch is advised, otherwise + strange "missing library" messages will result. + 4. On occasion, there may be breakage in the build when there is an update with + python or Qt. Use the "--alternative-project=" switch to force usage of + the revised component. + +C. Steps to take with a new release: + 1. When Orable releases a new version, you will need to download then new tarball + from https://download.virtualbox.org/virtualbox/. While downloading the file, I + also get the new UserManual.pdf. + 2. openSUSE makes some changes to the tarball by running the command + bash ./virtualbox-patch-source.sh + This command unpacks the tar file, makes some modifications to the source, and + recreates the tar file with "patched" in its name. Any further modifications + are made by patches that are applied during the build process. Do NOT make any + further changes to the tar file. + 3. Edit the "Version" line near the start of virtualbox.spec to select the new version. + 4. Use "osc rm " and "osc add " to get the new file into + osc. The local build will work without these changes, but the remote operations + will fail.` diff --git a/UserManual.pdf b/UserManual.pdf index 8fecdbd..fd47b04 100644 --- a/UserManual.pdf +++ b/UserManual.pdf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d5b7320c38db8c3c8d5374eaab50b0386032752c0c7c3c3470426d02786b33f0 -size 4338221 +oid sha256:4827072513cee45f7a132866294b108e08b2a3aef594a3f69a7eea48d659c6da +size 4340413 diff --git a/VirtualBox-6.0.10-patched.tar.bz2 b/VirtualBox-6.0.10-patched.tar.bz2 deleted file mode 100644 index 171fc0b..0000000 --- a/VirtualBox-6.0.10-patched.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:22318cca4a8034f78f16ebc4dab06ccecec6992bf81ce29f90a519574c6132f5 -size 117465621 diff --git a/VirtualBox-6.0.12-patched.tar.bz2 b/VirtualBox-6.0.12-patched.tar.bz2 new file mode 100644 index 0000000..f87980f --- /dev/null +++ b/VirtualBox-6.0.12-patched.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a5a15e0a2a9c933e9da7db74823a520945142e08abec666c976b644605eeec2 +size 117493376 diff --git a/fix_lib_search.patch b/fix_lib_search.patch index 7b9e334..926d143 100644 --- a/fix_lib_search.patch +++ b/fix_lib_search.patch @@ -1,8 +1,8 @@ -Index: VirtualBox-6.0.2/configure +Index: VirtualBox-6.0.12/configure =================================================================== ---- VirtualBox-6.0.2.orig/configure -+++ VirtualBox-6.0.2/configure -@@ -1538,14 +1538,14 @@ EOF +--- VirtualBox-6.0.12.orig/configure ++++ VirtualBox-6.0.12/configure +@@ -1546,14 +1546,14 @@ EOF INCQT5="$q/include $q/include/QtCore" FLGQT5="-DQT_SHARED" I_INCQT5=`prefix_I "$INCQT5"` @@ -10,20 +10,20 @@ Index: VirtualBox-6.0.2/configure + LIBQT5="-L$q/lib -L$q/usr/lib64 -lQt5CoreVBox" TOOLQT5="$q" if test_compile "$LIBQT5 $LIBPTHREAD $I_INCQT5 $FLGQT5" qt5 qt5 nofatal && - test_execute_path "`strip_L "$LIBQT5"`" nofatal; then + test_execute_path "`L_to_PATH "$LIBQT5"`" nofatal; then foundqt5=2 # internal break; fi - LIBQT5="-L$q/lib -lQt5Core" + LIBQT5="-L$q/lib -L$q/usr/lib64 -lQt5Core" if test_compile "$LIBQT5 $LIBPTHREAD $I_INCQT5 $FLGQT5" qt5 qt5 nofatal && - test_execute_path "`strip_L "$LIBQT5"`" nofatal; then + test_execute_path "`L_to_PATH "$LIBQT5"`" nofatal; then foundqt5=1 # no pkg-config, Qt directory -Index: VirtualBox-6.0.2/src/VBox/Additions/common/crOpenGL/Makefile.kmk +Index: VirtualBox-6.0.12/src/VBox/Additions/common/crOpenGL/Makefile.kmk =================================================================== ---- VirtualBox-6.0.2.orig/src/VBox/Additions/common/crOpenGL/Makefile.kmk -+++ VirtualBox-6.0.2/src/VBox/Additions/common/crOpenGL/Makefile.kmk -@@ -217,15 +217,7 @@ VBoxOGL_LIBS.win += \ +--- VirtualBox-6.0.12.orig/src/VBox/Additions/common/crOpenGL/Makefile.kmk ++++ VirtualBox-6.0.12/src/VBox/Additions/common/crOpenGL/Makefile.kmk +@@ -224,15 +224,7 @@ VBoxOGL_LIBS.win += \ $(PATH_STAGE_LIB)/additions/VBoxCrHgsmi$(VBOX_SUFF_LIB) if1of ($(KBUILD_TARGET), linux solaris freebsd) diff --git a/switch_to_python3.4+.patch b/switch_to_python3.4+.patch index 2176333..cc193ce 100644 --- a/switch_to_python3.4+.patch +++ b/switch_to_python3.4+.patch @@ -1,8 +1,8 @@ -Index: VirtualBox-6.0.2/configure +Index: VirtualBox-6.0.12/configure =================================================================== ---- VirtualBox-6.0.2.orig/configure -+++ VirtualBox-6.0.2/configure -@@ -1969,17 +1969,17 @@ extern "C" int main(void) +--- VirtualBox-6.0.12.orig/configure ++++ VirtualBox-6.0.12/configure +@@ -1977,17 +1977,17 @@ extern "C" int main(void) { Py_Initialize(); printf("found version %s", PY_VERSION); @@ -23,10 +23,10 @@ Index: VirtualBox-6.0.2/configure 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.2/src/VBox/Installer/linux/routines.sh +Index: VirtualBox-6.0.12/src/VBox/Installer/linux/routines.sh =================================================================== ---- VirtualBox-6.0.2.orig/src/VBox/Installer/linux/routines.sh -+++ VirtualBox-6.0.2/src/VBox/Installer/linux/routines.sh +--- VirtualBox-6.0.12.orig/src/VBox/Installer/linux/routines.sh ++++ VirtualBox-6.0.12/src/VBox/Installer/linux/routines.sh @@ -391,8 +391,8 @@ terminate_proc() { maybe_run_python_bindings_installer() { VBOX_INSTALL_PATH="${1}" @@ -38,10 +38,10 @@ Index: VirtualBox-6.0.2/src/VBox/Installer/linux/routines.sh 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.2/src/bldprogs/scm.cpp +Index: VirtualBox-6.0.12/src/bldprogs/scm.cpp =================================================================== ---- VirtualBox-6.0.2.orig/src/bldprogs/scm.cpp -+++ VirtualBox-6.0.2/src/bldprogs/scm.cpp +--- VirtualBox-6.0.12.orig/src/bldprogs/scm.cpp ++++ VirtualBox-6.0.12/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) @@ -51,10 +51,10 @@ Index: VirtualBox-6.0.2/src/bldprogs/scm.cpp 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.2/src/libs/libxml2-2.9.4/configure +Index: VirtualBox-6.0.12/src/libs/libxml2-2.9.4/configure =================================================================== ---- VirtualBox-6.0.2.orig/src/libs/libxml2-2.9.4/configure -+++ VirtualBox-6.0.2/src/libs/libxml2-2.9.4/configure +--- VirtualBox-6.0.12.orig/src/libs/libxml2-2.9.4/configure ++++ VirtualBox-6.0.12/src/libs/libxml2-2.9.4/configure @@ -15153,10 +15153,10 @@ PYTHON_SITE_PACKAGES= PYTHON_TESTS= pythondir= @@ -79,10 +79,10 @@ Index: VirtualBox-6.0.2/src/libs/libxml2-2.9.4/configure { $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.2/src/VBox/ValidationKit/testboxscript/setup.sh +Index: VirtualBox-6.0.12/src/VBox/ValidationKit/testboxscript/setup.sh =================================================================== ---- VirtualBox-6.0.2.orig/src/VBox/ValidationKit/testboxscript/setup.sh -+++ VirtualBox-6.0.2/src/VBox/ValidationKit/testboxscript/setup.sh +--- VirtualBox-6.0.12.orig/src/VBox/ValidationKit/testboxscript/setup.sh ++++ VirtualBox-6.0.12/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);\ @@ -92,10 +92,10 @@ Index: VirtualBox-6.0.2/src/VBox/ValidationKit/testboxscript/setup.sh do python=`which ${python} 2> /dev/null` if [ -n "${python}" -a -x "${python}" ]; then -Index: VirtualBox-6.0.2/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec +Index: VirtualBox-6.0.12/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec =================================================================== ---- VirtualBox-6.0.2.orig/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec -+++ VirtualBox-6.0.2/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec +--- VirtualBox-6.0.12.orig/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec ++++ VirtualBox-6.0.12/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec @@ -20,7 +20,7 @@ %define %PYTHON% 1 %define VBOXDOCDIR %{_defaultdocdir}/%NAME% @@ -105,19 +105,19 @@ Index: VirtualBox-6.0.2/src/VBox/Installer/linux/rpm/VirtualBox.tmpl.spec Summary: Oracle VM VirtualBox Name: %NAME% -@@ -89,7 +89,7 @@ install -m 755 -d $RPM_BUILD_ROOT/usr/sh +@@ -97,7 +97,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 && \ -- %{__python} ./vboxapisetup.py install --prefix %{_prefix} --root $RPM_BUILD_ROOT) +- %{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.2/src/libs/libxml2-2.9.4/libxml.spec.in +Index: VirtualBox-6.0.12/src/libs/libxml2-2.9.4/libxml.spec.in =================================================================== ---- VirtualBox-6.0.2.orig/src/libs/libxml2-2.9.4/libxml.spec.in -+++ VirtualBox-6.0.2/src/libs/libxml2-2.9.4/libxml.spec.in +--- VirtualBox-6.0.12.orig/src/libs/libxml2-2.9.4/libxml.spec.in ++++ VirtualBox-6.0.12/src/libs/libxml2-2.9.4/libxml.spec.in @@ -101,11 +101,11 @@ rm -fr %{buildroot} make install DESTDIR=%{buildroot} @@ -133,10 +133,10 @@ Index: VirtualBox-6.0.2/src/libs/libxml2-2.9.4/libxml.spec.in rm -f $RPM_BUILD_ROOT%{_libdir}/*.la -Index: VirtualBox-6.0.2/src/libs/libxml2-2.9.4/libxml2.spec +Index: VirtualBox-6.0.12/src/libs/libxml2-2.9.4/libxml2.spec =================================================================== ---- VirtualBox-6.0.2.orig/src/libs/libxml2-2.9.4/libxml2.spec -+++ VirtualBox-6.0.2/src/libs/libxml2-2.9.4/libxml2.spec +--- VirtualBox-6.0.12.orig/src/libs/libxml2-2.9.4/libxml2.spec ++++ VirtualBox-6.0.12/src/libs/libxml2-2.9.4/libxml2.spec @@ -103,7 +103,7 @@ make install DESTDIR=%{buildroot} %if 0%{?with_python3} @@ -146,10 +146,10 @@ Index: VirtualBox-6.0.2/src/libs/libxml2-2.9.4/libxml2.spec make install DESTDIR=%{buildroot} %endif # with_python3 -Index: VirtualBox-6.0.2/src/libs/xpcom18a4/python/src/ErrorUtils.cpp +Index: VirtualBox-6.0.12/src/libs/xpcom18a4/python/src/ErrorUtils.cpp =================================================================== ---- VirtualBox-6.0.2.orig/src/libs/xpcom18a4/python/src/ErrorUtils.cpp -+++ VirtualBox-6.0.2/src/libs/xpcom18a4/python/src/ErrorUtils.cpp +--- VirtualBox-6.0.12.orig/src/libs/xpcom18a4/python/src/ErrorUtils.cpp ++++ VirtualBox-6.0.12/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 @@ -159,10 +159,10 @@ Index: VirtualBox-6.0.2/src/libs/xpcom18a4/python/src/ErrorUtils.cpp #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.2/src/libs/xpcom18a4/python/src/PyGBase.cpp +Index: VirtualBox-6.0.12/src/libs/xpcom18a4/python/src/PyGBase.cpp =================================================================== ---- VirtualBox-6.0.2.orig/src/libs/xpcom18a4/python/src/PyGBase.cpp -+++ VirtualBox-6.0.2/src/libs/xpcom18a4/python/src/PyGBase.cpp +--- VirtualBox-6.0.12.orig/src/libs/xpcom18a4/python/src/PyGBase.cpp ++++ VirtualBox-6.0.12/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 ) diff --git a/virtualbox.changes b/virtualbox.changes index 6ce47db..0192dc6 100644 --- a/virtualbox.changes +++ b/virtualbox.changes @@ -1,3 +1,29 @@ +------------------------------------------------------------------- +Fri Sep 6 16:27:02 UTC 2019 - Larry Finger + +Added file "README.build" with instructions for me and any eventual successors. + +- Version update to 6.0.12 (released September 03 2019 by Oracle) + +This is a maintenance release. The following items were fixed and/or added: + +OCI export: handle empty disk image correctly +API: fix potential crash when using the medium I/O functionality +VBoxManage: fixed documentation of VBoxManage modifyvm uarttype documentation (bug #18759) +Network: scrub inbound TCP URG pointer, working around incorrect OOB handling +USB: Improved identification of power-saved devices on Windows hosts +Audio: in the AC97 work around buggy guest drivers which reprogram the sampling rate, breaking audio in and/or audio out +Linux host and guest: fix kernel module build for SLES 12 SP4 kernel +3D: fixed state saving and loading when the VBoxVGA graphics adapter is used with 3D enabled (bug #18802, 6.0.10 regression) +Windows guests: fixed mouse cursor visibility updating +Windows guests: fixed graphics corruption in Windows 10 search menu with VBoxSVGA adapter +Windows guests: fixed dwm.exe crashes related to the WDDM driver for VBoxSVGA adapter when the VM has lots of RAM +MacOS Guest Additions fail to start in 6.0.10 (bug #18793) +Windows guests: fixed crashes when using shared folders (bug #18766) +Linux guests: unprivileged users unable to create files inside shared folders (bug #18737) +Linux guests: improve compatibility of vboxvideo.ko kernel module build logic (bug #18869) + + ------------------------------------------------------------------- Mon Jul 29 06:40:41 UTC 2019 - Larry Finger diff --git a/virtualbox.spec b/virtualbox.spec index 0504d1d..b12b975 100644 --- a/virtualbox.spec +++ b/virtualbox.spec @@ -47,7 +47,7 @@ python3 -O -c "import sys, os, compileall; br='%{buildroot}'; compileall.compile %define _udevrulesdir /usr/lib/udev/rules.d Name: virtualbox # ********* If the VB version exceeds 6.0.x, notify the libvirt maintainer!! -Version: 6.0.10 +Version: 6.0.12 Release: 0 Summary: VirtualBox is an Emulator License: GPL-2.0-or-later