summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2024-11-02 14:14:55 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-11-04 14:34:42 +0000
commite366c7a67175e219322eba5dc7bdfb6f42a1bfcf (patch)
tree2f779c9433be56eb1b34e8941920e48f8253fbf1
parentcc5879e4f54b55a9c18b1ecd15707106b71cf7f5 (diff)
downloadpoky-e366c7a67175e219322eba5dc7bdfb6f42a1bfcf.tar.gz
python3-libarchive-c: Avoid using find_library python API
find_library API depends on platform to provide ldconfig, ld, gcc, objdump etc, so either we add these dependencies or avoid them by computing the libarchive library name during build, which we can be done. This ensures that ffi module works with musl as well as glibc equally as musl does not provide ldconfig like glibc does (From OE-Core rev: db350fa7c3c33956fb652eef8aefebaf18ead841) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Cc: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/python/python3-libarchive-c/0001-ffi-Insert-a-replacable-anchor-for-find_library.patch29
-rw-r--r--meta/recipes-devtools/python/python3-libarchive-c_5.1.bb9
2 files changed, 38 insertions, 0 deletions
diff --git a/meta/recipes-devtools/python/python3-libarchive-c/0001-ffi-Insert-a-replacable-anchor-for-find_library.patch b/meta/recipes-devtools/python/python3-libarchive-c/0001-ffi-Insert-a-replacable-anchor-for-find_library.patch
new file mode 100644
index 0000000000..7b8775802f
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-libarchive-c/0001-ffi-Insert-a-replacable-anchor-for-find_library.patch
@@ -0,0 +1,29 @@
1From ed20aba335996d3aa97d99dfc122eb5a3a26ba1b Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 2 Nov 2024 11:06:01 -0700
4Subject: [PATCH] ffi: Insert a replacable anchor for find_library
5
6@@REPLACE_FIND_LIBRARY_API@@ must be sustituted from bitbake environment via
7recipe. This also helps in detecting changes to code from upstream in
8this area as this patch will fail to apply.
9
10Upstream-Status: Inappropriate [OE-Specific]
11
12Signed-off-by: Khem Raj <raj.khem@gmail.com>
13---
14 libarchive/ffi.py | 2 +-
15 1 file changed, 1 insertion(+), 1 deletion(-)
16
17diff --git a/libarchive/ffi.py b/libarchive/ffi.py
18index 1fc321a..991f1b6 100644
19--- a/libarchive/ffi.py
20+++ b/libarchive/ffi.py
21@@ -22,7 +22,7 @@ logger = logging.getLogger('libarchive')
22
23 page_size = mmap.PAGESIZE
24
25-libarchive_path = os.environ.get('LIBARCHIVE') or find_library('archive')
26+libarchive_path = os.environ.get('LIBARCHIVE') or @@REPLACE_FIND_LIBRARY_API@@
27 libarchive = ctypes.cdll.LoadLibrary(libarchive_path)
28
29
diff --git a/meta/recipes-devtools/python/python3-libarchive-c_5.1.bb b/meta/recipes-devtools/python/python3-libarchive-c_5.1.bb
index 3116c6b62e..333831c4b6 100644
--- a/meta/recipes-devtools/python/python3-libarchive-c_5.1.bb
+++ b/meta/recipes-devtools/python/python3-libarchive-c_5.1.bb
@@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=bcab380227a83bc147350b40a81e6ffc"
7 7
8SRC_URI += " \ 8SRC_URI += " \
9 file://new-libarchive.patch \ 9 file://new-libarchive.patch \
10 file://0001-ffi-Insert-a-replacable-anchor-for-find_library.patch \
10 file://run-ptest \ 11 file://run-ptest \
11" 12"
12 13
@@ -16,6 +17,14 @@ inherit pypi setuptools3 ptest
16 17
17SRC_URI[sha256sum] = "7bcce24ea6c0fa3bc62468476c6d2f6264156db2f04878a372027c10615a2721" 18SRC_URI[sha256sum] = "7bcce24ea6c0fa3bc62468476c6d2f6264156db2f04878a372027c10615a2721"
18 19
20DEPENDS += "patchelf-native libarchive"
21# Avoid using find_library API which needs ldconfig and ld/objdump
22# https://docs.python.org/3/library/ctypes.html#ctypes-reference
23#
24do_configure:append() {
25 sed -i -e "s|@@REPLACE_FIND_LIBRARY_API@@|'${libdir}/$(patchelf --print-soname ${STAGING_LIBDIR}/libarchive.so)'|" ${S}/libarchive/ffi.py
26}
27
19RDEPENDS:${PN} += "\ 28RDEPENDS:${PN} += "\
20 libarchive \ 29 libarchive \
21 python3-ctypes \ 30 python3-ctypes \