Subject: [PATCH] gnu: Add cramfs-tools.

From: Vincent Legoll <[email-masked]>
Date: Thu, 26 Mar 2020 23:34:03 +0100

This patch adds the updated cramfs-tools
suite from Nicolas Pitre.

This version has additional features
implemented over the 1.1 version still
packaged in some other distros, which
is unmaintained (available on
https://sourceforge.net/projects/cramfs/)

It handles uncompressed blocks, random
block placement and XiP.

Lightly tested, by loop-mounting a tiny (4kB)
cramfs in a file, worked fine.

-- 
Vincent Legoll
From ff79a4b2d798bba222ac502a7aa1f7ef0a97e249 Mon Sep 17 00:00:00 2001
From: Vincent Legoll <[email-masked]>
Date: Thu, 26 Mar 2020 23:12:53 +0100
Subject: [PATCH] gnu: Add cramfs-tools.

* gnu/packages/linux.scm (cramfs-tools): New variable.
---
 gnu/packages/linux.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 8fec3352f3..6ab08e18f4 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -4371,6 +4371,40 @@ repair and easy administration.")
 from the btrfs-progs package.  It is meant to be used in initrds.")
     (license (package-license btrfs-progs))))
 
+(define-public cramfs-tools
+  (package
+    (name "cramfs-tools")
+    (version "2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/npitre/cramfs-tools/archive/v"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "1hqwy3bsj4j7wmhj3hr4l9c1gqrscpgprcsnchxhckq3mpna9dyd"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f                      ; No tests.
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (install-file "mkcramfs" (string-append out "/sbin"))
+               (install-file "cramfsck" (string-append out "/sbin")))
+             #t)))))
+    (inputs
+     `(("zlib" ,zlib)))
+    (home-page "https://github.com/npitre/cramfs-tools")
+    (synopsis "Tools to manage Cramfs filesystems")
+    (description "Cramfs is a Linux filesystem designed to be simple, small,
+and to compress things well.  It is used on a number of embedded systems and
+small devices.  This version has additional features such as uncompressed
+blocks and random block placement.")
+    (license license:gpl2)))
+
 (define-public compsize
   (package
     (name "compsize")
-- 
2.25.2