fuse3: update to version 3.17.3
authorGeorgi Valkov <[email protected]>
Tue, 29 Jul 2025 14:30:09 +0000 (17:30 +0300)
committerRobert Marko <[email protected]>
Wed, 30 Jul 2025 21:35:22 +0000 (23:35 +0200)
replace old patch with the one accepted upstream

change log
- more conn->want / conn->want_ext conversion fixes
- Fix feature detection for close_range
- Avoid possible double unmount on FUSE_DESTROY

Signed-off-by: Georgi Valkov <[email protected]>
utils/fuse3/Makefile
utils/fuse3/patches/101-mount_util.c-check-if-utab-exists-before-update.patch [new file with mode: 0644]
utils/fuse3/patches/101-mount_util.c-restore-symlink-check.patch [deleted file]

index f3a131955ee3c015eedeab07f5e488f232391bda..ff8ecac9a4ff42b3defc59d1a43a77f824dbc621 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=fuse3
-PKG_VERSION:=3.17.2
-PKG_RELEASE:=3
+PKG_VERSION:=3.17.3
+PKG_RELEASE:=1
 
 PKG_SOURCE:=fuse-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/libfuse/libfuse/releases/download/fuse-$(PKG_VERSION)
-PKG_HASH:=3d932431ad94e86179e5265cddde1d67aa3bb2fb09a5bd35c641f86f2b5ed06f
+PKG_HASH:=de8190448909aa97a222d435bc130aae98331bed4215e9f4519b4b5b285a1d63
 PKG_BUILD_DIR:=$(BUILD_DIR)/fuse-$(PKG_VERSION)
 
 PKG_MAINTAINER:=
diff --git a/utils/fuse3/patches/101-mount_util.c-check-if-utab-exists-before-update.patch b/utils/fuse3/patches/101-mount_util.c-check-if-utab-exists-before-update.patch
new file mode 100644 (file)
index 0000000..0514cc2
--- /dev/null
@@ -0,0 +1,40 @@
+From 3793b1748ad151c8043dee1db198fffa3dbb5a67 Mon Sep 17 00:00:00 2001
+From: Georgi Valkov <[email protected]>
+Date: Sun, 15 Jun 2025 15:34:57 +0300
+Subject: [PATCH] mount_util.c: check if utab exists before update
+
+Do not attempt to update /run/mount/utab if it doesn't exist.
+Note: if this path ever changes, utab updates will break.
+
+Fixes the following error when mounting iPhone using ifuse:
+ifuse /mnt --container com.httpstorm.httpstorm
+mount: mounting ifuse on /mnt failed: Invalid argument
+
+On OpenWRT by default mount-utils is not installed and utab
+does not exist. /bin/mount is a symlink to /bin/busybox and
+does not support updating of utab. If mount-utils is installed:
+/run/mount/ exists, but does not contain utab.
+The mount-utils instance is under /usr/bin/mount, so a hard-coded
+call to /bin/mount will still fail. Using /usr/bin/mount succeeds
+but does not create utab.
+
+[1] https://github.com/libfuse/libfuse/pull/1247
+
+Signed-off-by: Georgi Valkov <[email protected]>
+---
+ lib/mount_util.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/lib/mount_util.c
++++ b/lib/mount_util.c
+@@ -75,6 +75,10 @@ static int mtab_needs_update(const char
+               if (err == EROFS)
+                       return 0;
++
++              res = access("/run/mount/utab", F_OK);
++              if (res == -1)
++                      return 0;
+       }
+       return 1;
diff --git a/utils/fuse3/patches/101-mount_util.c-restore-symlink-check.patch b/utils/fuse3/patches/101-mount_util.c-restore-symlink-check.patch
deleted file mode 100644 (file)
index fdd0185..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-From: Georgi Valkov <[email protected]>
-Date: Fri, 13 Jun 2025 08:49:22 +0300
-Subject: [PATCH] mount_util.c: restore symlink check
-
-Fixes the following error when mounting iPhone using ifuse:
-ifuse /mnt --container com.httpstorm.httpstorm
-mount: mounting ifuse on /mnt failed: Invalid argument
-
-The regression was introduced in
-74b1df2e84e836a1710561f52075d51f20cd5c78
-
-Signed-off-by: Georgi Valkov <[email protected]>
----
- lib/mount_util.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
---- a/lib/mount_util.c
-+++ b/lib/mount_util.c
-@@ -54,6 +54,7 @@ static int mtab_needs_update(const char
-        * Skip mtab update if /etc/mtab:
-        *
-        *  - doesn't exist,
-+       *  - is a symlink,
-        *  - is on a read-only filesystem.
-        */
-       res = lstat(_PATH_MOUNTED, &stbuf);
-@@ -64,6 +65,9 @@ static int mtab_needs_update(const char
-               uid_t ruid;
-               int err;
-+              if (S_ISLNK(stbuf.st_mode))
-+                      return 0;
-+
-               ruid = getuid();
-               if (ruid != 0)
-                       setreuid(0, -1);