[oe-commits] Ed Bartosh : wic: Report recipe name for native commands
git at git.openembedded.org
git at git.openembedded.org
Fri Aug 7 11:34:57 UTC 2015
Module: openembedded-core.git
Branch: master-next
Commit: 5f5ad098aef5e7ea2d4f08d4e01427a4b8a6df22
URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=5f5ad098aef5e7ea2d4f08d4e01427a4b8a6df22
Author: Ed Bartosh <ed.bartosh at linux.intel.com>
Date: Mon Aug 3 16:51:48 2015 +0300
wic: Report recipe name for native commands
exec_native_cmd was modified to report recipe to build
native programs.
Pairs executable->recipe are hardcoded as it's not possible
to obtain this information automatically.
[YOCTO #7631]
Signed-off-by: Ed Bartosh <ed.bartosh at linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
scripts/lib/wic/utils/oe/misc.py | 29 ++++++++++++++++++++++++++---
1 file changed, 26 insertions(+), 3 deletions(-)
diff --git a/scripts/lib/wic/utils/oe/misc.py b/scripts/lib/wic/utils/oe/misc.py
index 4978745..af831d3 100644
--- a/scripts/lib/wic/utils/oe/misc.py
+++ b/scripts/lib/wic/utils/oe/misc.py
@@ -30,6 +30,21 @@ from collections import defaultdict
from wic import msger
from wic.utils import runner
+# executable -> recipe pairs for exec_native_cmd
+NATIVE_RECIPES = {"mcopy": "mtools",
+ "mkdosfs": "dosfstools",
+ "mkfs.btrfs": "btrfs-tools",
+ "mkfs.ext2": "e2fsprogs",
+ "mkfs.ext3": "e2fsprogs",
+ "mkfs.ext4": "e2fsprogs",
+ "mkfs.vfat": "dosfstools",
+ "mksquashfs": "squashfs-tools",
+ "mkswqp": "util-linux",
+ "parted": "parted",
+ "sgdisk": "gptfdisk",
+ "syslinux": "syslinux"
+ }
+
def __exec_cmd(cmd_and_args, as_shell=False, catch=3):
"""
Execute command, catching stderr, stdout
@@ -85,9 +100,17 @@ def exec_native_cmd(cmd_and_args, native_sysroot, catch=3):
rc, out = __exec_cmd(native_cmd_and_args, True, catch)
if rc == 127: # shell command-not-found
- msger.error("A native program %s required to build the image "
- "was not found (see details above). Please make sure "
- "it's installed and try again." % args[0])
+ prog = args[0]
+ msg = "A native program %s required to build the image "\
+ "was not found (see details above).\n\n" % prog
+ recipe = NATIVE_RECIPES.get(prog)
+ if recipe:
+ msg += "Please bake it with 'bitbake %s-native' "\
+ "and try again.\n" % recipe
+ else:
+ msg += "Wic failed to find a recipe to build native %s. Please "\
+ "file a bug against wic.\n" % prog
+ msger.error(msg)
if out:
msger.debug('"%s" output: %s' % (args[0], out))
More information about the Openembedded-commits
mailing list