path: root/meta
diff options
authorBruce Ashfield <>2017-09-28 15:59:09 (GMT)
committerRichard Purdie <>2017-10-07 22:20:39 (GMT)
commit748356ff34899ce74d3d682e13d05b8bc2bc05e3 (patch)
treeaefd59e026b5672db3e62a3850666fdc59d5dd28 /meta
parent43fc3d8e180c168dbe5dd5faa577e69a279bd1bd (diff)
cml1: remove diffconfig return code checking
The following commit: [ commit 578c8205fd14c48c6d30ef2889d86f1b4aee060a Author: Mikko Rapeli <> Date: Thu Jun 22 16:23:14 2017 +0300 meta: Fix return value checks from's Python function returns the return value of the executed process. If return values are not checked, errors may go unnoticed and bad things can happen. Change all callers of which do not check for the return value to use subprocess.check_call() which raises CalledProcessError if the subprocess returns with non-zero value. All users of the function were found with: $ git grep "subprocess\.call" | \ egrep -v 'if.*subprocess\.call|=\ +subprocess\.call|return.*subprocess\.call' Tested similar patch on top of yocto jethro. Only compile tested core-image-minimal on poky master branch. Signed-off-by: Mikko Rapeli <> Signed-off-by: Ross Burton <> Signed-off-by: Richard Purdie <> ] Added return code checking to do_diffconfig. Although the change is well intentioned, it isn't correct in this instance since 'diff' returns '1' to indicate that there are differences in the files .. and not as an error code. subprocess.check_call() flags this as an error and the routine aborts. We are already checking the inputs, and in fact already know there's a diff in the files before we even make the call, so there's no need to look for an error in this case. Putting back restores the routine to working order. [YOCTO #12132] (From OE-Core rev: ec48b8fd79181978f90b4b0ab00fbe78ddbd416e) Signed-off-by: Bruce Ashfield <> Signed-off-by: Ross Burton <> Signed-off-by: Richard Purdie <>
Diffstat (limited to 'meta')
1 files changed, 3 insertions, 2 deletions
diff --git a/meta/classes/cml1.bbclass b/meta/classes/cml1.bbclass
index eb8e790..926747f 100644
--- a/meta/classes/cml1.bbclass
+++ b/meta/classes/cml1.bbclass
@@ -63,8 +63,9 @@ python do_diffconfig() {
63 63
64 if isdiff: 64 if isdiff:
65 statement = 'diff --unchanged-line-format= --old-line-format= --new-line-format="%L" ' + configorig + ' ' + config + '>' + fragment 65 statement = 'diff --unchanged-line-format= --old-line-format= --new-line-format="%L" ' + configorig + ' ' + config + '>' + fragment
66 subprocess.check_call(statement, shell=True) 66, shell=True)
67 67 # No need to check the exit code as we know it's going to be
68 # non-zero, but that's what we expect.
68 shutil.copy(configorig, config) 69 shutil.copy(configorig, config)
69 70
70 bb.plain("Config fragment has been dumped into:\n %s" % fragment) 71 bb.plain("Config fragment has been dumped into:\n %s" % fragment)