diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-07-20 08:29:12 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-07-24 11:52:07 +0100 |
commit | bcc03ea19e103f6aa93bada2f49fcc5cc7bc0790 (patch) | |
tree | bddbc6d8a3b7ea034e6cd1b377a4ab8bd5096206 | |
parent | 6334129dfbe266602fab70ce445641053a05be6c (diff) | |
download | openembedded-core-bcc03ea19e103f6aa93bada2f49fcc5cc7bc0790.tar.gz openembedded-core-bcc03ea19e103f6aa93bada2f49fcc5cc7bc0790.tar.bz2 openembedded-core-bcc03ea19e103f6aa93bada2f49fcc5cc7bc0790.zip |
package: Don't use subshell to execute file
We don't need any functionality from the shell here, its just extra fork
overhead. Therefore remove it and use subprocess directly.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/package.bbclass | 8 | ||||
-rw-r--r-- | meta/lib/oe/package.py | 8 |
2 files changed, 4 insertions, 12 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 7a49e4f351..02914b52bb 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -888,6 +888,7 @@ python fixup_perms () { python split_and_strip_files () { import stat, errno + import subprocess dvar = d.getVar('PKGD') pn = d.getVar('PN') @@ -933,12 +934,7 @@ python split_and_strip_files () { # 16 - kernel module def isELF(path): type = 0 - ret, result = oe.utils.getstatusoutput("file -b '%s'" % path) - - if ret: - msg = "split_and_strip_files: 'file %s' failed" % path - package_qa_handle_error("split-strip", msg, d) - return type + result = subprocess.check_output(["file", "-b", path], stderr=subprocess.STDOUT).decode("utf-8") # Not stripped if "ELF" in result: diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py index 4f3e21ad40..8a303106a9 100644 --- a/meta/lib/oe/package.py +++ b/meta/lib/oe/package.py @@ -56,7 +56,7 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, qa_already_stripped= :param qa_already_stripped: Set to True if already-stripped' in ${INSANE_SKIP} This is for proper logging and messages only. """ - import stat, errno, oe.path, oe.utils, mmap + import stat, errno, oe.path, oe.utils, mmap, subprocess # Detect .ko module by searching for "vermagic=" string def is_kernel_module(path): @@ -72,11 +72,7 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, qa_already_stripped= # 16 - kernel module def is_elf(path): exec_type = 0 - ret, result = oe.utils.getstatusoutput("file -b '%s'" % path) - - if ret: - bb.error("split_and_strip_files: 'file %s' failed" % path) - return exec_type + result = subprocess.check_output(["file", "-b", path], stderr=subprocess.STDOUT).decode("utf-8") if "ELF" in result: exec_type |= 1 |