diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2016-02-22 11:37:28 +1300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-02-28 11:33:00 +0000 |
commit | 942ae25279bea1b9768112e33f459a9b191d18bd (patch) | |
tree | 21f454bc4ea3e1a4e8ae6794ca073e923b22b6bf /scripts/lib | |
parent | e2334e126f163f10a8dace110a240ddaafb99dc5 (diff) | |
download | poky-942ae25279bea1b9768112e33f459a9b191d18bd.tar.gz |
devtool: modify: fix source tree default name when mapping virtuals
If you for example ran devtool modify virtual/libusb0 without specifying
a source tree path, the default was <workspace>/sources/virtual/libusb0
which isn't correct - it should be using the mapped name i.e.
libusb-compat (in the default OE-Core configuration). Reorder some of
the code to ensure that the mapped name is used.
(From OE-Core rev: c51736df17da8e6e561dd5b7ce59cb08254da870)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib')
-rw-r--r-- | scripts/lib/devtool/standard.py | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index b707e6e9eb..5f83a91929 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py | |||
@@ -426,10 +426,12 @@ class PatchTaskExecutor(BbTaskExecutor): | |||
426 | bb.process.run('git add .; git commit -a -m "Committing changes from %s\n\n%s"' % (func, GitApplyTree.ignore_commit_prefix + ' - from %s' % func), cwd=srcsubdir) | 426 | bb.process.run('git add .; git commit -a -m "Committing changes from %s\n\n%s"' % (func, GitApplyTree.ignore_commit_prefix + ' - from %s' % func), cwd=srcsubdir) |
427 | 427 | ||
428 | 428 | ||
429 | def _prep_extract_operation(config, basepath, recipename): | 429 | def _prep_extract_operation(config, basepath, recipename, tinfoil=None): |
430 | """HACK: Ugly workaround for making sure that requirements are met when | 430 | """HACK: Ugly workaround for making sure that requirements are met when |
431 | trying to extract a package. Returns the tinfoil instance to be used.""" | 431 | trying to extract a package. Returns the tinfoil instance to be used.""" |
432 | tinfoil = setup_tinfoil(basepath=basepath) | 432 | if not tinfoil: |
433 | tinfoil = setup_tinfoil(basepath=basepath) | ||
434 | |||
433 | rd = parse_recipe(config, tinfoil, recipename, True) | 435 | rd = parse_recipe(config, tinfoil, recipename, True) |
434 | if not rd: | 436 | if not rd: |
435 | return None | 437 | return None |
@@ -685,33 +687,32 @@ def modify(args, config, basepath, workspace): | |||
685 | raise DevtoolError("recipe %s is already in your workspace" % | 687 | raise DevtoolError("recipe %s is already in your workspace" % |
686 | args.recipename) | 688 | args.recipename) |
687 | 689 | ||
690 | tinfoil = setup_tinfoil(basepath=basepath) | ||
691 | rd = parse_recipe(config, tinfoil, args.recipename, True) | ||
692 | if not rd: | ||
693 | return 1 | ||
694 | |||
695 | pn = rd.getVar('PN', True) | ||
696 | if pn != args.recipename: | ||
697 | logger.info('Mapping %s to %s' % (args.recipename, pn)) | ||
698 | if pn in workspace: | ||
699 | raise DevtoolError("recipe %s is already in your workspace" % | ||
700 | pn) | ||
701 | |||
688 | if args.srctree: | 702 | if args.srctree: |
689 | srctree = os.path.abspath(args.srctree) | 703 | srctree = os.path.abspath(args.srctree) |
690 | else: | 704 | else: |
691 | srctree = get_default_srctree(config, args.recipename) | 705 | srctree = get_default_srctree(config, pn) |
692 | 706 | ||
693 | if args.no_extract and not os.path.isdir(srctree): | 707 | if args.no_extract and not os.path.isdir(srctree): |
694 | raise DevtoolError("--no-extract specified and source path %s does " | 708 | raise DevtoolError("--no-extract specified and source path %s does " |
695 | "not exist or is not a directory" % | 709 | "not exist or is not a directory" % |
696 | srctree) | 710 | srctree) |
697 | if not args.no_extract: | 711 | if not args.no_extract: |
698 | tinfoil = _prep_extract_operation(config, basepath, args.recipename) | 712 | tinfoil = _prep_extract_operation(config, basepath, pn, tinfoil) |
699 | if not tinfoil: | 713 | if not tinfoil: |
700 | # Error already shown | 714 | # Error already shown |
701 | return 1 | 715 | return 1 |
702 | else: | ||
703 | tinfoil = setup_tinfoil(basepath=basepath) | ||
704 | |||
705 | rd = parse_recipe(config, tinfoil, args.recipename, True) | ||
706 | if not rd: | ||
707 | return 1 | ||
708 | |||
709 | pn = rd.getVar('PN', True) | ||
710 | if pn != args.recipename: | ||
711 | logger.info('Mapping %s to %s' % (args.recipename, pn)) | ||
712 | if pn in workspace: | ||
713 | raise DevtoolError("recipe %s is already in your workspace" % | ||
714 | pn) | ||
715 | 716 | ||
716 | recipefile = rd.getVar('FILE', True) | 717 | recipefile = rd.getVar('FILE', True) |
717 | appendfile = recipe_to_append(recipefile, config, args.wildcard) | 718 | appendfile = recipe_to_append(recipefile, config, args.wildcard) |