diff mbox series

[bug#40246] gnu: Add cramfs-tools.

Message ID CAEwRq=r09qqcCfgC=CpMJZ4g3JztS8SkDieSHMPpMjpOH39QyA@mail.gmail.com
State Accepted
Headers show
Series [bug#40246] gnu: Add cramfs-tools. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch fail View Laminar job

Commit Message

Vincent Legoll March 26, 2020, 10:34 p.m. UTC
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.

Comments

Vincent Legoll March 26, 2020, 11:22 p.m. UTC | #1
This was obsoleted, but then resurrected later...

From wikikpedia
[...]
In 2013, Linux maintainers indicated that cramfs was made obsolete by
squashfs,[1] but the file system got rehabilitated in 2017 for use in
low-memory devices where using squashfs may not be viable.
[...]

And also the guix kernel has support for it...
So why not ?
Ludovic Courtès April 1, 2020, 9:22 p.m. UTC | #2
Hi Vincent,

Vincent Legoll <vincent.legoll@gmail.com> skribis:

> From ff79a4b2d798bba222ac502a7aa1f7ef0a97e249 Mon Sep 17 00:00:00 2001
> From: Vincent Legoll <vincent.legoll@gmail.com>
> Date: Thu, 26 Mar 2020 23:12:53 +0100
> Subject: [PATCH] gnu: Add cramfs-tools.
>
> * gnu/packages/linux.scm (cramfs-tools): New variable.

[...]

> +    (name "cramfs-tools")
> +    (version "2.1")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append
> +                    "https://github.com/npitre/cramfs-tools/archive/v"

As reported by ‘guix lint’, please don’t refer to a generated tarball.

Instead you can use a hosted “hand-crafted” tarball if there’s one or,
more likely, ‘git-fetch’.

> +    (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.")

Could you write “file systems” (two words)?  This is by convention in
GNU and Guix.

Thanks in advance!

Ludo’.
diff mbox series

Patch

From ff79a4b2d798bba222ac502a7aa1f7ef0a97e249 Mon Sep 17 00:00:00 2001
From: Vincent Legoll <vincent.legoll@gmail.com>
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