[oe-commits] [openembedded-core] 15/28: cml1: remove diffconfig return code checking

git at git.openembedded.org git at git.openembedded.org
Fri Oct 6 11:05:55 UTC 2017


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit ec48b8fd79181978f90b4b0ab00fbe78ddbd416e
Author: Bruce Ashfield <bruce.ashfield at windriver.com>
AuthorDate: Thu Sep 28 11:59:09 2017 -0400

    cml1: remove diffconfig return code checking
    
    The following commit:
    
    [
      commit 578c8205fd14c48c6d30ef2889d86f1b4aee060a
      Author: Mikko Rapeli <mikko.rapeli at bmw.de>
      Date:   Thu Jun 22 16:23:14 2017 +0300
    
          meta: Fix return value checks from subprocess.call()'s
    
          Python function subprocess.call() 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 subprocess.call() which do not check for
          the return value to use subprocess.check_call() which raises
          CalledProcessError if the subprocess returns with non-zero value.
    
          https://docs.python.org/2/library/subprocess.html#using-the-subprocess-module
    
          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 <mikko.rapeli at bmw.de>
          Signed-off-by: Ross Burton <ross.burton at intel.com>
          Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
    ]
    
    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 subprocess.call() restores the routine to working order.
    
    [YOCTO #12132]
    
    Signed-off-by: Bruce Ashfield <bruce.ashfield at windriver.com>
    Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 meta/classes/cml1.bbclass | 5 +++--
 1 file 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() {
 
     if isdiff:
         statement = 'diff --unchanged-line-format= --old-line-format= --new-line-format="%L" ' + configorig + ' ' + config + '>' + fragment
-        subprocess.check_call(statement, shell=True)
-
+        subprocess.call(statement, shell=True)
+        # No need to check the exit code as we know it's going to be
+        # non-zero, but that's what we expect.
         shutil.copy(configorig, config)
 
         bb.plain("Config fragment has been dumped into:\n %s" % fragment)

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list