- Now the ZIP64 extra field is only written when it is necessary. Previously it was written unconditionally and it confused some tools.
- Fixed compilation with zstd and/or bzip2 disabled.
- 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.
-
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.
-
Added the
packDirRecur'
function. -
Dropped support for GHC 8.4.
- Fixed the build on Mac.
-
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.
- Fix a bug where removing a temporary file failed in the prescence of async exceptions.
- The test suite is now faster.
-
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.
- Added the
setExternalFileAttrs
function and theedExternalFileAttrs
field in theEntryDescription
record.
- Made
saveEntry
andunpackInto
restore modification time of files.
-
Works with
conduit-1.3.0
,conduit-extra-1.3.0
,resourcet-1.2.0
andbzlib-conduit-0.3.0
. -
Stop depending on
path
,path-io
, andplub-b
. -
Made the module
Codec.Archive.Zip.Type
non-public. -
Remove derived instances of
Data
andGeneric
forEntrySelector
not to expose its inner structure. -
Change signature of the
loadEntry
function, its second argument is now justEntrySelector
of the entry to add. -
The second argument of
packDirRecur
now receives paths that are relative to the root of the directory we pack.
-
Added
MonadBase
andMonadBaseControl
instances for theZipArchive
monad. Also exported theZipState
type without revealing its data constructor and records. -
Dropped
MonadThrow
andMonadCatch
constraints forcreateArchive
andwithArchive
.
-
Minor refactoring.
-
Improved documentation and metadata.
-
Made
getEntrySource
polymorphic in terms of theSource
it returns. -
Numerous cosmetic corrections to the docs.
-
Derived
Eq
andOrd
forEntrySelectorException
andZipException
.
- Fixed a bug with modification time serialization on 32 bit systems.
- Fixed a bug that caused
zip
to write incorrect number of entries (instead of0xffff
) in central directory when Zip64 feature is enabled.
- Fix literal overflows on 32 bit systems.
-
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”).
- Switched to using
withBinaryFile
instead ofwithFile
, because the latter does nasty conversions on Windows, see docs foropenBinaryFile
.
-
Added several simple code examples in
Codec.Archive.Zip
. -
Derived
Typeable
,Data
,Generic
forEntrySelector
. -
Derived
Typeable
forEntryDescription
. -
Derived
Show
,Ord
,Bounded
,Data
, andTypeable
forCompressionMethod
. -
Derived
Read
,Ord
,Typeable
, andData
forArchiveDescription
.
-
Improved speed of detection of invalid archives.
-
Introduced
getEntrySource
function.
-
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 wrote4.6
unconditionally). This is needed to avoid scaring tools that can only handle basic Zip archives.
- Make decoding of CP437 faster.
- Initial release.