From [via email@example.com]" <@21:1/5 to All on Thu Feb 25 22:44:15 2021
This is a port of clzip 1.12 to MSDOS/DJGPP.
clzip is a lossless data compressor with a user interface similar to the one
of gzip or bzip2. Clzip is about as fast as gzip, compresses most files more
than bzip2, and is better than both from a data recovery perspective.
DJGPP specific changes.
- The port implements SFN support in a similar manner than it has been
done for the bzip2 and xz ports. If only SFN support is available the
file name and its extension must be truncated and modified to encode the
compressor extension and the numbers to identify a multi volume archive.
The program does not store the original file name in the header of the
archive thus there is no chance to regenerate them when uncompressiong
the archive in a SFN environment. Here the same naming schema than used
in the bzip2 and xz ports is applied. The archiver extension is ".lz".
On SFN systems, the ".lz" extension will consume one or two characters
of the original file name extension.
For SFN systems the following rules apply for ".lz" extension:
compressed name uncompressed name
filename.exl --> filename.ex
filename.elz --> filename.e
filename.lz --> filename
uncompressed name compressed name
filename.ext --> filename.exl
filename.ex --> filename.exl
filename.e --> filename.elz
filename --> filename.lz
The port will detect at run time if LFN support is available or not and
will select the method to handle the extension creation accordingly.
For LFN and SFN systems, the ".tlz" extension will always be identified
as tar archives. Their file name will always have a ".tar" extension.
If only SFN support is available, the DJGPP port of clzip will always
consume the last 5 characters of the 8 possible name characters to
encode the volume number. E.g.: when compressing a file with the file
name filename.ext and splitting it into multiple volumes, the different
volumes will become fil00001.exl, fil00002.exl, etc. It is clear that
neither the original filename nor the original extension can be recreated.
- LFN support enabled is required to run the testsuite. The test data is
binary data thus the used unzip program must treat them as binary and
not as text data.
- The port has been configured and compiled on WinXP SP3 and Win98SE.
There is no guarantee that this may be possible with any other DOS-like
OS. Due to the massive use of long file names it will not be possible
to configure and compile without LFN support.
To build this port you will need an OS with LFN support to configure and
compile the source package.
As usual, all djgpp specific files (diffs, README files, etc.) are stored in
the /djgpp directory. The sources have been configured to be build in the
"_build" directory. If for some reason it does not work for you, delete it
contents and configure from scratch again.
For further information about clzip please read the info docs and NEWS file.
Here is an extract of the NEWS file showing the user visible changes
from the last port (clzip 1.8) to this one:
* Version 1.12 released.
* main.c (main): Report an error if a file name is empty.
Make '-o' behave like '-c', but writing to file instead of stdout.
Make '-c' and '-o' check whether the output is a terminal only once.
Do not open output if input is a terminal.
* Replace 'decompressed', 'compressed' with 'out', 'in' in output.
* lzip_index.c: Improve messages for corruption in last header.
* main.c: Set a valid invocation_name even if argc == 0.
* Document extraction from tar.lz in manual, '--help', and man page.
* clzip.texi (Introduction): Mention plzip and tarlz as alternatives.
* clzip.texi: Several fixes and improvements.
* testsuite: Add 9 new test files.
* Version 1.11 released.
* Rename File_* to Lzip_*.
* lzip.h (Lzip_trailer): New function 'Lt_verify_consistency'.
* lzip_index.c: Detect some kinds of corrupt trailers.
* main.c (main): Check return value of close( infd ).
* main.c: Compile on DOS with DJGPP.
* clzip.texi: Improve descriptions of '-0..-9', '-m', and '-s'.
* configure: Accept appending to CFLAGS, 'CFLAGS+=OPTIONS'.
* INSTALL: Document use of CFLAGS+='-D __USE_MINGW_ANSI_STDIO'.
* Version 1.10 released.
* New option '--loose-trailing'.
* Improve corrupt header detection to HD=3.
* main.c: Show corrupt or truncated header in multimember file.
* main.c (main): Option '-S, --volume-size' now keeps input files.
* encoder_base.*: Adjust dictionary size for each member.
* Replace 'bits/byte' with inverse compression ratio in output.
* Show progress of decompression at verbosity level 2 (-vv).
* Show progress of (de)compression only if stderr is a terminal.
* main.c: Show final diagnostic when testing multiple files.
* main.c: Do not add a second .lz extension to the arg of -o.
* decoder.c (LZd_verify_trailer): Show stored sizes also in hex.
Show dictionary size at verbosity level 4 (-vvvv).
* clzip.texi: New chapter 'Meaning of clzip's output'.
* Version 1.9 released.
* The option '-l, --list' has been ported from lziprecover.
* Don't allow mixing different operations (-d, -l or -t).
* Compression time of option '-0' has been reduced by 6%.
* Compression time of options -1 to -9 has been reduced by 1%.
* Decompression time has been reduced by 7%.
* main.c: Continue testing if any input file is a terminal.
* main.c: Show trailing data in both hexadecimal and ASCII.
* lzip_index.c: Improve detection of bad dict and trailing data.
* lzip.h: Unify messages for bad magic, trailing data, etc.
* clzip.texi: Add missing chapters from lzip.texi.