package/python-iptables: use installed iptables by default

python-iptables depends on ctypes.util.find_library() which does not
work due to the absence of gcc and friends on target. The location of
the xtables library and the iptables modules can be configured through
environment variables. Within the scope of buildroot we can determine
what these should be at build time and replace the calls to os.getenv()
with the correct value.

Fixes: https://bugs.busybox.net/show_bug.cgi?id=12271

Signed-off-by: Frank Vanbever <frank.vanbever@essensium.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
Frank Vanbever 2020-03-11 11:54:46 +01:00 committed by Arnout Vandecappelle (Essensium/Mind)
parent c8324bf87c
commit d341ec0350
2 changed files with 10 additions and 1 deletions

View File

@ -1,7 +1,7 @@
config BR2_PACKAGE_PYTHON_IPTABLES
bool "python-iptables"
depends on !BR2_STATIC_LIBS
select BR2_PACKAGE_IPTABLES # runtime dependency
select BR2_PACKAGE_IPTABLES
help
Python bindings for iptables.

View File

@ -9,5 +9,14 @@ PYTHON_IPTABLES_SITE = https://files.pythonhosted.org/packages/ca/6e/cba9c6f4b5a
PYTHON_IPTABLES_SETUP_TYPE = setuptools
PYTHON_IPTABLES_LICENSE = Apache-2.0
PYTHON_IPTABLES_LICENSE_FILES = NOTICE
PYTHON_IPTABLES_DEPENDENCIES = iptables
define PYTHON_IPTABLES_SET_XTABLES_ENV_VARS
XTABLES_VERSION=`awk '/XTABLES_VERSION_CODE/ {print $$NF}' $(STAGING_DIR)/usr/include/xtables-version.h`; \
sed -i "s%os.getenv(\"PYTHON_IPTABLES_XTABLES_VERSION\")%$$XTABLES_VERSION%" $(@D)/iptc/xtables.py
sed -i "s%os.getenv(\"XTABLES_LIBDIR\")%\"/usr/lib/xtables\"%" $(@D)/iptc/xtables.py
endef
PYTHON_IPTABLES_PRE_BUILD_HOOKS += PYTHON_IPTABLES_SET_XTABLES_ENV_VARS
$(eval $(python-package))