[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