[MacPorts] #17950: dbus patched with launchd support and version dump
MacPorts
noreply at macports.org
Thu Jan 15 01:33:29 PST 2009
#17950: dbus patched with launchd support and version dump
---------------------------------+------------------------------------------
Reporter: jonas.baehr@… | Owner: macports-tickets@…
Type: enhancement | Status: reopened
Priority: Normal | Milestone: Port Enhancements
Component: ports | Version: 1.7.0
Resolution: | Keywords: launchd kde4 x11
Port: dbus |
---------------------------------+------------------------------------------
Comment(by jonas.baehr@…):
Replying to [comment:35 mta@…]:
> Is the log snippet you quote from a case where dbus launched gconfd-2 or
was it already running? I presume it was already running.
Sorry, I messed up server and client here. gconfd-2 was not running, but
the log snipped is from gconf-editor, not gfoncd-2.
> If dbus launches it, then gconfd-2 gets the service address from the
environment variable DBUS_SESSION_BUS_ADDRESS. This is set in
add_bus_environment which is called from bus_activation_activate_service
before it launches gconfd-2. The value for DBUS_SESSION_BUS_ADDRESS is
taken from activation->server_address from the activation struct passed to
bus_activation_activate_service. This is a "launchd:..." type address.
The real question is should it be this type of address or should it be a
"unix:..." style address. I.e., is the bug in the creation of the
activation struct or is it that there needs to be a handler added to
open_funcs in dbus-transport.c for the "launchd:..." address that's in it.
Now we're comming nearer! In fact, the DBUS_SESSION_BUS_ADDRESS evn-var is
treated with priority, to that one can always override launchd. However,
if it's not present, then launchd is asked. That's why it works when
starting gconfd-2 manually (assuming there is ''no'' env-var). If the
client has such an env-var set, it's the correct behaviour to pass it to
the newly starting service.
I think the solution is to ask launchd for the address if
DBUS_SESSION_BUS_ADDRESS is not set, ''or it contains a launchd:
address''. The latter is currently not the case. I'll fix that.
Thanks a lot for your analysis!
--
Ticket URL: <http://trac.macports.org/ticket/17950#comment:36>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list