diff options
Diffstat (limited to 'sys-libs/libselinux')
-rw-r--r-- | sys-libs/libselinux/Manifest | 2 | ||||
-rw-r--r-- | sys-libs/libselinux/libselinux-3.3.ebuild | 156 |
2 files changed, 158 insertions, 0 deletions
diff --git a/sys-libs/libselinux/Manifest b/sys-libs/libselinux/Manifest index 303007df619b..1915493dae08 100644 --- a/sys-libs/libselinux/Manifest +++ b/sys-libs/libselinux/Manifest @@ -1,6 +1,8 @@ DIST libselinux-3.1.tar.gz 204703 BLAKE2B 72ff2d99dd6640405e804f58bdfbf05e152615ea92f902b3942602af13dc17080afeabb942ed33ae6b3f528870f4b11584e533848e455a97bf8f7151a8d44646 SHA512 57730cddd2d4751556d9e1f207c0f85119c81848f0620c16239e997150989e3f9a586a8c23861fd51ed89f7e084ad441190a58a288258a49a95f7beef7dbbb13 DIST libselinux-3.2.tar.gz 206380 BLAKE2B 544eaaa87b9738c61929abe48713b530a8909eaea017890040f2fe299af86f09b6eb2cf4c9a68e06268ba09923b2b67703ac7a2b973906acb45f698e9ccaeed2 SHA512 18129ac0b9936e1f66021f1b311cf1c1e27a01e50cb70f08a3e1c642c5251e4538aec25a8427778569dfecf5333cf1fb84f1a59afdce8019328d0cff7e5833c5 +DIST libselinux-3.3.tar.gz 206826 BLAKE2B e4cd2bf7172db1dd7661dd7981f875eb45f3c123805618edd03d7258f4b1f7afc974020187ec2e9e50dd59b3581ee21a29012eaa90ddfa82e43db4b8e60c51b7 SHA512 9a89c05ea4b17453168a985ece93ba6d6c4127916e657c46d4135eb59a1f6408faa0802cc2e49187defbde5247d659037beee089877affbab3eab6af3433696c EBUILD libselinux-3.1-r1.ebuild 4215 BLAKE2B 36d801acf1836645c710ba451aee245317c85dca7452ee990b1ae4f409e758d1cbdd3e47bd839e642e04e6d0cc30a4413060470a47a613a503361182d51128d6 SHA512 1e62339dd7530ce1eed4884024960e2012b533bc7d1160ce3a821956c502af7eaefee69dddb166df44a5d2a26940d5357400f5019c7b62cfc0209161cfa33af5 EBUILD libselinux-3.2.ebuild 4241 BLAKE2B 4b93aa92a88f03e0bbbc1dd917f899416537e8894d6e830e60920c1cd6b17fc8809c1f2753ddf957f5a5c6fda3b74afeb1ab0012cd1e4dcf3bdee41e5b712982 SHA512 9441fd4d3afe9a1a016d3a99de27c2c1c82c0ad8646dae3bc4cd4775aa3ccece58d95343a3f43b6e6c6eec4ac967a8d0735ff162506e06a99e5fdaa82274a740 +EBUILD libselinux-3.3.ebuild 4243 BLAKE2B 5c7c423ff4a25cd4631099320e406722fea8f539d4ac986f8be445de22fbc07b52b4190ff3709fde9df32e30213c4a3414df28e2971aa976a57a8c984bb88a10 SHA512 64dc774c7687ffb3c5a5d79943eefad9dac019352d1e458b81b1ca5d5766b6e2f757a49ec8118b514984ac793842534ce76c10c4075cd509d61210baf76464e5 EBUILD libselinux-9999.ebuild 4235 BLAKE2B 907af15311f4f5e94583ecd32a097021feb022ef997d95eaddf046c6d36c384f6d9ad4de9f2a58cdeb8a65a2993ea5faf4060a840a2af23fe7fd7c5c1e42fef0 SHA512 83b2dca2f27d387db7ce337a217ff3cc25f2271b9a57d0017aec52f4dbed53aab7bbdea3f5f930ad033dcb9bfa1ac3bd3f37ccaa72b31f4b2341919d0d739e65 MISC metadata.xml 746 BLAKE2B 4965c5541d4d9481d3e74e28a7d40a47b17895b3fb095111a46524fa77ec45527306f7960375c2d5c1fcfa3cc106aebd6e055341e99b46a2bb2e2f464c6b35ed SHA512 683a5acd27beb458c2f6c8aa7404e4920923d873a993ac21f52b9191a86e0ca5a74e9376a9a6d9e7b225a95a79ae4e813a05184c8c49d0ed7859e768890f080f diff --git a/sys-libs/libselinux/libselinux-3.3.ebuild b/sys-libs/libselinux/libselinux-3.3.ebuild new file mode 100644 index 000000000000..8653460938e6 --- /dev/null +++ b/sys-libs/libselinux/libselinux-3.3.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +PYTHON_COMPAT=( python3_{7..10} ) +USE_RUBY="ruby25 ruby26 ruby27" + +# No, I am not calling ruby-ng +inherit python-r1 toolchain-funcs multilib-minimal + +MY_PV="${PV//_/-}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="SELinux userland 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="public-domain" +SLOT="0" +IUSE="pcre2 python ruby static-libs ruby_targets_ruby25 ruby_targets_ruby26 ruby_targets_ruby27" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +RDEPEND=">=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP}] + !pcre2? ( >=dev-libs/libpcre-8.33-r1:=[static-libs?,${MULTILIB_USEDEP}] ) + pcre2? ( dev-libs/libpcre2:=[static-libs?,${MULTILIB_USEDEP}] ) + python? ( ${PYTHON_DEPS} ) + ruby? ( + ruby_targets_ruby25? ( dev-lang/ruby:2.5 ) + ruby_targets_ruby26? ( dev-lang/ruby:2.6 ) + ruby_targets_ruby27? ( dev-lang/ruby:2.7 ) + ) + elibc_musl? ( sys-libs/fts-standalone )" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig + python? ( >=dev-lang/swig-2.0.9 ) + ruby? ( >=dev-lang/swig-2.0.9 )" + +src_prepare() { + eapply_user + + multilib_copy_sources +} + +multilib_src_compile() { + tc-export AR CC PKG_CONFIG RANLIB + + local -x CFLAGS="${CFLAGS} -fno-semantic-interposition" + + emake \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + LDFLAGS="-fPIC ${LDFLAGS} -pthread" \ + USE_PCRE2="$(usex pcre2 y n)" \ + FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ + all + + if multilib_is_native_abi && use python; then + building() { + emake \ + LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + USE_PCRE2="$(usex pcre2 y n)" \ + FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ + pywrap + } + python_foreach_impl building + fi + + if multilib_is_native_abi && use ruby; then + building() { + einfo "Calling rubywrap for ${1}" + # Clean up .lo file to force rebuild + rm -f src/selinuxswig_ruby_wrap.lo || die + emake \ + RUBY=${1} \ + LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + USE_PCRE2="$(usex pcre2 y n)" \ + FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \ + rubywrap + } + for RUBYTARGET in ${USE_RUBY}; do + use ruby_targets_${RUBYTARGET} || continue + + building ${RUBYTARGET} + done + fi +} + +multilib_src_install() { + emake DESTDIR="${D}" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + USE_PCRE2="$(usex pcre2 y n)" \ + install + + if multilib_is_native_abi && use python; then + installation() { + emake DESTDIR="${D}" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + USE_PCRE2="$(usex pcre2 y n)" \ + install-pywrap + python_optimize # bug 531638 + } + python_foreach_impl installation + fi + + if multilib_is_native_abi && use ruby; then + installation() { + einfo "Calling install-rubywrap for ${1}" + # Forcing (re)build here as otherwise the resulting SO file is used for all ruby versions + rm src/selinuxswig_ruby_wrap.lo + emake DESTDIR="${D}" \ + LIBDIR="\$(PREFIX)/$(get_libdir)" \ + SHLIBDIR="/$(get_libdir)" \ + RUBY=${1} \ + USE_PCRE2="$(usex pcre2 y n)" \ + install-rubywrap + } + for RUBYTARGET in ${USE_RUBY}; do + use ruby_targets_${RUBYTARGET} || continue + + installation ${RUBYTARGET} + done + fi + + use static-libs || rm "${D}"/usr/lib*/*.a || die +} + +pkg_postinst() { + # Fix bug 473502 + for POLTYPE in ${POLICY_TYPES}; + do + mkdir -p /etc/selinux/${POLTYPE}/contexts/files || die + touch /etc/selinux/${POLTYPE}/contexts/files/file_contexts.local || die + # Fix bug 516608 + for EXPRFILE in file_contexts file_contexts.homedirs file_contexts.local ; do + if [[ -f "/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" ]]; then + sefcontext_compile /etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE} \ + || die "Failed to recompile contexts" + fi + done + done +} |