diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2015-04-28 17:10:11 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-05-01 17:08:10 +0100 |
commit | c9304fcb0a2b81700d0ed5c13b4d976bd4230ce3 (patch) | |
tree | f7076942842631f8adeb3fd222e728bda33ed58b | |
parent | 2b997c41c6476a13bf516586d56a9051aceb93ec (diff) | |
download | openembedded-core-c9304fcb0a2b81700d0ed5c13b4d976bd4230ce3.tar.gz openembedded-core-c9304fcb0a2b81700d0ed5c13b4d976bd4230ce3.tar.bz2 openembedded-core-c9304fcb0a2b81700d0ed5c13b4d976bd4230ce3.zip |
recipetool: allow specifying SRCREV via rev= in URI
Provide a means to set SRCREV immediately by using rev= in the URI; if
it is specified then it is removed before setting SRC_URI and SRCREV is
set to the same value instead.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-rw-r--r-- | scripts/lib/recipetool/create.py | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py index cd45998f64..ec6e107e62 100644 --- a/scripts/lib/recipetool/create.py +++ b/scripts/lib/recipetool/create.py @@ -58,13 +58,13 @@ class RecipeHandler(): -def fetch_source(uri, destdir): +def fetch_source(uri, destdir, srcrev): import bb.data bb.utils.mkdirhier(destdir) localdata = bb.data.createCopy(tinfoil.config_data) bb.data.update_data(localdata) localdata.setVar('BB_STRICT_CHECKSUM', '') - localdata.setVar('SRCREV', '${AUTOREV}') + localdata.setVar('SRCREV', srcrev) ret = (None, None) olddir = os.getcwd() try: @@ -88,6 +88,9 @@ def fetch_source(uri, destdir): def supports_srcrev(uri): localdata = bb.data.createCopy(tinfoil.config_data) + # This is a bit sad, but if you don't have this set there can be some + # odd interactions with the urldata cache which lead to errors + localdata.setVar('SRCREV', '${AUTOREV}') bb.data.update_data(localdata) fetcher = bb.fetch2.Fetch([uri], localdata) urldata = fetcher.ud @@ -108,13 +111,19 @@ def create_recipe(args): checksums = (None, None) tempsrc = '' srcsubdir = '' + srcrev = '${AUTOREV}' if '://' in args.source: # Fetch a URL srcuri = args.source + rev_re = re.compile(';rev=([^;]+)') + res = rev_re.search(srcuri) + if res: + srcrev = res.group(1) + srcuri = rev_re.sub('', srcuri) tempsrc = tempfile.mkdtemp(prefix='recipetool-') srctree = tempsrc logger.info('Fetching %s...' % srcuri) - checksums = fetch_source(args.source, srctree) + checksums = fetch_source(args.source, srctree, srcrev) dirlist = os.listdir(srctree) if 'git.indirectionsymlink' in dirlist: dirlist.remove('git.indirectionsymlink') @@ -210,7 +219,7 @@ def create_recipe(args): lines_before.append('') lines_before.append('# Modify these as desired') lines_before.append('PV = "%s+git${SRCPV}"' % (realpv or '1.0')) - lines_before.append('SRCREV = "${AUTOREV}"') + lines_before.append('SRCREV = "%s"' % srcrev) lines_before.append('') if srcsubdir and pv: |