Subject: bug#42223: 26.1; squashfs-mode (like tar-mode or zip-mode)

From: [email-masked] (Trent W. Buck)
Date: Mon, 06 Jul 2020 12:08:05 +1000

squashfs is sort of a cross between .iso and .tgz:

    tar c my-docs | tar2sq my-docs.squashfs   # make archive
    gensquashfs -D my-docs my-docs.squashfs   # make archive
    sudo mount my-docs.squashfs /mnt          # mount it (like iso)
    rdsquashfs -u my-docs2 my-docs.squashfs   # extract all (like tar)
    rdsquashfs --list / my-docs.squashfs      # list all (like tar)
    rdsquashfs --cat foo.txt my-docs.squashfs # read one file

I've used squashfs instead of iso/tar/zip for about 15 years now.

Emacs has "good enough" unzip and tar modes -- I click on foo.odt,
see the file list, click on a file, and see the file contents.

Please can I have that for squashfs as well?

This basically means providing a dired-like wrapper for
"rdsquashfs --list" and "rdsquashfs --cat".

Additional notes:

  * Buffers should be read-only-mode by default.
    (Squashfs format has limited append support, but
    it's essentially a read-only format.)

  * There are two major implementations.
    I have given examples in squashfs-tools-ng format, because
    that is more amenable to scripting.

      https://github.com/AgentD/squashfs-tools-ng
      https://github.com/plougher/squashfs-tools

  * squashfs files are often very big (~2GB), so
    reading the whole thing into RAM like tar-mode does is a Bad Idea.