Subject: [PATCH 1/3] gnu: ucx: Update to 1.17.0.

From: Ludovic Courtès <[email-masked]>
Date: Tue, 26 Nov 2024 19:05:00 +0100

From: Ludovic Courtès <[email-masked]>

* gnu/packages/fabric-management.scm (ucx): Update to 1.17.0.
* gnu/packages/patches/ucx-tcp-iface-ioctl.patch: Rebase.

Change-Id: I2089de93da88f4f81c4b233eb03abae1f41dfe7f
---
 gnu/packages/fabric-management.scm            |  4 ++--
 .../patches/ucx-tcp-iface-ioctl.patch         | 22 +++++++++----------
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/fabric-management.scm b/gnu/packages/fabric-management.scm
index 7e539406db..6bf0387cef 100644
--- a/gnu/packages/fabric-management.scm
+++ b/gnu/packages/fabric-management.scm
@@ -185,7 +185,7 @@ (define-public ibutils
 (define-public ucx
   (package
     (name "ucx")
-    (version "1.15.0")
+    (version "1.17.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -195,7 +195,7 @@ (define-public ucx
               (patches (search-patches "ucx-tcp-iface-ioctl.patch"))
               (sha256
                (base32
-                "1mk46vyfp8hsivk88s8gv0nf458jfs59fczpf66wwa3a9yp324jp"))))
+                "09182kx60kq7iyjyz3mpcrgp1mm0lnpc0f4hd4hlw5yyabkxrpa1"))))
     (build-system gnu-build-system)
     (arguments
      (list
diff --git a/gnu/packages/patches/ucx-tcp-iface-ioctl.patch b/gnu/packages/patches/ucx-tcp-iface-ioctl.patch
index 2a0e4ce138..49038b90f6 100644
--- a/gnu/packages/patches/ucx-tcp-iface-ioctl.patch
+++ b/gnu/packages/patches/ucx-tcp-iface-ioctl.patch
@@ -6,7 +6,7 @@ names of the available TCP network interfaces.
 Initially submitted at <https://github.com/openucx/ucx/pull/4462>.
 
 diff --git a/src/uct/tcp/tcp_iface.c b/src/uct/tcp/tcp_iface.c
-index 6a6cd34fa..af32bb2e9 100644
+index f90d54fef..a2f74dc32 100644
 --- a/src/uct/tcp/tcp_iface.c
 +++ b/src/uct/tcp/tcp_iface.c
 @@ -18,6 +18,8 @@
@@ -18,9 +18,9 @@ index 6a6cd34fa..af32bb2e9 100644
  
  #define UCT_TCP_IFACE_NETDEV_DIR "/sys/class/net"
  
-@@ -875,6 +877,85 @@ static UCS_CLASS_DEFINE_NEW_FUNC(uct_tcp_iface_t, uct_iface_t, uct_md_h,
-                                  uct_worker_h, const uct_iface_params_t*,
-                                  const uct_iface_config_t*);
+@@ -873,6 +875,85 @@ static int uct_tcp_is_bridge(const char *if_name)
+     return (stat(path, &st) == 0) && S_ISDIR(st.st_mode);
+ }
  
 +/* Fetch information about available network devices through an ioctl.  */
 +static ucs_status_t uct_tcp_query_devices_ioctl(uct_md_h md,
@@ -104,11 +104,11 @@ index 6a6cd34fa..af32bb2e9 100644
  ucs_status_t uct_tcp_query_devices(uct_md_h md,
                                     uct_tl_device_resource_t **devices_p,
                                     unsigned *num_devices_p)
-@@ -893,9 +974,9 @@ ucs_status_t uct_tcp_query_devices(uct_md_h md,
+@@ -890,9 +971,9 @@ ucs_status_t uct_tcp_query_devices(uct_md_h md,
  
-     dir = opendir(UCT_TCP_IFACE_NETDEV_DIR);
-     if (dir == NULL) {
--        ucs_error("opendir(%s) failed: %m", UCT_TCP_IFACE_NETDEV_DIR);
+     n = scandir(UCT_TCP_IFACE_NETDEV_DIR, &entries, NULL, alphasort);
+     if (n == -1) {
+-        ucs_error("scandir(%s) failed: %m", UCT_TCP_IFACE_NETDEV_DIR);
 -        status = UCS_ERR_IO_ERROR;
 -        goto out;
 +        /* When /sys is unavailable, as can be the case in a container,
@@ -117,10 +117,10 @@ index 6a6cd34fa..af32bb2e9 100644
      }
  
      devices     = NULL;
-@@ -963,7 +1044,6 @@ ucs_status_t uct_tcp_query_devices(uct_md_h md,
+@@ -959,7 +1040,6 @@ out_release:
+     }
  
- out_closedir:
-     closedir(dir);
+     free(entries);
 -out:
      return status;
  }
-- 
2.46.0