selinux-python: fix cross-compilation, add test.sh

Add --no-build-isolation to PYTHON_SETUP_ARGS. Without it, pip creates
an isolated build environment which fails during cross-compilation
because _sysconfigdata is missing for the target arch.

Add test.sh verifying python3-sepolgen module loads correctly and
selinux-audit2allow binary is functional.

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
This commit is contained in:
Alexandru Ardelean
2026-04-03 13:53:07 +03:00
committed by Alexandru Ardelean
parent acfafdaa03
commit 9122b66499
2 changed files with 44 additions and 2 deletions
+2 -2
View File
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=selinux-python
PKG_VERSION:=3.9
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/SELinuxProject/selinux/releases/download/$(PKG_VERSION)
@@ -55,7 +55,7 @@ endef
MAKE_VARS = \
$(PYTHON3_VARS) \
$(HOST_PYTHON3_PIP_VARS) \
PYTHON_SETUP_ARGS=--no-compile
PYTHON_SETUP_ARGS="--no-compile --no-build-isolation"
define Build/Compile
$(call Build/Compile/Default,all)
+42
View File
@@ -0,0 +1,42 @@
#!/bin/sh
case "$1" in
python3-sepolgen)
python3 - <<'EOF'
import sepolgen.interfaces as iface
import sepolgen.policygen as pg
import sepolgen.access as access
# Verify core classes are importable
assert hasattr(iface, 'InterfaceSet'), "InterfaceSet missing"
assert hasattr(pg, 'PolicyGenerator'), "PolicyGenerator missing"
assert hasattr(access, 'AccessVector'), "AccessVector missing"
# Basic AccessVector construction
av = access.AccessVector()
av.src_type = "httpd_t"
av.tgt_type = "var_log_t"
av.obj_class = "file"
av.perms.add("write")
assert "write" in av.perms
print("python3-sepolgen OK")
EOF
;;
python3-seobject)
python3 - <<'EOF'
import seobject
# Verify key record types are available (no SELinux system required)
assert hasattr(seobject, 'portRecords'), "portRecords missing"
assert hasattr(seobject, 'fcontextRecords'), "fcontextRecords missing"
assert hasattr(seobject, 'booleanRecords'), "booleanRecords missing"
assert hasattr(seobject, 'seluserRecords'), "seluserRecords missing"
print("python3-seobject OK")
EOF
;;
*)
exit 0
;;
esac