Package: virtualbox-ose-guest-utils Version: 1.6.2-dfsg-1 Severity: minor Tags: patch
/etc/X11/Xsession.d/98vboxadd-xclient (which is executed as the user
starting the X session) fails to start VBoxClient, because it cannot access
vboxadd, as its device node is created as:
crw-rw---- 1 root root 10, 59 29. Jun 2008 /dev/vboxadd
Furthermore it fails to find VBoxRandR, which is required for dynamic
resolution changes.
The attached patch (against pkg-virtualbox trunk)
"virtualbox-ose-guest-utils_fix-VBoxClient_vboxusers.diff" installs
VBoxRandR to /usr/bin/ and adds an udev rules to create /dev/vboxadd as:
crw-rw---- 1 root vboxusers 10, 59 29. Jun 2008 /dev/vboxadd
to allow members of the vboxusers group to start VBoxClient and make use
os its abilities to do dynamic resolution changes etc. While reusing the
vboxusers group seems to be straight forward, it has the disadvantage that
the group cannot be removed easily on purge (virtualbox-ose.postrm has been
removed).
The other alternative would be introducing yet another group, like
"vboxguests", to allow access to vboxadd, the also attached alternative
patch "virtualbox-ose-guest-utils_fix-VBoxClient_vboxguests.diff" takes
that route, the advantage being that "vboxguests" and "vboxusers" can be
(easily) removed on purge, with the drawback of introducing yet another
system group doing pretty much the same as "vboxusers".
Both patches, and virtualbox-ose-guest-utils_fix-VBoxClient_vboxusers.diff
in particular, have been tested successfully with i386 guests on amd64/
i386 hosts; VBoxClient gets started properly as user through
98vboxadd-xclient and reacts dynamically on window changes (like
<host-key>-f).
Regards
Stefan Lippers-Hollmann
Post scriptum: This might be related to #477554
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.25-9.slh.1-sidux-686 (SMP w/1 CPU core; PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages virtualbox-ose-guest-utils depends on:
ii libc6 2.7-12 GNU C Library: Shared libraries
ii libgcc1 1:4.3.1-3 GCC support library
ii libx11-6 2:1.1.4-2 X11 client-side library
ii libxext6 2:1.0.4-1 X11 miscellaneous extension librar
ii libxmu6 2:1.0.4-1 X11 miscellaneous utility library
ii libxt6 1:1.0.5-3 X11 toolkit intrinsics library
ii pciutils 1:3.0.0-4 Linux PCI Utilities
Versions of packages virtualbox-ose-guest-utils recommends:
ii virtualbox-ose 2.6.25.rev36+1.6.2-dfsg-1 PC virtualization solution modules
ii xserver-xorg-c 2:1.4.2-1 Xorg X server - core server
-- no debconf information
Index: debian/virtualbox-ose-guest-utils.postrm
===================================================================
--- debian/virtualbox-ose-guest-utils.postrm (revision 0)
+++ debian/virtualbox-ose-guest-utils.postrm (revision 0)
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+set -e
+
+case "${1}" in
+ purge)
+ # Removing vboxguests group
+ if [ -x /usr/sbin/delgroup ]
+ then
+ # delgroup may return error status 3 if there is a non-system group
+ # "vboxguests". The postrm should not fail in this case!
+ /usr/sbin/delgroup --quiet --system vboxguests || true
+ fi
+ ;;
+
+ remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`${1}'" >&2
+ exit 1
+ ;;
+esac
+
+#DEBHELPER#
+
+exit 0
Index: debian/virtualbox-ose-guest-utils.postinst
===================================================================
--- debian/virtualbox-ose-guest-utils.postinst (revision 305)
+++ debian/virtualbox-ose-guest-utils.postinst (working copy)
@@ -7,6 +7,19 @@
# do not call this automatically as it might break stuff
# or not even work depending on the X setup
#/usr/lib/virtualbox/x11config.pl
+
+ # Adding vboxguests group
+ if ! getent group vboxguests > /dev/null
+ then
+ addgroup --quiet --system vboxguests
+ fi
+
+ # In case the system is running without inotify tell udev to
+ # reload the rules
+ if [ -x /sbin/udevcontrol ]
+ then
+ /sbin/udevcontrol reload_rules || true
+ fi
;;
abort-upgrade|abort-deconfigure|abort-remove)
Index: debian/rules
===================================================================
--- debian/rules (revision 305)
+++ debian/rules (working copy)
@@ -110,6 +110,9 @@
# This will get installed into the package by dh_installinit
install -m 644 out/obj/src/VBox/Installer/linux/vboxnet.sh debian/$(sname).init
+ # install VBoxRandR into virtualbox-ose-utils, it is needed by VBoxClient
+ install -m 755 src/VBox/Additions/x11/installer/VBoxRandR.sh debian/$(uname)/usr/bin/VBoxRandR
+
# We also need to build a preinst file
sed -e 's/UPSTREAM/"$(upstreamversion)"/' < debian/$(sname).preinst.in > debian/$(sname).preinst
Index: debian/virtualbox-ose-guest-utils.udev
===================================================================
--- debian/virtualbox-ose-guest-utils.udev (revision 0)
+++ debian/virtualbox-ose-guest-utils.udev (revision 0)
@@ -0,0 +1 @@
+KERNEL=="vboxadd", NAME="vboxadd", OWNER="root", GROUP="vboxguests", MODE="0660"
Index: debian/virtualbox-ose-guest-utils.postinst
===================================================================
--- debian/virtualbox-ose-guest-utils.postinst (revision 305)
+++ debian/virtualbox-ose-guest-utils.postinst (working copy)
@@ -7,6 +7,19 @@
# do not call this automatically as it might break stuff
# or not even work depending on the X setup
#/usr/lib/virtualbox/x11config.pl
+
+ # Adding vboxusers group
+ if ! getent group vboxusers > /dev/null
+ then
+ addgroup --quiet --system vboxusers
+ fi
+
+ # In case the system is running without inotify tell udev to
+ # reload the rules
+ if [ -x /sbin/udevcontrol ]
+ then
+ /sbin/udevcontrol reload_rules || true
+ fi
;;
abort-upgrade|abort-deconfigure|abort-remove)
Index: debian/rules
===================================================================
--- debian/rules (revision 305)
+++ debian/rules (working copy)
@@ -110,6 +110,9 @@
# This will get installed into the package by dh_installinit
install -m 644 out/obj/src/VBox/Installer/linux/vboxnet.sh debian/$(sname).init
+ # install VBoxRandR into virtualbox-ose-utils, it is needed by VBoxClient
+ install -m 755 src/VBox/Additions/x11/installer/VBoxRandR.sh debian/$(uname)/usr/bin/VBoxRandR
+
# We also need to build a preinst file
sed -e 's/UPSTREAM/"$(upstreamversion)"/' < debian/$(sname).preinst.in > debian/$(sname).preinst
Index: debian/virtualbox-ose.postrm
===================================================================
--- debian/virtualbox-ose.postrm (revision 305)
+++ debian/virtualbox-ose.postrm (working copy)
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-set -e
-
-case "${1}" in
- purge)
- # Removing vboxusers group
- if [ -x /usr/sbin/delgroup ]
- then
- # delgroup may return error status 3 if there is a non-system group
- # "vboxusers". The postrm should not fail in this case!
- /usr/sbin/delgroup --quiet --system vboxusers || true
- fi
- ;;
-
- remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
-
- ;;
-
- *)
- echo "postrm called with unknown argument \`${1}'" >&2
- exit 1
- ;;
-esac
-
-#DEBHELPER#
-
-exit 0
Index: debian/virtualbox-ose-guest-utils.udev
===================================================================
--- debian/virtualbox-ose-guest-utils.udev (revision 0)
+++ debian/virtualbox-ose-guest-utils.udev (revision 0)
@@ -0,0 +1 @@
+KERNEL=="vboxadd", NAME="vboxadd", OWNER="root", GROUP="vboxusers", MODE="0660"
signature.asc
Description: This is a digitally signed message part.

