diff options
Diffstat (limited to 'gnu/packages/file-systems.scm')
-rw-r--r-- | gnu/packages/file-systems.scm | 98 |
1 files changed, 87 insertions, 11 deletions
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index bc147bf3c6..2c5ad95d63 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org> ;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com> +;;; Copyright © 2021 raid5atemyhoemwork <raid5atemyhomework@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,6 +39,7 @@ #:use-module (gnu packages acl) #:use-module (gnu packages attr) #:use-module (gnu packages autotools) + #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages compression) @@ -48,6 +50,7 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages docbook) #:use-module (gnu packages flex) + #:use-module (gnu packages gawk) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) #:use-module (gnu packages kerberos) @@ -328,8 +331,8 @@ from a mounted file system.") (license license:gpl2+))) (define-public bcachefs-tools - (let ((commit "742dbbdbb90efb786f05a8576917fcd0e9cbd57e") - (revision "1")) + (let ((commit "db931a4571817d7d61be6bce306f1d42f7cd3398") + (revision "2")) (package (name "bcachefs-tools") (version (git-version "0.1" revision commit)) @@ -341,7 +344,7 @@ from a mounted file system.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0kn8y3kqylz6scv47mzfmwrlh21kbb14z5vs65vks8w50i26sxnc")))) + (base32 "1zl8lda6ni6rhsmsng6smrcjihy2irjf03h1m7nvkqmkhq44j80s")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -352,7 +355,24 @@ from a mounted file system.") "PYTEST=pytest") #:phases (modify-phases %standard-phases - (delete 'configure)) ; no configure script + (delete 'configure) ; no configure script + (add-after 'install 'promote-mount.bcachefs.sh + ;; XXX The (optional) mount.bcachefs helper requires rust:cargo. + ;; This alternative shell script does the job well enough for now. + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (with-directory-excursion (string-append out "/sbin") + (rename-file "mount.bcachefs.sh" "mount.bcachefs") + ;; WRAP-SCRIPT causes bogus ‘Insufficient arguments’ errors. + (wrap-program "mount.bcachefs" + `("PATH" ":" prefix + ,(cons (string-append out "/sbin") + (map (lambda (input) + (string-append (assoc-ref inputs input) + "/bin")) + (list "coreutils" + "gawk" + "util-linux")))))))))) #:tests? #f)) ; XXX 6 valgrind tests fail (native-inputs `(("pkg-config" ,pkg-config) @@ -367,10 +387,15 @@ from a mounted file system.") ("libscrypt" ,libscrypt) ("libsodium" ,libsodium) ("liburcu" ,liburcu) - ("util-linux" ,util-linux "lib") ; lib{blkid,uuid} + ("util-linux:lib" ,util-linux "lib") ; lib{blkid,uuid} ("lz4" ,lz4) ("zlib" ,zlib) - ("zstd:lib" ,zstd "lib"))) + ("zstd:lib" ,zstd "lib") + + ;; Only for mount.bcachefs.sh. + ("coreutils" ,coreutils-minimal) + ("gawk" ,gawk) + ("util-linux" ,util-linux))) (home-page "https://bcachefs.org/") (synopsis "Tools to create and manage bcachefs file systems") (description @@ -386,6 +411,55 @@ caching system, and lets you assign different roles to each device based on its performance and other characteristics.") (license license:gpl2+)))) +(define-public bcachefs-tools/static + (package + (inherit bcachefs-tools) + (name "bcachefs-tools-static") + (arguments + (substitute-keyword-arguments (package-arguments bcachefs-tools) + ((#:make-flags make-flags) + `(append ,make-flags + (list "LDFLAGS=-static"))))) + (inputs + `(("eudev:static" ,eudev "static") + ("libscrypt:static" ,libscrypt "static") + ("lz4:static" ,lz4 "static") + ("util-linux:static" ,util-linux "static") ; lib{blkid,uuid} + ("zlib" ,zlib "static") + ("zstd:static" ,zstd "static") + ,@(package-inputs bcachefs-tools))))) + +(define-public bcachefs/static + (package + (name "bcachefs-static") + (version (package-version bcachefs-tools)) + (build-system trivial-build-system) + (source #f) + (inputs + `(("bcachefs-tools" ,bcachefs-tools/static))) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 ftw) + (srfi srfi-26)) + (let* ((bcachefs-tools (assoc-ref %build-inputs "bcachefs-tools")) + (out (assoc-ref %outputs "out"))) + (mkdir-p out) + (with-directory-excursion out + (install-file (string-append bcachefs-tools + "/sbin/bcachefs") + "sbin") + (remove-store-references "sbin/bcachefs") + (invoke "sbin/bcachefs" "version") ; test suite + #t))))) + (home-page (package-home-page bcachefs-tools)) + (synopsis "Statically-linked bcachefs command from bcachefs-tools") + (description "This package provides the statically-linked @command{bcachefs} +from the bcachefs-tools package. It is meant to be used in initrds.") + (license (package-license bcachefs-tools)))) + (define-public exfatprogs (package (name "exfatprogs") @@ -871,7 +945,8 @@ APFS.") ("openssl" ,openssl) ("python" ,python) ("python-cffi" ,python-cffi) - ("util-linux" ,util-linux "lib") + ("util-linux" ,util-linux) + ("util-linux:lib" ,util-linux "lib") ("zlib" ,zlib))) (home-page "https://zfsonlinux.org/") (synopsis "Native ZFS on Linux") @@ -982,14 +1057,14 @@ compatible directories.") (define-public python-dropbox (package (name "python-dropbox") - (version "10.3.1") + (version "11.0.0") (source (origin (method url-fetch) (uri (pypi-uri "dropbox" version)) (sha256 (base32 - "137rn9fs1bg1p1khd5lcccfxh8jsx27dh2ix5wwd8cmddbrzdrbd")))) + "0r64jxm5m4a1sln2la3av0103filb0plqja1nnyibqvk9qrqs5jf")))) (build-system python-build-system) (arguments '(#:tests? #f)) ; Tests require a network connection. (native-inputs @@ -1000,6 +1075,7 @@ compatible directories.") ("python-chardet" ,python-chardet) ("python-requests" ,python-requests) ("python-six" ,python-six) + ("python-stone" ,python-stone) ("python-urllib3" ,python-urllib3))) (home-page "https://www.dropbox.com/developers") (synopsis "Official Dropbox API Client") @@ -1010,14 +1086,14 @@ Dropbox API v2.") (define-public dbxfs (package (name "dbxfs") - (version "1.0.43") + (version "1.0.48") (source (origin (method url-fetch) (uri (pypi-uri "dbxfs" version)) (sha256 (base32 - "1f9sy2ax215dxiwszrrcadffjdsmrlxm4kwrbiap9dhxvzm226ks")) + "07q7dgqaqqyapjl9r4lqydflrgx4dh84c1qsb0jvfmqj3i8887ak")) (patches (search-patches "dbxfs-remove-sentry-sdk.patch")))) (build-system python-build-system) (arguments |