D-Bus' external authentication method is currently broken under NetBSD. Due to
the lack of any alternative authentication scheme for the system service
(DBUS_COOKIE_SHA1 is broken), it is impossible to use the D-Bus *system* daemon
under that operating system. This has not been detected until now because there
were no applications under NetBSD that needed it, but recent efforts to port HAL
exposed the problem.
According to D-Bus verbose messages, the external method is broken because there
aren't "socket credentials" available. After some investigation, NetBSD does
support socket credentials through the LOCAL_CREDS feature, but this is not
implemented in D-Bus.
The attached patch implements support for LOCAL_CREDS in a way that does not
break protocol compatibility. This was discussed in the mailing list; thanks go
to Havoc Pennington for discovering the trick to achieve it. Hopefully the
changes are correct now but if they are not, please let me know :-)
Created attachment 6729 [details] [review]
Implementation of LOCAL_CREDS support.
Patch looks good. Committed with changes due to teh dbus-sysdeps-unix split.