direct.py: fix getting image name
PATCH 1/2 direct.py: fix getting image name
part.rootfs_dir was used as an image name in the code. However, when multi-rootfs feature is used this attribute points to the name of the rootfs, e.g. if --rootfs command line is rootfs1=core-image-minimal partf.rootfs_dir is 'rootfs1'.
The code also fails when image name is not provided in wic commandline. For example, when wic is called with --rootfs-dir=<path> part.rootfs_dir will contain path and wic will crash trying to call bitbake -e <path> to get value of ROOTFS_SIZE variable.
Fixed the code by getting image name properly and checking if it's not a path.
[YOCTO #10815]
--- scripts/lib/wic/imager/direct.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
scripts/lib/wic/imager/direct.py +2 -2
@@ -270,8 +270,8 @@ class DirectImageCreator(BaseImageCreator): # get rootfs size from bitbake variable if it's not set in .ks file if not part.size: # and if rootfs name is specified for the partition - image_name = part.rootfs_dir - if image_name: + image_name = self.rootfs_dir.get(part.rootfs_dir) + if image_name and os.path.sep not in image_name: # Bitbake variable ROOTFS_SIZE is calculated in # Image._get_rootfs_size method from meta/lib/oe/image.py # using IMAGE_ROOTFS_SIZE, IMAGE_ROOTFS_ALIGNMENT,
Signature · 1 line
2.1.4
PATCH 2/2 wic: _exec_cmd: produce error if exit code is not 0
Current code doesn't always show error output of the external command and even ignores non-zero exit code.
Moved checking of exit code value to the lowest level
possible: to _exec_cmd. This should make wic to always check exit code of the external command and issue an error if it's not 0.
[YOCTO #10816]
--- scripts/lib/wic/utils/oe/misc.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-)
scripts/lib/wic/utils/oe/misc.py +4 -10
@@ -65,6 +65,10 @@ def _exec_cmd(cmd_and_args, as_shell=False, catch=3): else: ret, out = runner.runtool(args, catch) out = out.strip() + if ret != 0: + msger.error("_exec_cmd: %s returned '%s' instead of 0\noutput: %s" % \ + (cmd_and_args, ret, out)) + msger.debug("_exec_cmd: output for %s (rc = %d): %s" % \ (cmd_and_args, ret, out))
@@ -79,10 +83,6 @@ def exec_cmd(cmd_and_args, as_shell=False, catch=3): """ ret, out = _exec_cmd(cmd_and_args, as_shell, catch) - if ret != 0: - msger.error("exec_cmd: %s returned '%s' instead of 0" % \ - (cmd_and_args, ret)) - return out def exec_native_cmd(cmd_and_args, native_sysroot, catch=3, pseudo=""):
@@ -126,12 +126,6 @@ def exec_native_cmd(cmd_and_args, native_sysroot, catch=3, pseudo=""): 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)) - - if ret != 0: - msger.error("exec_cmd: '%s' returned '%s' instead of 0" % \ - (cmd_and_args, ret)) return ret, out
Signature · 1 line
2.1.4