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