mirror of
https://git.yoctoproject.org/poky
synced 2026-04-21 03:32:12 +02:00
wic: Make exec_cmd() error out instead of warn
The reason exec_cmd() warns but doesn't error out (broken parted) doesn't really make sense, since the parted invocations don't even use exec_cmd(). It really should just fail since by not doing so it's actually enabling invalid images in some cases. Also, since the return code is now always zero, there's no point in having a return code, so remove it. This represents a change in the API, so we also need to update all callers. (From OE-Core rev: a10bbd39eee29cc49d258bf08aaec279c3115c66) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
963604605c
commit
68e6adf2df
@@ -161,7 +161,7 @@ class Wic_PartData(Mic_PartData):
|
||||
"""
|
||||
rootfs = oe_builddir
|
||||
du_cmd = "du -Lbms %s" % rootfs
|
||||
rc, out = exec_cmd(du_cmd)
|
||||
out = exec_cmd(du_cmd)
|
||||
rootfs_size = out.split()[0]
|
||||
|
||||
self.size = rootfs_size
|
||||
@@ -209,7 +209,7 @@ class Wic_PartData(Mic_PartData):
|
||||
rootfs = "%s/rootfs_%s.%s" % (cr_workdir, self.label ,self.fstype)
|
||||
|
||||
du_cmd = "du -ks %s" % image_rootfs
|
||||
rc, out = exec_cmd(du_cmd)
|
||||
out = exec_cmd(du_cmd)
|
||||
actual_rootfs_size = int(out.split()[0])
|
||||
|
||||
extra_blocks = self.get_extra_block_count(actual_rootfs_size)
|
||||
@@ -224,18 +224,18 @@ class Wic_PartData(Mic_PartData):
|
||||
|
||||
dd_cmd = "dd if=/dev/zero of=%s bs=1024 seek=%d count=0 bs=1k" % \
|
||||
(rootfs, rootfs_size)
|
||||
rc, out = exec_cmd(dd_cmd)
|
||||
exec_cmd(dd_cmd)
|
||||
|
||||
extra_imagecmd = "-i 8192"
|
||||
|
||||
mkfs_cmd = "mkfs.%s -F %s %s -d %s" % \
|
||||
(self.fstype, extra_imagecmd, rootfs, image_rootfs)
|
||||
rc, out = exec_native_cmd(pseudo + mkfs_cmd, native_sysroot)
|
||||
exec_native_cmd(pseudo + mkfs_cmd, native_sysroot)
|
||||
|
||||
|
||||
# get the rootfs size in the right units for kickstart (Mb)
|
||||
du_cmd = "du -Lbms %s" % rootfs
|
||||
rc, out = exec_cmd(du_cmd)
|
||||
out = exec_cmd(du_cmd)
|
||||
rootfs_size = out.split()[0]
|
||||
|
||||
self.size = rootfs_size
|
||||
@@ -254,7 +254,7 @@ class Wic_PartData(Mic_PartData):
|
||||
rootfs = "%s/rootfs_%s.%s" % (cr_workdir, self.label, self.fstype)
|
||||
|
||||
du_cmd = "du -ks %s" % image_rootfs
|
||||
rc, out = exec_cmd(du_cmd)
|
||||
out = exec_cmd(du_cmd)
|
||||
actual_rootfs_size = int(out.split()[0])
|
||||
|
||||
extra_blocks = self.get_extra_block_count(actual_rootfs_size)
|
||||
@@ -269,15 +269,15 @@ class Wic_PartData(Mic_PartData):
|
||||
|
||||
dd_cmd = "dd if=/dev/zero of=%s bs=1024 seek=%d count=0 bs=1k" % \
|
||||
(rootfs, rootfs_size)
|
||||
rc, out = exec_cmd(dd_cmd)
|
||||
exec_cmd(dd_cmd)
|
||||
|
||||
mkfs_cmd = "mkfs.%s -b %d -r %s %s" % \
|
||||
(self.fstype, rootfs_size * 1024, image_rootfs, rootfs)
|
||||
rc, out = exec_native_cmd(pseudo + mkfs_cmd, native_sysroot)
|
||||
exec_native_cmd(pseudo + mkfs_cmd, native_sysroot)
|
||||
|
||||
# get the rootfs size in the right units for kickstart (Mb)
|
||||
du_cmd = "du -Lbms %s" % rootfs
|
||||
rc, out = exec_cmd(du_cmd)
|
||||
out = exec_cmd(du_cmd)
|
||||
rootfs_size = out.split()[0]
|
||||
|
||||
self.size = rootfs_size
|
||||
@@ -292,7 +292,7 @@ class Wic_PartData(Mic_PartData):
|
||||
rootfs = "%s/rootfs_%s.%s" % (cr_workdir, self.label, self.fstype)
|
||||
|
||||
du_cmd = "du -bks %s" % image_rootfs
|
||||
rc, out = exec_cmd(du_cmd)
|
||||
out = exec_cmd(du_cmd)
|
||||
blocks = int(out.split()[0])
|
||||
|
||||
extra_blocks = self.get_extra_block_count(blocks)
|
||||
@@ -324,7 +324,7 @@ class Wic_PartData(Mic_PartData):
|
||||
|
||||
# get the rootfs size in the right units for kickstart (Mb)
|
||||
du_cmd = "du -Lbms %s" % rootfs
|
||||
rc, out = exec_cmd(du_cmd)
|
||||
out = exec_cmd(du_cmd)
|
||||
rootfs_size = out.split()[0]
|
||||
|
||||
self.set_size(rootfs_size)
|
||||
@@ -340,11 +340,11 @@ class Wic_PartData(Mic_PartData):
|
||||
|
||||
squashfs_cmd = "mksquashfs %s %s -noappend" % \
|
||||
(image_rootfs, rootfs)
|
||||
rc, out = exec_native_cmd(pseudo + squashfs_cmd, native_sysroot)
|
||||
exec_native_cmd(pseudo + squashfs_cmd, native_sysroot)
|
||||
|
||||
# get the rootfs size in the right units for kickstart (Mb)
|
||||
du_cmd = "du -Lbms %s" % rootfs
|
||||
rc, out = exec_cmd(du_cmd)
|
||||
out = exec_cmd(du_cmd)
|
||||
rootfs_size = out.split()[0]
|
||||
|
||||
self.size = rootfs_size
|
||||
@@ -378,12 +378,12 @@ class Wic_PartData(Mic_PartData):
|
||||
|
||||
dd_cmd = "dd if=/dev/zero of=%s bs=1M seek=%d count=0" % \
|
||||
(fs, self.size)
|
||||
rc, out = exec_cmd(dd_cmd)
|
||||
exec_cmd(dd_cmd)
|
||||
|
||||
extra_imagecmd = "-i 8192"
|
||||
|
||||
mkfs_cmd = "mkfs.%s -F %s %s" % (self.fstype, extra_imagecmd, fs)
|
||||
rc, out = exec_native_cmd(mkfs_cmd, native_sysroot)
|
||||
exec_native_cmd(mkfs_cmd, native_sysroot)
|
||||
|
||||
self.source_file = fs
|
||||
|
||||
@@ -398,13 +398,13 @@ class Wic_PartData(Mic_PartData):
|
||||
|
||||
dd_cmd = "dd if=/dev/zero of=%s bs=1M seek=%d count=0" % \
|
||||
(fs, self.size)
|
||||
rc, out = exec_cmd(dd_cmd)
|
||||
exec_cmd(dd_cmd)
|
||||
|
||||
mkfs_cmd = "mkfs.%s -b %d %s" % (self.fstype, self.size * 1024, rootfs)
|
||||
rc, out = exec_native_cmd(mkfs_cmd, native_sysroot)
|
||||
exec_native_cmd(mkfs_cmd, native_sysroot)
|
||||
|
||||
mkfs_cmd = "mkfs.%s -F %s %s" % (self.fstype, extra_imagecmd, fs)
|
||||
rc, out = exec_native_cmd(mkfs_cmd, native_sysroot)
|
||||
exec_native_cmd(mkfs_cmd, native_sysroot)
|
||||
|
||||
self.source_file = fs
|
||||
|
||||
@@ -445,13 +445,13 @@ class Wic_PartData(Mic_PartData):
|
||||
|
||||
squashfs_cmd = "mksquashfs %s %s -noappend" % \
|
||||
(tmpdir, fs)
|
||||
rc, out = exec_native_cmd(squashfs_cmd, native_sysroot)
|
||||
exec_native_cmd(squashfs_cmd, native_sysroot)
|
||||
|
||||
os.rmdir(tmpdir)
|
||||
|
||||
# get the rootfs size in the right units for kickstart (Mb)
|
||||
du_cmd = "du -Lbms %s" % fs
|
||||
rc, out = exec_cmd(du_cmd)
|
||||
out = exec_cmd(du_cmd)
|
||||
fs_size = out.split()[0]
|
||||
|
||||
self.size = fs_size
|
||||
@@ -467,14 +467,14 @@ class Wic_PartData(Mic_PartData):
|
||||
|
||||
dd_cmd = "dd if=/dev/zero of=%s bs=1M seek=%d count=0" % \
|
||||
(fs, self.size)
|
||||
rc, out = exec_cmd(dd_cmd)
|
||||
exec_cmd(dd_cmd)
|
||||
|
||||
import uuid
|
||||
label_str = ""
|
||||
if self.label:
|
||||
label_str = "-L %s" % self.label
|
||||
mkswap_cmd = "mkswap %s -U %s %s" % (label_str, str(uuid.uuid1()), fs)
|
||||
rc, out = exec_native_cmd(mkswap_cmd, native_sysroot)
|
||||
exec_native_cmd(mkswap_cmd, native_sysroot)
|
||||
|
||||
self.source_file = fs
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ class BootimgEFIPlugin(SourcePlugin):
|
||||
exec_cmd(rm_cmd)
|
||||
|
||||
install_cmd = "install -d %s/EFI/BOOT" % hdddir
|
||||
tmp = exec_cmd(install_cmd)
|
||||
exec_cmd(install_cmd)
|
||||
|
||||
splash = os.path.join(cr_workdir, "/EFI/boot/splash.jpg")
|
||||
if os.path.exists(splash):
|
||||
@@ -116,7 +116,7 @@ class BootimgEFIPlugin(SourcePlugin):
|
||||
|
||||
install_cmd = "install -m 0644 %s/bzImage %s/bzImage" % \
|
||||
(staging_kernel_dir, hdddir)
|
||||
tmp = exec_cmd(install_cmd)
|
||||
exec_cmd(install_cmd)
|
||||
|
||||
shutil.copyfile("%s/hdd/boot/EFI/BOOT/grub.cfg" % cr_workdir,
|
||||
"%s/grub.cfg" % cr_workdir)
|
||||
@@ -128,7 +128,7 @@ class BootimgEFIPlugin(SourcePlugin):
|
||||
"%s/hdd/boot/EFI/BOOT/grub.cfg" % cr_workdir)
|
||||
|
||||
du_cmd = "du -bks %s" % hdddir
|
||||
rc, out = exec_cmd(du_cmd)
|
||||
out = exec_cmd(du_cmd)
|
||||
blocks = int(out.split()[0])
|
||||
|
||||
extra_blocks = part.get_extra_block_count(blocks)
|
||||
@@ -160,7 +160,7 @@ class BootimgEFIPlugin(SourcePlugin):
|
||||
exec_cmd(chmod_cmd)
|
||||
|
||||
du_cmd = "du -Lbms %s" % bootimg
|
||||
rc, out = exec_cmd(du_cmd)
|
||||
out = exec_cmd(du_cmd)
|
||||
bootimg_size = out.split()[0]
|
||||
|
||||
part.set_size(bootimg_size)
|
||||
|
||||
@@ -78,7 +78,7 @@ class BootimgPcbiosPlugin(SourcePlugin):
|
||||
exec_cmd(rm_cmd)
|
||||
|
||||
install_cmd = "install -d %s" % hdddir
|
||||
tmp = exec_cmd(install_cmd)
|
||||
exec_cmd(install_cmd)
|
||||
|
||||
splash = os.path.join(cr_workdir, "/hdd/boot/splash.jpg")
|
||||
if os.path.exists(splash):
|
||||
@@ -144,14 +144,14 @@ class BootimgPcbiosPlugin(SourcePlugin):
|
||||
|
||||
install_cmd = "install -m 0644 %s/bzImage %s/vmlinuz" \
|
||||
% (staging_kernel_dir, hdddir)
|
||||
tmp = exec_cmd(install_cmd)
|
||||
exec_cmd(install_cmd)
|
||||
|
||||
install_cmd = "install -m 444 %s/syslinux/ldlinux.sys %s/ldlinux.sys" \
|
||||
% (staging_data_dir, hdddir)
|
||||
tmp = exec_cmd(install_cmd)
|
||||
exec_cmd(install_cmd)
|
||||
|
||||
du_cmd = "du -bks %s" % hdddir
|
||||
rc, out = exec_cmd(du_cmd)
|
||||
out = exec_cmd(du_cmd)
|
||||
blocks = int(out.split()[0])
|
||||
|
||||
extra_blocks = part.get_extra_block_count(blocks)
|
||||
@@ -186,7 +186,7 @@ class BootimgPcbiosPlugin(SourcePlugin):
|
||||
exec_cmd(chmod_cmd)
|
||||
|
||||
du_cmd = "du -Lbms %s" % bootimg
|
||||
rc, out = exec_cmd(du_cmd)
|
||||
out = exec_cmd(du_cmd)
|
||||
bootimg_size = out.split()[0]
|
||||
|
||||
part.set_size(bootimg_size)
|
||||
|
||||
@@ -306,7 +306,7 @@ class DiskImage(Disk):
|
||||
# create disk image
|
||||
dd_cmd = "dd if=/dev/zero of=%s bs=1024 seek=%d count=1" % \
|
||||
(self.image_file, blocks)
|
||||
rc, out = exec_cmd(dd_cmd)
|
||||
exec_cmd(dd_cmd)
|
||||
|
||||
self.device = self.image_file
|
||||
|
||||
|
||||
@@ -28,13 +28,13 @@
|
||||
from mic import msger
|
||||
from mic.utils import runner
|
||||
|
||||
def exec_cmd(cmd_and_args, as_shell = False, catch = 3):
|
||||
def __exec_cmd(cmd_and_args, as_shell = False, catch = 3):
|
||||
"""
|
||||
Execute command, catching stderr, stdout
|
||||
|
||||
Need to execute as_shell if the command uses wildcards
|
||||
"""
|
||||
msger.debug("exec_cmd: %s" % cmd_and_args)
|
||||
msger.debug("__exec_cmd: %s" % cmd_and_args)
|
||||
args = cmd_and_args.split()
|
||||
msger.debug(args)
|
||||
|
||||
@@ -43,24 +43,31 @@ def exec_cmd(cmd_and_args, as_shell = False, catch = 3):
|
||||
else:
|
||||
rc, out = runner.runtool(args, catch)
|
||||
out = out.strip()
|
||||
msger.debug("exec_cmd: output for %s (rc = %d): %s" % \
|
||||
(cmd_and_args, rc, out))
|
||||
|
||||
if rc != 0:
|
||||
# We don't throw exception when return code is not 0, because
|
||||
# parted always fails to reload part table with loop devices. This
|
||||
# prevents us from distinguishing real errors based on return
|
||||
# code.
|
||||
msger.warning("WARNING: %s returned '%s' instead of 0" % (cmd_and_args, rc))
|
||||
msger.debug("__exec_cmd: output for %s (rc = %d): %s" % \
|
||||
(cmd_and_args, rc, out))
|
||||
|
||||
return (rc, out)
|
||||
|
||||
|
||||
def exec_cmd(cmd_and_args, as_shell = False, catch = 3):
|
||||
"""
|
||||
Execute command, catching stderr, stdout
|
||||
|
||||
Exits if rc non-zero
|
||||
"""
|
||||
rc, out = __exec_cmd(cmd_and_args, as_shell, catch)
|
||||
|
||||
if rc != 0:
|
||||
msger.error("exec_cmd: %s returned '%s' instead of 0" % (cmd_and_args, rc))
|
||||
|
||||
return out
|
||||
|
||||
|
||||
def exec_cmd_quiet(cmd_and_args, as_shell = False):
|
||||
"""
|
||||
Execute command, catching nothing in the output
|
||||
|
||||
Need to execute as_shell if the command uses wildcards
|
||||
Exits if rc non-zero
|
||||
"""
|
||||
return exec_cmd(cmd_and_args, as_shell, 0)
|
||||
|
||||
@@ -82,7 +89,7 @@ def exec_native_cmd(cmd_and_args, native_sysroot, catch = 3):
|
||||
args = cmd_and_args.split()
|
||||
msger.debug(args)
|
||||
|
||||
rc, out = exec_cmd(native_cmd_and_args, True, catch)
|
||||
rc, out = __exec_cmd(native_cmd_and_args, True, catch)
|
||||
|
||||
if rc == 127: # shell command-not-found
|
||||
msger.error("A native (host) program required to build the image "
|
||||
@@ -135,7 +142,7 @@ def find_bitbake_env_lines(image_name):
|
||||
bitbake_env_cmd = "bitbake -e %s" % image_name
|
||||
else:
|
||||
bitbake_env_cmd = "bitbake -e"
|
||||
rc, bitbake_env_lines = exec_cmd(bitbake_env_cmd)
|
||||
rc, bitbake_env_lines = __exec_cmd(bitbake_env_cmd)
|
||||
if rc != 0:
|
||||
print "Couldn't get '%s' output." % bitbake_env_cmd
|
||||
return None
|
||||
|
||||
@@ -744,7 +744,7 @@ class PartitionedMount(Mount):
|
||||
|
||||
dd_cmd = "dd if=%s of=%s bs=%d seek=%d count=%d conv=notrunc" % \
|
||||
(source_file, self.image_file, self.sector_size, start, size)
|
||||
rc, out = exec_cmd(dd_cmd)
|
||||
exec_cmd(dd_cmd)
|
||||
|
||||
|
||||
def install(self, image_file):
|
||||
|
||||
Reference in New Issue
Block a user