[MacPorts] #47741: dbus @1.8.16: update to 1.8.18
MacPorts
noreply at macports.org
Wed Feb 3 15:55:45 PST 2016
#47741: dbus @1.8.16: update to 1.8.18
-----------------------------+------------------------
Reporter: mschamschula@… | Owner: mcalhoun@…
Type: update | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.3.3
Resolution: | Keywords: haspatch
Port: dbus |
-----------------------------+------------------------
Comment (by devans@…):
Actually all apps were effected if I reloaded (launchdctl unload/load)
when changing version.
But after a lot of head scratching, I finally came up with an answer to
what's going on.
First an example using eog:
Running dbus 1.8.16 eog emits no warning/error messages to the console.
However, if I install 1.10.6, I get the following:
{{{
$ eog
** (eog:92151): WARNING **: Error retrieving accessibility bus address:
org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.a11y.Bus exited
with status 1
(eog:92151): dconf-WARNING **: failed to commit changes to dconf:
Exhausted all available authentication mechanisms (tried: EXTERNAL,
DBUS_COOKIE_SHA1, ANONYMOUS) (available: EXTERNAL, DBUS_COOKIE_SHA1,
ANONYMOUS)
(eog:92151): dconf-WARNING **: failed to commit changes to dconf:
Exhausted all available authentication mechanisms (tried: EXTERNAL,
DBUS_COOKIE_SHA1, ANONYMOUS) (available: EXTERNAL, DBUS_COOKIE_SHA1,
ANONYMOUS)
}}}
All 3 of these are the result of attempts to access the session dbus that
fail due to authentication issues.
The key to the problem is the word EXTERNAL. I finally figured out that
the default session.conf file now contains the following:
{{{
<!-- On Unix systems, the most secure authentication mechanism is
EXTERNAL, which uses credential-passing over Unix sockets.
This authentication mechanism is not available on Windows,
is not suitable for use with the tcp: or nonce-tcp: transports,
and will not work on obscure flavours of Unix that do not have
a supported credentials-passing mechanism. On those
platforms/transports,
comment out the <auth> element to allow fallback to DBUS_COOKIE_SHA1.
-->
<auth>EXTERNAL</auth>
}}}
When this authentication method is specified, dbus expects any client to
authenticate using an appropriate protocol over the dbus socket. eog does
not do this. In fact, I haven't found ANY app let alone any GNOME app
that does. So this is a show stopper for most apps attempting to access
the session bus.
Commenting out this line as suggested in the comments restores the
previous (successful) dbus behavior. (Don't forget to
unload/load again).
The value of this line (whether it is commented out or not) is
accomplished by setting the substitution variable
DBUS_SESSION_CONF_MAYBE_AUTH_EXTERNAL during configuration. Attached is a
patch that updates port dbus to 1.10.6 using an updated patch-
configure.diff that diables EXTERNAL authentication by default on darwin
platforms.
Using the updated 1.10.6 port, apps using the session dbus run as expected
out of the box (for me at least).
Sorry it took me so long to tumble to what was going on.
--
Ticket URL: <https://trac.macports.org/ticket/47741#comment:12>
MacPorts <https://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list