blob: eb4b5e4b443cf65f5578dcc1cd6c93e5ab60896d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_PN="PRoot"
inherit toolchain-funcs
SRC_URI="https://github.com/proot-me/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
DESCRIPTION="User-space implementation of chroot, mount --bind, and binfmt_misc"
HOMEPAGE="https://proot-me.github.io"
LICENSE="GPL-2"
SLOT="0"
IUSE="care doc test"
RDEPEND="care? ( app-arch/libarchive:0= )
sys-libs/talloc"
BDEPEND="dev-python/docutils"
DEPEND="${RDEPEND}
care? ( dev-libs/uthash )
elibc_musl? ( sys-libs/queue-standalone )
test? ( dev-util/valgrind )"
# Breaks sandbox
RESTRICT="test"
PATCHES=(
"${FILESDIR}/${PN}-5.3.0-makefile.patch"
"${FILESDIR}/${PN}-5.3.0-lib-paths-fix.patch"
)
src_compile() {
# build the proot and care targets
emake -C src V=1 \
CC="$(tc-getCC)" \
OBJCOPY="$(tc-getOBJCOPY)" \
OBJDUMP="$(tc-getOBJDUMP)" \
STRIP="$(tc-getSTRIP)" \
CHECK_VERSION="true" \
CAREBUILDENV="ok" \
proot $(use care && echo "care")
emake -C doc SUFFIX=".py" proot/man.1
}
src_install() {
use care && dobin src/care
dobin src/proot
dodoc doc/proot/*.rst
newman doc/proot/man.1 proot.1
}
src_test() {
emake -C tests -j1 CC="$(tc-getCC)"
}
pkg_postinst() {
elog "If you have segfaults on recent (>4.8) kernels"
elog "try to disable seccomp support like so:"
elog "'export PROOT_NO_SECCOMP=1'"
elog "prior to running proot"
if use care; then
elog "You have enabled 'care' USE flag, that builds and installs"
elog "dynamically linked care binary."
elog "Upstream does NOT support such way of building CARE,"
elog "it provides only prebuilt binaries."
elog "CARE also has known problems on hardened systems"
elog "Please do NOT file bugs about them to https://bugs.gentoo.org"
fi
}
|