# SquashFS Tools NG SquashFS is a highly compressed, read only file system often used as a root fs on embedded devices, live systems or simply as a compressed archive format. Think of it as a .tar.gz that you can mount (or XZ, LZO, LZ4, ZSTD). This project originally started out as a fork of [squashfs-tools](https://github.com/plougher/squashfs-tools) 4.3, after encountering some short comings and realizing that there have been no updates on the SourceForge site or mailing list for _years_. Even before the first public release, the fork was replaced with a complete re-write after growing frustrated with the existing code base. For lack of a better name, and because the original appeared to be unmaintained at the time, the name squashfs-tools-ng was kept, although the published code base technically never had any connection to squashfs-tools. Maintenance of the original squashfs-tools has since resumed, squashfs-tools version 4.4 was released and continues to be maintained in parallel. The utilities provided by squashfs-tools-ng offer alternative tooling and are intentionally named differently, so both packages can be installed side by side. **The actual guts of squashfs-tools-ng are encapsulated in a library with a generic API** designed to make SquashFS available to other applications as an embeddable, extensible archive format (or to simply read, write or manipulate SquashFS file systems). The utility programs are largely command line wrappers around the library. The following tools are provided: - `gensquashfs` can be used to produce SquashFS images from `gen_init_cpio` like file listings or simply pack an input directory. Can use an SELinux contexts file (see selabel_file(5)) to generate SELinux labels. - `rdsquashfs` can be used to inspect and unpack SquashFS images. - `sqfs2tar` can turn a SquashFS image into a tarball, written to stdout. - `tar2sqfs` can turn a tarball (read from stdin) into a SquashFS image. - `sqfsdiff` can compare the contents of two SquashFS images. The library and the tools that produce SquashFS images are designed to operate deterministically. Same input will produce byte-for-byte identical output. Failure to do so is treated as a critical bug. ## Version history | Date | Release | | ---------- | ------------------------------------------------------------------------------------------------------- | | 2020-11-05 | [squashfs-tools-ng 1.0.3 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-1.0.3.tar.xz) | | 2020-09-03 | [squashfs-tools-ng 1.0.2 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-1.0.2.tar.xz) | | 2020-08-03 | [squashfs-tools-ng 1.0.1 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-1.0.1.tar.xz) | | 2020-06-13 | [squashfs-tools-ng 1.0.0 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-1.0.0.tar.xz) | | 2020-05-03 | [squashfs-tools-ng 0.9.1 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-0.9.1.tar.xz) | | 2020-03-30 | [squashfs-tools-ng 0.9.0 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-0.9.tar.xz) | | 2019-12-30 | [squashfs-tools-ng 0.8.0 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-0.8.tar.xz) | | 2019-10-08 | [squashfs-tools-ng 0.7.0 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-0.7.tar.xz) | | 2019-08-27 | [squashfs-tools-ng 0.6.1 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-0.6.1.tar.xz) | | 2019-08-22 | [squashfs-tools-ng 0.6.0 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-0.6.tar.xz) | | 2019-07-28 | [squashfs-tools-ng 0.5.0 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-0.5.tar.xz) | | 2019-07-17 | [squashfs-tools-ng 0.4.2 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-0.4.2.tar.xz) | | 2019-07-07 | [squashfs-tools-ng 0.4.1 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-0.4.1.tar.xz) | | 2019-07-04 | [squashfs-tools-ng 0.4.0 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-0.4.tar.xz) | | 2019-06-30 | [squashfs-tools-ng 0.3.0 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-0.3.tar.xz) | | 2019-06-13 | [squashfs-tools-ng 0.2.0 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-0.2.tar.xz) | | 2019-06-09 | [squashfs-tools-ng 0.1.0 is released](https://infraroot.at/pub/squashfs/squashfs-tools-ng-0.1.tar.xz) | ## Documentation The doxygen reference for the current release of libsquashfs is available here: [libsquashfs API reference](doxydoc/index.html). A writeup on the [SquashFS on-disk format](https://git.infraroot.at/squashfs-tools-ng.git/tree/doc/format.txt) is also available. Man pages are provided for the individual tools. ## Getting the Source Code [Release tar balls](https://infraroot.at/pub/squashfs/) are published in the pub directory. The Git tree is hosted on [git.infraroot.at](https://git.infraroot.at/squashfs-tools-ng.git/) as well as on [GitHub](https://github.com/AgentD/squashfs-tools-ng). Those two Git trees are kept in sync and issues & pull-requests on the GitHub pages are accepted. ## Installing A number of Linux distributions already offer squashfs-tools-ng through their package management system. Replogy maintains an up to date list: [![Packaging status](https://repology.org/badge/vertical-allrepos/squashfs-tools-ng.svg)](https://repology.org/project/squashfs-tools-ng/versions) Pre-compiled binary packages for Windows are available [here](https://infraroot.at/pub/squashfs/windows). Those packages contain the binaries for the tools, the SquashFS library and pre-compiled dependency libraries (zstd, lzo, lzma; others are built in). The binary package does not contain any source code. The corresponding source code from which the 3rd party libraries have been built is also available for download at the above location. The headers and import libraries to build applications that use libsquashfs are included. For convenience, the pre-compiled, 3rd party dependency libraries also come with headers and import libraries. ## Contact Besides the issue tracker on GitHub, you can reach me via e-mail as *goliath* on *infraroot.at*. There is currently no official mailing list. For the time being I'll use the existing [squashfs-tools mailing list](https://sourceforge.net/p/squashfs/mailman/) for announcments, until I'm booted off.