Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package usbmuxd for openSUSE:Factory checked 
in at 2025-02-27 14:50:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/usbmuxd (Old)
 and      /work/SRC/openSUSE:Factory/.usbmuxd.new.25152 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "usbmuxd"

Thu Feb 27 14:50:52 2025 rev:39 rq:1248795 version:1.1.1+git69.523f700

Changes:
--------
--- /work/SRC/openSUSE:Factory/usbmuxd/usbmuxd.changes  2025-02-03 
21:46:34.462074115 +0100
+++ /work/SRC/openSUSE:Factory/.usbmuxd.new.25152/usbmuxd.changes       
2025-02-27 14:53:56.063988493 +0100
@@ -1,0 +2,20 @@
+Sun Feb 23 23:42:17 UTC 2025 - sbra...@suse.com
+
+- Update to version 1.1.1+git69.523f700:
+  * Updated README
+  * Update libplist requirement to 2.6.0 and use PLIST_DICT helper
+    for cleaner code
+  * conf: fix false plist write error in config_set_device_record
+  * usb: add support for modes 4 and 5
+  * usb: correctly display 10 Gbps USB 3.x
+  * usb: Revert default mode back to 1
+  * device: Fix crash caused by wrong variable when logging an
+    error
+  * usb: Set default mode to 3 to include CDC NCM, and fix a log
+    message
+  * systemd: use runstatedir (drop usbmuxd-run-dir.patch).
+  * udev: Make sure iBridge (T1) doesn't end up in an unconfigured
+    state
+- Refresh harden_usbmuxd.service.patch.
+
+-------------------------------------------------------------------

Old:
----
  usbmuxd-1.1.1+git48.01c94c7.tar.gz
  usbmuxd-run-dir.patch

New:
----
  usbmuxd-1.1.1+git69.523f700.tar.gz

BETA DEBUG BEGIN:
  Old:    message
  * systemd: use runstatedir (drop usbmuxd-run-dir.patch).
  * udev: Make sure iBridge (T1) doesn't end up in an unconfigured
BETA DEBUG END:

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

Other differences:
------------------
++++++ usbmuxd.spec ++++++
--- /var/tmp/diff_new_pack.nnbO8e/_old  2025-02-27 14:53:57.844062766 +0100
+++ /var/tmp/diff_new_pack.nnbO8e/_new  2025-02-27 14:53:57.864063601 +0100
@@ -18,7 +18,7 @@
 
 %{!?_udevrulesdir: %global _udevrulesdir %(pkg-config --variable=udevdir 
udev)/rules.d}
 Name:           usbmuxd
-Version:        1.1.1+git48.01c94c7
+Version:        1.1.1+git69.523f700
 Release:        0
 Summary:        A socket daemon to multiplex connections from and to iOS 
devices
 License:        GPL-2.0-only OR GPL-3.0-only
@@ -27,7 +27,6 @@
 Source:         %{name}-%{version}.tar.gz
 Source1:        %{name}.sysusers
 Source99:       baselibs.conf
-Patch2:         usbmuxd-run-dir.patch
 Patch3:         harden_usbmuxd.service.patch
 BuildRequires:  autoconf
 BuildRequires:  automake
@@ -36,7 +35,7 @@
 BuildRequires:  pkgconfig
 BuildRequires:  sysuser-tools
 BuildRequires:  pkgconfig(libimobiledevice-1.0) >= 1.3.0
-BuildRequires:  pkgconfig(libplist-2.0) >= 2.3.0
+BuildRequires:  pkgconfig(libplist-2.0) >= 2.6.0
 BuildRequires:  pkgconfig(libusb-1.0) >= 1.0.9
 BuildRequires:  pkgconfig(systemd)
 BuildRequires:  pkgconfig(udev)

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.nnbO8e/_old  2025-02-27 14:53:58.076072447 +0100
+++ /var/tmp/diff_new_pack.nnbO8e/_new  2025-02-27 14:53:58.084072781 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/libimobiledevice/usbmuxd</param>
-              <param 
name="changesrevision">01c94c77f59404924f1c46d99c4e5e0c7817281b</param></service></servicedata>
+              <param 
name="changesrevision">523f7004dce885fe38b4f80e34a8f76dc8ea98b5</param></service></servicedata>
 (No newline at EOF)
 

++++++ harden_usbmuxd.service.patch ++++++
--- /var/tmp/diff_new_pack.nnbO8e/_old  2025-02-27 14:53:58.200077621 +0100
+++ /var/tmp/diff_new_pack.nnbO8e/_new  2025-02-27 14:53:58.236079123 +0100
@@ -1,7 +1,7 @@
-Index: usbmuxd-1.1.1/systemd/usbmuxd.service.in
+Index: usbmuxd-1.1.1+git69.523f700/systemd/usbmuxd.service.in
 ===================================================================
---- usbmuxd-1.1.1.orig/systemd/usbmuxd.service.in
-+++ usbmuxd-1.1.1/systemd/usbmuxd.service.in
+--- usbmuxd-1.1.1+git69.523f700.orig/systemd/usbmuxd.service.in
++++ usbmuxd-1.1.1+git69.523f700/systemd/usbmuxd.service.in
 @@ -3,5 +3,16 @@ Description=Socket daemon for the usbmux
  Documentation=man:usbmuxd(8)
  
@@ -17,6 +17,6 @@
 +ProtectControlGroups=true
 +RestrictRealtime=true
 +# end of automatic additions 
- ExecStart=@sbindir@/usbmuxd --user usbmux --systemd -S /run/usbmuxd -P 
/run/usbmuxd.pid
- PIDFile=/run/usbmuxd.pid
+ ExecStart=@sbindir@/usbmuxd --user usbmux --systemd
+ PIDFile=@runstatedir@/usbmuxd.pid
 

++++++ usbmuxd-1.1.1+git48.01c94c7.tar.gz -> usbmuxd-1.1.1+git69.523f700.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/usbmuxd-1.1.1+git48.01c94c7/.github/workflows/build.yml 
new/usbmuxd-1.1.1+git69.523f700/.github/workflows/build.yml
--- old/usbmuxd-1.1.1+git48.01c94c7/.github/workflows/build.yml 2023-05-05 
23:22:37.000000000 +0200
+++ new/usbmuxd-1.1.1+git69.523f700/.github/workflows/build.yml 2025-02-01 
21:07:39.000000000 +0100
@@ -1,6 +1,10 @@
 name: build
 
-on: [push]
+on:
+  push:
+  pull_request:
+  schedule:
+    - cron: '0 0 1 * *'
 
 jobs:
   build-linux-ubuntu:
@@ -14,28 +18,28 @@
       run: |
           echo "target_triplet=`gcc -dumpmachine`" >> $GITHUB_ENV
     - name: fetch libplist
-      uses: dawidd6/action-download-artifact@v2
+      uses: dawidd6/action-download-artifact@v6
       with:
         github_token: ${{secrets.GITHUB_TOKEN}}
         workflow: build.yml
         name: libplist-latest_${{env.target_triplet}}
         repo: libimobiledevice/libplist
     - name: fetch libusbmuxd
-      uses: dawidd6/action-download-artifact@v2
+      uses: dawidd6/action-download-artifact@v6
       with:
         github_token: ${{secrets.GITHUB_TOKEN}}
         workflow: build.yml
         name: libusbmuxd-latest_${{env.target_triplet}}
         repo: libimobiledevice/libusbmuxd
     - name: fetch libimobiledevice-glue
-      uses: dawidd6/action-download-artifact@v2
+      uses: dawidd6/action-download-artifact@v6
       with:
         github_token: ${{secrets.GITHUB_TOKEN}}
         workflow: build.yml
         name: libimobiledevice-glue-latest_${{env.target_triplet}}
         repo: libimobiledevice/libimobiledevice-glue
     - name: fetch libimobiledevice
-      uses: dawidd6/action-download-artifact@v2
+      uses: dawidd6/action-download-artifact@v6
       with:
         github_token: ${{secrets.GITHUB_TOKEN}}
         workflow: build.yml
@@ -49,7 +53,7 @@
           done
           sudo cp -r extract/* /
           sudo ldconfig
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v4
       with:
         fetch-depth: 0
     - name: autogen
@@ -65,9 +69,9 @@
       run: |
           mkdir -p dest
           DESTDIR=`pwd`/dest make install
-          tar -C dest -cf usbmuxd.tar usr lib
+          tar -C dest -cf usbmuxd.tar --strip-components 1 .
     - name: publish artifact
-      uses: actions/upload-artifact@v2
+      uses: actions/upload-artifact@v4
       with:
         name: usbmuxd-latest_${{env.target_triplet}}
         path: usbmuxd.tar
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbmuxd-1.1.1+git48.01c94c7/README.md 
new/usbmuxd-1.1.1+git69.523f700/README.md
--- old/usbmuxd-1.1.1+git48.01c94c7/README.md   2023-05-05 23:22:37.000000000 
+0200
+++ new/usbmuxd-1.1.1+git69.523f700/README.md   2025-02-01 21:07:39.000000000 
+0100
@@ -135,8 +135,8 @@
 ## Links
 
 * Homepage: https://libimobiledevice.org/
-* Repository: https://git.libimobiledevice.org/usbmuxd.git
-* Repository (Mirror): https://github.com/libimobiledevice/usbmuxd.git
+* Repository: https://github.com/libimobiledevice/usbmuxd.git
+* Repository (Mirror): https://git.libimobiledevice.org/usbmuxd.git
 * Issue Tracker: https://github.com/libimobiledevice/usbmuxd/issues
 * Mailing List: 
https://lists.libimobiledevice.org/mailman/listinfo/libimobiledevice-devel
 * Twitter: https://twitter.com/libimobiledev
@@ -156,4 +156,4 @@
 usbmuxd is an independent software application and has not been
 authorized, sponsored, or otherwise approved by Apple Inc.
 
-README Updated on: 2022-04-04
+README Updated on: 2024-12-02
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbmuxd-1.1.1+git48.01c94c7/configure.ac 
new/usbmuxd-1.1.1+git69.523f700/configure.ac
--- old/usbmuxd-1.1.1+git48.01c94c7/configure.ac        2023-05-05 
23:22:37.000000000 +0200
+++ new/usbmuxd-1.1.1+git69.523f700/configure.ac        2025-02-01 
21:07:39.000000000 +0100
@@ -21,14 +21,14 @@
 
 # Checks for libraries.
 PKG_CHECK_MODULES(libusb, libusb-1.0 >= 1.0.9)
-PKG_CHECK_MODULES(libplist, libplist-2.0 >= 2.3.0)
+PKG_CHECK_MODULES(libplist, libplist-2.0 >= 2.6.0)
 PKG_CHECK_MODULES(libimobiledevice, libimobiledevice-1.0 >= 1.3.0, 
have_limd=yes, have_limd=no)
 PKG_CHECK_MODULES(limd_glue, libimobiledevice-glue-1.0 >= 1.0.0)
 
 AC_ARG_WITH([preflight],
             [AS_HELP_STRING([--without-preflight],
             [do not build with preflight worker support @<:@default=yes@:>@])],
-            [with_preflight=no],
+            [with_preflight=$withval],
             [with_preflight=yes])
 
 if test "x$have_limd" = "xyes"; then
@@ -40,7 +40,7 @@
     AC_SUBST(libimobiledevice_CFLAGS)
     AC_SUBST(libimobiledevice_LIBS)
     CACHED_CFLAGS="$CFLAGS"
-    CFLAGS+=" $libimobiledevice_CFLAGS"
+    CFLAGS="$CFLAGS $libimobiledevice_CFLAGS"
     AC_CACHE_CHECK(for enum idevice_connection_type, 
ac_cv_enum_idevice_connection_type,
       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
         #include <libimobiledevice/libimobiledevice.h>
@@ -75,7 +75,7 @@
 AC_ARG_WITH([systemd],
             [AS_HELP_STRING([--without-systemd],
             [do not build with systemd support @<:@default=yes@:>@])],
-            [],
+            [with_systemd=$withval],
             [with_systemd=yes])
 
 AC_ARG_WITH([systemdsystemunitdir],
@@ -153,11 +153,16 @@
 AC_SUBST([UDEV_SUB])
 AC_SUBST([SYSTEMD_SUB])
 
-AS_COMPILER_FLAGS(GLOBAL_CFLAGS, "-g -Wall -Wextra -Wmissing-declarations 
-Wredundant-decls -Wshadow -Wpointer-arith  -Wwrite-strings -Wswitch-default 
-Wno-unused-parameter")
+AS_COMPILER_FLAGS(GLOBAL_CFLAGS, "-Wall -Wextra -Wmissing-declarations 
-Wredundant-decls -Wshadow -Wpointer-arith  -Wwrite-strings -Wswitch-default 
-Wno-unused-parameter")
 AC_SUBST(GLOBAL_CFLAGS)
 
 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
 
+# workaround for older autoconf versions
+if test "x$runstatedir" == "x"; then
+  runstatedir=$localstatedir/run
+fi
+
 AC_CONFIG_FILES([
 Makefile
 src/Makefile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbmuxd-1.1.1+git48.01c94c7/src/client.c 
new/usbmuxd-1.1.1+git69.523f700/src/client.c
--- old/usbmuxd-1.1.1+git48.01c94c7/src/client.c        2023-05-05 
23:22:37.000000000 +0200
+++ new/usbmuxd-1.1.1+git69.523f700/src/client.c        2025-02-01 
21:07:39.000000000 +0100
@@ -31,6 +31,7 @@
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/socket.h>
+#include <netinet/in.h>
 #include <netinet/tcp.h>
 #include <sys/un.h>
 #include <arpa/inet.h>
@@ -451,10 +452,7 @@
                        plist_dict_set_item(l, "Blacklisted", 
plist_new_bool(0));
                        n = NULL;
                        if (lc->info) {
-                               n = plist_dict_get_item(lc->info, "BundleID");
-                       }
-                       if (n) {
-                               plist_dict_set_item(l, "BundleID", 
plist_copy(n));
+                               plist_dict_copy_item(l, lc->info, "BundleID", 
NULL);
                        }
                        plist_dict_set_item(l, "ConnType", plist_new_uint(0));
 
@@ -631,28 +629,11 @@
 
 static void update_client_info(struct mux_client *client, plist_t dict)
 {
-       plist_t node = NULL;
        plist_t info = plist_new_dict();
-
-       node = plist_dict_get_item(dict, "BundleID");
-       if (node && (plist_get_node_type(node) == PLIST_STRING)) {
-               plist_dict_set_item(info, "BundleID", plist_copy(node));
-       }
-
-       node = plist_dict_get_item(dict, "ClientVersionString");
-       if (node && (plist_get_node_type(node) == PLIST_STRING)) {
-               plist_dict_set_item(info, "ClientVersionString", 
plist_copy(node));
-       }
-
-       node = plist_dict_get_item(dict, "ProgName");
-       if (node && (plist_get_node_type(node) == PLIST_STRING)) {
-               plist_dict_set_item(info, "ProgName", plist_copy(node));
-       }
-
-       node = plist_dict_get_item(dict, "kLibUSBMuxVersion");
-       if (node && (plist_get_node_type(node) == PLIST_UINT)) {
-               plist_dict_set_item(info, "kLibUSBMuxVersion", 
plist_copy(node));
-       }
+       plist_dict_copy_item(info, dict, "BundleID", NULL);
+       plist_dict_copy_item(info, dict, "ClientVersionString", NULL);
+       plist_dict_copy_item(info, dict, "ProgName", NULL);
+       plist_dict_copy_item(info, dict, "kLibUSBMuxVersion", NULL);
        plist_free(client->info);
        client->info = info;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbmuxd-1.1.1+git48.01c94c7/src/conf.c 
new/usbmuxd-1.1.1+git69.523f700/src/conf.c
--- old/usbmuxd-1.1.1+git48.01c94c7/src/conf.c  2023-05-05 23:22:37.000000000 
+0200
+++ new/usbmuxd-1.1.1+git69.523f700/src/conf.c  2025-02-01 21:07:39.000000000 
+0100
@@ -431,7 +431,7 @@
        remove(device_record_file);
 
        /* store file */
-       if (!plist_write_to_file(plist, device_record_file, PLIST_FORMAT_XML, 
0)) {
+       if (plist_write_to_file(plist, device_record_file, PLIST_FORMAT_XML, 0) 
!= PLIST_ERR_SUCCESS) {
                usbmuxd_log(LL_DEBUG, "Could not open '%s' for writing: %s", 
device_record_file, strerror(errno));
                res = -ENOENT;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbmuxd-1.1.1+git48.01c94c7/src/device.c 
new/usbmuxd-1.1.1+git69.523f700/src/device.c
--- old/usbmuxd-1.1.1+git48.01c94c7/src/device.c        2023-05-05 
23:22:37.000000000 +0200
+++ new/usbmuxd-1.1.1+git69.523f700/src/device.c        2025-02-01 
21:07:39.000000000 +0100
@@ -661,7 +661,7 @@
                if(!(th->th_flags & TH_RST)) {
                        usbmuxd_log(LL_INFO, "No connection for device %d 
incoming packet %d->%d", dev->id, dport, sport);
                        if(send_anon_rst(dev, sport, dport, ntohl(th->th_seq)) 
< 0)
-                               usbmuxd_log(LL_ERROR, "Error sending TCP RST to 
device %d (%d->%d)", conn->dev->id, sport, dport);
+                               usbmuxd_log(LL_ERROR, "Error sending TCP RST to 
device %d (%d->%d)", dev->id, sport, dport);
                }
                return;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbmuxd-1.1.1+git48.01c94c7/src/main.c 
new/usbmuxd-1.1.1+git69.523f700/src/main.c
--- old/usbmuxd-1.1.1+git48.01c94c7/src/main.c  2023-05-05 23:22:37.000000000 
+0200
+++ new/usbmuxd-1.1.1+git69.523f700/src/main.c  2025-02-01 21:07:39.000000000 
+0100
@@ -584,7 +584,7 @@
                        ++verbose;
                        break;
                case 'V':
-                       printf("%s\n", PACKAGE_STRING);
+                       printf("%s %s\n", PACKAGE_NAME, PACKAGE_VERSION);
                        exit(0);
                case 'U':
                        drop_privileges = 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbmuxd-1.1.1+git48.01c94c7/src/usb.c 
new/usbmuxd-1.1.1+git69.523f700/src/usb.c
--- old/usbmuxd-1.1.1+git48.01c94c7/src/usb.c   2023-05-05 23:22:37.000000000 
+0200
+++ new/usbmuxd-1.1.1+git69.523f700/src/usb.c   2025-02-01 21:07:39.000000000 
+0100
@@ -53,7 +53,7 @@
 #define NUM_RX_LOOPS 3
 
 struct usb_device {
-       libusb_device_handle *dev;
+       libusb_device_handle *handle;
        uint8_t bus, address;
        char serial[256];
        int alive;
@@ -83,7 +83,7 @@
 
 static void usb_disconnect(struct usb_device *dev)
 {
-       if(!dev->dev) {
+       if(!dev->handle) {
                return;
        }
 
@@ -114,9 +114,9 @@
 
        collection_free(&dev->tx_xfers);
        collection_free(&dev->rx_xfers);
-       libusb_release_interface(dev->dev, dev->interface);
-       libusb_close(dev->dev);
-       dev->dev = NULL;
+       libusb_release_interface(dev->handle, dev->interface);
+       libusb_close(dev->handle);
+       dev->handle = NULL;
        collection_remove(&device_list, dev);
        free(dev);
 }
@@ -177,7 +177,7 @@
 {
        int res;
        struct libusb_transfer *xfer = libusb_alloc_transfer(0);
-       libusb_fill_bulk_transfer(xfer, dev->dev, dev->ep_out, (void*)buf, 
length, tx_callback, dev, 0);
+       libusb_fill_bulk_transfer(xfer, dev->handle, dev->ep_out, (void*)buf, 
length, tx_callback, dev, 0);
        if((res = libusb_submit_transfer(xfer)) < 0) {
                usbmuxd_log(LL_ERROR, "Failed to submit TX transfer %p len %d 
to device %d-%d: %s", buf, length, dev->bus, dev->address, 
libusb_error_name(res));
                libusb_free_transfer(xfer);
@@ -189,7 +189,7 @@
                // Send Zero Length Packet
                xfer = libusb_alloc_transfer(0);
                void *buffer = malloc(1);
-               libusb_fill_bulk_transfer(xfer, dev->dev, dev->ep_out, buffer, 
0, tx_callback, dev, 0);
+               libusb_fill_bulk_transfer(xfer, dev->handle, dev->ep_out, 
buffer, 0, tx_callback, dev, 0);
                if((res = libusb_submit_transfer(xfer)) < 0) {
                        usbmuxd_log(LL_ERROR, "Failed to submit TX ZLP transfer 
to device %d-%d: %s", dev->bus, dev->address, libusb_error_name(res));
                        libusb_free_transfer(xfer);
@@ -256,7 +256,7 @@
        void *buf;
        struct libusb_transfer *xfer = libusb_alloc_transfer(0);
        buf = malloc(USB_MRU);
-       libusb_fill_bulk_transfer(xfer, dev->dev, dev->ep_in, buf, USB_MRU, 
rx_callback, dev, 0);
+       libusb_fill_bulk_transfer(xfer, dev->handle, dev->ep_in, buf, USB_MRU, 
rx_callback, dev, 0);
        if((res = libusb_submit_transfer(xfer)) != 0) {
                usbmuxd_log(LL_ERROR, "Failed to submit RX transfer to device 
%d-%d: %s", dev->bus, dev->address, libusb_error_name(res));
                libusb_free_transfer(xfer);
@@ -357,7 +357,7 @@
        libusb_fill_control_setup(transfer->buffer, LIBUSB_ENDPOINT_IN, 
LIBUSB_REQUEST_GET_DESCRIPTOR,
                        (uint16_t)((LIBUSB_DT_STRING << 8) | 
usbdev->devdesc.iSerialNumber),
                        langid, 1024 + LIBUSB_CONTROL_SETUP_SIZE);
-       libusb_fill_control_transfer(transfer, usbdev->dev, transfer->buffer, 
get_serial_callback, usbdev, 1000);
+       libusb_fill_control_transfer(transfer, usbdev->handle, 
transfer->buffer, get_serial_callback, usbdev, 1000);
 
        if((res = libusb_submit_transfer(transfer)) < 0) {
                usbmuxd_log(LL_ERROR, "Could not request transfer for device 
%d-%d: %s", usbdev->bus, usbdev->address, libusb_error_name(res));
@@ -369,7 +369,7 @@
 {
        struct libusb_transfer* ctrl_transfer = libusb_alloc_transfer(0);
        int ret = 0; 
-       unsigned char* buffer = malloc(LIBUSB_CONTROL_SETUP_SIZE + 
context->wLength);
+       unsigned char* buffer = calloc(LIBUSB_CONTROL_SETUP_SIZE + 
context->wLength, 1);
        uint8_t bRequestType = LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_ENDPOINT_IN 
| LIBUSB_RECIPIENT_DEVICE;
        libusb_fill_control_setup(buffer, bRequestType, context->bRequest, 
context->wValue, context->wIndex, context->wLength);
        
@@ -394,7 +394,7 @@
 /// @param dev 
 /// @param usbdev 
 /// @param handle 
-/// @return 0 - undetermined, 1 - initial, 2 - valeria, 3 - cdc_ncm
+/// @return 0 - undetermined, 1 - initial, 2 - valeria, 3 - cdc_ncm, 4 - 
usbeth+cdc_ncm, 5 - cdc_ncm direct
 static int guess_mode(struct libusb_device* dev, struct usb_device *usbdev)
 {
        int res, j;
@@ -404,11 +404,21 @@
        int bus = usbdev->bus;
        int address = usbdev->address;
 
+       if(devdesc.bNumConfigurations == 1) {
+               // CDC-NCM Direct
+               return 5;
+       }
+
        if(devdesc.bNumConfigurations <= 4) {
                // Assume this is initial mode
                return 1;
        }
 
+       if(devdesc.bNumConfigurations == 6) {
+               // USB Ethernet + CDC-NCM
+               return 4;
+       }
+
        if(devdesc.bNumConfigurations != 5) {
                // No known modes with more then 5 configurations
                return 0;
@@ -595,7 +605,7 @@
        usbdev->address = address;
        usbdev->devdesc = devdesc;
        usbdev->speed = 480000000;
-       usbdev->dev = handle;
+       usbdev->handle = handle;
        usbdev->alive = 1;
        usbdev->wMaxPacketSize = libusb_get_max_packet_size(dev, 
usbdev->ep_out);
        if (usbdev->wMaxPacketSize <= 0) {
@@ -615,6 +625,9 @@
                case LIBUSB_SPEED_SUPER:
                        usbdev->speed = 5000000000;
                        break;
+               case LIBUSB_SPEED_SUPER_PLUS:
+                       usbdev->speed = 10000000000;
+                       break;
                case LIBUSB_SPEED_HIGH:
                case LIBUSB_SPEED_UNKNOWN:
                default:
@@ -696,10 +709,10 @@
 
        // Response is 3:3:3:0 for initial mode, 5:3:3:0 otherwise.
        usbmuxd_log(LL_INFO, "Received response %i:%i:%i:%i for get_mode 
request for device %i-%i", data[0], data[1], data[2], data[3], context->bus, 
context->address);
-       if(desired_mode >= 1 && desired_mode <= 3 && 
+       if(desired_mode >= 1 && desired_mode <= 5 &&
           guessed_mode > 0 && // do not switch mode if guess failed
           guessed_mode != desired_mode) {
-               usbmuxd_log(LL_WARNING, "Switching device %i-%i mode to %i", 
context->bus, context->address, context->wIndex);
+               usbmuxd_log(LL_WARNING, "Switching device %i-%i mode to %i", 
context->bus, context->address, desired_mode);
                
                context->bRequest = APPLE_VEND_SPECIFIC_SET_MODE;
                context->wValue = 0;
@@ -764,7 +777,7 @@
        usbdev->address = address;
        usbdev->devdesc = devdesc;
        usbdev->speed = 0;
-       usbdev->dev = handle;
+       usbdev->handle = handle;
        usbdev->alive = 1;
 
        collection_init(&usbdev->tx_xfers);
@@ -854,7 +867,7 @@
 
 const char *usb_get_serial(struct usb_device *dev)
 {
-       if(!dev->dev) {
+       if(!dev->handle) {
                return NULL;
        }
        return dev->serial;
@@ -862,7 +875,7 @@
 
 uint32_t usb_get_location(struct usb_device *dev)
 {
-       if(!dev->dev) {
+       if(!dev->handle) {
                return 0;
        }
        return (dev->bus << 16) | dev->address;
@@ -870,7 +883,7 @@
 
 uint16_t usb_get_pid(struct usb_device *dev)
 {
-       if(!dev->dev) {
+       if(!dev->handle) {
                return 0;
        }
        return dev->devdesc.idProduct;
@@ -878,7 +891,7 @@
 
 uint64_t usb_get_speed(struct usb_device *dev)
 {
-       if (!dev->dev) {
+       if (!dev->handle) {
                return 0;
        }
        return dev->speed;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbmuxd-1.1.1+git48.01c94c7/systemd/Makefile.am 
new/usbmuxd-1.1.1+git69.523f700/systemd/Makefile.am
--- old/usbmuxd-1.1.1+git48.01c94c7/systemd/Makefile.am 2023-05-05 
23:22:37.000000000 +0200
+++ new/usbmuxd-1.1.1+git69.523f700/systemd/Makefile.am 2025-02-01 
21:07:39.000000000 +0100
@@ -1,7 +1,7 @@
 edit = \
        $(SED) -r \
        -e 's|@sbindir[@]|$(sbindir)|g' \
-       -e 's|@localstatedir[@]|$(localstatedir)|g' \
+       -e 's|@runstatedir[@]|$(runstatedir)|g' \
        < $< > $@ || rm $@
 
 if WANT_SYSTEMD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/usbmuxd-1.1.1+git48.01c94c7/systemd/usbmuxd.service.in 
new/usbmuxd-1.1.1+git69.523f700/systemd/usbmuxd.service.in
--- old/usbmuxd-1.1.1+git48.01c94c7/systemd/usbmuxd.service.in  2023-05-05 
23:22:37.000000000 +0200
+++ new/usbmuxd-1.1.1+git69.523f700/systemd/usbmuxd.service.in  2025-02-01 
21:07:39.000000000 +0100
@@ -4,4 +4,4 @@
 
 [Service]
 ExecStart=@sbindir@/usbmuxd --user usbmux --systemd
-PIDFile=@localstatedir@/run/usbmuxd.pid
+PIDFile=@runstatedir@/usbmuxd.pid
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbmuxd-1.1.1+git48.01c94c7/udev/39-usbmuxd.rules.in 
new/usbmuxd-1.1.1+git69.523f700/udev/39-usbmuxd.rules.in
--- old/usbmuxd-1.1.1+git48.01c94c7/udev/39-usbmuxd.rules.in    2023-05-05 
23:22:37.000000000 +0200
+++ new/usbmuxd-1.1.1+git69.523f700/udev/39-usbmuxd.rules.in    2025-02-01 
21:07:39.000000000 +0100
@@ -4,7 +4,10 @@
 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", 
ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*|5ac/190[1-5]/*|5ac/8600/*", TAG+="systemd"
 
 # Initialize iOS devices into "deactivated" USB configuration state and 
activate usbmuxd
-SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", 
ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*|5ac/190[1-5]/*|5ac/8600/*", ACTION=="add", 
ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}="0", OWNER="usbmux", 
@udev_activation_rule@
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", 
ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*|5ac/190[1-5]/*", ACTION=="add", 
ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}="0", OWNER="usbmux", 
@udev_activation_rule@
+# but make sure iBridge (T1) doesn't end up in an unconfigured state
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{PRODUCT}=="5ac/8600/*", 
ACTION=="add", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}="1", 
OWNER="usbmux", @udev_activation_rule@
+
 
 # Make sure properties don't get lost when bind action is called
 SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", 
ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*|5ac/190[1-5]/*|5ac/8600/*", ACTION=="bind", 
ENV{USBMUX_SUPPORTED}="1", OWNER="usbmux"

Reply via email to