Bugfix release:
- bug #1404812 add support for DESTDIR in Makefile (thanks to Ryan Schmidt)
- bug #1429181 fix bad CYGWIN define (thanks to Marco Atzeri)
- bug #1337949 rm unused vars; add hasInFile flag (thanks to Mingxing Zhang)
- bug #1524909 - output sometimes truncated on redirected -cd
Problems found with existing distfile for eagle:
distfiles/bicom101.zip
distfiles/szip-2.1nb3/szip-2.1.tar.gz
distfiles/xmill-0.9.1.tar.gz
No changes made to these distinfo files.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
Changes in 1.1.18:
- Fixed bug of metadata unpreserved on empty files compress (bug #1011021)
Changes in 1.1.17:
- Fixed refusal to write to stdout on -dc from stdin (bug #886628)
- Fixed occasional failure on decompress with --ignore-trailing-garbage=1
with multiple bad blocks in the archive (bug #886625)
Changes in 1.1.16:
- Fixed bug - deadlock due to unsynchronized broadcasts (bug #876686)
- Prevent deletion of input files on error (bug #874543)
- Document how to compress/decompress from standard input (bug #820525)
- Added more detailed kernel error messages (bug #874605)
- Fixes for error handling in muliti-file processing (bug #883782)
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
Changes in 1.0.5 (Jan 08, 2009)
- Now properly complains about trying to read or write compressed
data to terminal, and exits
- Further fixed CPU detection crash
- Updated Makefile to force deletion when cleaning
Changes in 1.0.4 (Dec 21, 2008)
- Added support to use pbzip2 with tar (--use-compress-prog=pbzip2).
- Added support for all remaining bzip2 command line options so
pbzip2 can be used as a drop-in replacement for bzip2.
- Fixed bug that would cause pbzip2 to crash if detection of the
number of processors failed.
- Now prevents uclibc from being exposed to its lack of a
getloadavg function.
Changes in 1.0.3 (Oct 31, 2008)
- Added support for compression using stdin and pipes! Thanks
to Ivan Voras for supplying the patch to enable this feature.
- Added support for decompression using stdin and pipes but
currently limited to only a single thread
- Added support for testing bzip2 files using stdin and pipes
- Added support to directly decompress files without using
threads when files are small or the system only has 1 CPU.
This mode is also used if the .bz2 file contains only 1
bzip2 stream.
- Added support to compress 0 byte files like bzip2
- Added support for pbzcat symlink to automatically specify
decompression mode to stdout, just like bzcat
- Increased max supported path and filename from 255 to 2048
characters
- Updated RPM spec to support SUSE Linux
- Updated help display to show how many CPUs autodetect has found
- Code cleanup
Changes since 1.0:
Changes in 1.0.2 (Jul 25, 2007)
- Added support to directly compress files without using threads
when files are smaller than the specified block size or the
system only has 1 CPU. This will speed things up considerably
if you are compressing many small files. You can force this
behaviour by using -p1
- Added support for pbunzip2 symlink to automatically specify
decompression mode
- Changed pbzip2 exit code behaviour to match bzip2 for all error
states (ie: trying to compress a file that already has a .bz2
extension)
Changes in 1.0.1 (Mar 20, 2007)
- Added #ifdef PBZIP_NO_LOADAVG to remove load average code for
UNIX systems that do not support it such as HP-UX and OSF1
Changes since 0.9.6:
Changes in 1.0 (Mar 14, 2007)
- Official non-beta release!
- Fixed minor memory leak in queueDelete()
- Added support for UNIX systems to modify max number of CPUs used
based on load average
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
Honor PKGMANDIR.
Changes in 0.9.5 (Dec 31, 2005)
- Changed default output to silent like bzip2 and added -v switch
to make verbose
- Added support to autodetect number of CPUs on OSX
- Added support to compile on Borland and other Windows compilers
using pthreads-win32 open source library
- Added decompression throttling in case too much backlog in filewriter
- Fixed bug from patch in 0.9.4 that limited file block size to 900k
- Fixed bug that caused file output to fail with some large files
- Fixed pthreads race condition that could cause random segfaults
- Fixed pthreads resource issue that prevented pbzip2 from compressing
a large number of files at once
Changes in 0.9.4 (Aug 30, 2005)
- Fixed major bug that prevented pbzip2 from uncompressing files
created with a BWT block size other than default 900k (oops!)
- Fixed some bugs in the command line parser
- Code cleanup
- Updated RPM spec to match Fedora Extras policy
Changes in 0.9.3 (Aug 22, 2005)
- Added sanity check to ensure integers are the size we expect
- Ported code to compile under MinGW in Windows
- Small code cleanup
- Added ChangeLog
- Added man page
- Added AUTHORS file
- Renamed LICENCE.txt to COPYING
- Renamed README.txt to README
- Updated RPM spec file in preparation for inclusion into Fedora Extras
- Moved ChangeLog info from pbzip2.cpp into this file
- Removed extra spaces/tabs in pbzip2.cpp
rely on PROG_CXX being known to <bsd.prog.mk>. This has been a problem
on some non-NetBSD platforms. Noted by minskim. Tested on NetBSD-1.6.2 and
Solaris/SunPro.
New in 0.9.2:
* Created workaround for a major pthreads problem (on Linux at
least) that would cause segfaults and missed signals in the
pthreads library itself when mutexes or signals were
created/destroyed too quickly. This used to happen when
processing multiple files, but now pbzip2 only generates its
mutexes and signals at the beginning and reuses the same ones
for multiple files. Special thanks to George Chalissery for help
with this one.
* Increased size of BZIP2 header match from 56 bits to 72 bits for
more accurate detection
* Modified some buffers to use the vector class for easier memory
management and to eliminate one read pass of the input data for
decompression so should be slightly faster.
* Now checks if input file exists before checking if output file
already exists (when not using -f)
* Now checks to ensure input is regular file and not a directory
before processing
* Now deletes input file only if output file exists and is greater
than 0 bytes (-k will always preserve input file)
* Now checks input file for bzip2 header before trying to
decompress file
* Minor code cleanup
New in 0.9.1
* Fixed bug: -c switch now implies -k so input file is not deleted
when data is output to stdout
New in 0.9.0:
* Added -c switch for data output to stdout
* Added -t switch to test integrity of compressed data
* Added autodetection for # of CPUs on supported platforms and
made detected value default # CPUs to use
* Fixed bug where pbzip2 processed 0 byte files
* Tried to make program exit codes the same as bzip2
The pbzip2 program is a parallel version of bzip2 for use on shared
memory machines. It provides near-linear speedup when used on true
multi-processor machines and 5-10% speedup on Hyperthreaded machines.
The output is fully compatible with the regular bzip2 data so any
files created with pbzip2 can be uncompressed by bzip2 and vice-versa.