3 * Fix version number in header file.
8 * Fix `zip_file_is_seekable()`.
13 * Add `zip_file_is_seekable()`.
14 * Improve compatibility with WinAES.
15 * Fix encoding handling in `zip_name_locate()`.
16 * Add option to `zipcmp` to output summary of changes.
17 * Various bug fixes and documentation improvements.
22 * Add support for zstd (Zstandard) compression.
23 * Add support for lzma (ID 14) compression.
24 * Add `zip_source_window_create()`.
25 * Add `zip_source_zip_create()` variant to `zip_source_zip()`.
26 * Allow method specific `comp_flags` in `zip_set_file_compression()`.
27 * Allow `zip_source_tell()` on sources that don't support seeking and `zip_ftell()` on compressed data.
28 * Provide more details for consistency check errors.
29 * Improve output of `zipcmp`.
30 * In `zipcmp`, don’t ignore empty directories when comparing directory listing.
31 * Treat empty string as no password given in `zip_file_set_encryption()`, `zip_fopen_encrypted()`, and `zip_set_default_password()`.
36 * Support cmake < 3.17 again.
37 * Fix pkgconfig file (regression in 1.7.2).
42 * Fixes for the CMake `find_project()` files.
43 * libzip moved to the CMake `libzip::` `NAMESPACE`.
44 * CMake usage best practice cleanups.
49 * Restore `LIBZIP_VERSION_{MAJOR,MINOR,MICRO}` symbols.
50 * Fixes warnings reported by PVS-Studio.
51 * Add `LIBZIP_DO_INSTALL` build setting to make it easier to use
57 * Add support for encrypting using traditional PKWare encryption.
58 * Add `zip_compression_method_supported()`.
59 * Add `zip_encryption_method_supported()`.
60 * Add the `ZIP_SOURCE_GET_FILE_ATTRIBUTES` source command.
61 * Refactor stdio file backend.
62 * Add CMake find_project() support.
67 * Bugfix for double-free in `zipcmp(1)` during cleanup.
72 * Avoid using `umask()` since it's not thread-safe.
73 * Set close-on-exec flag when opening files.
74 * Do not accept empty files as valid zip archives any longer.
75 * Add support for XZ compressed files (using liblzma).
76 * Add support for cancelling while closing zip archives.
77 * Add support for setting the time in the on-disk format.
82 * Fix bug in AES encryption affecting certain file sizes
83 * Keep file permissions when modifying zip archives
84 * Support systems with small stack size.
85 * Support mbed TLS as crypto backend.
86 * Add nullability annotations.
91 * Choose format of installed documentation based on available tools.
92 * Fix visibility of symbols.
93 * Fix zipcmp directory support.
94 * Don't set RPATH on Linux.
95 * Use Libs.private for link dependencies in pkg-config file.
96 * Fix build with LibreSSL.
102 * Use standard cryptographic library instead of custom AES implementation.
103 This also simplifies the license.
104 * Use `clang-format` to format the source code.
105 * More Windows improvements.
110 * Improve build with cmake
111 * Retire autoconf/automake build system
112 * Add `zip_source_buffer_fragment()`.
113 * Add support to clone unchanged beginning of archive (instead of rewriting it).
114 Supported for buffer sources and on Apple File System.
115 * Add support for Microsoft Universal Windows Platform.
120 * Fix bug introduced in last: zip_t was erroneously freed if zip_close() failed.
125 * Install zipconf.h into ${PREFIX}/include
126 * Add zip_libzip_version()
127 * Fix AES tests on Linux
132 * Support bzip2 compressed zip archives
133 * Improve file progress callback code
135 * CVE-2017-12858: Fix double free()
136 * CVE-2017-14107: Improve EOCD64 parsing
141 * Support for AES encryption (Winzip version), both encryption
143 * Support legacy zip files with >64k entries
144 * Fix seeking in zip_source_file if start > 0
145 * Add zip_fseek() for seeking in uncompressed data
146 * Add zip_ftell() for telling position in uncompressed data
147 * Add zip_register_progress_callback() for UI updates during zip_close()
152 * Fix build on Windows when using autoconf
157 * Improve support for 3MF files
162 * Build fixes for Linux
163 * Fix some warnings reported by PVS-Studio
168 * ziptool(1): command line tool to modify zip archives
169 * Speedups for archives with many entries
172 * Support for running tests on Windows
173 * More build fixes for Windows
175 * Documentation improvements
180 * Build fixes for Windows
185 * Implemented an I/O abstraction layer
186 * Added support for native Windows API for files
187 * Added support for setting the last modification time for a file
188 * Added a new type zip_error_t for errors
189 * Added more typedefs for structs
190 * Torrentzip support was removed
191 * CVE-2015-2331 was fixed
192 * Addressed all Coverity CIDs
197 * Support querying/setting operating system and external attributes
198 * For newly added files, set operating system to UNIX, permissions
199 to 0666 (0777 for directories)
200 * Fix bug when writing zip archives containing files bigger than 4GB
205 * Fix bugs in zip_set_file_compression()
206 * Include Xcode build infrastructure
211 * Added Zip64 support (large file support)
212 * Added UTF-8 support for file names, file comments, and archive comments
213 * Changed API for name and comment related functions for UTF-8 support
214 * Added zip_discard()
215 * Added ZIP_TRUNCATE for zip_open()
216 * Added zip_set_file_compression()
217 * Added API for accessing and modifying extra fields
218 * Improved API type consistency
219 * Use gcc4's visibility __attribute__
220 * More changes for Windows support
221 * Additional test cases
226 * Fixed CVE-2012-1162
227 * Fixed CVE-2012-1163
232 * Added zip_get_num_entries(), deprecated zip_get_num_files()
233 * Better windows support
234 * Support for traditional PKWARE encryption added
235 * Fix opening archives with more than 65535 entries
236 * Fix some memory leaks
237 * Fix cmake build and installation
238 * Fix memory leak in error case in zip_open()
239 * Fixed CVE-2011-0421 (no security implications though)
245 * Include m4/ directory in distribution; some packagers need it
250 * Avoid passing uninitialized data to deflate()
251 * Fix memory leak when closing zip archives
256 * Fix infinite loop on reading some broken files
257 * Optimization in time conversion (don't call localtime())
258 * Clear data descriptor flag in central directory, fixing Open Office files
259 * Allow more than 64k entries
264 * on Windows, explicitly set dllimport/dllexport
265 * remove erroneous references to GPL
266 * add support for torrentzip
267 * new functions: zip_get_archive_flag, zip_set_archive_flag
268 * zip_source_zip: add flag to force recompression
269 * zip_sorce_file: only keep file open while reading from it
274 * fix for zip archives larger than 2GiB
275 * fix zip_error_strerror to include libzip error string
276 * add support for reading streamed zip files
277 * new functions: zip_add_dir, zip_error_clear, zip_file_error_clear
278 * add basic support for building with CMake (incomplete)
283 * bugfix for zip_close
288 * struct zip_stat increased for future encryption support
289 * zip_add return value changed (now returns new index of added file)
290 * shared library major bump because of previous two
291 * added functions for reading and writing file and archive comments
292 New functions: zip_get_archive_comment, zip_get_file_comment,
293 zip_set_archive_comment, zip_set_file_comment, zip_unchange_archive
303 * first standalone release
304 * changed license to three-clause BSD
307 * install zipcmp and zipmerge