Changelog of @hackage/zip 2.0.1

Zip 2.0.1

  • Fixed corruption of large entries when zip64 is used. Issue 111.

Zip 2.0.0

  • Unified BZip2Unsupported and ZstdUnsupported into a single data constructor UnsupportedCompressionMethod with a CompressionMethod field.

Zip 1.7.2

  • Now the ZIP64 extra field is only written when it is necessary. Previously it was written unconditionally and it confused some tools.

Zip 1.7.1

  • Fixed compilation with zstd and/or bzip2 disabled.

Zip 1.7.0

  • Set user permissions on linux platform as follows: if an existing file is added, use its permissions; if an entry is generated from a bytestring or a stream, use 0600. This behavior mimics the zip utility.

Zip 1.6.0

  • Added support for Zstandard (zstd) compression

  • Added a Cabal flag -fdisable-zstd to remove the zstd C library dependency and hence support for Zstd entries.

Zip 1.5.0

  • Added the packDirRecur' function.

  • Dropped support for GHC 8.4.

Zip 1.4.1

  • Fixed the build on Mac.

Zip 1.4.0

  • The “version made by” info inside archive now correctly sets Unix as the OS that produced the archive when the library is compiled on Unix. This allows other utilities such as unzip to read and correctly restore file permissions. Issue 62.

  • Added the Codec.Archive.Zip.Unix module.

Zip 1.3.2

  • Fix a bug where removing a temporary file failed in the prescence of async exceptions.

Zip 1.3.1

  • The test suite is now faster.

Zip 1.3.0

  • Dropped support for GHC 8.2 and older.

  • Added a Cabal flag -fdisable-bzip2 to remove the bzip2 C library dependency and hence support for BZip2 entries.

Zip 1.2.0

  • Added the setExternalFileAttrs function and the edExternalFileAttrs field in the EntryDescription record.

Zip 1.1.0

  • Made saveEntry and unpackInto restore modification time of files.

Zip 1.0.0

  • Works with conduit-1.3.0, conduit-extra-1.3.0, resourcet-1.2.0 and bzlib-conduit-0.3.0.

  • Stop depending on path, path-io, and plub-b.

  • Made the module Codec.Archive.Zip.Type non-public.

  • Remove derived instances of Data and Generic for EntrySelector not to expose its inner structure.

  • Change signature of the loadEntry function, its second argument is now just EntrySelector of the entry to add.

  • The second argument of packDirRecur now receives paths that are relative to the root of the directory we pack.

Zip 0.2.0

  • Added MonadBase and MonadBaseControl instances for the ZipArchive monad. Also exported the ZipState type without revealing its data constructor and records.

  • Dropped MonadThrow and MonadCatch constraints for createArchive and withArchive.

Zip 0.1.11

  • Minor refactoring.

  • Improved documentation and metadata.

Zip 0.1.10

  • Made getEntrySource polymorphic in terms of the Source it returns.

  • Numerous cosmetic corrections to the docs.

  • Derived Eq and Ord for EntrySelectorException and ZipException.

Zip 0.1.9

  • Fixed a bug with modification time serialization on 32 bit systems.

Zip 0.1.8

  • Fixed a bug that caused zip to write incorrect number of entries (instead of 0xffff) in central directory when Zip64 feature is enabled.

Zip 0.1.7

  • Fix literal overflows on 32 bit systems.

Zip 0.1.6

  • Allowed time-1.7.

  • Fixed an issue when empty archives with Zip 64 feature enabled could not be read (the “Parsing of archive structure failed: Cannot locate end of central directory”).

Zip 0.1.5

  • Switched to using withBinaryFile instead of withFile, because the latter does nasty conversions on Windows, see docs for openBinaryFile.

Zip 0.1.4

  • Added several simple code examples in Codec.Archive.Zip.

  • Derived Typeable, Data, Generic for EntrySelector.

  • Derived Typeable for EntryDescription.

  • Derived Show, Ord, Bounded, Data, and Typeable for CompressionMethod.

  • Derived Read, Ord, Typeable, and Data for ArchiveDescription.

Zip 0.1.3

  • Improved speed of detection of invalid archives.

  • Introduced getEntrySource function.

Zip 0.1.2

  • Relaxed dependency on semigroups.

  • Added explicit check of “version needed to extract”, so if archive uses some advanced features that we do not support yet, parsing fails.

  • Value of “version needed to extract” field is now calculated dynamically with respect to actually used features, e.g. if you just store or deflate a not very big file, 2.0 version will be written (previously we wrote 4.6 unconditionally). This is needed to avoid scaring tools that can only handle basic Zip archives.

Zip 0.1.1

  • Make decoding of CP437 faster.

Zip 0.1.0

  • Initial release.