summaryrefslogtreecommitdiff
path: root/sys-cluster/rdma-core
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
commitbfd9c39e4712ebdb442d4ca0673061faed1e70e1 (patch)
tree0d7a74b4463ee387f9cf9368ceb1b757f694f72a /sys-cluster/rdma-core
parentf716a9fe6455d39eef01e718aae68dae61c19704 (diff)
downloadbaldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.gz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.xz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.zip
Revert "Adding metadata"
This reverts commit f716a9fe6455d39eef01e718aae68dae61c19704.
Diffstat (limited to 'sys-cluster/rdma-core')
-rw-r--r--sys-cluster/rdma-core/Manifest4
-rw-r--r--sys-cluster/rdma-core/files/ibacm.init7
-rw-r--r--sys-cluster/rdma-core/files/iwpmd.init7
-rw-r--r--sys-cluster/rdma-core/files/rdma-core-39.0-RDMA_BuildType.patch12
-rw-r--r--sys-cluster/rdma-core/files/rdma-core-53.1-preload-fix-build-issue-with-clang-19.patch162
-rw-r--r--sys-cluster/rdma-core/files/rdma-core-57.0-fix-unclosed-string-literal.patch19
-rw-r--r--sys-cluster/rdma-core/files/srpd.init20
-rw-r--r--sys-cluster/rdma-core/metadata.xml16
-rw-r--r--sys-cluster/rdma-core/rdma-core-57.0-r1.ebuild120
-rw-r--r--sys-cluster/rdma-core/rdma-core-59.0-r1.ebuild120
-rw-r--r--sys-cluster/rdma-core/rdma-core-63.0.ebuild120
-rw-r--r--sys-cluster/rdma-core/rdma-core-9999.ebuild120
12 files changed, 727 insertions, 0 deletions
diff --git a/sys-cluster/rdma-core/Manifest b/sys-cluster/rdma-core/Manifest
new file mode 100644
index 000000000000..711ffb02d1c3
--- /dev/null
+++ b/sys-cluster/rdma-core/Manifest
@@ -0,0 +1,4 @@
+DIST rdma-core-57.0.tar.gz 2020448 BLAKE2B 4808103af76e3314ce68b4fc3607d217d7b58c833758eda8c1b4da6251c82e18786e4d148d8947cf92f914894359b60d075b4c5b0b72b4f04fca2fb8e26ee82f SHA512 4a904d34af6863655545fe720cc25a8800684f63c51cebb67be2058363949217903957dc925c69d41294362ccff75fb0d37f3bc31cd6f6f252a804d6713f62cf
+DIST rdma-core-59.0.tar.gz 2037869 BLAKE2B d2836c5c7590754484880951f00015bcf279479549d42ed52325eaf4e40128c4b1289c64986003fb4e326f797971c7c506b22e9fc018694865c7fadfb8a3568f SHA512 f2d2001240e875ad3fec4f2f01e90573468daa040e07ec2f6cc81e875cf7b950c2dfeab10962b8b3d70852ecfe0ede2644ff7bea87560a45084baa47bd2d5401
+DIST rdma-core-63.0-fix-efa-with-lttng.patch 1250 BLAKE2B c92299c5b8f659013cad2e840cd44447c2dadc67f4b957a92212dc83b6846968d796e5b448d75e1a0ff87d95584971614ba3aa74b5281fcf3fd01702dd959904 SHA512 7fbe97291ac1c35647cfac4ae2d1c51709c02ea2f797c6b88cd1a87f179c32731e3cd5ebab6c0ae9b07f10b3d20f6446cdd97671629b072431bf61a3c91eeeff
+DIST rdma-core-63.0.tar.gz 2114488 BLAKE2B 00c36a6c40ed23daba79139ef0c537082b5382241fa229ecb5cf71c3b3c1467f96c09ca68185d58db16734c8890567fc3446979f4042b3992b868c101909b61b SHA512 aa7308455009a10eea8bff59b09ad80124ab70bbd8fe205451585c9111c33b0cb99f8112930e7b9a62a91d248f9f8411913c8a4f1edec013fae1493c6cb13629
diff --git a/sys-cluster/rdma-core/files/ibacm.init b/sys-cluster/rdma-core/files/ibacm.init
new file mode 100644
index 000000000000..e87321aae596
--- /dev/null
+++ b/sys-cluster/rdma-core/files/ibacm.init
@@ -0,0 +1,7 @@
+#!/sbin/openrc-run
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+command="/usr/sbin/ibacm"
+pidfile="/run/${SVCNAME}.pid"
+command_background="yes"
diff --git a/sys-cluster/rdma-core/files/iwpmd.init b/sys-cluster/rdma-core/files/iwpmd.init
new file mode 100644
index 000000000000..c377b1e7d547
--- /dev/null
+++ b/sys-cluster/rdma-core/files/iwpmd.init
@@ -0,0 +1,7 @@
+#!/sbin/openrc-run
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+command="/usr/sbin/iwpmd"
+pidfile="/run/${SVCNAME}.pid"
+command_background="yes"
diff --git a/sys-cluster/rdma-core/files/rdma-core-39.0-RDMA_BuildType.patch b/sys-cluster/rdma-core/files/rdma-core-39.0-RDMA_BuildType.patch
new file mode 100644
index 000000000000..969028358733
--- /dev/null
+++ b/sys-cluster/rdma-core/files/rdma-core-39.0-RDMA_BuildType.patch
@@ -0,0 +1,12 @@
+* RDMA_BuildType() tries to muck with CMAKE_BUILD_TYPE
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -199,7 +199,6 @@
+
+ #-------------------------
+ # Setup the basic C compiler
+-RDMA_BuildType()
+ include_directories(${BUILD_INCLUDE})
+
+ # Look for Python. We prefer some variant of python 3 if the system has it.
diff --git a/sys-cluster/rdma-core/files/rdma-core-53.1-preload-fix-build-issue-with-clang-19.patch b/sys-cluster/rdma-core/files/rdma-core-53.1-preload-fix-build-issue-with-clang-19.patch
new file mode 100644
index 000000000000..8f4e7dc93523
--- /dev/null
+++ b/sys-cluster/rdma-core/files/rdma-core-53.1-preload-fix-build-issue-with-clang-19.patch
@@ -0,0 +1,162 @@
+From 660479ab1ac25a016e07634c1313427489bb6747 Mon Sep 17 00:00:00 2001
+From: "Z. Liu" <zhixu.liu@gmail.com>
+Date: Mon, 3 Mar 2025 22:40:15 +0800
+Subject: [PATCH 1/4] preload: fix build issue with clang 19
+
+librdmacm/preload.c:796:9: error: at most one overload for a given name may lack the 'overloadable' attribute
+librdmacm/preload.c:796:9: warning: no previous prototype for function 'recvfrom' [-Wmissing-prototypes]
+
+Signed-off-by: Z. Liu <zhixu.liu@gmail.com>
+---
+ CMakeLists.txt | 7 +++++++
+ buildlib/config.h.in | 2 ++
+ librdmacm/preload.c | 9 +++++++++
+ 3 files changed, 18 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7f5b4139b..26d658830 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -394,6 +394,13 @@ if (NOT HAVE_LONG_LONG_U64)
+ add_definitions("-D__SANE_USERSPACE_TYPES__")
+ endif()
+
++# Check __SOCKADDR_ARG exist and is union
++RDMA_Check_C_Compiles(HAVE_SOCKADDR_ARG_AS_UNION "
++#define _GNU_SOURCE
++#include <sys/socket.h>
++ int main(int argc,const char *argv[]) {struct sockaddr addr;__SOCKADDR_ARG sa; sa.__sockaddr__ = (struct sockaddr *)&addr; (void)addr; (void)sa; return 0;}"
++)
++
+ # glibc and kernel uapi headers can co-exist
+ CHECK_C_SOURCE_COMPILES("
+ #include <sys/socket.h>
+diff --git a/buildlib/config.h.in b/buildlib/config.h.in
+index c5b0bf557..663248041 100644
+--- a/buildlib/config.h.in
++++ b/buildlib/config.h.in
+@@ -50,6 +50,8 @@
+
+ #cmakedefine HAVE_WORKING_IF_H 1
+
++#cmakedefine HAVE_SOCKADDR_ARG_AS_UNION 1
++
+ // Operating mode for symbol versions
+ #cmakedefine HAVE_FULL_SYMBOL_VERSIONS 1
+ #cmakedefine HAVE_LIMITED_SYMBOL_VERSIONS 1
+diff --git a/librdmacm/preload.c b/librdmacm/preload.c
+index d46beb1bb..b3175dd5d 100644
+--- a/librdmacm/preload.c
++++ b/librdmacm/preload.c
+@@ -794,12 +794,21 @@ ssize_t recv(int socket, void *buf, size_t len, int flags)
+ }
+
+ ssize_t recvfrom(int socket, void *buf, size_t len, int flags,
++#if HAVE_SOCKADDR_ARG_AS_UNION
++ __SOCKADDR_ARG src_addr, socklen_t *addrlen)
++#else
+ struct sockaddr *src_addr, socklen_t *addrlen)
++#endif
+ {
+ int fd;
+ return (fd_fork_get(socket, &fd) == fd_rsocket) ?
++#if HAVE_SOCKADDR_ARG_AS_UNION
++ rrecvfrom(fd, buf, len, flags, src_addr.__sockaddr__, addrlen) :
++ real.recvfrom(fd, buf, len, flags, src_addr.__sockaddr__, addrlen);
++#else
+ rrecvfrom(fd, buf, len, flags, src_addr, addrlen) :
+ real.recvfrom(fd, buf, len, flags, src_addr, addrlen);
++#endif
+ }
+
+ ssize_t recvmsg(int socket, struct msghdr *msg, int flags)
+--
+2.45.2
+
+
+From c13a26a463750f3bb3db5697069ee9e9bf5a5556 Mon Sep 17 00:00:00 2001
+From: "Z. Liu" <zhixu.liu@gmail.com>
+Date: Wed, 5 Mar 2025 01:19:37 +0800
+Subject: [PATCH 2/4] libibverbs.map: ibv_cmd_query_device had been removed
+
+Signed-off-by: Z. Liu <zhixu.liu@gmail.com>
+---
+ libibverbs/libibverbs.map.in | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/libibverbs/libibverbs.map.in b/libibverbs/libibverbs.map.in
+index 11268cefd..a473549ca 100644
+--- a/libibverbs/libibverbs.map.in
++++ b/libibverbs/libibverbs.map.in
+@@ -222,7 +222,6 @@ IBVERBS_PRIVATE_@IBVERBS_PABI_VERSION@ {
+ ibv_cmd_post_send;
+ ibv_cmd_post_srq_recv;
+ ibv_cmd_query_context;
+- ibv_cmd_query_device;
+ ibv_cmd_query_device_any;
+ ibv_cmd_query_mr;
+ ibv_cmd_query_port;
+--
+2.45.2
+
+
+From f564d1938bc03eb3b5f1fe5d6fadf7be81d922a6 Mon Sep 17 00:00:00 2001
+From: "Z. Liu" <zhixu.liu@gmail.com>
+Date: Wed, 5 Mar 2025 09:08:48 +0800
+Subject: [PATCH 3/4] libefa.map: efadv_wc_read_sgid is static inline
+
+Signed-off-by: Z. Liu <zhixu.liu@gmail.com>
+---
+ providers/efa/libefa.map | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/providers/efa/libefa.map b/providers/efa/libefa.map
+index eff647d18..d27b58c16 100644
+--- a/providers/efa/libefa.map
++++ b/providers/efa/libefa.map
+@@ -17,7 +17,6 @@ EFA_1.2 {
+ global:
+ efadv_cq_from_ibv_cq_ex;
+ efadv_create_cq;
+- efadv_wc_read_sgid;
+ } EFA_1.1;
+
+ EFA_1.3 {
+--
+2.45.2
+
+
+From 25cf8775b956ef81034aa314c1470634ea9ab5d3 Mon Sep 17 00:00:00 2001
+From: "Z. Liu" <zhixu.liu@gmail.com>
+Date: Fri, 7 Mar 2025 10:31:13 +0800
+Subject: [PATCH 4/4] cmake: add ${BUILD_INCLUDE} for __SOCKADDR_ARG test
+
+because the sparse check has sys/socket.h patched
+
+Signed-off-by: Z. Liu <zhixu.liu@gmail.com>
+---
+ CMakeLists.txt | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 26d658830..dce05c78b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -395,11 +395,14 @@ if (NOT HAVE_LONG_LONG_U64)
+ endif()
+
+ # Check __SOCKADDR_ARG exist and is union
++set(SAFE_CMAKE_REQUIRED_INCLUDES "${CMAKE_REQUIRED_INCLUDES}")
++set(CMAKE_REQUIRED_INCLUDES "${BUILD_INCLUDE}")
+ RDMA_Check_C_Compiles(HAVE_SOCKADDR_ARG_AS_UNION "
+ #define _GNU_SOURCE
+ #include <sys/socket.h>
+ int main(int argc,const char *argv[]) {struct sockaddr addr;__SOCKADDR_ARG sa; sa.__sockaddr__ = (struct sockaddr *)&addr; (void)addr; (void)sa; return 0;}"
+ )
++set(CMAKE_REQUIRED_INCLUDES "${SAFE_CMAKE_REQUIRED_INCLUDES}")
+
+ # glibc and kernel uapi headers can co-exist
+ CHECK_C_SOURCE_COMPILES("
+--
+2.45.2
+
diff --git a/sys-cluster/rdma-core/files/rdma-core-57.0-fix-unclosed-string-literal.patch b/sys-cluster/rdma-core/files/rdma-core-57.0-fix-unclosed-string-literal.patch
new file mode 100644
index 000000000000..a982fb10abee
--- /dev/null
+++ b/sys-cluster/rdma-core/files/rdma-core-57.0-fix-unclosed-string-literal.patch
@@ -0,0 +1,19 @@
+From 54fa841b48f0e867ede682561005069d72b47fd6 Mon Sep 17 00:00:00 2001
+From: Florian Schmaus <flo@geekplace.eu>
+Date: Tue, 2 Jun 2026 09:41:31 +0200
+Subject: [PATCH] Fix unclosed string literal in mlx5dv_flow
+
+--- a/pyverbs/providers/mlx5/mlx5dv_flow.pyx
++++ b/pyverbs/providers/mlx5/mlx5dv_flow.pyx
+@@ -258,7 +258,7 @@ cdef class Mlx5Flow(Flow):
+ elif (<Mlx5FlowActionAttr>attr).attr.type not in \
+ [dv.MLX5DV_FLOW_ACTION_IBV_FLOW_ACTION, dv.MLX5DV_FLOW_ACTION_DEST_DEVX]:
+ raise PyverbsUserError(f'Unsupported action type: '
+- f'{<Mlx5FlowActionAttr>attr).attr.type}.')
++ f'{(<Mlx5FlowActionAttr>attr).attr.type}.')
+ memcpy(tmp_addr, &(<Mlx5FlowActionAttr>attr).attr,
+ sizeof(dv.mlx5dv_flow_action_attr))
+ tmp_addr += sizeof(dv.mlx5dv_flow_action_attr)
+--
+2.53.0
+
diff --git a/sys-cluster/rdma-core/files/srpd.init b/sys-cluster/rdma-core/files/srpd.init
new file mode 100644
index 000000000000..28d21b264992
--- /dev/null
+++ b/sys-cluster/rdma-core/files/srpd.init
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+command="/usr/sbin/srp_daemon.sh"
+pidfile="/run/${SVCNAME}.pid"
+command_background="yes"
+
+rdma_config="/etc/infiniband/openib.conf"
+[ -f ${rdma_config} ] && . ${rdma_config}
+
+[ ${SRP_DEFAULT_TL_RETRY_COUNT} ] && command_args="-l ${SRP_DEFAULT_TL_RETRY_COUNT}"
+
+start_pre() {
+ if ! [ -e /sys/module/ib_srp ]; then
+ eerror "SRP kernel module is not loaded, unable to start SRP daemon"
+ return 1
+ fi
+ return 0
+}
diff --git a/sys-cluster/rdma-core/metadata.xml b/sys-cluster/rdma-core/metadata.xml
new file mode 100644
index 000000000000..b779980cfa61
--- /dev/null
+++ b/sys-cluster/rdma-core/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>cluster@gentoo.org</email>
+ <name>Gentoo Cluster Project</name>
+ </maintainer>
+ <use>
+ <flag name="lttng">Enable support for the LTTng tracer</flag>
+ <flag name="neigh">Enable iwpmd support</flag>
+ <flag name="python">Enable pyverbs support</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">linux-rdma/rdma-core</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-cluster/rdma-core/rdma-core-57.0-r1.ebuild b/sys-cluster/rdma-core/rdma-core-57.0-r1.ebuild
new file mode 100644
index 000000000000..636f29a6a02a
--- /dev/null
+++ b/sys-cluster/rdma-core/rdma-core-57.0-r1.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake perl-functions python-single-r1 udev systemd
+
+DESCRIPTION="Userspace components for the Linux Kernel's drivers/infiniband subsystem"
+HOMEPAGE="https://github.com/linux-rdma/rdma-core"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/linux-rdma/rdma-core"
+else
+ SRC_URI="https://github.com/linux-rdma/rdma-core/releases/download/v${PV}/${P}.tar.gz"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86"
+fi
+
+LICENSE="|| ( GPL-2 ( CC0-1.0 MIT BSD BSD-with-attribution ) )"
+SLOT="0"
+IUSE="lttng neigh python static-libs systemd valgrind"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+COMMON_DEPEND="
+ dev-lang/perl:=
+ virtual/libudev:=
+ lttng? ( dev-util/lttng-ust:= )
+ neigh? ( dev-libs/libnl:3 )
+ systemd? ( sys-apps/systemd:= )
+ valgrind? ( dev-debug/valgrind )
+ python? ( ${PYTHON_DEPS} )
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ python? (
+ $(python_gen_cond_dep '
+ dev-python/cython[${PYTHON_USEDEP}]
+ ')
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ !sys-fabric/infiniband-diags
+ !sys-fabric/libibverbs
+ !sys-fabric/librdmacm
+ !sys-fabric/libibumad
+ !sys-fabric/ibacm
+ !sys-fabric/libibmad
+ !sys-fabric/srptools
+ !sys-fabric/infinipath-psm
+ !sys-fabric/libcxgb3
+ !sys-fabric/libcxgb4
+ !sys-fabric/libmthca
+ !sys-fabric/libmlx4
+ !sys-fabric/libmlx5
+ !sys-fabric/libocrdma
+ !sys-fabric/libnes
+"
+# python is required unconditionally at build-time
+BDEPEND="
+ ${PYTHON_DEPS}
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-39.0-RDMA_BuildType.patch
+ "${FILESDIR}"/${PN}-57.0-fix-unclosed-string-literal.patch
+)
+
+src_prepare() {
+ # DEFINED is true even if the value is false, which makes lttng unconditional
+ sed -i -e 's/if (DEFINED ENABLE_LTTNG)/if (ENABLE_LTTNG)/' CMakeLists.txt || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ perl_set_version
+
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}"/etc
+ -DCMAKE_INSTALL_RUNDIR=/run
+ -DCMAKE_INSTALL_SHAREDSTATEDIR="${EPREFIX}"/var/lib
+ -DCMAKE_INSTALL_PERLDIR="${VENDOR_LIB}"
+ -DCMAKE_INSTALL_UDEV_RULESDIR="${EPREFIX}$(get_udevdir)"/rules.d
+ -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR="$(systemd_get_systemunitdir)"
+ -DCMAKE_DISABLE_FIND_PACKAGE_Systemd="$(usex !systemd)"
+ -DENABLE_LTTNG="$(usex lttng)"
+ -DENABLE_VALGRIND="$(usex valgrind)"
+ -DENABLE_RESOLVE_NEIGH="$(usex neigh)"
+ -DENABLE_STATIC="$(usex static-libs)"
+ -DNO_PYVERBS="$(usex !python)"
+ -DNO_MAN_PAGES=1
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ udev_dorules "${ED}"/usr/share/doc/${PF}/70-persistent-ipoib.rules
+
+ if use neigh; then
+ newinitd "${FILESDIR}"/ibacm.init ibacm
+ newinitd "${FILESDIR}"/iwpmd.init iwpmd
+ fi
+
+ newinitd "${FILESDIR}"/srpd.init srpd
+
+ use python && python_optimize
+}
+
+pkg_postinst() {
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/sys-cluster/rdma-core/rdma-core-59.0-r1.ebuild b/sys-cluster/rdma-core/rdma-core-59.0-r1.ebuild
new file mode 100644
index 000000000000..be856d7313ae
--- /dev/null
+++ b/sys-cluster/rdma-core/rdma-core-59.0-r1.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake perl-functions python-single-r1 udev systemd
+
+DESCRIPTION="Userspace components for the Linux Kernel's drivers/infiniband subsystem"
+HOMEPAGE="https://github.com/linux-rdma/rdma-core"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/linux-rdma/rdma-core"
+else
+ SRC_URI="https://github.com/linux-rdma/rdma-core/releases/download/v${PV}/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+LICENSE="|| ( GPL-2 ( CC0-1.0 MIT BSD BSD-with-attribution ) )"
+SLOT="0"
+IUSE="lttng neigh python static-libs systemd valgrind"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+COMMON_DEPEND="
+ dev-lang/perl:=
+ virtual/libudev:=
+ lttng? ( dev-util/lttng-ust:= )
+ neigh? ( dev-libs/libnl:3 )
+ systemd? ( sys-apps/systemd:= )
+ valgrind? ( dev-debug/valgrind )
+ python? ( ${PYTHON_DEPS} )
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ python? (
+ $(python_gen_cond_dep '
+ dev-python/cython[${PYTHON_USEDEP}]
+ ')
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ !sys-fabric/infiniband-diags
+ !sys-fabric/libibverbs
+ !sys-fabric/librdmacm
+ !sys-fabric/libibumad
+ !sys-fabric/ibacm
+ !sys-fabric/libibmad
+ !sys-fabric/srptools
+ !sys-fabric/infinipath-psm
+ !sys-fabric/libcxgb3
+ !sys-fabric/libcxgb4
+ !sys-fabric/libmthca
+ !sys-fabric/libmlx4
+ !sys-fabric/libmlx5
+ !sys-fabric/libocrdma
+ !sys-fabric/libnes
+"
+# python is required unconditionally at build-time
+BDEPEND="
+ ${PYTHON_DEPS}
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-39.0-RDMA_BuildType.patch
+ "${FILESDIR}"/${PN}-57.0-fix-unclosed-string-literal.patch
+)
+
+src_prepare() {
+ # DEFINED is true even if the value is false, which makes lttng unconditional
+ sed -i -e 's/if (DEFINED ENABLE_LTTNG)/if (ENABLE_LTTNG)/' CMakeLists.txt || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ perl_set_version
+
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}"/etc
+ -DCMAKE_INSTALL_RUNDIR=/run
+ -DCMAKE_INSTALL_SHAREDSTATEDIR="${EPREFIX}"/var/lib
+ -DCMAKE_INSTALL_PERLDIR="${VENDOR_LIB}"
+ -DCMAKE_INSTALL_UDEV_RULESDIR="${EPREFIX}$(get_udevdir)"/rules.d
+ -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR="$(systemd_get_systemunitdir)"
+ -DCMAKE_DISABLE_FIND_PACKAGE_Systemd="$(usex !systemd)"
+ -DENABLE_LTTNG="$(usex lttng)"
+ -DENABLE_VALGRIND="$(usex valgrind)"
+ -DENABLE_RESOLVE_NEIGH="$(usex neigh)"
+ -DENABLE_STATIC="$(usex static-libs)"
+ -DNO_PYVERBS="$(usex !python)"
+ -DNO_MAN_PAGES=1
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ udev_dorules "${ED}"/usr/share/doc/${PF}/70-persistent-ipoib.rules
+
+ if use neigh; then
+ newinitd "${FILESDIR}"/ibacm.init ibacm
+ newinitd "${FILESDIR}"/iwpmd.init iwpmd
+ fi
+
+ newinitd "${FILESDIR}"/srpd.init srpd
+
+ use python && python_optimize
+}
+
+pkg_postinst() {
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/sys-cluster/rdma-core/rdma-core-63.0.ebuild b/sys-cluster/rdma-core/rdma-core-63.0.ebuild
new file mode 100644
index 000000000000..64e1f49f53f4
--- /dev/null
+++ b/sys-cluster/rdma-core/rdma-core-63.0.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake perl-functions python-single-r1 udev systemd
+
+DESCRIPTION="Userspace components for the Linux Kernel's drivers/infiniband subsystem"
+HOMEPAGE="https://github.com/linux-rdma/rdma-core"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/linux-rdma/rdma-core"
+else
+ SRC_URI="https://github.com/linux-rdma/rdma-core/releases/download/v${PV}/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+# https://github.com/linux-rdma/rdma-core/pull/1747
+SRC_URI+="
+ https://github.com/linux-rdma/rdma-core/commit/448ecf97586de63da7d7fac1ea24f0f0fa381336.patch
+ -> ${PN}-63.0-fix-efa-with-lttng.patch
+"
+
+LICENSE="|| ( GPL-2 ( CC0-1.0 MIT BSD BSD-with-attribution ) )"
+SLOT="0"
+IUSE="lttng neigh python static-libs systemd valgrind"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+COMMON_DEPEND="
+ dev-lang/perl:=
+ virtual/libudev:=
+ lttng? ( dev-util/lttng-ust:= )
+ neigh? ( dev-libs/libnl:3 )
+ systemd? ( sys-apps/systemd:= )
+ valgrind? ( dev-debug/valgrind )
+ python? ( ${PYTHON_DEPS} )
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ python? (
+ $(python_gen_cond_dep '
+ dev-python/cython[${PYTHON_USEDEP}]
+ ')
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ !sys-fabric/infiniband-diags
+ !sys-fabric/libibverbs
+ !sys-fabric/librdmacm
+ !sys-fabric/libibumad
+ !sys-fabric/ibacm
+ !sys-fabric/libibmad
+ !sys-fabric/srptools
+ !sys-fabric/infinipath-psm
+ !sys-fabric/libcxgb3
+ !sys-fabric/libcxgb4
+ !sys-fabric/libmthca
+ !sys-fabric/libmlx4
+ !sys-fabric/libmlx5
+ !sys-fabric/libocrdma
+ !sys-fabric/libnes
+"
+# python is required unconditionally at build-time
+BDEPEND="
+ ${PYTHON_DEPS}
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-39.0-RDMA_BuildType.patch
+ "${DISTDIR}"/${PN}-63.0-fix-efa-with-lttng.patch
+)
+
+src_configure() {
+ perl_set_version
+
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}"/etc
+ -DCMAKE_INSTALL_RUNDIR=/run
+ -DCMAKE_INSTALL_SHAREDSTATEDIR="${EPREFIX}"/var/lib
+ -DCMAKE_INSTALL_PERLDIR="${VENDOR_LIB}"
+ -DCMAKE_INSTALL_UDEV_RULESDIR="${EPREFIX}$(get_udevdir)"/rules.d
+ -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR="$(systemd_get_systemunitdir)"
+ -DCMAKE_DISABLE_FIND_PACKAGE_Systemd="$(usex !systemd)"
+ -DTRACING="$(usex lttng LTTNG None)"
+ -DENABLE_VALGRIND="$(usex valgrind)"
+ -DENABLE_RESOLVE_NEIGH="$(usex neigh)"
+ -DENABLE_STATIC="$(usex static-libs)"
+ -DNO_PYVERBS="$(usex !python)"
+ -DNO_MAN_PAGES=1
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ udev_dorules "${ED}"/usr/share/doc/${PF}/70-persistent-ipoib.rules
+
+ if use neigh; then
+ newinitd "${FILESDIR}"/ibacm.init ibacm
+ newinitd "${FILESDIR}"/iwpmd.init iwpmd
+ fi
+
+ newinitd "${FILESDIR}"/srpd.init srpd
+
+ use python && python_optimize
+}
+
+pkg_postinst() {
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/sys-cluster/rdma-core/rdma-core-9999.ebuild b/sys-cluster/rdma-core/rdma-core-9999.ebuild
new file mode 100644
index 000000000000..64e1f49f53f4
--- /dev/null
+++ b/sys-cluster/rdma-core/rdma-core-9999.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake perl-functions python-single-r1 udev systemd
+
+DESCRIPTION="Userspace components for the Linux Kernel's drivers/infiniband subsystem"
+HOMEPAGE="https://github.com/linux-rdma/rdma-core"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/linux-rdma/rdma-core"
+else
+ SRC_URI="https://github.com/linux-rdma/rdma-core/releases/download/v${PV}/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+# https://github.com/linux-rdma/rdma-core/pull/1747
+SRC_URI+="
+ https://github.com/linux-rdma/rdma-core/commit/448ecf97586de63da7d7fac1ea24f0f0fa381336.patch
+ -> ${PN}-63.0-fix-efa-with-lttng.patch
+"
+
+LICENSE="|| ( GPL-2 ( CC0-1.0 MIT BSD BSD-with-attribution ) )"
+SLOT="0"
+IUSE="lttng neigh python static-libs systemd valgrind"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+COMMON_DEPEND="
+ dev-lang/perl:=
+ virtual/libudev:=
+ lttng? ( dev-util/lttng-ust:= )
+ neigh? ( dev-libs/libnl:3 )
+ systemd? ( sys-apps/systemd:= )
+ valgrind? ( dev-debug/valgrind )
+ python? ( ${PYTHON_DEPS} )
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ python? (
+ $(python_gen_cond_dep '
+ dev-python/cython[${PYTHON_USEDEP}]
+ ')
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ !sys-fabric/infiniband-diags
+ !sys-fabric/libibverbs
+ !sys-fabric/librdmacm
+ !sys-fabric/libibumad
+ !sys-fabric/ibacm
+ !sys-fabric/libibmad
+ !sys-fabric/srptools
+ !sys-fabric/infinipath-psm
+ !sys-fabric/libcxgb3
+ !sys-fabric/libcxgb4
+ !sys-fabric/libmthca
+ !sys-fabric/libmlx4
+ !sys-fabric/libmlx5
+ !sys-fabric/libocrdma
+ !sys-fabric/libnes
+"
+# python is required unconditionally at build-time
+BDEPEND="
+ ${PYTHON_DEPS}
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-39.0-RDMA_BuildType.patch
+ "${DISTDIR}"/${PN}-63.0-fix-efa-with-lttng.patch
+)
+
+src_configure() {
+ perl_set_version
+
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}"/etc
+ -DCMAKE_INSTALL_RUNDIR=/run
+ -DCMAKE_INSTALL_SHAREDSTATEDIR="${EPREFIX}"/var/lib
+ -DCMAKE_INSTALL_PERLDIR="${VENDOR_LIB}"
+ -DCMAKE_INSTALL_UDEV_RULESDIR="${EPREFIX}$(get_udevdir)"/rules.d
+ -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR="$(systemd_get_systemunitdir)"
+ -DCMAKE_DISABLE_FIND_PACKAGE_Systemd="$(usex !systemd)"
+ -DTRACING="$(usex lttng LTTNG None)"
+ -DENABLE_VALGRIND="$(usex valgrind)"
+ -DENABLE_RESOLVE_NEIGH="$(usex neigh)"
+ -DENABLE_STATIC="$(usex static-libs)"
+ -DNO_PYVERBS="$(usex !python)"
+ -DNO_MAN_PAGES=1
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ udev_dorules "${ED}"/usr/share/doc/${PF}/70-persistent-ipoib.rules
+
+ if use neigh; then
+ newinitd "${FILESDIR}"/ibacm.init ibacm
+ newinitd "${FILESDIR}"/iwpmd.init iwpmd
+ fi
+
+ newinitd "${FILESDIR}"/srpd.init srpd
+
+ use python && python_optimize
+}
+
+pkg_postinst() {
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}