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 < [email protected]> wrote:
> From: Stanley Phoong <[email protected]> > > 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 <[email protected]> > --- > 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 > [email protected] > http://lists.openembedded.org/mailman/listinfo/openembedded-core > -- Christopher Larson kergoth at gmail dot com Founder - BitBake, OpenEmbedded, OpenZaurus Senior Software Engineer, Mentor Graphics
-- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
