diff options
authorPaul Eggleton <paul.eggleton@linux.intel.com>2016-04-14 20:24:19 +1200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-04-15 06:57:47 +0100
commitc868198c1f6006789707b497c2ae34d7cc5e706f (patch)
parentda5cd84794e1ab5c4efcd6250d3b93a46f610744 (diff)
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. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
1 files changed, 9 insertions, 1 deletions
diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py
index 680cbf132d0..a085f78c439 100644
--- a/scripts/lib/devtool/upgrade.py
+++ b/scripts/lib/devtool/upgrade.py
@@ -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