[PATCH] Add mergerfs/mergerfs-tools

  • Done
  • quality assurance status badge
Details
3 participants
  • Lars-Dominik Braun
  • Ludovic Courtès
  • Marius Bakke
Owner
unassigned
Submitted by
Lars-Dominik Braun
Severity
normal
L
L
Lars-Dominik Braun wrote on 24 May 2020 10:54
(address . guix-patches@gnu.org)
20200524085448.GA1363@noor.fritz.box
Hi,

the attached patch series adds mergerfs, an union file system, and
associated tools mergerfs-tools. I’ve been running it for a while now
and it seems to be stable. Unfortunately I’m not able to mount it in the
system configuration via

(file-system
(device "/storage/disk*")
(mount-point "/storage/pool")
(type "mergerfs")
(flags '('allow_other, 'use_ino, "moveonenospc=true", "category.create=mfs"))
(check? #f))

because device is a pattern and not an actual file system path.

Cheers,
Lars
From ac0ff2afbbcc63d9b6b7b448877f54b58e975668 Mon Sep 17 00:00:00 2001
From: Lars-Dominik Braun <lars@6xq.net>
Date: Sun, 24 May 2020 10:48:02 +0200
Subject: [PATCH 2/2] gnu: Add mergerfs-tools.

* gnu/packages/storage.scm (mergerfs-tools): New variable.
---
gnu/packages/storage.scm | 53 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)

Toggle diff (77 lines)
diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
index b8090c7eaa..ee5967aff6 100644
--- a/gnu/packages/storage.scm
+++ b/gnu/packages/storage.scm
@@ -24,6 +24,8 @@
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system copy)
+ #:use-module (guix git-download)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages assembly)
@@ -46,6 +48,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages rsync)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
@@ -299,3 +302,53 @@ storage protocols (S3, NFS, and others) through the RADOS gateway.")
license:isc
;; imported libfuse code
license:gpl2 license:lgpl2.0))))
+
+(define-public mergerfs-tools
+ (let ((commit "c926779d87458d103f3b674603bf97801ae2486d")
+ (revision "1"))
+ (package
+ (name "mergerfs-tools")
+ ;; unreleased, no version
+ (version (git-version "0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/trapexit/mergerfs-tools.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "04hhwcib0xv4cf1mkj8zrp2aqpxkncml9iqg4m1mz6a5zhzsk0vm"))))
+ (build-system copy-build-system)
+ (inputs
+ `(("python" ,python)
+ ("python-xattr" ,python-xattr)
+ ("rsync" ,rsync)))
+ (arguments
+ '(#:install-plan
+ '(("src/" "bin/"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* (find-files "src" "^mergerfs\\.")
+ (("'rsync'")
+ (string-append "'" (assoc-ref inputs "rsync") "/bin/rsync'"))
+ (("'rm'")
+ (string-append "'" (assoc-ref inputs "coreutils") "/bin/rm'")))
+ (substitute* "src/mergerfs.mktrash"
+ (("xattr")
+ (string-append (assoc-ref inputs "python-xattr") "/bin/xattr"))
+ (("mkdir")
+ (string-append (assoc-ref inputs "coreutils") "/bin/mkdir")))
+ #t)))))
+ (synopsis "Optional tools to help manage data in a mergerfs pool")
+ (description
+ "Audit permissions and ownership of files and directories, duplicates
+ files & directories across branches in a pool, find and remove
+ duplicate files, balance pool drives, consolidate files in a single
+ mergerfs directory onto a single drive and create FreeDesktop.org Trash
+ specification compatible directories.")
+ (home-page "https://github.com/trapexit/mergerfs-tools")
+ (license license:isc))))
--
2.26.2
From 529a3aa70ab1a3079f2c5ab20fb776e92e2ba1cf Mon Sep 17 00:00:00 2001
From: Lars-Dominik Braun <lars@6xq.net>
Date: Sun, 24 May 2020 09:53:30 +0200
Subject: [PATCH 1/2] gnu: Add mergerfs.

* gnu/packages/storage.scm (mergerfs): New variable.
---
gnu/packages/storage.scm | 51 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)

Toggle diff (68 lines)
diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
index 481ffade5c..b8090c7eaa 100644
--- a/gnu/packages/storage.scm
+++ b/gnu/packages/storage.scm
@@ -23,6 +23,7 @@
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages assembly)
@@ -248,3 +249,53 @@ storage protocols (S3, NFS, and others) through the RADOS gateway.")
license:cc-by-sa3.0 ;documentation
license:bsd-3 ;isa-l,jerasure,++
license:expat)))) ;civetweb,java bindings
+
+(define-public mergerfs
+ (package
+ (name "mergerfs")
+ (version "2.29.0")
+ ;; mergerfs bundles a heavily modified copy of libfuse
+ (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)))))
+ (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
+ ;; mergerfs
+ license:isc
+ ;; imported libfuse code
+ license:gpl2 license:lgpl2.0))))
--
2.26.2
M
M
Marius Bakke wrote on 30 May 2020 14:50
87v9kd1t9j.fsf@gnu.org
Lars-Dominik Braun <lars@6xq.net> writes:

Toggle quote (16 lines)
> Hi,
>
> the attached patch series adds mergerfs, an union file system, and
> associated tools mergerfs-tools. I’ve been running it for a while now
> and it seems to be stable. Unfortunately I’m not able to mount it in the
> system configuration via
>
> (file-system
> (device "/storage/disk*")
> (mount-point "/storage/pool")
> (type "mergerfs")
> (flags '('allow_other, 'use_ino, "moveonenospc=true", "category.create=mfs"))
> (check? #f))
>
> because device is a pattern and not an actual file system path.

Oh, fun. I suppose we'll have to add support for mergerfs in the system
configuration to deal with it.

Toggle quote (7 lines)
> From ac0ff2afbbcc63d9b6b7b448877f54b58e975668 Mon Sep 17 00:00:00 2001
> From: Lars-Dominik Braun <lars@6xq.net>
> Date: Sun, 24 May 2020 10:48:02 +0200
> Subject: [PATCH 2/2] gnu: Add mergerfs-tools.
>
> * gnu/packages/storage.scm (mergerfs-tools): New variable.

I think mergerfs is better suited in file-systems.scm. Can you rebase
these patches accordingly?

Toggle quote (33 lines)
> diff --git a/gnu/packages/storage.scm b/gnu/packages/storage.scm
> index b8090c7eaa..ee5967aff6 100644
> --- a/gnu/packages/storage.scm
> +++ b/gnu/packages/storage.scm
> @@ -24,6 +24,8 @@
> #:use-module (guix utils)
> #:use-module (guix build-system cmake)
> #:use-module (guix build-system gnu)
> + #:use-module (guix build-system copy)
> + #:use-module (guix git-download)
> #:use-module (gnu packages)
> #:use-module (gnu packages admin)
> #:use-module (gnu packages assembly)
> @@ -46,6 +48,7 @@
> #:use-module (gnu packages pkg-config)
> #:use-module (gnu packages python)
> #:use-module (gnu packages python-xyz)
> + #:use-module (gnu packages rsync)
> #:use-module (gnu packages sphinx)
> #:use-module (gnu packages tls)
> #:use-module (gnu packages web)
> @@ -299,3 +302,53 @@ storage protocols (S3, NFS, and others) through the RADOS gateway.")
> license:isc
> ;; imported libfuse code
> license:gpl2 license:lgpl2.0))))
> +
> +(define-public mergerfs-tools
> + (let ((commit "c926779d87458d103f3b674603bf97801ae2486d")
> + (revision "1"))
> + (package
> + (name "mergerfs-tools")
> + ;; unreleased, no version

Please use full sentences in code comments, i.e. capitalizations and
full stops.

Toggle quote (2 lines)
> + (version (git-version "0" revision commit))

The convention is to use "0.0" for situations like these, mainly because
it looks funnier.

Toggle quote (35 lines)
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/trapexit/mergerfs-tools.git")
> + (commit commit)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32
> + "04hhwcib0xv4cf1mkj8zrp2aqpxkncml9iqg4m1mz6a5zhzsk0vm"))))
> + (build-system copy-build-system)
> + (inputs
> + `(("python" ,python)
> + ("python-xattr" ,python-xattr)
> + ("rsync" ,rsync)))
> + (arguments
> + '(#:install-plan
> + '(("src/" "bin/"))
> + #:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'patch-paths
> + (lambda* (#:key inputs #:allow-other-keys)
> + (substitute* (find-files "src" "^mergerfs\\.")
> + (("'rsync'")
> + (string-append "'" (assoc-ref inputs "rsync") "/bin/rsync'"))
> + (("'rm'")
> + (string-append "'" (assoc-ref inputs "coreutils") "/bin/rm'")))
> + (substitute* "src/mergerfs.mktrash"
> + (("xattr")
> + (string-append (assoc-ref inputs "python-xattr") "/bin/xattr"))
> + (("mkdir")
> + (string-append (assoc-ref inputs "coreutils") "/bin/mkdir")))
> + #t)))))
> + (synopsis "Optional tools to help manage data in a mergerfs pool")

I think we can drop 'optional' from here.

Toggle quote (7 lines)
> + (description
> + "Audit permissions and ownership of files and directories, duplicates
> + files & directories across branches in a pool, find and remove
> + duplicate files, balance pool drives, consolidate files in a single
> + mergerfs directory onto a single drive and create FreeDesktop.org Trash
> + specification compatible directories.")

These lines should not be indented apart from the first one.

Also, the description reads somewhat unnatural to me. Taken literally,
the description makes it sound like this package can do all that without
special support from anything?

It would be good to start along the lines of "mergerfs-tools is a suite
of programs that can ..." and throw in that it needs a mergerfs to
actually work.

Toggle quote (7 lines)
> From 529a3aa70ab1a3079f2c5ab20fb776e92e2ba1cf Mon Sep 17 00:00:00 2001
> From: Lars-Dominik Braun <lars@6xq.net>
> Date: Sun, 24 May 2020 09:53:30 +0200
> Subject: [PATCH 1/2] gnu: Add mergerfs.
>
> * gnu/packages/storage.scm (mergerfs): New variable.

Can you move this too to file-systems.scm?

[...]

Toggle quote (6 lines)
> +(define-public mergerfs
> + (package
> + (name "mergerfs")
> + (version "2.29.0")
> + ;; mergerfs bundles a heavily modified copy of libfuse

Full sentences please. :-)

Maybe even an "XXX" in this case.

Toggle quote (36 lines)
> + (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)))))
> + (inputs `(("util-linux" ,util-linux)))
> + (home-page "https://github.com/trapexit/mergerfs")
> + (synopsis
> + "Featureful union filesystem")

This line break is unnecessary.

Toggle quote (5 lines)
> + (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.")

No indentation here.

Toggle quote (6 lines)
> + (license (list
> + ;; mergerfs
> + license:isc
> + ;; imported libfuse code
> + license:gpl2 license:lgpl2.0))))

These would do well as margin comments, i.e.:

license:isc ;mergerfs
license:gpl2 license:lgpl2.0 ;imported libfuse code

Can you send updated patches? TIA!
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl7SVpgACgkQoqBt8qM6
VPqsqQgAuio5SB0ion5qvAdhRWov3aowazgEcnN1PC8oDQBdki1xTfTNUP8DBksV
pE0/0DXhFKgxrdZTuk6ip7LD4/Gum5jVoJPk5V4eXHJVpiSn+0fBt9nWoXm0x3hA
cbrydraldsVrF+bt/cXBKPE3TnaPjvQ2CXWdiRyRTd1UQndbKJ+0JULOpl3gwUUM
r+KAh8C4MCupyCyDOT5Wzwv5Yx5rV7H1D2yIx27lINeS4ZSQQQeREgefpVjpNGGJ
CRBKrZAhTf5M9DZWv8aP0ePwdOWRBPsF/IbULkwGZtCtzwm8O6fI2JY2YB8SVeH6
optj6GB4HaYY9jJTXqw27reyzlC4ew==
=996e
-----END PGP SIGNATURE-----

L
L
Lars-Dominik Braun wrote on 31 May 2020 08:25
(name . Marius Bakke)(address . mbakke@fastmail.com)(address . 41501@debbugs.gnu.org)
20200530171259.GB186839@noor.fritz.box
Hi,

Toggle quote (8 lines)
> > (file-system
> > (device "/storage/disk*")
> > (mount-point "/storage/pool")
> > (type "mergerfs")
> > (flags '('allow_other, 'use_ino, "moveonenospc=true", "category.create=mfs"))
> > (check? #f))
> Oh, fun. I suppose we'll have to add support for mergerfs in the system
> configuration to deal with it.
maybe a generic

(device (literal "/storage/disk*"))

would do? I’m sure there are more FUSE filesystems out there which
trigger these checks. And I don’t think adding an exception like the one
for NFS is a good solution long-term.

Toggle quote (1 lines)
> Can you send updated patches? TIA!
All done, see attachment. I hope I did not miss anything.

Cheers,
Lars
From 7aa69a86f8933c3d833ae3beb53840ded9115978 Mon Sep 17 00:00:00 2001
From: Lars-Dominik Braun <lars@6xq.net>
Date: Sat, 30 May 2020 19:10:55 +0200
Subject: [PATCH 2/2] gnu: Add mergerfs-tools.

* gnu/packages/storage.scm (mergerfs-tools): New variable.
---
gnu/packages/file-systems.scm | 53 +++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)

Toggle diff (78 lines)
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 6d605c4922..1b0473d6ec 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -27,6 +27,7 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system linux-module)
#:use-module (guix build-system trivial)
@@ -53,7 +54,9 @@
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages rsync)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
@@ -693,3 +696,53 @@ is similar to mhddfs, unionfs, and aufs.")
license:isc ; mergerfs
license:gpl2 license:lgpl2.0 ; Imported libfuse code.
))))
+
+(define-public mergerfs-tools
+ (let ((commit "c926779d87458d103f3b674603bf97801ae2486d")
+ (revision "1"))
+ (package
+ (name "mergerfs-tools")
+ ;; No released version exists.
+ (version (git-version "0.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/trapexit/mergerfs-tools.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "04hhwcib0xv4cf1mkj8zrp2aqpxkncml9iqg4m1mz6a5zhzsk0vm"))))
+ (build-system copy-build-system)
+ (inputs
+ `(("python" ,python)
+ ("python-xattr" ,python-xattr)
+ ("rsync" ,rsync)))
+ (arguments
+ '(#:install-plan
+ '(("src/" "bin/"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* (find-files "src" "^mergerfs\\.")
+ (("'rsync'")
+ (string-append "'" (assoc-ref inputs "rsync") "/bin/rsync'"))
+ (("'rm'")
+ (string-append "'" (assoc-ref inputs "coreutils") "/bin/rm'")))
+ (substitute* "src/mergerfs.mktrash"
+ (("xattr")
+ (string-append (assoc-ref inputs "python-xattr") "/bin/xattr"))
+ (("mkdir")
+ (string-append (assoc-ref inputs "coreutils") "/bin/mkdir")))
+ #t)))))
+ (synopsis "Tools to help manage data in a mergerfs pool")
+ (description "mergerfs-tools is a suite of programs that can audit
+permissions and ownership of files and directories on a mergerfs volume,
+duplicates files and directories across branches in its pool, find and remove
+duplicate files, balance pool drives, consolidate files in a single mergerfs
+directory onto a single drive and create FreeDesktop.org Trash specification
+compatible directories.")
+ (home-page "https://github.com/trapexit/mergerfs-tools")
+ (license license:isc))))
--
2.26.2
From 4b2500e04f956df0c038ba4b71d91f01b2919d1e Mon Sep 17 00:00:00 2001
From: Lars-Dominik Braun <lars@6xq.net>
Date: Sat, 30 May 2020 19:10:30 +0200
Subject: [PATCH 1/2] gnu: Add mergerfs.

* gnu/packages/storage.scm (mergerfs): New variable.
---
gnu/packages/file-systems.scm | 47 +++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)

Toggle diff (57 lines)
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index 293322c76b..6d605c4922 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -646,3 +646,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.
+ ))))
--
2.26.2
L
L
Ludovic Courtès wrote on 3 Jun 2020 18:04
(name . Lars-Dominik Braun)(address . lars@6xq.net)
87367ckuex.fsf@gnu.org
Hi,

Lars-Dominik Braun <lars@6xq.net> skribis:

Toggle quote (7 lines)
>>From 7aa69a86f8933c3d833ae3beb53840ded9115978 Mon Sep 17 00:00:00 2001
> From: Lars-Dominik Braun <lars@6xq.net>
> Date: Sat, 30 May 2020 19:10:55 +0200
> Subject: [PATCH 2/2] gnu: Add mergerfs-tools.
>
> * gnu/packages/storage.scm (mergerfs-tools): New variable.

[...]

Toggle quote (7 lines)
>>From 4b2500e04f956df0c038ba4b71d91f01b2919d1e Mon Sep 17 00:00:00 2001
> From: Lars-Dominik Braun <lars@6xq.net>
> Date: Sat, 30 May 2020 19:10:30 +0200
> Subject: [PATCH 1/2] gnu: Add mergerfs.
>
> * gnu/packages/storage.scm (mergerfs): New variable.

I think it addresses the issues Marius wrote about, so I went ahead and
applied them.

Toggle quote (2 lines)
> + ;; These were copied from the package libfuse.

[...]

Toggle quote (2 lines)
> + ;; mergerfs bundles a heavily modified copy of libfuse.

This is not great. Did you try building against vanilla libfuse?

Anyway, thank you!

Ludo’.
Closed
L
L
Lars-Dominik Braun wrote on 3 Jun 2020 19:13
(name . Ludovic Courtès)(address . ludo@gnu.org)
20200603171342.GB131536@noor.fritz.box
Hi Ludo,

Toggle quote (2 lines)
> > + ;; mergerfs bundles a heavily modified copy of libfuse.
> This is not great. Did you try building against vanilla libfuse?
no, I looked at the git changelog of their libfuse tree and it appeared
to contain substantial changes, otherwise I would’ve unvendored it.
Judging by the documentation[1] the upstream libfuse is not supported.

Lars

Closed
L
L
Ludovic Courtès wrote on 4 Jun 2020 11:57
(name . Lars-Dominik Braun)(address . lars@6xq.net)
87d06fdugj.fsf@gnu.org
Hi,

Lars-Dominik Braun <lars@6xq.net> skribis:

Toggle quote (6 lines)
>> > + ;; mergerfs bundles a heavily modified copy of libfuse.
>> This is not great. Did you try building against vanilla libfuse?
> no, I looked at the git changelog of their libfuse tree and it appeared
> to contain substantial changes, otherwise I would’ve unvendored it.
> Judging by the documentation[1] the upstream libfuse is not supported.

I see.

Toggle quote (2 lines)
I don’t buy their arguments :-), but from the Guix viewpoint, we’ve done
our best.

Thanks for explaining!

Ludo’.
Closed
?