gnu: Add fuse-3.

* gnu/packages/linux.scm (fuse-3): New variable.
This commit is contained in:
Mathieu Othacehe 2021-09-26 07:27:05 +00:00
parent fa8b43c8e3
commit b4287446a8
No known key found for this signature in database
GPG Key ID: 8354763531769CA6

View File

@ -3377,6 +3377,66 @@ user-space processes.")
(license (list license:lgpl2.1 ;library
license:gpl2+)))) ;command-line utilities
(define-public fuse-3
(package
(inherit fuse)
(name "fuse")
(version "3.10.5")
(source (origin
(method url-fetch)
(uri
(string-append "https://github.com/libfuse/libfuse/releases/"
"download/fuse-" version
"/fuse-" version ".tar.xz"))
(sha256
(base32
"0rlnnsiw614qcmgy8xz67044gqc1pbvvf2yxjv44lh27bm487qmj"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags
,#~(list
(string-append "-Dudevrulesdir=" #$output "/udev/rules.d")
"-Duseroot=false")
#:tests? #f
#:phases
,#~(modify-phases %standard-phases
(add-after 'unpack 'set-file-names
(lambda* (#:key inputs #:allow-other-keys)
;; libfuse calls out to mount(8) and umount(8). Make sure
;; it refers to the right ones.
(substitute* '("lib/mount_util.c")
(("/bin/(u?)mount" _ maybe-u)
(search-input-file inputs
(string-append "bin/"
maybe-u "mount"))))
(substitute* '("util/mount.fuse.c")
(("/bin/sh")
(search-input-file inputs "/bin/sh")))
;; This hack leads libfuse to search for 'fusermount' in
;; $PATH, where it may find a setuid-root binary, instead of
;; trying solely $out/sbin/fusermount and failing because
;; it's not setuid.
(substitute* "lib/meson.build"
(("-DFUSERMOUNT_DIR=[[:graph:]]+")
"-DFUSERMOUNT_DIR=\"/var/empty\"'"))))
(add-after 'unpack 'fix-install
(lambda* (#:key inputs #:allow-other-keys)
(substitute* '("util/meson.build")
(("install_helper.sh") "true"))
(substitute* '("util/meson.build")
(("fuseconf_path = .*")
"fuseconf_path = '/etc/fuse.conf'"))))
(add-before 'configure 'set-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((dummy-init.d
(string-append (getcwd) "/etc/init.d")))
(setenv "MOUNT_FUSE_PATH"
(string-append #$output "/sbin"))
(setenv "UDEV_RULES_PATH"
(string-append #$output
"/lib/udev/rules.d"))))))))))
(define-public unionfs-fuse
(package
(name "unionfs-fuse")