Re: Bug#631968: aborts on start (GNU/kFreeBSD)
On Mon, 09 Jul 2012 at 00:10:45 +0100, Steven Chamberlain wrote:
> On 05/07/12 01:05, Simon McVittie wrote:
> > You don't need all of GNOME, but you do need a D-Bus session.
> > [...]
> > $ eval `dbus-launch --sh-syntax`
> > $ xvfb-run gnome-terminal -e "mkdir /tmp/hello"
> With a DBUS session running (now testing from a graphical X11
> environment) I can reproduce the original problem on kfreebsd-amd64
(I can't help wondering why anyone would ever try to use an X11 terminal
emulator *without* a graphical X11 session...)
I wonder whether this is to do with GDBus not supporting credentials-passing
for authentication on kFreeBSD. It does support credentials-passing on
FreeBSD, and it's the same kernel, so the same code ought to work; please
try the attached patch for src:glib2.0? If successful, this can be tagged
'patch' and reassigned to libglib2.0-0.
I tried to test it on a kfreebsd-i386 virtual machine, but that VM seems
to be excessively slow, and fails to compile the GLib documentation, so I
gave up after a few attempts.
I have no idea how credentials-passing works on Hurd, but Hurd isn't
release-critical, so that can wait (if my theory is correct, please
clone the bug for Hurd support). If Hurd porters want to make GDBus
work, grepping for __FreeBSD__ is probably a good start. GLib appears to
support three different flavours of credentials-passing (for Linux, FreeBSD
and OpenBSD) so if Hurd resembles one of those, it should be possible to
make it work; the src:dbus build logs claim it has SCM_RIGHTS.
In addition to credentials-passing across Unix sockets, D-Bus supports
an X11-like "magic cookie" mechanism (normally only used for TCP sockets),
but that relies on the connecting user having access to their "official"
home directory according to getent passwd, so it might not be useful
in all cases (for instance, the mini-GNOME-session run by the gdm3 greeter
can't necessarily rely on that).