X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/a485a98ca8296d760251e9d870583117ac50979e..59d97bb4598c7b513733b97fcc5185be33da531a:/gnu/packages/file-systems.scm diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index bc147bf3c6..af587f73fe 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -38,6 +38,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 +49,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 +330,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 +343,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 +354,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 +386,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 +410,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")