diff --git a/.gitignore b/.gitignore index 73b4ea5..096bb4b 100644 --- a/.gitignore +++ b/.gitignore @@ -13,15 +13,3 @@ /ucx-1.10.0.tar.gz /ucx-1.10.1-rc1.tar.gz /ucx-1.10.1.tar.gz -/ucx-1.11.0.tar.gz -/ucx-1.11.2.tar.gz -/ucx-1.12.0.tar.gz -/ucx-1.13.0.tar.gz -/ucx-1.13.1-1.fc36.src.rpm -/ucx-1.13.1.tar.gz -/ucx-1.14.1.tar.gz -/ucx-1.15.0.tar.gz -/ucx-1.16.0.tar.gz -/ucx-1.17.0.tar.gz -/ucx-1.18.1.tar.gz -/ucx-1.19.0.tar.gz diff --git a/.packit.yaml b/.packit.yaml deleted file mode 100644 index 88d4945..0000000 --- a/.packit.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# See the documentation for more information: -# https://packit.dev/docs/configuration/ - -jobs: - -- job: pull_from_upstream - trigger: release - dist_git_branches: - - fedora-rawhide - -- job: koji_build - trigger: commit - dist_git_branches: - - fedora-rawhide - -- job: bodhi_update - trigger: commit - dist_git_branches: - - fedora-branched diff --git a/Avoid-build-failure.patch b/Avoid-build-failure.patch deleted file mode 100644 index cb990b5..0000000 --- a/Avoid-build-failure.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 0ee91e1c571668732ee05b1525e7fa8f72427c0f Mon Sep 17 00:00:00 2001 -From: Kamal Heib -Date: Fri, 5 Dec 2025 12:00:49 -0500 -Subject: [PATCH] Avoid build failure - -Signed-off-by: Kamal Heib ---- - src/tools/perf/perftest_params.c | 2 +- - src/ucs/config/parser.c | 2 +- - src/uct/ib/base/ib_device.c | 7 ++++--- - 3 files changed, 6 insertions(+), 5 deletions(-) - -diff --git a/src/tools/perf/perftest_params.c b/src/tools/perf/perftest_params.c -index 9098cdaed2f6..b7a5dcde01e2 100644 ---- a/src/tools/perf/perftest_params.c -+++ b/src/tools/perf/perftest_params.c -@@ -560,7 +560,7 @@ static ucs_status_t init_daemon_params(ucx_perf_params_t *params) - ucs_status_t parse_test_params(perftest_params_t *params, char opt, - const char *opt_arg) - { -- char *optarg2 = NULL; -+ const char *optarg2 = NULL; - test_type_t *test; - unsigned i; - -diff --git a/src/ucs/config/parser.c b/src/ucs/config/parser.c -index 696a4ebd2186..2338ceab0380 100644 ---- a/src/ucs/config/parser.c -+++ b/src/ucs/config/parser.c -@@ -644,7 +644,7 @@ int ucs_config_sprintf_bw(char *buf, size_t max, const void *src, - int ucs_config_sscanf_bw_spec(const char *buf, void *dest, const void *arg) - { - ucs_config_bw_spec_t *dst = (ucs_config_bw_spec_t*)dest; -- char *delim; -+ const char *delim; - - delim = strchr(buf, ':'); - if (!delim) { -diff --git a/src/uct/ib/base/ib_device.c b/src/uct/ib/base/ib_device.c -index bcef1b0a4025..f77809be5a9a 100644 ---- a/src/uct/ib/base/ib_device.c -+++ b/src/uct/ib/base/ib_device.c -@@ -1305,7 +1305,8 @@ ucs_status_t uct_ib_device_find_port(uct_ib_device_t *dev, - const char *ibdev_name; - unsigned port_num; - size_t devname_len; -- char *p; -+ const char *p; -+ char *endptr; - - p = strrchr(resource_dev_name, ':'); - if (p == NULL) { -@@ -1320,8 +1321,8 @@ ucs_status_t uct_ib_device_find_port(uct_ib_device_t *dev, - goto err; /* Device name is wrong */ - } - -- port_num = strtod(p + 1, &p); -- if (*p != '\0') { -+ port_num = strtod(p + 1, &endptr); -+ if (*endptr != '\0') { - goto err; /* Failed to parse port number */ - } - if ((port_num < dev->first_port) || (port_num >= dev->first_port + dev->num_ports)) { --- -2.51.1 - diff --git a/sources b/sources index 03d679f..41ab345 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ucx-1.19.0.tar.gz) = bcd727df3e3e281424bc8da5247bd5396b7b1b0f3113265d4dc2e401442710776aa3c251e05db633321171359c63e3166c95d21b2296207a37eb6e2e29845f90 +SHA512 (ucx-1.10.1.tar.gz) = 949d0583f655b1b08701acb38bc97d46f03644b496168dec57bc9477ab117966f6addbc266e4ba0ef95050b516bdf747773362d7b46ad1838d1972b14ff2bcd8 diff --git a/ucx.spec b/ucx.spec index 065f1da..bf15895 100644 --- a/ucx.spec +++ b/ucx.spec @@ -3,50 +3,31 @@ %bcond_with cuda %bcond_with gdrcopy %bcond_without ib +%if 0%{?fedora} >= 30 || 0%{?rhel} >= 7 +%bcond_with ib_cm +%else +%bcond_without ib_cm +%endif %bcond_with knem %bcond_without rdmacm +%bcond_with rocm %bcond_with ugni %bcond_with xpmem -%bcond_with vfs -%bcond_with mad -%bcond_without mlx5 -%bcond_with efa - -%ifarch x86_64 -%if 0%{?fedora} <= 42 -%bcond_with rocm -%else -%bcond_without rocm -%endif -%else -%bcond_with rocm -%endif Name: ucx -Version: 1.19.0 -Release: 3%{?dist} +Version: 1.10.1 +Release: 2%{?dist} Summary: UCX is a communication library implementing high-performance messaging -License: BSD-3-Clause AND MIT AND CC-PDDC AND (BSD-3-Clause OR Apache-2.0) -# CC-PDDC -# src/ucm/ptmalloc286/malloc-2.8.6.h -# src/ucm/ptmalloc286/malloc.c -# MIT -# src/ucs/datastruct/khash.h -# BSD-3-Clause or Apache-2.0 -# src/ucs/arch/aarch64/memcpy_thunderx2.S -# BSD-3-Clause -# All other files - +License: BSD URL: http://www.openucx.org -Source: https://github.com/openucx/%{name}/releases/download/v%{version}/ucx-%{version}.tar.gz -Patch: Avoid-build-failure.patch +Source: https://github.com/openucx/%{name}/releases/download/v1.10.1/ucx-1.10.1.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) Prefix: %{_prefix} # UCX currently supports only the following architectures -ExclusiveArch: aarch64 ppc64le x86_64 riscv64 +ExclusiveArch: aarch64 ppc64le x86_64 %if %{defined extra_deps} Requires: %{?extra_deps} @@ -67,11 +48,8 @@ BuildRequires: gdrcopy %if %{with ib} BuildRequires: libibverbs-devel %endif -%if %{with mlx5} -BuildRequires: rdma-core-devel -%endif -%if %{with efa} -BuildRequires: rdma-core-devel +%if %{with ib_cm} +BuildRequires: libibcm-devel %endif %if %{with knem} BuildRequires: knem @@ -80,19 +58,11 @@ BuildRequires: knem BuildRequires: librdmacm-devel %endif %if %{with rocm} -BuildRequires: rocm-hip-devel -BuildRequires: chrpath +BuildRequires: hsa-rocr-dev %endif %if %{with xpmem} BuildRequires: xpmem-devel %endif -%if %{with vfs} -BuildRequires: fuse3-devel -%endif -%if %{with mad} -BuildRequires: libibmad-devel libibumad-devel -%endif - %description UCX is an optimized communication framework for high-performance distributed @@ -104,6 +74,7 @@ addition, UCX provides efficient intra-node communication, by leveraging the following shared memory mechanisms: posix, sysv, cma, knem, and xpmem. The acronym UCX stands for "Unified Communication X". +This package was built from '' branch, commit c334359. %if "%{_vendor}" == "suse" %debug_package @@ -118,25 +89,8 @@ Provides header files and examples for developing with UCX. %prep %setup -q -%patch -P0 -p1 -# https://github.com/openucx/ucx/issues/10542 -# With ROCm 6.3+ libhsakmt is bundled with libhsa-runtime64 -# Remove this nonexistent library -sed -i 's@-lhsakmt@@' config/m4/rocm.m4 - -# Relax use of -Werror -sed -i 's@-Werror@@' config/m4/compiler.m4 - -autoreconf -fiv -# https://github.com/openucx/ucx/commit/b0a275a5492125a13020cd095fe9934e0b5e7c6a -# can be removed on release after 1.17.0 -sed -i '/#include /a #include ' src/ucs/time/time.h %build -# may be fixed in 1.19.0 -%set_build_flags -export CFLAGS="$CFLAGS -std=gnu17" - %define _with_arg() %{expand:%%{?with_%{1}:--with-%{2}}%%{!?with_%{1}:--without-%{2}}} %define _enable_arg() %{expand:%%{?with_%{1}:--enable-%{2}}%%{!?with_%{1}:--disable-%{2}}} %configure --disable-optimizations \ @@ -145,21 +99,16 @@ export CFLAGS="$CFLAGS -std=gnu17" --disable-assertions \ --disable-params-check \ --without-java \ -%if %{with rocm} - --with-rocm=%{_prefix} \ -%endif %_enable_arg cma cma \ %_with_arg cuda cuda \ %_with_arg gdrcopy gdrcopy \ %_with_arg ib verbs \ - %_with_arg mlx5 mlx5 \ - %_with_arg efa efa \ + %_with_arg ib_cm cm \ %_with_arg knem knem \ %_with_arg rdmacm rdmacm \ + %_with_arg rocm rocm \ %_with_arg xpmem xpmem \ - %_with_arg vfs fuse3 \ %_with_arg ugni ugni \ - %_with_arg mad mad \ %{?configure_options} make %{?_smp_mflags} V=1 @@ -171,26 +120,11 @@ rm -f %{buildroot}%{_libdir}/ucx/*.la rm -f %{buildroot}%{_libdir}/ucx/lib*.so rm -f %{buildroot}%{_libdir}/ucx/lib*.a -%if %{with rocm} -# ERROR 0002: file '/usr/lib64/ucx/libucx_perftest_rocm.so.0.0.0' contains an -# invalid runpath '/usr/hip/lib' in [/usr/hip/lib:/usr/lib:/usr/lib64] -# Build is confused, assumes rocm is part of AMD's release to /opt/rocm/hip/lib -# We install ROCm to system locations, so rpath is not needed, delete them -chrpath -d %{buildroot}%{_libdir}/ucx/libucx_perftest_rocm.so.0.0.0 -chrpath -d %{buildroot}%{_libdir}/ucx/libucm_rocm.so.0.0.0 -chrpath -d %{buildroot}%{_libdir}/ucx/libuct_rocm.so.0.0.0 -%endif - %files %{_libdir}/lib*.so.* -%{_bindir}/ucx_info -%{_bindir}/ucx_perftest -%{_bindir}/ucx_perftest_daemon -%{_bindir}/ucx_read_profile +%{_bindir}/uc* %{_bindir}/io_demo %{_datadir}/ucx -%dir %{_sysconfdir}/ucx -%{_sysconfdir}/ucx/ucx.conf %exclude %{_datadir}/ucx/examples %doc README AUTHORS NEWS %{!?_licensedir:%global license %%doc} @@ -199,11 +133,11 @@ chrpath -d %{buildroot}%{_libdir}/ucx/libuct_rocm.so.0.0.0 %files devel %{_includedir}/uc* %{_libdir}/lib*.so -%{_libdir}/pkgconfig/ucx*.pc -%dir %{_libdir}/cmake/ucx -%{_libdir}/cmake/ucx/*.cmake +%{_libdir}/pkgconfig/ucx.pc %{_datadir}/ucx/examples +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig %if %{with cma} %package cma @@ -216,7 +150,6 @@ system calls process_vm_readv/writev() for one-shot memory copy from another process. %files cma -%dir %{_libdir}/ucx %{_libdir}/ucx/libuct_cma.so.* %endif @@ -231,7 +164,6 @@ to UCX communication routines, and transports taking advantage of GPU-Direct technology for direct data transfer between GPU and RDMA devices. %files cuda -%dir %{_libdir}/ucx %{_libdir}/ucx/libucx_perftest_cuda.so.* %{_libdir}/ucx/libucm_cuda.so.* %{_libdir}/ucx/libuct_cuda.so.* @@ -247,7 +179,6 @@ Provide GDRCopy support for UCX. GDRCopy is a low-latency GPU memory copy library, built on top of the NVIDIA GPUDirect RDMA technology. %files gdrcopy -%dir %{_libdir}/ucx %{_libdir}/ucx/libuct_cuda_gdrcopy.so.* %endif @@ -263,10 +194,21 @@ Typically these transports provide RDMA support, which enables a fast and hardware-offloaded data transfer. %files ib -%dir %{_libdir}/ucx %{_libdir}/ucx/libuct_ib.so.* %endif +%if %{with ib_cm} +%package ib-cm +Requires: %{name}-ib%{?_isa} = %{version}-%{release} +Summary: UCX InfiniBand connection-manager support + +%description ib-cm +Provides Infiniband Connection Manager (also known as ibcm) support for UCX. + +%files ib-cm +%{_libdir}/ucx/libuct_ib_cm.so.* +%endif + %if %{with knem} %package knem Requires: %{name}%{?_isa} = %{version}-%{release} @@ -278,14 +220,12 @@ kernel module that enables high-performance intra-node MPI communication for large messages. %files knem -%dir %{_libdir}/ucx %{_libdir}/ucx/libuct_knem.so.* %endif %if %{with rdmacm} %package rdmacm -Requires: %{name}-ib%{?_isa} = %{version}-%{release} -Requires: ucx-ib = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} Summary: UCX RDMA connection manager support %description rdmacm @@ -293,7 +233,6 @@ Provides RDMA connection-manager support to UCX, which enables client/server based connection establishment for RDMA-capable transports. %files rdmacm -%dir %{_libdir}/ucx %{_libdir}/ucx/libuct_rdmacm.so.* %endif @@ -306,10 +245,8 @@ Summary: UCX ROCm GPU support Provides Radeon Open Compute (ROCm) Runtime support for UCX. %files rocm -%dir %{_libdir}/ucx -%{_libdir}/ucx/libucm_rocm.so.* %{_libdir}/ucx/libuct_rocm.so.* -%{_libdir}/ucx/libucx_perftest_rocm.so.* +%{_libdir}/ucx/libucm_rocm.so.* %if %{with gdrcopy} %package rocmgdr @@ -317,12 +254,10 @@ Requires: %{name}-rocm%{?_isa} = %{version}-%{release} Summary: UCX GDRCopy support for ROCM %description rocmgdr -Provide GDRCopy support for UCX ROCM. GDRCopy is a low-latency GPU -memory copy library, built on top of the NVIDIA GPUDirect RDMA -technology. +Provide GDRCopy support for UCX ROCM. GDRCopy is a low-latency GPU memory copy +library, built on top of the NVIDIA GPUDirect RDMA technology. %files rocmgdr -%dir %{_libdir}/ucx %{_libdir}/ucx/libuct_rocm_gdr.so.* %endif %endif @@ -336,7 +271,6 @@ Summary: UCX Gemini/Aries transport support. Provides Gemini/Aries transport for UCX. %files ugni -%dir %{_libdir}/ucx %{_libdir}/ucx/libuct_ugni.so.* %endif @@ -350,164 +284,11 @@ Provides XPMEM transport for UCX. XPMEM is a Linux kernel module that enables a process to map the memory of another process into its virtual address space. %files xpmem -%dir %{_libdir}/ucx %{_libdir}/ucx/libuct_xpmem.so.* %endif -%if %{with vfs} -%package vfs -Requires: %{name}%{?_isa} = %{version}-%{release} -Summary: UCX Virtual Filesystem support. - -%description vfs -Provides a virtual filesystem over FUSE which allows real-time -monitoring of UCX library internals, protocol objects, transports -status, and more. - -%files vfs -%dir %{_libdir}/ucx -%{_libdir}/ucx/libucs_fuse.so.* -%{_bindir}/ucx_vfs -%endif - -%if %{with mlx5} -%package ib-mlx5 -Requires: %{name}%{?_isa} = %{version}-%{release} -Summary: UCX IB MLX5 RDMA provider support -Group: System Environment/Libraries - -%description ib-mlx5 -Provides support for DevX, Direct Verbs and DC transports for Infiniband -devices. - -%files ib-mlx5 -%{_libdir}/ucx/libuct_ib_mlx5.so.* -%endif - -%if %{with efa} -%package ib-efa -Requires: %{name}%{?_isa} = %{version}-%{release} -Summary: UCX EFA device RDMA support -Group: System Environment/Libraries - -%description ib-efa -Provides support for EFA device as an IBTA transport for UCX. - -%files ib-efa -%{_libdir}/ucx/libuct_ib_efa.so.* -%endif - -%if %{with mad} -%package mad -Requires: %{name}%{?_isa} = %{version}-%{release} -Summary: UCX Infiniband MAD support -Group: System Environment/Libraries - -%description mad -Provide Infiniband MAD support for UCX. Enables running perftest using -Infiniband datagrams for out-of-band communications. - -%files mad -%{_libdir}/ucx/libucx_perftest_mad.so.* -%endif %changelog -* Fri Jul 17 2026 Fedora Release Engineering - 1.19.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Fri Jan 16 2026 Tom Rix - 1.19.0-2 -- Relax use of -Werror - -* Fri Dec 05 2025 Kamal Heib - 1.19.0-1 -- Update to version 1.19.0 - -* Mon Nov 24 2025 Tom Rix - 1.18.1-3 -- Rebuild - -* Fri Jul 25 2025 Fedora Release Engineering - 1.18.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Wed Jun 25 2025 Kamal Heib - 1.18.1-1 -- Update to version 1.18.1 -- Resolves: rhbz#2328935 - -* Sun Mar 9 2025 Tom Rix - 1.17.0-5 -- ROCm is part of Fedora, so build it. - -* Sun Jan 19 2025 Fedora Release Engineering - 1.17.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Oct 30 2024 David Abdurachmanov - 1.17.0-3 -- Enable riscv64 - -* Sat Jul 20 2024 Fedora Release Engineering - 1.17.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Thu Jun 27 2024 Benson Muite - 1.17.0-1 -- Upgrade to new release bz2280815 - -* Sat Apr 27 2024 Benson Muite - 1.16.0-1 -- Upgrade to new release bz2256073 - -* Sat Jan 27 2024 Fedora Release Engineering - 1.15.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Dec 24 2023 Benson Muite - 1.15.0-1 -- Upgrade to new release - -* Sun Dec 24 2023 Benson Muite - 1.14.1-5 -- Add patch to separate C and C++ flags from yselkowitz - -* Sat Jul 22 2023 Fedora Release Engineering - 1.14.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jun 22 2023 Benson Muite - 1.14.1-3 -- Apply fix to enable building with GCC13 - -* Fri Jun 02 2023 Benson Muite - 1.14.1-2 -- Remove changes in patches that have been applied - -* Fri Jun 02 2023 Kamal Heib - 1.14.1-1 -- Update to upstream release 1.14.1 - -* Sun Feb 19 2023 Benson Muite - 1.13.1-4 -- List additional licenses used -- Remove unneeded ldconfig calls - -* Sat Feb 18 2023 Benson Muite - 1.13.1-3 -- Fix type declaration error -- Fix to enable use of GCC 13 -- Use SPDX license identifier -- Fix build requires #RBZ2166925 - -* Sat Jan 21 2023 Fedora Release Engineering - 1.13.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sat Dec 24 2022 Benson Muite - 1.13.1-1 -- Update to upstream release 1.13.0 - -* Wed Aug 03 2022 Michal Schmidt - 1.13.0-3 -- Update to upstream release 1.13.0 -- Drop autogen.sh call. Upstream tarball does not have it anymore. - -* Sat Jul 23 2022 Fedora Release Engineering - 1.12.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Sat Jan 22 2022 Fedora Release Engineering - 1.12.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Mon Dec 13 2021 Honggang Li - 1.12.0-1 -- Bump version to 1.12.0 - -* Mon Nov 01 2021 Honggang Li - 1.11.2-1 -- Bump version to 1.11.2 - -* Mon Aug 09 2021 Yurii Shestakov 1.11.0-1 -- Bump version to 1.11.0 - -* Fri Jul 23 2021 Fedora Release Engineering - 1.10.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - * Thu May 27 2021 Yurii Shestakov 1.10.1-2 - Bump version to 1.10.1 @@ -537,37 +318,26 @@ Infiniband datagrams for out-of-band communications. * Wed Jul 1 2020 Yossi Itigin 1.8.1-1 - Bump version to 1.8.1 - * Sun Sep 22 2019 Yossi Itigin 1.8.0-1 - Bump version to 1.8.0 - * Sun Mar 24 2019 Yossi Itigin 1.7.0-1 - Bump version to 1.7.0 - * Thu Jan 24 2019 Yossi Itigin 1.6.0-1 - Add cma, knem, and xpmem sub-packages - * Tue Nov 20 2018 Yossi Itigin 1.6.0-1 - Bump version to 1.6.0 - * Tue Nov 6 2018 Andrey Maslennikov 1.5.0-1 - Bump version to 1.5.0 - See NEWS for details - * Tue Oct 30 2018 Andrey Maslennikov 1.4.0-1 - See NEWS for details - * Mon Aug 20 2018 Andrey Maslennikov 1.3.1-1 - See NEWS for details - * Thu Aug 16 2018 Andrey Maslennikov 1.3.0-1 - Explicitly set gcc-c++ as requirements - * Wed Mar 7 2018 Andrey Maslennikov 1.3.0-1 - See NEWS for details - * Mon Aug 21 2017 Andrey Maslennikov 1.2.1-1 - Spec file now complies with Fedora guidelines - * Mon Jul 3 2017 Andrey Maslennikov 1.2.0-1 - Fedora package created