summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2020-01-20 02:23:59 +0100
committerTobias Geerinckx-Rice <me@tobias.gr>2020-01-28 17:22:05 +0100
commitcd328a7315d75ab167be4e238e0ac3c78fb86cee (patch)
tree55de856f6a4e19f9a212ac67e78870ed100abeb4
parent87146f31167953fb3d3c9eb69d70baa0c42aa6e1 (diff)
downloadpatches-cd328a7315d75ab167be4e238e0ac3c78fb86cee.tar
patches-cd328a7315d75ab167be4e238e0ac3c78fb86cee.tar.gz
gnu: Add bcachefs-tools.
* gnu/packages/file-systems.scm (bcachefs-tools): New public variable.
-rw-r--r--gnu/packages/file-systems.scm61
1 files changed, 60 insertions, 1 deletions
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 <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
@@ -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")