]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
fetch2: export DBUS_SESSION_BUS_ADDRESS to support authentication agents
authorRoss Burton <ross.burton@intel.com>
Fri, 22 Apr 2016 15:56:50 +0000 (16:56 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 26 Apr 2016 10:21:29 +0000 (11:21 +0100)
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).

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
lib/bb/fetch2/__init__.py

index 1fa67020c498fc59435709d0a242b2adf6a395ad..e8fbe89a3a452f9204967a9a3f6e9d3cf6fa5cae 100644 (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)