From dcf91383e801fc80fba3cce6e5d1862306c0f1a6 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: May 20 2020 19:39:26 +0000 Subject: Add a vboxclient.service which runs VBoxClient --vwsvga when using the VMSVGA virtual GPU, this fixes resizing in wayland sessions (rhbz 1789545) Drop VBoxClient --vwsvga-x11 from VBoxClient-all, it is not necessary now that we run VBoxClient --vwsvga as service and it was breaking resize support with the VBoxSVGA virtual GPU (rhbz 1789545) Drop ExecStartPre modprove vboxvideo vboxsf from vboxservice.service, this is not necessary, they will be loaded automatically --- diff --git a/VirtualBox-5.2.10-xclient.patch b/VirtualBox-5.2.10-xclient.patch index 920b569..6d81d61 100644 --- a/VirtualBox-5.2.10-xclient.patch +++ b/VirtualBox-5.2.10-xclient.patch @@ -1,6 +1,6 @@ --- ./src/VBox/Additions/x11/Installer/98vboxadd-xclient.orig 2020-05-14 19:33:50.000000000 +0100 +++ ./src/VBox/Additions/x11/Installer/98vboxadd-xclient 2020-05-16 00:03:45.221363282 +0100 -@@ -21,15 +21,9 @@ for i in $HOME/.vboxclient-*.pid; do +@@ -21,18 +21,11 @@ for i in $HOME/.vboxclient-*.pid; do test -w $i || rm -f $i done @@ -19,3 +19,6 @@ /usr/bin/VBoxClient --clipboard /usr/bin/VBoxClient --checkhostversion /usr/bin/VBoxClient --seamless + /usr/bin/VBoxClient --draganddrop +- /usr/bin/VBoxClient --vmsvga-x11 # In case VMSVGA emulation is enabled + fi diff --git a/VirtualBox-60-vboxguest.rules b/VirtualBox-60-vboxguest.rules index 061eec0..d804611 100644 --- a/VirtualBox-60-vboxguest.rules +++ b/VirtualBox-60-vboxguest.rules @@ -1,2 +1,4 @@ KERNEL=="vboxguest", NAME="vboxguest", OWNER="vboxadd", MODE="0660" KERNEL=="vboxuser", NAME="vboxuser", OWNER="vboxadd", MODE="0666" + +ACTION=="add|change", SUBSYSTEM=="drm", KERNEL=="card[0-9]", SUBSYSTEMS=="pci", ATTRS{vendor}=="0x15ad", ATTRS{device}=="0x0405", TAG+="systemd", ENV{SYSTEMD_WANTS}="vboxclient.service" diff --git a/vboxclient.service b/vboxclient.service new file mode 100644 index 0000000..eda5913 --- /dev/null +++ b/vboxclient.service @@ -0,0 +1,8 @@ +[Unit] +Description=VirtualBox guest VMSVGA resize client +ConditionVirtualization=|oracle + +[Service] +Type=simple +ExecStart=/usr/bin/VBoxClient -f --vmsvga +Restart=on-failure diff --git a/vboxservice.service b/vboxservice.service index 24e9b9b..8dcbf03 100644 --- a/vboxservice.service +++ b/vboxservice.service @@ -3,11 +3,10 @@ Description=VirtualBox guest services ConditionVirtualization=|oracle [Service] +Type=simple ExecStartPre=-/usr/bin/modprobe vboxguest -ExecStartPre=-/usr/bin/modprobe vboxvideo -ExecStartPre=-/usr/bin/modprobe vboxsf -#ExecStartPre=-/usr/bin/VBoxClient --vmsvga ExecStart=/usr/sbin/VBoxService -f +Restart=on-failure [Install] WantedBy=multi-user.target diff --git a/virtualbox-guest-additions.spec b/virtualbox-guest-additions.spec index 832f549..d0c8a9c 100644 --- a/virtualbox-guest-additions.spec +++ b/virtualbox-guest-additions.spec @@ -2,7 +2,7 @@ Name: virtualbox-guest-additions Version: 6.1.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: VirtualBox Guest Additions License: GPLv2 or (GPLv2 and CDDL) URL: https://www.virtualbox.org/wiki/VirtualBox @@ -11,10 +11,13 @@ Source0: https://download.virtualbox.org/virtualbox/%{version}/VirtualBox-%{v Source1: vboxservice.service Source2: 96-vbox.preset Source3: VirtualBox-60-vboxguest.rules +Source4: vboxclient.service # Mainline vboxsf uses an option string rather then a custom binary data struct Patch2: 0001-VBoxServiceAutoMount-Change-Linux-mount-code-to-use-.patch # Do not show an error dialog when not running under vbox +# Do not start VBoxClient --vmsvga-x11, we run VBoxClient --vmsvga as +# a systemd service, this works with both Wayland and Xorg based sessions Patch3: VirtualBox-5.2.10-xclient.patch BuildRequires: gcc-c++ @@ -133,6 +136,7 @@ desktop-file-validate \ install -p -m 0644 -D %{SOURCE1} %{buildroot}%{_unitdir}/vboxservice.service install -p -m 0644 -D %{SOURCE2} %{buildroot}%{_presetdir}/96-vbox.preset install -p -m 0644 -D %{SOURCE3} %{buildroot}%{_udevrulesdir}/60-vboxguest.rules +install -p -m 0644 -D %{SOURCE4} %{buildroot}%{_unitdir}/vboxclient.service %pre @@ -144,12 +148,15 @@ getent passwd vboxadd >/dev/null || \ useradd -r -g 1 -d /var/run/vboxadd -s /sbin/nologin vboxadd 2>&1 %post +%systemd_post vboxclient.service %systemd_post vboxservice.service %preun +%systemd_preun vboxclient.service %systemd_preun vboxservice.service %postun +%systemd_postun_with_restart vboxclient.service %systemd_postun_with_restart vboxservice.service @@ -162,12 +169,22 @@ getent passwd vboxadd >/dev/null || \ %{_libdir}/security/pam_vbox.so %{_sysconfdir}/X11/xinit/xinitrc.d/98vboxadd-xclient.sh %{_sysconfdir}/xdg/autostart/vboxclient.desktop +%{_unitdir}/vboxclient.service %{_unitdir}/vboxservice.service %{_presetdir}/96-vbox.preset %{_udevrulesdir}/60-vboxguest.rules %changelog +* Wed May 20 2020 Hans de Goede - 6.1.8-2 +- Add a vboxclient.service which runs VBoxClient --vwsvga when using the + VMSVGA virtual GPU, this fixes resizing in wayland sessions (rhbz 1789545) +- Drop VBoxClient --vwsvga-x11 from VBoxClient-all, it is not necessary + now that we run VBoxClient --vwsvga as service and it was breaking resize + support with the VBoxSVGA virtual GPU (rhbz 1789545) +- Drop ExecStartPre modprove vboxvideo vboxsf from vboxservice.service, + this is not necessary, they will be loaded automatically + * Sat May 16 2020 Sérgio Basto - 6.1.8-1 - Update Virtualbox Guest Additions to 6.1.8