[oe-commits] [openembedded-core] 07/07: classes/debian: clean up process spawning

git at git.openembedded.org git at git.openembedded.org
Wed Jan 17 22:33:58 UTC 2018


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 8f7fdab41b8d6aced6753920bb5deed147c9baa8
Author: Ross Burton <ross.burton at intel.com>
AuthorDate: Tue Jan 16 13:37:54 2018 +0000

    classes/debian: clean up process spawning
    
    This code is old and was of it's time, rewrite it to use modernish (we support
    Python 3.4, so can't use subprocess.run()) subprocess and re idioms instead.
    
    Signed-off-by: Ross Burton <ross.burton at intel.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/classes/debian.bbclass | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/meta/classes/debian.bbclass b/meta/classes/debian.bbclass
index edc6da1..989ea8f 100644
--- a/meta/classes/debian.bbclass
+++ b/meta/classes/debian.bbclass
@@ -25,7 +25,7 @@ python () {
 }
 
 python debian_package_name_hook () {
-    import glob, copy, stat, errno, re, pathlib
+    import glob, copy, stat, errno, re, pathlib, subprocess
 
     pkgdest = d.getVar("PKGDEST")
     packages = d.getVar('PACKAGES')
@@ -76,15 +76,14 @@ python debian_package_name_hook () {
             if path in libdirs:
                 has_libs = 1
                 if so_re.match(os.path.basename(f)):
-                    cmd = (d.getVar('TARGET_PREFIX') or "") + "objdump -p " + f + " 2>/dev/null"
-                    fd = os.popen(cmd)
-                    lines = fd.readlines()
-                    fd.close()
-                    for l in lines:
-                        m = re.match("\s+SONAME\s+([^\s]*)", l)
-                        if m and not m.group(1) in sonames:
-                            sonames.append(m.group(1))
-
+                    try:
+                        cmd = [d.expand("${TARGET_PREFIX}objdump"), "-p", f]
+                        output = subprocess.check_output(cmd).decode("utf-8")
+                        for m in re.finditer("\s+SONAME\s+([^\s]+)", output):
+                            if m.group(1) not in sonames:
+                                sonames.append(m.group(1))
+                    except subprocess.CalledProcessError:
+                        pass
         bb.debug(1, 'LIBNAMES: pkg %s libs %d bins %d sonames %s' % (orig_pkg, has_libs, has_bins, sonames))
         soname = None
         if len(sonames) == 1:

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


More information about the Openembedded-commits mailing list