commit: 728f8c43b8b540f37871be3080ac63c05a9cf6a7 Author: Mike Gilbert <floppym <AT> gentoo <DOT> org> AuthorDate: Mon Sep 7 16:55:11 2020 +0000 Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org> CommitDate: Mon Sep 7 16:55:11 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=728f8c43
sys-apps/file: backport a seccomp fix for musl Closes: https://bugs.gentoo.org/728978 Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org> sys-apps/file/file-5.39-r1.ebuild | 140 --------------------- .../{file-5.39-r2.ebuild => file-5.39-r3.ebuild} | 5 +- sys-apps/file/file-5.39.ebuild | 140 --------------------- .../file/files/file-5.39-add-missing-termios.patch | 35 +++--- ...ndbox.patch => file-5.39-portage-sandbox.patch} | 18 ++- sys-apps/file/files/file-5.39-seccomp-musl.patch | 37 ++++++ .../file/files/file-5.39-seccomp_sandbox.patch | 13 -- 7 files changed, 67 insertions(+), 321 deletions(-) diff --git a/sys-apps/file/file-5.39-r1.ebuild b/sys-apps/file/file-5.39-r1.ebuild deleted file mode 100644 index 8333fd922e2..00000000000 --- a/sys-apps/file/file-5.39-r1.ebuild +++ /dev/null @@ -1,140 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6..9} ) -DISTUTILS_OPTIONAL=1 - -inherit autotools distutils-r1 libtool toolchain-funcs multilib-minimal - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://github.com/glensc/file.git" - inherit git-r3 -else - SRC_URI="ftp://ftp.astron.com/pub/file/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -fi - -DESCRIPTION="identify a file's format by scanning binary data for patterns" -HOMEPAGE="https://www.darwinsys.com/file/" - -LICENSE="BSD-2" -SLOT="0" -IUSE="bzip2 lzma python seccomp static-libs zlib" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -DEPEND=" - bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] ) - lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] ) - python? ( - ${PYTHON_DEPS} - dev-python/setuptools[${PYTHON_USEDEP}] - ) - zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )" -RDEPEND="${DEPEND} - python? ( !dev-python/python-magic ) - seccomp? ( sys-libs/libseccomp[${MULTILIB_USEDEP}] )" - -PATCHES=( - "${FILESDIR}/${PN}-5.39-portage_sandbox.patch" #713710 #728978 -) - -src_prepare() { - default - eautoreconf - elibtoolize - - # don't let python README kill main README #60043 - mv python/README.md python/README.python.md || die - sed '[email protected]@README.python.md@' -i python/setup.py || die #662090 -} - -multilib_src_configure() { - local myeconfargs=( - --enable-fsect-man5 - $(use_enable bzip2 bzlib) - $(use_enable lzma xzlib) - $(use_enable seccomp libseccomp) - $(use_enable static-libs static) - $(use_enable zlib) - ) - econf "${myeconfargs[@]}" -} - -build_src_configure() { - local myeconfargs=( - --disable-shared - --disable-libseccomp - --disable-bzlib - --disable-xzlib - --disable-zlib - ) - tc-env_build econf "${myeconfargs[@]}" -} - -need_build_file() { - # when cross-compiling, we need to build up our own file - # because people often don't keep matching host/target - # file versions #362941 - tc-is-cross-compiler && ! has_version -b "~${CATEGORY}/${P}" -} - -src_configure() { - local ECONF_SOURCE=${S} - - if need_build_file; then - mkdir -p "${WORKDIR}"/build || die - cd "${WORKDIR}"/build || die - build_src_configure - fi - - multilib-minimal_src_configure -} - -multilib_src_compile() { - if multilib_is_native_abi ; then - emake - else - cd src || die - emake magic.h #586444 - emake libmagic.la - fi -} - -src_compile() { - if need_build_file; then - emake -C "${WORKDIR}"/build/src magic.h #586444 - emake -C "${WORKDIR}"/build/src file - local -x PATH="${WORKDIR}/build/src:${PATH}" - fi - multilib-minimal_src_compile - - if use python ; then - cd python || die - distutils-r1_src_compile - fi -} - -multilib_src_install() { - if multilib_is_native_abi ; then - default - else - emake -C src install-{nodist_includeHEADERS,libLTLIBRARIES} DESTDIR="${D}" - fi -} - -multilib_src_install_all() { - dodoc ChangeLog MAINT README - - # Required for `file -C` - dodir /usr/share/misc/magic - insinto /usr/share/misc/magic - doins -r magic/Magdir/* - - if use python ; then - cd python || die - distutils-r1_src_install - fi - find "${ED}" -type f -name "*.la" -delete || die -} diff --git a/sys-apps/file/file-5.39-r2.ebuild b/sys-apps/file/file-5.39-r3.ebuild similarity index 95% rename from sys-apps/file/file-5.39-r2.ebuild rename to sys-apps/file/file-5.39-r3.ebuild index 645a8516962..c8425291ed7 100644 --- a/sys-apps/file/file-5.39-r2.ebuild +++ b/sys-apps/file/file-5.39-r3.ebuild @@ -37,8 +37,9 @@ RDEPEND="${DEPEND} seccomp? ( sys-libs/libseccomp[${MULTILIB_USEDEP}] )" PATCHES=( - "${FILESDIR}/${PN}-5.39-portage_sandbox.patch" #713710 #728978 - "${FILESDIR}/${P}-add-missing-termios.patch" #728416 + "${FILESDIR}/file-5.39-add-missing-termios.patch" #728416 + "${FILESDIR}/file-5.39-seccomp-musl.patch" + "${FILESDIR}/file-5.39-portage-sandbox.patch" #713710 #728978 ) src_prepare() { diff --git a/sys-apps/file/file-5.39.ebuild b/sys-apps/file/file-5.39.ebuild deleted file mode 100644 index 98499a3c73d..00000000000 --- a/sys-apps/file/file-5.39.ebuild +++ /dev/null @@ -1,140 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6..9} ) -DISTUTILS_OPTIONAL=1 - -inherit autotools distutils-r1 libtool toolchain-funcs multilib-minimal - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://github.com/glensc/file.git" - inherit git-r3 -else - SRC_URI="ftp://ftp.astron.com/pub/file/${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -fi - -DESCRIPTION="identify a file's format by scanning binary data for patterns" -HOMEPAGE="https://www.darwinsys.com/file/" - -LICENSE="BSD-2" -SLOT="0" -IUSE="bzip2 lzma python seccomp static-libs zlib" -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -DEPEND=" - bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] ) - lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] ) - python? ( - ${PYTHON_DEPS} - dev-python/setuptools[${PYTHON_USEDEP}] - ) - zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )" -RDEPEND="${DEPEND} - python? ( !dev-python/python-magic ) - seccomp? ( sys-libs/libseccomp[${MULTILIB_USEDEP}] )" - -PATCHES=( - "${FILESDIR}/${PN}-5.39-seccomp_sandbox.patch" #713710 -) - -src_prepare() { - default - eautoreconf - elibtoolize - - # don't let python README kill main README #60043 - mv python/README.md python/README.python.md || die - sed '[email protected]@README.python.md@' -i python/setup.py || die #662090 -} - -multilib_src_configure() { - local myeconfargs=( - --enable-fsect-man5 - $(use_enable bzip2 bzlib) - $(use_enable lzma xzlib) - $(use_enable seccomp libseccomp) - $(use_enable static-libs static) - $(use_enable zlib) - ) - econf "${myeconfargs[@]}" -} - -build_src_configure() { - local myeconfargs=( - --disable-shared - --disable-libseccomp - --disable-bzlib - --disable-xzlib - --disable-zlib - ) - tc-env_build econf "${myeconfargs[@]}" -} - -need_build_file() { - # when cross-compiling, we need to build up our own file - # because people often don't keep matching host/target - # file versions #362941 - tc-is-cross-compiler && ! has_version -b "~${CATEGORY}/${P}" -} - -src_configure() { - local ECONF_SOURCE=${S} - - if need_build_file; then - mkdir -p "${WORKDIR}"/build || die - cd "${WORKDIR}"/build || die - build_src_configure - fi - - multilib-minimal_src_configure -} - -multilib_src_compile() { - if multilib_is_native_abi ; then - emake - else - cd src || die - emake magic.h #586444 - emake libmagic.la - fi -} - -src_compile() { - if need_build_file; then - emake -C "${WORKDIR}"/build/src magic.h #586444 - emake -C "${WORKDIR}"/build/src file - local -x PATH="${WORKDIR}/build/src:${PATH}" - fi - multilib-minimal_src_compile - - if use python ; then - cd python || die - distutils-r1_src_compile - fi -} - -multilib_src_install() { - if multilib_is_native_abi ; then - default - else - emake -C src install-{nodist_includeHEADERS,libLTLIBRARIES} DESTDIR="${D}" - fi -} - -multilib_src_install_all() { - dodoc ChangeLog MAINT README - - # Required for `file -C` - dodir /usr/share/misc/magic - insinto /usr/share/misc/magic - doins -r magic/Magdir/* - - if use python ; then - cd python || die - distutils-r1_src_install - fi - find "${ED}" -type f -name "*.la" -delete || die -} diff --git a/sys-apps/file/files/file-5.39-add-missing-termios.patch b/sys-apps/file/files/file-5.39-add-missing-termios.patch index e6cba0d4c28..0614f52dd27 100644 --- a/sys-apps/file/files/file-5.39-add-missing-termios.patch +++ b/sys-apps/file/files/file-5.39-add-missing-termios.patch @@ -1,27 +1,30 @@ -From 769e9868c17a471323b81b12cab851c9fd22baf4 Mon Sep 17 00:00:00 2001 -From: Georgy Yakovlev <[email protected]> -Date: Mon, 15 Jun 2020 14:18:45 -0700 -Subject: [PATCH] add missing termios.h include +From 471e2c6c61ecd30ba6e304ae0444d364cfd44254 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas <[email protected]> +Date: Thu, 18 Jun 2020 16:25:12 +0000 +Subject: [PATCH] PR/168: gyakovlev: Include <termios.h> -on ppc, TCGETS relies on struct termios being complete, on other -architectures it does not. -so termios.h should be included before ioctl.h --- - src/seccomp.c | 1 + - 1 file changed, 1 insertion(+) + src/seccomp.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/seccomp.c b/src/seccomp.c -index e667adf..296f5b3 100644 +index e667adfe4..68c56485d 100644 --- a/src/seccomp.c +++ b/src/seccomp.c -@@ -33,6 +33,7 @@ FILE_RCSID("@(#)$File: seccomp.c,v 1.15 2020/05/30 23:56:26 christos Exp $") +@@ -27,7 +27,7 @@ + #include "file.h" + + #ifndef lint +-FILE_RCSID("@(#)$File: seccomp.c,v 1.15 2020/05/30 23:56:26 christos Exp $") ++FILE_RCSID("@(#)$File: seccomp.c,v 1.16 2020/06/18 16:25:12 christos Exp $") + #endif /* lint */ + #if HAVE_LIBSECCOMP - #include <seccomp.h> /* libseccomp */ +@@ -35,6 +35,7 @@ FILE_RCSID("@(#)$File: seccomp.c,v 1.15 2020/05/30 23:56:26 christos Exp $") #include <sys/prctl.h> /* prctl */ -+#include <termios.h> #include <sys/ioctl.h> #include <sys/socket.h> ++#include <termios.h> #include <fcntl.h> --- -2.27.0 - + #include <stdlib.h> + #include <errno.h> diff --git a/sys-apps/file/files/file-5.39-portage_sandbox.patch b/sys-apps/file/files/file-5.39-portage-sandbox.patch similarity index 51% rename from sys-apps/file/files/file-5.39-portage_sandbox.patch rename to sys-apps/file/files/file-5.39-portage-sandbox.patch index ff2caed413f..3ea26641671 100644 --- a/sys-apps/file/files/file-5.39-portage_sandbox.patch +++ b/sys-apps/file/files/file-5.39-portage-sandbox.patch @@ -1,28 +1,26 @@ -From 7e1d9d51329a0e0f3d9cd1dbc3f9509251950e81 Mon Sep 17 00:00:00 2001 +From 81765a2d4fcce23f42495d5ec03bbfecb2a3c381 Mon Sep 17 00:00:00 2001 From: tka <[email protected]> Date: Wed, 24 Jun 2020 11:18:45 +0200 Subject: [PATCH] Allow getcwd for Gentoo's portage sandbox -Gentoo-bug: https://bugs.gentoo.org/728978 -Signed-off-by: Lars Wendler <[email protected]> +Bug: https://bugs.gentoo.org/728978 --- - src/seccomp.c | 3 +++ - 1 file changed, 3 insertions(+) + src/seccomp.c | 2 ++ + 1 file changed, 2 insertions(+) diff --git a/src/seccomp.c b/src/seccomp.c -index 68c56485..af55918e 100644 +index db9364ae..7f5d6f26 100644 --- a/src/seccomp.c +++ b/src/seccomp.c -@@ -227,6 +227,9 @@ enable_sandbox_full(void) - ALLOW_RULE(unlink); +@@ -229,6 +229,8 @@ enable_sandbox_full(void) ALLOW_RULE(write); + ALLOW_RULE(writev); + // needed by Gentoo's portage sandbox + ALLOW_RULE(getcwd); -+ #if 0 // needed by valgrind -- -2.27.0 +2.28.0 diff --git a/sys-apps/file/files/file-5.39-seccomp-musl.patch b/sys-apps/file/files/file-5.39-seccomp-musl.patch new file mode 100644 index 00000000000..72836de67e5 --- /dev/null +++ b/sys-apps/file/files/file-5.39-seccomp-musl.patch @@ -0,0 +1,37 @@ +From 93c91e2ba8042d499fee168e27cbd526438454c6 Mon Sep 17 00:00:00 2001 +From: Christos Zoulas <[email protected]> +Date: Sat, 5 Sep 2020 17:20:32 +0000 +Subject: [PATCH] PR/194: puchuu: Handle muslc syscalls + +--- + src/seccomp.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/seccomp.c b/src/seccomp.c +index 68c56485d..db9364ae4 100644 +--- a/src/seccomp.c ++++ b/src/seccomp.c +@@ -27,7 +27,7 @@ + #include "file.h" + + #ifndef lint +-FILE_RCSID("@(#)$File: seccomp.c,v 1.16 2020/06/18 16:25:12 christos Exp $") ++FILE_RCSID("@(#)$File: seccomp.c,v 1.17 2020/09/05 17:20:32 christos Exp $") + #endif /* lint */ + + #if HAVE_LIBSECCOMP +@@ -220,12 +220,14 @@ enable_sandbox_full(void) + ALLOW_RULE(rt_sigreturn); + ALLOW_RULE(select); + ALLOW_RULE(stat); ++ ALLOW_RULE(statx); + ALLOW_RULE(stat64); + ALLOW_RULE(sysinfo); + ALLOW_RULE(umask); // Used in file_pipe2file() + ALLOW_RULE(getpid); // Used by glibc in file_pipe2file() + ALLOW_RULE(unlink); + ALLOW_RULE(write); ++ ALLOW_RULE(writev); + + + #if 0 diff --git a/sys-apps/file/files/file-5.39-seccomp_sandbox.patch b/sys-apps/file/files/file-5.39-seccomp_sandbox.patch deleted file mode 100644 index da0a0ff1f28..00000000000 --- a/sys-apps/file/files/file-5.39-seccomp_sandbox.patch +++ /dev/null @@ -1,13 +0,0 @@ -Don't call file with seccomp in portage sandbox. This will fail: - - make[2]: *** [Makefile:834: magic.mgc] Bad system call - ---- file-5.39/magic/Makefile.am -+++ file-5.39/magic/Makefile.am -@@ -352,5 +352,5 @@ - exit 1; \ - fi; \ - fi) -- $(FILE_COMPILE) -C -m magic -+ $(FILE_COMPILE) -S -C -m magic - @rm -fr magic
