From c1a12b7d20c95391f8d56962fafb1f0bfe7d1918 Mon Sep 17 00:00:00 2001 From: Robert Bragg Date: Wed, 3 Dec 2008 16:01:39 +0000 Subject: Adds username support to the git fetcher, and exports SSH_AGENT_PID + SSH_AUTH_SOCK The SSH_AGENT_PID + SSH_AUTH_SOCK environment variables are needed if you are using ssh-agent to hold passwords for your ssh keys. --- bitbake-dev/lib/bb/fetch/__init__.py | 2 +- bitbake-dev/lib/bb/fetch/git.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'bitbake-dev') diff --git a/bitbake-dev/lib/bb/fetch/__init__.py b/bitbake-dev/lib/bb/fetch/__init__.py index 9ca5556089..c9efe6beae 100644 --- a/bitbake-dev/lib/bb/fetch/__init__.py +++ b/bitbake-dev/lib/bb/fetch/__init__.py @@ -274,7 +274,7 @@ def runfetchcmd(cmd, d, quiet = False): # rather than host provided # Also include some other variables. # FIXME: Should really include all export varaiables? - exportvars = ['PATH', 'GIT_PROXY_HOST', 'GIT_PROXY_PORT', 'GIT_CONFIG', 'http_proxy', 'ftp_proxy'] + exportvars = ['PATH', 'GIT_PROXY_HOST', 'GIT_PROXY_PORT', 'GIT_CONFIG', 'http_proxy', 'ftp_proxy', 'SSH_AUTH_SOCK', 'SSH_AGENT_PID'] for var in exportvars: val = data.getVar(var, d, True) diff --git a/bitbake-dev/lib/bb/fetch/git.py b/bitbake-dev/lib/bb/fetch/git.py index aa26a500c7..26f2b47f2a 100644 --- a/bitbake-dev/lib/bb/fetch/git.py +++ b/bitbake-dev/lib/bb/fetch/git.py @@ -66,6 +66,11 @@ class Git(Fetch): bb.msg.debug(1, bb.msg.domain.Fetcher, "%s already exists (or was stashed). Skipping git checkout." % ud.localpath) return + if ud.user: + username = ud.user + '@' + else: + username = "" + gitsrcname = '%s%s' % (ud.host, ud.path.replace('/', '.')) repofilename = 'git_%s.tar.gz' % (gitsrcname) @@ -81,13 +86,13 @@ class Git(Fetch): os.chdir(repodir) runfetchcmd("tar -xzf %s" % (repofile), d) else: - runfetchcmd("git clone -n %s://%s%s %s" % (ud.proto, ud.host, ud.path, repodir), d) + runfetchcmd("git clone -n %s://%s%s%s %s" % (ud.proto, username, ud.host, ud.path, repodir), d) os.chdir(repodir) # Remove all but the .git directory runfetchcmd("rm * -Rf", d) - runfetchcmd("git fetch %s://%s%s %s" % (ud.proto, ud.host, ud.path, ud.branch), d) - runfetchcmd("git fetch --tags %s://%s%s" % (ud.proto, ud.host, ud.path), d) + runfetchcmd("git fetch %s://%s%s%s %s" % (ud.proto, username, ud.host, ud.path, ud.branch), d) + runfetchcmd("git fetch --tags %s://%s%s%s" % (ud.proto, username, ud.host, ud.path), d) runfetchcmd("git prune-packed", d) runfetchcmd("git pack-redundant --all | xargs -r rm", d) -- cgit 1.2.3-korg