diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/Manifest new file mode 100644 index 0000000000..a9d7090871 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/Manifest @@ -0,0 +1,5 @@ +DIST fuse-2.9.9.tar.gz 1813177 BLAKE2B 9e9141380bda46eb0bcce325c6fd293fe3844fe884a4952bb38d4b89dc48b728ffcc891038b3a7a861f05acfacce9dd7bb0e11d600609f3ad0ab278ccbe98847 SHA512 3d82fafd04f2924299bb09d2bb144935fa004a43fb9a6568e2e1cc5a60fded2efa1711029a0d7f12b3e6e4501f7217f2ee3545646d89da8dece083cb390f23e2 +DIST fuse-3.15.0.tar.xz 4589124 BLAKE2B 4777a956f8429aee2e5da43b9606ac6acc66744943739051f2be87a646b93c2aaa8f0b7f0c188f6d1724c1ab3fdf706d35c981066b0ba8c4dd647c0eb1f3c821 SHA512 5046b827c2cdccd03031761aeb995caf159f075a16cdda7248fcdd81177500f337368208948e0ff0e4bee32d06dd3d2d966828d3b5e82a79339f28a01727b1ae +DIST fuse-3.15.1.tar.gz 14078062 BLAKE2B 8842874c65f9bcd4f867175f9c6ca496c02069f269ac16e588307e5d9cb67b6251511f9015e830f6015ca492c05824445a75091210e0bc78b5416f208201ca80 SHA512 927132acff5f313257b39a487d2bb1cb47a4e2a71b49ffc2a2d3428cea22f7c57d133fe93fefc943fec8271802ecd1ddbd43e5e1f534b8ddf2036c1039902ffd +DIST fuse-3.16.1.tar.gz 14175331 BLAKE2B 80bdf704d2251edba795f50e5623ba5194c36bbc940a185f3a7b4f7d965b7e7d8a81650c4c1dfe33ad73010cbdd841063b2f07356b3b2b70794af2072f8bf377 SHA512 3f07919a7451a30d05bc174e2f8ec2c65b6225e63b4bbb40f2b097d760d4aa9b753a1da5da4874855094a01979fc4313ffabce54668ed20a6900f5eed92912c8 +DIST iconv.m4.bz2 3057 BLAKE2B 9d8f7637d87bfcea1b60f3ea11e162aecf391b3f4579a3b85afb01735f56bfbae363a7e781279f3b2bed0d1dd3336f7d0678d3b1d59004824d7d0ca848dceb6e SHA512 9899368b8acc06e216a7a548b83a894f780e152a02612cd52af02b5c3f2ff38e2c36e77bda300587f81c3d74c90addec8066885216fa0e74f3f3280a383d2b55 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/files/fuse-2.9.3-kernel-types.patch b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/files/fuse-2.9.3-kernel-types.patch new file mode 100644 index 0000000000..52d9658a2d --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/files/fuse-2.9.3-kernel-types.patch @@ -0,0 +1,19 @@ +this is a minimal version of: +https://sourceforge.net/p/fuse/fuse/ci/6b02a7082ae4c560427ff95b51aa8930bb4a6e1f/ + +--- a/include/fuse_kernel.h ++++ b/include/fuse_kernel.h +@@ -88,12 +88,7 @@ + #ifndef _LINUX_FUSE_H + #define _LINUX_FUSE_H + +-#include +-#define __u64 uint64_t +-#define __s64 int64_t +-#define __u32 uint32_t +-#define __s32 int32_t +-#define __u16 uint16_t ++#include + + /* + * Version negotiation: diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/files/fuse-2.9.9-avoid-calling-umount.patch b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/files/fuse-2.9.9-avoid-calling-umount.patch new file mode 100644 index 0000000000..b5c141d29e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/files/fuse-2.9.9-avoid-calling-umount.patch @@ -0,0 +1,38 @@ +From acb69eca6c25db44523efb4cb1e7088ae66d093d Mon Sep 17 00:00:00 2001 +From: Sam James +Date: Tue, 3 Aug 2021 23:14:12 +0100 +Subject: [PATCH] Avoid calling umount + +Converting a sed into a patch. + +Ebuild had: + # sandbox violation with mtab writability wrt #438250 + # don't sed configure.in without eautoreconf because of maintainer mode + sed -i 's:umount --fake:true --fake:' configure || die + +Bug: https://bugs.gentoo.org/438250 +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 9946a0e..de433cb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -101,11 +101,11 @@ util_linux_ok=yes + if test "$arch" = linux -a "$cross_compiling" != "yes"; then + AC_MSG_CHECKING([if umount supports --fake --no-canonicalize]) + # exit code of umount is 1 if option is unrecognised, 2 otherwise +- umount --fake --no-canonicalize > /dev/null 2>&1 ++ true --fake --no-canonicalize > /dev/null 2>&1 + if test $? != 1; then + AC_MSG_RESULT([yes]) + else +- firstline=`umount --fake --no-canonicalize 2>&1 | head -1` ++ firstline=`true --fake --no-canonicalize 2>&1 | head -1` + if test "$firstline" = 'umount: only root can use "--fake" option'; then + AC_MSG_RESULT([yes]) + else +-- +2.32.0 + diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/files/fuse-2.9.9-closefrom-glibc-2-34.patch b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/files/fuse-2.9.9-closefrom-glibc-2-34.patch new file mode 100644 index 0000000000..beb8d51da1 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/files/fuse-2.9.9-closefrom-glibc-2-34.patch @@ -0,0 +1,60 @@ +From ae2352bca9b4e607538412da0cc2a9625cd8b692 Mon Sep 17 00:00:00 2001 +From: Sam James +Date: Sat, 24 Jul 2021 22:02:45 +0100 +Subject: [PATCH] util/ulockmgr_server.c: conditionally define closefrom (fix + glibc-2.34+) + +closefrom(3) has joined us in glibc-land from *BSD and Solaris. Since +it's available in glibc 2.34+, we want to detect it and only define our +fallback if the libc doesn't provide it. + +Bug: https://bugs.gentoo.org/803923 +Signed-off-by: Sam James +--- + configure.ac | 1 + + util/ulockmgr_server.c | 6 ++++++ + 2 files changed, 7 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 9946a0efa..a2d481aa9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -55,6 +55,7 @@ fi + + AC_CHECK_FUNCS([fork setxattr fdatasync splice vmsplice utimensat]) + AC_CHECK_FUNCS([posix_fallocate]) ++AC_CHECK_FUNCS([closefrom]) + AC_CHECK_MEMBERS([struct stat.st_atim]) + AC_CHECK_MEMBERS([struct stat.st_atimespec]) + +diff --git a/util/ulockmgr_server.c b/util/ulockmgr_server.c +index 273c7d923..a04dac5c6 100644 +--- a/util/ulockmgr_server.c ++++ b/util/ulockmgr_server.c +@@ -22,6 +22,10 @@ + #include + #include + ++#ifdef HAVE_CONFIG_H ++ #include "config.h" ++#endif ++ + struct message { + unsigned intr : 1; + unsigned nofd : 1; +@@ -124,6 +128,7 @@ static int receive_message(int sock, void *buf, size_t buflen, int *fdp, + return res; + } + ++#if !defined(HAVE_CLOSEFROM) + static int closefrom(int minfd) + { + DIR *dir = opendir("/proc/self/fd"); +@@ -141,6 +146,7 @@ static int closefrom(int minfd) + } + return 0; + } ++#endif + + static void send_reply(int cfd, struct message *msg) + { diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-2.9.9-r2.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-2.9.9-r2.ebuild new file mode 100644 index 0000000000..93b3e2a8d0 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-2.9.9-r2.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools flag-o-matic linux-info udev + +DESCRIPTION="An interface for filesystems implemented in userspace" +HOMEPAGE="https://github.com/libfuse/libfuse" +SRC_URI="https://github.com/libfuse/libfuse/releases/download/${P}/${P}.tar.gz" +# For bug #809920 to avoid a gettext dependency +# extracted from sys-devel/gettext-0.21-r1 +SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/iconv.m4.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" +IUSE="examples static-libs" + +BDEPEND="sys-devel/gettext + virtual/pkgconfig" +RDEPEND=">=sys-fs/fuse-common-3.3.0-r1" + +PATCHES=( + "${FILESDIR}"/${PN}-2.9.3-kernel-types.patch + "${FILESDIR}"/${PN}-2.9.9-avoid-calling-umount.patch + "${FILESDIR}"/${PN}-2.9.9-closefrom-glibc-2-34.patch +) + +pkg_setup() { + if use kernel_linux ; then + CONFIG_CHECK="~FUSE_FS" + WARNING_FUSE_FS="You need to have FUSE module built to use user-mode utils" + linux-info_pkg_setup + fi +} + +src_prepare() { + default + + # Can be dropped along with additional SRC_URI if dropping eautoreconf + cp "${WORKDIR}"/iconv.m4 m4/ || die + eautoreconf +} + +src_configure() { + # lto not supported yet -- https://github.com/libfuse/libfuse/issues/198 + # gcc-9 with -flto leads to link failures: #663518 (see also #863899) + # https://gcc.gnu.org/PR91186 + filter-lto + # ... and strict aliasing warnings, bug #863899 + append-flags -fno-strict-aliasing + + econf \ + INIT_D_PATH="${EPREFIX}/etc/init.d" \ + MOUNT_FUSE_PATH="${EPREFIX}/sbin" \ + UDEV_RULES_PATH="${EPREFIX}/$(get_udevdir)/rules.d" \ + $(use_enable static-libs static) \ + --disable-example +} + +src_install() { + local DOCS=( AUTHORS ChangeLog README.md README.NFS NEWS doc/how-fuse-works doc/kernel.txt ) + default + + if use examples ; then + docinto examples + dodoc example/* + fi + + find "${ED}" -name '*.la' -delete || die + + # installed via fuse-common + rm -r "${ED}"/{etc,$(get_udevdir)} || die + + # handled by the device manager + rm -r "${D}"/dev || die +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.15.0.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.15.0.ebuild new file mode 100644 index 0000000000..7bcca0ad68 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.15.0.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..11} ) +inherit flag-o-matic meson-multilib udev python-any-r1 + +DESCRIPTION="An interface for filesystems implemented in userspace" +HOMEPAGE="https://github.com/libfuse/libfuse" +SRC_URI="https://github.com/libfuse/libfuse/releases/download/${P}/${P}.tar.xz" + +LICENSE="GPL-2 LGPL-2.1" +SLOT="3" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" +IUSE="+suid test" +RESTRICT="!test? ( test ) test? ( userpriv )" + +BDEPEND=" + virtual/pkgconfig + test? ( + ${PYTHON_DEPS} + $(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]') + ) +" +RDEPEND=">=sys-fs/fuse-common-3.3.0-r1" + +DOCS=( AUTHORS ChangeLog.rst README.md doc/README.NFS doc/kernel.txt ) + +python_check_deps() { + python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + # bug #853058 + filter-lto + + local emesonargs=( + $(meson_use test examples) + $(meson_use test tests) + -Duseroot=false + -Dinitscriptdir= + -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d" + ) + meson_src_configure +} + +src_test() { + if has sandbox ${FEATURES}; then + ewarn "Sandbox enabled, skipping tests" + else + multilib-minimal_src_test + fi +} + +multilib_src_test() { + epytest +} + +multilib_src_install_all() { + # Installed via fuse-common + rm -r "${ED}"{/etc,$(get_udevdir)} || die + + # useroot=false prevents the build system from doing this. + use suid && fperms u+s /usr/bin/fusermount3 + + # manually install man pages to respect compression + rm -r "${ED}"/usr/share/man || die + doman doc/{fusermount3.1,mount.fuse3.8} +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.15.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.15.1.ebuild new file mode 100644 index 0000000000..10840ae807 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.15.1.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..11} ) +inherit flag-o-matic meson-multilib udev python-any-r1 + +DESCRIPTION="An interface for filesystems implemented in userspace" +HOMEPAGE="https://github.com/libfuse/libfuse" +SRC_URI="https://github.com/libfuse/libfuse/releases/download/${P}/${P}.tar.gz" + +LICENSE="GPL-2 LGPL-2.1" +SLOT="3" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" +IUSE="+suid test" +RESTRICT="!test? ( test ) test? ( userpriv )" + +BDEPEND=" + virtual/pkgconfig + test? ( + ${PYTHON_DEPS} + $(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]') + ) +" +RDEPEND=">=sys-fs/fuse-common-3.3.0-r1" + +DOCS=( AUTHORS ChangeLog.rst README.md doc/README.NFS doc/kernel.txt ) + +python_check_deps() { + python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + # bug #853058 + filter-lto + + local emesonargs=( + $(meson_use test examples) + $(meson_use test tests) + -Duseroot=false + -Dinitscriptdir= + -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d" + ) + meson_src_configure +} + +src_test() { + if has sandbox ${FEATURES}; then + ewarn "Sandbox enabled, skipping tests" + else + multilib-minimal_src_test + fi +} + +multilib_src_test() { + epytest +} + +multilib_src_install_all() { + # Installed via fuse-common + rm -r "${ED}"{/etc,$(get_udevdir)} || die + + # useroot=false prevents the build system from doing this. + use suid && fperms u+s /usr/bin/fusermount3 + + # manually install man pages to respect compression + rm -r "${ED}"/usr/share/man || die + doman doc/{fusermount3.1,mount.fuse3.8} +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.16.1.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.16.1.ebuild new file mode 100644 index 0000000000..d70683145e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/fuse-3.16.1.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..11} ) +inherit flag-o-matic meson-multilib udev python-any-r1 + +DESCRIPTION="An interface for filesystems implemented in userspace" +HOMEPAGE="https://github.com/libfuse/libfuse" +SRC_URI="https://github.com/libfuse/libfuse/releases/download/${P}/${P}.tar.gz" + +LICENSE="GPL-2 LGPL-2.1" +SLOT="3" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+suid test" +RESTRICT="!test? ( test ) test? ( userpriv )" + +BDEPEND=" + virtual/pkgconfig + test? ( + ${PYTHON_DEPS} + $(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]') + ) +" +RDEPEND=">=sys-fs/fuse-common-3.3.0-r1" + +DOCS=( AUTHORS ChangeLog.rst README.md doc/README.NFS doc/kernel.txt ) + +python_check_deps() { + python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + # bug #853058 + filter-lto + + local emesonargs=( + $(meson_use test examples) + $(meson_use test tests) + -Duseroot=false + -Dinitscriptdir= + -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d" + ) + meson_src_configure +} + +src_test() { + if has sandbox ${FEATURES}; then + ewarn "Sandbox enabled, skipping tests" + else + multilib-minimal_src_test + fi +} + +multilib_src_test() { + epytest +} + +multilib_src_install_all() { + # Installed via fuse-common + rm -r "${ED}"{/etc,$(get_udevdir)} || die + + # useroot=false prevents the build system from doing this. + use suid && fperms u+s /usr/bin/fusermount3 + + # manually install man pages to respect compression + rm -r "${ED}"/usr/share/man || die + doman doc/{fusermount3.1,mount.fuse3.8} +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/fuse/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/metadata.xml new file mode 100644 index 0000000000..1bd33fd413 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/fuse/metadata.xml @@ -0,0 +1,11 @@ + + + + + base-system@gentoo.org + + + cpe:/a:fuse:fuse + libfuse/libfuse + +