diff --git a/sys-libs/libapparmor/Manifest b/sys-libs/libapparmor/Manifest index cd2bf2da42f92..055463ac9a28b 100644 --- a/sys-libs/libapparmor/Manifest +++ b/sys-libs/libapparmor/Manifest @@ -1,2 +1,3 @@ DIST apparmor-3.1.4.tar.gz 7965268 BLAKE2B a9be29a42bb96c1d2c69a6b7627d59aea023f22fe79bff1a487aa5ddd6845ec98f67be5c597ec51edf4493513dfed3b43fc493f454bcf48b3f43c44572ffc2ae SHA512 db65edfa1b9c1f953940165e71dddcab9a2d378f29683b0b4e5d44f0810bb0105ba3820ba89de927ef90d0a94ea6d61e91ce3de09ec2e385817735a93d4039c4 DIST apparmor-4.0.3.tar.gz 8211339 BLAKE2B 715391a1fc0fb57b820a8bcebdc76ae96e436a29546b9c47019f10f4d22942431ba5c878d92bb61b47ff17012e026195b8d7d78a329cc1cc182a31bc3b512e63 SHA512 8b1240ec56fe4f987edcda9380de685e36f4ac931772e980a8f3655dfbfd7e337a4b15227c7ceecb87d9a2bb592e466ec39912ef8f2fa59f8802464d72df8da2 +DIST apparmor-v4.1.7.tar.bz2 5861899 BLAKE2B 00f881cbe989a686fbc7c0f6178b8b1892767378bb8da79a4656a8abfb222212037751e7c2ce2ca558c1ca2398684452ad10056b7e3eb1dd354155dbe688f78d SHA512 ac39de21042be5c85c1cac07082444772b506e0701ec0d3300d5515f14b3673a485ab37aeb38e3533a236b03ecf9a0e1032bbdd296e878e68b93472ebc8fd1ae diff --git a/sys-libs/libapparmor/libapparmor-4.1.7.ebuild b/sys-libs/libapparmor/libapparmor-4.1.7.ebuild new file mode 100644 index 0000000000000..f829c68e0e7b4 --- /dev/null +++ b/sys-libs/libapparmor/libapparmor-4.1.7.ebuild @@ -0,0 +1,167 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_OPTIONAL=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{12..15} ) +GENTOO_DEPEND_ON_PERL="no" + +inherit autotools distutils-r1 dot-a perl-module + +MY_PV="$(ver_cut 1-2)" + +DESCRIPTION="Library to support AppArmor userspace utilities" +HOMEPAGE="https://gitlab.com/apparmor/apparmor/wikis/home" +SRC_URI="https://gitlab.com/apparmor/apparmor/-/archive/v${PV}/apparmor-v${PV}.tar.bz2" +S=${WORKDIR}/apparmor-v${PV}/libraries/${PN} + +LICENSE="GPL-2 LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +IUSE="doc +perl +python ${GENTOO_PERL_USESTRING} test" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +RDEPEND=" + perl? ( + ${GENTOO_PERL_DEPSTRING} + dev-lang/perl:= + ) + python? ( + ${PYTHON_DEPS} + ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-build/autoconf-archive + sys-apps/which + sys-devel/bison + sys-devel/flex + doc? ( dev-lang/perl ) + perl? ( dev-lang/swig ) + python? ( + ${PYTHON_DEPS} + ${DISTUTILS_DEPS} + dev-lang/swig + ) + test? ( + dev-util/dejagnu + ) +" + +src_prepare() { + default + + use python && distutils-r1_src_prepare + + # We used to rm m4/ but led to this after eautoreconf: + # checking whether the libapparmor man pages should be generated... yes + # ./configure: 5065: PROG_PODCHECKER: not found + # ./configure: 5068: PROG_POD2MAN: not found + # checking whether python bindings are enabled... yes + eautoreconf +} + +src_configure() { + lto-guarantee-fat + + # Run configure through distutils-r1.eclass. Bug 764779 + if use python; then + distutils-r1_src_configure + else + python_configure_all + fi +} + +python_configure_all() { + # Fails with reflex/byacc, heavily relies on bisonisms + export LEX=flex + export YACC=yacc.bison + + local myeconfargs=( + # Needed for tests, just always install them. + --enable-static + $(use_with perl) + $(use_with python) + ) + + econf "${myeconfargs[@]}" +} + +src_compile() { + emake -C src + emake -C include + use doc && emake -C doc + use perl && emake -C swig/perl + + if use python ; then + pushd swig/python > /dev/null || die + emake libapparmor_wrap.c + distutils-r1_src_compile + popd > /dev/null || die + fi +} + +src_test() { + # Avoid perl-module_src_test. We also need to avoid running the + # Python tests in the wrong environment here. + mv swig/python/test/test_python.py.in{,.bak} || die + touch swig/python/test/test_python.py.in + default + mv swig/python/test/test_python.py.in{.bak,} || die + + if use python ; then + pushd swig/python > /dev/null || die + distutils-r1_src_test + popd > /dev/null || die + fi +} + +python_test() { + cd test || die + + # Force regeneration wrt the earlier hack we did + touch test_python.py.in || die + # Create test_python.py from test_python.py.in + emake test_python.py + + LD_LIBRARY_PATH="${S}/src/.libs:${LD_LIBRARY_PATH}" ${EPYTHON} test_python.py || die +} + +src_install() { + emake DESTDIR="${D}" -C src install + emake DESTDIR="${D}" -C include install + use doc && emake DESTDIR="${D}" -C doc install + + if use perl ; then + emake DESTDIR="${D}" -C swig/perl install + perl_set_version + insinto "${VENDOR_ARCH}" + doins swig/perl/LibAppArmor.pm + + # bug 620886 + perl_delete_localpod + perl_fix_packlist + fi + + if use python ; then + pushd swig/python > /dev/null || die + distutils-r1_src_install + popd > /dev/null || die + fi + + dodoc AUTHORS ChangeLog NEWS README + + strip-lto-bytecode + find "${D}" -name '*.la' -delete || die +} + +python_install() { + distutils-r1_python_install + + python_moduleinto LibAppArmor + python_domodule LibAppArmor.py +}