diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2016-04-14 20:24:19 +1200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-04-15 06:57:47 +0100 |
commit | c868198c1f6006789707b497c2ae34d7cc5e706f (patch) | |
tree | 0fbefaac0f9684b40c3e2ce6d70332405f2bb50d | |
parent | da5cd84794e1ab5c4efcd6250d3b93a46f610744 (diff) | |
download | openembedded-core-c868198c1f6006789707b497c2ae34d7cc5e706f.tar.gz openembedded-core-c868198c1f6006789707b497c2ae34d7cc5e706f.tar.bz2 openembedded-core-c868198c1f6006789707b497c2ae34d7cc5e706f.zip |
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>
-rw-r--r-- | scripts/lib/devtool/upgrade.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py index 680cbf132d..a085f78c43 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 |