diff options
-rw-r--r-- | user/fuse3/APKBUILD | 77 | ||||
-rw-r--r-- | user/fuse3/fix-realpath.patch | 28 | ||||
-rw-r--r-- | user/fuse3/fuse.initd | 35 | ||||
-rw-r--r-- | user/py3-attrs/APKBUILD | 32 | ||||
-rw-r--r-- | user/py3-more-itertools/APKBUILD | 33 | ||||
-rw-r--r-- | user/py3-pytest/APKBUILD | 4 | ||||
-rw-r--r-- | user/py3-six/APKBUILD | 3 | ||||
-rw-r--r-- | user/sshfs/APKBUILD | 45 |
8 files changed, 254 insertions, 3 deletions
diff --git a/user/fuse3/APKBUILD b/user/fuse3/APKBUILD new file mode 100644 index 000000000..dd03d34e2 --- /dev/null +++ b/user/fuse3/APKBUILD @@ -0,0 +1,77 @@ +# Contributor: Natanael Copa <ncopa@alpinelinux.org> +# Maintainer: Max Rees <maxcrees@me.com> +pkgname=fuse3 +_pkgname=fuse +pkgver=3.2.6 +pkgrel=0 +pkgdesc="The reference implementation of the Linux FUSE (Filesystem in Userspace) interface" +url="https://github.com/libfuse/libfuse" +arch="all" +options="suid !check" # Requires fuse kernel module to be loaded +license="GPL-2.0-only AND LGPL-2.1-only AND BSD-2-Clause" +depends="fuse-common" +makedepends="linux-headers meson eudev-dev python3 py3-six py3-pluggy + py3-attrs py3-py" +#checkdepends="py3-pytest debianutils-which" +subpackages="$pkgname-dev $pkgname-doc + $_pkgname-common:common:noarch $_pkgname-openrc:openrc:noarch" +source="https://github.com/libfuse/libfuse/releases/download/fuse-$pkgver/fuse-$pkgver.tar.xz + fix-realpath.patch + fuse.initd" +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"/output + 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 + 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" + mkdir -p "$subpkgdir"/etc + mv "$pkgdir"/etc/fuse.conf "$subpkgdir"/etc +} + +openrc() { + default_openrc + install_if="openrc fuse-common=$pkgver-r$pkgrel" +} + +sha512sums="3a1ef77ab4c79a24aad0b259e17f568a30a5faf53ac17eb25d05f30dc7423f0081583f5b3c284ca9196a01885843e97c323a84231272b7e2b55c8e73848a61b8 fuse-3.2.6.tar.xz +1a9e1d1e8a7b0778ffde328e4322c73b5d57ec98d52767c846d755cce861ab27989823a75b6c5f994432ddb77fa351dfa4a8f948c9467c5f7d5f471e4608358b fix-realpath.patch +7f6a503ef23cfa8b809c544375c2d83ad56525269b48ad1a7dff0ce36f4bf2f2a3fafed9dc70a71ff6281b261db5f01829e16c06f041921a5d8c8d715a04a8c1 fuse.initd" diff --git a/user/fuse3/fix-realpath.patch b/user/fuse3/fix-realpath.patch new file mode 100644 index 000000000..375bedc96 --- /dev/null +++ b/user/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/user/fuse3/fuse.initd b/user/fuse3/fuse.initd new file mode 100644 index 000000000..6c99929c2 --- /dev/null +++ b/user/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 ${?} + +} diff --git a/user/py3-attrs/APKBUILD b/user/py3-attrs/APKBUILD new file mode 100644 index 000000000..fad246453 --- /dev/null +++ b/user/py3-attrs/APKBUILD @@ -0,0 +1,32 @@ +# Contributor: Jean-Louis Fuchs <ganwell@fangorn.ch> +# Maintainer: Max Rees <maxcrees@me.com> +pkgname=py3-attrs +pkgver=18.2.0 +pkgrel=0 +pkgdesc="Python classes without boilerplate" +url="https://www.attrs.org" +arch="noarch" +options="!check" # Circular dependency with py3-pytest. Passes on x86_64 +license="MIT" +depends="python3" +makedepends="python3-dev" +#checkdepends="py3-tox" +source="py3-attrs-$pkgver.tar.gz::https://github.com/python-attrs/attrs/archive/$pkgver.tar.gz" +builddir="$srcdir/attrs-$pkgver" + +build() { + cd "$builddir" + python3 setup.py build +} + +check() { + cd "$builddir" + tox -e py36 +} + +package() { + cd "$builddir" + python3 setup.py install --prefix=/usr --root="$pkgdir" +} + +sha512sums="01bcd8d492f0b7e64ae42e311b0e443d2b365d98021d8c15f8003da084f48cd20456c12defd734d3386979bb69ac2bebafa1d14692c6dad69b084929992b2c2d py3-attrs-18.2.0.tar.gz" diff --git a/user/py3-more-itertools/APKBUILD b/user/py3-more-itertools/APKBUILD new file mode 100644 index 000000000..46baffedb --- /dev/null +++ b/user/py3-more-itertools/APKBUILD @@ -0,0 +1,33 @@ +# Contributor: Max Rees <maxcrees@me.com> +# Maintainer: Max Rees <maxcrees@me.com> +pkgname=py3-more-itertools +_pkgname=more-itertools +pkgver=4.3.0 +pkgrel=0 +pkgdesc="More routines for operating on iterables, beyond itertools" +url="https://pypi.org/project/more-itertools" +options="!check" # Circular dependency with py3-pytest. Passes on x86_64 +arch="noarch" +license="MIT" +depends="python3" +makedepends="" +#checkdepends="py3-tox" +source="$pkgname-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/m/$_pkgname/$_pkgname-$pkgver.tar.gz" +builddir="$srcdir/$_pkgname-$pkgver" + +build() { + cd "$builddir" + python3 setup.py build +} + +check() { + cd "$builddir" + tox -e py36 +} + +package() { + cd "$builddir" + python3 setup.py install --prefix=/usr --root="$pkgdir" +} + +sha512sums="5fee3d99fd796b0f0f6b5aa99a8db22e219d3dced71fef6f4b16286fe67061dce280389b3638c55c6e5f6c828ef1286cee845d76a6861d2af66d90e995d5aa4e py3-more-itertools-4.3.0.tar.gz" diff --git a/user/py3-pytest/APKBUILD b/user/py3-pytest/APKBUILD index 30a26fb30..8d720971e 100644 --- a/user/py3-pytest/APKBUILD +++ b/user/py3-pytest/APKBUILD @@ -3,13 +3,13 @@ pkgname=py3-pytest _pkgname=pytest pkgver=3.5.1 -pkgrel=0 +pkgrel=1 pkgdesc="A python test library" url="https://pypi.python.org/pypi/pytest" arch="noarch" options="net !check" # Circular dependency with py3-tox. Passes on x86_64 license="MIT" -depends="python3 py3-py" +depends="python3 py3-py py3-more-itertools py3-six py3-pluggy py3-attrs" makedepends="python3-dev" #checkdepends="py3-tox" source="$pkgname-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz" diff --git a/user/py3-six/APKBUILD b/user/py3-six/APKBUILD index 7c001b2a9..3b5c00d34 100644 --- a/user/py3-six/APKBUILD +++ b/user/py3-six/APKBUILD @@ -7,10 +7,11 @@ pkgrel=1 pkgdesc="Python 2 compatibility library" url="https://pypi.python.org/pypi/six" arch="noarch" +options="!check" # Circular dependency with py3-pytest license="MIT" depends="" makedepends="python3-dev" -checkdepends="py3-pluggy py3-pytest" +#checkdepends="py3-pluggy py3-pytest" source="$pkgname-$pkgver.tar.gz::https://github.com/benjaminp/$_pkgname/archive/$pkgver.tar.gz" builddir="$srcdir/$_pkgname-$pkgver" diff --git a/user/sshfs/APKBUILD b/user/sshfs/APKBUILD new file mode 100644 index 000000000..404c077be --- /dev/null +++ b/user/sshfs/APKBUILD @@ -0,0 +1,45 @@ +# Contributor: Natanael Copa <ncopa@alpinelinux.org> +# Maintainer: Max Rees <maxcrees@me.com> +pkgname=sshfs +pkgver=3.5.0 +pkgrel=0 +pkgdesc="FUSE client based on the SSH File Transfer Protocol" +url="https://github.com/libfuse/sshfs" +arch="all" +options="!check" # Requires fuse kernel module to be loaded and local ssh server +license="GPL-2.0-only AND GPL-2.0+ AND LGPL-2.1-only" +depends="openssh-client" +makedepends="fuse3-dev glib-dev meson coreutils py3-docutils" +#checkdepends="py3-pytest debianutils-which" +subpackages="$pkgname-doc" +source="https://github.com/libfuse/$pkgname/releases/download/$pkgname-$pkgver/$pkgname-$pkgver.tar.xz" + +build() { + cd "$builddir" + # NOTE: --prefix=/ is intentional. If --prefix=/usr, mount(8) will not be + # able to find mount.fuse.sshfs or mount.sshfs - it only looks in /sbin, not + # /usr/sbin. The omission of the absolute slash in --mandir=usr/share/man is + # also intentional - otherwise ninja tries to install the manpage to + # "/sr/share/man/man1" (???) + + meson \ + --prefix=/ \ + --sysconfdir=/etc \ + --mandir=usr/share/man \ + --localstatedir=/var \ + --buildtype=release \ + . output + ninja -C output +} + +check() { + cd "$builddir"/output + python3 -m pytest test/ +} + +package() { + cd "$builddir" + DESTDIR="$pkgdir" ninja -C output install +} + +sha512sums="6ba7be4bcad401d99fb864f105a6c8fc8b7c832d5b25f18cba27eee422fe65ee7bda8982466d624792a1fb21528c0cb078a59db48e93da4880a36aad7b506b0c sshfs-3.5.0.tar.xz" |