| # Copyright 1999-2019 Gentoo Authors |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| EAPI=6 |
| |
| inherit multilib multilib-minimal toolchain-funcs pam |
| |
| DESCRIPTION="POSIX 1003.1e capabilities" |
| HOMEPAGE="https://sites.google.com/site/fullycapable/" |
| SRC_URI="mirror://kernel/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" |
| |
| # it's available under either of the licenses |
| LICENSE="|| ( GPL-2 BSD )" |
| SLOT="0" |
| KEYWORDS="*" |
| IUSE="pam static-libs" |
| |
| # While the build system optionally uses gperf, we don't DEPEND on it because |
| # the build automatically falls back when it's unavailable. #604802 |
| RDEPEND=">=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}] |
| pam? ( virtual/pam[${MULTILIB_USEDEP}] )" |
| DEPEND="${RDEPEND} |
| sys-kernel/linux-headers" |
| |
| # Requires test suite being run as root (via sudo) |
| RESTRICT="test" |
| |
| PATCHES=( |
| "${FILESDIR}"/${PN}-2.25-build-system-fixes.patch |
| "${FILESDIR}"/${PN}-2.26-no-perl.patch |
| "${FILESDIR}"/${PN}-2.25-ignore-RAISE_SETFCAP-install-failures.patch |
| "${FILESDIR}"/${PN}-2.21-include.patch |
| ) |
| |
| src_prepare() { |
| default |
| multilib_copy_sources |
| } |
| |
| run_emake() { |
| local args=( |
| exec_prefix="${EPREFIX}" |
| lib_prefix="${EPREFIX}/usr" |
| lib="$(get_libdir)" |
| prefix="${EPREFIX}/usr" |
| PAM_CAP="$(usex pam yes no)" |
| DYNAMIC=yes |
| ) |
| emake "${args[@]}" "$@" |
| } |
| |
| multilib_src_compile() { |
| tc-export AR CC RANLIB |
| local BUILD_CC |
| tc-export_build_env BUILD_CC |
| |
| run_emake |
| } |
| |
| multilib_src_install() { |
| # no configure, needs explicit install line #444724#c3 |
| run_emake DESTDIR="${D}" install |
| |
| gen_usr_ldscript -a cap |
| if ! use static-libs ; then |
| rm "${ED%/}"/usr/$(get_libdir)/libcap.a || die |
| fi |
| |
| if [[ -d "${ED%/}"/usr/$(get_libdir)/security ]] ; then |
| rm -r "${ED%/}"/usr/$(get_libdir)/security || die |
| fi |
| |
| if use pam; then |
| dopammod pam_cap/pam_cap.so |
| dopamsecurity '' pam_cap/capability.conf |
| fi |
| } |
| |
| multilib_src_install_all() { |
| dodoc CHANGELOG README doc/capability.notes |
| } |