1
0
Fork 0

Adding upstream version 0.4.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-17 21:04:20 +01:00
parent 7b75053a36
commit 481ef88a11
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
43 changed files with 4518 additions and 0 deletions

88
doc/tarlz.1 Normal file
View file

@ -0,0 +1,88 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.46.1.
.TH TARLZ "1" "April 2018" "tarlz 0.4" "User Commands"
.SH NAME
tarlz \- creates tar archives with multimember lzip compression
.SH SYNOPSIS
.B tarlz
[\fI\,options\/\fR] [\fI\,files\/\fR]
.SH DESCRIPTION
Tarlz \- Archiver with multimember lzip compression.
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
display this help and exit
.TP
\fB\-V\fR, \fB\-\-version\fR
output version information and exit
.TP
\fB\-c\fR, \fB\-\-create\fR
create a new archive
.TP
\fB\-C\fR, \fB\-\-directory=\fR<dir>
change to directory <dir>
.TP
\fB\-f\fR, \fB\-\-file=\fR<archive>
use archive file <archive>
.TP
\fB\-q\fR, \fB\-\-quiet\fR
suppress all messages
.TP
\fB\-r\fR, \fB\-\-append\fR
append files to the end of an archive
.TP
\fB\-t\fR, \fB\-\-list\fR
list the contents of an archive
.TP
\fB\-v\fR, \fB\-\-verbose\fR
verbosely list files processed
.TP
\fB\-x\fR, \fB\-\-extract\fR
extract files from an archive
.TP
\fB\-0\fR .. \fB\-9\fR
set compression level [default 6]
.TP
\fB\-\-asolid\fR
create solidly compressed appendable archive
.TP
\fB\-\-dsolid\fR
create per\-directory compressed archive
.TP
\fB\-\-solid\fR
create solidly compressed archive
.TP
\fB\-\-group=\fR<group>
use <group> name/id for added files
.TP
\fB\-\-owner=\fR<owner>
use <owner> name/id for added files
.TP
\fB\-\-uncompressed\fR
don't compress the created archive
.PP
Exit status: 0 for a normal exit, 1 for environmental problems (file
not found, invalid flags, I/O errors, etc), 2 to indicate a corrupt or
invalid input file, 3 for an internal consistency error (eg, bug) which
caused tarlz to panic.
.SH "REPORTING BUGS"
Report bugs to lzip\-bug@nongnu.org
.br
Tarlz home page: http://www.nongnu.org/lzip/tarlz.html
.SH COPYRIGHT
Copyright \(co 2018 Antonio Diaz Diaz.
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.
There is NO WARRANTY, to the extent permitted by law.
.SH "SEE ALSO"
The full documentation for
.B tarlz
is maintained as a Texinfo manual. If the
.B info
and
.B tarlz
programs are properly installed at your site, the command
.IP
.B info tarlz
.PP
should give you access to the complete manual.

311
doc/tarlz.info Normal file
View file

@ -0,0 +1,311 @@
This is tarlz.info, produced by makeinfo version 4.13+ from tarlz.texi.
INFO-DIR-SECTION Data Compression
START-INFO-DIR-ENTRY
* Tarlz: (tarlz). Archiver with multimember lzip compression
END-INFO-DIR-ENTRY

File: tarlz.info, Node: Top, Next: Introduction, Up: (dir)
Tarlz Manual
************
This manual is for Tarlz (version 0.4, 23 April 2018).
* Menu:
* Introduction:: Purpose and features of tarlz
* Invoking tarlz:: Command line interface
* Examples:: A small tutorial with examples
* Problems:: Reporting bugs
* Concept index:: Index of concepts
Copyright (C) 2013-2018 Antonio Diaz Diaz.
This manual is free documentation: you have unlimited permission to
copy, distribute and modify it.

File: tarlz.info, Node: Introduction, Next: Invoking tarlz, Prev: Top, Up: Top
1 Introduction
**************
Tarlz is a small and simple implementation of the tar archiver. By
default tarlz creates, lists and extracts archives in the 'ustar' format
compressed with lzip on a per file basis. Tarlz can append files to the
end of such compressed archives.
Each tar member is compressed in its own lzip member, as well as the
end-of-file blocks. This same method works for any tar format (gnu,
ustar, posix) and is fully backward compatible with standard tar tools
like GNU tar, which treat the resulting multimember tar.lz archive like
any other tar.lz archive.
Tarlz can create tar archives with four levels of compression
granularity; per file, per directory, appendable solid, and solid.
Tarlz is intended as a showcase project for the maintainers of real
tar programs to evaluate the format and perhaps implement it in their
tools.
The diagram below shows the correspondence between tar members
(formed by a header plus optional data) in the tar archive and lzip
members in the resulting multimember tar.lz archive: *Note File format:
(lzip)File format.
tar
+========+======+========+======+========+======+========+
| header | data | header | data | header | data | eof |
+========+======+========+======+========+======+========+
tar.lz
+===============+===============+===============+========+
| member | member | member | member |
+===============+===============+===============+========+
Of course, compressing each file (or each directory) individually is
less efficient than compressing the whole tar archive, but it has the
following advantages:
* The resulting multimember tar.lz archive can be decompressed in
parallel with plzip, multiplying the decompression speed.
* New members can be appended to the archive (by removing the eof
member) just like to an uncompressed tar archive.
* It is a safe posix-style backup format. In case of corruption,
tarlz can extract all the undamaged members from the tar.lz
archive, skipping over the damaged members, just like the standard
(uncompressed) tar. Moreover, lziprecover can be used to recover at
least part of the contents of the damaged members.
* A multimember tar.lz archive is usually smaller than the
corresponding solidly compressed tar.gz archive, except when
individually compressing files smaller than about 32 KiB.

File: tarlz.info, Node: Invoking tarlz, Next: Examples, Prev: Introduction, Up: Top
2 Invoking tarlz
****************
The format for running tarlz is:
tarlz [OPTIONS] [FILES]
On archive creation or appending, tarlz removes leading and trailing
slashes from file names, as well as file name prefixes containing a
'..' component. On extraction, archive members containing a '..'
component are skipped.
tarlz supports the following options:
'-h'
'--help'
Print an informative help message describing the options and exit.
'-V'
'--version'
Print the version number of tarlz on the standard output and exit.
'-c'
'--create'
Create a new archive.
'-C DIR'
'--directory=DIR'
Change to directory DIR. When creating or appending, the position
of each '-C' option in the command line is significant; it will
change the current working directory for the following FILES until
a new '-C' option appears in the command line. When extracting, all
the '-C' options are executed in sequence before starting the
extraction. Listing ignores any '-C' options specified. DIR is
relative to the then current working directory, perhaps changed by
a previous '-C' option.
'-f ARCHIVE'
'--file=ARCHIVE'
Use archive file ARCHIVE. '-' used as an ARCHIVE argument reads
from standard input or writes to standard output.
'-q'
'--quiet'
Quiet operation. Suppress all messages.
'-r'
'--append'
Append files to the end of an archive. The archive must be a
regular (seekable) file compressed as a multimember lzip file, and
the two end-of-file blocks plus any zero padding must be contained
in the last lzip member of the archive. First this last member is
removed, then the new members are appended, and then a new
end-of-file member is appended to the archive. Exit with status 0
without modifying the archive if no FILES have been specified.
tarlz can't append files to an uncompressed tar archive.
'-t'
'--list'
List the contents of an archive.
'-v'
'--verbose'
Verbosely list files processed.
'-x'
'--extract'
Extract files from an archive.
'-0 .. -9'
Set the compression level. The default compression level is '-6'.
'--asolid'
When creating or appending to a compressed archive, use appendable
solid compression. All the files being added to the archive are
compressed into a single lzip member, but the end-of-file blocks
are compressed into a separate lzip member. This creates a solidly
compressed appendable archive.
'--dsolid'
When creating or appending to a compressed archive, use solid
compression for each directory especified in the command line. The
end-of-file blocks are compressed into a separate lzip member. This
creates a compressed appendable archive with a separate lzip
member for each top-level directory.
'--solid'
When creating or appending to a compressed archive, use solid
compression. The files being added to the archive, along with the
end-of-file blocks, are compressed into a single lzip member. The
resulting archive is not appendable. No more files can be later
appended to the archive without decompressing it first.
'--group=GROUP'
When creating or appending, use GROUP for files added to the
archive. If GROUP is not a valid group name, it is decoded as a
decimal numeric group ID.
'--owner=OWNER'
When creating or appending, use OWNER for files added to the
archive. If OWNER is not a valid user name, it is decoded as a
decimal numeric user ID.
'--uncompressed'
With '--create', don't compress the created tar archive. Create an
uncompressed tar archive instead.
Exit status: 0 for a normal exit, 1 for environmental problems (file
not found, invalid flags, I/O errors, etc), 2 to indicate a corrupt or
invalid input file, 3 for an internal consistency error (eg, bug) which
caused tarlz to panic.

File: tarlz.info, Node: Examples, Next: Problems, Prev: Invoking tarlz, Up: Top
3 A small tutorial with examples
********************************
Example 1: Create a multimember compressed archive 'archive.tar.lz'
containing files 'a', 'b' and 'c'.
tarlz -cf archive.tar.lz a b c
Example 2: Append files 'd' and 'e' to the multimember compressed
archive 'archive.tar.lz'.
tarlz -rf archive.tar.lz d e
Example 3: Create a solidly compressed appendable archive
'archive.tar.lz' containing files 'a', 'b' and 'c'. Then append files
'd' and 'e' to the archive.
tarlz --asolid -cf archive.tar.lz a b c
tarlz --asolid -rf archive.tar.lz d e
Example 4: Create a compressed appendable archive containing directories
'dir1', 'dir2' and 'dir3' with a separate lzip member per directory.
Then append files 'a', 'b', 'c', 'd' and 'e' to the archive, all of
them contained in a single lzip member. The resulting archive
'archive.tar.lz' contains 5 lzip members (including the eof member).
tarlz --dsolid -cf archive.tar.lz dir1 dir2 dir3
tarlz --asolid -rf archive.tar.lz a b c d e
Example 5: Create a solidly compressed archive 'archive.tar.lz'
containing files 'a', 'b' and 'c'. Note that no more files can be later
appended to the archive without decompressing it first.
tarlz --solid -cf archive.tar.lz a b c
Example 6: Extract all files from archive 'archive.tar.lz'.
tarlz -xf archive.tar.lz
Example 7: Extract files 'a' and 'c' from archive 'archive.tar.lz'.
tarlz -xf archive.tar.lz a c
Example 8: Copy the contents of directory 'sourcedir' to the directory
'targetdir'.
tarlz -C sourcedir -c . | tarlz -C targetdir -x

File: tarlz.info, Node: Problems, Next: Concept index, Prev: Examples, Up: Top
4 Reporting bugs
****************
There are probably bugs in tarlz. There are certainly errors and
omissions in this manual. If you report them, they will get fixed. If
you don't, no one will ever know about them and they will remain unfixed
for all eternity, if not longer.
If you find a bug in tarlz, please send electronic mail to
<lzip-bug@nongnu.org>. Include the version number, which you can find
by running 'tarlz --version'.

File: tarlz.info, Node: Concept index, Prev: Problems, Up: Top
Concept index
*************
[index]
* Menu:
* bugs: Problems. (line 6)
* examples: Examples. (line 6)
* getting help: Problems. (line 6)
* introduction: Introduction. (line 6)
* invoking: Invoking tarlz. (line 6)
* options: Invoking tarlz. (line 6)
* usage: Invoking tarlz. (line 6)
* version: Invoking tarlz. (line 6)

Tag Table:
Node: Top223
Node: Introduction785
Node: Invoking tarlz3280
Node: Examples7278
Node: Problems8975
Node: Concept index9501

End Tag Table

Local Variables:
coding: iso-8859-15
End:

348
doc/tarlz.texi Normal file
View file

@ -0,0 +1,348 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename tarlz.info
@documentencoding ISO-8859-15
@settitle Tarlz Manual
@finalout
@c %**end of header
@set UPDATED 23 April 2018
@set VERSION 0.4
@dircategory Data Compression
@direntry
* Tarlz: (tarlz). Archiver with multimember lzip compression
@end direntry
@ifnothtml
@titlepage
@title Tarlz
@subtitle Archiver with multimember lzip compression
@subtitle for Tarlz version @value{VERSION}, @value{UPDATED}
@author by Antonio Diaz Diaz
@page
@vskip 0pt plus 1filll
@end titlepage
@contents
@end ifnothtml
@node Top
@top
This manual is for Tarlz (version @value{VERSION}, @value{UPDATED}).
@menu
* Introduction:: Purpose and features of tarlz
* Invoking tarlz:: Command line interface
* Examples:: A small tutorial with examples
* Problems:: Reporting bugs
* Concept index:: Index of concepts
@end menu
@sp 1
Copyright @copyright{} 2013-2018 Antonio Diaz Diaz.
This manual is free documentation: you have unlimited permission
to copy, distribute and modify it.
@node Introduction
@chapter Introduction
@cindex introduction
Tarlz is a small and simple implementation of the tar archiver. By
default tarlz creates, lists and extracts archives in the 'ustar' format
compressed with lzip on a per file basis. Tarlz can append files to the
end of such compressed archives.
Each tar member is compressed in its own lzip member, as well as the
end-of-file blocks. This same method works for any tar format (gnu,
ustar, posix) and is fully backward compatible with standard tar tools
like GNU tar, which treat the resulting multimember tar.lz archive like
any other tar.lz archive.
Tarlz can create tar archives with four levels of compression
granularity; per file, per directory, appendable solid, and solid.
Tarlz is intended as a showcase project for the maintainers of real tar
programs to evaluate the format and perhaps implement it in their tools.
The diagram below shows the correspondence between tar members (formed
by a header plus optional data) in the tar archive and
@uref{http://www.nongnu.org/lzip/manual/lzip_manual.html#File-format,,lzip members}
in the resulting multimember tar.lz archive:
@ifnothtml
@xref{File format,,,lzip}.
@end ifnothtml
@verbatim
tar
+========+======+========+======+========+======+========+
| header | data | header | data | header | data | eof |
+========+======+========+======+========+======+========+
tar.lz
+===============+===============+===============+========+
| member | member | member | member |
+===============+===============+===============+========+
@end verbatim
@noindent
Of course, compressing each file (or each directory) individually is
less efficient than compressing the whole tar archive, but it has the
following advantages:
@itemize @bullet
@item
The resulting multimember tar.lz archive can be decompressed in
parallel with plzip, multiplying the decompression speed.
@item
New members can be appended to the archive (by removing the eof
member) just like to an uncompressed tar archive.
@item
It is a safe posix-style backup format. In case of corruption,
tarlz can extract all the undamaged members from the tar.lz
archive, skipping over the damaged members, just like the standard
(uncompressed) tar. Moreover, lziprecover can be used to recover at
least part of the contents of the damaged members.
@item
A multimember tar.lz archive is usually smaller than the
corresponding solidly compressed tar.gz archive, except when
individually compressing files smaller than about 32 KiB.
@end itemize
@node Invoking tarlz
@chapter Invoking tarlz
@cindex invoking
@cindex options
@cindex usage
@cindex version
The format for running tarlz is:
@example
tarlz [@var{options}] [@var{files}]
@end example
@noindent
On archive creation or appending, tarlz removes leading and trailing
slashes from file names, as well as file name prefixes containing a
@samp{..} component. On extraction, archive members containing a
@samp{..} component are skipped.
tarlz supports the following options:
@table @code
@item -h
@itemx --help
Print an informative help message describing the options and exit.
@item -V
@itemx --version
Print the version number of tarlz on the standard output and exit.
@item -c
@itemx --create
Create a new archive.
@item -C @var{dir}
@itemx --directory=@var{dir}
Change to directory @var{dir}. When creating or appending, the position
of each @code{-C} option in the command line is significant; it will
change the current working directory for the following @var{files} until
a new @code{-C} option appears in the command line. When extracting, all
the @code{-C} options are executed in sequence before starting the
extraction. Listing ignores any @code{-C} options specified. @var{dir}
is relative to the then current working directory, perhaps changed by a
previous @code{-C} option.
@item -f @var{archive}
@itemx --file=@var{archive}
Use archive file @var{archive}. @samp{-} used as an @var{archive}
argument reads from standard input or writes to standard output.
@item -q
@itemx --quiet
Quiet operation. Suppress all messages.
@item -r
@itemx --append
Append files to the end of an archive. The archive must be a regular
(seekable) file compressed as a multimember lzip file, and the two
end-of-file blocks plus any zero padding must be contained in the last
lzip member of the archive. First this last member is removed, then the
new members are appended, and then a new end-of-file member is appended
to the archive. Exit with status 0 without modifying the archive if no
@var{files} have been specified. tarlz can't append files to an
uncompressed tar archive.
@item -t
@itemx --list
List the contents of an archive.
@item -v
@itemx --verbose
Verbosely list files processed.
@item -x
@itemx --extract
Extract files from an archive.
@item -0 .. -9
Set the compression level. The default compression level is @samp{-6}.
@item --asolid
When creating or appending to a compressed archive, use appendable solid
compression. All the files being added to the archive are compressed
into a single lzip member, but the end-of-file blocks are compressed
into a separate lzip member. This creates a solidly compressed
appendable archive.
@item --dsolid
When creating or appending to a compressed archive, use solid
compression for each directory especified in the command line. The
end-of-file blocks are compressed into a separate lzip member. This
creates a compressed appendable archive with a separate lzip member for
each top-level directory.
@item --solid
When creating or appending to a compressed archive, use solid
compression. The files being added to the archive, along with the
end-of-file blocks, are compressed into a single lzip member. The
resulting archive is not appendable. No more files can be later appended
to the archive without decompressing it first.
@item --group=@var{group}
When creating or appending, use @var{group} for files added to the
archive. If @var{group} is not a valid group name, it is decoded as a
decimal numeric group ID.
@item --owner=@var{owner}
When creating or appending, use @var{owner} for files added to the
archive. If @var{owner} is not a valid user name, it is decoded as a
decimal numeric user ID.
@item --uncompressed
With @code{--create}, don't compress the created tar archive. Create an
uncompressed tar archive instead.
@end table
Exit status: 0 for a normal exit, 1 for environmental problems (file not
found, invalid flags, I/O errors, etc), 2 to indicate a corrupt or
invalid input file, 3 for an internal consistency error (eg, bug) which
caused tarlz to panic.
@node Examples
@chapter A small tutorial with examples
@cindex examples
@noindent
Example 1: Create a multimember compressed archive @samp{archive.tar.lz}
containing files @samp{a}, @samp{b} and @samp{c}.
@example
tarlz -cf archive.tar.lz a b c
@end example
@sp 1
@noindent
Example 2: Append files @samp{d} and @samp{e} to the multimember
compressed archive @samp{archive.tar.lz}.
@example
tarlz -rf archive.tar.lz d e
@end example
@sp 1
@noindent
Example 3: Create a solidly compressed appendable archive
@samp{archive.tar.lz} containing files @samp{a}, @samp{b} and @samp{c}.
Then append files @samp{d} and @samp{e} to the archive.
@example
tarlz --asolid -cf archive.tar.lz a b c
tarlz --asolid -rf archive.tar.lz d e
@end example
@sp 1
@noindent
Example 4: Create a compressed appendable archive containing directories
@samp{dir1}, @samp{dir2} and @samp{dir3} with a separate lzip member per
directory. Then append files @samp{a}, @samp{b}, @samp{c}, @samp{d} and
@samp{e} to the archive, all of them contained in a single lzip member.
The resulting archive @samp{archive.tar.lz} contains 5 lzip members
(including the eof member).
@example
tarlz --dsolid -cf archive.tar.lz dir1 dir2 dir3
tarlz --asolid -rf archive.tar.lz a b c d e
@end example
@sp 1
@noindent
Example 5: Create a solidly compressed archive @samp{archive.tar.lz}
containing files @samp{a}, @samp{b} and @samp{c}. Note that no more
files can be later appended to the archive without decompressing it
first.
@example
tarlz --solid -cf archive.tar.lz a b c
@end example
@sp 1
@noindent
Example 6: Extract all files from archive @samp{archive.tar.lz}.
@example
tarlz -xf archive.tar.lz
@end example
@sp 1
@noindent
Example 7: Extract files @samp{a} and @samp{c} from archive
@samp{archive.tar.lz}.
@example
tarlz -xf archive.tar.lz a c
@end example
@sp 1
@noindent
Example 8: Copy the contents of directory @samp{sourcedir} to the
directory @samp{targetdir}.
@example
tarlz -C sourcedir -c . | tarlz -C targetdir -x
@end example
@node Problems
@chapter Reporting bugs
@cindex bugs
@cindex getting help
There are probably bugs in tarlz. There are certainly errors and
omissions in this manual. If you report them, they will get fixed. If
you don't, no one will ever know about them and they will remain unfixed
for all eternity, if not longer.
If you find a bug in tarlz, please send electronic mail to
@email{lzip-bug@@nongnu.org}. Include the version number, which you can
find by running @w{@code{tarlz --version}}.
@node Concept index
@unnumbered Concept index
@printindex cp
@bye