YUI Compressor is a JavaScript and CSS minifier written in Java. This package
bundles the YUI Compressor JAR file to ease its use in Python projects. Note
that you still need to have Java Runtime Environment installed.
27 February 2014 Ike Devolder
* release: 0.6.5
* fix blocksize calculation
25 February 2014 JCF Ploemen
* lintian warning spelling fix
7 February 2014 Ike Devolder
* add manfile for par2
29 January 2014 Jan van Haarst
* README in Markdown
21 January 2014 Ike Devolder
* add spelling fixes to cmdline output
18 January 2014 Jan van Haarst
* fixed some spelling
6 January 2014 Ike Devolder
* simplify FindFiles
4 January 2014 Ike Devolder
* release: 0.6.4
* when directory is removed, recreate
* add test to verify directory behaviour
* add test with valgrind
16 December 2013 Ike Devolder
* allow verification of files even with ducplicates in parfiles
15 December 2013 Ike Devolder
* avoid adding of duplicates
14 December 2013 Ike Devolder
* release: 0.6.3
* rework original tests so parallelisation is no issue
* add test8 which makes sure the paths stored are relative
* add test9 rename wrongly named file, passed to par2
result is correctly named files after repair
13 Decebmer 2013 Ike Devolder
* move tests in separate folder, tests will be extended
and otherwise eventually clutter the source too much
9 December 2013 Ike Devolder
* rework parfilename handling + it fixes passing par
filename without extension for repair
7 December 2013 Ike Devolder
* release: 0.6.2
* basepath was not set correctly in restoring of 'old' way
5 December 2013 Ike Devolder
* release: 0.6.1
* show usage / version / copyright on request
* restore 'old' way of creating make -a optional
30 November 2013 Ike Devolder
* release: 0.6.0
* test8: windows generated recovery files with subdir
* windows recurses in . and .. which leads to deadlock
so dont recurse in folders starting with . on windows
* when recursion happens make sure windows can recover with
unix created par2 files
* fixed fc -> fd typo in windows part of diskfile
* FTBFS fix on GNU/kFreeBSD (by Cyril Brulebois)
* fixed non quiet output when creating par2
* Applied fix preventing a stack overflow (by Robert Schneider)
14 October 2013 Ike Devolder
* Implemented recursion
* NOTE: only for unix like systems
* Windows can be done i guess but i have no access to windows machines
16 June 2013 Ike Devolder
* Implemented initial subdir handling
* added subdir tests
13 June 2013 Ike Devolder
* Fixed failing testsuite
9 December 2012 Ike Devolder
* rework purging of par(2) files because of possible segfaults
and other inconsistencies
4 December 2012 Ike Devolder
* fix purge option so it removes the par files when there is no
repair needed
* add purge option to verify so when there is no repair needed
the par2 files are removed when the purge option is given
30 November 2012 Ike Devolder
* add purge option
remove backup files (mostly .1) and par files on request
**USE AT YOUR OWN RISK
* purge option available in par1 and par2 repair
* fix memory leak when using par1 repair
30 January 2012 Ike Devolder
* add inlining performance improvement of Gerard Putter
* release: 0.5.4
19 January 2012 Ike Devolder
* fix wrongly created par2 files in quiet mode
this was related to the -q -qq fix
* release: 0.5.3
17 January 2012 Ike Devolder
* fix deadlock condition when repairing and filepath is longer
than _MAX_PATH
* increase _MAX_PATH, 255 is no longer of these days
* release: 0.5.2
16 January 2012 Ike Devolder
* fixup 0.5 version display
* "par2 create" dumps core with -q or -qq, but non-quiet mode works fine
FIXED
* removed automake files
* updated copyrights
* release: 0.5.1
12 December 2011 Marcel Partap
* Reanimate par2cmdline development on new github repository
* Merge available distro patches since 2004 0.4 release back upstream
* Release: Version 0.5 ;)
3 January 2005 Peter B Clements
* par2creatorsourcefile.cpp: "offset" must be updated when computing
file and block hashes even if progress is not being displayed.
23 June 2004 Peter B Clements
* diskfile.cpp: Changed DiskFile::GetFileSize for WIN32
so that it uses _stati64() to get the size of a file.
* par2creatorsourcefile.cpp: In UpdateHashes() the test
that adjusts the length of the last block of a file when
before updating the file hash was incorrect.
17 June 2004 Peter B Clements
* par1repairer.cpp, par2repairer.cpp: Report empty files when
scanning for data.
buffer overflows in handling iso9660 and tar images), despite
Joerg telling me I should have better things to spend my time on.
Fixes pulled from
https://bugzilla.redhat.com/show_bug.cgi?id=705849
Bump PKGREVISION.
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)
* Bug fixes
* Fix unquoting of file names obtained via the -T option.
* Fix GNU long link header timestamp (backward compatibility).
* Fix extracting sparse members from star archives.
1.96 24/10/2013
- integrate Package::Constants into Constant module
and remove requirement on it.
1.94 24/10/2013
- install into site if >= 5.012
1.93_02 22/10/2013 (XLAT)
- [rt.cpan.org #78030] symlinks resolution on MSWin32
1.37 Wed 08 Jan 2014
- Need newer Test::More to support done_testing() [thaljef]
1.36 Mon 30 Dec 2013
- Fix error in version update with 1.35 [RT #91744]
1.35 Mon 30 Dec 2013
- fallback on copy if move gives permission denied [github.com/plicease]
1.34 Mon 2 Dec 2013
- Restore svn history from svn.ali.as (thanks H. Merijn Brand)
- #90854 Test 17 in t/03_ex.t is failing
- Allow reading ZIP from seekable streams (like PerlIO::Scalar)
- RT#75197
- Fixes: #76780: Cannot create member called "0" with addString (HAGGAI)
1.33 Sat 9 Nov 2013
- #59102 (Spelling error in manapage) [github.com/dsteinbrunner]
- #86600 typo fixes [github.com/dsteinbrunner]
1.32 Fri 8 Nov 2013
- #89777 Unlink temp files generated by tempFile. [PHRED]
1.31_04 Fri 14 Oct 2011 - Alan Haggai Alavi
- Updated Perl dependency to 5.006 to reflect implicit dependencies
in the code exposed by Perl::MinimumVersion xt test (ADAMK)
- Fixes: #68446: Set compressed size and uncompressed size of an entry to 0
if either of them is 0 (HAGGAI)
- Added $VERSION to crc32 (ADAMK)
1.31_03 Thu 30 Jun 2011 - H.Merijn Brand
- Add decryption support
1.31_02 Wed 9 Mar 2011 - Adam Kennedy
- More fixes by HAGGAI, which he still doesn't detail in Changes
1.31_01 Fri 5 Mar 2010 - Adam Kennedy
- Various fixes by HAGGAI, which he has not yet provided details on:
- Experimental Unicode in file/dir names
0.0941 2013-11-06 21:38:55 America/Toronto
- Fixes version number in lib/Archive/Any.pm
- Previous release had broken permissions.
0.0940 2013-10-18 01:35:34 America/Toronto
- Adds x-bzip2 as per PERLER's patch in RT#67738.
- Converts dist to Dist::Zilla
0.11.2 [2013/12/19]
* Support querying/setting operating system and external attributes.
* For newly added files, set operating system to UNIX, permissions
to 0666 (0777 for directories).
* Fix bug when writing zip archives containing files bigger than 4GB.
* Decompression of archives using the -lhx- file format supported by
unlha32.dll is now supported (thanks Multi for the patch).
* The -p (print to stdout) command line option is now supported.
* The test suite should now run correctly on Windows.
Bugs fixed:
* Bug where archives read from pipes (eg. stdin) were not extracted
beyond the first file in the archive.
* Output when using the -w (extract directory) option now correctly
matches the output of Unix lha.
Compression program optimised for large files. The larger the file and the
more memory you have, the better the compression advantage this will provide,
especially once the files are larger than 100MB. The advantage can be chosen
to be either size (much smaller than bzip2) or speed (much faster than bzip2).
Changes in version 1.15:
Lziprecover can now repair multi-member files with up to one byte error
per member, without having to split them first.
Lziprecover can now merge multi-member files without having to split
them first even if some copies have the header and the trailer damaged.
The chapters "Repairing files", "Merging files" and "Unzcrash" have been
added to the manual.
Changes in version 1.15:
Lzip now shows the progress of compression at verbosity level 2 (-vv).
Decompressing and testing no more show file version.
Option "-n, --threads" is now accepted and ignored for compatibility
with plzip.
The configure script now accepts options with a separate argument.
The chapter "Stream format" and the appendix "Reference source code"
have been added to the manual.
This package contains the unrar library.
unRAR is a utility to extract, test and view the contents of archives
created with the RAR archiver, version 1.50 and above. The unRAR
utility is a minor part of the RAR archiver and contains RAR
uncompression algorithm. UnRAR requires very small volume of memory to
operate.
The license for this software states that "the code may not be used to
develop a RAR (WinRAR) compatible archiver."
Archive::Any::Lite is a fork of Archive::Any. The main difference is this works
properly even when you fork(), and may require less memory to extract a tarball.
On the other hand, this isn't pluggable (this only supports file formats used in
the CPAN toolchains), and this doesn't check mime types (at least as of this
writing).
* POSIX-ism: they have determined that uudecode is not expected
to exit failure when the output file mode cannot be changed.
Either POSIXLY_CORRECT or --ignore-chmod will cause uudecode
to behave this way.
* output file names may be encoded in the uuencoded file.
By specifying '--encode' on the command line, the output
file name will be base64 encoded in the uuencode file.
* lzmadec and liblzma's lzma_alone_decoder(): Support decompressing
.lzma files that have less common settings in the headers
(dictionary size other than 2^n or 2^n + 2^(n-1), or uncompressed
size greater than 256 GiB). The limitations existed to avoid false
positives when detecting .lzma files. The lc + lp <= 4 limitation
still remains since liblzma's LZMA decoder has that limitation.
NOTE: xz's .lzma support or liblzma's lzma_auto_decoder() are NOT
affected by this change. They still consider uncommon .lzma headers
as not being in the .lzma format. Changing this would give way too
many false positives.
* xz:
- Interaction of preset and custom filter chain options was
made less illogical. This affects only certain less typical
uses cases so few people are expected to notice this change.
Now when a custom filter chain option (e.g. --lzma2) is
specified, all preset options (-0 ... -9, -e) earlier are on
the command line are completely forgotten. Similarly, when
a preset option is specified, all custom filter chain options
earlier on the command line are completely forgotten.
Example 1: "xz -9 --lzma2=preset=5 -e" is equivalent to "xz -e"
which is equivalent to "xz -6e". Earlier -e didn't put xz back
into preset mode and thus the example command was equivalent
to "xz --lzma2=preset=5".
Example 2: "xz -9e --lzma2=preset=5 -7" is equivalent to
"xz -7". Earlier a custom filter chain option didn't make
xz forget the -e option so the example was equivalent to
"xz -7e".
- Fixes and improvements to error handling.
- Various fixes to the man page.
* xzless: Fixed to work with "less" versions 448 and later.
* xzgrep: Made -h an alias for --no-filename.
* Include the previously missing debug/translation.bash which can
be useful for translators.
* Include a build script for Mac OS X. This has been in the Git
repository since 2010 but due to a mistake in Makefile.am the
script hasn't been included in a release tarball before.
Changelog:
from 2.4.9 to to 2.4.10
- fixing libdar about dar_manager database corruption that occurred when
deleting the first archive of a base containing a plain file only
existing in that first archive.
- Added code to cleanup databases instead of aborting and reporting
that previously described type of database corruption.
- Added feature when comparing archive with filesystem in order to report
the offset of the first difference found in a file. This was necessary to
help solving the following bug:
- fixed bug in sparse file detection mechanism that could lead in some very
particular (and rare) situations to the loss of one byte from file being
saved. In that case testing the archive reported a CRC error for that
file. So if you keep testing achives in your backup process and have not
detect any problem, you can then keep relying on your old backups. This
bug also expressed when merging archives: dar aborted and reported that a
merged file had a different CRC than the one stored in the archive of
reference.
from 2.4.8 to 2.4.9
- fixed bug: during differential backup dar saved unchanged hard linked inode
when a hard link on that inode was out of the -R root directory. This also
has the effect to always save files with long names on NTFS filesystems (!)
- Adapted patch provided by Kevin Wormington (new messages displayed)
- Fixed syntax error in configure script about execinfo detection
- Removed unused AM_ICONV macro from configure script
- fixed bug met under Cygwin when auxiliary test command failed to link when
libgcrypt was not available.
- updated mini-howto by Grzegorz Adam Hankiewicz
- updating French message translations
- restricted security warning for plain files and hard linked plain files
- fixed display bug in dar_cp when manipulating files larger than 2 GB
- fixed SEGFAULT met when adding to a dar_manager database an archive which
base name is an empty string
- improved error message, reporting the -B included file in which a syntax error
has been met
- modified dar_manager database to consider both ctime and mtime as timestamp
value for data of saved files. This suppresses the warning about badly ordered
archives in database when at some files have been restores from a old
backup.
from 2.4.7 to 2.4.8
- documentation fixes and updates
- improved database listing efficiency
- reduced memory usage of the caching layer in libdar
- fixed self reported bug caused by memory allocation failure
- fixed a SIGSEGV caused by double free in dar_xform when syntax error is
met on command-line
- dar_xform was not able to properly transform archive generated by dar older
than release 2.4.0
- fixed bug that lead dar be unable to remove a directory at restoration time
- replaced old remaining "bcopy" occurrence by a call to memcpy
- fixed compilation warning under ArchLinux
- fixed crash met while creating a backup with on-fly isolation
- fixed libdar behavior when reading a strongly corrupted encrypted archive
from 2.4.6 to 2.4.7
- fixing memory allocation bug in crc class, that lead glibc aborting dar
- reviewed code and replaced some remaining occurences of bzero/bcopy by
their recommended replacement version
- fixed compilation problem under Solaris
- fixed bug that could lead a file to be wrongly reported as different from the
one on filesystem, when that file has been changed while it was saved, then
saved a second time but has its size modified since the first time it was
saved.
from 2.4.5 to 2.4.6
- fixed bug met while interrupting compressed archive creation, the resulting
archive was only readable in --sequential-read mode
- fixed bug met while reading an interrupted archive in sequential reading
mode. It lead dar to not release some objects from memory at the end of
the operation, which displayed an ugly error message from libdar selfcheck
routine.
- fixed message reporting unknown system group when converting gid to name
(was reporting unknow "user" instead of unknown "group")
- removing the $Id:$ macro from file as we moved from CVS to GIT
- updating package to distribute Patrick Nagel's scripts and documentation
- updated URL pointing to Patrick Nagel's web site
- updating documentation describing how to get source code from GIT (no more
from CVS)
- fixed typo in configure.ac
- added info on how to build a brand-new dar tarball from source in GIT
- modifies the end of messages shown by -h option to point to man page for
more _options_ rather than _details_
- replaced − in the HTML generated documentation by a standard ASCII dash
- fixed alignement bug in CRC calculation that lead libdar based application to
crash on sparc-based systems.
from 2.4.4 to 2.4.5
- updated sample scripts to be compatible with dar's --min-digit option
- added missing included file to be able to compile with gcc-4.7.0
- removing an unused variable in filtre.cpp
- fixed a display bug when comparing archive with filesystem, leading to a
segmentation fault (%S in place of %i in mask)
- fixed bug leading dar to not restore some directories from differential
backups when they are absent in the filesystem
- fixed bug that show a "uncaught exception" message at the end of archive
listing for dar shared binaries only, compiled in infinint mode, under
ArchLinux
- updated the configure script to link with libexecinfo when available
- added possibility to disable the use of execinfo in libdar thanks to the
new --disable-execinfo option for the ./configure script
- added Andreas Wolff patch to fix bug under Cygwin (segfault on program
termination).
from 2.4.3 to 2.4.4
- fixed man pages in the NAME section: added whatis entry
- fixed segfault: in the internal error reporting code (delete[] in place of
free())
- fixed bug: dar_manager was not able to read properly the latest generated
databases version when having Extended Attributes recorded for some files
- avoided reporting unreleased memory block when compilation optimization
have been used (dar, dar_manager, dar_cp, dar_slave, dar_xform do all
reported unreleased memory when gcc optimization was used in "infinint" mode)
from 2.4.2 to 2.4.3
- fixed absurd compilation warning about possibly uninitialized variable
- added -ai switch to dar_manager to disable warning about improper file order
in database.
- fixed bug met while changing order of archives in a dar_manager database
- avoiding concurrent use of -p and -Q options, error message shown in that
situation.
- modified slice overwriting detection code to use a single atomic system call
to create a new slice
- replaced delete by delete[] for conversion routine of user/group to uid/gid
- added the possibility to disable speed optimization for large directories
- added memory troubleshooting option --enable-debug-memory
- simplified class CRC implementation
- fixed failed memory release upon exception thrown in class deci
- modified tlv, tlv_list classes and ea_filesystem routines to not require
any corresponding temporary objects in libdar (saves a few new/delete calls)
- fixed silent bug in tlv class: due to the absence of copy constructor and
destructor, some memory was not released and referred after the corresponding
object's destruction
- modified generic_file class to avoid temporary crc objects
- fixed bug in header class that lead unreleased field (this class lacked a
destructor), memory impact was however little: 10 bytes per slice
- fixing bug in class tlv: unreleased memory
- added protection code in class deci to properly release memory against
exception thrown from called routines when user interrupts the operation.
- replace previous internal stack report code by backtrace()/backtrace_symbols()
- complete change of the implementation of the 'special-alloc' feature:
the old code eat too much memory not to be adapted to new features added
in release 2.4.0. This new implementation also bring some speed improvement
from 2.4.1 to 2.4.2
- fixing bug met when reading an archive in sequential-read mode
- fixing bug while filtering in sequential-read mode
- fixing backward compatibility in dar_manager with old archives (wrong dates
for deleted files).
- fixing compilation problem on certain systems (missing #include statement)
- fixing documentation syntax and spelling
The "--keep" (-k) option was added to not delete input files, in line with other tools such as xz, lzip, and bzip2. A decompression issue with certain invalid data in the 'pack' format was fixed. An incorrect overwrite when compiled with optimization was fixed. zgrep's handling of multi-digit context options was fixed. zmore now acts more like 'more'.
Changelog:
* Noteworthy changes in release 1.5 (2012-06-17) [stable]
** Bug fixes
gzip -d now decodes and checks header CRC16 checksums as specified by
the FHCRC section of Internet RFC 1952.
"gzip -d -S '' precious.gz" is now rejected immediately. Before,
that command would emulate "rm -i precious.gz", but with an easily-
misunderstood prompt. I.e., gzip would ask if it's ok to remove the
existing file, "precious.gz". If you made the mistake of saying "yes",
it would remove that input file before attempting to uncompress it.
gzip -cdf now properly handles input consisting of gzip'd data followed
by uncompressed data. Before it would output raw compressed input, too.
For example, now "(printf x|gzip; echo y)|gzip -dcf" prints "xy\n",
while before it would print "x<compressed data>y\n".
gzip -rf no longer compresses files more than once (e.g., replacing
FOO with FOO.gz.gz) on file systems such as ZFS where a readdir
loop that unlinks and creates files can revisit output files.
* Update LICENSE to gnu-gpl-v3
Changelog:
2.11:
Fix mt build.
In copy-in mode, if directory attributes do not permit writing to it, setting them is delayed until the end of run. This allows to correctly extract files in such directories.
In copy-in mode, permissions of a directory are restored if it appears in the file list after files in it (e.g. in listings produced by find . -depth). This fixes debian bug #458079.
Fix possible memory overflow in the rmt client code (CVE-2010-0624).
2.10:
Ensure record headers are properly packed (fix builds on ARM).
Fix exit codes to reliably indicate success or failure of the operation.
Fix large file support.
Support MinGW builds.
Minor bugfixes.
2.9:
Licensed under the GPLv3.
Bugfixes
Honor umask when creating intermediate directories, not specified in the archive (debian bug #430053).
2.8:
Option --owner can be used in copy-out mode, allowing to uniformly override the ownership of the files being added to the archive.
Bugfixes:
Symlinks were handled incorrectly in copy-out mode.
Fix handling of large files.
Fix setting the file permissions in copy-out mode.
Fix CAN-2005-1111
2.7:
Improved error checking and diagnostics
Fixed CAN-1999-1572
Allow to use --sparse in both copy-in and copy-pass.
Fix bug that eventually caused copying out the same hard-linked file several times to archive.
Fix several LFS-related issues.
Fix Debian bug #335580.
to address issues with NetBSD-6(and earlier)'s fontconfig not being
new enough for pango.
While doing that, also bump freetype2 dependency to current pkgsrc
version.
Suggested by tron in PR 47882
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package
Like last time, where this caused no complaints.
Directory paths containing '..' as a directory name are now sanitized,
to prevent malicious archives being able to overwrite arbitrary files on
the filesystem.
Symbolic links are now extracted in a safer way, being created as dummy
files in O_EXCL mode that are overwritten with proper symbolic links at
the end of extraction.
Processing of archives read from IPC pipes (including stdin) has
been fixed.
Changes from previous:
----------------------
2.10 2013-03-25 rurban
- updated bzlib-src from 1.0.2 to 1.0.6
- [cpan #82308] make breaks on 5.17.7 by schubiger
- [cpan #21961] update ppport.h
- [cpan #25002] memBzip() ignores level
keep using default 6, but honor optional level argument
- use -std=c89 on gcc compat compilers
- fix -Wimplicit-int warning for show_bzversion main()
- fix a couple if dangling else corner cases
format string errors, and unused variables.
- [cpan #82576] fix pod formatting errors
- [cpan #48128] support memBunzip BZh header w/o extra size prefix
and grow dest buf dynamically. Tests in t/040-memory.t
- [cpan #40741] fix bzreadline blocked on the broken bz2 files
- [cpan #84223] fix ignored bzinflateInit args
- [cpan #48124] Multiple issues with bzinflate
support PV ref as bzinflate() buffer arg as documented.
support status checks in chunked bzinflate() calls. t/060-inflate.t
- [cpan #49618] fix for win32 nmake + gcc
- fix t/041-error.t bzopen does not work with filehandles with 5.6,
global destruction of IO::Handle mixed up with a socket
- [cpan #36246] compress 0-byte srcfiles correctly. by Jeffrey Ratcliffe.
fixes debian bug 464205
- [cpan #28366] added testcase for double free or corruption on 32 bit, threaded
but could not repro it.
2.11 2013-04-01 rurban
- [cpan #84239] Updated FSF address
- [cpan #68572] Workaround EUMM bug #84345 missing -R
2.12 2013-04-01 rurban
- Fixed META.yml, added META records and SIGN, LICENSE, repository to Makefile.PL,
META.yml is now autogenerated
- added META and POD tests
2.13 2013-04-01 rurban
- Fixed POD coverage
2.14 2013-04-05 rurban
- Fixed solaris gcc issue [cpan #84432] by removing -std=c89
2.15 2013-04-05 rurban
- Silence show_bzversion warnings with make test in t/lib.pl when -lbz2 is unusable.
ParseConfig is duplicated and not needed in t/lib.pl, but I'll leave it there.
* 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%.
File too long (should be no more than 24 lines).
Line too long (should be no more than 80 characters).
Trailing empty lines.
Trailing white-space.
Trucated the long files as best as possible while preserving the most info
contained in them.
COMMENT should not be longer than 70 characters.
COMMENT should not begin with 'A'.
COMMENT should not begin with 'An'.
COMMENT should not begin with 'a'.
COMMENT should not end with a period.
COMMENT should start with a capital letter.
pkglint warnings. Some files also got minor formatting, spelling, and style
corrections.
0.11 [2013/03/23]
* Added Zip64 support (large file support)
* Added UTF-8 support for file names, file comments, and archive comments
* Changed API for name and comment related functions for UTF-8 support
* Added zip_discard()
* Added ZIP_TRUNCATE for zip_open()
* Added zip_set_file_compression()
* Added API for accessing and modifying extra fields
* Improved API type consistency
* Use gcc4's visibility __attribute__
* More changes for Windows support
* Additional test cases
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.