From 5031cf42ffb221b52e527d8afc54138c1fb161a1 Mon Sep 17 00:00:00 2001 From: Etienne Cordonnier Date: Fri, 12 Jan 2024 16:20:30 +0100 Subject: package.py: fix Darwin support - 'subprocess.Popen([d.expand("${HOST_PREFIX}otool)' requires text-mode (a more readable alias for the universal_newlines parameter), since otool produces text and the code 'out.split("\n")' expects a string, not a bytes object. otool is used on MacOS only, so this error isn't triggered on Linux. - use 'startswith("darwin")' in order to support all darwin versions and not just specific versions (meta-darwin supports darwin21 at the moment). (From OE-Core rev: 248ca79a6400e063c4965f9542c614bf837ff758) Signed-off-by: Dominik Schnitzer Signed-off-by: Etienne Cordonnier Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- meta/lib/oe/package.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'meta/lib/oe') diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py index 9a465eaa09..702d8403be 100644 --- a/meta/lib/oe/package.py +++ b/meta/lib/oe/package.py @@ -1615,7 +1615,7 @@ def process_shlibs(pkgfiles, d): sonames.add(prov) if file.endswith('.dylib') or file.endswith('.so'): rpath = [] - p = subprocess.Popen([d.expand("${HOST_PREFIX}otool"), '-l', file], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p = subprocess.Popen([d.expand("${HOST_PREFIX}otool"), '-l', file], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) out, err = p.communicate() # If returned successfully, process stdout for results if p.returncode == 0: @@ -1624,7 +1624,7 @@ def process_shlibs(pkgfiles, d): if l.startswith('path '): rpath.append(l.split()[1]) - p = subprocess.Popen([d.expand("${HOST_PREFIX}otool"), '-L', file], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p = subprocess.Popen([d.expand("${HOST_PREFIX}otool"), '-L', file], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) out, err = p.communicate() # If returned successfully, process stdout for results if p.returncode == 0: @@ -1686,7 +1686,7 @@ def process_shlibs(pkgfiles, d): soname = None if cpath.islink(file): continue - if hostos == "darwin" or hostos == "darwin8": + if hostos.startswith("darwin"): darwin_so(file, needed, sonames, renames, pkgver) elif hostos.startswith("mingw"): mingw_dll(file, needed, sonames, renames, pkgver) -- cgit v1.2.3-54-g00ecf