commit:     4b0b8ad3d49f81bf53f7a694f4437621cc9e5691
Author:     Brahmajit Das <brahmajit.xyz <AT> gmail <DOT> com>
AuthorDate: Mon Aug  5 06:57:28 2024 +0000
Commit:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
CommitDate: Fri Aug 23 02:03:15 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b0b8ad3

sys-cluster/rdma-core: Fix implicit declaration of function basename

Closes: https://bugs.gentoo.org/937333
Signed-off-by: Brahmajit Das <brahmajit.xyz <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/37965
Signed-off-by: Eli Schwartz <eschwartz <AT> gentoo.org>

 ...a-core-50.0-use-posix-version-of-basename.patch |  65 +++++++++++
 sys-cluster/rdma-core/rdma-core-50.0-r1.ebuild     | 120 +++++++++++++++++++++
 2 files changed, 185 insertions(+)

diff --git 
a/sys-cluster/rdma-core/files/rdma-core-50.0-use-posix-version-of-basename.patch
 
b/sys-cluster/rdma-core/files/rdma-core-50.0-use-posix-version-of-basename.patch
new file mode 100644
index 000000000000..82dc5c598a13
--- /dev/null
+++ 
b/sys-cluster/rdma-core/files/rdma-core-50.0-use-posix-version-of-basename.patch
@@ -0,0 +1,65 @@
+https://patch-diff.githubusercontent.com/raw/linux-rdma/rdma-core/pull/1471.patch
+From: Nicolas Morey <nmo...@suse.com>
+Date: Tue, 4 Jun 2024 08:49:04 +0200
+Subject: [PATCH 1/2] rping: drop useless basename call
+
+Drop calls to basename on a constant string without a path in it ("rping")
+
+Signed-off-by: Nicolas Morey <nmo...@suse.com>
+--- a/librdmacm/examples/rping.c
++++ b/librdmacm/examples/rping.c
+@@ -34,7 +34,6 @@
+ #include <endian.h>
+ #include <getopt.h>
+ #include <stdlib.h>
+-#include <string.h>
+ #include <stdio.h>
+ #include <errno.h>
+ #include <sys/types.h>
+@@ -1253,9 +1252,9 @@ static int get_addr(char *dst, struct sockaddr *addr)
+ static void usage(const char *name)
+ {
+       printf("%s -s [-vVd] [-S size] [-C count] [-a addr] [-p port]\n", 
+-             basename(name));
++             name);
+       printf("%s -c [-vVd] [-S size] [-C count] [-I addr] -a addr [-p 
port]\n", 
+-             basename(name));
++             name);
+       printf("\t-c\t\tclient side\n");
+       printf("\t-I\t\tSource address to bind to for client.\n");
+       printf("\t-s\t\tserver side.  To bind to any address with IPv6 use -a 
::0\n");
+
+From e8b215a7d85c8228d0bd90c17f20b42a03e44dbe Mon Sep 17 00:00:00 2001
+From: Nicolas Morey <nmo...@suse.com>
+Date: Tue, 4 Jun 2024 08:51:51 +0200
+Subject: [PATCH 2/2] kernel-boot,mlx5: use POSIX version of basename
+
+Include libgen.h to use the POSIX version and not the GNU version of basename.
+Because it is used on readlink from sysfs paths, there is no risk of trailing 
'/'
+so they both behave the same way.
+
+This fixes issues with the latest musl which removed the GNU implementation of 
basename.
+
+Signed-off-by: Nicolas Morey <nmo...@suse.com>
+--- a/kernel-boot/rdma_rename.c
++++ b/kernel-boot/rdma_rename.c
+@@ -4,7 +4,7 @@
+ #define _GNU_SOURCE
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <libgen.h>
+ #include <stdbool.h>
+ #include <errno.h>
+ #include <unistd.h>
+--- a/providers/mlx5/mlx5_vfio.c
++++ b/providers/mlx5/mlx5_vfio.c
+@@ -14,7 +14,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <sys/mman.h>
+-#include <string.h>
++#include <libgen.h>
+ #include <sys/param.h>
+ #include <linux/vfio.h>
+ #include <sys/eventfd.h>

diff --git a/sys-cluster/rdma-core/rdma-core-50.0-r1.ebuild 
b/sys-cluster/rdma-core/rdma-core-50.0-r1.ebuild
new file mode 100644
index 000000000000..7c026f397548
--- /dev/null
+++ b/sys-cluster/rdma-core/rdma-core-50.0-r1.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+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 ~ia64 ~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}-50.0-use-posix-version-of-basename.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
+}

Reply via email to