From 8cb00b96a8f4461d9043f782b26a05c29f9a69bc Mon Sep 17 00:00:00 2001 From: Pavel Reichl Date: Thu, 7 Oct 2021 16:09:39 +0200 Subject: [PATCH] Fix failure to build from source Fix wrong URL in Source0 Add conditional use of reconf Related: rhbz#1984778 Signed-off-by: Pavel Reichl --- fuse.spec | 25 +++++++-- fuse2-0005-remove-closefrom-function.patch | 60 ++++++++++++++++++++++ 2 files changed, 81 insertions(+), 4 deletions(-) create mode 100644 fuse2-0005-remove-closefrom-function.patch diff --git a/fuse.spec b/fuse.spec index ae8b553..646527f 100644 --- a/fuse.spec +++ b/fuse.spec @@ -1,10 +1,10 @@ Name: fuse Version: 2.9.9 -Release: 13%{?dist} +Release: 14%{?dist} Summary: File System in Userspace (FUSE) v2 utilities License: GPL+ URL: http://fuse.sf.net -Source0: https://github.com/libfuse/libfuse/releases/download/%{name}-%{version}.tar.gz +Source0: https://github.com/libfuse/libfuse/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz Patch1: fuse2-0001-More-parentheses.patch # https://bugzilla.redhat.com/show_bug.cgi?id=970768 @@ -16,14 +16,22 @@ Patch3: fuse2-0003-make-buffer-size-match-kernel-max-transfer-size.patch # https://github.com/libfuse/libfuse/pull/392 # backported for fuse2 Patch4: fuse2-0004-Whitelist-SMB2-found-on-some-NAS-devices.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1984778 +# https://github.com/libfuse/libfuse/pull/619 +# https://github.com/libfuse/libfuse/commit/ae2352bca9b4e607538412da0cc2a9625cd8b692.patch +Patch5: fuse2-0005-remove-closefrom-function.patch + +# Default to *do* run autoreconf, because in case any downstream patch touched +# configure.ac or Makefile.am it may be necessary to do so - e.g Patch #5. +%{!?enable_autotools: %global enable_autotools 1} Requires: which Conflicts: filesystem < 3 BuildRequires: libselinux-devel BuildRequires: autoconf, automake, libtool, gettext-devel, make -BuildRequires: systemd-udev +BuildRequires: systemd-udev # fuse-common 3.4.2-3 and earlier included man pages -Requires: fuse-common >= 3.4.2-4 +Requires: fuse-common >= 3.4.2-4 %description With FUSE it is possible to implement a fully functional filesystem in a @@ -61,8 +69,12 @@ sed -i 's|mknod|echo Disabled: mknod |g' util/Makefile.in %patch2 -p1 -b .conflictfix %patch3 -p1 -b .buffer_size %patch4 -p1 -b .smb2_whitelist +%patch5 -p1 -b .remove_closefrom %build +%if 0%{?enable_autotools} +autoreconf -if +%endif # Can't pass --disable-static here, or else the utils don't build export MOUNT_FUSE_PATH="%{_sbindir}" CFLAGS="%{optflags} -D_GNU_SOURCE" %configure @@ -123,6 +135,11 @@ rm -f %{buildroot}/%{_libdir}/*.a %{_includedir}/fuse %changelog + +* Thu Oct 07 2021 Pavel Reichl - 2.9.9-14 +- Fix failure to build from source, fix wrong URL in Source0 + Related: rhbz#1984778 + * Mon Aug 09 2021 Mohan Boddu - 2.9.9-13 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688 diff --git a/fuse2-0005-remove-closefrom-function.patch b/fuse2-0005-remove-closefrom-function.patch new file mode 100644 index 0000000..beb8d51 --- /dev/null +++ b/fuse2-0005-remove-closefrom-function.patch @@ -0,0 +1,60 @@ +From ae2352bca9b4e607538412da0cc2a9625cd8b692 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) + {