summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2022-10-09 11:31:30 +0200
committerLars-Dominik Braun <lars@6xq.net>2022-10-09 13:18:02 +0200
commitb310afde2696dc6b03f035c6734b068cddf2f129 (patch)
tree91b7832db03a820efe699e3082e9e2feb1f39b08 /gnu
parentd3d3caeeeb194c694e260970b23b29326781ce42 (diff)
downloadguix-b310afde2696dc6b03f035c6734b068cddf2f129.tar.gz
gnu: mergerfs: Hard-code output path in mount.mergerfs.
This allows using mergerfs filesystems in /etc/fstab.

* gnu/packages/file-systems.scm (mergerfs)[arguments]: Add clause to
existing SUBSTITUTE*.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/file-systems.scm8
1 files changed, 7 insertions, 1 deletions
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index d22ac5aab8..7a372ce982 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -1457,7 +1457,13 @@ On Guix System, you will need to invoke the included shell scripts as
                                                   "mount"))))
              (substitute* '("libfuse/util/mount.mergerfs.c")
                (("/bin/sh" command)
-                (string-append (assoc-ref inputs "bash-minimal") command))))))))
+                (string-append (assoc-ref inputs "bash-minimal") command))
+               ;; mount.mergerfs tries to execute `mergerfs`, which cannot be found
+               ;; without an absolute path. Hard-coding the path is fine, since we don’t
+               ;; link mount.mergerfs to mount.fuse anyway.
+               (("add_arg\\(&command, type\\);")
+                (string-append "add_arg(&command, \"" (assoc-ref outputs "out")
+                               "/bin/mergerfs\");"))))))))
     ;; Mergerfs bundles a heavily modified copy of fuse.
     (inputs
      (list bash-minimal util-linux))