Releases: zlib-ng/zlib-ng
2.0.7
Stable release 2.0.7 by @Dead2 in #1393
This update backports a lot of fixes and improvements.
A side effect of the improved windowsize handling for deflate_quick means compression level 1 now compresses quite a bit better by default but is also about 4.5% faster (tested on x86-64).
This is the last 2.0.x release where we will do a lot of backporting, from now on we will only backport important fixes if deemed necessary.
2.1 has diverged a lot from 2.0 making backporting a lot of work, and 2.1 is also getting close to becoming release-ready.
In the future, we will also target making smaller incremental releases.
Changes since 2.0.6:
- Fix CVE-2022-37434 #1328
- Fix chunkmemset #1196
- Fix deflateBound too small #1236
- Fix Z_SOLO #1263
- Fix ACLE variant of crc32 #1274
- Fix inflateBack #1311
- Fix deflate_quick windowsize #1431
- Fix DFLTCC bugs related to adler32 #1349 and #1390
- Fix warnings #1194 #1312 #1362
- MacOS build fix #1198
- Add invalid windowBits handling #1293
- Support for Force TZCNT #1186
- Support for aligned_alloc() #1360
- Minideflate improvements #1175 #1238
- Dont use unaligned access for memcpy #1309
- Build system #1209 #1233 #1267 #1273 #1278 #1292 #1316 #1318 #1365
- Test improvements #1208 #1227 #1241 #1353
- Cleanup #1266
- Documentation #1205 #1359
- Misc improvements #1294 #1297 #1306 #1344 #1348
- Backported zlib fixes
- Backported CI workflows from Develop branch
Full Changelog: 2.0.6...2.0.7
2.0.6 - Christmas Special
This update backports a few fixes and a lot of improvements to the tests.
The most important fix is the one that fixes potential hangs on macOS.
The buffer overwrite in minideflate is not as severe because the minideflate tool is primarily used for testing, and likely not widely used by others.
The incorrect deflateBound and compressBound might cause reduced performance or potentially compression failure if the application does not re-try compression when zlib-ng runs out of space in the output buffer.
Changes since 2.0.5:
- Fix hangs on macOS #1031
- Fix minideflate write buffers being overwritten #1060
- Fix deflateBound and compressBound returning too small size estimates #1049 #1071
- Fix incorrect function declaration warning #1080
- Fix build problems when building outside of source dir #1049
- Fix build problems on arm2-7 #1030
- Fixed some compile warnings #1020 #1036 #1037 #1048
- Improved posix memalign support #888
- Improvements to testing #637 #1026 #1032 #1035 #1049 #1051 #1056 #1063 #1067
- Improvements for integration into other projects #1022 #1042
- Code style fixes #637 #1040 #1050 #1075
2.0.5
This update fixes another corruption during inflate, this time only affecting ARM, so far only observed when using pigz.
There is also multiple minor improvements.
Changes since 2.0.4:
2.0.4
This update fixes a possible corruption during inflate, so far only observed when using pigz.
Multiple fixes improve compatibility with various platforms.
Because our stable release branch focuses on keeping changes and bugfixes small, the fix for the inflate bug reduces decompression performance by about ~18-20% (benchmarked on x86-64).
A more comprehensive refactoring of the involved code will be pushed to develop soon, and will appear in release 2.1.0 when that is ready.
Changes since 2.0.3:
- Fix inflate corruption #982
- Minor code cleanup #983 #984
- Fix mpicc compilation #959
- Fix build on NetBSD #964
- Fix build on OpenBSD #970
- Fix build on Cygwin #972 #974
- Fix linter warnings in configure #975
- Spelling fixes #961
- Improve unistd.h handling #960
- Remove stdarg.h detection #976
- CI/Test improvements #977 #981 #985
- Cmake improvements #980 #989
2.0.3
This update fixes a crash on ARMv7.
Building zlib-ng is now fixed with FreeBSD, RISC-V, Musl, and certain ARM platforms.
Windows ARM dlls are now available pre-compiled with releases.
Changes since 2.0.2:
- Include porting guide in release packages #917
- Documentation improvements #913 #949
- Added Windows ARM binaries in release packages #916
- Fix crash on ARMv7 #927
- Fix building on FreeBSD #921
- Fix building with musl on aarch64 #936
- Fix ARM float-abi detection #918
- Fix cmake detection of risc-v architectures #942
- Minor buildsystem fixes #922 #924 #933 #938 #950
- Improve zlib-compat build #915 #944
- CI/Test improvements #926 #929 #927 #937 #939 #940
Known issues:
- Compilation fails with mpicc #956
2.0.2
This update fixes a rare corruption case in compression, so far only spotted using fuzzing.
Besides that, there are several fixes for minor problems found by users.
Changes since 2.0.1:
- #897 Fix rare corruption detected by fuzzing.
- #899 Fix compilation on FreeBSD older than version 12.
- #898 Fix compilation on aarch64 using cmake.
- #882 Fix pkgconfig file generation.
- #885 #891 Cmake: Add detection of install dirs from command line.
- #900 Cmake: Add warning message for too old MSVC.
- #889 Add warning message when including zlib-ng.h and zlib.g in the same compilation unit.
- #879 Cleanups for cmake.
- #896 #893 #892 Minor changes to CI/tests.
Known issues:
None
2.0.1 - Hotfix
This hotfix fixes a rare corruption case in deflate_quick, used by compression level 1.
Changes since 2.0.0:
- #880 Fix block_open handling in deflate_quick.
Known issues:
2.0.0 - First stable release
Hotfix: 2.0.1 has been released to fix a corruption bug in deflate_quick in this release.
Since RC2, we have merged a lot of improvements to the CI testing and documentation/comments.
A few minor bugs have been fixed as well.
Unfortunately there are at this moment two known bugs remaining, but we decided to add the warnings and go ahead with the release.
We have run a lot of testing, and we are quite confident in zlib-ng in its current state, but since this is our first release, we advise caution before using this in critical systems. We do expect corner-case bugs to be revealed once more people start to use zlib-ng, especially since there are countless variations as to how you can make use of the zlib/zlib-ng api.
That said, zlib-ng has been used without issue for years in production servers, but built into specific applications, not os/distro-wide.
x86-64 benchmarks:
Zlib-ng is about 4x faster than zlib, and 2.1x faster than gzip for compression.
Zlib-ng is about 2.4x faster than zlib and 1.8x faster than gzip when decompressing.
See #871 for the full x86-64 benchmark comparisons with zlib and gzip.
Changes since RC2:
- Fix incorrect bi_valid handling in deflate_quick (level 1).
- Cmake: Fix defining HAVE_SYS_SDT_H.
- Cmake: Fix compiling of zlibstatic when BUILD_SHARED_LIBS is OFF.
- Configure: Fix for incorrect handling of --native.
- Many changes to improve robustness of CI testing.
- Addition of PORTING.md.
- Many small documentation changes.
- Removal of misleading zlib.3 (zlib man-page).
Known issues:
2.0.0 Release Candidate 2
We have closed a few smaller bugs, made a couple minor improvements, and fixed the remaining CI tests.
Currently, nothing code-related is on my TODO list for this release.
Changelog since RC1:
- Make deflate internal_state struct size static, regardless of compiled in features.
- Add extra padding in deflate internal_state struct, to make future expansion easier.
- Very minor optimization of longest_match.
- Fix 32-bit zlib-compat builds.
- Fix missing large-file defines for zlib-compat.
- Remove erroneous debug check, breaking debug builds.
- Fix MacOS CI builds.
- Various CI fixes.
We appreciate any testing feedback, both concerning bugs/problems but also if you have performed tests without encountering errors.
2.0.0 Release Candidate 1
This will hopefully be the last pre-release before releasing 2.0.0 proper.
We have recently closed the last of the sanitizer and static analyzer bugs I am aware of, and the few bugs we have seen recently are corner cases in regards to the build system not building properly on platform X or with compiler Y, etc.
We do have a couple failing CI tests, but both of those are AFAICT a problem with the tests and not with zlib-ng itself.
We plan to release the final 2.0.0 version in 2-3 weeks, unless we see bug-reports that warrant postponing the release.
PS: This release candidate was re-released with a couple SOVERSION fixes that were only detected after the initial attempt.