diff options
Diffstat (limited to 'bin')
-rw-r--r-- | bin/Makemodule.am | 4 | ||||
-rw-r--r-- | bin/gensquashfs/gensquashfs.1 | 201 | ||||
-rw-r--r-- | bin/rdsquashfs/rdsquashfs.1 | 99 | ||||
-rw-r--r-- | bin/sqfs2tar/sqfs2tar.1 | 93 | ||||
-rw-r--r-- | bin/sqfsdiff/sqfsdiff.1 | 72 | ||||
-rw-r--r-- | bin/tar2sqfs/tar2sqfs.1 | 154 |
6 files changed, 623 insertions, 0 deletions
diff --git a/bin/Makemodule.am b/bin/Makemodule.am index 2328d5c..298734d 100644 --- a/bin/Makemodule.am +++ b/bin/Makemodule.am @@ -41,4 +41,8 @@ if WITH_SELINUX gensquashfs_CPPFLAGS += -DWITH_SELINUX endif +dist_man1_MANS += bin/gensquashfs/gensquashfs.1 bin/rdsquashfs/rdsquashfs.1 +dist_man1_MANS += bin/sqfs2tar/sqfs2tar.1 bin/tar2sqfs/tar2sqfs.1 +dist_man1_MANS += bin/sqfsdiff/sqfsdiff.1 + bin_PROGRAMS += sqfs2tar tar2sqfs gensquashfs rdsquashfs sqfsdiff diff --git a/bin/gensquashfs/gensquashfs.1 b/bin/gensquashfs/gensquashfs.1 new file mode 100644 index 0000000..9ef4ee8 --- /dev/null +++ b/bin/gensquashfs/gensquashfs.1 @@ -0,0 +1,201 @@ +.TH GENSQUASHFS "1" "June 2019" "generate squashfs images" "User Commands" +.SH NAME +gensquashfs \- generate squashfs images +.SH SYNOPSIS +.B gensquashfs +[\fI\,OPTIONS\/\fR] <squashfs-file>\/\fR +.SH DESCRIPTION +Generate a SquashFS image. +.SH OPTIONS +.TP +\fB\-\-pack\-file\fR, \fB\-F\fR <file> +Use a \fBgen_init_cpio\fR style description file. The file format is specified +below. If \fB\-\-pack\-dir\fR is used, input file paths are relative to the +pack directory, otherwise they are relative to the directory the pack file +is in. +.TP +\fB\-\-pack\-dir\fR, \fB\-D\fR <directory> +If \fB\-\-pack\-file\fR is used, this is the root path relative to which to +read files. If no pack file is specified, pack the contents of the given +directory into a SquashFS image. The directory becomes the root of the file +system. +.TP +\fB\-\-compressor\fR, \fB\-c\fR <name> +Select the compressor to use. +Run \fBgensquashfs \-\-help\fR to get a list of all available compressors +and the default selection. +.TP +\fB\-\-comp\-extra\fR, \fB\-X\fR <options> +A comma separated list of extra options for the selected compressor. Specify +\fBhelp\fR to get a list of available options. +.TP +\fB\-\-num\-jobs\fR, \fB\-j\fR <count> +If libsquashfs was compiled with a built in thread pool based, parallel data +compressor, this option can be used to set the number of compressor +threads. If not set, the default is the number of available CPU cores. +.TP +\fB\-\-queue\-backlog\fR, \fB\-Q\fR <count> +Maximum number of data blocks in the thread worker queue before the packer +starts waiting for the block processors to catch up. Higher values result +in higher memory consumption. Defaults to 10 times the number of workers. +.TP +\fB\-\-block\-size\fR, \fB\-b\fR <size> +Block size to use for Squashfs image. +Defaults to 131072. +.TP +\fB\-\-dev\-block\-size\fR, \fB\-B\fR <size> +Device block size to padd the image to. +Defaults to 4096. +.TP +\fB\-\-keep\-time\fR, \fB\-k\fR +When using \fB\-\-pack\-dir\fR only, use the timestamps from the input files +instead of setting defaults on all input paths. The root inode and the +modification time on the SquashFS image itself will still be set to defaults. +.TP +\fB\-\-one\-file\-system\fR, \fB\-o\fR +When using \fB\-\-pack\-dir\fR only, stay in the local filesystem and do not +cross mount points. +.TP +\fB\-\-defaults\fR, \fB\-d\fR <options> +A comma separated list of default values for +implicitly created directories. +The following values can be set: +.TS +tab(;) allbox; +l l +l l +l l +l l +l l +rd. +\fBOption\fR;\fBDefault\fR +uid=<value>;0 +gid=<value>;0 +mode=<value>;0755 +mtime=<value>;\fB$SOURCE\_DATE\_EPOCH\fR if set, 0 otherwise +.TE +.TP +.TP +\fB\-\-set\-uid\fR, \fB\-u\fR <number> +Force the owners user ID for ALL inodes to this value, no matter what the pack +file or directory entries actually specify. +.TP +\fB\-\-set\-gid\fR, \fB\-g\fR <number> +Force the owners group ID for ALL inodes to this value, no matter what the pack +file or directory entries actually specify. +.TP +\fB\-\-all\-root\fR +A short hand for `\-\-set\-uid 0 \-\-set\-gid 0`. +.TP +\fB\-\-selinux\fR, \fB\-s\fR <file> +If built with SELinux support, use the given SELinux label file to add context +labels to the elements packed into the SquashFS image. +.TP +\fB\-\-exportable\fR, \fB\-e\fR +Generate an export table for NFS support. +.TP +\fB\-\-no\-tail\-packing\fR, \fB\-T\fR +Do not perform tail end packing on files that are larger than the specified +block size. +.TP +\fB\-\-force\fR, \fB\-f\fR +Overwrite the output file if it exists. +.TP +\fB\-\-quiet\fR, \fB\-q\fR +Do not print out progress reports. +.TP +\fB\-\-help\fR, \fB\-h\fR +Print help text and exit. +.TP +\fB\-\-version\fR, \fB\-V\fR +Print version information and exit. +.SH INPUT FILE FORMAT +The input file contains a simple, newline separated list that describe the +files to be included in the squashfs image: +.PP +.in +4n +.nf +# a comment +file <path> <mode> <uid> <gid> [<location>] +dir <path> <mode> <uid> <gid> +nod <path> <mode> <uid> <gid> <dev_type> <maj> <min> +slink <path> <mode> <uid> <gid> <target> +link <path> <dummy> <dummy> <dummy> <target> +pipe <path> <mode> <uid> <gid> +sock <path> <mode> <uid> <gid> +.fi +.in + +.TS +tab(;) allbox; +l l +l l +l l +l l +l l +l l +l l +l l +l l +rd. +<path>;T{ +Absolute path of the entry in the image. Can be put in quotes +if some components contain spaces. +T} +<location>;T{ +Optional location of the input file. Can be specified relative to either the +description file or the pack directory. If omitted, the image path is used +as a relative path. +T} +<target>;Symlink or hardlink target. +<mode>;Mode/permissions of the entry. +<uid>;Numeric user id. +<gid>;Numeric group id. +<dev_type>;Device type (b=block, c=character). +<maj>;Major number of a device special file. +<min>;Minor number of a device special file. +.TE + +.PP +Example: +.PP +.in +4n +.nf +# A simple squashfs image +dir /dev 0755 0 0 +nod /dev/console 0600 0 0 c 5 1 +dir /root 0700 0 0 +dir /sbin 0755 0 0 + +# Add a file. Input is relative to pack dir or listing path +file /sbin/init 0755 0 0 ../init/sbin/init + +# Read from ./bin/bash relative to pack dir or listing path +# /bin is created implicitly with default attributes. +file /bin/bash 0755 0 0 + +# file name with a space in it and a "special" name +file "/opt/my app/\\"special\\"/data" 0600 0 0 +.fi +.in +.SH ENVIRONMENT +If the command line switch \fB\-\-defaults\fR is not used or no default mtime +is specified, the value of the environment variable \fBSOURCE\_DATE\_EPOCH\fR +is used for all file and filesystem timestamps. + +If \fBSOURCE\_DATE\_EPOCH\fR is not set, not a parsable number or it is out of +range, the timestamps default to 0. + +Environment variables are only used if no explicit command line switches +are set. Explicit command line switches are always preferred over the +environment variables. +.SH SEE ALSO +rdsquashfs(1), tar2sqfs(1) +.SH AUTHOR +Written by David Oberhollenzer. +.SH COPYRIGHT +Copyright \(co 2019 David Oberhollenzer +License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. +.br +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. diff --git a/bin/rdsquashfs/rdsquashfs.1 b/bin/rdsquashfs/rdsquashfs.1 new file mode 100644 index 0000000..a5e1d77 --- /dev/null +++ b/bin/rdsquashfs/rdsquashfs.1 @@ -0,0 +1,99 @@ +.TH RDSQUASHFS "1" "May 2019" "inspect SquashFS filesystems" "User Commands" +.SH NAME +rdsquashfs \- tool to examine or uncompress SquashFS filesystems +.SH SYNOPSIS +.B rdsquashfs +[\fI\,OPTIONS\/\fR] \fI\,<squashfs-file>\/\fR +.SH DESCRIPTION +View or extract the contents of a squashfs image. +.PP +The following options can be used to specify what operation to perform. One +of those has to be present: +.TP +\fB\-\-list\fR, \fB\-l\fR <path> +Produce a directory listing similar to \fBls \-l\fR for a given path in +the SquashFS image. +.TP +\fB\-\-cat\fR, \fB\-c\fR <path> +If the specified path is a regular file in the image, extract it and dump +its contents to stdout. +.TP +\fB\-\-xattr\fR, \fB\-x\fR <path> +If the inode that the specified path resolves to has extended attributes, dump +them as key value pairs to stdout. +.TP +\fB\-\-unpack\-path\fR, \fB\-u\fR <path> +Unpack the specified sub directory from the image. To unpack everything, +simply specify /. +.TP +\fB\-\-describe\fR, \fB\-d\fR +Produce a file listing from the image compatible with the format consumed by +gensquashfs. +.PP +The following options can be used to control the behaviour of the specified +operation: +.TP +\fB\-\-unpack\-root\fR, \fB\-p\fR <path> +If used with \fB\-\-unpack\-path\fR, this is where the +data is unpacked to. If used with \fB\-\-describe\fR, this +is used as a prefix for the input path of +regular files. +.TP +\fB\-\-no\-dev\fR, \fB\-D\fR +Skip device special files when parsing the filesystem tree. +.TP +\fB\-\-no\-sock\fR, \fB\-S\fR +Skip socket files when parsing the filesystem tree. +.TP +\fB\-\-no\-fifo\fR, \fB\-F\fR +Skip named pipes when parsing the filesystem tree. +.TP +\fB\-\-no\-slink\fR, \fB\-L\fR +Skip symbolic links when parsing the filesystem tree. +.TP +\fB\-\-no\-empty\-dir\fR, \fB\-E\fR +Skip empty directories, including ones that are empty after applying +the above rules. +.PP +The following options are specific to unpacking files from a SquashFS image +to disk: +.TP +\fB\-\-no\-sparse\fR, \fB\-Z\fR +Do not create sparse files. Always unpack sparse files by +writing blocks of zeros to disk. +.TP +\fB\-\-set\-xattr\fR, \fB\-X\fR +Set the extended attributes from the SquashFS image. +.TP +\fB\-\-set\-times\fR, \fB\-T\fR +Set the create and modify timestamps of the file to the mtime +from the SquashFS image. +.TP +\fB\-\-chmod\fR, \fB\-C\fR +Change permission flags of unpacked files to +those stored in the SquashFS image. +.TP +\fB\-\-chown\fR, \fB\-O\fR +Change ownership of unpacked files to the +UID/GID set in the SquashFS image. +.TP +\fB\-\-quiet\fR, \fB\-q\fR +Do not print out progress while unpacking. +.PP +Other options: +.TP +\fB\-\-help\fR, \fB\-h\fR +Print help text and exit. +.TP +\fB\-\-version\fR, \fB\-V\fR +Print version information and exit. +.SH SEE ALSO +gensquashfs(1), sqfs2tar(1), sqfsdiff(1) +.SH AUTHOR +Written by David Oberhollenzer. +.SH COPYRIGHT +Copyright \(co 2019 David Oberhollenzer +License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. +.br +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. diff --git a/bin/sqfs2tar/sqfs2tar.1 b/bin/sqfs2tar/sqfs2tar.1 new file mode 100644 index 0000000..0fc69f6 --- /dev/null +++ b/bin/sqfs2tar/sqfs2tar.1 @@ -0,0 +1,93 @@ +.TH SQFS2TAR "1" "June 2019" "sqfs2tar" "User Commands" +.SH NAME +sqfs2tar \- turn a SquashFS image into a tar archive +.SH SYNOPSIS +.B sqfs2tar +[\fI\,OPTIONS\/\fR...] \fI\,<sqfsfile>\/\fR +.SH DESCRIPTION +Quickly and painlessly turn a SquashFS filesystem image into a tar archive +that can then be examined and processed by any tool that can work on tar +archives. The resulting archive is written to stdout. +.PP +Possible options: +.TP +\fB\-\-root\-becomes\fR, \fB\-r\fR <dir> +Prefix all paths in the tarball with the given directory name and add an +entry for this directory that receives all meta data (permissions, ownership, +extended attributes, et cetera) of the root inode. + +The special value \fB.\fR can be used since many tar archivers themselves pack +the attributes of the root directory that way and naturally support this. + +If this option is not used, all meta data from the root inode IS LOST! +.TP +\fB\-\-subdir\fR, \fB\-d\fR <dir> +Unpack the given sub directory instead of the filesystem root. Can be specified +more than once to select multiple directories. If only one is specified, it +becomes the new root of the archive filesystem tree. +.TP +\fB\-\-keep\-as\-dir\fR, \fB\-k\fR +If \fB\-\-subdir\fR is used only once, don't make the subdir the archive root, +instead keep it as prefix for all unpacked files. Using \fB\-\-subdir\fR more +than once implies \fB\-\-keep\-as\-dir\fR. +.TP +\fB\-\-no\-xattr\fR, \fB\-X\fR +Discard extended attributes from the SquashFS image. The default behavior is +to copy all xattrs attached to SquashFS inodes into the resulting tar archive. +.TP +\fB\-\-no\-hard\-links\fR, \fB\-L\fR +Normally, sqfs2tar runs hard link detection and generates hard links for +entries that refer to the same inode. If this flag is set, hard link +detection is not performed and duplicate data records are generated +instead. +.TP +\fB\-\-no\-skip\fR, \fB\-s\fR +Abort if a file cannot be stored in a tar archive. For instance, the tar format +does not support socket files, but SquashFS does. The default behaviour of +\fBsqfs2tar\fR is to emit a warning to stderr and skip the entry. If this flag +is set, processing is aborted and \fBsqfs2tar\fR exits with an error status. +.TP +\fB\-\-help\fR, \fB\-h\fR +Print help text and exit. +.TP +\fB\-\-version\fR, \fB\-V\fR +Print version information and exit. +.SH COMPATIBILITY +The output format is pre-POSIX ustar using GNU extensions where necessary. +Experimentation determined that this is most widely supported by activeley +used tar implementations (besides GNU tar), even more than the newer POSIX +format with PAX extensions. + +If any file or directory is encountered that cannot be converted, it is +skipped and a warning is written to stderr. Unless the \fB\-\-no\-skip\fR +option is set, which aborts processing if a file cannot be converted. + +This mainly affects socket files which are supported by SquashFS but not by +POSIX tar, GNU tar or PAX. + +Since the tar format contains a sequence of files with absolute names, it has +no direct concept of a tree or an unnamed root node. Consequently, meta data +from the SquashFS root inode is lost, unless the \fB\-\-root\-becomes\fR option +is used. +.SH EXAMPLES +Turn a SquashFS image into a tar archive: +.IP +sqfs2tar rootfs.sqfs > rootfs.tar +.TP +Turn a SquashFS image into a gzip'ed tar archive: +.IP +sqfs2tar rootfs.sqfs | gzip > rootfs.tar.gz +.TP +Turn a SquashFS image into an LZMA2 compressed tar archive: +.IP +sqfs2tar rootfs.sqfs | xz > rootfs.tar.xz +.SH SEE ALSO +rdsquashfs(1), tar2sqfs(1) +.SH AUTHOR +Written by David Oberhollenzer. +.SH COPYRIGHT +Copyright \(co 2019 David Oberhollenzer +License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. +.br +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. diff --git a/bin/sqfsdiff/sqfsdiff.1 b/bin/sqfsdiff/sqfsdiff.1 new file mode 100644 index 0000000..c0ee550 --- /dev/null +++ b/bin/sqfsdiff/sqfsdiff.1 @@ -0,0 +1,72 @@ +.TH SQFSDIFF "1" "August 2019" "sqfsdiff" "User Commands" +.SH NAME +sqfsdiff \- compare two squashfs images by contents and metadata +.SH SYNOPSIS +.B sqfsdiff +[\fI\,OPTIONS\/\fR...] \-\-old \fI\,<first>\fR \-\-new \fI\,<second>\/\fR +.SH DESCRIPTION +Compare two squashfs images. In contrast to doing a direct diff of the +images, this actually parses the filesystems and generates a more +meaningful difference report. +.PP +If only contents are compared, any differences in packed file layout, +ordering, compression, inode meta data and so on is ignored and the two +images are considered equal if each directory contains the same entries, +symlink with the same paths have the same targets, device nodes the same +device number and files the same size and contents. +.PP +A report of any difference is printed to stdout. The exit status is similar +that of diff(1): 0 means equal, 1 means different, 2 means problem. +.PP +Possible options: +.TP +\fB\-\-old\fR, \fB\-a\fR <first> +Specify the first filesystem image or source directory, relativ to which the +changes are evaluated. +.TP +\fB\-\-new\fR, \fB\-b\fR <second> +Specify the second filesystem image to source directory to compare to the +first one. +.TP +\fB\-\-no\-contents\fR, \fB\-C\fR +Do not compare file contents. +.TP +\fB\-\-no\-owner\fR, \fB\-O\fR +Do not compare file owners. +.TP +\fB\-\-no\-permissions\fR, \fB\-P\fR +Do not compare permission bits. +.TP +\fB\-\-timestamps\fR, \fB\-T\fR +Compare file timestamps. +.TP +\fB\-\-inode\-num\fR, \fB\-I\fR +Compare inode numbers of all files. +.TP +\fB\-\-super\fR, \fB\-S\fR +Also compare meta data in super blocks. +.TP +\fB\-\-extract\fR, \fB\-e\fR <path> +Extract files that exist in both images but have different contents to the +specified directory. Contents of the first image end up in a sub directory +named \fBold\fR and the contents of the second image in a sub directory +named \fBnew\fR. +.TP +\fB\-\-help\fR, \fB\-h\fR +Print help text and exit. +.TP +\fB\-\-version\fR, \fB\-V\fR +Print version information and exit. +.SH EXIT STATUS +The exit status is similar that of diff(1): 0 means equal, 1 means different, +2 means problem. +.SH SEE ALSO +rdsquashfs(1), sqfs2tar(1) +.SH AUTHOR +Written by David Oberhollenzer. +.SH COPYRIGHT +Copyright \(co 2019 David Oberhollenzer et al +License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. +.br +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. diff --git a/bin/tar2sqfs/tar2sqfs.1 b/bin/tar2sqfs/tar2sqfs.1 new file mode 100644 index 0000000..da344ec --- /dev/null +++ b/bin/tar2sqfs/tar2sqfs.1 @@ -0,0 +1,154 @@ +.TH TAR2SQFS "1" "June 2019" "tar2sqfs" "User Commands" +.SH NAME +tar2sqfs \- create a SquashFS image from a tar archive +.SH SYNOPSIS +.B tar2sqfs +[\fI\,OPTIONS\/\fR...] \fI\,<sqfsfile>\/\fR +.SH DESCRIPTION +Quickly and painlessly turn a tar ball into a SquashFS filesystem image. +.PP +Possible options: +.TP +\fB\-\-root\-becomes\fR, \fB\-r\fR <dir> +If set, only pack entries that are underneath the specified directory. The +prefix is stripped and the meta data for the directory itself is copied to the +root inode (i.e. the ownership, permissions, extended attributes, +modification time). + +If this option is not set, tar2sqfs implicitly treats \fB./\fR or absolute +paths this way, i.e. if the archive contains an entry for \fB./\fR, it becomes +the root node and the prefix is stripped from all paths (and similar for +absolute paths and \fB/\fR). +.TP +\fB\-\-compressor\fR, \fB\-c\fR <name> +Select the compressor to use. +Run \fBtar2sqfs \-\-help\fR to get a list of all available compressors +and the default selection. +.TP +\fB\-\-comp\-extra\fR, \fB\-X\fR <options> +A comma separated list of extra options for the selected compressor. Specify +\fBhelp\fR to get a list of available options. +.TP +\fB\-\-num\-jobs\fR, \fB\-j\fR <count> +If libsquashfs was compiled with a thread pool based, parallel data +compressor, this option can be used to set the number of compressor +threads. If not set, the default is the number of available CPU cores. +.TP +\fB\-\-queue\-backlog\fR, \fB\-Q\fR <count> +Maximum number of data blocks in the thread worker queue before the packer +starts waiting for the block processors to catch up. Higher values result +in higher memory consumption. Defaults to 10 times the number of workers. +.TP +\fB\-\-block\-size\fR, \fB\-b\fR <size> +Block size to use for SquashFS image. +Defaults to 131072. +.TP +\fB\-\-dev\-block\-size\fR, \fB\-B\fR <size> +Device block size to padd the image to. +Defaults to 4096. +.TP +\fB\-\-defaults\fR, \fB\-d\fR <options> +A comma separated list of default values for +implicitly created directories. +The following values can be set: +.TS +tab(;) allbox; +l l +l l +l l +l l +l l +rd. +\fBOption\fR;\fBDefault\fR +uid=<value>;0 +gid=<value>;0 +mode=<value>;0755 +mtime=<value>;\fB$SOURCE\_DATE\_EPOCH\fR if set, 0 otherwise +.TE +.TP +.TP +\fB\-\-no\-keep\-time\fR, \fB\-k\fR +Replace the time stamps from the tar archive with default time stamps for all +entries. + +The default behavior is to preserve the time stamps from the archive to the +extent possible (SquashFS has second resolution and 32 bit time stamps; tar can +use extensions to specify much larger timestamps with arbitrary precision). The +root inode (unless \fB\-\-root\-becomes\fR is used) and the modification time on +the SquashFS image itself will still be set to defaults. +.TP +\fB\-\-no\-xattr\fR, \fB\-x\fR +Do not copy extended attributes from archive. Default behaviour is to copy all +extended attributes and skip the ones that cannot be encoded in SquashFS. +.TP +\fB\-\-no\-skip\fR, \fB\-s\fR +Abort if a tar record cannot be read instead of skipping it. +.TP +\fB\-\-exportable\fR, \fB\-e\fR +Generate an export table for NFS support. +.TP +\fB\-\-no\-tail\-packing\fR, \fB\-T\fR +Do not perform tail end packing on files that are larger than the +specified block size. +.TP +\fB\-\-force\fR, \fB\-f\fR +Overwrite the output file if it exists. +.TP +\fB\-\-quiet\fR, \fB\-q\fR +Do not print out progress reports. +.TP +\fB\-\-help\fR, \fB\-h\fR +Print help text and exit. +.TP +\fB\-\-version\fR, \fB\-V\fR +Print version information and exit. +.SH COMPATIBILITY +Currently the program can process v7 format, pre-POSIX ustar, POSIX tar and GNU +tar archives. PAX extension headers are also supported. Global PAX headers are +ignored. + +The support for GNU tar is limited to commonly used subset (i.e. some legacy +extensions that GNU tar itself no longer generates are not supported; neither +are mutli volume archives). + +Extended attributes are supported through the SCHILY.xattr PAX extension +(favoured by GNU tar and star) or through the LIBARCHIVE.xattr PAX extension. + +If any unsupported section or extended attribute key is encountered in an +archive, a warning message is written to stderr. If the \fB\-\-no\-skip\fR +option is set, processing aborts. By default, unknown sections and unsupported +extended attributes are simply skipped after issuing a warning. +.SH ENVIRONMENT +If the command line switch \fB\-\-defaults\fR is not used or no default mtime +is specified, the value of the environment variable \fBSOURCE\_DATE\_EPOCH\fR +is used for all file and filesystem timestamps. + +If \fBSOURCE\_DATE\_EPOCH\fR is not set, not a parsable number or it is out of +range, the timestamps default to 0. + +Environment variables are only used if no explicit command line switches +are set. Explicit command line switches are always preferred over the +environment variables. +.SH EXAMPLES +.TP +Turn an uncompressed tar archive into a SquashFS image: +.IP +tar2sqfs rootfs.sqfs < rootfs.tar +.TP +Turn a gzip'ed tar archive into a SquashFS image: +.IP +zcat rootfs.tar.gz | tar2sqfs rootfs.sqfs +.TP +Turn an LZMA2 compressed tar archive into a SquashFS image: +.IP +xzcat rootfs.tar.xz | tar2sqfs rootfs.sqfs +.SH SEE ALSO +gensquashfs(1), rdsquashfs(1), sqfs2tar(1) +.SH AUTHOR +Written by David Oberhollenzer. +.SH COPYRIGHT +Copyright \(co 2019 David Oberhollenzer +License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. +.br +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. |