diff --git a/extra/fuse2/.SRCINFO b/extra/fuse2/.SRCINFO new file mode 100644 index 000000000..1757f147d --- /dev/null +++ b/extra/fuse2/.SRCINFO @@ -0,0 +1,26 @@ +pkgbase = fuse2 + pkgdesc = Interface for userspace programs to export a filesystem to the Linux kernel + pkgver = 2.9.9 + pkgrel = 5 + url = https://github.com/libfuse/libfuse + arch = x86_64 + license = GPL2 + makedepends = pkg-config + depends = glibc + depends = fuse-common + provides = fuse=2.9.9 + conflicts = fuse + replaces = fuse + options = !emptydirs + source = https://github.com/libfuse/libfuse/releases/download/fuse-2.9.9/fuse-2.9.9.tar.gz + source = https://github.com/libfuse/libfuse/releases/download/fuse-2.9.9/fuse-2.9.9.tar.gz.asc + source = conditionally-define-closefrom.patch + validpgpkeys = ED31791B2C5C1613AF388B8AD113FCAC3C4E599F + sha1sums = 943ba651b14bc4a3c6fd959ed4b8c04f4a59032d + sha1sums = SKIP + sha1sums = 90750cd0839c1ee427314241f9ea5f054c3335d8 + sha512sums = 3d82fafd04f2924299bb09d2bb144935fa004a43fb9a6568e2e1cc5a60fded2efa1711029a0d7f12b3e6e4501f7217f2ee3545646d89da8dece083cb390f23e2 + sha512sums = SKIP + sha512sums = 0836d1693bea203b562a86c992107ee48766f41bb05a31e9af41009d2270ac84d7881aa5bc2a11ed478cd03985876aca5080341ddea701a12a630a36e1b1a80b + +pkgname = fuse2 diff --git a/extra/fuse2/PKGBUILD b/extra/fuse2/PKGBUILD index 71a765228..ef042acef 100644 --- a/extra/fuse2/PKGBUILD +++ b/extra/fuse2/PKGBUILD @@ -1,34 +1,41 @@ -# Maintainer: Ronald van Haren -# Contributor: Tom Gundersen -# Contributor: Mark Rosenstand - # ALARM: Kevin Mihelich # - upstream patch for AArch64 +# Contributor: Ronald van Haren +# Contributor: Tom Gundersen +# Contributor: Mark Rosenstand + pkgname=fuse2 pkgver=2.9.9 -pkgrel=4 -pkgdesc="A library that makes it possible to implement a filesystem in a userspace program." -arch=('i686' 'x86_64') +pkgrel=5 +pkgdesc='Interface for userspace programs to export a filesystem to the Linux kernel' url='https://github.com/libfuse/libfuse' +arch=('x86_64') license=('GPL2') +depends=('glibc' 'fuse-common') +makedepends=('pkg-config') provides=(fuse=$pkgver) # TODO: remove it once all packages start to use 'fuse2' name replaces=('fuse') conflicts=('fuse') -depends=('glibc' 'fuse-common') -makedepends=('pkg-config') -options=(!emptydirs) +options=('!emptydirs') source=(https://github.com/libfuse/libfuse/releases/download/fuse-$pkgver/fuse-$pkgver.tar.gz{,.asc} + conditionally-define-closefrom.patch https://github.com/libfuse/libfuse/commit/914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch) sha1sums=('943ba651b14bc4a3c6fd959ed4b8c04f4a59032d' 'SKIP' - 'dd0c03bb92ec0dd105557e6c1649a5a71cc69a94') + '90750cd0839c1ee427314241f9ea5f054c3335d8' + '0eac15084300e71129eaf3f39b8b7b25a6c18cab') +sha512sums=('3d82fafd04f2924299bb09d2bb144935fa004a43fb9a6568e2e1cc5a60fded2efa1711029a0d7f12b3e6e4501f7217f2ee3545646d89da8dece083cb390f23e2' + 'SKIP' + '0836d1693bea203b562a86c992107ee48766f41bb05a31e9af41009d2270ac84d7881aa5bc2a11ed478cd03985876aca5080341ddea701a12a630a36e1b1a80b' + '6615563894b3c402468db975c227a531a225848a3ce3e802d25081480d356b53b64ce7ccf60083b7d7e069cb553f4add71f113f119d3a7d02888fee96fc74a73') validpgpkeys=(ED31791B2C5C1613AF388B8AD113FCAC3C4E599F) # Nikolaus Rath prepare() { cd fuse-$pkgver - patch -p1 -i ../914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch + patch -Np1 -i ${srcdir}/conditionally-define-closefrom.patch + autoreconf -i } build() { @@ -41,12 +48,12 @@ build() { package() { cd fuse-$pkgver - make DESTDIR=${pkgdir} install + make DESTDIR="${pkgdir}" install # Remove init script in wrong path # Don't add our own for now, as fusectl fs oopses on 2.6.18 - rm -r ${pkgdir}/etc/init.d + rm -r "${pkgdir}"/etc/init.d # static device nodes are handled by udev - rm -r ${pkgdir}/dev + rm -r "${pkgdir}"/dev } diff --git a/extra/fuse2/conditionally-define-closefrom.patch b/extra/fuse2/conditionally-define-closefrom.patch new file mode 100644 index 000000000..eb7737cfc --- /dev/null +++ b/extra/fuse2/conditionally-define-closefrom.patch @@ -0,0 +1,60 @@ +From 5a43d0f724c56f8836f3f92411e0de1b5f82db32 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/extra/fuse2/keys/pgp/ED31791B2C5C1613AF388B8AD113FCAC3C4E599F.asc b/extra/fuse2/keys/pgp/ED31791B2C5C1613AF388B8AD113FCAC3C4E599F.asc new file mode 100644 index 000000000..2d05ada47 --- /dev/null +++ b/extra/fuse2/keys/pgp/ED31791B2C5C1613AF388B8AD113FCAC3C4E599F.asc @@ -0,0 +1,52 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=P5gn +-----END PGP PUBLIC KEY BLOCK-----