mirror of
https://github.com/openwrt/packages.git
synced 2026-05-31 06:51:51 +08:00
python-semanage: fix cross-compilation, add test.sh
Add HOST_PYTHON3_PIP_VARS and --no-build-isolation to MAKE_VARS. Without --no-build-isolation, pip creates an isolated build environment which fails during cross-compilation because _sysconfigdata is missing. Aligns with python-selinux which already has this fix. The libsemanage pywrap uses the host Python's EXT_SUFFIX to name the C extension, so we will use the PYCEXT env-var to correct that. Add basic test.sh to verify the semanage Python bindings load correctly in environments without SELinux kernel support. Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
This commit is contained in:
committed by
Alexandru Ardelean
parent
e2e727e686
commit
acfafdaa03
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=python-semanage
|
||||
PKG_VERSION:=3.9
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
SRC_NAME:=libsemanage
|
||||
PKG_SOURCE:=$(SRC_NAME)-$(PKG_VERSION).tar.gz
|
||||
@@ -51,7 +51,10 @@ define Package/python3-semanage/description
|
||||
endef
|
||||
|
||||
MAKE_VARS += \
|
||||
$(PYTHON3_VARS)
|
||||
$(PYTHON3_VARS) \
|
||||
$(HOST_PYTHON3_PIP_VARS) \
|
||||
PYCEXT=.cpython-$(PYTHON3_VERSION_MAJOR)$(PYTHON3_VERSION_MINOR)$(ABIFLAGS)-$(MULTIARCH).so \
|
||||
PYTHON_SETUP_ARGS="--no-compile --no-build-isolation"
|
||||
|
||||
define Build/Compile
|
||||
$(call Build/Compile/Default,pywrap)
|
||||
|
||||
Executable
+16
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ "$1" = python3-semanage ] || exit 0
|
||||
|
||||
python3 - <<'EOF'
|
||||
import semanage
|
||||
|
||||
# Verify the C extension loaded and key functions/constants are available
|
||||
assert hasattr(semanage, 'semanage_handle_create'), "semanage_handle_create missing"
|
||||
assert hasattr(semanage, 'SEMANAGE_CON_DIRECT'), "SEMANAGE_CON_DIRECT missing"
|
||||
assert hasattr(semanage, 'SEMANAGE_CON_INVALID'), "SEMANAGE_CON_INVALID missing"
|
||||
assert hasattr(semanage, 'SEMANAGE_FCONTEXT_ALL'), "SEMANAGE_FCONTEXT_ALL missing"
|
||||
assert hasattr(semanage, 'SEMANAGE_FCONTEXT_REG'), "SEMANAGE_FCONTEXT_REG missing"
|
||||
|
||||
print("python3-semanage OK")
|
||||
EOF
|
||||
Reference in New Issue
Block a user