rdma-core/srp_daemon-Detect-proper-path-to-systemctl.patch
Nicolas Morey-Chaisemartin 2f1cefc3d8 Accepting request 955801 from home:NMoreyChaisemartin:branches:science:HPC
- Add srp_daemon-Detect-proper-path-to-systemctl.patch to fix path to systemctl (bsc#1195874)

OBS-URL: https://build.opensuse.org/request/show/955801
OBS-URL: https://build.opensuse.org/package/show/science:HPC/rdma-core?expand=0&rev=154
2022-02-18 08:19:06 +00:00

79 lines
3.2 KiB
Diff

commit 05a19e050278ed54ce22a560ab62d20a2cf5cb64
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
Date: Fri Feb 18 08:41:53 2022 +0100
srp_daemon: Detect proper path to systemctl
While debian uses /bin/systemctl, SUSE only supports /usr/bin/systemctl,
causing srp_daemon to fail silently starting on all ports.
Detect at built which path is the right one and use it.
Fixes: b03beb142e0d ("srp_daemon: Call systemctl properly from udev")
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
diff --git CMakeLists.txt CMakeLists.txt
index e84b0277f362..e5994bd92ace 100644
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -217,6 +217,8 @@ else()
set(CYTHON_EXECUTABLE "")
endif()
+find_program(SYSTEMCTL_BIN systemctl HINTS "/usr/bin" "/bin")
+
RDMA_CheckSparse()
# Require GNU99 mode
diff --git srp_daemon/CMakeLists.txt srp_daemon/CMakeLists.txt
index b253872e69b8..e0647bf1a2b9 100644
--- srp_daemon/CMakeLists.txt
+++ srp_daemon/CMakeLists.txt
@@ -27,8 +27,9 @@ rdma_subst_install(FILES "srp_daemon.sh.in"
RENAME "srp_daemon.sh"
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
-install(FILES start_on_all_ports
+rdma_subst_install(FILES start_on_all_ports.in
DESTINATION "${CMAKE_INSTALL_LIBEXECDIR}/srp_daemon"
+ RENAME start_on_all_ports
PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
rdma_subst_install(FILES srp_daemon.service.in
@@ -43,7 +44,7 @@ rdma_subst_install(FILES srp_daemon_port@.service.in
install(FILES srp_daemon.conf DESTINATION "${CMAKE_INSTALL_SYSCONFDIR}")
-install(FILES "srp_daemon.rules"
+rdma_subst_install(FILES "srp_daemon.rules.in"
RENAME "60-srp_daemon.rules"
DESTINATION "${CMAKE_INSTALL_UDEV_RULESDIR}")
diff --git srp_daemon/srp_daemon.rules srp_daemon/srp_daemon.rules
deleted file mode 100644
index b6411dcec724..000000000000
--- srp_daemon/srp_daemon.rules
+++ /dev/null
@@ -1 +0,0 @@
-SUBSYSTEM=="infiniband_mad", KERNEL=="*umad*", PROGRAM=="/bin/systemctl show srp_daemon -p ActiveState", RESULT=="ActiveState=active", ENV{SYSTEMD_WANTS}+="srp_daemon_port@$attr{ibdev}:$attr{port}.service"
diff --git srp_daemon/srp_daemon.rules.in srp_daemon/srp_daemon.rules.in
new file mode 100644
index 000000000000..da49d89e3aea
--- /dev/null
+++ srp_daemon/srp_daemon.rules.in
@@ -0,0 +1 @@
+SUBSYSTEM=="infiniband_mad", KERNEL=="*umad*", PROGRAM=="@SYSTEMCTL_BIN@ show srp_daemon -p ActiveState", RESULT=="ActiveState=active", ENV{SYSTEMD_WANTS}+="srp_daemon_port@$attr{ibdev}:$attr{port}.service"
diff --git srp_daemon/start_on_all_ports srp_daemon/start_on_all_ports.in
similarity index 57%
rename from srp_daemon/start_on_all_ports
rename to srp_daemon/start_on_all_ports.in
index 0a7e72e2631b..209dfc088001 100644
--- srp_daemon/start_on_all_ports
+++ srp_daemon/start_on_all_ports.in
@@ -3,5 +3,5 @@
for p in /sys/class/infiniband/*/ports/*; do
[ -e "$p" ] || continue
p=${p#/sys/class/infiniband/}
- nohup /bin/systemctl start "srp_daemon_port@${p/\/ports\//:}" </dev/null >&/dev/null &
+ nohup @SYSTEMCTL_BIN@ start "srp_daemon_port@${p/\/ports\//:}" </dev/null >&/dev/null &
done