summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorChang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>2017-11-15 10:01:13 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-01-06 10:13:56 +0000
commitb443c1741681eff6508a72539da22fc3386bcc95 (patch)
tree1573fa9f7f1bd4fe8cb8a53260b9eb80dd6f92a0 /scripts
parent63454170373818923afbfb4490b1151350c86444 (diff)
downloadpoky-b443c1741681eff6508a72539da22fc3386bcc95.tar.gz
recipetool: create: fix conflict between SRCREV and tag
If you specify 'tag=' for a git URL and passed to recipetool create, you will get into Bitbake expansion error shown below: ----- snip ----- $ devtool add --version 2.4.2 mbedtls "git://github.com/ARMmbed/mbedtls;tag=mbedtls-2.4.2" ... bb.data_smart.ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher failure: Conflicting revisions (abeccb9dbd7e19ae91ac50e1edd3803111c5f9b6 from SRCREV and mbedtls-2.4.2 from the url) found, please specify one valid value ----- snip ----- Assuming the tag is valid, we should get the tag commit hash and drop the usage of 'tag=' from SRC_URI. By using a commit hash corresponding to the tag will prevent bitbake from accessing remote repository in order to expand SRCPV. (From OE-Core rev: 4953d54dd06ff7025406d2df6a71c95162cc1ec7) Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> (cherry picked from commit 53f8effa3eb07dc7035ff9933e7918318f242579) Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/lib/recipetool/create.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index 055bdef436..5bf939efcb 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -477,7 +477,6 @@ def create_recipe(args):
477 if tag: 477 if tag:
478 # Keep a copy of tag and append nobranch=1 then remove tag from URL. 478 # Keep a copy of tag and append nobranch=1 then remove tag from URL.
479 # Bitbake fetcher unable to fetch when {AUTOREV} and tag is set at the same time. 479 # Bitbake fetcher unable to fetch when {AUTOREV} and tag is set at the same time.
480 # We will re-introduce tag argument after bitbake fetcher process is complete.
481 storeTagName = params['tag'] 480 storeTagName = params['tag']
482 params['nobranch'] = '1' 481 params['nobranch'] = '1'
483 del params['tag'] 482 del params['tag']
@@ -549,13 +548,11 @@ def create_recipe(args):
549 548
550 # Since we might have a value in srcbranch, we need to 549 # Since we might have a value in srcbranch, we need to
551 # recontruct the srcuri to include 'branch' in params. 550 # recontruct the srcuri to include 'branch' in params.
551 scheme, network, path, user, passwd, params = bb.fetch2.decodeurl(srcuri)
552 if srcbranch: 552 if srcbranch:
553 scheme, network, path, user, passwd, params = bb.fetch2.decodeurl(srcuri)
554 params['branch'] = srcbranch 553 params['branch'] = srcbranch
555 srcuri = bb.fetch2.encodeurl((scheme, network, path, user, passwd, params))
556 554
557 if storeTagName and scheme in ['git', 'gitsm']: 555 if storeTagName and scheme in ['git', 'gitsm']:
558 # Re-introduced tag variable from storeTagName
559 # Check srcrev using tag and check validity of the tag 556 # Check srcrev using tag and check validity of the tag
560 cmd = ('git rev-parse --verify %s' % (storeTagName)) 557 cmd = ('git rev-parse --verify %s' % (storeTagName))
561 try: 558 try:
@@ -565,6 +562,9 @@ def create_recipe(args):
565 logger.error(str(err)) 562 logger.error(str(err))
566 logger.error("Possibly wrong tag name is provided") 563 logger.error("Possibly wrong tag name is provided")
567 sys.exit(1) 564 sys.exit(1)
565 # Drop tag from srcuri as it will have conflicts with SRCREV during recipe parse.
566 del params['tag']
567 srcuri = bb.fetch2.encodeurl((scheme, network, path, user, passwd, params))
568 568
569 if os.path.exists(os.path.join(srctree, '.gitmodules')) and srcuri.startswith('git://'): 569 if os.path.exists(os.path.join(srctree, '.gitmodules')) and srcuri.startswith('git://'):
570 srcuri = 'gitsm://' + srcuri[6:] 570 srcuri = 'gitsm://' + srcuri[6:]