Accepting request 787617 from home:lwfinger:branches:Virtualization
- With version 6.1.4 of VB, the bidirectional clipboard part of VBoxClient for guest systems is failing. A patch is provided at https://www.virtualbox.org/ticket/19336. These changes have been added to file "VirtualBox-6.1.4-VBoxClient-vmsvga-x11-crash.patch". This fixes boo #1167403 "VBoxClient --clipboard dies". - Update the wrapper that starts the UI for VirtualBox to check the version of the extpack that is installed. If no pack is installed or if the license is not current, the new code does nothing. If there is a current license and the installed pack does not match the running version of VB, then the script downloads and installs the new version. File "update-extpack.sh" is added. OBS-URL: https://build.opensuse.org/request/show/787617 OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=540
This commit is contained in:
parent
9eaa6430bd
commit
ee1b9cadf2
@ -1,6 +1,7 @@
|
||||
diff -up VirtualBox-6.1.4/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp~ VirtualBox-6.1.4/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp
|
||||
--- VirtualBox-6.1.4/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp~ 2020-02-18 18:13:08.000000000 +0100
|
||||
+++ VirtualBox-6.1.4/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp 2020-03-03 16:27:49.947341705 +0100
|
||||
Index: VirtualBox-6.1.4/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-6.1.4.orig/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp
|
||||
+++ VirtualBox-6.1.4/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp
|
||||
@@ -100,16 +100,19 @@ static void x11Connect(struct X11CONTEXT
|
||||
{
|
||||
XCloseDisplay(pContext->pDisplay);
|
||||
@ -21,3 +22,44 @@ diff -up VirtualBox-6.1.4/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp
|
||||
}
|
||||
pContext->rootWindow = DefaultRootWindow(pContext->pDisplay);
|
||||
}
|
||||
Index: VirtualBox-6.1.4/src/VBox/Additions/x11/VBoxClient/clipboard.cpp
|
||||
===================================================================
|
||||
--- VirtualBox-6.1.4.orig/src/VBox/Additions/x11/VBoxClient/clipboard.cpp
|
||||
+++ VirtualBox-6.1.4/src/VBox/Additions/x11/VBoxClient/clipboard.cpp
|
||||
@@ -215,7 +215,6 @@ DECLCALLBACK(void) ShClX11RequestFromX11
|
||||
*
|
||||
* @returns VBox status code.
|
||||
*/
|
||||
-#if 0
|
||||
static int vboxClipboardConnect(void)
|
||||
{
|
||||
LogFlowFuncEnter();
|
||||
@@ -245,7 +244,6 @@ static int vboxClipboardConnect(void)
|
||||
LogFlowFuncLeaveRC(rc);
|
||||
return rc;
|
||||
}
|
||||
-#endif
|
||||
|
||||
/**
|
||||
* The main loop of our clipboard reader.
|
||||
@@ -469,7 +467,7 @@ static int run(struct VBCLSERVICE **ppIn
|
||||
RT_NOREF(ppInterface, fDaemonised);
|
||||
|
||||
/* Initialise the guest library. */
|
||||
- int rc = 0; //vboxClipboardConnect();
|
||||
+ int rc = vboxClipboardConnect();
|
||||
if (RT_SUCCESS(rc))
|
||||
{
|
||||
#ifdef VBOX_WITH_SHARED_CLIPBOARD_FUSE
|
||||
@@ -477,9 +475,9 @@ static int run(struct VBCLSERVICE **ppIn
|
||||
if (RT_SUCCESS(rc))
|
||||
{
|
||||
#endif
|
||||
- RTThreadSleep(60 * 1000);
|
||||
+ // RTThreadSleep(60 * 1000);
|
||||
|
||||
- //rc = vboxClipboardMain();
|
||||
+ rc = vboxClipboardMain();
|
||||
|
||||
#ifdef VBOX_WITH_SHARED_CLIPBOARD_FUSE
|
||||
int rc2 = vboxClipboardFUSEStop();
|
||||
|
64
update-extpack.sh
Normal file
64
update-extpack.sh
Normal file
@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script to update extpack
|
||||
# The idea for this method and the original code came from Larry Len Rainey.
|
||||
#
|
||||
# This implementation by Larry Finger
|
||||
|
||||
# Define some symbols and determine the current version of VB
|
||||
|
||||
VBOXMANAGE=/usr/bin/VBoxManage
|
||||
AWK=/usr/bin/awk
|
||||
GREP=/usr/bin/grep
|
||||
WGET=/usr/bin/wget
|
||||
VBOX_VERSION=`$VBOXMANAGE --version | $AWK -F_ {'print $1'}`
|
||||
|
||||
# Define a symbol for the name of the extpack matching the VB version
|
||||
VBOX_EXT=`echo Oracle_VM_VirtualBox_Extension_Pack-${VBOX_VERSION}.vbox-extpack`
|
||||
|
||||
# Full path to extpack license file
|
||||
LICENSE_PATH="/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack/ExtPack-license.rtf"
|
||||
|
||||
# Determine the installed version of extpack, if any.
|
||||
EXTPACK_CURRENT=`$VBOXMANAGE list extpacks | $GREP -A1 "Oracle VM VirtualBox Extension Pack" | $GREP Version | $AWK -F\ {'print $2'}`
|
||||
|
||||
# The extpacks are licensed under a Personal Use and Evaluation License
|
||||
# At some point, the user must agree to the conditions of that license.
|
||||
# If no extpack is installed on this system, then there is no agreement,
|
||||
# thus this script cannot install the extpack.
|
||||
#
|
||||
# This situation applies to new installations that could conform to the license,
|
||||
# but more importantly, it handles commercial setups that have not purchased
|
||||
# the necessary license.
|
||||
# Check if extpack is currently installed. If not exit
|
||||
if [ -z $EXTPACK_CURRENT ]; then
|
||||
exit 0
|
||||
fi
|
||||
#
|
||||
# An extpack has been installed on this system. Now we need to check if
|
||||
# it was issued under the current version of the license.
|
||||
|
||||
#Note to maintainers: The "version 10" in the next command must be changed
|
||||
# manually when Oracle revises the license.
|
||||
|
||||
LICENSE_CHECK=`$GREP "version 10" $LICENSE_PATH | $AWK -F\ {'print $2'}`
|
||||
if [ -z $LICENSE_CHECK ]; then
|
||||
# New license version does not match the current installation.
|
||||
# The user will need to agree to the new version, thus we do nothing here.
|
||||
exit 0
|
||||
fi
|
||||
if [ $VBOX_VERSION == $EXTPACK_CURRENT ]; then
|
||||
# The extpack currently installed matches - we are done
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# A new version of extpack is needed - switch to directory that can be written, and download it
|
||||
pushd ~ > /dev/null 2>&1
|
||||
$WGET http://download.virtualbox.org/virtualbox/$VBOX_VERSION/$VBOX_EXT > /dev/null 2>&1
|
||||
|
||||
# Now install it
|
||||
echo Y | $VBOXMANAGE extpack install --replace $VBOX_EXT > /dev/null 2>&1
|
||||
|
||||
# Clean up by deleting downloaded file and restoring the original working directory
|
||||
rm -f $VBOX_EXT
|
||||
popd ~ > /dev/null 2>&1
|
@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
export QT_NO_KDE_INTEGRATION=1
|
||||
|
||||
# make certain that the user/group combination is valid
|
||||
/usr/bin/id -nG | grep -v -e "root" -e "vboxusers" >/dev/null && /usr/lib/virtualbox/VBoxPermissionMessage && exit
|
||||
#
|
||||
@ -22,6 +23,7 @@ devrules()
|
||||
rm -f ~/.vbox/enable
|
||||
fi
|
||||
}
|
||||
|
||||
# Start of main routine
|
||||
#
|
||||
# Ensure that ~/.vbox exists
|
||||
@ -54,6 +56,8 @@ if [ -f ~/.vbox/disable ] ; then
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
# Check if extpack needs to be updated
|
||||
/usr/bin/update-extpack.sh
|
||||
# Check that /usr/lib/virtualbox/VirtualBoxVM has SUID permissions
|
||||
PERM=$(ls -l /usr/lib/virtualbox/VirtualBoxVM | grep rwsr)
|
||||
if [ -z "$PERM" ]
|
||||
|
@ -1,3 +1,22 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 24 01:51:36 UTC 2020 - Larry Finger <Larry.Finger@gmail.com>
|
||||
|
||||
- With version 6.1.4 of VB, the bidirectional clipboard part of VBoxClient
|
||||
for guest systems is failing. A patch is provided at
|
||||
https://www.virtualbox.org/ticket/19336. These changes have been added
|
||||
to file "VirtualBox-6.1.4-VBoxClient-vmsvga-x11-crash.patch". This
|
||||
fixes boo #1167403 "VBoxClient --clipboard dies".
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Mar 22 20:36:40 UTC 2020 - Larry Finger <Larry.Finger@gmail.com>
|
||||
|
||||
- Update the wrapper that starts the UI for VirtualBox to check the
|
||||
version of the extpack that is installed. If no pack is installed
|
||||
or if the license is not current, the new code does nothing. If there
|
||||
is a current license and the installed pack does not match the
|
||||
running version of VB, then the script downloads and installs the
|
||||
new version. File "update-extpack.sh" is added.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 16 21:32:05 UTC 2020 - Larry Finger <Larry.Finger@gmail.com>
|
||||
|
||||
|
@ -67,6 +67,7 @@ Source3: %{name}-60-vboxguest.rules
|
||||
Source4: %{name}-default.virtualbox
|
||||
Source5: %{name}-kmp-files
|
||||
Source7: %{name}-kmp-preamble
|
||||
Source8: update-extpack.sh
|
||||
Source9: %{name}-wrapper.sh
|
||||
Source10: %{name}-LocalConfig.kmk
|
||||
Source11: %{name}-60-vboxdrv.rules
|
||||
@ -717,7 +718,7 @@ install -m 644 out/linux.*/release/bin/VBox.png %{buildroot}%{_datadir}/pixmaps/
|
||||
install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/default/virtualbox
|
||||
#install wrapper script
|
||||
install -m 644 %{SOURCE9} %{buildroot}%{_bindir}/VirtualBox
|
||||
|
||||
install -m 644 %{SOURCE8} %{buildroot}%{_bindir}/update-extpack.sh
|
||||
# Service files to load kernel modules on boot
|
||||
install -m 0644 %{SOURCE14} %{buildroot}%{_unitdir}/vboxdrv.service
|
||||
ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxdrv
|
||||
@ -1004,6 +1005,7 @@ export DISABLE_RESTART_ON_UPDATE=yes
|
||||
%{_vbox_instdir}/VirtualBox
|
||||
#wrapper script is in bindir
|
||||
%attr(0755,root,root) %{_bindir}/VirtualBox
|
||||
%attr(0755,root,root) %{_bindir}/update-extpack.sh
|
||||
#rules fixing script is in /sbin
|
||||
%attr(0755,root,root) /sbin/vbox-fix-usb-rules.sh
|
||||
#ldd shows libQt* dependency
|
||||
|
Loading…
Reference in New Issue
Block a user