zip-archive

Library for creating and modifying zip archives. http://github.com/jgm/zip-archive

Version on this page:0.2.3.7
LTS Haskell 9.5:0.3.1.1
Stackage Nightly 2017-09-20:0.3.1.1
Latest on Hackage:0.3.1.1
BSD3 licensed by John MacFarlane
Maintained by jgm@berkeley.edu

Module documentation for 0.2.3.7

zip-archive

The zip-archive library provides functions for creating, modifying, and extracting files from zip archives.

Changes

zip-archive 0.3.1.1

* readEntry: Read file as a strict ByteString. This avoids
problems on Windows, where the file handle wasn't being closed.
* Added appveyor.yml to do continuous testing on Windows.
* Test suite: remove need for external zip program (#35).
Instead of creating an archive with zip, we now store
a small externally created zip archive to use for testing.

zip-archive 0.3.1

* Don't use a custom build (#28).
* Renamed executable Zip -> zip-archive, added --debug option.
The --debug option prints the intermediate Haskell data structure.

zip-archive 0.3.0.7

* Fix check for unix file attributes (#34).
Previously attributes would not always be preserved
for files in zip archives.

zip-archive 0.3.0.6

* Bump bytestring lower bound so toStrict is guaranteed (Benjamin Landers).

zip-archive 0.3.0.5

* Fix bug in `OptLocation` handling (EugeneN). When using
`OptLocation folder False` (for adding files to an archive into a
folder without preserving full path hierarchy), original files'
names were ignored, resulting in all the files getting the same name.

zip-archive 0.3.0.4

* Fix `toArchive` so it doesn't use too much memory when a data
data descriptor holds the size (Michael Stahl, #29).
The size fields in the local file headers may not contain valid values,
in which case the sizes are stored in a "data descriptor" that follows
the file data. Previously handling this case required reading the
entire archive is a `[Word8]` list. With this change, `getWordsTilSig`
iteratively reads chunks as strict ByteStrings and converts them to
a lazy ByteString at the end.

zip-archive 0.3.0.3

* Test suite: use withTempDir to create temporary directory.
This should help fix problems some have encountered with the
test suite leaving a temporary directory behind.

zip-archive 0.3.0.2

* Fix test suite so it runs on Windows.
* Zip executable: get version from cabal `Paths_zip_archive` (#27).

zip-archive 0.3.0.1

* Set `eVersionMadeBy` to 0 (default) in `toEntry`, since we are
setting external attributes to 0. See jgm/pandoc#2822.
Only to `eVersionMadeBy` to UNIX if we actually read file
attributes on a UNIX system.

zip-archive 0.3

* Support preservation of file modes on Posix (Dan Aloni, #26).
* Add `eVersionMadeBy` field to `Entry` (API change).
* Export `ZipException` (API change).
* `fromEntry` no longer checks for CRC32 match. Previously, it issued
`error` if the match failed. CRC32 match is now checked in `writeEntry`
instead, and a `CRC32Exception` is raised if the checksum doesn't match.
* Test suite: return nonzero status if there are test failures.
Previously we mistakenly did this only on 'errors', not failures.
* Test suite: don't use -9 with zip as it isn't always available.
* Use .travis.yml that builds on both stack and cabal.

zip-archive 0.2.3.7

* Declared test suite's dependency on 'zip' using custom Setup.lhs (#21,#22).

zip-archive 0.2.3.6

* Removed hard-coded path to zip in test suite (#21).
* Removed misplaced build-depends in cabal file.

zip-archive 0.2.3.5

* Allow compilation with binary >= 0.5. Note that toArchiveOrFail
is not safe when compiled against binary < 0.7; it will never
return a Left value, and will raise an error if parsing fails,
just like toArchive. This is documented in the haddocks.
This is ugly, but justified by the need to have a version
of zip-archive that compiles against older versions of binary.

zip-archive 0.2.3.4

* Make sure all path comparisons compare normalized paths.
So, findEntryByPath "foo" will find something stored as "./foo"
in the zip container.

zip-archive 0.2.3.3

* Better normalization of file paths: "./foo/bar" and "foo/./bar"
are now treated the same, for example. Note that we do not
yet treat "foo/../bar" and "bar" as the same.

zip-archive 0.2.3.2

* Removed lower bound on directory (>= 1.2), which caused build
failures with GHC 7.4 and 7.6.
* Added travis script for automatic testing on 3 GHC versions.

zip-archive 0.2.3.1

* Require binary >= 0.7 and directory >= 1.2. The newer binary
is needed to provide toArchiveOrFail. The other change is
mainly for convenience, to avoid lots of ugly conditional
compilation.

zip-archive 0.2.3

* Export new function `toArchiveOrFail`. Closes #17.
* Set general purpose bit flag to use UTF8 in local file header.
Otherwise we get a mismatch between the flag in the central
directory and the flag in the local file header, which causes some
programs not to be able to extract the files. Closes #19.

zip-archive 0.2.2.1

* Fix a stack overflow in getWordsTillSig (Tristan Ravitch).

zip-archive 0.2.2

* Set bit 11 in the file header to ensure other programs
recognize UTF-8 encoded file names (Tobias Brandt).

zip-archive 0.2.1

* Added OptLocation, to specify the path to which a file
is to be added when readEntry is used (Stephen McIntosh).

comments powered byDisqus