Subject: [PATCH 2/4] Ceph: patch rbd to use $PATH lookups for modprobe

From: Ryan Sundberg <[email-masked]>
Date: Sun, 6 Jun 2021 11:52:02 -0700

Removes hardcoded paths assumed in /sbin and /bin compiled into the
`rbd` tool.

Patch originally discussed at https://github.com/ceph/ceph/pull/20938
and rejected by upstream for ambiguous security concerns related to
relative paths.
---
 .../patches/ceph-relative-paths.patch         | 22 +++++++++++++++++++
 gnu/packages/storage.scm                      |  2 +-
 2 files changed, 23 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/ceph-relative-paths.patch

diff --git a/gnu/packages/patches/ceph-relative-paths.patch b/gnu/packages/patches/ceph-relative-paths.patch
new file mode 100644
index 0000000000..e1b1d3599f
--- /dev/null
+++ b/gnu/packages/patches/ceph-relative-paths.patch
@@ -0,0 +1,22 @@
+diff --git a/src/common/module.c b/src/common/module.c
+index f19f74324c..53355b8185 100644
+--- a/src/common/module.c
++++ b/src/common/module.c
+@@ -66,7 +66,7 @@ int module_has_param(const char *module, const char *param)
+ 	char command[128];
+ 
+ 	snprintf(command, sizeof(command),
+-		 "/sbin/modinfo -F parm %s | /bin/grep -q ^%s:",
++		 "modinfo -F parm %s | grep -q ^%s:",
+ 		 module, param);
+ 
+ 	return run_command(command) == 0;
+@@ -76,7 +76,7 @@ int module_load(const char *module, const char *options)
+ {
+ 	char command[128];
+ 
+-	snprintf(command, sizeof(command), "/sbin/modprobe %s %s",
++	snprintf(command, sizeof(command), "modprobe %s %s",
+ 		 module, (options ? options : ""));
+ 
+ 	return run_command(command);
diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
index d53327df75..b4f7d5e301 100644
--- a/gnu/packages/storage.scm
+++ b/gnu/packages/storage.scm
@@ -64,7 +64,7 @@
                (base32
                 "0lmdri415hqczc9565s5m5568pnj97ipqxgnw6085kps0flwq5zh"))
               (patches
-               (search-patches "ceph-disable-cpu-optimizations.patch"))
+               (search-patches "ceph-disable-cpu-optimizations.patch" "ceph-relative-paths.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
-- 
2.31.1