sys-fs/fuse: add 3.18.1

* Only filter LTO with Clang, see https://bugs.gentoo.org/853058#c6 for why,
rather than unconditionally.

* Tests got a bit better with some tweaks but even as root, they picked up
the wrong `hello` binary on the system and I gave up at that point.

* Added USDT support via USE=systemtap, but it has a copy of usdt.h, so
  no dependencies.

Bug: https://bugs.gentoo.org/853058
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Sam James
2025-12-23 01:45:31 +00:00
parent 969d8ee4e1
commit d27c89519d
6 changed files with 110 additions and 0 deletions

View File

@@ -17,6 +17,10 @@
#--- END OF EXAMPLES ---
# Sam James <sam@gentoo.org> (2025-12-23)
# sys-process/numactl is available here
sys-fs/fuse -io-uring
# Mike Gilbert <floppym@gentoo.org> (2025-12-15)
# arch-specific platform values
sys-boot/grub -grub_platforms_pc -grub_platforms_xen-32

View File

@@ -1,6 +1,10 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Sam James <sam@gentoo.org> (2025-12-23)
# sys-process/numactl is available here
sys-fs/fuse -io-uring
# Michał Górny <mgorny@gentoo.org> (2025-11-01)
# app-crypt/sequoia-chameleon-gnupg is keyworded here.
app-alternatives/gpg -sequoia

View File

@@ -1,6 +1,10 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Sam James <sam@gentoo.org> (2025-12-23)
# sys-process/numactl is not available everywhere
sys-fs/fuse io-uring
# Mike Gilbert <floppym@gentoo.org (2025-12-15)
# arch-specific platform values
sys-boot/grub grub_platforms_loongson grub_platforms_qemu-mips

View File

@@ -1,4 +1,5 @@
DIST fuse-2.9.9.tar.gz 1813177 BLAKE2B 9e9141380bda46eb0bcce325c6fd293fe3844fe884a4952bb38d4b89dc48b728ffcc891038b3a7a861f05acfacce9dd7bb0e11d600609f3ad0ab278ccbe98847 SHA512 3d82fafd04f2924299bb09d2bb144935fa004a43fb9a6568e2e1cc5a60fded2efa1711029a0d7f12b3e6e4501f7217f2ee3545646d89da8dece083cb390f23e2
DIST fuse-3.16.2.tar.gz 14165836 BLAKE2B 04f0037f924ef7b7cc90cb4c26afd1e942da69efebd93f3114774f2101550729379a0256ba190d7c99249fbce4ead5902133c01b29d8d75f41777d148540f521 SHA512 3e8889863cd67dada67271f095f694dc9e5aaf2561fd1e2285aee95b5a54e692bb195ab8fce57fc2bdf08d0ea17b6d56ca4967b4e4371d639d6133907b2370d3
DIST fuse-3.17.4.tar.gz 7307414 BLAKE2B eb9dfd5c446a35f7ef0b6b58c52fe22d306782f5a8b56dc54b00829aa8a59700bd2b03755cc58221d154b88cbdb3da59913700b3d7efa67a586bfaa8fef00e9d SHA512 5451b374ceadb4cb5a8f0c396f1111932ec63984b80dfad7a76258c026b4e8e5ab4a563bb4a9e272d7fa62a5f452113885d4c3ea080a9f56b6aeb85d50c01010
DIST fuse-3.18.1.tar.gz 8350400 BLAKE2B b0a38794b8eb932f7b23314afdaeacbdd302e9f9037794f5dceb87b22f19de8d125ec0112ee28751b94063324c872e03c26e3128c6cd817858245f7df5acd7ef SHA512 02a6ed591e3a634893ab9a621ccc3b745abda06c5da5a4f2a7cc5a1740ddf8199c841f987bcbc8958fc134c2d773055a06cf25aeb6ef55204a4598b99371cb0b
DIST iconv.m4.bz2 3057 BLAKE2B 9d8f7637d87bfcea1b60f3ea11e162aecf391b3f4579a3b85afb01735f56bfbae363a7e781279f3b2bed0d1dd3336f7d0678d3b1d59004824d7d0ca848dceb6e SHA512 9899368b8acc06e216a7a548b83a894f780e152a02612cd52af02b5c3f2ff38e2c36e77bda300587f81c3d74c90addec8066885216fa0e74f3f3280a383d2b55

View File

@@ -0,0 +1,94 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
inherit flag-o-matic meson-multilib toolchain-funcs 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/4"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="io-uring +suid systemtap test"
RESTRICT="test"
PROPERTIES="test_privileged"
DEPEND="
io-uring? (
sys-libs/liburing:=[${MULTILIB_USEDEP}]
sys-process/numactl
)
"
RDEPEND="
${DEPEND}
>=sys-fs/fuse-common-3.3.0-r1
"
BDEPEND="
virtual/pkgconfig
test? (
${PYTHON_DEPS}
$(python_gen_any_dep '
dev-python/pytest[${PYTHON_USEDEP}]
dev-python/looseversion[${PYTHON_USEDEP}]
')
)
"
DOCS=( AUTHORS ChangeLog.rst README.md doc/README.NFS doc/kernel.txt )
python_check_deps() {
python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" &&
python_has_version "dev-python/looseversion[${PYTHON_USEDEP}]"
}
pkg_setup() {
use test && python-any-r1_pkg_setup
}
multilib_src_configure() {
# bug #853058
tc-is-clang && filter-lto
local emesonargs=(
$(meson_use test examples)
$(meson_use test tests)
$(meson_use systemtap enable-usdt)
$(meson_use io-uring enable-io-uring)
-Duseroot=false
-Dinitscriptdir=
-Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
)
meson_src_configure
}
src_test() {
# For tests to pass:
# - sandbox must be disabled.
# - Write access to /dev/cuse* and /dev/fuse is required.
# - root must be a member of the portage group; CAP_DAC_OVERRIDE is dropped.
# - TMPDIR must be short for unix socket paths.
local -x TMPDIR=/tmp
local -x SANDBOX_ON=0
multilib-minimal_src_test
}
multilib_src_test() {
# Explicit test/ needed to pick up pytest.ini
epytest test/
}
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}
}

View File

@@ -4,6 +4,9 @@
<maintainer type="project">
<email>base-system@gentoo.org</email>
</maintainer>
<use>
<flag name="systemtap">Enable SystemTap/DTrace tracing</flag>
</use>
<upstream>
<remote-id type="cpe">cpe:/a:fuse:fuse</remote-id>
<remote-id type="github">libfuse/libfuse</remote-id>