diff options
author | Lars-Dominik Braun <lars@6xq.net> | 2020-05-30 19:10:30 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-06-03 18:05:56 +0200 |
commit | 639bcf205d55c7a0c6d0894b4e7a814a86d3b9a9 (patch) | |
tree | bd12be3a7116371fd4c8e02798c98413c0353b78 /gnu/packages/file-systems.scm | |
parent | 56caf77e0d875a7f44e1f53508bfdd86331dff52 (diff) | |
download | guix-639bcf205d55c7a0c6d0894b4e7a814a86d3b9a9.tar guix-639bcf205d55c7a0c6d0894b4e7a814a86d3b9a9.tar.gz |
gnu: Add mergerfs.
* gnu/packages/storage.scm (mergerfs): New variable.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/file-systems.scm')
-rw-r--r-- | gnu/packages/file-systems.scm | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 1f58917d0c..bb435d7ac0 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -682,3 +682,50 @@ APFS.") originally developed for Solaris and is now maintained by the OpenZFS community.") (license license:cddl1.0))) + +(define-public mergerfs + (package + (name "mergerfs") + (version "2.29.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/trapexit/mergerfs/releases/download/" + version "/mergerfs-" version ".tar.gz")) + (sha256 + (base32 + "17gizw4vgbqqjd2ykkfpp276942jb5qclp0lkiwkmq1yjgyjqfmk")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests exist. + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "CC" "gcc") + ;; These were copied from the package libfuse. + (substitute* '("libfuse/lib/mount_util.c" "libfuse/util/mount_util.c") + (("/bin/(u?)mount" _ maybe-u) + (string-append (assoc-ref inputs "util-linux") + "/bin/" maybe-u "mount"))) + (substitute* '("libfuse/util/mount.mergerfs.c") + (("/bin/sh") + (which "sh"))) + ;; The Makefile does not allow overriding PREFIX via make variables. + (substitute* '("Makefile" "libfuse/Makefile") + (("= /usr/local") (string-append "= " (assoc-ref outputs "out"))) + ;; cannot chown as build user + (("chown root:root") "true")) + #t))))) + ;; mergerfs bundles a heavily modified copy of libfuse. + (inputs `(("util-linux" ,util-linux))) + (home-page "https://github.com/trapexit/mergerfs") + (synopsis "Featureful union filesystem") + (description "mergerfs is a union filesystem geared towards simplifying +storage and management of files across numerous commodity storage devices. It +is similar to mhddfs, unionfs, and aufs.") + (license (list + license:isc ; mergerfs + license:gpl2 license:lgpl2.0 ; Imported libfuse code. + )))) |