From db55d31dc2cc5336c09d379e5da5d2d67cc2619a Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Wed, 14 Oct 2015 19:19:23 +0100 Subject: devtool: handle virtual providers For modify / extract / upgrade, if the specified "recipe" is not actually a recipe but a virtual target such as virtual/kernel, map it correctly to the actual recipe and make sure we use that name within the workspace. Thanks to Chris Larson for reminding me this was still broken and for a hint on how to fix it. (From OE-Core rev: 1f7752282ffb47d2621030ddb2fa42a5e491d6d2) Signed-off-by: Paul Eggleton Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- scripts/lib/devtool/upgrade.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'scripts/lib/devtool/upgrade.py') diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py index 4f850cf0e4..d38762373e 100644 --- a/scripts/lib/devtool/upgrade.py +++ b/scripts/lib/devtool/upgrade.py @@ -300,7 +300,13 @@ def upgrade(args, config, basepath, workspace): if not rd: return 1 - standard._check_compatible_recipe(args.recipename, rd) + pn = rd.getVar('PN', True) + if pn != args.recipename: + logger.info('Mapping %s to %s' % (args.recipename, pn)) + if pn in workspace: + raise DevtoolError("recipe %s is already in your workspace" % pn) + + standard._check_compatible_recipe(pn, rd) if rd.getVar('PV', True) == args.version and rd.getVar('SRCREV', True) == args.srcrev: raise DevtoolError("Current and upgrade versions are the same version" % version) @@ -315,11 +321,11 @@ def upgrade(args, config, basepath, workspace): _upgrade_error(e, rf, args.srctree) except DevtoolError as e: _upgrade_error(e, rf, args.srctree) - standard._add_md5(config, args.recipename, os.path.dirname(rf)) + standard._add_md5(config, pn, os.path.dirname(rf)) af = _write_append(rf, args.srctree, args.same_dir, args.no_same_dir, rev2, config.workspace_path, rd) - standard._add_md5(config, args.recipename, af) + standard._add_md5(config, pn, af) logger.info('Upgraded source extracted to %s' % args.srctree) return 0 -- cgit v1.2.3-54-g00ecf