summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Zaman <perfinion@gentoo.org>2020-11-15 21:35:25 -0800
committerJason Zaman <perfinion@gentoo.org>2020-11-15 21:36:13 -0800
commitde0604960a0900547f065083a692a6b42bf713a6 (patch)
tree065b9ac67549b66c1a923bf337f4b7991e532d76 /sys-libs/libselinux/libselinux-3.1-r1.ebuild
parentsys-libs/libsemanage: Update BDEPEND (diff)
downloadgentoo-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.ebuild155
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
+}