bitbake: fetch2: export DBUS_SESSION_BUS_ADDRESS to support authentication agents

Some users may want to use authenticated SSH connections with credentials stored
in a keyring, such as gnome-keyring.  These typically need a DBus session bus
connection, so pass DBUS_SESSION_BUS_ADDRESS into the fetcher environment.

To avoid the user needing to set it in their local.conf (which wouldn't be
usable) or adding it to the environment-cleansing whitelist (which would
potentially impact builds) allow the variables being passed to the fetchers to
come from the data store (first) or the original environment (second).

>From bitbake master rev: 20ad1ea87712d042bd5d89ce1957793f7ff71da0

(Bitbake rev: 26379ff2b686313c82af87a3a35b47adbc0183be)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton 2016-05-25 10:20:37 +12:00 committed by Richard Purdie
parent da4bfbef46
commit 829706d3c5

View File

@ -807,13 +807,14 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None):
'GIT_SSL_CAINFO',
'GIT_SMART_HTTP',
'SSH_AUTH_SOCK', 'SSH_AGENT_PID',
'SOCKS5_USER', 'SOCKS5_PASSWD']
'SOCKS5_USER', 'SOCKS5_PASSWD',
'DBUS_SESSION_BUS_ADDRESS']
if not cleanup:
cleanup = []
for var in exportvars:
val = d.getVar(var, True)
val = d.getVar(var, True) or d.getVar("BB_ORIGENV", False).getVar(var, True)
if val:
cmd = 'export ' + var + '=\"%s\"; %s' % (val, cmd)