aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/file-systems.scm163
1 files changed, 84 insertions, 79 deletions
diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm
index f362a2d143..215c1d338b 100644
--- a/gnu/packages/file-systems.scm
+++ b/gnu/packages/file-systems.scm
@@ -575,84 +575,89 @@ from a mounted file system.")
(license license:gpl2+)))
(define-public bcachefs-tools
- (package
- (name "bcachefs-tools")
- (version "1.2")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://evilpiepirate.org/git/bcachefs-tools.git")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0wgqclkkdkqis3aq6wp0kcn1bsynybm3dnpcf7vlcvx85kdmcxg8"))))
- (build-system gnu-build-system)
- (arguments
- (list #:make-flags
- #~(list (string-append "VERSION=" #$version) ; ‘v…-nogit’ otherwise
- (string-append "PREFIX=" #$output)
- "INITRAMFS_DIR=$(PREFIX)/share/initramfs-tools"
- (string-append "CC=" #$(cc-for-target))
- (string-append "PKG_CONFIG=" #$(pkg-config-for-target))
- ;; ‘This will be less of an option in the future, as more
- ;; code gets rewritten in Rust.’
- "NO_RUST=better")
- #:phases
- #~(modify-phases %standard-phases
- (delete 'configure) ; no configure script
- (replace 'check
- ;; The test suite is moribund upstream (‘never been useful’),
- ;; but let's keep running it as a sanity check until then.
- (lambda* (#:key tests? make-flags #:allow-other-keys)
- (when tests?
- ;; We must manually build the test_helper first.
- (apply invoke "make" "tests" make-flags)
- (invoke (string-append
- #$(this-package-native-input "python-pytest")
- "/bin/pytest") "-k"
- ;; These fail (‘invalid argument’) on kernels
- ;; with a previous bcachefs version.
- (string-append "not test_format and "
- "not test_fsck and "
- "not test_list and "
- "not test_list_inodes and "
- "not test_list_dirent")))))
- (add-after 'install 'patch-shell-wrappers
- ;; These are overcomplicated wrappers that invoke readlink(1)
- ;; to exec the appropriate bcachefs(8) subcommand. We can
- ;; simply patch in the latter file name directly, and do.
- (lambda _
- (let ((sbin/ (string-append #$output "/sbin/")))
- (substitute* (find-files sbin/ (lambda (file stat)
- (not (elf-file? file))))
- (("SDIR=.*") "")
- (("\\$\\{SDIR.*}/") sbin/))))))))
- (native-inputs
- (cons* pkg-config
- ;; For generating documentation with rst2man.
- python
- python-docutils
- ;; For tests.
- python-pytest
- (if (member (%current-system) (package-supported-systems valgrind))
- (list valgrind)
- '())))
- (inputs
- (list eudev
- keyutils
- libaio
- libscrypt
- libsodium
- liburcu
- `(,util-linux "lib")
- lz4
- zlib
- `(,zstd "lib")))
- (home-page "https://bcachefs.org/")
- (synopsis "Tools to create and manage bcachefs file systems")
- (description
- "The bcachefs-tools are command-line utilities for creating, checking,
+ (package
+ (name "bcachefs-tools")
+ (version "1.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://evilpiepirate.org/git/bcachefs-tools.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0wgqclkkdkqis3aq6wp0kcn1bsynybm3dnpcf7vlcvx85kdmcxg8"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:make-flags #~(list (string-append "VERSION="
+ #$version) ;‘v…-nogit’ otherwise
+ (string-append "PREFIX="
+ #$output)
+ "INITRAMFS_DIR=$(PREFIX)/share/initramfs-tools"
+ (string-append "CC="
+ #$(cc-for-target))
+ (string-append "PKG_CONFIG="
+ #$(pkg-config-for-target))
+ ;; ‘This will be less of an option in the future, as more
+ ;; code gets rewritten in Rust.’
+ "NO_RUST=better")
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure) ;no configure script
+ (replace 'check
+ ;; The test suite is moribund upstream (‘never been
+ ;; useful’), but let's keep running it as a sanity
+ ;; check until then.
+ (lambda* (#:key tests? make-flags #:allow-other-keys)
+ (when tests?
+ ;; We must manually build the test_helper first.
+ (apply invoke "make" "tests" make-flags)
+ (invoke (string-append #$(this-package-native-input
+ "python-pytest")
+ "/bin/pytest") "-k"
+ ;; These fail (‘invalid argument’) on kernels
+ ;; with a previous bcachefs version.
+ (string-append "not test_format and "
+ "not test_fsck and "
+ "not test_list and "
+ "not test_list_inodes and "
+ "not test_list_dirent")))))
+ (add-after 'install 'patch-shell-wrappers
+ ;; These are overcomplicated wrappers that invoke readlink(1)
+ ;; to exec the appropriate bcachefs(8) subcommand. We can
+ ;; simply patch in the latter file name directly, and do.
+ (lambda _
+ (let ((sbin/ (string-append #$output "/sbin/")))
+ (substitute* (find-files sbin/
+ (lambda (file stat)
+ (not (elf-file? file))))
+ (("SDIR=.*")
+ "")
+ (("\\$\\{SDIR.*}/")
+ sbin/))))))))
+ (native-inputs (cons* pkg-config
+ ;; For generating documentation with rst2man.
+ python
+ python-docutils
+ ;; For tests.
+ python-pytest
+ (if (member (%current-system)
+ (package-supported-systems valgrind))
+ (list valgrind)
+ '())))
+ (inputs (list eudev
+ keyutils
+ libaio
+ libscrypt
+ libsodium
+ liburcu
+ `(,util-linux "lib")
+ lz4
+ zlib
+ `(,zstd "lib")))
+ (home-page "https://bcachefs.org/")
+ (synopsis "Tools to create and manage bcachefs file systems")
+ (description
+ "The bcachefs-tools are command-line utilities for creating, checking,
and otherwise managing bcachefs file systems.
Bcachefs is a @acronym{CoW, copy-on-write} file system supporting native
@@ -662,7 +667,7 @@ multiple block devices for replication and/or performance, similar to RAID.
In addition, bcachefs provides all the functionality of bcache, a block-layer
caching system, and lets you assign different roles to each device based on its
performance and other characteristics.")
- (license license:gpl2+)))
+ (license license:gpl2+)))
(define-public bcachefs-tools/static
(package