diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/lib/wic/kickstart/custom_commands/partition.py | 6 | ||||
| -rw-r--r-- | scripts/lib/wic/utils/oe/misc.py | 18 | 
2 files changed, 14 insertions, 10 deletions
| diff --git a/scripts/lib/wic/kickstart/custom_commands/partition.py b/scripts/lib/wic/kickstart/custom_commands/partition.py index eee25a493d..babc006945 100644 --- a/scripts/lib/wic/kickstart/custom_commands/partition.py +++ b/scripts/lib/wic/kickstart/custom_commands/partition.py @@ -297,7 +297,7 @@ class Wic_PartData(FC4_PartData):          mkfs_cmd = "mkfs.%s -F %s %s %s -d %s" % \              (self.fstype, extra_imagecmd, rootfs, label_str, rootfs_dir) -        exec_native_cmd(pseudo + mkfs_cmd, native_sysroot) +        exec_native_cmd(mkfs_cmd, native_sysroot, pseudo=pseudo)      def prepare_rootfs_btrfs(self, rootfs, oe_builddir, rootfs_dir,                               native_sysroot, pseudo): @@ -330,7 +330,7 @@ class Wic_PartData(FC4_PartData):          mkfs_cmd = "mkfs.%s -b %d -r %s %s %s" % \              (self.fstype, rootfs_size * 1024, rootfs_dir, label_str, rootfs) -        exec_native_cmd(pseudo + mkfs_cmd, native_sysroot) +        exec_native_cmd(mkfs_cmd, native_sysroot, pseudo=pseudo)      def prepare_rootfs_vfat(self, rootfs, oe_builddir, rootfs_dir,                              native_sysroot, pseudo): @@ -378,7 +378,7 @@ class Wic_PartData(FC4_PartData):          """          squashfs_cmd = "mksquashfs %s %s -noappend" % \                         (rootfs_dir, rootfs) -        exec_native_cmd(pseudo + squashfs_cmd, native_sysroot) +        exec_native_cmd(squashfs_cmd, native_sysroot, pseudo=pseudo)      def prepare_empty_partition_ext(self, rootfs, oe_builddir,                                      native_sysroot): diff --git a/scripts/lib/wic/utils/oe/misc.py b/scripts/lib/wic/utils/oe/misc.py index c6d2e5f204..81239ac357 100644 --- a/scripts/lib/wic/utils/oe/misc.py +++ b/scripts/lib/wic/utils/oe/misc.py @@ -89,7 +89,7 @@ def cmd_in_path(cmd, path):      return bb.utils.which(path, cmd) != "" or False -def exec_native_cmd(cmd_and_args, native_sysroot, catch=3): +def exec_native_cmd(cmd_and_args, native_sysroot, catch=3, pseudo=""):      """      Execute native command, catching stderr, stdout @@ -97,6 +97,12 @@ def exec_native_cmd(cmd_and_args, native_sysroot, catch=3):      Always need to execute native commands as_shell      """ +    # The reason -1 is used is because there may be "export" commands. +    args = cmd_and_args.split(';')[-1].split() +    msger.debug(args) + +    if pseudo: +        cmd_and_args = pseudo + cmd_and_args      native_paths = \          "%s/sbin:%s/usr/sbin:%s/usr/bin" % \          (native_sysroot, native_sysroot, native_sysroot) @@ -104,18 +110,16 @@ def exec_native_cmd(cmd_and_args, native_sysroot, catch=3):                             (native_paths, cmd_and_args)      msger.debug("exec_native_cmd: %s" % cmd_and_args) -    # The reason -1 is used is because there may be "export" commands. -    args = cmd_and_args.split(';')[-1].split() -    msger.debug(args) -      # If the command isn't in the native sysroot say we failed.      if cmd_in_path(args[0], native_paths):          ret, out = _exec_cmd(native_cmd_and_args, True, catch)      else:          ret = 127 -    if ret == 127: # shell command-not-found -        prog = args[0] +    prog = args[0] +    # shell command-not-found +    if ret == 127 \ +       or (pseudo and ret == 1 and out == "Can't find '%s' in $PATH." % prog):          msg = "A native program %s required to build the image "\                "was not found (see details above).\n\n" % prog          recipe = NATIVE_RECIPES.get(prog) | 
