Subject: [bug#31592] [PATCH 4/4] pack: Add support for squashfs images.

From: [email-masked] (Ludovic Courtès)
Date: Sun, 27 May 2018 14:57:45 +0200

Woohoo!

Ricardo Wurmus <[email-masked]> skribis:

> * guix/scripts/pack.scm (%formats): Add "squashfs" format.
> (guix-pack): Adjust "archiver" dependent on pack-format.
> (squashfs-image): New procedure.

[...]

> +          (exit
> +           (and
> +            ;; Add all store items.  Unfortunately mksquashfs throws away all
> +            ;; ancestor directories and only keeps the basename.  We fix this
> +            ;; in the following invocations of mksquashfs.
> +            (zero? (apply system* "mksquashfs"

This code should use ‘invoke’ everywhere, which would alleviate the need
for the clumsy (exit (and …)) idiom.

> +                   (reverse (filter (negate string-null?)
> +                                    (string-split (%store-directory) #\/))))

I think this is equivalent to:

  (reverse (string-tokenize (%store-directory)
                            (char-set-complement (char-set #\/))))

Alternately, you can use (remove …) instead of (filter (negate …) …).

:-)

One last thing: could you update guix.texi and the ‘--help’ output?

I suppose using the squashfs format allows us to bypass the bug
described at
<https://github.com/singularityware/singularity/issues/1487>, right?

Thanks a lot for working on this!

Ludo’.