diff options
author | Jason Zaman <perfinion@gentoo.org> | 2020-11-15 21:35:25 -0800 |
---|---|---|
committer | Jason Zaman <perfinion@gentoo.org> | 2020-11-15 21:36:13 -0800 |
commit | de0604960a0900547f065083a692a6b42bf713a6 (patch) | |
tree | 065b9ac67549b66c1a923bf337f4b7991e532d76 /sys-libs/libselinux/libselinux-3.1-r1.ebuild | |
parent | sys-libs/libsemanage: Update BDEPEND (diff) | |
download | gentoo-de0604960a0900547f065083a692a6b42bf713a6.tar.gz gentoo-de0604960a0900547f065083a692a6b42bf713a6.tar.bz2 gentoo-de0604960a0900547f065083a692a6b42bf713a6.zip |
sys-libs/libselinux: update BDEPEND
The EAPI 7 bump with version 3.1 did not define BDEPEND, so CBUILD tools
were left in DEPEND. This moves pkgconfig and swig to BDEPEND since they
must be executed natively and should not be cross-compiled.
Closes: https://bugs.gentoo.org/753251
Package-Manager: Portage-3.0.8, Repoman-3.0.2
Signed-off-by: Jason Zaman <perfinion@gentoo.org>
Diffstat (limited to 'sys-libs/libselinux/libselinux-3.1-r1.ebuild')
-rw-r--r-- | sys-libs/libselinux/libselinux-3.1-r1.ebuild | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/sys-libs/libselinux/libselinux-3.1-r1.ebuild b/sys-libs/libselinux/libselinux-3.1-r1.ebuild new file mode 100644 index 000000000000..d28e9b76f0f1 --- /dev/null +++ b/sys-libs/libselinux/libselinux-3.1-r1.ebuild @@ -0,0 +1,155 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +PYTHON_COMPAT=( python3_{6..9} ) +USE_RUBY="ruby25 ruby26 ruby27" + +# No, I am not calling ruby-ng +inherit multilib python-r1 toolchain-funcs multilib-minimal + +MY_P="${P//_/-}" +SEPOL_VER="${PV}" +MY_RELEASEDATE="20200710" + +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}/${MY_P}/${PN}" +else + SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_RELEASEDATE}/${MY_P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~mips ~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-${SEPOL_VER}:=[${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 + + 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 +} |