Files
packages/lang/python/python-semanage/Makefile
T
Alexandru Ardelean acfafdaa03 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>
2026-04-25 07:48:58 +03:00

70 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.9
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:=ec05850aef48bfb8e02135a7f4f3f7edba3670f63d5e67f2708d4bd80b9a4634
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 \
python-setuptools/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))