Changelog for zip-archive-

zip-archive * Make build-tools stanza conditional on non-windows. Closes #44. zip-archive * Use custom-setup stanza and specify build-tools. Closes #41. zip-archive * Use createSymbolicLink instead of createFileLink in tests. This allows us to lower the directory lower bound (#40). zip-archive * Fixes for handling of symbolic links (#39, Tommaso Piazza). * Fixes for symbolic link tests, and additional tests. zip-archive 0.3.2 * Add ZipOption to preserve symbolic links (#37, Tommaso Piazza). Add OptPreserveSymbolicLinks constructor to ZipOption. If this option is set, symbolic links will be preserved. Symbolic links are not supported on Windows. * Require binary >= 0.6 (#36). * Improve exit handling in zip-archive program. zip-archive * 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 * Fix check for unix file attributes (#34). Previously attributes would not always be preserved for files in zip archives. zip-archive * Bump bytestring lower bound so toStrict is guaranteed (Benjamin Landers). zip-archive * 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 * 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 * 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 * Fix test suite so it runs on Windows. * Zip executable: get version from cabal `Paths_zip_archive` (#27). zip-archive * 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 * Declared test suite's dependency on 'zip' using custom Setup.lhs (#21,#22). zip-archive * Removed hard-coded path to zip in test suite (#21). * Removed misplaced build-depends in cabal file. zip-archive * 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 * Make sure all path comparisons compare normalized paths. So, findEntryByPath "foo" will find something stored as "./foo" in the zip container. zip-archive * 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 * 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 * 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 * 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).