# 1.11.4 [2025-05-23]

* Use separate cmake package files for library and programs.
* Improve documentation.

# 1.11.3 [2025-01-20]

* Report read error for corrupted encrypted file data.
* Avoid unnecessary seeks when writing archive.
* Don't hardcode `_Nullable` support in `zip.h` to allow it to be used with different compilers.
* Improve check for GetSecurityInformation availability on Windows.

# 1.11.2 [2024-10-31]

* Fix performance regression in `zip_stat` introduced in 1.11.

# 1.11.1 [2024-09-19]

* Fix zipconf.h for version number with missing third component.

# 1.11 [2024-09-19]

* Stop searching after finding acceptable central directory, even if it contains inconsistencies.
* Only write Zip64 EOCD if fields don't fit in normal EOCD. Previously libzip also wrote it when any directory entry required Zip64.
* Allow bytes from 0x00-0x1F as UTF-8.
* Add new error code `ZIP_ER_TRUNCATED_ZIP` for files that start with a valid local header signature.
* `zipcmp`: add `-T` option for comparing timestamps.
* `zip_file_replace` now removes the target's extra field information.

# 1.10.1 [2023-08-23]

* Add `ZIP_LENGTH_TO_END` and `ZIP_LENGTH_UNCHECKED`. Unless `ZIP_LENGTH_UNCHECKED` is used as `length`, it is an error for a file to shrink between the time when the source is created and when its data is read.
* Fix test on Windows.

# 1.10.0 [2023-06-23]

* Make support for layered sources public.
* Add `zip_source_zip_file` and `zip_source_zip_file_create`, deprecate `zip_source_zip` and `zip_source_zip_create`.
* Allow reading changed file data.
* Fix handling of files of size 4294967295.
* `zipmerge`: copy extra fields.
* `zipmerge`: add option to keep files uncompressed.
* Switch test framework to use nihtest instead of Perl.
* Fix reading/writing compressed data with buffers > 4GiB.
* Restore support for torrentzip.
* Add warnings when using deprecated functions.
* Allow keeping files for empty archives.
* Support mbedTLS>=3.3.0.
* Support OpenSSL 3.
* Use ISO C secure library functions, if available.


# 1.9.2 [2022-06-28]

* Fix version number in header file.


# 1.9.1 [2022-06-28]

* Fix `zip_file_is_seekable()`.


# 1.9.0 [2022-06-13]

* Add `zip_file_is_seekable()`.
* Improve compatibility with WinAES.
* Fix encoding handling in `zip_name_locate()`.
* Add option to `zipcmp` to output summary of changes.
* Various bug fixes and documentation improvements.


# 1.8.0 [2021-06-18]

* Add support for zstd (Zstandard) compression.
* Add support for lzma (ID 14) compression.
* Add `zip_source_window_create()`.
* Add `zip_source_zip_create()` variant to `zip_source_zip()`.
* Allow method specific `comp_flags` in `zip_set_file_compression()`.
* Allow `zip_source_tell()` on sources that don't support seeking and `zip_ftell()` on compressed data.
* Provide more details for consistency check errors.
* Improve output of `zipcmp`.
* In `zipcmp`, don’t ignore empty directories when comparing directory listing.
* Treat empty string as no password given in `zip_file_set_encryption()`, `zip_fopen_encrypted()`, and `zip_set_default_password()`.


# 1.7.3 [2020-07-15]

* Support cmake < 3.17 again.
* Fix pkgconfig file (regression in 1.7.2).


# 1.7.2 [2020-07-11]

* Fixes for the CMake `find_project()` files.
* libzip moved to the CMake `libzip::` `NAMESPACE`.
* CMake usage best practice cleanups.


# 1.7.1 [2020-06-13]

* Restore `LIBZIP_VERSION_{MAJOR,MINOR,MICRO}` symbols.
* Fixes warnings reported by PVS-Studio.
* Add `LIBZIP_DO_INSTALL` build setting to make it easier to use
  libzip as subproject.


# 1.7.0 [2020-06-05]

* Add support for encrypting using traditional PKWare encryption.
* Add `zip_compression_method_supported()`.
* Add `zip_encryption_method_supported()`.
* Add the `ZIP_SOURCE_GET_FILE_ATTRIBUTES` source command.
* Refactor stdio file backend.
* Add CMake find_project() support.


# 1.6.1 [2020-02-03]

* Bugfix for double-free in `zipcmp(1)` during cleanup.


# 1.6.0 [2020-01-24]

* Avoid using `umask()` since it's not thread-safe.
* Set close-on-exec flag when opening files.
* Do not accept empty files as valid zip archives any longer.
* Add support for XZ compressed files (using liblzma).
* Add support for cancelling while closing zip archives.
* Add support for setting the time in the on-disk format.


# 1.5.2 [2019-03-12]

* Fix bug in AES encryption affecting certain file sizes
* Keep file permissions when modifying zip archives
* Support systems with small stack size.
* Support mbed TLS as crypto backend.
* Add nullability annotations.


# 1.5.1 [2018-04-11]

* Choose format of installed documentation based on available tools.
* Fix visibility of symbols.
* Fix zipcmp directory support.
* Don't set RPATH on Linux.
* Use Libs.private for link dependencies in pkg-config file.
* Fix build with LibreSSL.
* Various bugfixes.


# 1.5.0 [2018-03-11]

* Use standard cryptographic library instead of custom AES implementation.
  This also simplifies the license.
* Use `clang-format` to format the source code.
* More Windows improvements.


# 1.4.0 [2017-12-29]

* Improve build with cmake
* Retire autoconf/automake build system
* Add `zip_source_buffer_fragment()`.
* Add support to clone unchanged beginning of archive (instead of rewriting it).
  Supported for buffer sources and on Apple File System.
* Add support for Microsoft Universal Windows Platform.


# 1.3.2 [2017-11-20]

* Fix bug introduced in last: zip_t was erroneously freed if zip_close() failed.


# 1.3.1 [2017-11-19]

* Install zipconf.h into ${PREFIX}/include
* Add zip_libzip_version()
* Fix AES tests on Linux


# 1.3.0 [2017-09-02]

* Support bzip2 compressed zip archives
* Improve file progress callback code
* Fix zip_fdopen()
* CVE-2017-12858: Fix double free()
* CVE-2017-14107: Improve EOCD64 parsing


# 1.2.0 [2017-02-19]

* Support for AES encryption (Winzip version), both encryption
  and decryption
* Support legacy zip files with >64k entries
* Fix seeking in zip_source_file if start > 0
* Add zip_fseek() for seeking in uncompressed data
* Add zip_ftell() for telling position in uncompressed data
* Add zip_register_progress_callback() for UI updates during zip_close()


# 1.1.3 [2016-05-28]

* Fix build on Windows when using autoconf


# 1.1.2 [2016-02-19]

* Improve support for 3MF files


# 1.1.1 [2016-02-07]

* Build fixes for Linux
* Fix some warnings reported by PVS-Studio


# 1.1 [2016-01-26]

* ziptool(1): command line tool to modify zip archives
* Speedups for archives with many entries
* Coverity fixes
* Better APK support
* Support for running tests on Windows
* More build fixes for Windows
* Portability fixes
* Documentation improvements


# 1.0.1 [2015-05-04]

* Build fixes for Windows


# 1.0 [2015-05-03]

* Implemented an I/O abstraction layer
* Added support for native Windows API for files
* Added support for setting the last modification time for a file
* Added a new type zip_error_t for errors
* Added more typedefs for structs
* Torrentzip support was removed
* CVE-2015-2331 was fixed
* Addressed all Coverity CIDs


# 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


# 0.11.1 [2013-04-27]

* Fix bugs in zip_set_file_compression()
* Include Xcode build infrastructure


# 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


# 0.10.1 [2012-03-20]

* Fixed CVE-2012-1162
* Fixed CVE-2012-1163


# 0.10 [2010-03-18]

* Added zip_get_num_entries(), deprecated zip_get_num_files()
* Better windows support
* Support for traditional PKWARE encryption added
* Fix opening archives with more than 65535 entries
* Fix some memory leaks
* Fix cmake build and installation
* Fix memory leak in error case in zip_open()
* Fixed CVE-2011-0421 (no security implications though)
* More documentation


# 0.9.3 [2010-02-01]

* Include m4/ directory in distribution; some packagers need it


# 0.9.2 [2010-01-31]

* Avoid passing uninitialized data to deflate()
* Fix memory leak when closing zip archives


# 0.9.1 [2010-01-24]

* Fix infinite loop on reading some broken files
* Optimization in time conversion (don't call localtime())
* Clear data descriptor flag in central directory, fixing Open Office files
* Allow more than 64k entries


# 0.9 [2008-07-25]

* on Windows, explicitly set dllimport/dllexport
* remove erroneous references to GPL
* add support for torrentzip
* new functions: zip_get_archive_flag, zip_set_archive_flag
* zip_source_zip: add flag to force recompression
* zip_sorce_file: only keep file open while reading from it


# 0.8 [2007-06-06]

* fix for zip archives larger than 2GiB
* fix zip_error_strerror to include libzip error string
* add support for reading streamed zip files
* new functions: zip_add_dir, zip_error_clear, zip_file_error_clear
* add basic support for building with CMake (incomplete)


# 0.7.1 [2006-05-18]

* bugfix for zip_close


# 0.7 [2006-05-06]

* struct zip_stat increased for future encryption support
* zip_add return value changed (now returns new index of added file)
* shared library major bump because of previous two
* added functions for reading and writing file and archive comments
  New functions: zip_get_archive_comment, zip_get_file_comment,
  zip_set_archive_comment, zip_set_file_comment, zip_unchange_archive


# 0.6.1 [2005-07-14]

* various bug fixes


# 0.6 [2005-06-09]

* first standalone release
* changed license to three-clause BSD
* overhauled API
* added man pages
* install zipcmp and zipmerge
