Name fuse3
Description Reference implementation of the Linux FUSE (Filesystem in Userspace) interface
Version 3.16.2-r1
Package Base fuse3
Homepage https://github.com/libfuse/libfuse
Maintainers ['Natanael Copa <ncopa@alpinelinux.org>']
Contributors []
Distro-repo https://gitlab.alpinelinux.org/alpine/aports/-/tree/3.22-stable/main/fuse3
Sources ['dont-mknod-dev-fuse.patch', 'fuse.initd', 'https://github.com/libfuse/libfuse/releases/download/fuse-3.16.2-r1/fuse-3.16.2-r1.tar.gz']
Dependencies ['fuse-common', 'libc.musl-x86_64.so.1', 'libfuse3.so.3']
Optional-Dependencies []
Build-Dependencies ['eudev-dev', 'gettext-dev', 'linux-headers', 'meson']
Provides ['cmd:fusermount3=3.16.2-r1', 'cmd:mount.fuse3=3.16.2-r1']
Builddate 02-10-2024 16:32:21
Architecture x86_64
Distro-Version v3.22
Licenses ['GPL-2.0-only AND LGPL-2.1-only']
Hash Q1P+P/ogItnPMu7G2ho6TJ2RCdcmM=
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=fuse3
pkgver=3.16.2
pkgrel=1
pkgdesc="Reference implementation of the Linux FUSE (Filesystem in Userspace) interface"
url="https://github.com/libfuse/libfuse"
arch="all"
license="GPL-2.0-only AND LGPL-2.1-only"
depends="fuse-common"
makedepends="
	eudev-dev
	gettext-dev
	linux-headers
	meson
	"
checkdepends="py3-pytest"
subpackages="
	$pkgname-static
	$pkgname-dev
	$pkgname-doc
	$pkgname-libs
	fuse-common:_common
	fuse-openrc:_openrc
	"
source="https://github.com/libfuse/libfuse/releases/download/fuse-$pkgver/fuse-$pkgver.tar.gz
	fuse.initd
	dont-mknod-dev-fuse.patch
	"
options="suid !check" # check is currently broken: https://github.com/libfuse/libfuse/issues/293
builddir="$srcdir"/fuse-$pkgver

# secfixes:
#   3.2.5-r0:
#     - CVE-2018-10906

build() {
	abuild-meson \
		-Dinitscriptdir="" \
		--default-library=both \
		. output
	meson compile -C output
}

check() {
	python3 -m pytest test/
}

package() {
	DESTDIR="$pkgdir" meson install --no-rebuild -C output

	install -Dm755 "$srcdir"/fuse.initd "$pkgdir"/etc/init.d/fuse
	# create config
	install -d "$pkgdir"/etc
	cat >"$pkgdir"/etc/fuse.conf <<- _EOF_
	# Set the maximum number of FUSE mounts allowed to non-root users.
	# The default is 1000.
	#
	#mount_max = 1000

	# Allow non-root users to specify the 'allow_other' or 'allow_root'
	# mount options.
	#
	#user_allow_other
	_EOF_
}

_common() {
	pkgdesc="Common files for fuse2 and fuse3"

	amove etc/fuse.conf
}

_openrc() {
	default_openrc
	install_if="openrc fuse-common=$pkgver-r$pkgrel"
}

sha512sums="
3e8889863cd67dada67271f095f694dc9e5aaf2561fd1e2285aee95b5a54e692bb195ab8fce57fc2bdf08d0ea17b6d56ca4967b4e4371d639d6133907b2370d3  fuse-3.16.2.tar.gz
7f6a503ef23cfa8b809c544375c2d83ad56525269b48ad1a7dff0ce36f4bf2f2a3fafed9dc70a71ff6281b261db5f01829e16c06f041921a5d8c8d715a04a8c1  fuse.initd
9b32a6ba1d1e5fcb7709eaa8e4d5e90fbdd6873ab97b0c651b6d5dda80644a4d1a7c3d1e201929d1f0b13f29422f2cdedf5127832b05d751d0ef83b53870e57a  dont-mknod-dev-fuse.patch
"