[oe-commits] Richard Purdie : classes/lib: Fix getcmdstatus breakage

git at git.openembedded.org git at git.openembedded.org
Thu May 9 15:17:27 UTC 2013


Module: openembedded-core.git
Branch: master
Commit: 2253e9f12734c6e6aa489942b5e4628eca1fa29d
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=2253e9f12734c6e6aa489942b5e4628eca1fa29d

Author: Richard Purdie <richard.purdie at linuxfoundation.org>
Date:   Thu May  9 14:55:04 2013 +0000

classes/lib: Fix getcmdstatus breakage

I mistakenly thought subprocess had getcmdstatus in python 2. It doesn't so lets
add a wrapper and have this work in both worlds.

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 meta/classes/kernel-yocto.bbclass        |    4 ++--
 meta/classes/package.bbclass             |    4 ++--
 meta/classes/sanity.bbclass              |    5 ++---
 meta/lib/oe/patch.py                     |    4 ++--
 meta/lib/oe/utils.py                     |   10 ++++++++++
 meta/recipes-core/psplash/psplash_git.bb |    4 ++--
 6 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index c81e70e..d513ad2 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -254,7 +254,7 @@ do_kernel_configme() {
 }
 
 python do_kernel_configcheck() {
-    import re, string, sys, subprocess
+    import re, string, sys
 
     bb.plain("NOTE: validating kernel config, see log.do_kernel_configcheck for details")
 
@@ -265,7 +265,7 @@ python do_kernel_configcheck() {
 
     pathprefix = "export PATH=%s:%s; " % (d.getVar('PATH', True), "${S}/scripts/util/")
     cmd = d.expand("cd ${S}; kconf_check -config- %s/meta-series ${S} ${B}" % kmeta)
-    ret, result = subprocess.getstatusoutput("%s%s" % (pathprefix, cmd))
+    ret, result = oe.utils.getstatusoutput("%s%s" % (pathprefix, cmd))
 
     config_check_visibility = d.getVar( "KCONF_AUDIT_LEVEL", True ) or 1
     if config_check_visibility == 1:
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 1dba185..7d0684c 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -696,7 +696,7 @@ python fixup_perms () {
 }
 
 python split_and_strip_files () {
-    import stat, errno, subprocess
+    import stat, errno
 
     dvar = d.getVar('PKGD', True)
     pn = d.getVar('PN', True)
@@ -732,7 +732,7 @@ python split_and_strip_files () {
     # 16 - kernel module
     def isELF(path):
         type = 0
-        ret, result = subprocess.getstatusoutput("file '%s'" % path)
+        ret, result = oe.utils.getstatusoutput("file '%s'" % path)
 
         if ret:
             bb.error("split_and_strip_files: 'file %s' failed" % path)
diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index 3836c04..1fb4a6c 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -342,13 +342,12 @@ def check_gcc_march(sanity_data):
         f = open("gcc_test.c", "w")
         f.write("int main (){ __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4; return 0;}\n")
         f.close()
-        import subprocess
 
         # Check if GCC could work without march
-        status,result = subprocess.getstatusoutput("${BUILD_PREFIX}gcc gcc_test.c -o gcc_test")
+        status,result = oe.utils.getstatusoutput("${BUILD_PREFIX}gcc gcc_test.c -o gcc_test")
         if status != 0:
             # Check if GCC could work with march
-            status,result = subprocess.getstatusoutput("${BUILD_PREFIX}gcc -march=native gcc_test.c -o gcc_test")
+            status,result = oe.utils.getstatusoutput("${BUILD_PREFIX}gcc -march=native gcc_test.c -o gcc_test")
             if status == 0: 
                 result = True
             else:
diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py
index 8de73a7..244f6c5 100644
--- a/meta/lib/oe/patch.py
+++ b/meta/lib/oe/patch.py
@@ -17,7 +17,7 @@ class CmdError(bb.BBHandledException):
 
 
 def runcmd(args, dir = None):
-    import subprocess, pipes
+    import pipes
 
     if dir:
         olddir = os.path.abspath(os.curdir)
@@ -30,7 +30,7 @@ def runcmd(args, dir = None):
         args = [ pipes.quote(str(arg)) for arg in args ]
         cmd = " ".join(args)
         # print("cmd: %s" % cmd)
-        (exitstatus, output) = subprocess.getstatusoutput(cmd)
+        (exitstatus, output) = oe.utils.getstatusoutput(cmd)
         if exitstatus != 0:
             raise CmdError(exitstatus >> 8, output)
         return output
diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py
index ed94096..ec8260d 100644
--- a/meta/lib/oe/utils.py
+++ b/meta/lib/oe/utils.py
@@ -1,3 +1,10 @@
+try:
+    # Python 2
+    import commands as cmdstatus
+except ImportError:
+    # Python 3
+    import subprocess as cmdstatus
+
 def read_file(filename):
     try:
         f = file( filename, "r" )
@@ -123,3 +130,6 @@ def packages_filter_out_system(d):
         if pkg not in blacklist and localepkg not in pkg:
             pkgs.append(pkg)
     return pkgs
+
+def getstatusoutput(cmd):
+    return cmdstatus.getstatusoutput(cmd)
diff --git a/meta/recipes-core/psplash/psplash_git.bb b/meta/recipes-core/psplash/psplash_git.bb
index 392fada..fdb5e77 100644
--- a/meta/recipes-core/psplash/psplash_git.bb
+++ b/meta/recipes-core/psplash/psplash_git.bb
@@ -71,7 +71,7 @@ ALTERNATIVE_PRIORITY = "100"
 ALTERNATIVE_LINK_NAME[psplash] = "${bindir}/psplash"
 
 python do_compile () {
-    import shutil, subprocess
+    import shutil
 
     # Build a separate executable for each splash image
     convertscript = "%s/make-image-header.sh" % d.getVar('S', True)
@@ -80,7 +80,7 @@ python do_compile () {
     outputfiles = d.getVar('SPLASH_INSTALL', True).split()
     for localfile, outputfile in zip(localfiles, outputfiles):
         if localfile.endswith(".png"):
-            outp = subprocess.getstatusoutput('%s %s POKY' % (convertscript, localfile))
+            outp = oe.utils.getstatusoutput('%s %s POKY' % (convertscript, localfile))
             print(outp[1])
             fbase = os.path.splitext(os.path.basename(localfile))[0]
             shutil.copyfile("%s-img.h" % fbase, destfile)





More information about the Openembedded-commits mailing list