Browse files

GPL sources #75

  • Loading branch information...
aonez committed Apr 12, 2018
1 parent 78c7aab commit 673309c2b42d4d501d48442fcb6d4feb2a769923
Showing 338 changed files with 119,075 additions and 0 deletions.
@@ -0,0 +1,7 @@
Lzip was written by Antonio Diaz Diaz.
The ideas embodied in lzip are due to (at least) the following people:
Abraham Lempel and Jacob Ziv (for the LZ algorithm), Andrey Markov (for
the definition of Markov chains), G.N.N. Martin (for the definition of
range encoding), Igor Pavlov (for putting all the above together in
LZMA), and Julian Seward (for bzip2's CLI).

Large diffs are not rendered by default.

Oops, something went wrong.
@@ -0,0 +1,283 @@
2017-04-13 Antonio Diaz Diaz <>
* Version 1.19 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 slightly reduced.
* Decompression time has been reduced by 2%.
* Continue testing if any input file is a terminal.
* Show trailing data in both hexadecimal and ASCII.
* (Matchfinder_base): Verify size passed to new.
* Improve detection of bad dict and trailing data.
* lzip.h: Unified messages for bad magic, trailing data, etc.
2016-05-14 Antonio Diaz Diaz <>
* Version 1.18 released.
* Added new option '-a, --trailing-error'.
* Decompression time has been reduced by 2%.
* (verify_trailer): Removed test of final code.
* (main): Delete '--output' file if infd is a terminal.
* (main): Don't use stdin more than once.
* Removed decompression support for version 0 files.
* lzip.texi: Added chapter 'Trailing data'.
* configure: Avoid warning on some shells when testing for g++.
* Detect the existence of install-info.
* testsuite/ A POSIX shell is required to run the tests.
* testsuite/ Don't check error messages.
2015-07-12 Antonio Diaz Diaz <>
* Version 1.17 released.
* Reorganization of the compression code.
* lzip.texi: Added chapter 'Quality assurance'.
* Added new targets 'install*-compress'.
2014-08-26 Antonio Diaz Diaz <>
* Version 1.16 released.
* Compression ratio of option '-9' has been slightly increased.
* Compression time has been reduced by 4%.
* Compression time of option '-0' has been reduced by 2%.
* (close_and_set_permissions): Behave like 'cp -p'.
* Minor improvements.
* lzip.texinfo: Renamed to lzip.texi.
* License changed to GPL version 2 or later.
2013-09-20 Antonio Diaz Diaz <>
* Version 1.15 released.
* Show progress of compression at verbosity level 2 (-vv).
* (show_header): Don't show header version.
* Ignore option '-n, --threads' for compatibility with plzip.
* configure: Options now accept a separate argument.
* lzip.texinfo: Added chapter 'Stream format' and appendix
'Reference source code'.
2013-02-17 Antonio Diaz Diaz <>
* Version 1.14 released.
* Multi-step trials have been implemented.
* Compression ratio has been slightly increased.
* Compression time has been reduced by 5%.
* Decompression time has been reduced by 12%.
* Added new target 'install-bin'.
* Use 'setmode' instead of '_setmode' on Windows and OS/2.
* Define 'strtoull' to 'std::strtoul' on Windows.
2012-02-24 Antonio Diaz Diaz <>
* Version 1.13 released.
* Lziprecover has been moved to its own package.
* (close_and_set_permissions): Inability to change output
file attributes has been downgraded from error to warning.
* Compression time of option '-0' has been reduced by 2%.
* Reorganization of the compression code.
* Small change in '--help' output and man page.
* Changed quote characters in messages as advised by GNU Standards.
* configure: 'datadir' renamed to 'datarootdir'.
* 'testsuite/' has been moved to package 'lziprecover'.
2011-04-30 Antonio Diaz Diaz <>
* Version 1.12 released.
* Added new option '-F, --recompress'.
* encoder.h (update_prices): Update high length symbol prices
independently of the value of 'pos_state'. This gives better
compression for large values of '--match-length' without being
* encoder.h Optimize pair price calculations. This
reduces compression time for large values of '--match-length'
by up to 6%.
* Compression time of option '-0' has been reduced by 2%.
* (decompress): Print only one status line for each
multimember file when only one '-v' is specified.
* (decompress): Print up to 6 bytes of trailing data
when '-vvvv' is specified.
* (open_instream): Don't show the message
" and '--stdout' was not specified" for directories, etc.
* If '-v' is not specified show errors only.
* testsuite/ Use Arg_parser.
* testsuite/ Added new option '-b, --bits'.
* testsuite/ Added new option '-p, --position'.
* testsuite/ Added new option '-s, --size'.
2010-09-16 Antonio Diaz Diaz <>
* Version 1.11 released.
* Added new option '-0' which produces a compression speed and
ratio comparable to those of 'gzip -9'.
* fast_encoder.h New files.
* Match length limit set by options -1 to -8 has been
reduced to extend range of use towards gzip. Lower numbers now
compress less but faster. (-1 now takes 43% less time for only
20% larger compressed size).
* Compression ratio of option '-9' has been slightly increased.
* Added new option '-m, --merge' which tries to
produce a correct file merging the good parts of two or more
damaged copies.
* Added new option '-R, --repair' for repairing
a 1-byte error in single-member files.
* (decode_member): Detect file errors earlier to
improve efficiency of lziprecover's new repair capability.
This change also prevents (harmless) access to uninitialized
memory when decompressing a corrupt file.
* Added new option '-f, --force'.
* Added new option '-o, --output'.
* Added new option '-s, --split' to select the
until now only operation of splitting multimember files.
* If no operation is specified, warn the user
and do nothing.
* Fixed warning about fchown's return value being ignored.
* '-tvvvv' now also shows compression ratio.
* Set stdin/stdout in binary mode on MSVC and OS2.
* lzip.texinfo: Added new examples.
* testsuite: 'test1' renamed to 'test.txt'. Added new tests.
* Matchfinder types HC4 (4 bytes hash-chain) and HT4 (4 bytes
hash-table) have been tested and found no better than the
current BT4.
2010-04-05 Antonio Diaz Diaz <>
* Version 1.10 released.
* decoder.h: Input_buffer integrated in Range_decoder.
* File specified with option '-o' is now created with
mode 0666 if umask allows it, deleted if interrupted by user.
* New constant 'o_binary'.
* Dictionary size for options -2, -3, -4 and -8 has
been changed to improve linearity of compressed sizes.
* lzip.h: Fixed warnings produced by over-optimization (-O3).
* Added quotes to directory names.
2010-01-17 Antonio Diaz Diaz <>
* Version 1.9 released.
* (main): Return at least 1 if closing stdout fails.
* Added '--name' option to help2man invocation.
* testsuite/ Use 'test1' instead of 'COPYING' for testing.
2009-09-02 Antonio Diaz Diaz <>
* Version 1.8 released.
* Compression time has been reduced by 4%.
* Lzdiff and lzgrep have been moved to the new package zutils.
* Fixed warnings on systems where uint32_t != unsigned int.
2009-06-25 Antonio Diaz Diaz <>
* Version 1.7 released.
* decoder.h (copy_block): Fixed memcpy overlap introduced in 1.6.
2009-06-22 Antonio Diaz Diaz <>
* Version 1.6 released.
* Decompression time has been reduced by 17%.
* Added decompression support for Sync Flush marker.
* Added support for .tbz extension to lzdiff and lzgrep.
* Added man pages for lzdiff, lzgrep and lziprecover.
* (Matchfinder): Reduce memory use to 9x if input file
is smaller than dictionary size limit.
* Added extra flush calls to improve partial
decompression of corrupt files.
* '--test' no more needs '/dev/null'.
* Removed some 'bashisms' from lzdiff and lzgrep.
* Dictionary size for options '-1' to '-4' has been changed.
* (signal_handler): Declared as 'extern "C"'.
* Extra files are now installed by default.
* testsuite/ Test lziprecover.
* Added 'export LC_ALL=C' to all scripts.
2009-04-12 Antonio Diaz Diaz <>
* Version 1.5 released.
* lzip.h: Coded dictionary size implemented in File_header.
* Fixed some includes that prevented compilation with GCC 4.4.
* 'member_size' and 'volume_size' are now accurate limits.
* Compression speed has been improved.
* Implemented bt4 type matchfinder.
* lzip.texinfo: Added chapter 'Algorithm'.
* Lzdiff and lzgrep now accept '-h' for '--help' and
'-V' for '--version'.
* Man page is now installed by default.
* testsuite/ Verify that files are open in binary mode.
2009-01-24 Antonio Diaz Diaz <>
* Version 1.4 released.
* Implemented compression of version 1 files.
* Added new option '-b, --member-size'.
* Added new option '-S, --volume-size'.
* Added new option '-o, --output'.
* Read from non regular files if '--stdout' is specified.
* Added 'lziprecover', a member recoverer program.
* testsuite/ Test all 1-byte errors.
2008-12-21 Antonio Diaz Diaz <>
* Version 1.3 released.
* This version automatically chooses the smallest possible
dictionary size for each file during compression, saving
memory during decompression.
* Implemented decompression of version 1 files.
* testsuite/ Replaced 'diff -q' with 'cmp'.
2008-12-10 Antonio Diaz Diaz <>
* Version 1.2 released.
* A 1-byte read outside allocated memory has been fixed.
* lzip.h: Dictionary size limit has been reduced to 512MiB because
setting it to 1GiB causes overflow of a 32 bit integer.
* Added 'lzdiff', a diff/cmp wrapper for gzip, bzip2, lzip and
non-compressed files.
* Added 'lzgrep', a grep wrapper for gzip, bzip2, lzip and
non-compressed files.
* 'make install-info' should now work on Debian and OS X.
2008-11-17 Antonio Diaz Diaz <>
* Version 1.1 released.
* Changed short name of option '--dictionary-size' to '-s'.
* Changed short name of option '--match-length' to '-m'.
2008-10-14 Antonio Diaz Diaz <>
* Version 1.0 released.
* '-tvv' shows file version and dictionary size.
2008-09-30 Antonio Diaz Diaz <>
* Version 0.5 released.
* Decompression is now 1% faster.
2008-09-23 Antonio Diaz Diaz <>
* Version 0.4 released.
* Code cleanup for global variable 'verbosity'.
* Regained the compression ratio of 0.2 with 5% faster speed.
* Fixed compilation on systems where size_t != unsigned int.
2008-09-15 Antonio Diaz Diaz <>
* Version 0.3 released.
* Compression is now 15% faster, 1% worse.
* (main): Make '-t' option override '-c'.
* (decompress): Show 'done' instead of 'ok' when not testing.
* encoder.h: Use trials[] to return the list of pairs.
2008-09-09 Antonio Diaz Diaz <>
* Version 0.2 released.
* Small improvements in compression speed.
* Small documentation changes.
2008-08-20 Antonio Diaz Diaz <>
* Version 0.1 released.
Copyright (C) 2008-2017 Antonio Diaz Diaz.
This file is a collection of facts, and thus it is not copyrightable,
but just in case, you have unlimited permission to copy, distribute and
modify it.
@@ -0,0 +1,64 @@
You will need a C++ compiler.
I use gcc 5.3.0 and 4.1.2, but the code should compile with any
standards compliant compiler.
Gcc is available at
1. Unpack the archive if you have not done so already:
tar -xf lzip[version].tar.lz
lzip -cd lzip[version].tar.lz | tar -xf -
This creates the directory ./lzip[version] containing the source from
the main archive.
2. Change to lzip directory and run configure.
(Try 'configure --help' for usage instructions).
cd lzip[version]
3. Run make.
4. Optionally, type 'make check' to run the tests that come with lzip.
5. Type 'make install' to install the program and any data files and
Or type 'make install-compress', which additionally compresses the
info manual and the man page after installation. (Installing
compressed docs may become the default in the future).
You can install only the program, the info manual or the man page by
typing 'make install-bin', 'make install-info' or 'make install-man'
Another way
You can also compile lzip into a separate directory.
To do this, you must use a version of 'make' that supports the 'VPATH'
variable, such as GNU 'make'. 'cd' to the directory where you want the
object files and executables to go and run the 'configure' script.
'configure' automatically checks for the source code in '.', in '..' and
in the directory that 'configure' is in.
'configure' recognizes the option '--srcdir=DIR' to control where to
look for the sources. Usually 'configure' can determine that directory
After running 'configure', you can run 'make' and 'make install' as
explained above.
Copyright (C) 2008-2017 Antonio Diaz Diaz.
This file is free documentation: you have unlimited permission to copy,
distribute and modify it.
Oops, something went wrong.

0 comments on commit 673309c

Please sign in to comment.