Files
libfabric/libfabric.spec
Nicolas Morey d4780a0769 Update to v2.4.0
- Core
    - hmem/cuda: Adding more robust libgdrapi libpaths
    - Update bindings/rust/README.md to reflect the recommended build process.
    - Update build.rs to support both cargo build & cargo publish work directories.
    - Update Cargo.toml in preparation for crates.io publishing.
    - configure: Fix sanitizer detection logic
    - Introduce a lightweight Rust bindings for Libfabric, using bindgen.
    - include/ofi_indexer: introduce new ofi_array_at_max function
    - man/fi_cxi: fixup info for FI_CXI_RDZV_GET_MIN
    - man/fi_getinfo: Update the capabilities with mode bits requirements
    - man/fi_cq: Document `FI_GETWAITOBJ` for `fi_control`
    - man/fi_fabric: Update `fi_tostr()` datatypes
  - CXI
    - Bump provider support up to libfabric 2.4
    - Add domain rx match mode override
    - Set rendezvous eager size default to 2K
    - Change cuda dmabuf default to enabled
    - Do not abort if MR match count do not reconcile
    - Allow CP for triggered CQ to remap to Best Effort
    - Fix sl-driver path for testing
    - Set max domain TX CQs to 14
    - Use cxil_alloc_trig_cp to distinguish trig and tx cmdqs
    - Add FI_EBUSY debug messages
    - Fix validation of service id
    - Fix criterion test_sw tap files
    - Cxip_cmdq_cp_modify fix
    - Fix RNR protocol send byte/error counting
    - Release TX credit when pending RNR retry
    - Update rocr test fine grained flags
    - Fix DEVICE in fi_info_test
    - Introduce non-debug tracing
    - Reset timer on rx of ARM packet
    - Fix performance issue with close_mc()
    - Increase vni range in auth_key tests
    - Support auth_key ranges
    - Fix use of hw_cps and memory leak
  - EFA
    - Fix cq data size in efa-rdm pkt post
    - fix test_efa_rdm_mr_reg_cuda_memory unit test
    - adjust the memory barrier positions
    - Optimize RTW packet sending by replacing efa_rdm_ope_post_send
    - Adjust logging level for txe releases
    - Add tracepoints for handshake
    - Add flags to MR logs
    - Grow efa_tx_pkt_pool and ope_pool during rdm ep creation
    - Do not use rdma write when unsolicited recv support is inconsistent
    - Determine whether using device rdma based on p2p
    - Introduce pke generation counter for protocol path
    - Enable data path direct for efa-rdm
    - Update the function signature for efa_data_path_direct_cq_initialize
    - Move efa_cq_open_ibv_cq to efa_cq.c
    - Do not track rx pkt pool for non-debug build
    - Temporarily disable FI_OPT_EFA_SENDRECV_IN_ORDER_ALIGNED_128_BYTES support for efa protocol
    - do not ignore local read completion
    - Add missing lttng tps in efa_post_send
    - Fix the remote cq data flags for zcpy recv
    - Optimize the WQE post in data path direct
    - fix typos in error messages
    - Only show help message for OPE warn logs
    - configure: replace no-brake space with regular space character
    - Remove unused function declarations
    - Acquire CQ's `ep_list_lock` during counter progress
    - Add asserts to detect erroneous CQE dereferences
    - Ignore rma completion to a removed peer
    - Remove the incorrect check for device max_msg_size
    - Fix function signature mismatch
    - Set FI_RX_CQ_DATA for efa direct with NULL hints
    - Do not fail fi_getinfo for the wrong fabric
    - Log warnings only for internal OPE failures or if CQ error entry not written
    - Add unit tests for LRU AH eviction
    - Evict AH with no explicit AV entries when AH limit reached
    - Add locking assertions and update unit tests
    - Remove efa_conn_release unsafe
    - Require FI_RX_CQ_DATA on devices without unsolicited write recv
    - Add LLTng tracepoints for direct data path operations
    - Don't warn users about non-EFA devices
    - Support FI_RX_CQ_DATA for efa-direct
    - Fix deadlocks in AV insert/remove/close and CQ read paths
    - Don't try to release a lock that is not taken
    - set RUNPATH if custom rdma-core provided
    - Remove rx_msg_flags from efa_rdm_msg_recv/efa_rdm_msg_recvv
    - Update tracepoints in the receive path
    - Slide recv-win on RTM/RTA error
    - Insert read and write packets to tx debug list
  - LNX
    - remove force setting DEVICE_ONLY flag
    - set core hints proto to UNSPEC
    - remove iov count failures
    - add wait object implementation
  - OPX
    - Don't fail configure when OPX unhappy
    - Add note to FI_OPX_SDMA_MIN_PAYLOAD_BYTES doc
    - Simplify uapi configuration
    - Unionize 9B and 16B packet SCB models in endpoint structs.
    - Support shared contexts in hfisvc bts
    - Fix replays for multi-packet eager
    - Don't retry forever in send rendezvous.
    - Don't ACK packets that were never received
    - Segfault in opx_hfi_rdma_context_open() on 2nd endpoint opened
    - Fix seg fault in finalize
    - Fix SDMA writev error when RDMA core functions are being used.
    - Add back accidentally removed opx_domain_hfisvc_poll()
    - Add missing function pointers for HFI service
    - Check uapi for hfisvc/HFI1 direct verbs
    - Rename hfisvc to opx-hfisvc
    - Move submodule to rdma core
    - Remove stx/srx support in OPX
    - Register MRs with HFI service
    - Ensure SDMA packet lengths are 8-byte multiples
    - Use HFI service by default if enabled in the driver.
    - fixup goto labels that need statements
    - Update hfisvc_client to 64-bit atomics
    - HFISVC: Fix replay payload
    - Disable HFI Service by default.
    - Disable use of HFI service when driver does not support it.
    - Update hfisvc_client to latest patch
    - Only open IPC cache if HMEM initialized and IPC enabled
    - Handle extended rx bits in common 9B code
    - Add IPC to 16B header path
    - Make sriov-alpha limitations CN5000-only
    - Remove cmake build for hfisvc_client library
    - Handle completion errors from HFI service
    - Fix setting of rc in deferred recv rts
    - Additional HFI Service support changes
    - HFI Service initial support
    - Asynchronous HMEM memcopy for IPC

Signed-off-by: Nicolas Morey <nmorey@suse.com>
2026-01-05 11:30:01 +01:00

170 lines
4.5 KiB
RPMSpec

#
# spec file for package libfabric
#
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
#
%define git_ver .0.5a13558c2
%ifarch aarch64 %power64 x86_64 s390x riscv64
%if 0%{?suse_version} > 1530
%define with_ucx 1
%endif
%endif
%ifarch x86_64 aarch64
%define with_efa 1
%endif
Name: libfabric
Version: 2.4.0
Release: 0
Summary: User-space RDMA Fabric Interfaces
License: BSD-2-Clause OR GPL-2.0-only
Group: Development/Libraries/C and C++
Source: %{name}-%{version}%{git_ver}.tar.bz2
Source1: baselibs.conf
Source100: README.md
Patch0: libfabric-libtool.patch
URL: http://www.github.com/ofiwg/libfabric
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libibverbs-devel
BuildRequires: libnl3-devel
%ifarch x86_64
BuildRequires: libnuma-devel
BuildRequires: libpsm2-devel
%endif
BuildRequires: fdupes
BuildRequires: librdmacm-devel
BuildRequires: libtool
%if 0%{?with_ucx}
BuildRequires: libucm-devel
BuildRequires: libucp-devel
# 1.10 Needed for UCS_MEMORY_TYPE_UNKNOWN
BuildRequires: libucs-devel >= 1.10
BuildRequires: libuct-devel
%endif
BuildRequires: pkg-config
%define lib_major 1
%description
libfabric provides a user-space API to access high-performance fabric
services, such as RDMA. This package only contains the fi_info binary.
%package -n libfabric%{lib_major}
Summary: User-space RDMA fabric interfaces
Group: System/Libraries
%description -n libfabric%{lib_major}
libfabric provides a user-space API to access high-performance fabric
services, such as RDMA. This package contains the runtime library.
%package devel
Summary: Development files for the libfabric library
Group: Development/Libraries/C and C++
Requires: libfabric%{lib_major} = %{version}
%description devel
libfabric provides a user-space API to access high-performance fabric
services, such as RDMA. This package contains the development files.
%prep
%autosetup -p0 -n %{name}-%{version}%{git_ver}
%build
%set_build_flags
export CFLAGS="$CFLAGS -Wno-incompatible-pointer-types"
%if 0%{?gcc_version} >= 8
export CFLAGS="$CFLAGS --std=gnu17"
%endif
rm -f config/libtool.m4
autoreconf -fi
# defaults: with-dlopen and without-valgrind can be over-rode:
%configure %{?_without_dlopen} %{?_with_valgrind} \
--enable-sockets --enable-verbs --enable-usnic \
%if 0%{?with_efa}
--enable-efa \
%endif
%if 0%{?with_ucx}
--enable-ucx \
%endif
%ifarch x86_64
--enable-psm2 \
--enable-psm3 \
%endif
--disable-static
%make_build
%install
%make_install
# remove unpackaged files from the buildroot
rm -f %{buildroot}%{_libdir}/*.la
%fdupes %{buildroot}/%{_prefix}
%post -n libfabric%{lib_major} -p /sbin/ldconfig
%postun -n libfabric%{lib_major} -p /sbin/ldconfig
%files
%defattr(-,root,root,-)
%{_bindir}/*
%{_mandir}/man1/*
%doc NEWS.md
%license COPYING
%files -n libfabric%{lib_major}
%defattr(-,root,root,-)
%{_libdir}/%{name}.so.%{lib_major}*
%doc AUTHORS README
%license COPYING
%files devel
%defattr(-,root,root)
%{_libdir}/%{name}.so
%dir %{_includedir}/rdma
%{_includedir}/rdma/fabric.h
%{_includedir}/rdma/fi_atomic.h
%{_includedir}/rdma/fi_cm.h
%{_includedir}/rdma/fi_collective.h
%{_includedir}/rdma/fi_domain.h
%{_includedir}/rdma/fi_endpoint.h
%{_includedir}/rdma/fi_eq.h
%{_includedir}/rdma/fi_errno.h
%{_includedir}/rdma/fi_ext.h
%{_includedir}/rdma/fi_profile.h
%{_includedir}/rdma/fi_rma.h
%{_includedir}/rdma/fi_tagged.h
%{_includedir}/rdma/fi_trigger.h
%dir %{_includedir}/rdma/providers
%{_includedir}/rdma/providers/fi_log.h
%{_includedir}/rdma/providers/fi_peer.h
%{_includedir}/rdma/providers/fi_prov.h
%{_includedir}/rdma/fi_ext_usnic.h
%ifarch x86_64
%{_includedir}/rdma/fi_ext_psm2.h
%endif
%if 0%{?with_efa}
%{_includedir}/rdma/fi_ext_efa.h
%endif
%{_mandir}/man3/*
%{_mandir}/man7/*
%{_libdir}/pkgconfig/%{name}.pc
%changelog