devtool: upgrade: handle recipes where source is not first entry in SRC_URI

It is unusual but not impossible to find recipes whose first entry is
not the main source URL but instead some patch or other local file, for
example python-cryptography in meta-python (which sets SRC_URI before
inheriting pypi). There's nothing inherently wrong with this, and we
shouldn't assume that the first entry is the main source URL, so just
take the first non-local entry instead.

(From OE-Core rev: c868198c1f6006789707b497c2ae34d7cc5e706f)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton 2016-04-14 20:24:19 +12:00 committed by Richard Purdie
parent 8353557193
commit 60a8719e6e

View File

@ -145,7 +145,15 @@ def _get_uri(rd):
srcuris = rd.getVar('SRC_URI', True).split()
if not len(srcuris):
raise DevtoolError('SRC_URI not found on recipe')
srcuri = srcuris[0] # it is assumed, URI is at first position
# Get first non-local entry in SRC_URI - usually by convention it's
# the first entry, but not always!
srcuri = None
for entry in srcuris:
if not entry.startswith('file://'):
srcuri = entry
break
if not srcuri:
raise DevtoolError('Unable to find non-local entry in SRC_URI')
srcrev = '${AUTOREV}'
if '://' in srcuri:
# Fetch a URL