Files
packages/lang/python/python-semanage/Makefile
T
Alexandru Ardelean 3685975072 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>
(cherry picked from commit acfafdaa03)
[keep version 3.8.1 from openwrt-25.12]
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2026-09-28 14:02:36 +03:00

68 lines
2.0 KiB
Makefile

#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=python-semanage
PKG_VERSION:=3.8.1
PKG_RELEASE:=2
SRC_NAME:=libsemanage
PKG_SOURCE:=$(SRC_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/SELinuxProject/selinux/releases/download/$(PKG_VERSION)
PKG_HASH:=7b39127b219cc70bfd935a4af6b0f2ba83d4b35c916f253c7e942c23ab490f07
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/$(SRC_NAME)-$(PKG_VERSION)
PKG_MAINTAINER:=Thomas Petazzoni <thomas.petazzoni@bootlin.com>
PKG_LICENSE:=LGPL-2.1-or-later
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:selinuxproject:libsemanage
PKG_BUILD_DEPENDS:=swig/host
PKG_BUILD_PARALLEL:=1
PYTHON3_PKG_BUILD:=0
include $(INCLUDE_DIR)/package.mk
include ../python3-package.mk
define Package/python3-semanage
SUBMENU:=Python
SECTION:=lang
CATEGORY:=Languages
TITLE:=SELinux policy management library bindings
DEPENDS:=+python3-light +libsemanage
URL:=http://selinuxproject.org/page/Main_Page
endef
define Package/python3-semanage/description
libsemanage is the policy management library. It uses
libsepol for binary policy manipulation and libselinux for
interacting with the SELinux system. It also exec's helper
programs for loading policy and for checking whether the
file_contexts configuration is valid (load_policy and
setfiles from policycoreutils) presently, although this may
change at least for the bootstrapping case (for rpm).
This package provides the Python bindings for libsemanage.
endef
MAKE_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)
endef
define Build/Install
$(call Build/Install/Default,install-pywrap)
endef
$(eval $(call Py3Package,python3-semanage))
$(eval $(call BuildPackage,python3-semanage))
$(eval $(call BuildPackage,python3-semanage-src))