Adding upstream version 0.25.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
4f5d0de2b2
commit
8853aa3bf2
33 changed files with 317 additions and 280 deletions
23
doc/tarlz.1
23
doc/tarlz.1
|
@ -1,5 +1,5 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.2.
|
||||
.TH TARLZ "1" "September 2023" "tarlz 0.24" "User Commands"
|
||||
.TH TARLZ "1" "January 2024" "tarlz 0.25" "User Commands"
|
||||
.SH NAME
|
||||
tarlz \- creates tar archives with multimember lzip compression
|
||||
.SH SYNOPSIS
|
||||
|
@ -10,12 +10,12 @@ Tarlz is a massively parallel (multi\-threaded) combined implementation of
|
|||
the tar archiver and the lzip compressor. Tarlz uses the compression library
|
||||
lzlib.
|
||||
.PP
|
||||
Tarlz creates, lists, and extracts archives in a simplified and safer
|
||||
variant of the POSIX pax format compressed in lzip format, keeping the
|
||||
alignment between tar members and lzip members. The resulting multimember
|
||||
tar.lz archive is fully backward compatible with standard tar tools like GNU
|
||||
tar, which treat it like any other tar.lz archive. Tarlz can append files to
|
||||
the end of such compressed archives.
|
||||
Tarlz creates tar archives using a simplified and safer variant of the POSIX
|
||||
pax format compressed in lzip format, keeping the alignment between tar
|
||||
members and lzip members. The resulting multimember tar.lz archive is
|
||||
backward compatible with standard tar tools like GNU tar, which treat it
|
||||
like any other tar.lz archive. Tarlz can append files to the end of such
|
||||
compressed archives.
|
||||
.PP
|
||||
Keeping the alignment between tar members and lzip members has two
|
||||
advantages. It adds an indexed lzip layer on top of the tar archive, making
|
||||
|
@ -127,6 +127,9 @@ exclude files matching a shell pattern
|
|||
\fB\-\-ignore\-ids\fR
|
||||
ignore differences in owner and group IDs
|
||||
.TP
|
||||
\fB\-\-ignore\-metadata\fR
|
||||
compare only file size and file content
|
||||
.TP
|
||||
\fB\-\-ignore\-overflow\fR
|
||||
ignore mtime overflow differences on 32\-bit
|
||||
.TP
|
||||
|
@ -149,7 +152,7 @@ If no archive is specified, tarlz tries to read it from standard input or
|
|||
write it to standard output.
|
||||
.PP
|
||||
Exit status: 0 for a normal exit, 1 for environmental problems
|
||||
(file not found, files differ, invalid command line options, I/O errors,
|
||||
(file not found, files differ, invalid command\-line options, I/O errors,
|
||||
etc), 2 to indicate a corrupt or invalid input file, 3 for an internal
|
||||
consistency error (e.g., bug) which caused tarlz to panic.
|
||||
.SH "REPORTING BUGS"
|
||||
|
@ -157,8 +160,8 @@ Report bugs to lzip\-bug@nongnu.org
|
|||
.br
|
||||
Tarlz home page: http://www.nongnu.org/lzip/tarlz.html
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2023 Antonio Diaz Diaz.
|
||||
Using lzlib 1.13
|
||||
Copyright \(co 2024 Antonio Diaz Diaz.
|
||||
Using lzlib 1.14\-rc1
|
||||
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
|
||||
.br
|
||||
This is free software: you are free to change and redistribute it.
|
||||
|
|
|
@ -11,12 +11,12 @@ File: tarlz.info, Node: Top, Next: Introduction, Up: (dir)
|
|||
Tarlz Manual
|
||||
************
|
||||
|
||||
This manual is for Tarlz (version 0.24, 20 September 2023).
|
||||
This manual is for Tarlz (version 0.25, 3 January 2024).
|
||||
|
||||
* Menu:
|
||||
|
||||
* Introduction:: Purpose and features of tarlz
|
||||
* Invoking tarlz:: Command line interface
|
||||
* Invoking tarlz:: Command-line interface
|
||||
* Portable character set:: POSIX portable filename character set
|
||||
* File format:: Detailed format of the compressed archive
|
||||
* Amendments to pax format:: The reasons for the differences with pax
|
||||
|
@ -28,7 +28,7 @@ This manual is for Tarlz (version 0.24, 20 September 2023).
|
|||
* Concept index:: Index of concepts
|
||||
|
||||
|
||||
Copyright (C) 2013-2023 Antonio Diaz Diaz.
|
||||
Copyright (C) 2013-2024 Antonio Diaz Diaz.
|
||||
|
||||
This manual is free documentation: you have unlimited permission to copy,
|
||||
distribute, and modify it.
|
||||
|
@ -46,8 +46,8 @@ library lzlib.
|
|||
Tarlz creates tar archives using a simplified and safer variant of the
|
||||
POSIX pax format compressed in lzip format, keeping the alignment between
|
||||
tar members and lzip members. The resulting multimember tar.lz archive is
|
||||
fully backward compatible with standard tar tools like GNU tar, which treat
|
||||
it like any other tar.lz archive. Tarlz can append files to the end of such
|
||||
backward compatible with standard tar tools like GNU tar, which treat it
|
||||
like any other tar.lz archive. Tarlz can append files to the end of such
|
||||
compressed archives.
|
||||
|
||||
Keeping the alignment between tar members and lzip members has two
|
||||
|
@ -433,6 +433,12 @@ to '-1 --solid'.
|
|||
Make '--diff' ignore differences in owner and group IDs. This option is
|
||||
useful when comparing an '--anonymous' archive.
|
||||
|
||||
'--ignore-metadata'
|
||||
Make '--diff' ignore any differences in metadata (file permissions,
|
||||
owner and group IDs, modification time). Compare only file type, file
|
||||
size, and file content. This option is useful when file permissions
|
||||
have not been fully restored because uid/gid changed on extraction.
|
||||
|
||||
'--ignore-overflow'
|
||||
Make '--diff' ignore differences in mtime caused by overflow on 32-bit
|
||||
systems with a 32-bit time_t.
|
||||
|
@ -485,7 +491,7 @@ to '-1 --solid'.
|
|||
|
||||
|
||||
Exit status: 0 for a normal exit, 1 for environmental problems (file not
|
||||
found, files differ, invalid command line options, I/O errors, etc), 2 to
|
||||
found, files differ, invalid command-line options, I/O errors, etc), 2 to
|
||||
indicate a corrupt or invalid input file, 3 for an internal consistency
|
||||
error (e.g., bug) which caused tarlz to panic.
|
||||
|
||||
|
@ -529,7 +535,7 @@ In the diagram below, a box like this:
|
|||
bytes (for example 512).
|
||||
|
||||
|
||||
A tar.lz file consists of a series of lzip members (compressed data
|
||||
A tar.lz file consists of one or more lzip members (compressed data
|
||||
sets). The members simply appear one after another in the file, with no
|
||||
additional information before, between, or after them.
|
||||
|
||||
|
@ -564,7 +570,7 @@ binary zeros, interpreted as an end-of-archive indicator. These EOA blocks
|
|||
are either compressed in a separate lzip member or compressed along with the
|
||||
tar members contained in the last lzip member. For a compressed archive to
|
||||
be recognized by tarlz as appendable, the last lzip member must contain
|
||||
between 512 and 32256 zeros alone.
|
||||
between 512 and 32256 zeros alone (without any non-zero bytes).
|
||||
|
||||
The diagram below shows the correspondence between each tar member
|
||||
(formed by one or two headers plus optional data) in the tar archive and
|
||||
|
@ -618,7 +624,7 @@ space, equal-sign, and newline.
|
|||
'gid'
|
||||
The unsigned decimal representation of the group ID of the group that
|
||||
owns the following file. The gid record is created only for files with
|
||||
a group ID greater than 2_097_151 (octal 7777777). *Note
|
||||
a group ID greater than 2_097_151 (octal 7_777_777). *Note
|
||||
ustar-uid-gid::.
|
||||
|
||||
'linkpath'
|
||||
|
@ -653,13 +659,14 @@ space, equal-sign, and newline.
|
|||
digits from the ISO/IEC 646:1991 (ASCII) standard. This record
|
||||
overrides the field 'size' in the following ustar header block. The
|
||||
size record is created only for files with a size value greater than
|
||||
8_589_934_591 (octal 77777777777); that is, 8 GiB (2^33 bytes) or
|
||||
8_589_934_591 (octal 77_777_777_777); that is, 8 GiB (2^33 bytes) or
|
||||
larger.
|
||||
|
||||
'uid'
|
||||
The unsigned decimal representation of the user ID of the file owner
|
||||
of the following file. The uid record is created only for files with a
|
||||
user ID greater than 2_097_151 (octal 7777777). *Note ustar-uid-gid::.
|
||||
user ID greater than 2_097_151 (octal 7_777_777). *Note
|
||||
ustar-uid-gid::.
|
||||
|
||||
'GNU.crc32'
|
||||
CRC32-C (Castagnoli) of the extended header data excluding the 8 bytes
|
||||
|
@ -737,7 +744,7 @@ S_IROTH 00004 S_IWOTH 00002 S_IXOTH 00001
|
|||
|
||||
The fields 'uid' and 'gid' are the user and group IDs of the owner and
|
||||
group of the file, respectively. If the file uid or gid are greater than
|
||||
2_097_151 (octal 7777777), an extended record is used to store the uid or
|
||||
2_097_151 (octal 7_777_777), an extended record is used to store the uid or
|
||||
gid.
|
||||
|
||||
The field 'size' contains the octal representation of the size of the
|
||||
|
@ -747,13 +754,13 @@ records following the header is (size / 512) rounded to the next integer.
|
|||
For all other values of typeflag, tarlz either sets the size field to 0 or
|
||||
ignores it, and does not store or expect any logical records following the
|
||||
header. If the file size is larger than 8_589_934_591 bytes
|
||||
(octal 77777777777), an extended record is used to store the file size.
|
||||
(octal 77_777_777_777), an extended record is used to store the file size.
|
||||
|
||||
The field 'mtime' contains the octal representation of the modification
|
||||
time of the file at the time it was archived, obtained from the function
|
||||
'stat'. If the modification time is negative or larger than 8_589_934_591
|
||||
(octal 77777777777) seconds since the epoch, an extended record is used to
|
||||
store the modification time. The ustar range of mtime goes from
|
||||
(octal 77_777_777_777) seconds since the epoch, an extended record is used
|
||||
to store the modification time. The ustar range of mtime goes from
|
||||
'1970-01-01 00:00:00 UTC' to '2242-03-16 12:56:31 UTC'.
|
||||
|
||||
The field 'chksum' contains the octal representation of the value of the
|
||||
|
@ -835,7 +842,7 @@ more probable.
|
|||
|
||||
Headers and metadata must be protected separately from data because the
|
||||
integrity checking of lzip may not be able to detect the corruption before
|
||||
the metadata has been used, for example, to create a new file in the wrong
|
||||
the metadata have been used, for example, to create a new file in the wrong
|
||||
place.
|
||||
|
||||
Because of the above, tarlz protects the extended records with a Cyclic
|
||||
|
@ -923,7 +930,7 @@ There is no portable way to tell what charset a text string is coded into.
|
|||
Therefore, tarlz stores all fields representing text strings unmodified,
|
||||
without conversion to UTF-8 nor any other transformation. This prevents
|
||||
accidental double UTF-8 conversions. If the need arises this behavior will
|
||||
be adjusted with a command line option in the future.
|
||||
be adjusted with a command-line option in the future.
|
||||
|
||||
|
||||
File: tarlz.info, Node: Program design, Next: Multi-threaded decoding, Prev: Amendments to pax format, Up: Top
|
||||
|
@ -1252,25 +1259,25 @@ Concept index
|
|||
|
||||
Tag Table:
|
||||
Node: Top216
|
||||
Node: Introduction1210
|
||||
Node: Invoking tarlz4041
|
||||
Ref: --data-size13085
|
||||
Ref: --bsolid17521
|
||||
Node: Portable character set23119
|
||||
Node: File format23762
|
||||
Ref: key_crc3230703
|
||||
Ref: ustar-uid-gid33968
|
||||
Ref: ustar-mtime34770
|
||||
Node: Amendments to pax format36770
|
||||
Ref: crc3237479
|
||||
Ref: flawed-compat38790
|
||||
Node: Program design42872
|
||||
Node: Multi-threaded decoding46797
|
||||
Ref: mt-extraction50078
|
||||
Node: Minimum archive sizes51384
|
||||
Node: Examples53511
|
||||
Node: Problems55878
|
||||
Node: Concept index56433
|
||||
Node: Introduction1207
|
||||
Node: Invoking tarlz4032
|
||||
Ref: --data-size13076
|
||||
Ref: --bsolid17512
|
||||
Node: Portable character set23425
|
||||
Node: File format24068
|
||||
Ref: key_crc3231050
|
||||
Ref: ustar-uid-gid34315
|
||||
Ref: ustar-mtime35122
|
||||
Node: Amendments to pax format37125
|
||||
Ref: crc3237834
|
||||
Ref: flawed-compat39146
|
||||
Node: Program design43228
|
||||
Node: Multi-threaded decoding47153
|
||||
Ref: mt-extraction50434
|
||||
Node: Minimum archive sizes51740
|
||||
Node: Examples53867
|
||||
Node: Problems56234
|
||||
Node: Concept index56789
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
@finalout
|
||||
@c %**end of header
|
||||
|
||||
@set UPDATED 20 September 2023
|
||||
@set VERSION 0.24
|
||||
@set UPDATED 3 January 2024
|
||||
@set VERSION 0.25
|
||||
|
||||
@dircategory Archiving
|
||||
@direntry
|
||||
|
@ -37,7 +37,7 @@ This manual is for Tarlz (version @value{VERSION}, @value{UPDATED}).
|
|||
|
||||
@menu
|
||||
* Introduction:: Purpose and features of tarlz
|
||||
* Invoking tarlz:: Command line interface
|
||||
* Invoking tarlz:: Command-line interface
|
||||
* Portable character set:: POSIX portable filename character set
|
||||
* File format:: Detailed format of the compressed archive
|
||||
* Amendments to pax format:: The reasons for the differences with pax
|
||||
|
@ -50,7 +50,7 @@ This manual is for Tarlz (version @value{VERSION}, @value{UPDATED}).
|
|||
@end menu
|
||||
|
||||
@sp 1
|
||||
Copyright @copyright{} 2013-2023 Antonio Diaz Diaz.
|
||||
Copyright @copyright{} 2013-2024 Antonio Diaz Diaz.
|
||||
|
||||
This manual is free documentation: you have unlimited permission to copy,
|
||||
distribute, and modify it.
|
||||
|
@ -68,7 +68,7 @@ compression library @uref{http://www.nongnu.org/lzip/lzlib.html,,lzlib}.
|
|||
|
||||
Tarlz creates tar archives using a simplified and safer variant of the POSIX
|
||||
pax format compressed in lzip format, keeping the alignment between tar
|
||||
members and lzip members. The resulting multimember tar.lz archive is fully
|
||||
members and lzip members. The resulting multimember tar.lz archive is
|
||||
backward compatible with standard tar tools like GNU tar, which treat it
|
||||
like any other tar.lz archive. Tarlz can append files to the end of such
|
||||
compressed archives.
|
||||
|
@ -477,6 +477,12 @@ Multiple @option{--exclude} options can be specified.
|
|||
Make @option{--diff} ignore differences in owner and group IDs. This option is
|
||||
useful when comparing an @option{--anonymous} archive.
|
||||
|
||||
@item --ignore-metadata
|
||||
Make @option{--diff} ignore any differences in metadata (file permissions,
|
||||
owner and group IDs, modification time). Compare only file type, file size,
|
||||
and file content. This option is useful when file permissions have not been
|
||||
fully restored because uid/gid changed on extraction.
|
||||
|
||||
@item --ignore-overflow
|
||||
Make @option{--diff} ignore differences in mtime caused by overflow on 32-bit
|
||||
systems with a 32-bit time_t.
|
||||
|
@ -534,7 +540,7 @@ keyword appearing in the same block of extended records.
|
|||
@end table
|
||||
|
||||
Exit status: 0 for a normal exit, 1 for environmental problems
|
||||
(file not found, files differ, invalid command line options, I/O errors,
|
||||
(file not found, files differ, invalid command-line options, I/O errors,
|
||||
etc), 2 to indicate a corrupt or invalid input file, 3 for an internal
|
||||
consistency error (e.g., bug) which caused tarlz to panic.
|
||||
|
||||
|
@ -582,7 +588,7 @@ represents a variable number of bytes or a fixed but large number of
|
|||
bytes (for example 512).
|
||||
|
||||
@sp 1
|
||||
A tar.lz file consists of a series of lzip members (compressed data sets).
|
||||
A tar.lz file consists of one or more lzip members (compressed data sets).
|
||||
The members simply appear one after another in the file, with no additional
|
||||
information before, between, or after them.
|
||||
|
||||
|
@ -622,7 +628,7 @@ binary zeros, interpreted as an end-of-archive indicator. These EOA blocks
|
|||
are either compressed in a separate lzip member or compressed along with the
|
||||
tar members contained in the last lzip member. For a compressed archive to
|
||||
be recognized by tarlz as appendable, the last lzip member must contain
|
||||
between 512 and 32256 zeros alone.
|
||||
between 512 and 32256 zeros alone (without any non-zero bytes).
|
||||
|
||||
The diagram below shows the correspondence between each tar member (formed
|
||||
by one or two headers plus optional data) in the tar archive and each
|
||||
|
@ -694,7 +700,7 @@ time outside of the ustar range. @xref{ustar-mtime}.
|
|||
@item gid
|
||||
The unsigned decimal representation of the group ID of the group that owns
|
||||
the following file. The gid record is created only for files with a group ID
|
||||
greater than 2_097_151 (octal 7777777). @xref{ustar-uid-gid}.
|
||||
greater than 2_097_151 @w{(octal 7_777_777)}. @xref{ustar-uid-gid}.
|
||||
|
||||
@item linkpath
|
||||
The file name of a link being created to another file, of any type,
|
||||
|
@ -726,12 +732,12 @@ The size of the file in bytes, expressed as a decimal number using digits
|
|||
from the ISO/IEC 646:1991 (ASCII) standard. This record overrides the field
|
||||
@samp{size} in the following ustar header block. The size record is created
|
||||
only for files with a size value greater than 8_589_934_591
|
||||
@w{(octal 77777777777)}; that is, @w{8 GiB} (2^33 bytes) or larger.
|
||||
@w{(octal 77_777_777_777)}; that is, @w{8 GiB} (2^33 bytes) or larger.
|
||||
|
||||
@item uid
|
||||
The unsigned decimal representation of the user ID of the file owner of the
|
||||
following file. The uid record is created only for files with a user ID
|
||||
greater than 2_097_151 (octal 7777777). @xref{ustar-uid-gid}.
|
||||
greater than 2_097_151 @w{(octal 7_777_777)}. @xref{ustar-uid-gid}.
|
||||
|
||||
@anchor{key_crc32}
|
||||
@item GNU.crc32
|
||||
|
@ -815,7 +821,8 @@ table shows the symbolic name of each bit and its octal value:
|
|||
@anchor{ustar-uid-gid}
|
||||
The fields @samp{uid} and @samp{gid} are the user and group IDs of the owner
|
||||
and group of the file, respectively. If the file uid or gid are greater than
|
||||
2_097_151 (octal 7777777), an extended record is used to store the uid or gid.
|
||||
2_097_151 @w{(octal 7_777_777)}, an extended record is used to store the uid
|
||||
or gid.
|
||||
|
||||
The field @samp{size} contains the octal representation of the size of the
|
||||
file in bytes. If the field @samp{typeflag} specifies a file of type '0'
|
||||
|
@ -824,13 +831,13 @@ records following the header is @w{(size / 512)} rounded to the next
|
|||
integer. For all other values of typeflag, tarlz either sets the size field
|
||||
to 0 or ignores it, and does not store or expect any logical records
|
||||
following the header. If the file size is larger than 8_589_934_591 bytes
|
||||
@w{(octal 77777777777)}, an extended record is used to store the file size.
|
||||
@w{(octal 77_777_777_777)}, an extended record is used to store the file size.
|
||||
|
||||
@anchor{ustar-mtime}
|
||||
The field @samp{mtime} contains the octal representation of the modification
|
||||
time of the file at the time it was archived, obtained from the function
|
||||
@samp{stat}. If the modification time is negative or larger than
|
||||
8_589_934_591 @w{(octal 77777777777)} seconds since the epoch, an extended
|
||||
8_589_934_591 @w{(octal 77_777_777_777)} seconds since the epoch, an extended
|
||||
record is used to store the modification time. The ustar range of mtime goes
|
||||
from @w{@samp{1970-01-01 00:00:00 UTC}} to @w{@samp{2242-03-16 12:56:31 UTC}}.
|
||||
|
||||
|
@ -914,7 +921,7 @@ large, making undetected corruption and archiver misbehavior more probable.
|
|||
|
||||
Headers and metadata must be protected separately from data because the
|
||||
integrity checking of lzip may not be able to detect the corruption before
|
||||
the metadata has been used, for example, to create a new file in the wrong
|
||||
the metadata have been used, for example, to create a new file in the wrong
|
||||
place.
|
||||
|
||||
Because of the above, tarlz protects the extended records with a Cyclic
|
||||
|
@ -999,7 +1006,7 @@ There is no portable way to tell what charset a text string is coded into.
|
|||
Therefore, tarlz stores all fields representing text strings unmodified,
|
||||
without conversion to UTF-8 nor any other transformation. This prevents
|
||||
accidental double UTF-8 conversions. If the need arises this behavior will
|
||||
be adjusted with a command line option in the future.
|
||||
be adjusted with a command-line option in the future.
|
||||
|
||||
|
||||
@node Program design
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue