diff options
Diffstat (limited to 'gnu/packages/file-systems.scm')
-rw-r--r-- | gnu/packages/file-systems.scm | 95 |
1 files changed, 85 insertions, 10 deletions
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index 6ceaad4fd1..bc147bf3c6 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -68,6 +68,7 @@ #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) #:use-module (gnu packages valgrind) + #:use-module (gnu packages version-control) #:use-module (gnu packages xml)) (define-public autofs @@ -182,6 +183,79 @@ another location, similar to @command{mount --bind}. It can be used for: @end itemize ") (license license:gpl2+))) +(define-public davfs2 + (package + (name "davfs2") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://download.savannah.nongnu.org/releases/" + "davfs2/davfs2-" version ".tar.gz")) + (sha256 + (base32 "0l1vnv5lfigciwg17p10zxwhzj4qw2d9kw30prr7g4dxhmb6fsrf")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--sysconfdir=/etc" ; so man pages & binaries contain /etc + (string-append "--docdir=" (assoc-ref %outputs "out") + "/share/doc/" ,name "-" ,version) + (string-append "ssbindir=" (assoc-ref %outputs "out") "/sbin") + ;; The default ‘davfs2’ user and group don't exist on most systems. + "dav_user=nobody" + "dav_group=nogroup") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'omit-redundancy + ;; Don't install redundant copies of /etc examples into /share. + (lambda _ + (substitute* "etc/Makefile.in" + (("(dist_pkgdata_DATA =.*) davfs2.conf secrets(.*)" + _ prefix suffix) + (string-append prefix suffix))) + #t)) + (add-after 'unpack 'patch-file-names + (lambda _ + ;; Don't auto-load the FUSE kernel module. That's up to root. + ;; XXX If/when we restore the previous behaviour, make sure not + ;; to introduce a security hole when mount.davfs is setuid. + (substitute* "src/kernel_interface.c" + (("/sbin/modprobe") "/modprobe/disabled")) + #t)) + (replace 'install + (lambda* (#:key make-flags outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (apply invoke "make" "install" + (string-append "pkgsysconfdir=" out "/etc") + make-flags))))))) + (inputs + `(("neon" ,neon) + + ;; Neon requires but doesn't propagate zlib, nor would we want that. + ;; XZ as well, but that's already present in the build environment. + ("zlib" ,zlib))) + (home-page "https://savannah.nongnu.org/projects/davfs2") + (synopsis "Mount remote WebDAV resources in the local file system") + (description + "The @acronym{WebDAV, Web Distributed Authoring and Versioning} extension +to the HTTP protocol defines a standard way to author resources on a remote Web +server. Davfs2 exposes such resources as a typical filesystem which can be used +by standard applications with no built-in support for WebDAV, such as the GNU +coreutils (@command{cp}, @command{mv}, etc.) or a graphical word processor. + +Davfs2 works with most WebDAV servers with no or little configuration. It +supports TLS (HTTPS), HTTP proxies, HTTP basic and digest authentication, and +client certificates. It performs extensive caching to avoid unnecessary network +traffic, stay responsive even over slow or unreliable connections, and prevent +data loss. It aims to make use by unprivileged users as easy and secure as +possible. + +However, davfs2 is not a full-featured WebDAV client. The file system interface +and the WebDAV protocol are quite different. Translating between the two is not +always possible.") + (license (list license:bsd-2 ; src/fuse_kernel.h + license:gpl3+)))) ; everything else + (define-public fsarchiver (package (name "fsarchiver") @@ -254,8 +328,8 @@ from a mounted file system.") (license license:gpl2+))) (define-public bcachefs-tools - (let ((commit "ab2f1ec24f5307b0cf1e3c4ad19bf350d9f54d9f") - (revision "0")) + (let ((commit "742dbbdbb90efb786f05a8576917fcd0e9cbd57e") + (revision "1")) (package (name "bcachefs-tools") (version (git-version "0.1" revision commit)) @@ -267,7 +341,7 @@ from a mounted file system.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "10pafvaxg1lvwnqjv3a4rsi96bghbpcsgh3vhqilndi334k3b0hd")))) + (base32 "0kn8y3kqylz6scv47mzfmwrlh21kbb14z5vs65vks8w50i26sxnc")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -287,7 +361,8 @@ from a mounted file system.") ("python-pytest" ,python-pytest) ("valgrind" ,valgrind))) (inputs - `(("keyutils" ,keyutils) + `(("eudev" ,eudev) + ("keyutils" ,keyutils) ("libaio" ,libaio) ("libscrypt" ,libscrypt) ("libsodium" ,libsodium) @@ -698,7 +773,7 @@ APFS.") (define-public zfs (package (name "zfs") - (version "0.8.2") + (version "0.8.5") (outputs '("out" "module" "src")) (source (origin @@ -707,8 +782,7 @@ APFS.") "/download/zfs-" version "/zfs-" version ".tar.gz")) (sha256 - (base32 - "1f7aig15q3z832pr2n48j3clafic2yk1vvqlh28vpklfghjqwq27")))) + (base32 "0gfdnynmsxbhi97q73smrgmcw1k8zmlr1hgljfn38sk0kimivd6v")))) (build-system linux-module-build-system) (arguments `(;; The ZFS kernel module should not be downloaded since the license @@ -722,8 +796,7 @@ APFS.") (lambda* (#:key outputs inputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (substitute* "configure" - (("-/bin/sh") (string-append "-" (which "sh"))) - ((" /bin/sh") (string-append " " (which "sh")))) + (("-/bin/sh") (string-append "-" (which "sh")))) (invoke "./configure" "--with-config=all" (string-append "--prefix=" out) @@ -739,6 +812,9 @@ APFS.") (src (assoc-ref outputs "src")) (util-linux (assoc-ref inputs "util-linux")) (nfs-utils (assoc-ref inputs "nfs-utils"))) + (substitute* "contrib/Makefile.in" + ;; This is not configurable nor is its hard-coded /usr prefix. + ((" initramfs") "")) (substitute* "module/zfs/zfs_ctldir.c" (("/usr/bin/env\", \"umount") (string-append util-linux "/bin/umount\", \"-n")) @@ -782,7 +858,6 @@ APFS.") "INSTALL_MOD_STRIP=1") (install-file "contrib/bash_completion.d/zfs" (string-append out "/share/bash-completion/completions")) - (symlink "../share/pkgconfig/" (string-append out "/lib/pkgconfig")) #t)))))) (native-inputs `(("attr" ,attr) |