From 413ca4e6c2089d8b5e0844c26cf5671209226b93 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 8 Nov 2023 16:21:19 +0000 Subject: gentoo auto-resync : 08:11:2023 - 16:21:18 --- sys-apps/Manifest.gz | Bin 49511 -> 49507 bytes sys-apps/proot/Manifest | 8 +- .../proot/files/proot-2.3.1-lib-paths-fix.patch | 19 -- sys-apps/proot/files/proot-5.1.0-loader.patch | 272 --------------------- sys-apps/proot/files/proot-5.1.0-makefile.patch | 22 -- sys-apps/proot/files/proot-5.4.0-makefile.patch | 11 + sys-apps/proot/proot-5.1.0-r2.ebuild | 77 ------ sys-apps/proot/proot-5.4.0.ebuild | 73 ++++++ 8 files changed, 87 insertions(+), 395 deletions(-) delete mode 100644 sys-apps/proot/files/proot-2.3.1-lib-paths-fix.patch delete mode 100644 sys-apps/proot/files/proot-5.1.0-loader.patch delete mode 100644 sys-apps/proot/files/proot-5.1.0-makefile.patch create mode 100644 sys-apps/proot/files/proot-5.4.0-makefile.patch delete mode 100644 sys-apps/proot/proot-5.1.0-r2.ebuild create mode 100644 sys-apps/proot/proot-5.4.0.ebuild (limited to 'sys-apps') diff --git a/sys-apps/Manifest.gz b/sys-apps/Manifest.gz index 7aa1991cf585..8481e259c061 100644 Binary files a/sys-apps/Manifest.gz and b/sys-apps/Manifest.gz differ diff --git a/sys-apps/proot/Manifest b/sys-apps/proot/Manifest index 2484d96e8068..9b3da0cc450c 100644 --- a/sys-apps/proot/Manifest +++ b/sys-apps/proot/Manifest @@ -1,10 +1,8 @@ -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 +AUX proot-5.4.0-makefile.patch 513 BLAKE2B dd128496d95614033544dc99abe493986e708538dc9d6db331d387fc21f91ce002f9003384f8cef383b373ce229d644c5c8d4298a6851637d673a673e5c4935e SHA512 f6ff80d613fc02a18213b29cd6fdec1e45cb7c37d0d8c64677d948c092cf4100c86c1cbfeadb3a0453add1c3d373bbe8bf06ce9e128298eea4954fc196778b89 DIST proot-5.3.0.tar.gz 224436 BLAKE2B 431ea8e1d1de5b9babe377b6f8bc04313f968dd5967f8ee4e2c8ab6be860f85cf201a6e7ca3c7299da7d142d6a034903724440ad94bd234a23df66ebc0e175ad SHA512 371767a0f759440bd9da86567c3eb81bcaea57ba93f954e858c69ae88b130d8c28fbac9d9748721f6b23e216527290d9f5cd5a9ca2809303d0aeaf53c325c161 -EBUILD proot-5.1.0-r2.ebuild 1823 BLAKE2B c2a1aa663ac505372e94045ba0481deb7a27254dbd4a89aacec8b4bb8fcfa0b242434c597afac3e826c6547258c3d53e55beee6c133604000e461b962f895fa6 SHA512 aaae8eb80442125c72e09181eb0e8ed5b5e205d9140367c6874a4e6cbb29400edb282187c091eeeb3236b78afc12dc154edf2628659357a06beba5f3d2b82f2b +DIST proot-5.4.0.tar.gz 225529 BLAKE2B 8e29224cf93d7fbf888134ebe8a9acbcb9d0d00cba3169dee609e57e5374743a62157b71cbd0e95f5e9e06659a914a3d488a8f6fb4c0b469ce945b5baa43b842 SHA512 c4d7b7428758c0d8f6a89ecaa01d1d7d5d9663a84b7e730e8160bc2a2385a7e278589f5dd86f5cd4f8e0736f09b3097b9efea7814096fd2d28e6032435b9ee63 EBUILD proot-5.3.0.ebuild 1822 BLAKE2B 980c6e127834da2f21cb22f0cc0119f38eb8299678887f139c0b4d01164744eaded39d7a3d9e98aa61fac4f69ff5e48e18a1aa4919d4db752cd41112ca7c36f8 SHA512 4db9db6b2a01611e86e29a3a76df06e74e444da9ae8f577e79a7b992b9b0a39da02f31ed3824027958740af6fff402dd0f492e4a78c81af30be499c1dc1ce278 +EBUILD proot-5.4.0.ebuild 1822 BLAKE2B 242f30d0bb90e6022603c07a66750c31ed107fe7f31c19d67ecbacdcaafaddd04ff69347877a73d6642ef2b0ff712eed610d30d10d02691868deca731371ab0f SHA512 9f0b1c8162b5cd54363bc51f125debdb173fea23cac13dd6c0deeddb5c7a9a637c357c7b66a5ba6a4a24cc65e34304ea95c7168ac4739a32ca76e71a1c3efd47 MISC metadata.xml 1022 BLAKE2B ff66b38969e0aca8bbe194fa3eb23046c99fac97245dc5b820a51e521e80366d0d01013856d26eeee393ec43dc8c29c819b3d21097615db1bd2b58ed706dbbc7 SHA512 a0f7bcb99f21b9911d15e5255a9eb9bfbda0b2dd02fd87bd9e16ddcb5ab31cf075e1b08989ead342bca055be6f88351bb751d0a5af8134efce39046e30259305 diff --git a/sys-apps/proot/files/proot-2.3.1-lib-paths-fix.patch b/sys-apps/proot/files/proot-2.3.1-lib-paths-fix.patch deleted file mode 100644 index 647f19183a9d..000000000000 --- a/sys-apps/proot/files/proot-2.3.1-lib-paths-fix.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/src/execve/ldso.c 2013-01-23 16:22:37.870287856 +0400 -+++ b/src/execve/ldso.c 2013-01-23 16:31:40.219283675 +0400 -@@ -285,16 +285,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:" --#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.1.0-loader.patch b/sys-apps/proot/files/proot-5.1.0-loader.patch deleted file mode 100644 index e74cfaa7807b..000000000000 --- a/sys-apps/proot/files/proot-5.1.0-loader.patch +++ /dev/null @@ -1,272 +0,0 @@ -commit 77d5ba4e5bb35f91d026a3240ad0a91a2d4b662a -Author: Cédric VINCENT -Date: Fri Feb 20 14:28:55 2015 +0100 - - Set tracee's stack executable when the loaded program requires this. - - This is required for UMEQ and for some older versions of PRoot. For - example: - - $ proot -q umeq-arm64-dce01957 -R ~/gentoo-arm64-20140718 - - Before: - - proot info: vpid 1 terminated with signal 11 - - Now, it is OK. - -diff --git a/src/compat.h b/src/compat.h -index 2b603f1..5009490 100644 ---- a/src/compat.h -+++ b/src/compat.h -@@ -243,5 +243,17 @@ - # ifndef MAP_ANONYMOUS - # define MAP_ANONYMOUS 0x20 - # endif -+# ifndef PROT_READ -+# define PROT_READ 0x1 -+# endif -+# ifndef PROT_WRITE -+# define PROT_WRITE 0x2 -+# endif -+# ifndef PROT_EXEC -+# define PROT_EXEC 0x4 -+# endif -+# ifndef PROT_GROWSDOWN -+# define PROT_GROWSDOWN 0x01000000 -+# endif - - #endif /* COMPAT_H */ -diff --git a/src/execve/elf.h b/src/execve/elf.h -index 3ced10c..a5b367b 100644 ---- a/src/execve/elf.h -+++ b/src/execve/elf.h -@@ -108,7 +108,8 @@ typedef union { - typedef enum { - PT_LOAD = 1, - PT_DYNAMIC = 2, -- PT_INTERP = 3 -+ PT_INTERP = 3, -+ PT_GNU_STACK = 0x6474e551, - } SegmentType; - - typedef struct { -diff --git a/src/execve/enter.c b/src/execve/enter.c -index cb84ec6..f0f3e7f 100644 ---- a/src/execve/enter.c -+++ b/src/execve/enter.c -@@ -252,6 +252,11 @@ static int add_load_info(const ElfHeader *elf_header, - return status; - break; - -+ case PT_GNU_STACK: -+ data->load_info->needs_executable_stack |= -+ ((PROGRAM_FIELD(*elf_header, *program_header, flags) & PF_X) != 0); -+ break; -+ - default: - break; - } -diff --git a/src/execve/execve.h b/src/execve/execve.h -index 11eca10..98b8d03 100644 ---- a/src/execve/execve.h -+++ b/src/execve/execve.h -@@ -49,6 +49,7 @@ typedef struct load_info { - char *raw_path; - Mapping *mappings; - ElfHeader elf_header; -+ bool needs_executable_stack; - - struct load_info *interp; - } LoadInfo; -diff --git a/src/execve/exit.c b/src/execve/exit.c -index e6eff44..36cc51f 100644 ---- a/src/execve/exit.c -+++ b/src/execve/exit.c -@@ -174,6 +174,9 @@ static void *transcript_mappings(void *cursor, const Mapping *mappings) - static int transfer_load_script(Tracee *tracee) - { - const word_t stack_pointer = peek_reg(tracee, CURRENT, STACK_POINTER); -+ static word_t page_size = 0; -+ static word_t page_mask = 0; -+ - word_t entry_point; - - size_t script_size; -@@ -190,10 +193,22 @@ static int transfer_load_script(Tracee *tracee) - void *buffer; - size_t buffer_size; - -+ bool needs_executable_stack; - LoadStatement *statement; - void *cursor; - int status; - -+ if (page_size == 0) { -+ page_size = sysconf(_SC_PAGE_SIZE); -+ if ((int) page_size <= 0) -+ page_size = 0x1000; -+ page_mask = ~(page_size - 1); -+ } -+ -+ needs_executable_stack = (tracee->load_info->needs_executable_stack -+ || ( tracee->load_info->interp != NULL -+ && tracee->load_info->interp->needs_executable_stack)); -+ - /* Strings addresses are required to generate the load script, - * for "open" actions. Since I want to generate it in one - * pass, these strings will be put right below the current -@@ -208,7 +223,7 @@ static int transfer_load_script(Tracee *tracee) - : strlen(tracee->load_info->raw_path) + 1); - - /* A padding will be appended at the end of the load script -- * (a.k.a "strings area") to ensure this latter is aligned on -+ * (a.k.a "strings area") to ensure this latter is aligned to - * a word boundary, for sake of performance. */ - padding_size = (stack_pointer - string1_size - string2_size - string3_size) - % sizeof_word(tracee); -@@ -229,6 +244,7 @@ static int transfer_load_script(Tracee *tracee) - : LOAD_STATEMENT_SIZE(*statement, open) - + (LOAD_STATEMENT_SIZE(*statement, mmap) - * talloc_array_length(tracee->load_info->interp->mappings))) -+ + (needs_executable_stack ? LOAD_STATEMENT_SIZE(*statement, make_stack_exec) : 0) - + LOAD_STATEMENT_SIZE(*statement, start); - - /* Allocate enough room for both the load script and the -@@ -266,6 +282,16 @@ static int transfer_load_script(Tracee *tracee) - else - entry_point = ELF_FIELD(tracee->load_info->elf_header, entry); - -+ if (needs_executable_stack) { -+ /* Load script statement: stack_exec. */ -+ statement = cursor; -+ -+ statement->action = LOAD_ACTION_MAKE_STACK_EXEC; -+ statement->make_stack_exec.start = stack_pointer & page_mask; -+ -+ cursor += LOAD_STATEMENT_SIZE(*statement, make_stack_exec); -+ } -+ - /* Load script statement: start. */ - statement = cursor; - -@@ -352,7 +378,7 @@ static int transfer_load_script(Tracee *tracee) - * | mmap file | - * +------------+ - * | open | -- * +------------+ <- stack pointer, sysarg1 (word aligned) -+ * +------------+ <- stack pointer, userarg1 (word aligned) - */ - - /* Remember we are in the sysexit stage, so be sure the -diff --git a/src/loader/assembly-arm.h b/src/loader/assembly-arm.h -index ee5bb85..59a7fe0 100644 ---- a/src/loader/assembly-arm.h -+++ b/src/loader/assembly-arm.h -@@ -89,4 +89,5 @@ - #define EXECVE 11 - #define EXIT 1 - #define PRCTL 172 -+#define MPROTECT 125 - -diff --git a/src/loader/assembly-x86.h b/src/loader/assembly-x86.h -index c83b3ef..4045144 100644 ---- a/src/loader/assembly-x86.h -+++ b/src/loader/assembly-x86.h -@@ -65,3 +65,4 @@ extern word_t syscall_1(word_t number, word_t arg1); - #define EXECVE 11 - #define EXIT 1 - #define PRCTL 172 -+#define MPROTECT 125 -diff --git a/src/loader/assembly-x86_64.h b/src/loader/assembly-x86_64.h -index c581208..6f431be 100644 ---- a/src/loader/assembly-x86_64.h -+++ b/src/loader/assembly-x86_64.h -@@ -93,3 +93,4 @@ - #define EXECVE 59 - #define EXIT 60 - #define PRCTL 157 -+#define MPROTECT 10 -diff --git a/src/loader/loader.c b/src/loader/loader.c -index 5b31b02..9c2037b 100644 ---- a/src/loader/loader.c -+++ b/src/loader/loader.c -@@ -171,6 +171,14 @@ void _start(void *cursor) - cursor += LOAD_STATEMENT_SIZE(*stmt, mmap); - break; - -+ case LOAD_ACTION_MAKE_STACK_EXEC: -+ SYSCALL(MPROTECT, 3, -+ stmt->make_stack_exec.start, 1, -+ PROT_READ | PROT_WRITE | PROT_EXEC | PROT_GROWSDOWN); -+ -+ cursor += LOAD_STATEMENT_SIZE(*stmt, make_stack_exec); -+ break; -+ - case LOAD_ACTION_START_TRACED: - traced = true; - /* Fall through. */ -diff --git a/src/loader/script.h b/src/loader/script.h -index bb48af5..6ae7621 100644 ---- a/src/loader/script.h -+++ b/src/loader/script.h -@@ -42,6 +42,10 @@ struct load_statement { - word_t clear_length; - } mmap; - -+ struct { -+ word_t start; -+ } make_stack_exec; -+ - struct { - word_t stack_pointer; - word_t entry_point; -@@ -67,7 +71,8 @@ typedef struct load_statement LoadStatement; - #define LOAD_ACTION_OPEN 1 - #define LOAD_ACTION_MMAP_FILE 2 - #define LOAD_ACTION_MMAP_ANON 3 --#define LOAD_ACTION_START_TRACED 4 --#define LOAD_ACTION_START 5 -+#define LOAD_ACTION_MAKE_STACK_EXEC 4 -+#define LOAD_ACTION_START_TRACED 5 -+#define LOAD_ACTION_START 6 - - #endif /* SCRIPT */ - -commit d649854ddb66779950954aac99d960379c631a71 -Author: Nicolas Cornu -Date: Wed Jul 29 14:52:57 2015 +0200 - - Fix use of size - -diff --git a/src/execve/enter.c b/src/execve/enter.c -index 8f22d9c..4c163a1 100644 ---- a/src/execve/enter.c -+++ b/src/execve/enter.c -@@ -454,10 +454,10 @@ static int expand_runner(Tracee* tracee, char host_path[PATH_MAX], char user_pat - } - - extern unsigned char _binary_loader_exe_start; --extern unsigned char _binary_loader_exe_size; -+extern unsigned char _binary_loader_exe_end; - - extern unsigned char WEAK _binary_loader_m32_exe_start; --extern unsigned char WEAK _binary_loader_m32_exe_size; -+extern unsigned char WEAK _binary_loader_m32_exe_end; - - /** - * Extract the built-in loader. This function returns NULL if an -@@ -483,11 +483,11 @@ static char *extract_loader(const Tracee *tracee, bool wants_32bit_version) - - if (wants_32bit_version) { - start = (void *) &_binary_loader_m32_exe_start; -- size = (size_t) &_binary_loader_m32_exe_size; -+ size = (size_t)(&_binary_loader_m32_exe_end-&_binary_loader_m32_exe_start); - } - else { - start = (void *) &_binary_loader_exe_start; -- size = (size_t) &_binary_loader_exe_size; -+ size = (size_t) (&_binary_loader_exe_end-&_binary_loader_exe_start); - } - - status2 = write(fd, start, size); diff --git a/sys-apps/proot/files/proot-5.1.0-makefile.patch b/sys-apps/proot/files/proot-5.1.0-makefile.patch deleted file mode 100644 index 414cb29010cb..000000000000 --- a/sys-apps/proot/files/proot-5.1.0-makefile.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/src/GNUmakefile 2018-08-01 16:30:00.957743804 +0300 -+++ b/src/GNUmakefile 2018-08-01 16:30:34.876741798 +0300 -@@ -15,8 +15,8 @@ - OBJDUMP = $(CROSS_COMPILE)objdump - - CPPFLAGS += -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -I. -I$(VPATH) --CFLAGS += -Wall -Wextra -O2 --LDFLAGS += -ltalloc -+CFLAGS += -Wall -Wextra -+LDFLAGS += -ltalloc -Wl,-z,noexecstack - - CARE_LDFLAGS = -larchive - -@@ -182,7 +182,7 @@ - $(eval $(call define_from_arch.h,$1,LOADER_ADDRESS)) - - LOADER_CFLAGS$1 += -fPIC -ffreestanding $(LOADER_ARCH_CFLAGS$1) --LOADER_LDFLAGS$1 += -static -nostdlib -Wl$(BUILD_ID_NONE),-Ttext=$(LOADER_ADDRESS$1) -+LOADER_LDFLAGS$1 += -static -nostdlib -Wl$(BUILD_ID_NONE),-Ttext=$(LOADER_ADDRESS$1),-z,noexecstack - - loader/loader$1.o: loader/loader.c - @mkdir -p $$(dir $$@) diff --git a/sys-apps/proot/files/proot-5.4.0-makefile.patch b/sys-apps/proot/files/proot-5.4.0-makefile.patch new file mode 100644 index 000000000000..55b0dc0dcb0f --- /dev/null +++ b/sys-apps/proot/files/proot-5.4.0-makefile.patch @@ -0,0 +1,11 @@ +--- a/src/GNUmakefile 2023-11-08 12:39:54.090525399 +0300 ++++ b/src/GNUmakefile 2023-11-08 12:40:02.514645883 +0300 +@@ -21,7 +21,7 @@ + HAS_PYTHON_CONFIG := $(shell ${PYTHON}-config --ldflags ${PYTHON_EMBED} 2>/dev/null) + + CPPFLAGS += -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -I. -I$(VPATH) -I$(VPATH)/../lib/uthash/include +-CFLAGS += -g -Wall -Wextra -O2 ++CFLAGS += -Wall -Wextra -O2 + CFLAGS += $(shell pkg-config --cflags talloc) + LDFLAGS += -Wl,-z,noexecstack + LDFLAGS += $(shell pkg-config --libs talloc) diff --git a/sys-apps/proot/proot-5.1.0-r2.ebuild b/sys-apps/proot/proot-5.1.0-r2.ebuild deleted file mode 100644 index cca458ee3e86..000000000000 --- a/sys-apps/proot/proot-5.1.0-r2.ebuild +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -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 test" - -RDEPEND="care? ( app-arch/libarchive:0= ) - sys-libs/talloc" -DEPEND="${RDEPEND} - care? ( dev-libs/uthash ) - test? ( dev-util/valgrind )" - -# Breaks sandbox -RESTRICT="test" - -S="${WORKDIR}/${MY_PN}-${PV}" - -PATCHES=( - "${FILESDIR}/${PN}-5.1.0-makefile.patch" - "${FILESDIR}/${PN}-2.3.1-lib-paths-fix.patch" - "${FILESDIR}/${PN}-5.1.0-loader.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") -} - -src_install() { - if use care; then - dobin src/care - dodoc doc/care/*.txt - fi - dobin src/proot - newman doc/proot/man.1 proot.1 - dodoc doc/proot/*.txt - dodoc -r doc/articles -} - -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 -} diff --git a/sys-apps/proot/proot-5.4.0.ebuild b/sys-apps/proot/proot-5.4.0.ebuild new file mode 100644 index 000000000000..95545db5b595 --- /dev/null +++ b/sys-apps/proot/proot-5.4.0.ebuild @@ -0,0 +1,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.4.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 +} -- cgit v1.2.3