From 899d25c511c6ce779b7153e9ae2e41055b30b9c5 Mon Sep 17 00:00:00 2001 From: Frank Vanbever Date: Mon, 9 Mar 2020 12:36:47 +0100 Subject: [PATCH] Add '.so' as additional shared object suffix EXT_SUFFIX includes a platform information tag starting from Python 3.5 [0] For example: >>> sysconfig.get_config_var("EXT_SUFFIX") '.cpython-38-aarch64-linux-gnu.so' This suffix only applies to cpython extensions i.e. not to the iptables shared objects. Adding '.so' as an additional suffix for shared objects fixes the issue. Fixes: Issue #301 Signed-off-by: Frank Vanbever Backported from: 899d25c511c6ce779b7153e9ae2e41055b30b9c5 [0]: https://docs.python.org/3/whatsnew/3.5.html#build-and-c-api-changes --- iptc/util.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/iptc/util.py b/iptc/util.py index e6b1649..04fe905 100644 --- a/iptc/util.py +++ b/iptc/util.py @@ -80,12 +80,19 @@ def _do_find_library(name): def _find_library(*names): + exts = [] if version_info >= (3, 3): - ext = get_config_var("EXT_SUFFIX") + exts.append(get_config_var("EXT_SUFFIX")) else: - ext = get_config_var('SO') + exts.append(get_config_var('SO')) + + if version_info >= (3, 5): + exts.append('.so') + for name in names: - libnames = [name, "lib" + name, name + ext, "lib" + name + ext] + libnames = [name, "lib" + name] + for ext in exts: + libnames += [name + ext, "lib" + name + ext] libdir = os.environ.get('IPTABLES_LIBDIR', None) if libdir is not None: libdirs = libdir.split(':') -- 2.20.1