Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ifuse for openSUSE:Factory checked 
in at 2026-06-15 19:43:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ifuse (Old)
 and      /work/SRC/openSUSE:Factory/.ifuse.new.1981 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ifuse"

Mon Jun 15 19:43:47 2026 rev:16 rq:1359287 version:1.2.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/ifuse/ifuse.changes      2025-06-20 
16:51:17.640936911 +0200
+++ /work/SRC/openSUSE:Factory/.ifuse.new.1981/ifuse.changes    2026-06-15 
19:46:56.212196888 +0200
@@ -1,0 +2,8 @@
+Wed Jun 03 15:40:25 UTC 2026 - Kilian Knörzer <[email protected]>
+
+- Update to version 1.2.1:
+  * Fixed several issues and updated compatibility with newer iOS
+    devices.
+- Delete ifuse-1.1.4-fuse3.patch
+
+-------------------------------------------------------------------

Old:
----
  ifuse-1.1.4-fuse3.patch
  ifuse-1.1.4.tar.bz2

New:
----
  ifuse-1.2.1.tar.bz2

----------(Old B)----------
  Old:    devices.
- Delete ifuse-1.1.4-fuse3.patch
----------(Old E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ifuse.spec ++++++
--- /var/tmp/diff_new_pack.T0UZWE/_old  2026-06-15 19:46:59.320327141 +0200
+++ /var/tmp/diff_new_pack.T0UZWE/_new  2026-06-15 19:46:59.328327477 +0200
@@ -18,17 +18,14 @@
 
 
 Name:           ifuse
-Version:        1.1.4
+Version:        1.2.1
 Release:        0
 Summary:        Filesystem access for Apple devices
 License:        LGPL-2.0-or-later
 Group:          System/Filesystems
 URL:            https://www.libimobiledevice.org
 Source:         
https://github.com/libimobiledevice/ifuse/releases/download/%{version}/%{name}-%{version}.tar.bz2
-Patch0:         ifuse-1.1.4-fuse3.patch
-# for ifuse-1.1.4-fuse3.patch
-BuildRequires:  autoconf
-BuildRequires:  automake
+
 BuildRequires:  libimobiledevice-devel >= 1.3.0
 BuildRequires:  libplist-2_0-devel >= 2.2.0
 BuildRequires:  pkgconfig
@@ -45,8 +42,6 @@
 
 %build
 export CPPFLAGS=-D_FILE_OFFSET_BITS=64
-# for ifuse-1.1.4-fuse3.patch
-autoreconf -fiv
 %configure
 %make_build
 

++++++ ifuse-1.1.4.tar.bz2 -> ifuse-1.2.1.tar.bz2 ++++++
++++ 44145 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ifuse-1.1.4/NEWS new/ifuse-1.2.1/NEWS
--- old/ifuse-1.1.4/NEWS        2020-06-15 20:41:50.000000000 +0200
+++ new/ifuse-1.2.1/NEWS        2026-04-22 09:55:30.000000000 +0200
@@ -1,3 +1,18 @@
+Version 1.2.1
+~~~~~~~~~~~~~
+
+Bugfix Release
+
+* Changes:
+  -  Fix FUSE capability flags set during initialization causing data 
corruption 
+
+Version 1.2.0
+~~~~~~~~~~~~~
+
+* Changes:
+  - Switch to libfuse 3
+  - Require libimobiledevice 1.4.0
+
 Version 1.1.4
 ~~~~~~~~~~~~~
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ifuse-1.1.4/README.md new/ifuse-1.2.1/README.md
--- old/ifuse-1.1.4/README.md   2020-06-15 19:01:17.000000000 +0200
+++ new/ifuse-1.2.1/README.md   2026-04-22 10:02:53.000000000 +0200
@@ -2,6 +2,26 @@
 
 *A fuse filesystem implementation to access the contents of iOS devices.*
 
+![](https://github.com/libimobiledevice/ifuse/actions/workflows/build.yml/badge.svg)
+
+:warning: **Version 1.2.0 has a serious bug that results in data corruption.
+Regression was introduced in commit 
[36956a](/../../commit/36956a5179e224f57ebb9d0f01314c09c8bf0f97)
+and fixed in Version 1.2.1 with commit 
[903a29](/../../commit/903a29c7424028304aeef137d7c24e176b73fccf).**
+
+## Table of Contents
+- [Features](#features)
+- [Building](#building)
+  - [Prerequisites](#prerequisites)
+    - [Linux (Debian/Ubuntu based)](#linux-debianubuntu-based)
+    - [macOS](#macos)
+  - [Configuring the source tree](#configuring-the-source-tree)
+  - [Building and installation](#building-and-installation)
+- [Usage](#usage)
+- [Contributing](#contributing)
+- [Links](#links)
+- [License](#license)
+- [Credits](#credits)
+
 ## Features
 
 This project allows mounting various directories of an iOS device locally using
@@ -15,56 +35,167 @@
 - **Browse**: Allows to retrieve a list of installed file-sharing enabled apps
 - **Implementation**: Uses 
[libimobiledevice](https://github.com/libimobiledevice/libimobiledevice) for 
communication with the device
 
-## Installation / Getting started
+## Building
+
+### Prerequisites
+
+You need to have a working compiler (gcc/clang) and development environent
+available. This project uses autotools for the build process, allowing to
+have common build steps across different platforms.
+Only the prerequisites differ and they are described in this section.
+
+#### Linux (Debian/Ubuntu based)
+
+* Install all required dependencies and build tools:
+  ```shell
+  sudo apt-get install \
+       build-essential \
+       pkg-config \
+       checkinstall \
+       git \
+       autoconf \
+       automake \
+       libtool-bin \
+       libplist-dev \
+       libimobiledevice-dev \
+       libfuse3-dev \
+       usbmuxd
+  ```
+
+* [usbmuxd](https://github.com/libimobiledevice/usbmuxd) must be properly 
installed for `ifuse` to be able to
+communicate with devices.
+
+* Note: On some systems, you may have to load the `fuse` kernel
+module first and to ensure that you are a member of the `fuse` group:
+
+  ```shell
+  sudo modprobe fuse
+  sudo adduser $USER fuse
+  ```
+
+  You can check your membership of the `fuse` group with:
+
+  ```shell
+  id | grep fuse && echo yes! || echo not yet...
+  ```
+
+  If you have just added yourself, you will need to logout and log back
+  in for the group change to become visible.
+
+
+#### macOS
+
+* Make sure the Xcode command line tools are installed.
+
+  Use either [MacPorts](https://www.macports.org/)
+  or [Homebrew](https://brew.sh/) to install `automake`, `autoconf`, and 
`libtool`.
+
+  Using MacPorts:
+  ```shell
+  sudo port install libtool autoconf automake
+  ```
+
+  Using Homebrew:
+  ```shell
+  brew install libtool autoconf automake
+  ```
+
+  `ifuse` has a few dependencies from the libimobiledevice project.
+  You will have to build and install the following:
+  * [libplist](https://github.com/libimobiledevice/libplist)
+  * 
[libimobiledevice-glue](https://github.com/libimobiledevice/libimobiledevice-glue)
+  * [libusbmuxd](https://github.com/libimobiledevice/libusbmuxd)
+  * [libimobiledevice](https://github.com/libimobiledevice/libimobiledevice)
+
+  Check their `README.md` for building and installation instructions.
+
+* Download [macFUSE](https://github.com/macfuse/macfuse/releases/) dmg, mount 
it, and double click the `Install macFUSE` installer.
+  This will also install the libfuse library and development files.
+
+  Note: For macFUSE to work, you need to allow the macFUSE system extension in 
*Settings* -> *Privacy & Security* -> *Security*. Note that changes will 
require a system restart.
+
 
-### Debian / Ubuntu Linux
+### Configuring the source tree
+
+You can build the source code from a git checkout, or from a `.tar.bz2` 
release tarball from 
[Releases](https://github.com/libimobiledevice/ifuse/releases).
+Before we can build it, the source tree has to be configured for building. The 
steps depend on where you got the source from.
+
+* **From git**
+
+  If you haven't done already, clone the actual project repository and change 
into the directory.
+  ```shell
+  git clone https://github.com/libimobiledevice/ifuse.git
+  cd ifuse
+  ```
+
+  Configure the source tree for building:
+  ```shell
+  ./autogen.sh
+  ```
+
+* **From release tarball (.tar.bz2)**
+
+  When using an official [release 
tarball](https://github.com/libimobiledevice/ifuse/releases) 
(`ifuse-x.y.z.tar.bz2`)
+  the procedure is slightly different.
+
+  Extract the tarball:
+  ```shell
+  tar xjf ifuse-x.y.z.tar.bz2
+  cd ifuse-x.y.z
+  ```
+
+  Configure the source tree for building:
+  ```shell
+  ./configure
+  ```
+
+Both `./configure` and `./autogen.sh` (which generates and calls `configure`) 
accept a few options, for example `--prefix` to allow
+building for a different target folder. You can simply pass them like this:
 
-First install all required dependencies and build tools:
 ```shell
-sudo apt-get install \
-       build-essential \
-       checkinstall \
-       git \
-       autoconf \
-       automake \
-       libtool-bin \
-       libplist-dev \
-       libimobiledevice-dev \
-       libfuse-dev \
-       usbmuxd
+./autogen.sh --prefix=/usr/local
 ```
-
-Then clone the actual project repository:
+or
 ```shell
-git clone https://github.com/libimobiledevice/ifuse.git
-cd ifuse
+./configure --prefix=/usr/local
 ```
 
-Now you can build and install it:
-```shell
-./autogen.sh
-make
-sudo make install
+Once the command is successful, the last few lines of output will look like 
this:
 ```
+[...]
+config.status: creating config.h
+config.status: config.h is unchanged
+config.status: executing depfiles commands
+config.status: executing libtool commands
 
-### Setting up FUSE
+Configuration for ifuse 1.2.0:
+-------------------------------------------
 
-Note that on some systems, you may have to load the `fuse` kernel
-module first and to ensure that you are a member of the `fuse` group:
+  Install prefix: .........: /usr/local
 
-```shell
-sudo modprobe fuse
-sudo adduser $USER fuse
+  Now type 'make' to build ifuse 1.2.0,
+  and then 'make install' for installation.
 ```
 
-You can check your membership of the `fuse` group with:
+### Building and installation
+
+If you followed all the steps successfully, and `autogen.sh` or `configure` 
did not print any errors,
+you are ready to build the project. This is simply done with
 
 ```shell
-id | grep fuse && echo yes! || echo not yet...
+make
 ```
 
-If you have just added yourself, you will need to logout and log back
-in for the group change to become visible.
+If no errors are emitted you are ready for installation. Depending on whether
+the current user has permissions to write to the destination directory or not,
+you would either run
+```shell
+make install
+```
+_OR_
+```shell
+sudo make install
+```
 
 ## Usage
 
@@ -82,7 +213,7 @@
 fusermount -u <mountpoint>
 ```
 
-By default, ifuse (via the AFC protocol) gives access to the `/var/root/Media/`
+By default, ifuse (via the AFC protocol) gives access to the 
`/var/mobile/Media/`
 chroot on the device (containing music/pictures). This is the right and safe
 way to access the device. However, if the device has been jailbroken, a full
 view of the device's filesystem might be available using the following command
@@ -96,10 +227,9 @@
 install it and thus does not enable root filesystem access by default!
 Use with care as the AFC protocol was not made to access the root filesystem.
 
-If using libimobiledevice >= 1.1.0, ifuse can also be used with the iTunes
-file/document sharing feature. It allows you to exchange files with an
-application on the device directly through it's documents folder by specifing
-the application identifier like this:
+**ifuse** can also be used with the iTunes file/document sharing feature.
+It allows you to exchange files with an application on the device directly
+through it's documents folder by specifing the application identifier like 
this:
 ```shell
 ifuse --documents <appid> <mountpoint>
 ```
@@ -140,7 +270,7 @@
 
 Please make sure your contribution adheres to:
 * Try to follow the code style of the project
-* Commit messages should describe the change well without being to short
+* Commit messages should describe the change well without being too short
 * Try to split larger changes into individual commits of a common domain
 * Use your real name and a valid email address for your commits
 
@@ -149,8 +279,8 @@
 ## Links
 
 * Homepage: https://libimobiledevice.org/
-* Repository: https://git.libimobiledevice.org/ifuse.git
-* Repository (Mirror): https://github.com/libimobiledevice/ifuse.git
+* Repository: https://github.com/libimobiledevice/ifuse.git
+* Repository (Mirror): https://git.libimobiledevice.org/ifuse.git
 * Issue Tracker: https://github.com/libimobiledevice/ifuse/issues
 * Mailing List: 
https://lists.libimobiledevice.org/mailman/listinfo/libimobiledevice-devel
 * Twitter: https://twitter.com/libimobiledev
@@ -168,4 +298,4 @@
 This project is an independent software application and has not been 
authorized,
 sponsored, or otherwise approved by Apple Inc.
 
-README Updated on: 2020-06-13
+README Updated on: 2026-04-22
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ifuse-1.1.4/compile new/ifuse-1.2.1/compile
--- old/ifuse-1.1.4/compile     2020-05-13 19:42:15.000000000 +0200
+++ new/ifuse-1.2.1/compile     2024-08-19 08:01:58.000000000 +0200
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2018-03-07.03; # UTC
+scriptversion=2024-06-19.01; # UTC
 
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2024 Free Software Foundation, Inc.
 # Written by Tom Tromey <[email protected]>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@
          MINGW*)
            file_conv=mingw
            ;;
-         CYGWIN*)
+         CYGWIN* | MSYS*)
            file_conv=cygwin
            ;;
          *)
@@ -67,7 +67,7 @@
        mingw/*)
          file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
          ;;
-       cygwin/*)
+       cygwin/* | msys/*)
          file=`cygpath -m "$file" || echo "$file"`
          ;;
        wine/*)
@@ -143,7 +143,7 @@
          # configure might choose to run compile as 'compile cc -o foo foo.c'.
          eat=1
          case $2 in
-           *.o | *.[oO][bB][jJ])
+           *.o | *.lo | *.[oO][bB][jJ])
              func_file_conv "$2"
              set x "$@" -Fo"$file"
              shift
@@ -248,14 +248,17 @@
 right script to run: please start by reading the file 'INSTALL'.
 
 Report bugs to <[email protected]>.
+GNU Automake home page: <https://www.gnu.org/software/automake/>.
+General help using GNU software: <https://www.gnu.org/gethelp/>.
 EOF
     exit $?
     ;;
   -v | --v*)
-    echo "compile $scriptversion"
+    echo "compile (GNU Automake) $scriptversion"
     exit $?
     ;;
   cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+  clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \
   icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
     func_cl_wrapper "$@"      # Doesn't return...
     ;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ifuse-1.1.4/config.h.in new/ifuse-1.2.1/config.h.in
--- old/ifuse-1.1.4/config.h.in 2020-06-13 04:35:58.000000000 +0200
+++ new/ifuse-1.2.1/config.h.in 2026-04-22 10:46:42.000000000 +0200
@@ -1,35 +1,35 @@
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#undef HAVE_ARPA_INET_H
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
 
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
-/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
+/* Define to 1 if your system has a GNU libc compatible 'malloc' function, and
    to 0 otherwise. */
 #undef HAVE_MALLOC
 
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if your system has a GNU libc compatible `realloc' function,
+/* Define to 1 if your system has a GNU libc compatible 'realloc' function,
    and to 0 otherwise. */
 #undef HAVE_REALLOC
 
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
+/* Define to 1 if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
 /* Define to 1 if you have the <stdlib.h> header file. */
 #undef HAVE_STDLIB_H
 
-/* Define to 1 if you have the `strcasecmp' function. */
+/* Define to 1 if you have the 'strcasecmp' function. */
 #undef HAVE_STRCASECMP
 
-/* Define to 1 if you have the `strdup' function. */
+/* Define to 1 if you have the 'strdup' function. */
 #undef HAVE_STRDUP
 
-/* Define to 1 if you have the `strerror' function. */
+/* Define to 1 if you have the 'strerror' function. */
 #undef HAVE_STRERROR
 
 /* Define to 1 if you have the <strings.h> header file. */
@@ -38,7 +38,7 @@
 /* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H
 
-/* Define to 1 if you have the `strndup' function. */
+/* Define to 1 if you have the 'strndup' function. */
 #undef HAVE_STRNDUP
 
 /* Define to 1 if you have the <sys/stat.h> header file. */
@@ -50,6 +50,9 @@
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#undef LT_OBJDIR
+
 /* Name of package */
 #undef PACKAGE
 
@@ -71,7 +74,9 @@
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION
 
-/* Define to 1 if you have the ANSI C header files. */
+/* Define to 1 if all of the C89 standard headers exist (not just the ones
+   required in a freestanding environment). This macro is provided for
+   backward compatibility; new code need not use it. */
 #undef STDC_HEADERS
 
 /* Version number of package */
@@ -87,7 +92,7 @@
    #define below would cause a syntax error. */
 #undef _UINT8_T
 
-/* Define to empty if `const' does not conform to ANSI C. */
+/* Define to empty if 'const' does not conform to ANSI C. */
 #undef const
 
 /* Define to rpl_malloc if the replacement function should be used. */
@@ -96,10 +101,10 @@
 /* Define to rpl_realloc if the replacement function should be used. */
 #undef realloc
 
-/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* Define as 'unsigned int' if <stddef.h> doesn't define. */
 #undef size_t
 
-/* Define to `int' if <sys/types.h> does not define. */
+/* Define as 'int' if <sys/types.h> doesn't define. */
 #undef ssize_t
 
 /* Define to the type of an unsigned integer type of width exactly 16 bits if
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ifuse-1.1.4/configure.ac new/ifuse-1.2.1/configure.ac
--- old/ifuse-1.1.4/configure.ac        2020-06-09 18:20:32.000000000 +0200
+++ new/ifuse-1.2.1/configure.ac        2026-04-22 10:46:22.000000000 +0200
@@ -1,25 +1,30 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-AC_PREREQ(2.64)
-AC_INIT([ifuse], [1.1.4], [https://github.com/libimobiledevice/ifuse/issues],, 
[https://libimobiledevice.org])
+AC_PREREQ(2.68)
+AC_INIT([ifuse], [m4_esyscmd(./git-version-gen $RELEASE_VERSION)], 
[https://github.com/libimobiledevice/ifuse/issues],, 
[https://libimobiledevice.org])
 AM_INIT_AUTOMAKE([dist-bzip2 no-dist-gzip check-news])
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
 AC_CONFIG_SRCDIR([src/])
 AC_CONFIG_HEADERS([config.h])
 
+# Check if we have a version defined
+if test -z $PACKAGE_VERSION; then
+  AC_MSG_ERROR([PACKAGE_VERSION is not defined. Make sure to configure a 
source tree checked out from git or that .tarball-version is present.])
+fi
+
 # Checks for programs.
 AC_PROG_CC
 AM_PROG_CC_C_O
+LT_INIT
 
 # Checks for libraries.
-PKG_CHECK_MODULES(libimobiledevice, libimobiledevice-1.0 >= 1.3.0)
-PKG_CHECK_MODULES(libfuse, fuse >= 2.7.0)
-PKG_CHECK_MODULES(libplist, libplist-2.0 >= 2.2.0)
+PKG_CHECK_MODULES(libimobiledevice, libimobiledevice-1.0 >= 1.4.0)
+PKG_CHECK_MODULES(libfuse, fuse3 >= 3.0.0)
+PKG_CHECK_MODULES(libplist, libplist-2.0 >= 2.3.0)
 
 # Checks for header files.
-AC_HEADER_STDC
-AC_CHECK_HEADERS([arpa/inet.h stdint.h stdlib.h string.h])
+AC_CHECK_HEADERS([stdint.h stdlib.h string.h])
 
 # Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
@@ -36,18 +41,18 @@
 
 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
 
-AC_OUTPUT([
+AC_CONFIG_FILES([
 Makefile
 src/Makefile
 docs/Makefile
 ])
+AC_OUTPUT
 
 echo "
 Configuration for $PACKAGE $VERSION:
 -------------------------------------------
 
-  Install prefix ..........: $prefix
-  libimobiledevice API ....: $libimobiledevice_VERSION
+  Install prefix: .........: $prefix
 
   Now type 'make' to build $PACKAGE $VERSION,
   and then 'make install' for installation.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ifuse-1.1.4/missing new/ifuse-1.2.1/missing
--- old/ifuse-1.1.4/missing     2020-05-13 19:42:15.000000000 +0200
+++ new/ifuse-1.2.1/missing     2024-08-19 08:01:58.000000000 +0200
@@ -1,9 +1,11 @@
 #! /bin/sh
-# Common wrapper for a few potentially missing GNU programs.
+# Common wrapper for a few potentially missing GNU and other programs.
 
-scriptversion=2018-03-07.03; # UTC
+scriptversion=2024-06-07.14; # UTC
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# shellcheck disable=SC2006,SC2268 # we must support pre-POSIX shells
+
+# Copyright (C) 1996-2024 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <[email protected]>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -54,18 +56,20 @@
   -v, --version   output version information and exit
 
 Supported PROGRAM values:
-  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
-  bison     yacc      flex         lex       help2man
+aclocal autoconf autogen  autoheader autom4te automake autoreconf
+bison   flex     help2man lex        makeinfo perl     yacc
 
 Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
 'g' are ignored when checking the name.
 
-Send bug reports to <[email protected]>."
+Report bugs to <[email protected]>.
+GNU Automake home page: <https://www.gnu.org/software/automake/>.
+General help using GNU software: <https://www.gnu.org/gethelp/>."
     exit $?
     ;;
 
   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
-    echo "missing $scriptversion (GNU Automake)"
+    echo "missing (GNU Automake) $scriptversion"
     exit $?
     ;;
 
@@ -108,7 +112,7 @@
 program_details ()
 {
   case $1 in
-    aclocal|automake)
+    aclocal|automake|autoreconf)
       echo "The '$1' program is part of the GNU Automake package:"
       echo "<$gnu_software_URL/automake>"
       echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
@@ -123,6 +127,9 @@
       echo "<$gnu_software_URL/m4/>"
       echo "<$perl_URL>"
       ;;
+    *)
+      :
+      ;;
   esac
 }
 
@@ -137,48 +144,55 @@
   printf '%s\n' "'$1' is $msg."
 
   configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  autoheader_deps="'acconfig.h'"
+  automake_deps="'Makefile.am'"
+  aclocal_deps="'acinclude.m4'"
   case $normalized_program in
+    aclocal*)
+      echo "You should only need it if you modified $aclocal_deps or"
+      echo "$configure_deps."
+      ;;
     autoconf*)
-      echo "You should only need it if you modified 'configure.ac',"
-      echo "or m4 files included by it."
-      program_details 'autoconf'
+      echo "You should only need it if you modified $configure_deps."
+      ;;
+    autogen*)
+      echo "You should only need it if you modified a '.def' or '.tpl' file."
+      echo "You may want to install the GNU AutoGen package:"
+      echo "<$gnu_software_URL/autogen/>"
       ;;
     autoheader*)
-      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "You should only need it if you modified $autoheader_deps or"
       echo "$configure_deps."
-      program_details 'autoheader'
       ;;
     automake*)
-      echo "You should only need it if you modified 'Makefile.am' or"
-      echo "$configure_deps."
-      program_details 'automake'
-      ;;
-    aclocal*)
-      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "You should only need it if you modified $automake_deps or"
       echo "$configure_deps."
-      program_details 'aclocal'
       ;;
-   autom4te*)
+    autom4te*)
       echo "You might have modified some maintainer files that require"
       echo "the 'autom4te' program to be rebuilt."
-      program_details 'autom4te'
+      ;;
+    autoreconf*)
+      echo "You should only need it if you modified $aclocal_deps or"
+      echo "$automake_deps or $autoheader_deps or $automake_deps or"
+      echo "$configure_deps."
       ;;
     bison*|yacc*)
       echo "You should only need it if you modified a '.y' file."
       echo "You may want to install the GNU Bison package:"
       echo "<$gnu_software_URL/bison/>"
       ;;
-    lex*|flex*)
-      echo "You should only need it if you modified a '.l' file."
-      echo "You may want to install the Fast Lexical Analyzer package:"
-      echo "<$flex_URL>"
-      ;;
     help2man*)
       echo "You should only need it if you modified a dependency" \
            "of a man page."
       echo "You may want to install the GNU Help2man package:"
       echo "<$gnu_software_URL/help2man/>"
     ;;
+    lex*|flex*)
+      echo "You should only need it if you modified a '.l' file."
+      echo "You may want to install the Fast Lexical Analyzer package:"
+      echo "<$flex_URL>"
+      ;;
     makeinfo*)
       echo "You should only need it if you modified a '.texi' file, or"
       echo "any other file indirectly affecting the aspect of the manual."
@@ -189,6 +203,12 @@
       echo "want to install GNU make:"
       echo "<$gnu_software_URL/make/>"
       ;;
+    perl*)
+      echo "You should only need it to run GNU Autoconf, GNU Automake, "
+      echo "  assorted other tools, or if you modified a Perl source file."
+      echo "You may want to install the Perl 5 language interpreter:"
+      echo "<$perl_URL>"
+      ;;
     *)
       echo "You might have modified some files without having the proper"
       echo "tools for further handling them.  Check the 'README' file, it"
@@ -197,6 +217,7 @@
       echo "case some other package contains this missing '$1' program."
       ;;
   esac
+  program_details "$normalized_program"
 }
 
 give_advice "$1" | sed -e '1s/^/WARNING: /' \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ifuse-1.1.4/src/ifuse.c new/ifuse-1.2.1/src/ifuse.c
--- old/ifuse-1.1.4/src/ifuse.c 2020-06-09 18:20:32.000000000 +0200
+++ new/ifuse-1.2.1/src/ifuse.c 2026-04-22 09:24:37.000000000 +0200
@@ -19,7 +19,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
  */
 
-#define FUSE_USE_VERSION  26
+#define FUSE_USE_VERSION  30
+#define FUSE_DARWIN_ENABLE_EXTENSIONS 0
 
 #ifdef HAVE_CONFIG_H
 #include <config.h>
@@ -205,77 +206,69 @@
        return 0;
 }
 
-static int ifuse_getattr(const char *path, struct stat *stbuf)
+static int ifuse_getattr(const char *path, struct stat *stbuf, struct 
fuse_file_info *fi)
 {
-       int i;
        int res = 0;
-       char **info = NULL;
+       plist_t info = NULL;
 
        afc_client_t afc = fuse_get_context()->private_data;
-       afc_error_t ret = afc_get_file_info(afc, path, &info);
+       afc_error_t ret = afc_get_file_info_plist(afc, path, &info);
 
        memset(stbuf, 0, sizeof(struct stat));
        if (ret != AFC_E_SUCCESS) {
                int e = get_afc_error_as_errno(ret);
-               res = -e;
+               return -e;
        } else if (!info) {
-               res = -1;
-       } else {
-               // get file attributes from info list
-               for (i = 0; info[i]; i += 2) {
-                       if (!strcmp(info[i], "st_size")) {
-                               stbuf->st_size = atoll(info[i+1]);
-                       } else if (!strcmp(info[i], "st_blocks")) {
-                               stbuf->st_blocks = atoi(info[i+1]);
-                       } else if (!strcmp(info[i], "st_ifmt")) {
-                               if (!strcmp(info[i+1], "S_IFREG")) {
-                                       stbuf->st_mode = S_IFREG;
-                               } else if (!strcmp(info[i+1], "S_IFDIR")) {
-                                       stbuf->st_mode = S_IFDIR;
-                               } else if (!strcmp(info[i+1], "S_IFLNK")) {
-                                       stbuf->st_mode = S_IFLNK;
-                               } else if (!strcmp(info[i+1], "S_IFBLK")) {
-                                       stbuf->st_mode = S_IFBLK;
-                               } else if (!strcmp(info[i+1], "S_IFCHR")) {
-                                       stbuf->st_mode = S_IFCHR;
-                               } else if (!strcmp(info[i+1], "S_IFIFO")) {
-                                       stbuf->st_mode = S_IFIFO;
-                               } else if (!strcmp(info[i+1], "S_IFSOCK")) {
-                                       stbuf->st_mode = S_IFSOCK;
-                               }
-                       } else if (!strcmp(info[i], "st_nlink")) {
-                               stbuf->st_nlink = atoi(info[i+1]);
-                       } else if (!strcmp(info[i], "st_mtime")) {
-                               stbuf->st_mtime = (time_t)(atoll(info[i+1]) / 
1000000000);
-                       }
+               return -1;
+       }
+
+       stbuf->st_size = plist_dict_get_uint(info, "st_size");
+       stbuf->st_blocks = plist_dict_get_uint(info, "st_blocks");
+       const char* s_ifmt = plist_get_string_ptr(plist_dict_get_item(info, 
"st_ifmt"), NULL);
+       if (s_ifmt) {
+               if (!strcmp(s_ifmt, "S_IFREG")) {
+                       stbuf->st_mode = S_IFREG;
+               } else if (!strcmp(s_ifmt, "S_IFDIR")) {
+                       stbuf->st_mode = S_IFDIR;
+               } else if (!strcmp(s_ifmt, "S_IFLNK")) {
+                       stbuf->st_mode = S_IFLNK;
+               } else if (!strcmp(s_ifmt, "S_IFBLK")) {
+                       stbuf->st_mode = S_IFBLK;
+               } else if (!strcmp(s_ifmt, "S_IFCHR")) {
+                       stbuf->st_mode = S_IFCHR;
+               } else if (!strcmp(s_ifmt, "S_IFIFO")) {
+                       stbuf->st_mode = S_IFIFO;
+               } else if (!strcmp(s_ifmt, "S_IFSOCK")) {
+                       stbuf->st_mode = S_IFSOCK;
+               }
+       }
+       stbuf->st_nlink = plist_dict_get_uint(info, "st_nlink");
+       stbuf->st_mtime = (time_t)(plist_dict_get_uint(info, "st_mtime") / 
1000000000);
 #ifdef _DARWIN_FEATURE_64_BIT_INODE
-                       else if (!strcmp(info[i], "st_birthtime")) { /* 
available on iOS 7+ */
-                               stbuf->st_birthtime = (time_t)(atoll(info[i+1]) 
/ 1000000000);
-                       }
+       /* available on iOS 7+ */
+       stbuf->st_birthtime = (time_t)(plist_dict_get_uint(info, 
"st_birthtime") / 1000000000);
 #endif
-               }
-               free_dictionary(info);
+       plist_free(info);
 
-               // set permission bits according to the file type
-               if (S_ISDIR(stbuf->st_mode)) {
-                       stbuf->st_mode |= 0755;
-               } else if (S_ISLNK(stbuf->st_mode)) {
-                       stbuf->st_mode |= 0777;
-               } else {
-                       stbuf->st_mode |= 0644;
-               }
+       // set permission bits according to the file type
+       if (S_ISDIR(stbuf->st_mode)) {
+               stbuf->st_mode |= 0755;
+       } else if (S_ISLNK(stbuf->st_mode)) {
+               stbuf->st_mode |= 0777;
+       } else {
+               stbuf->st_mode |= 0644;
+       }
 
-               // and set some additional info
-               stbuf->st_uid = getuid();
-               stbuf->st_gid = getgid();
+       // and set some additional info
+       stbuf->st_uid = getuid();
+       stbuf->st_gid = getgid();
 
-               stbuf->st_blksize = g_blocksize;
-       }
+       stbuf->st_blksize = g_blocksize;
 
        return res;
 }
 
-static int ifuse_readdir(const char *path, void *buf, fuse_fill_dir_t filler, 
off_t offset, struct fuse_file_info *fi)
+static int ifuse_readdir(const char *path, void *buf, fuse_fill_dir_t filler, 
off_t offset, struct fuse_file_info *fi, enum fuse_readdir_flags flags)
 {
        int i;
        char **dirs = NULL;
@@ -287,7 +280,7 @@
                return -ENOENT;
 
        for (i = 0; dirs[i]; i++) {
-               filler(buf, dirs[i], NULL, 0);
+               filler(buf, dirs[i], NULL, 0, 0);
        }
 
        free_dictionary(dirs);
@@ -366,7 +359,7 @@
        return bytes;
 }
 
-static int ifuse_utimens(const char *path, const struct timespec tv[2])
+static int ifuse_utimens(const char *path, const struct timespec tv[2], struct 
fuse_file_info *fi)
 {
        afc_client_t afc = fuse_get_context()->private_data;
        uint64_t mtime = (uint64_t)tv[1].tv_sec * (uint64_t)1000000000 + 
(uint64_t)tv[1].tv_nsec;
@@ -398,11 +391,11 @@
        return 0;
 }
 
-void *ifuse_init(struct fuse_conn_info *conn)
+void *ifuse_init(struct fuse_conn_info *conn, struct fuse_config *cfg)
 {
        afc_client_t afc = NULL;
 
-       conn->async_read = 0;
+       conn->want &= ~FUSE_CAP_ASYNC_READ;
 
        if (house_arrest) {
                afc_client_new_from_house_arrest_client(house_arrest, &afc);
@@ -415,16 +408,9 @@
 
        if (afc) {
                // get file system block size
-               int i;
-               char **info_raw = NULL;
-               if ((AFC_E_SUCCESS == afc_get_device_info(afc, &info_raw)) && 
info_raw) {
-                       for (i = 0; info_raw[i]; i+=2) {
-                               if (!strcmp(info_raw[i], "FSBlockSize")) {
-                                       g_blocksize = atoi(info_raw[i + 1]);
-                                       break;
-                               }
-                       }
-                       free_dictionary(info_raw);
+               plist_t info = NULL;
+               if ((AFC_E_SUCCESS == afc_get_device_info_plist(afc, &info)) && 
info) {
+                       g_blocksize = plist_dict_get_uint(info, "FSBlockSize");
                }
        }
 
@@ -447,6 +433,16 @@
        return 0;
 }
 
+int ifuse_chmod(const char *path, mode_t mode, struct fuse_file_info *fi)
+{
+       return 0;
+}
+
+int ifuse_chown(const char *file, uid_t user, gid_t group, struct 
fuse_file_info *fi)
+{
+       return 0;
+}
+
 int ifuse_statfs(const char *path, struct statvfs *stats)
 {
        afc_client_t afc = fuse_get_context()->private_data;
@@ -482,7 +478,7 @@
        return 0;
 }
 
-int ifuse_truncate(const char *path, off_t size)
+int ifuse_truncate(const char *path, off_t size, struct fuse_file_info *fi)
 {
        afc_client_t afc = fuse_get_context()->private_data;
        afc_error_t err = afc_truncate(afc, path, size);
@@ -493,18 +489,6 @@
        return 0;
 }
 
-int ifuse_ftruncate(const char *path, off_t size, struct fuse_file_info *fi)
-{
-       afc_client_t afc = fuse_get_context()->private_data;
-
-       afc_error_t err = afc_file_truncate(afc, fi->fh, size);
-       if (err != AFC_E_SUCCESS) {
-               int res = get_afc_error_as_errno(err);
-               return -res;
-       }
-       return 0;
-}
-
 int ifuse_readlink(const char *path, char *linktarget, size_t buflen)
 {
        int i, ret;
@@ -566,7 +550,7 @@
        return -get_afc_error_as_errno(err);
 }
 
-int ifuse_rename(const char *from, const char *to)
+int ifuse_rename(const char *from, const char *to, unsigned int flags)
 {
        afc_client_t afc = fuse_get_context()->private_data;
 
@@ -599,7 +583,6 @@
        .read = ifuse_read,
        .write = ifuse_write,
        .truncate = ifuse_truncate,
-       .ftruncate = ifuse_ftruncate,
        .readlink = ifuse_readlink,
        .symlink = ifuse_symlink,
        .link = ifuse_link,
@@ -607,6 +590,8 @@
        .rename = ifuse_rename,
        .utimens = ifuse_utimens,
        .fsync = ifuse_fsync,
+       .chmod = ifuse_chmod,
+       .chown = ifuse_chown,
        .release = ifuse_release,
        .init = ifuse_init,
        .destroy = ifuse_cleanup
@@ -820,9 +805,7 @@
                } else {
                        printf("ERROR: No device found!\n");
                }
-               fprintf(stderr, "Is the device properly connected?\n");
-               fprintf(stderr, "If it is make sure that your user has 
permissions to access the raw USB device.\n");
-               fprintf(stderr, "If you're still having issues try unplugging 
the device and reconnecting it.\n");
+               fprintf(stderr, "Ensure that the device is connected and 
usbmuxd is properly installed.\n");
                return EXIT_FAILURE;
        }
 

Reply via email to