summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartyn Welch <martyn.welch@ge.com>2010-01-26 14:35:51 +0000
committerRichard Purdie <rpurdie@linux.intel.com>2010-03-22 14:53:26 +0000
commit9a0da388cefb71fa7e9b015772c66625fdb70c1d (patch)
tree1d4212b62329b545f2e3196e95ff0bf94ca656e9
parente17a0bd6c0b1bfba24229166904297eab073a688 (diff)
downloadopenembedded-core-9a0da388cefb71fa7e9b015772c66625fdb70c1d.tar.gz
openembedded-core-9a0da388cefb71fa7e9b015772c66625fdb70c1d.tar.bz2
openembedded-core-9a0da388cefb71fa7e9b015772c66625fdb70c1d.zip
Add FETCHCMD parameter for git
The Git fetcher currently hardwires the git command to "git". Allow the path and any additional wrappers to the Git command to be provided via FETCHCMD functionality, as with some of the other fetchers. If FETCHCMD_git is not define in bitbake.conf, the fetcher defaults to "git". (Bitbake rev: f3afb79ecac30d973a3c62ff6baf28d8b7388a24) Signed-off-by: Malcolm Crossley <malcolm.crossley@ge.com> Signed-off-by: Martyn Welch <martyn.welch@ge.com> Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
-rw-r--r--bitbake/lib/bb/fetch/git.py23
1 files changed, 13 insertions, 10 deletions
diff --git a/bitbake/lib/bb/fetch/git.py b/bitbake/lib/bb/fetch/git.py
index 10b396bb00..f983ccf277 100644
--- a/bitbake/lib/bb/fetch/git.py
+++ b/bitbake/lib/bb/fetch/git.py
@@ -77,6 +77,8 @@ class Git(Fetch):
else:
ud.localfile = data.expand('git_%s%s_%s.tar.gz' % (ud.host, subdirpath.replace('/', '.'), ud.tag), d)
+ ud.basecmd = data.getVar("FETCHCMD_git", d, True) or "git"
+
return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile)
def go(self, loc, ud, d):
@@ -99,16 +101,16 @@ class Git(Fetch):
os.chdir(ud.clonedir)
runfetchcmd("tar -xzf %s" % (repofile), d)
except:
- runfetchcmd("git clone -n %s://%s%s%s %s" % (ud.proto, username, ud.host, ud.path, ud.clonedir), d)
+ runfetchcmd("%s clone -n %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.clonedir), d)
os.chdir(ud.clonedir)
# Remove all but the .git directory
if not self._contains_ref(ud.tag, d):
runfetchcmd("rm * -Rf", 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)
+ runfetchcmd("%s fetch %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.branch), d)
+ runfetchcmd("%s fetch --tags %s://%s%s%s" % (ud.basecmd, ud.proto, username, ud.host, ud.path), d)
+ runfetchcmd("%s prune-packed" % ud.basecmd, d)
+ runfetchcmd("%s pack-redundant --all | xargs -r rm" % ud.basecmd, d)
os.chdir(ud.clonedir)
mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True)
@@ -141,8 +143,8 @@ class Git(Fetch):
bb.mkdirhier(codir)
os.chdir(ud.clonedir)
- runfetchcmd("git read-tree %s%s" % (ud.tag, readpathspec), d)
- runfetchcmd("git checkout-index -q -f --prefix=%s -a" % (coprefix), d)
+ runfetchcmd("%s read-tree %s%s" % (ud.basecmd, ud.tag, readpathspec), d)
+ runfetchcmd("%s checkout-index -q -f --prefix=%s -a" % (ud.basecmd, coprefix), d)
os.chdir(codir)
bb.msg.note(1, bb.msg.domain.Fetcher, "Creating tarball of git checkout")
@@ -155,7 +157,8 @@ class Git(Fetch):
return True
def _contains_ref(self, tag, d):
- output = runfetchcmd("git log --pretty=oneline -n 1 %s -- 2> /dev/null | wc -l" % tag, d, quiet=True)
+ basecmd = data.getVar("FETCHCMD_git", d, True) or "git"
+ output = runfetchcmd("%s log --pretty=oneline -n 1 %s -- 2> /dev/null | wc -l" % (basecmd, tag), d, quiet=True)
return output.split()[0] != "0"
def _revision_key(self, url, ud, d):
@@ -173,7 +176,7 @@ class Git(Fetch):
else:
username = ""
- cmd = "git ls-remote %s://%s%s%s %s" % (ud.proto, username, ud.host, ud.path, ud.branch)
+ cmd = "%s ls-remote %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.branch)
output = runfetchcmd(cmd, d, True)
if not output:
raise bb.fetch.FetchError("Fetch command %s gave empty output\n" % (cmd))
@@ -204,7 +207,7 @@ class Git(Fetch):
if not self._contains_ref(rev, d):
self.go(None, ud, d)
- output = runfetchcmd("git rev-list %s -- 2> /dev/null | wc -l" % rev, d, quiet=True)
+ output = runfetchcmd("%s rev-list %s -- 2> /dev/null | wc -l" % (ud.basecmd, rev), d, quiet=True)
os.chdir(cwd)
buildindex = "%s" % output.split()[0]
le='2006-01-16 11:17:08 +0000'>2006-01-16sylpheed_1.9.12.bb : fix hard coded -I/usr/include that happensGraeme Gregory1 2005-12-06disapproval of revision '1836da10f903d9ee68a7255b7a5d899128f4f43c'Marcin Juszkiewicz1 2005-12-06module-init-tools: prefer 3.2.1 over 3.2-pre4Philipp Zabel1 2006-01-22 09:14:24 +0000'>2006-01-22ixp4xx-kernel: new LED driver in 2.6.15.1John Bowler2 2006-01-21disapproval of revision '0b95bcbd94eecc35400e4a1a8af33317d5f8b411'Oyvind Repvik3 2006-01-21slugos-init: Use tune2fs to mark the root fs with a "unique" labelOyvind Repvik3 2006-01-11slugos-image: remove spurious DEPENDS in confJohn Bowler2 2006-01-09slugos: remove/correct references to openslugJohn Bowler2 2006-01-07slugos: Major rename of common SlugOS files and directories from openslug to ...Rod Whitby11 2006-01-07slugos: Major rename of common SlugOS files and directories from openslug to ...Rod Whitby32