diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2018-09-04 14:44:58 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2018-09-04 15:28:09 +0000 |
commit | 3b0dc1771fa0307544da6a6804e63676cb4dc0f1 (patch) | |
tree | 5f16f561f5adc9ebb4a4f76d5969295022e145f0 /main/fuse3 | |
parent | e41e95a329ad2722fbb056aa2a0d00c7b3f31555 (diff) | |
download | aports-3b0dc1771fa0307544da6a6804e63676cb4dc0f1.tar.bz2 aports-3b0dc1771fa0307544da6a6804e63676cb4dc0f1.tar.xz |
main/fuse3: move from testing
Diffstat (limited to 'main/fuse3')
-rw-r--r-- | main/fuse3/APKBUILD | 67 | ||||
-rw-r--r-- | main/fuse3/fix-realpath.patch | 28 | ||||
-rw-r--r-- | main/fuse3/fuse.initd | 35 |
3 files changed, 130 insertions, 0 deletions
diff --git a/main/fuse3/APKBUILD b/main/fuse3/APKBUILD new file mode 100644 index 0000000000..31fedd8206 --- /dev/null +++ b/main/fuse3/APKBUILD @@ -0,0 +1,67 @@ +# Maintainer: Natanael Copa <ncopa@alpinelinux.org> +pkgname=fuse3 +_pkgname=fuse +pkgver=3.2.5 +pkgrel=0 +pkgdesc="The reference implementation of the Linux FUSE (Filesystem in Userspace) interface" +url="https://github.com/libfuse/libfuse" +arch="all" +license="GPL-2.0-only LGPL-2.1-only" +depends="!fuse" +makedepends="gettext-dev linux-headers meson eudev-dev python3 + py3-six py3-pluggy py3-attrs py3-py" +checkdepends="py3-pytest" +subpackages="$pkgname-dev $pkgname-doc" +source="https://github.com/libfuse/libfuse/releases/download/fuse-$pkgver/fuse-$pkgver.tar.xz + fix-realpath.patch + fuse.initd" +options="suid" + +builddir="$srcdir"/$_pkgname-$pkgver + +# secfixes: +# 3.2.5-r0: +# - CVE-2018-10906 + +build() { + cd "$builddir" + meson \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --localstatedir=/var \ + --buildtype=release \ + . output + ninja -C output +} + +check() { + cd "$builddir" + python3 -m pytest test/ +} + +package() { + cd "$builddir" + DESTDIR="$pkgdir" ninja -C output install + rm -r "$pkgdir"/dev "$pkgdir"/etc/init.d + + 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_ + +} + +sha512sums="90c56a6652967450f03cb0f20ae929091a3e8b3f6927fe7a6ce59bb5e3f247d34a44ce19f085ab09547d9cc38ab1cec1e71fe44ec5c4f201782150aadcbe6b4f fuse-3.2.5.tar.xz +1a9e1d1e8a7b0778ffde328e4322c73b5d57ec98d52767c846d755cce861ab27989823a75b6c5f994432ddb77fa351dfa4a8f948c9467c5f7d5f471e4608358b fix-realpath.patch +7f6a503ef23cfa8b809c544375c2d83ad56525269b48ad1a7dff0ce36f4bf2f2a3fafed9dc70a71ff6281b261db5f01829e16c06f041921a5d8c8d715a04a8c1 fuse.initd" diff --git a/main/fuse3/fix-realpath.patch b/main/fuse3/fix-realpath.patch new file mode 100644 index 0000000000..375bedc961 --- /dev/null +++ b/main/fuse3/fix-realpath.patch @@ -0,0 +1,28 @@ +--- fuse-3.1.0.orig/util/fusermount.c ++++ fuse-3.1.0/util/fusermount.c +@@ -1200,19 +1200,16 @@ + + origmnt = argv[optind]; + +- drop_privs(); + mnt = fuse_mnt_resolve_path(progname, origmnt); +- if (mnt != NULL) { +- res = chdir("/"); +- if (res == -1) { +- fprintf(stderr, "%s: failed to chdir to '/'\n", progname); +- goto err_out; +- } +- } +- restore_privs(); + if (mnt == NULL) + exit(1); + ++ res = chdir("/"); ++ if (res == -1) { ++ fprintf(stderr, "%s: failed to chdir to '/'\n", progname); ++ exit(1); ++ } ++ + umask(033); + if (unmount) + goto do_unmount; diff --git a/main/fuse3/fuse.initd b/main/fuse3/fuse.initd new file mode 100644 index 0000000000..6c99929c22 --- /dev/null +++ b/main/fuse3/fuse.initd @@ -0,0 +1,35 @@ +#!/sbin/openrc-run +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +MOUNTPOINT=/sys/fs/fuse/connections + +depend() { + need localmount +} + +start() { + + ebegin "Starting fuse" + if ! grep -qw fuse /proc/filesystems; then + modprobe fuse >/dev/null 2>&1 || eerror $? "Error loading fuse module" + fi + if grep -qw fusectl /proc/filesystems && \ + ! grep -qw $MOUNTPOINT /proc/mounts; then + mount -t fusectl none $MOUNTPOINT >/dev/null 2>&1 || \ + eerror $? "Error mounting control filesystem" + fi + eend ${?} + +} + +stop() { + + ebegin "Stopping fuse" + if grep -qw $MOUNTPOINT /proc/mounts; then + umount $MOUNTPOINT >/dev/null 2>&1 || \ + eerror $? "Error unmounting control filesystem" + fi + eend ${?} + +} |