[gnome-continuous-yocto/gnomeostree-3.28-rocko: 7308/8267] recipetool: create: handle git URLs specifying only a tag
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 7308/8267] recipetool: create: handle git URLs specifying only a tag
- Date: Sun, 17 Dec 2017 06:03:58 +0000 (UTC)
commit fe62cedd4b81ea0537c3cc7c5141c8e492222e7a
Author: Stanley Phoong <stanley cheong kwan phoong intel com>
Date: Mon Aug 21 17:39:42 2017 +1200
recipetool: create: handle git URLs specifying only a tag
If a git URL is passed to recipetool create with a tag=, recipetool
should handle it assuming that the tag is valid.
[YOCTO #11393]
(From OE-Core rev: 3afdcbdc9a3e65bc925ec61717784ffec67d529d)
Signed-off-by: Stanley Phoong <stanley cheong kwan phoong intel com>
Signed-off-by: Paul Eggleton <paul eggleton linux intel com>
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
scripts/lib/recipetool/create.py | 23 ++++++++++++++++++++++-
1 files changed, 22 insertions(+), 1 deletions(-)
---
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index 8d59e65..e48e418 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -423,6 +423,7 @@ def create_recipe(args):
srcsubdir = ''
srcrev = '${AUTOREV}'
srcbranch = ''
+ storeTagName = ''
if os.path.isfile(source):
source = 'file://%s' % os.path.abspath(source)
@@ -446,13 +447,21 @@ def create_recipe(args):
scheme, network, path, user, passwd, params = bb.fetch2.decodeurl(fetchuri)
srcbranch = params.get('branch')
nobranch = params.get('nobranch')
+ tag = params.get('tag')
if not srcbranch and not nobranch and srcrev != '${AUTOREV}':
# Append nobranch=1 in the following conditions:
# 1. User did not set 'branch=' in srcuri, and
# 2. User did not set 'nobranch=1' in srcuri, and
# 3. Source revision is not '${AUTOREV}'
params['nobranch'] = '1'
- fetchuri = bb.fetch2.encodeurl((scheme, network, path, user, passwd, params))
+ if tag:
+ # Keep a copy of tag and append nobranch=1 then remove tag from URL.
+ # Bitbake fetcher unable to fetch when {AUTOREV} and tag is set at the same time.
+ # We will re-introduce tag argument after bitbake fetcher process is complete.
+ storeTagName = params['tag']
+ params['nobranch'] = '1'
+ del params['tag']
+ fetchuri = bb.fetch2.encodeurl((scheme, network, path, user, passwd, params))
tmpparent = tinfoil.config_data.getVar('BASE_WORKDIR')
bb.utils.mkdirhier(tmpparent)
@@ -523,6 +532,18 @@ def create_recipe(args):
params['branch'] = srcbranch
srcuri = bb.fetch2.encodeurl((scheme, network, path, user, passwd, params))
+ if storeTagName:
+ # Re-introduced tag variable from storeTagName
+ # Check srcrev using tag and check validity of the tag
+ cmd = ('git rev-parse --verify %s' % (storeTagName))
+ try:
+ check_tag, check_tag_err = bb.process.run('%s' % cmd, cwd=srctree)
+ srcrev = check_tag.split()[0]
+ except bb.process.ExecutionError as err:
+ logger.error(str(err))
+ logger.error("Possibly wrong tag name is provided")
+ sys.exit(1)
+
if os.path.exists(os.path.join(srctree, '.gitmodules')) and srcuri.startswith('git://'):
srcuri = 'gitsm://' + srcuri[6:]
logger.info('Fetching submodules...')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]