summaryrefslogtreecommitdiff
path: root/sys-apps/proot
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/proot')
-rw-r--r--sys-apps/proot/Manifest4
-rw-r--r--sys-apps/proot/files/proot-5.3.0-lib-paths-fix.patch21
-rw-r--r--sys-apps/proot/files/proot-5.3.0-makefile.patch11
-rw-r--r--sys-apps/proot/proot-5.3.0.ebuild72
4 files changed, 108 insertions, 0 deletions
diff --git a/sys-apps/proot/Manifest b/sys-apps/proot/Manifest
index 0a508e6a2005..d9b2a36821bd 100644
--- a/sys-apps/proot/Manifest
+++ b/sys-apps/proot/Manifest
@@ -1,6 +1,10 @@
AUX proot-2.3.1-lib-paths-fix.patch 704 BLAKE2B 2ec5d90122914299dd892001a2b100b7b263dc83f9a43533ee5d7ee7575f9a33e6703265da58d04b68c2f84d511e0206b43dbb4d5e8d9366c6bb52fbaa3ded88 SHA512 be372a1f7865a22f76f6eddcd348806a4c5351d4a9ffc4657ad41826ceadcb6f6cc3987d8e81ccaa022df01567066c9d5b450f315bb29cd01a266f8ae9141306
AUX proot-5.1.0-loader.patch 8308 BLAKE2B 097a5a3dbf46160a940acf194004443529b720fd8d323bb39057263cb294905e729f0d441a80bc52427e1108a9c1c4fe7dea7e84d39064258d98a3e832522ae0 SHA512 6c3018a4b44149260f2d9f9b8f892f972c0f85482fdc6b7d2858ab6ad16fdc68a9ea619dbcb80c1cb7b4a6d0af2b90329b4560f44baaf3fae29f3c624966ef12
AUX proot-5.1.0-makefile.patch 779 BLAKE2B a70e16c8f61501253adcd4cb40f69e315548d4394828af537c646fd46878ec75a5f3d24270458a1dfcb9bc70c2468efbcc6e629f848172a678fea27e9f4a5e2c SHA512 3ee5566e2209e0c3cc12ba9dbbbbc93d0080e66039aacbdc3c30974acf5380d4f855bee81a49976ea9c0a67f904456104a2d18777e5c0c10f530debae6e42df7
+AUX proot-5.3.0-lib-paths-fix.patch 790 BLAKE2B e4fd01b0655551abfdd3967984e9b3d496cddd1a85aca236b2f25f3eb498f237f61436452f72fd1859a8f52a0da69fce6d62fd788f0b309114fda28d12cb4fe0 SHA512 051f9139cd607bcf9a8575d0fdc7263b1ce0836a638575ff87054ca0e8d7ef51c4a776f5c5d2eb66e1eef9478bd6541d39d54df58307a91854692484e6d48d2b
+AUX proot-5.3.0-makefile.patch 498 BLAKE2B 569987c32065914fdc0964202aa9993809e85eca1dd091503ddcd45338e0f826e79413e997664af59eae48996b6976ce526604d54fc88bcab22317895e153ccf SHA512 42be0b37eb6e22035c8209a99b1c446a2473fdf2552c503f96051d758b45b1ad4946151450f82f9845954f56297e6f338db604f7ed5a3b1ef5672d741adf42cc
DIST proot-5.1.0.tar.gz 253251 BLAKE2B 8dc147d6c6ee303baf0c86f2fa4a8c17a58e76d9da9432635fc70ee06a65aa748ad617735012a1a18a520775fbe38c2264dcccefb681e8e829a5e7e1ddb05cca SHA512 26be26d405a8bcbe94377c3e9c18a571e4b61e3074f0716b0db3517d147d9d4a07c80f7312171cf9580ac7748e72e688efaf1b8e4a0ca3bfc31c802aa351346f
+DIST proot-5.3.0.tar.gz 224436 BLAKE2B 431ea8e1d1de5b9babe377b6f8bc04313f968dd5967f8ee4e2c8ab6be860f85cf201a6e7ca3c7299da7d142d6a034903724440ad94bd234a23df66ebc0e175ad SHA512 371767a0f759440bd9da86567c3eb81bcaea57ba93f954e858c69ae88b130d8c28fbac9d9748721f6b23e216527290d9f5cd5a9ca2809303d0aeaf53c325c161
EBUILD proot-5.1.0-r2.ebuild 1823 BLAKE2B c2a1aa663ac505372e94045ba0481deb7a27254dbd4a89aacec8b4bb8fcfa0b242434c597afac3e826c6547258c3d53e55beee6c133604000e461b962f895fa6 SHA512 aaae8eb80442125c72e09181eb0e8ed5b5e205d9140367c6874a4e6cbb29400edb282187c091eeeb3236b78afc12dc154edf2628659357a06beba5f3d2b82f2b
+EBUILD proot-5.3.0.ebuild 1767 BLAKE2B 3c081bfd700e78dc2acc37e1ba166912ea8f93bd57663f386e5870897f084303e4215e1bacbe3273314dd7ac2cb6596a9164858091dc70b4c2b113ebb3ca30da SHA512 ab8a90f7a7c6ee70bbace55a5137def3472eccce0b26ab67f46ba615433bf2c23c9220b951aac143d256fa37e90ec243406de55875dcc731cde8bbf25d728141
MISC metadata.xml 1022 BLAKE2B ff66b38969e0aca8bbe194fa3eb23046c99fac97245dc5b820a51e521e80366d0d01013856d26eeee393ec43dc8c29c819b3d21097615db1bd2b58ed706dbbc7 SHA512 a0f7bcb99f21b9911d15e5255a9eb9bfbda0b2dd02fd87bd9e16ddcb5ab31cf075e1b08989ead342bca055be6f88351bb751d0a5af8134efce39046e30259305
diff --git a/sys-apps/proot/files/proot-5.3.0-lib-paths-fix.patch b/sys-apps/proot/files/proot-5.3.0-lib-paths-fix.patch
new file mode 100644
index 000000000000..188caa4eaf41
--- /dev/null
+++ b/sys-apps/proot/files/proot-5.3.0-lib-paths-fix.patch
@@ -0,0 +1,21 @@
+--- a/src/execve/ldso.c 2022-01-21 11:42:37.539816477 +0300
++++ b/src/execve/ldso.c 2022-01-21 11:42:40.490817464 +0300
+@@ -506,18 +506,10 @@
+ /* 6. /lib, /usr/lib + /usr/local/lib */
+ if (IS_CLASS32(elf_header))
+ status = add_host_ldso_paths(host_ldso_paths,
+-#if defined(ARCH_X86) || defined(ARCH_X86_64)
+- "/lib/i386-linux-gnu:/usr/lib/i386-linux-gnu:"
+-#endif
+ "/lib32:/usr/lib32:/usr/local/lib32"
+ ":/lib:/usr/lib:/usr/local/lib");
+ else
+ status = add_host_ldso_paths(host_ldso_paths,
+-#if defined(ARCH_X86_64)
+- "/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:"
+-#elif defined(ARCH_ARM64)
+- "/lib/aarch64-linux-gnu:/usr/lib/aarch64-linux-gnu:"
+-#endif
+ "/lib64:/usr/lib64:/usr/local/lib64"
+ ":/lib:/usr/lib:/usr/local/lib");
+ if (status < 0)
diff --git a/sys-apps/proot/files/proot-5.3.0-makefile.patch b/sys-apps/proot/files/proot-5.3.0-makefile.patch
new file mode 100644
index 000000000000..15d7fc916b0e
--- /dev/null
+++ b/sys-apps/proot/files/proot-5.3.0-makefile.patch
@@ -0,0 +1,11 @@
+--- a/src/GNUmakefile 2022-01-21 11:40:00.957743804 +0300
++++ b/src/GNUmakefile 2022-01-21 11:40:34.876741798 +0300
+@@ -21,8 +21,8 @@
+ HAS_PYTHON_CONFIG := $(shell ${PYTHON}-config --ldflags ${PYTHON_EMBED} 2>/dev/null)
+
+ CPPFLAGS += -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -I. -I$(VPATH)
+-CFLAGS += -g -Wall -Wextra -O2
++CFLAGS += -Wall -Wextra
+ CFLAGS += $(shell pkg-config --cflags talloc libarchive)
+ LDFLAGS += -Wl,-z,noexecstack
+ LDFLAGS += $(shell pkg-config --libs talloc libarchive)
diff --git a/sys-apps/proot/proot-5.3.0.ebuild b/sys-apps/proot/proot-5.3.0.ebuild
new file mode 100644
index 000000000000..c9e3baeeab35
--- /dev/null
+++ b/sys-apps/proot/proot-5.3.0.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2022 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 ~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 )
+ 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
+}