1
0
forked from pool/virtualbox

Accepting request 787618 from Virtualization

OBS-URL: https://build.opensuse.org/request/show/787618
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/virtualbox?expand=0&rev=194
This commit is contained in:
Dominique Leuenberger 2020-03-24 21:29:46 +00:00 committed by Git OBS Bridge
commit 9ab1f2c1d6
5 changed files with 135 additions and 4 deletions

View File

@ -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 Index: 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 --- 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 @@ -100,16 +100,19 @@ static void x11Connect(struct X11CONTEXT
{ {
XCloseDisplay(pContext->pDisplay); 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); 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
View 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

View File

@ -1,5 +1,6 @@
#!/bin/bash #!/bin/bash
export QT_NO_KDE_INTEGRATION=1 export QT_NO_KDE_INTEGRATION=1
# make certain that the user/group combination is valid # 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 /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 rm -f ~/.vbox/enable
fi fi
} }
# Start of main routine # Start of main routine
# #
# Ensure that ~/.vbox exists # Ensure that ~/.vbox exists
@ -54,6 +56,8 @@ if [ -f ~/.vbox/disable ] ; then
fi fi
fi fi
fi fi
# Check if extpack needs to be updated
/usr/bin/update-extpack.sh
# Check that /usr/lib/virtualbox/VirtualBoxVM has SUID permissions # Check that /usr/lib/virtualbox/VirtualBoxVM has SUID permissions
PERM=$(ls -l /usr/lib/virtualbox/VirtualBoxVM | grep rwsr) PERM=$(ls -l /usr/lib/virtualbox/VirtualBoxVM | grep rwsr)
if [ -z "$PERM" ] if [ -z "$PERM" ]

View File

@ -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> Mon Mar 16 21:32:05 UTC 2020 - Larry Finger <Larry.Finger@gmail.com>

View File

@ -67,6 +67,7 @@ Source3: %{name}-60-vboxguest.rules
Source4: %{name}-default.virtualbox Source4: %{name}-default.virtualbox
Source5: %{name}-kmp-files Source5: %{name}-kmp-files
Source7: %{name}-kmp-preamble Source7: %{name}-kmp-preamble
Source8: update-extpack.sh
Source9: %{name}-wrapper.sh Source9: %{name}-wrapper.sh
Source10: %{name}-LocalConfig.kmk Source10: %{name}-LocalConfig.kmk
Source11: %{name}-60-vboxdrv.rules 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 -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/default/virtualbox
#install wrapper script #install wrapper script
install -m 644 %{SOURCE9} %{buildroot}%{_bindir}/VirtualBox install -m 644 %{SOURCE9} %{buildroot}%{_bindir}/VirtualBox
install -m 644 %{SOURCE8} %{buildroot}%{_bindir}/update-extpack.sh
# Service files to load kernel modules on boot # Service files to load kernel modules on boot
install -m 0644 %{SOURCE14} %{buildroot}%{_unitdir}/vboxdrv.service install -m 0644 %{SOURCE14} %{buildroot}%{_unitdir}/vboxdrv.service
ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxdrv ln -s -f %{_sbindir}/service %{buildroot}%{_sbindir}/rcvboxdrv
@ -1004,6 +1005,7 @@ export DISABLE_RESTART_ON_UPDATE=yes
%{_vbox_instdir}/VirtualBox %{_vbox_instdir}/VirtualBox
#wrapper script is in bindir #wrapper script is in bindir
%attr(0755,root,root) %{_bindir}/VirtualBox %attr(0755,root,root) %{_bindir}/VirtualBox
%attr(0755,root,root) %{_bindir}/update-extpack.sh
#rules fixing script is in /sbin #rules fixing script is in /sbin
%attr(0755,root,root) /sbin/vbox-fix-usb-rules.sh %attr(0755,root,root) /sbin/vbox-fix-usb-rules.sh
#ldd shows libQt* dependency #ldd shows libQt* dependency