From 639bcf205d55c7a0c6d0894b4e7a814a86d3b9a9 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Sat, 30 May 2020 19:10:30 +0200 Subject: gnu: Add mergerfs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/storage.scm (mergerfs): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/file-systems.scm | 47 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'gnu/packages/file-systems.scm') 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. + )))) -- cgit v1.2.3