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 /scripts/lib/devtool | |
| 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>
Diffstat (limited to 'scripts/lib/devtool')
| -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 | 
