From bb70882fdae5f9d767261c38c8dfbee7d1bf362b Mon Sep 17 00:00:00 2001 From: Krzesimir Nowak Date: Tue, 1 Jul 2025 16:52:14 +0200 Subject: [PATCH] sys-libs/libsemanage: Sync with Gentoo It's from Gentoo commit 2a36cce420348509e5c8a75d75647c200f39b2bc. Signed-off-by: Krzesimir Nowak --- .../files/libsemanage-extra-config.patch | 30 ----- .../libsemanage/libsemanage-3.8.1.ebuild | 58 +++++---- .../libsemanage/libsemanage-9999.ebuild | 117 ++++++++++++++++++ 3 files changed, 152 insertions(+), 53 deletions(-) delete mode 100644 sdk_container/src/third_party/portage-stable/sys-libs/libsemanage/files/libsemanage-extra-config.patch create mode 100644 sdk_container/src/third_party/portage-stable/sys-libs/libsemanage/libsemanage-9999.ebuild diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libsemanage/files/libsemanage-extra-config.patch b/sdk_container/src/third_party/portage-stable/sys-libs/libsemanage/files/libsemanage-extra-config.patch deleted file mode 100644 index ecd0ffd920..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libsemanage/files/libsemanage-extra-config.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -r -u libsemanage-3.6/src/semanage.conf libsemanage-3.6-patched/src/semanage.conf ---- libsemanage-3.6/src/semanage.conf 2023-12-13 15:46:22.000000000 +0100 -+++ libsemanage-3.6-patched/src/semanage.conf 2024-02-21 14:33:06.055611733 +0100 -@@ -40,3 +40,26 @@ - # By default, semanage will generate policies for the SELinux target. - # To build policies for Xen, uncomment the following line. - #target-platform = xen -+ -+# 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 diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libsemanage/libsemanage-3.8.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libsemanage/libsemanage-3.8.1.ebuild index 77ad22f80f..1d2144d884 100644 --- a/sdk_container/src/third_party/portage-stable/sys-libs/libsemanage/libsemanage-3.8.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libsemanage/libsemanage-3.8.1.ebuild @@ -24,36 +24,50 @@ fi LICENSE="GPL-2" SLOT="0/2" -IUSE="+python" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" -RDEPEND=" - app-arch/bzip2[${MULTILIB_USEDEP}] +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? ( ${PYTHON_DEPS} ) -" + ${PYTHON_DEPS}" DEPEND="${RDEPEND}" -BDEPEND=" +BDEPEND=">=dev-lang/swig-2.0.4-r1 app-alternatives/yacc app-alternatives/lex - python? ( - >=dev-lang/swig-2.0.4-r1 - virtual/pkgconfig - ) -" + virtual/pkgconfig" # tests are not meant to be run outside of the # full SELinux userland repo RESTRICT="test" -PATCHES=( - "${FILESDIR}/libsemanage-extra-config.patch" -) - src_prepare() { - default + eapply_user + + echo >> "${S}/src/semanage.conf" + echo "# Set this to true to save the linked policy." >> "${S}/src/semanage.conf" + echo "# This is normally only useful for analysis" >> "${S}/src/semanage.conf" + echo "# or debugging of policy." >> "${S}/src/semanage.conf" + echo "save-linked=false" >> "${S}/src/semanage.conf" + echo >> "${S}/src/semanage.conf" + echo "# Set this to 0 to disable assertion checking." >> "${S}/src/semanage.conf" + echo "# This should speed up building the kernel policy" >> "${S}/src/semanage.conf" + echo "# from policy modules, but may leave you open to" >> "${S}/src/semanage.conf" + echo "# dangerous rules which assertion checking" >> "${S}/src/semanage.conf" + echo "# would catch." >> "${S}/src/semanage.conf" + echo "expand-check=1" >> "${S}/src/semanage.conf" + echo >> "${S}/src/semanage.conf" + echo "# Modules in the module store can be compressed" >> "${S}/src/semanage.conf" + echo "# with bzip2. Set this to the bzip2 blocksize" >> "${S}/src/semanage.conf" + echo "# 1-9 when compressing. The higher the number," >> "${S}/src/semanage.conf" + echo "# the more memory is traded off for disk space." >> "${S}/src/semanage.conf" + echo "# Set to 0 to disable bzip2 compression." >> "${S}/src/semanage.conf" + echo "bzip-blocksize=0" >> "${S}/src/semanage.conf" + echo >> "${S}/src/semanage.conf" + echo "# Reduce memory usage for bzip2 compression and" >> "${S}/src/semanage.conf" + echo "# decompression of modules in the module store." >> "${S}/src/semanage.conf" + echo "bzip-small=true" >> "${S}/src/semanage.conf" + multilib_copy_sources } @@ -66,7 +80,7 @@ multilib_src_compile() { LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ all - if use python && multilib_is_native_abi; then + if multilib_is_native_abi; then building_py() { emake \ AR="$(tc-getAR)" \ @@ -85,7 +99,7 @@ multilib_src_install() { LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ DESTDIR="${ED}" install - if use python && multilib_is_native_abi; then + if multilib_is_native_abi; then installation_py() { emake DESTDIR="${ED}" \ LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ @@ -98,8 +112,6 @@ multilib_src_install() { } multiib_src_install_all() { - if use python; then - python_setup - python_fix_shebang "${ED}"/usr/libexec/selinux/semanage_migrate_store - fi + python_setup + python_fix_shebang "${ED}"/usr/libexec/selinux/semanage_migrate_store } diff --git a/sdk_container/src/third_party/portage-stable/sys-libs/libsemanage/libsemanage-9999.ebuild b/sdk_container/src/third_party/portage-stable/sys-libs/libsemanage/libsemanage-9999.ebuild new file mode 100644 index 0000000000..f272a120b7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-libs/libsemanage/libsemanage-9999.ebuild @@ -0,0 +1,117 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" +PYTHON_COMPAT=( python3_{10..13} ) + +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 + + echo >> "${S}/src/semanage.conf" + echo "# Set this to true to save the linked policy." >> "${S}/src/semanage.conf" + echo "# This is normally only useful for analysis" >> "${S}/src/semanage.conf" + echo "# or debugging of policy." >> "${S}/src/semanage.conf" + echo "save-linked=false" >> "${S}/src/semanage.conf" + echo >> "${S}/src/semanage.conf" + echo "# Set this to 0 to disable assertion checking." >> "${S}/src/semanage.conf" + echo "# This should speed up building the kernel policy" >> "${S}/src/semanage.conf" + echo "# from policy modules, but may leave you open to" >> "${S}/src/semanage.conf" + echo "# dangerous rules which assertion checking" >> "${S}/src/semanage.conf" + echo "# would catch." >> "${S}/src/semanage.conf" + echo "expand-check=1" >> "${S}/src/semanage.conf" + echo >> "${S}/src/semanage.conf" + echo "# Modules in the module store can be compressed" >> "${S}/src/semanage.conf" + echo "# with bzip2. Set this to the bzip2 blocksize" >> "${S}/src/semanage.conf" + echo "# 1-9 when compressing. The higher the number," >> "${S}/src/semanage.conf" + echo "# the more memory is traded off for disk space." >> "${S}/src/semanage.conf" + echo "# Set to 0 to disable bzip2 compression." >> "${S}/src/semanage.conf" + echo "bzip-blocksize=0" >> "${S}/src/semanage.conf" + echo >> "${S}/src/semanage.conf" + echo "# Reduce memory usage for bzip2 compression and" >> "${S}/src/semanage.conf" + echo "# decompression of modules in the module store." >> "${S}/src/semanage.conf" + echo "bzip-small=true" >> "${S}/src/semanage.conf" + + 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 +}