[Pkg-utopia-maintainers] Bug#774626: Xsession.d/75dbus_dbus-launch could export latest environment variables like 90gpg-agent

chrysn chrysn at fsfe.org
Mon Jan 5 14:00:28 UTC 2015


Package: dbus-x11
Version: 1.8.12-3
Severity: wishlist
File: /etc/X11/Xsession.d/75dbus_dbus-launch

the current behavior of the Xsession launched session dbus is to spawn a
session dbus per X session, and announce the connecting address via
environment variables to the session.

therefore, users of session multiplexers like tmux or screen can't use
dbus in multiplexer sessions that have outlived their initial x session
any more. (as the DBUS_SESSION_BUS_ADDRESS variable is set, new
processes won't try to autolaunch a session bus).

the trivial way to circumvent that is to unset DBUS_SESSION_BUS in all
multiplexed sessions, and to rely on `dbus-launch --autolaunch ...` to
correctly pull the running session out of X11. this has the disadvantage
of triggering a dbus-launch invocation on every dbus connection, and of
creating separate instances when a different DISPLAY is used.

i'd like to suggest taking over the mechanism employed by
Xsession/90gpg-agent: it starts a gpg-agent if none is present by
prefixing it to STARTUP (as does dbus), but then stores the environment
variables in ~/.gnupg/gpg-agent-info-${hostname}. gpg-agent has an
option for that, but that could either be added to dbus-launch or
crafted into the STARTUP line.

as a result, one can easily assign the environment variables of the most
recently spawned session to a process by sourcing ther resuling
environment shell script (eg from ~/.profile), but the default mechanism
for different daemons for different sessions (which i presume is the
intention behind not using a well-known file in $XDG_RUN_DIR for both
dbus and gpg-agent) are still the working default.

(as a workaround, i've added the following line to my i3 config, but
that might not be possibe with every desktop enviromnemnt:

    `exec_always sh -c "env |grep ^DBUS_SESSION_BUS_ADDRESS > $XDG_RUNTIME_DIR/dbus-environment"

)

best regards
chrysn

ps. i've found a reference to ~/.dbus/session-bus/ in the dbus-launch
man page, but the files there on my workstation are all stale. is that
mechanism stil in place?

-- System Information:
Debian Release: 8.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages dbus-x11 depends on:
ii  dbus      1.8.12-3
ii  libc6     2.19-13
ii  libx11-6  2:1.6.2-3

dbus-x11 recommends no packages.

dbus-x11 suggests no packages.

-- no debconf information

-- 
To use raw power is to make yourself infinitely vulnerable to greater powers.
  -- Bene Gesserit axiom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-utopia-maintainers/attachments/20150105/59428d14/attachment.sig>


More information about the Pkg-utopia-maintainers mailing list