dev-python/pytest: arm64 stable (bug #723996)
[gentoo.git] / sys-apps / minijail / minijail-12.ebuild
1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI="7"
5
6 inherit linux-info toolchain-funcs
7
8 DESCRIPTION="helper binary and library for sandboxing & restricting privs of service"
9 HOMEPAGE="https://android.googlesource.com/platform/external/minijail"
10
11 # Use GitHub mirror as Gitiles doesn't generate stable tarballs.
12 SRC_URI="https://github.com/google/${PN}/archive/linux-v${PV}.tar.gz -> ${P}.tar.gz"
13
14 LICENSE="BSD"
15 SLOT="0"
16 KEYWORDS="~amd64 ~x86"
17 IUSE="+seccomp test"
18 RESTRICT="!test? ( test )"
19
20 RDEPEND="sys-libs/libcap-ng:="
21 DEPEND="${RDEPEND}
22         test? (
23                 virtual/pkgconfig
24                 >=dev-cpp/gtest-1.8.0:=
25         )"
26
27 S="${WORKDIR}/${PN}-linux-v${PV}"
28
29 PATCHES=(
30         "${FILESDIR}/minijail-12-makefile.patch"
31 )
32
33 pkg_pretend() {
34         local CONFIG_CHECK="~NAMESPACES ~UTS_NS ~IPC_NS ~USER_NS ~PID_NS ~NET_NS
35                 ~SECCOMP ~SECCOMP_FILTER ~CGROUPS"
36         check_extra_config
37 }
38
39 src_configure() {
40         export LIBDIR="/usr/$(get_libdir)"
41         export USE_seccomp="$(usex seccomp)"
42         export USE_SYSTEM_GTEST=yes
43         if use test; then
44                 export GTEST_CXXFLAGS="$($(tc-getPKG_CONFIG) --cflags gtest_main)"
45                 export GTEST_LIBS="$($(tc-getPKG_CONFIG) --libs gtest_main)"
46         else
47                 export GTEST_CXXFLAGS='' GTEST_LIBS=''
48         fi
49         export VERBOSE=1
50 }
51
52 src_compile() {
53         tc-env_build emake all parse_seccomp_policy
54 }
55
56 src_test() {
57         GTEST_FILTER="-NamespaceTest.test_tmpfs_userns:NamespaceTest.test_namespaces" \
58                 tc-env_build emake tests
59 }
60
61 src_install() {
62         dosbin minijail0
63         dolib.so libminijail{,preload}.so
64         dobin parse_seccomp_policy
65
66         doman minijail0.[15]
67         dodoc README.md
68
69         local include_dir="/usr/include"
70
71         "${S}"/platform2_preinstall.sh "${PV}" "${include_dir}"
72         insinto "/usr/$(get_libdir)/pkgconfig"
73         doins libminijail.pc
74
75         insinto "${include_dir}"
76         doins libminijail.h scoped_minijail.h
77 }