summaryrefslogtreecommitdiffstats
path: root/meta-oe/classes/gitpkgv.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/classes/gitpkgv.bbclass')
-rw-r--r--meta-oe/classes/gitpkgv.bbclass59
1 files changed, 35 insertions, 24 deletions
diff --git a/meta-oe/classes/gitpkgv.bbclass b/meta-oe/classes/gitpkgv.bbclass
index bedceb9d6e..238b0d2ea3 100644
--- a/meta-oe/classes/gitpkgv.bbclass
+++ b/meta-oe/classes/gitpkgv.bbclass
@@ -48,37 +48,48 @@ def gitpkgv_drop_tag_prefix(version):
48 return version 48 return version
49 49
50def get_git_pkgv(d, use_tags): 50def get_git_pkgv(d, use_tags):
51 import os 51 import os
52 import bb 52 import bb
53 53
54 urls = bb.data.getVar('SRC_URI', d, 1).split() 54 src_uri = bb.data.getVar('SRC_URI', d, 1).split()
55 fetcher = bb.fetch2.Fetch(src_uri, d)
56 ud = fetcher.ud
55 57
56 for url in urls: 58 #
57 (type, host, path, user, pswd, parm) = bb.decodeurl(bb.data.expand(url, d)) 59 # If SRCREV_FORMAT is set respect it for tags
58 if type in ['git']: 60 #
61 format = bb.data.getVar('SRCREV_FORMAT', d, True)
62 if not format:
63 format = 'default'
59 64
60 gitsrcname = '%s%s' % (host, path.replace('/', '.')) 65 found = False
61 repodir = os.path.join(bb.data.expand('${GITDIR}', d), gitsrcname) 66 for url in ud.values():
62 if not os.path.exists(repodir): 67 if url.type == 'git':
63 return None 68 for name, rev in url.revisions.items():
69 if not os.path.exists(url.localpath):
70 return None
64 71
65 rev = bb.fetch.get_srcrev(d).split('+')[1] 72 found = True
66 73
67 cwd = os.getcwd() 74 cwd = os.getcwd()
68 os.chdir(repodir) 75 os.chdir(url.localpath)
69 76
70 commits = bb.fetch.runfetchcmd("git rev-list %s -- 2> /dev/null | wc -l" % rev, d, quiet=True).strip() 77 commits = bb.fetch2.runfetchcmd("git rev-list %s -- 2> /dev/null | wc -l" % rev, d, quiet=True).strip()
71 78
72 if use_tags: 79 if use_tags:
73 try: 80 try:
74 ver = gitpkgv_drop_tag_prefix(bb.fetch.runfetchcmd("git describe %s 2>/dev/null" % rev, d, quiet=True).strip()) 81 output = bb.fetch2.runfetchcmd("git describe %s 2>/dev/null" % rev, d, quiet=True).strip()
75 except Exception: 82 ver = gitpkgv_drop_tag_prefix(output)
76 ver = "0.0-%s-g%s" % (commits, rev[:7]) 83 except Exception:
77 else: 84 ver = "0.0-%s-g%s" % (commits, rev[:7])
78 ver = "%s+%s" % (commits, rev[:7]) 85 else:
86 ver = "%s+%s" % (commits, rev[:7])
79 87
80 os.chdir(cwd) 88 os.chdir(cwd)
81 89
82 return ver 90 format = format.replace(name, ver)
83 91
84 return "0+0" 92 if found:
93 return format
94
95 return '0+0'