1
0
Fork 0

Adding upstream version 0.25.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-17 21:27:24 +01:00
parent 4f5d0de2b2
commit 8853aa3bf2
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
33 changed files with 317 additions and 280 deletions

View file

@ -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.

View file

@ -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

View file

@ -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