diff options
author | Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com> | 2017-11-15 10:01:13 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-01-06 10:13:56 +0000 |
commit | b443c1741681eff6508a72539da22fc3386bcc95 (patch) | |
tree | 1573fa9f7f1bd4fe8cb8a53260b9eb80dd6f92a0 /scripts/lib | |
parent | 63454170373818923afbfb4490b1151350c86444 (diff) | |
download | poky-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/lib')
-rw-r--r-- | scripts/lib/recipetool/create.py | 8 |
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:] |