mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
sys-fs/fuse: fix build with glibc 2.34
Backporting the same patch which is now upstream, converted to patches for autotools changes rather than sed for further changes. Bug: https://bugs.gentoo.org/438250 Closes: https://bugs.gentoo.org/803923 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
38
sys-fs/fuse/files/fuse-2.9.9-avoid-calling-umount.patch
Normal file
38
sys-fs/fuse/files/fuse-2.9.9-avoid-calling-umount.patch
Normal file
@@ -0,0 +1,38 @@
|
||||
From acb69eca6c25db44523efb4cb1e7088ae66d093d Mon Sep 17 00:00:00 2001
|
||||
From: Sam James <sam@gentoo.org>
|
||||
Date: Tue, 3 Aug 2021 23:14:12 +0100
|
||||
Subject: [PATCH] Avoid calling umount
|
||||
|
||||
Converting a sed into a patch.
|
||||
|
||||
Ebuild had:
|
||||
# sandbox violation with mtab writability wrt #438250
|
||||
# don't sed configure.in without eautoreconf because of maintainer mode
|
||||
sed -i 's:umount --fake:true --fake:' configure || die
|
||||
|
||||
Bug: https://bugs.gentoo.org/438250
|
||||
---
|
||||
configure.ac | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 9946a0e..de433cb 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -101,11 +101,11 @@ util_linux_ok=yes
|
||||
if test "$arch" = linux -a "$cross_compiling" != "yes"; then
|
||||
AC_MSG_CHECKING([if umount supports --fake --no-canonicalize])
|
||||
# exit code of umount is 1 if option is unrecognised, 2 otherwise
|
||||
- umount --fake --no-canonicalize > /dev/null 2>&1
|
||||
+ true --fake --no-canonicalize > /dev/null 2>&1
|
||||
if test $? != 1; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
- firstline=`umount --fake --no-canonicalize 2>&1 | head -1`
|
||||
+ firstline=`true --fake --no-canonicalize 2>&1 | head -1`
|
||||
if test "$firstline" = 'umount: only root can use "--fake" option'; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
--
|
||||
2.32.0
|
||||
|
||||
60
sys-fs/fuse/files/fuse-2.9.9-closefrom-glibc-2-34.patch
Normal file
60
sys-fs/fuse/files/fuse-2.9.9-closefrom-glibc-2-34.patch
Normal file
@@ -0,0 +1,60 @@
|
||||
From ae2352bca9b4e607538412da0cc2a9625cd8b692 Mon Sep 17 00:00:00 2001
|
||||
From: Sam James <sam@gentoo.org>
|
||||
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 <sam@gentoo.org>
|
||||
---
|
||||
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 <sys/socket.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
+#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)
|
||||
{
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit flag-o-matic libtool linux-info udev
|
||||
inherit autotools flag-o-matic linux-info udev
|
||||
|
||||
DESCRIPTION="An interface for filesystems implemented in userspace"
|
||||
HOMEPAGE="https://github.com/libfuse/libfuse"
|
||||
@@ -18,6 +18,12 @@ PDEPEND="kernel_FreeBSD? ( sys-fs/fuse4bsd )"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
RDEPEND=">=sys-fs/fuse-common-3.3.0-r1"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-2.9.3-kernel-types.patch
|
||||
"${FILESDIR}"/${PN}-2.9.9-avoid-calling-umount.patch
|
||||
"${FILESDIR}"/${PN}-2.9.9-closefrom-glibc-2-34.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
if use kernel_linux ; then
|
||||
if kernel_is lt 2 6 9 ; then
|
||||
@@ -30,21 +36,17 @@ pkg_setup() {
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
local PATCHES=( "${FILESDIR}"/${PN}-2.9.3-kernel-types.patch )
|
||||
# sandbox violation with mtab writability wrt #438250
|
||||
# don't sed configure.in without eautoreconf because of maintainer mode
|
||||
sed -i 's:umount --fake:true --fake:' configure || die
|
||||
elibtoolize
|
||||
default
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# lto not supported yet -- https://github.com/libfuse/libfuse/issues/198
|
||||
# gcc-9 with -flto leads to link failures: #663518,
|
||||
# https://gcc.gnu.org/PR91186
|
||||
filter-flags -flto*
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
INIT_D_PATH="${EPREFIX}/etc/init.d" \
|
||||
MOUNT_FUSE_PATH="${EPREFIX}/sbin" \
|
||||
|
||||
Reference in New Issue
Block a user