From ca31aeea6cfe06b9e9f6476347564affe1596447 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Wed, 31 Jul 2019 17:20:02 +0200 Subject: Overhaul README and convert it to markdown Signed-off-by: David Oberhollenzer --- README | 84 ------------------------------------------------------------------ 1 file changed, 84 deletions(-) delete mode 100644 README (limited to 'README') diff --git a/README b/README deleted file mode 100644 index 4c2bff3..0000000 --- a/README +++ /dev/null @@ -1,84 +0,0 @@ - - About - ***** - -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). - -As the name suggests, this is not the original user space tooling for -SquashFS, which are currently maintained in parallel elsewhere. After a -long period of silence on the SourceForge site and mailing list, I -attempted to fork the existing code base with the intention to -restructure/clean it up and add many features I personally perceived to -be missing, but I ultimately decided that it would be easier to start -from scratch than to work with the existing code. - -Here are some of the features that primarily distinguish this package from -the (at the time of writing recent) squashfs-tools 4.3: - - - Reproducible SquashFS images, i.e. deterministic packing without - any local time stamps. - - Linux `gen_init_cpio` like file listing for micro managing the - file system contents, permissions, and ownership without having to replicate - the file system (and especially permissions) locally. - - Support for SELinux contexts file (see selabel_file(5)) to generate - SELinux labels. - - Structured and (hopefully) more readable source code that should be better - maintainable in the long run. - - -In addition to that, tools have been added to directly convert a tar archive -into a SquashFS filesystem image and back. This allows for using existing -tools can work on tar archives seamlessly on SquashFS images. - - -The tools in this package have different names, so they can be installed -together with the existing tools: - - - `gensquashfs` can be used to produce SquashFS images from `gen_init_cpio` - like file listings or simply pack an input directory. - - `rdsquashfs` can be used to inspect and unpack SquashFS images. - - `sqfs2tar` can turn a SquashFS image into a tar ball, written to stdout. - - `tar2sqfs` can turn a tar ball (read from stdin) into a SquashFS image. - - Future plans - ************ - -In addition to the above, the following things would be really nice to -have eventually: - - - A tool for merging multiple images into one - - A tool for splitting an image - - A diff tool - - Diff of the directory tree of two images - - Diff of the file meta data in two images - - File level diffs - - Combinations of the above in a still human readable form - - [IN PROGRESS] A *complete* specification of the on-disk format and all the - arbitrary checks enforced by the kernel. - - Patching kernel and user space to support SquashFS on top of UBI - - Patching kernel and user space to support ACLs - - Copyright & License - ******************* - -The source code in this package has been written by me, David Oberhollenzer, -in 2019 and is released under the terms and conditions of the GNU General -Public License version 3 or later. - -To the best of my knowledge, no code has been copied over from the original -SquashFS tools. The kernel documentation, the kernel headers and this web site -have been used as main sources for understanding SquashFS: - - https://dr-emann.github.io/squashfs/ - -Some additional information (such as xattr implementation) has been gathered -from various mailing lists and other web sources. - -Compressor implementations are primarily based on the documentation of the -compression libraries. - -The existing unsquashfs tool and kernel implementation were used for trial and -error testing during development. -- cgit v1.2.3