diff mbox series

[bug#48889,2/4] Ceph: patch rbd to use $PATH lookups for modprobe

Message ID 20210606185204.17617-2-ryan@arctype.co
State New
Headers show
Series [bug#48889,1/4] New package: bird bgp daemon, versions 1 and 2 | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Ryan Sundberg June 6, 2021, 6:52 p.m. UTC
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

Comments

M June 7, 2021, 9:40 a.m. UTC | #1
Ryan Sundberg via Guix-patches via schreef op zo 06-06-2021 om 11:52 [-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:",

modinfo is not necessarily in the profile. I'd recommend
using substitute* from a build phase to replace
/sbin/modinfo with the appropriate /gnu/store path.
((string-append (assoc-ref inputs "???") "/sbin/modinfo")
or something like that, were you'll need to replace "???")

> +-	snprintf(command, sizeof(command), "/sbin/modprobe %s %s",
> ++	snprintf(command, sizeof(command), "modprobe %s %s",
> + 		 module, (options ? options : ""));

Likewise.

Greetings,
Maxime.
diff mbox series

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