From cd328a7315d75ab167be4e238e0ac3c78fb86cee Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 20 Jan 2020 02:23:59 +0100 Subject: gnu: Add bcachefs-tools. * gnu/packages/file-systems.scm (bcachefs-tools): New public variable. --- gnu/packages/file-systems.scm | 61 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index a3dc993055..d7a0d6dbac 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2017 Gábor Boskovits ;;; Copyright © 2017, 2018 Ricardo Wurmus ;;; Copyright © 2018 Leo Famulari @@ -37,6 +37,7 @@ #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages datastructures) #:use-module (gnu packages documentation) @@ -52,8 +53,66 @@ #:use-module (gnu packages readline) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) + #:use-module (gnu packages valgrind) #:use-module (gnu packages xml)) +(define-public bcachefs-tools + (let ((commit "ab2f1ec24f5307b0cf1e3c4ad19bf350d9f54d9f") + (revision "0")) + (package + (name "bcachefs-tools") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://evilpiepirate.org/git/bcachefs-tools.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10pafvaxg1lvwnqjv3a4rsi96bghbpcsgh3vhqilndi334k3b0hd")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags + (list (string-append "PREFIX=" (assoc-ref %outputs "out")) + "INITRAMFS_DIR=$(PREFIX)/share/initramfs-tools" + "CC=gcc" + "PYTEST=pytest") + #:phases + (modify-phases %standard-phases + (delete 'configure)) ; no configure script + #:tests? #f)) ; XXX 6 valgrind tests fail + (native-inputs + `(("pkg-config" ,pkg-config) + + ;; For tests. + ("python-pytest" ,python-pytest) + ("valgrind" ,valgrind))) + (inputs + `(("keyutils" ,keyutils) + ("libaio" ,libaio) + ("libscrypt" ,libscrypt) + ("libsodium" ,libsodium) + ("liburcu" ,liburcu) + ("util-linux" ,util-linux) ; lib{blkid,uuid} + ("lz4" ,lz4) + ("zlib" ,zlib) + ("zstd:lib" ,zstd "lib"))) + (home-page "https://bcachefs.org/") + (synopsis "Tools to create and manage bcachefs file systems") + (description + "The bcachefs-tools are command-line utilites for creating, checking, +and otherwise managing bcachefs file systems. + +Bcachefs is a @acronym{CoW, copy-on-write} file system supporting native +encryption, compression, snapshots, and (meta)data checksums. It can use +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+)))) + (define-public httpfs2 (package (name "httpfs2") -- cgit v1.2.3