This Objective Caml library provides easy access to compressed files in
bzip2 format. It provides functions for reading from and writing to compressed
files in these formats.
from 1.84 to 1.90.
upstream changes:
* important changes in version 1.90 05/09/2012 (Tom Jones)
- documentation fixes
* important changes in version 1.88 01/06/2012 (Markus Prosch)
- resolved chown won't work on symlinks
* important changes in version 1.86 24/05/2012 (Mark Allen)
- don't use tell on IO::Zlib handles RT#64339
This is an upgrade to the latest version. Changes include:
- Added function Zip.add_entry_generator. (Contributed by A. Frisch.)
- The "level" optional argument was sometimes not honored; fixed.
- Relicensed under LGPL 2.1 or above, with Caml's special exception
for static linking.
The package itself has been revamped as well, with destdir support, use of
PLIST_VARS, and some more minor improvements. It's also been tested to work
with ocaml 4.00.
Install the man file
Approved by: wiz@(maintainer)
Upstream changes;
pigz version 2.2.5 has been released and is now available at http://zlib.net/pigz/ . The main changes since 2.2.4 are:
- Change suffix to .tar when decompressing or listing .tgz.
- Print name of executable in error messages.
- Show help properly when the name is unpigz or gunzip.
- Fix permissions security problem before output is closed.
pigz version 2.2.4 has been released and is now available at http://zlib.net/pigz/ . The main changes since 2.2.3 are:
- Improve the portability of printing the off_t type
- Fix bug in zip (-K) output
- Remove thread portability #defines in pigz.c
pigz version 2.2.3 is now available at http://zlib.net/pigz/ . The main changes since 2.1.7 are:
- Add --rsyncable functionality
- Improve thread portability
- Fix the printing of 32-bit check values when listing
pigz version 2.1.7 is now available at http://zlib.net/pigz/ . The changes from 2.1.6 are:
- Avoid unused parameter warning in reenter()
- Don't assume 2's complement ints in compress_thread()
- Replicate gzip -cdf cat-like behavior
- Replicate gzip -- option to suppress option decoding
- Test output from make test instead of showing it
- Updated pigz.spec to install unpigz, pigz.1 [Obermaier]
- Add PIGZ environment variable [Mueller]
- Replicate gzip suffix search when decoding or listing
- Fix bug in load() to set in_left to zero on end of file
- Do not check suffix when input file won't be modified
- Decompress to stdout if name is "*cat" [Hayasaka]
- Write data descriptor signature to be like Info-ZIP
- Update and sort options list in help
- Use CC variable for compiler in Makefile
- Exit with code 2 if a warning has been issued
- Fix thread synchronization problem when tracing
- Change macro name MAX to MAX2 to avoid library conflicts
- Determine number of processors on HP-UX [Lloyd]
= Version 0.9.9
Added support for backslashes in zip files (generated by the default Windows
zip packer for example) and comment sections with the comment length set to zero
even though there is actually a comment.
* liblzma:
- Fix lzma_index_init(). It could crash if memory allocation failed.
- Fix the possibility of an incorrect LZMA_BUF_ERROR when a BCJ
filter is used and the application only provides exactly as
much output space as is the uncompressed size of the file.
- Fix a bug in doc/examples_old/xz_pipe_decompress.c. It didn't
check if the last call to lzma_code() really returned
LZMA_STREAM_END, which made the program think that truncated
files are valid.
- New example programs in doc/examples (old programs are now in
doc/examples_old). These have more comments and more detailed
error handling.
* Fix "xz -lvv foo.xz". It could crash on some corrupted files.
* Fix output of "xz --robot -lv" and "xz --robot -lvv" which
incorrectly printed the filename also in the "foo (x/x)" format.
* Fix exit status of "xzdiff foo.xz bar.xz".
* Fix exit status of "xzgrep foo binary_file".
* Fix portability to EBCDIC systems.
* Fix a configure issue on AIX with the XL C compiler. See INSTALL
for details.
* Update French, German, Italian, and Polish translations.
Clean up other problems revealed by gcc -Wall:
- pass (char *)NULL, not 0, as the last arg of execlp, to avoid
crashes on LP64 platforms;
- use signal.h, not sys/signal.h;
- use utime(3) correctly;
- use W* macros and sys/wait.h instead of hardcoding bit patterns.
Note in the DESCR that the package has been patched, as the license
might be construed to require this.
PKGREVISION -> 2.
v0.0.7 (2012-06-02):
* Extraction and listing of Unix symbolic links is now supported.
* Decompression code for the "old" PMarc archive algorithm (-pm1-) has
been added.
* Support has been added for Unix LHA level 0 header extended areas
(so level 0 archives with Unix metadata are now listed and extracted
correctly).
* The Unix permissions field in the list output for directory entries
has been fixed.
* The library header files have been fixed so that they can be included
in C++ code.
* The LHADecoder interface, for extracting raw compressed data, has been
added to the public header files.
* The Unix LHA test archives have been regenerated and improved.
* A "ghost testing" tool has been added for testing ghost compression
algorithms such as -pm1-.
* The list output tests have been fixed to be repeatable regardless of
the current date.
* Build of the fuzzer tool has been fixed.
v0.0.6 (2012-05-17):
* When the -w option is used during extraction, the path specified
is now first created if it does not already exist.
* The command line tool now exits with a failure return code if an
error occurs during extraction.
* A "catch-all" header file (lhasa.h) has been added.
* The public header files installed with the library can now be
included and used externally.
* A pkgconfig file is now installed as part of the library
(thanks Jan Engelhardt).
* Make targets have been added for building Doxygen documentation
and including them as part of the distribution.
v0.0.5 (2012-05-08):
* Architecture-specific functions for running on Windows have now been
fully implemented, and the command line tool passes all tests in the
test suite on Windows (thanks roytam1 for bug reports).
* Bug fixed where the command line tool would enter an infinite loop
when extracting a truncated archive (thanks Jon Dowland).
* Support added for archives with level 0 headers and Unix path
separators (thanks roytam1).
* The test suite now runs correctly outside of the Europe/London time
zone (thanks Thomas Klausner).
* A .spec file is now included for building rpm packages.
Lhasa is a library for parsing LHA (.lzh) archives and a free
replacement for the Unix LHA tool.
Currently it is only possible to read from (i.e., decompress)
archives; generating (compressing) LHA archives may be an enhancement
for future versions. The aim is to be compatible with as many
different variants of the LHA file format as possible, including
LArc (.lzs) and PMarc (.pma).
The command line tool aims to be interface-compatible with the
non-free Unix LHA tool (command line syntax and output), for
backwards compatibility with tools that expect particular output.
* Fix allocation in runtime stub for darwin.macho-entry (i386 and amd64).
* Compress shared library on ELF i386 only [ld.so threatens even this case].
* Attempt to suport ELF on QNX 6.3.0 for armel (experimental).
* Better diangostic when ELF -fPIC is needed.
* PT_NOTE improvements for *BSD.
* Preserve more ELF .e_flags on ARM.
* Minor code improvements for ELF stubs
* Defend against another flavor of corrupt PE header.
* bug fixes
because quota-related FFS header reorganization caused the definition
of the FFS struct direct to no longer be visible; however, on older
NetBSD since struct direct and struct dirent diverged (which was some
time back) it would have built successfully unless given -Wall, but
not worked.
dirent rather than the FFS struct direct. As this has been POSIX for
at least twenty years I very, very much doubt there are any exceptions
left in the wild.
Fixes build on NetBSD-current.
Update to 4.1.1
* Convert to use Linux binary on compat_linux, instead of old BSD binary.
Changelog:
* Add some new options (ch etc.)
* Change option's behavior (-o etc.)
* Bugfixes
archivers/p5-Archive-Peek to fulfil requirements of scheduled
devel/p5-Parse-CPAN-Packages update.
This module lets you peek into archives without extracting them.
== 0.1.0
* <b>Add XZ::StreamReader and XZ::StreamWriter for io-like behaviour.</b>
* New dependency on the +io-like+ gem.
* <b>Add Ruby 1.8 compatibility.</b> Thanks to Christoph Plank.
* We now have proper unit tests.
Ark is a program for managing various archive formats within the KDE
environment.
Archives can be viewed, extracted, created and modified from within Ark.
The program can handle various formats such as tar, gzip, bzip2, zip, rar
and lha (if appropriate command-line programs are installed).
Lziprecover is a data recovery tool and decompressor for files in the
lzip compressed data format (.lz) able to repair slightly damaged files,
recover badly damaged files from two or more copies, extract undamaged
members from multi-member files, decompress files and test integrity of
files.
Lziprecover is able to recover or decompress files produced by any of
the compressors in the lzip family; lzip, plzip, minilzip/lzlib, clzip
and pdlzip. This recovery capability contributes to make the lzip format
one of the best options for long-term data archiving.
Lziprecover is able to efficiently extract a range of bytes from a
multi-member file, because it only decompresses the members containing
the desired data.
Lziprecover has been moved to its own package.
Inability to change output file attributes has been downgraded from
error to warning.
Compression time of option "-0" has been reduced by 2%.
A reorganization of the compression code has been made.
A small change has been made in the "--help" output and man page.
Quote characters in messages have been changed as advised by GNU Coding
Standards.
Configure option "--datadir" has been renamed to "--datarootdir" to
follow GNU Standards.
archivers/p5-Archive-Tar from 1.82 to 1.84.
- adding comment why Perl5.10.1 is enough to fulfil IO::Compress::*
Upstream changes:
* important changes in version 1.84 02/03/2012 (HMBRAND)
- ptar now supports -T option [rt#75473]
- ptar now supports dashless options [rt#75475]
- auto-encode filenames marked as UTF-8 [rt#75474]
ChangeLog from upstream:
* important changes in version 1.82 21/11/2011 (CDRAKE)
- Adjustments to handle files >8gb (>0777777777777 octal)
- Feature to return the MD5SUM of files in the archive
This package has a history of repacking the tarball, but checking the
same name. Apparently, it has happened twice before, and this a third
time. Regenerating the distinfo allows the package to build again,
whereas before the distinfo file was unretreivable.
DragonFly couldn't build GNU Sharutils. Upon inspection, it was seen
that the last version in pkgsrc was at least 11 years old. This commit
updates the GNU Sharutils to the latest version without patches.
Tested on DragonFly and NetBSD. The Linux condition dealing with the
glibc gettext workaround was removed with the assumption that this is
no longer needed, but somebody else should test and verify this.
Select changes since 4.2 (according to NEWS):
=============================================
4.3.50: new trans: cs da el es gl ru tr zh_TW
updated: de fr ja nl sv
4.3.51: Norwegian split to no/@nynorsk to nb and nn
Updated library files and m4 macros from fileutils-4.1.9
4.3.52: Fix Y2K bug (shar)
Fix temp file race (shar)
(N/A) allow spaces in file names (uudecode)
4.3.60: Better -Z option handling for systems without compress
4.3.61: Unspecified bugs fixes
4.3.70: Update de tr translations
(N/A) fix uudecode output handling
Turn off compress link default
4.3.71: Update da de translations
4.3.72: Update fr sv translations
4.3.73: Add support for large files (e.g. > 2 Gib on 32-bit hosts)
4.3.74: Updated fr translation
Unspecified portabilitity fixes
4.3.75: New translations: ca et hu
Updated translations: da de ja sv tr zh_TW.
Add bzip2 support
Fix unspecified compatiblity issues
4.3.76: Updated translations: de et fr sv tr
4.3.77: Fixed buffer overrun exploit
4.3.78: infrastructure updates
4.3.79: New temporary file handling to avoid buffer overrun exploit and
theoretical timing hole (unshar)
Unspecified new translations added + updates
4.3.80: Fix temporary file unlink bug
4.3.81: True64 compatibility fix
4.4: intmax_t checks added
4.5: Fix unspecified bug in unshar
Update usage examples
4.5.1: Fix memory usage bug in shar
4.5.2: Fix test and update some translations
4.5.3: Add unspecified translation, update another
Move to libtool 1.5.20
4.6: New Japanese translation
4.6.1: Translation cleanup, infrastructure changes
4.6.2: Better output diagnostics
4.6.3: Recognize "end\r\n" as equal to "end" and "end\n"
Fix readdir duplicate declaration
4.7.1: (N/A) uudecode no longer creates output file names with trailing
white space.
4.9: Fix shar script shell quoting issues with translations
4.10: Handle clobber option correctly in generated scripts
4.11: Remove mailshar because mail-files was broken
tar ball handling) from 1.76 to 1.80.
Upstream changes:
* important changes in version 1.80 13/10/2011
- patch from Rocky Bernstein to add file chown() method [rt#71221]
* important changes in version 1.78 08/09/2011
- patch from Rocky Bernstein to add chown() method [rt#70623]
- blead patch from Alexandr Ciornii to resolve [perl#78708]
Zutils is a collection of utilities able to deal with any combination
of compressed and non-compressed files transparently. If any given
file, including standard input, is compressed, its decompressed
content is used. Compressed files are decompressed on the fly; no
temporary files are created. These utilities are not wrapper scripts
but safer and more efficient C++ programs. In particular the
"--recursive" option is very efficient in those utilities supporting it.
The provided utilities are:
Zcat - Decompresses and copies files to standard output.
Zcmp - Decompresses and compares two files byte by byte.
Zdiff - Decompresses and compares two files line by line.
Zgrep - Decompresses and searches files for a regular expression.
Ztest - Tests integrity of compressed files.
* lzdiff and lzgrep are now separate package, zutils (not packaged yet).
Changelog:
2011-04-30 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.12 released.
* main.cc: 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
slower.
* encoder.h encoder.cc: 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%.
* main.cc (decompress): Print only one status line for each
multimember file when only one `-v' is specified.
* main.cc (decompress): Print up to 6 bytes of trailing garbage
when `-vvvv' is specified.
* main.cc (open_instream): Do not show the message
" and `--stdout' was not specified" for directories, etc.
* lziprecover.cc: If `-v' is not specified show errors only.
* testsuite/unzcrash.cc: Use Arg_parser.
* testsuite/unzcrash.cc: Added new options `-b', `-p' and `-s'.
2010-09-16 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.11 released.
* Added new option `-0' which produces a compression speed and
ratio comparable to those of `gzip -9'.
* fast_encoder.h fast_encoder.cc: New files.
* main.cc: 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).
* encoder.cc: Compression of option -9 has been slightly increased.
* lziprecover.cc: Added new option `--merge' which tries to
produce a correct file merging the good parts of two or more
damaged copies.
* lziprecover.cc: Added new option `--repair' for repairing a
1-byte error in single-member files.
* decoder.cc (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.
* lziprecover.cc: Added new option `--force'.
* lziprecover.cc: Added new option `--output'.
* lziprecover.cc: Added new option `--split' to select the until
now only operation of splitting multimember files.
* lziprecover.cc: If no operation is specified, warn the user
and do nothing.
* main.cc: Fixed warning about fchown's return value being ignored.
* decoder.cc: `-tvvvv' now also shows compression ratio.
* main.cc: Set stdin/stdout in binary mode on MSVC and OS2.
* New examples have been added to the manual.
* 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 <ant_diaz@teleline.es>
* Version 1.10 released.
* decoder.h: Input_buffer integrated in Range_decoder.
* main.cc: File specified with option `-o' is now created with
mode 0666 if umask allows it, deleted if interrupted by user.
* main.cc: New constant `o_binary'.
* main.cc: 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).
* Makefile.in: Added quotes to directory names.
2010-01-17 Antonio Diaz Diaz <ant_diaz@teleline.es>
* Version 1.9 released.
* main.cc (main): Return at least 1 if closing stdout fails.
* Makefile.in: Added `--name' option to help2man invocation.
* testsuite/check.sh: Use `test1' instead of `COPYING' for testing.
2009-09-02 Antonio Diaz Diaz <ant_diaz@teleline.es>
* 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 sistems where uint32_t != unsigned int.
a new version number. New DIST_SUBDIR, bump PKGREVISION to 2.
------
Relase notes for SZIP 2.1
July 14, 2010
Bug fixes:
-- None.
New features:
-- CMake support added, which allows for shared or static builds.
ruby-xz is a basic binding for liblzma that allows you to create and
extract XZ-compressed archives. It can cope with big files as well as
small ones, but doesn't offer much of the possibilities liblzma itself
has.
Changes in 1.1.5 (Jul 16, 2011)
- Fixed excessive output permissions while compress/decompress
is in progress (bug #807536)
Changes in 1.1.4 (Apr 22, 2011)
- Fixed hang on decompress with --ignore-trailing-garbage=1 when
producer is interrupted on trailing garbage (bug #762464)
- Added example to help for decompression piped to tar (bug #746806)
- Fixed typo in Trailing Garbage printed message (bug #746799)
Changes in 1.1.3 (Mar 27, 2011)
- Print trailing garbage errors even when in quiet mode (bug #743635)
- Default extension on decompress of .tbz2 changed to .tar for
bzip2 compatibility (bug #743639)
- Fixed hang on decompress with --ignore-trailing-garbage=1 and higher
numCPU (e.g. > 2) (bug #740502)
Changes in 1.1.2 (Feb 19, 2011)
- Fix directdecompress segfault when destination file can't be
opened (e.g. read-only) (bug #717852)
- Implemented --ignore-trailing-garbage feature (bug #594868)
- Fixed hang on decompress of some truncated archives (bug #590225)
- Pulled an error check out of normal logic block for clarity
- Debug print added after BZ2_bzDecompress to track it's return code.
- A debug print fixed in queue::remove
- Increased max memory usage limit from 1GB to 2GB
- If no -m switch given on command line, default max memory limit
will now automatically increase from 100 MB to minimum amount
of memory required to support the number of CPUs requested
- Improved performance when output buffer is full
- Fixed bug which caused hang while decompressing prematurely
truncated bzip2 stream
- Consumer_decompress throttling modified to prevent potential
deadlock/infinite loop in certain situations (Thanks to Laszlo
Ersek for finding and helping track down the cause of this bug)
- Fixed deadlock bug and performance issue when consumer working
with long bzip2 sequences (Thanks to Tanguy Fautre for finding)
- Fixed error message for block size range (max size was wrong)
- Moved #include <pthread.h> from pbzip2.cpp to pbzip2.h to fix
OS/2 compiler issue
Changes in 1.1.1 (Apr 17, 2010)
- Modified decompression to use low-level libbz2 API to improve
performance of long bzip2 streams of large single-stream bzip2
blocks
- This release should now decompress files created with bzip2
at least as fast as bzip2 or slightly faster
- Handle decompression of long bzip2 streams incrementally
instead of loading whole stream in memory at once
- Fixed issue in safe_cond_timed_wait which caused segmentation
fault when compiled in DEBUG mode
- Fixed issue with Sun Studio compiler - required explicit
declaration of static const members in .cpp
Changes in 1.1.0 (Mar 13, 2010)
- Added support for multi-threaded decompression using STDIN/pipes
- Added code to support throttling compression to prevent memory
exhaustion with slow output pipe
- Added -m switch to specify max memory usage amount before
throttling starts (default 100MB)
- Fixed bug that did not allow command line parameters to be used
when compressing data from STDIN
- Added long options to man page and -h output
- Added --loadavg, --read long options
- Added support for CPU detection on Win32
- Major improvements to protection of shared variables, error and
signal handling, program termination
- Added -S switch for thread stack size customization
(needs USE_STACKSIZE_CUSTOMIZATION defined when compiling)
- Fixed command line parsing bug for -b, -p, -m switches
- Fixed infinite loop when fileWriter fails to create output
file at start
- Fixed bug that deleted input filename (with .bz2 extension for
compression and without .bz2 extension for decompression) when
a user interrupts process with CTRL-C while outputting to STDOUT
- Fixed bug where 0 byte files were not processed properly when
data input from STDIN
- Ignores fwrite return and passes chown errors in writeFileMetaData
if effective uid root
- OutputBuffer usage redesigned as fixed-size circular buffer
- Lots of minor bugs fixed (see AUTHORS or pbzip2.cpp for full details)
- Special thanks to Yavor Nikolov for providing the majority of
contributions to this release and a significant amount of testing
clang objects. Other half of last weekend's patch, which I apparently
erased by accident (or something) before committing.
While here also patch up some illegal type mixing in tr2.c that gcc
warns about.
* liblzma fixes:
- A memory leak was fixed.
- lzma_stream_buffer_encode() no longer creates an empty .xz
Block if encoding an empty buffer. Such an empty Block with
LZMA2 data would trigger a bug in 5.0.1 and older (see the
first bullet point in 5.0.2 notes). When releasing 5.0.2,
I thought that no encoder creates this kind of files but
I was wrong.
- Validate function arguments better in a few functions. Most
importantly, specifying an unsupported integrity check to
lzma_stream_buffer_encode() no longer creates a corrupt .xz
file. Probably no application tries to do that, so this
shouldn't be a big problem in practice.
- Document that lzma_block_buffer_encode(),
lzma_easy_buffer_encode(), lzma_stream_encoder(), and
lzma_stream_buffer_encode() may return LZMA_UNSUPPORTED_CHECK.
- The return values of the _memusage() functions are now
documented better.
* Fix command name detection in xzgrep. xzegrep and xzfgrep now
correctly use egrep and fgrep instead of grep.
* French translation was added.
* A bug in the LZX decompressor was fixed.
* cabextract is now more tolerant when processing cabinet sets.
* cabextract is now compatible with even more compilers, and
now supports 64-bit file I/O on platforms where it's completely
native, like Mac OS X 10.6 and Fedora x86_64.
* cabextract will no longer print "library not compiled to support
large files" while reading small files.
* The Windows CE installation format document was improved.
* Fix the --verify option, which broke in version 1.24.
* Fix storing long sparse file names in PAX archives.
* Fix correctness of --atime-preserve=replace.
* Work around POSIX incompatibilities on FreeBSD, NetBSD and Tru64.
* Fix bug with --one-file-system --listed-incremental.
* Converted the configure system to non-recursive Automake.
* Applied some overdue speed optimizations for modern x86/x64 architectures
and current compilers like gcc 4.6 and MSVC 2010.
* LZMA2 decompressor now correctly accepts LZMA2 streams with no
uncompressed data. Previously it considered them corrupt. The
bug can affect applications that use raw LZMA2 streams. It is
very unlikely to affect .xz files because no compressor creates
.xz files with empty LZMA2 streams. (Empty .xz files are a
different thing than empty LZMA2 streams.)
* "xz --suffix=.foo filename.foo" now refuses to compress the
file due to it already having the suffix .foo. It was already
documented on the man page, but the code lacked the test.
* "xzgrep -l foo bar.xz" works now.
* Polish translation was added.
0.10 [2010/03/18]
* Added zip_get_num_files(), deprecated zip_get_num_entries().
* Better windows support.
* Support for traditional PKWARE encryption added.
* Fix opening archives with more than 65535 entries.
* Fix some memory leaks.
* Fix cmake build and installation
* Fix memory leak in error case in zip_open()
* Fixed CVE-2011-0421 (no security implications though)
* More documentation.
* Assorted minor updates.
Changes in 1.02rc1:
* Made lzop compile with LZO v2.
* Under Windows files are now opened using the _O_SEQUENTIAL flag,
which results in a major speedup when (de)compressing large files.
* Under MacOS X, the configure script now will use the '-no-cpp-precomp'
compiler option in order to work around bugs in Apple's native
"smart" preprocessor.
* File sizes > 2GB are correctly displayed.