# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="8" PYTHON_COMPAT=( python3_{11..14} ) inherit python-r1 toolchain-funcs multilib-minimal MY_PV="${PV//_/-}" MY_P="${PN}-${MY_PV}" DESCRIPTION="SELinux kernel and policy management library" HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki" if [[ ${PV} == 9999 ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git" S="${WORKDIR}/${P}/${PN}" else SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" KEYWORDS="~amd64 ~arm ~arm64 ~mips ~riscv ~x86" S="${WORKDIR}/${MY_P}" fi LICENSE="GPL-2" SLOT="0/2" REQUIRED_USE="${PYTHON_REQUIRED_USE}" RDEPEND="app-arch/bzip2[${MULTILIB_USEDEP}] >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP}] >=sys-libs/libselinux-${PV}:=[${MULTILIB_USEDEP}] >=sys-process/audit-2.2.2[${MULTILIB_USEDEP}] ${PYTHON_DEPS}" DEPEND="${RDEPEND}" BDEPEND=">=dev-lang/swig-2.0.4-r1 app-alternatives/yacc app-alternatives/lex virtual/pkgconfig" # tests are not meant to be run outside of the # full SELinux userland repo RESTRICT="test" src_prepare() { eapply_user cat <<-EOF >> "${S}/src/semanage.conf" || die # Set this to true to save the linked policy. # This is normally only useful for analysis # or debugging of policy. save-linked=false # Set this to 0 to disable assertion checking. # This should speed up building the kernel policy # from policy modules, but may leave you open to # dangerous rules which assertion checking # would catch. expand-check=1 # Modules in the module store can be compressed # with bzip2. Set this to the bzip2 blocksize # 1-9 when compressing. The higher the number, # the more memory is traded off for disk space. # Set to 0 to disable bzip2 compression. bzip-blocksize=0 # Reduce memory usage for bzip2 compression and # decompression of modules in the module store. bzip-small=true EOF multilib_copy_sources } multilib_src_compile() { local -x CFLAGS="${CFLAGS} -fno-semantic-interposition" emake \ AR="$(tc-getAR)" \ CC="$(tc-getCC)" \ LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ all if multilib_is_native_abi; then building_py() { emake \ AR="$(tc-getAR)" \ CC="$(tc-getCC)" \ PKG_CONFIG="$(tc-getPKG_CONFIG)" \ LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ "$@" } python_foreach_impl building_py swigify python_foreach_impl building_py pywrap fi } multilib_src_install() { emake \ LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ DESTDIR="${ED}" install if multilib_is_native_abi; then installation_py() { emake DESTDIR="${ED}" \ LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ PKG_CONFIG="$(tc-getPKG_CONFIG)" \ install-pywrap python_optimize # bug 531638 } python_foreach_impl installation_py fi } multiib_src_install_all() { python_setup python_fix_shebang "${ED}"/usr/libexec/selinux/semanage_migrate_store }