From: Richard Purdie <[email protected]> The ordering constrains on the urldata_init functions are not straight forward. To avoid further problems, create a helper function to setup the source revisions which the init functions can all at the appropriate point.
(From Poky rev: c4371138f7444ecaa1fdd2b1ee4949fbc819f886) Signed-off-by: Richard Purdie <[email protected]> Signed-off-by: Martin Jansa <[email protected]> --- lib/bb/fetch2/__init__.py | 21 +++++++++------------ lib/bb/fetch2/bzr.py | 2 ++ lib/bb/fetch2/git.py | 3 ++- lib/bb/fetch2/hg.py | 2 ++ lib/bb/fetch2/svn.py | 2 ++ 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py index c515a6d..0bb3678 100644 --- a/lib/bb/fetch2/__init__.py +++ b/lib/bb/fetch2/__init__.py @@ -554,18 +554,6 @@ class FetchData(object): if hasattr(self.method, "urldata_init"): self.method.urldata_init(self, d) - if self.method.supports_srcrev(): - self.revisions = {} - for name in self.names: - self.revisions[name] = srcrev_internal_helper(self, d, name) - - # add compatibility code for non name specified case - if len(self.names) == 1: - self.revision = self.revisions[self.names[0]] - - if hasattr(self.method, "fixuprevisions"): - self.method.fixuprevisions(self, d) - if "localpath" in self.parm: # if user sets localpath for file, use it instead. self.localpath = self.parm["localpath"] @@ -579,6 +567,15 @@ class FetchData(object): self.donestamp = basepath + '.done' self.lockfile = basepath + '.lock' + def setup_revisons(self, d): + self.revisions = {} + for name in self.names: + self.revisions[name] = srcrev_internal_helper(self, d, name) + + # add compatibility code for non name specified case + if len(self.names) == 1: + self.revision = self.revisions[self.names[0]] + def setup_localpath(self, d): if not self.localpath: self.localpath = self.method.localpath(self.url, self, d) diff --git a/lib/bb/fetch2/bzr.py b/lib/bb/fetch2/bzr.py index 04a9087..0d10eb4 100644 --- a/lib/bb/fetch2/bzr.py +++ b/lib/bb/fetch2/bzr.py @@ -45,6 +45,8 @@ class Bzr(FetchMethod): relpath = self._strip_leading_slashes(ud.path) ud.pkgdir = os.path.join(data.expand('${BZRDIR}', d), ud.host, relpath) + ud.setup_revisons(d) + if not ud.revision: ud.revision = self.latest_revision(ud.url, ud, d) diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py index ec27f13..811acbf 100644 --- a/lib/bb/fetch2/git.py +++ b/lib/bb/fetch2/git.py @@ -76,7 +76,8 @@ class Git(FetchMethod): ud.localfile = ud.clonedir - def fixuprevisions(self, ud, d): + ud.setup_revisons(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]]): diff --git a/lib/bb/fetch2/hg.py b/lib/bb/fetch2/hg.py index f2719d4..793831a 100644 --- a/lib/bb/fetch2/hg.py +++ b/lib/bb/fetch2/hg.py @@ -57,6 +57,8 @@ class Hg(FetchMethod): ud.pkgdir = os.path.join(data.expand('${HGDIR}', d), ud.host, relpath) ud.moddir = os.path.join(ud.pkgdir, ud.module) + ud.setup_revisons(d) + if 'rev' in ud.parm: ud.revision = ud.parm['rev'] elif not ud.revision: diff --git a/lib/bb/fetch2/svn.py b/lib/bb/fetch2/svn.py index fa6c654..59d7ccb 100644 --- a/lib/bb/fetch2/svn.py +++ b/lib/bb/fetch2/svn.py @@ -56,6 +56,8 @@ class Svn(FetchMethod): ud.pkgdir = os.path.join(data.expand('${SVNDIR}', d), ud.host, relpath) ud.moddir = os.path.join(ud.pkgdir, ud.module) + ud.setup_revisons(d) + if 'rev' in ud.parm: ud.revision = ud.parm['rev'] -- 1.7.5.rc3 _______________________________________________ Bitbake-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/bitbake-dev
