[OE-core] [PATCH 2/3] recipetool: create: handle git URLs specifying only a tag
Christopher Larson
kergoth at gmail.com
Tue Aug 15 14:14:49 UTC 2017
rev-parse is a better bet than rev-list for ref validation, IMO.
On Tue, Aug 15, 2017 at 1:24 AM, Chang Rebecca Swee Fun <
rebecca.swee.fun.chang at intel.com> wrote:
> From: Stanley Phoong <stanley.cheong.kwan.phoong at intel.com>
>
> If a git URL is passed to recipetool create with a tag=, recipetool
> should handle it assuming that the tag is valid.
>
> [YOCTO #11393]
>
> Signed-off-by: Stanley Phoong <stanley.cheong.kwan.phoong at intel.com>
> ---
> scripts/lib/recipetool/create.py | 23 ++++++++++++++++++++++-
> 1 file changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/
> create.py
> index d2e6fc0..52c10e5 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
> + try:
> + cmd = ('git rev-list -n 1 %s' % (storeTagName))
> + 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...')
> --
> 2.7.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
--
Christopher Larson
kergoth at gmail dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Senior Software Engineer, Mentor Graphics
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20170815/bc993378/attachment-0002.html>
More information about the Openembedded-core
mailing list