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

Reply via email to