From 2d2d07275c8a2d652a221c1cd74d28c2f6f226d5 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 19 Apr 2011 23:31:09 +0100 Subject: bitbake/fetch2/git: Fix a bug where AUTOREV and the git fetcher interact badly Fix a bug where ud.branches were being referenced before it was set by the git fetcher when using AUTOREV. To do this some ordering needed to be changed. This fixes errors like: ERROR: Error parsing /recipes-kernel/linux/rt-tests_git.bb: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception AttributeError: 'FetchData' object has no attribute 'branches' Signed-off-by: Richard Purdie --- bitbake/lib/bb/fetch2/__init__.py | 7 +++++-- bitbake/lib/bb/fetch2/git.py | 9 +++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index 9fec705ad6..f53467e73b 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py @@ -555,6 +555,9 @@ class FetchData(object): if not self.method: raise NoMethodError(url) + if hasattr(self.method, "urldata_init"): + self.method.urldata_init(self, d) + if self.method.supports_srcrev(): self.revisions = {} for name in self.names: @@ -564,8 +567,8 @@ class FetchData(object): if len(self.names) == 1: self.revision = self.revisions[self.names[0]] - if hasattr(self.method, "urldata_init"): - self.method.urldata_init(self, d) + if hasattr(self.method, "fixuprevisions"): + self.method.fixuprevisions(self, d) if "localpath" in self.parm: # if user sets localpath for file, use it instead. diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py index 1679f81511..553e1281f2 100644 --- a/bitbake/lib/bb/fetch2/git.py +++ b/bitbake/lib/bb/fetch2/git.py @@ -72,15 +72,16 @@ class Git(FetchMethod): ud.basecmd = data.getVar("FETCHCMD_git", d, True) or "git" + ud.write_tarballs = (data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True) or "0") != "0" + + ud.localfile = ud.clonedir + + def fixuprevisions(self, ud, d): for name in ud.names: # Ensure anything that doesn't look like a sha256 checksum/revision is translated into one if not ud.revisions[name] or len(ud.revisions[name]) != 40 or (False in [c in "abcdef0123456789" for c in ud.revisions[name]]): ud.revisions[name] = self.latest_revision(ud.url, ud, d, name) - ud.write_tarballs = (data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True) or "0") != "0" - - ud.localfile = ud.clonedir - def localpath(self, url, ud, d): return ud.clonedir -- cgit v1.2.3-54-g00ecf