* Recipes that fetch from git, svn or hg by OpenEmbedded convention should normally be named with this as a suffix, since PV is meant to be set appropriately within the recipe, so follow this. In order to make this work we need to be able to have the version independent from the file name, so add a -V option to recipetool create to allow this to be specified. * If -V is specified on the devtool add command line, ensure at PV gets set to include this version.
Signed-off-by: Paul Eggleton <paul.eggle...@linux.intel.com> --- scripts/lib/devtool/standard.py | 14 +++++++++++++- scripts/lib/recipetool/create.py | 15 ++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 482c418..16f737e 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -65,11 +65,21 @@ def add(args, config, basepath, workspace): recipedir = os.path.join(config.workspace_path, 'recipes', args.recipename) bb.utils.mkdirhier(recipedir) + rfv = None if args.version: if '_' in args.version or ' ' in args.version: logger.error('Invalid version string "%s"' % args.version) return -1 - bp = "%s_%s" % (args.recipename, args.version) + rfv = args.version + if args.fetch: + if args.fetch.startswith('git://'): + rfv = 'git' + elif args.fetch.startswith('svn://'): + rfv = 'svn' + elif args.fetch.startswith('hg://'): + rfv = 'hg' + if rfv: + bp = "%s_%s" % (args.recipename, rfv) else: bp = args.recipename recipefile = os.path.join(recipedir, "%s.bb" % bp) @@ -83,6 +93,8 @@ def add(args, config, basepath, workspace): extracmdopts = '-x %s' % srctree else: source = srctree + if args.version: + extracmdopts += ' -V %s' % args.version stdout, stderr = exec_build_env_command(config.init_path, basepath, 'recipetool --color=%s create -o %s "%s" %s' % (color, recipefile, source, extracmdopts)) logger.info('Recipe %s has been automatically created; further editing may be required to make it fully functional' % recipefile) diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py index 15de694..96062ab 100644 --- a/scripts/lib/recipetool/create.py +++ b/scripts/lib/recipetool/create.py @@ -187,9 +187,17 @@ def create_recipe(args): pn = recipefn pv = None + if args.version: + pv = args.version + + if pv and pv not in 'git svn hg'.split(): + realpv = pv + else: + realpv = None + if srcuri: - if pv and pv not in 'git svn hg'.split(): - srcuri = srcuri.replace(pv, '${PV}') + if realpv: + srcuri = srcuri.replace(realpv, '${PV}') else: lines_before.append('# No information for SRC_URI yet (only an external source tree was specified)') lines_before.append('SRC_URI = "%s"' % srcuri) @@ -201,7 +209,7 @@ def create_recipe(args): if srcuri and supports_srcrev(srcuri): lines_before.append('') lines_before.append('# Modify these as desired') - lines_before.append('PV = "1.0+git${SRCPV}"') + lines_before.append('PV = "%s+git${SRCPV}"' % (realpv or '1.0')) lines_before.append('SRCREV = "${AUTOREV}"') lines_before.append('') @@ -418,5 +426,6 @@ def register_command(subparsers): parser_create.add_argument('-o', '--outfile', help='Specify filename for recipe to create', required=True) parser_create.add_argument('-m', '--machine', help='Make recipe machine-specific as opposed to architecture-specific', action='store_true') parser_create.add_argument('-x', '--extract-to', metavar='EXTRACTPATH', help='Assuming source is a URL, fetch it and extract it to the directory specified as %(metavar)s') + parser_create.add_argument('-V', '--version', help='Version to use within recipe (PV)') parser_create.set_defaults(func=create_recipe) -- 2.1.0 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core