)]}'
{
  "log": [
    {
      "commit": "7b2387161c542fa9f427352dcdef76097d0d692b",
      "tree": "325fe5b205a9078b5ab7e0b825f58f01191fde3d",
      "parents": [
        "131d59ba390d65112f3656f6b1a3f8b67e4d64fc"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Jun 30 16:44:28 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Jun 30 16:44:28 2026"
      },
      "message": "Version 4.2.2.\n"
    },
    {
      "commit": "131d59ba390d65112f3656f6b1a3f8b67e4d64fc",
      "tree": "2c1402095ffb914a9be3f0a37f69a04f8aca7fca",
      "parents": [
        "181642d2f8560300c735ca5385d5fa8a123ed891"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Jun 29 21:38:48 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Jun 29 22:25:48 2026"
      },
      "message": "fix: reject symlink targets that escape extraction dir\n\nSymlink archive entries had their stored target passed directly to\nmz_os_make_symlink without checking containment, so a malicious\narchive could create a link pointing outside the extraction root.\n\nAdd mz_path_is_symlink_target_safe to verify a link target resolves\nwithin the destination directory, and apply it to both the UNIX1\nextrafield and entry-content link targets. Reject symlink entries\noutright when no destination base is set, since the target cannot be\nvalidated without one.\n\nAssisted-By: Claude Opus 4.8\n"
    },
    {
      "commit": "181642d2f8560300c735ca5385d5fa8a123ed891",
      "tree": "36ac24be9383cdba0ef27ba2b49da0c347b683bd",
      "parents": [
        "dbdb1059d01fdcbebbbc040ebf47c429863557b4"
      ],
      "author": {
        "name": "Sergei",
        "email": "sergey@solidstatenetworks.com",
        "time": "Fri Jun 26 04:38:10 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Fri Jun 26 22:34:49 2026"
      },
      "message": "test: improve: validate cipher bytes after encryption\n\nThe independent cipher bytes (encrypted text) are gotten on a 3rd party site.\n"
    },
    {
      "commit": "dbdb1059d01fdcbebbbc040ebf47c429863557b4",
      "tree": "9e2233625c9e042f786408d34cbfa01b064f1303",
      "parents": [
        "20fb0e3fdf8fd32d584bdf7af8da93022dc3785f"
      ],
      "author": {
        "name": "Sergei",
        "email": "sergey@solidstatenetworks.com",
        "time": "Thu Jun 25 05:28:03 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Jun 25 14:09:28 2026"
      },
      "message": "fix: mz_crypt_aes_set_*_key for GCM on OpenSSL\n\nAES-GCM block size is 128 bits but IV size is 96+ bits.\n"
    },
    {
      "commit": "20fb0e3fdf8fd32d584bdf7af8da93022dc3785f",
      "tree": "f9ea917eecddad5557fac914f19afa291132f971",
      "parents": [
        "e6f15b4ae9d254162839b7f863bff1afaf8bc61d"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jun 24 17:26:57 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jun 24 17:48:53 2026"
      },
      "message": "test: always compile the codec-gated test sources\n\nThese test files were conditionally added to the test target by CMake,\nso their in-source guards never ran in the excluded configurations.\nCompile them unconditionally and let the ifdef guards select the tests.\ntest_compat.cc keeps its MZ_COMPAT gate in CMake since the compatibility\nlayer is only built then, but its compression requirement moves into the\nsource.\n\nAssisted-By: Claude Opus 4.8\n"
    },
    {
      "commit": "e6f15b4ae9d254162839b7f863bff1afaf8bc61d",
      "tree": "3afadcb6f7bffd0604a4edd490e825a9e1060b4f",
      "parents": [
        "8c5f95cde729cbd2b8bd191df85c1b7c8b749382"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jun 24 17:13:07 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jun 24 17:22:56 2026"
      },
      "message": "test: build stream compression tests only with compression\n\nThe stream tests compress then decompress, but the deflate path returns\nMZ_SUPPORT_ERROR when built with MZ_ZIP_NO_COMPRESSION, so the round\ntrip cannot run. Guard the tests on that macro, and exclude only the\ninflate-and-compare half when MZ_ZIP_NO_DECOMPRESSION is set.\n\nAssisted-By: Claude Opus 4.8\n"
    },
    {
      "commit": "8c5f95cde729cbd2b8bd191df85c1b7c8b749382",
      "tree": "27f5f4bb9a5d0668ad5d83dcf23e8559f81b0be7",
      "parents": [
        "ff303ab67d226a2f2a4cc3f847c28ef9100278b4"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jun 24 16:58:34 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jun 24 16:58:34 2026"
      },
      "message": "test: don\u0027t run alternative data stream test on non-Windows platforms\n"
    },
    {
      "commit": "ff303ab67d226a2f2a4cc3f847c28ef9100278b4",
      "tree": "3f1976443b20d6bcbb70f18e7044f6f7cae109e3",
      "parents": [
        "d69cb0a5392332d6a55e9b56405a6fa2fc8b157d"
      ],
      "author": {
        "name": "Ren yiwei",
        "email": "85666259+SSDWGG@users.noreply.github.com",
        "time": "Sat Jun 13 09:14:20 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sun Jun 21 19:10:19 2026"
      },
      "message": "docs: update memory stream test link"
    },
    {
      "commit": "d69cb0a5392332d6a55e9b56405a6fa2fc8b157d",
      "tree": "7c25807b2e4a0af5d5ab2cb88689d3c93f1cefa6",
      "parents": [
        "947848cb1a05c13adf585498d9d43411af65a3a1"
      ],
      "author": {
        "name": "Sergei",
        "email": "sergey@solidstatenetworks.com",
        "time": "Sat May 16 03:50:29 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat May 16 19:32:12 2026"
      },
      "message": "fix: warning: \u0027\u003d\u0027: narrowing conversion, possible loss of data"
    },
    {
      "commit": "947848cb1a05c13adf585498d9d43411af65a3a1",
      "tree": "658804bb5fbc4020889520911d6fe24dafaf0d34",
      "parents": [
        "55c760e5b1d405c4ee42c07c59e8b23c1768928b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri May 01 00:48:16 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Fri May 01 01:00:14 2026"
      },
      "message": "build(deps): bump actions/upload-artifact from 6 to 7\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-version: \u00277\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "55c760e5b1d405c4ee42c07c59e8b23c1768928b",
      "tree": "62270824304e86f6fbf507e5acb5abe6c8e77fb6",
      "parents": [
        "26b4619120f714cb76c0c52cdd48223bee944d73"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri May 01 00:48:11 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Fri May 01 00:58:14 2026"
      },
      "message": "build(deps): bump actions/download-artifact from 7 to 8\n\nBumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.\n- [Release notes](https://github.com/actions/download-artifact/releases)\n- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)\n\n---\nupdated-dependencies:\n- dependency-name: actions/download-artifact\n  dependency-version: \u00278\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "26b4619120f714cb76c0c52cdd48223bee944d73",
      "tree": "9be57d37c279f18af22dab702aad40679bbf28f3",
      "parents": [
        "d195f3722e54f346a7ffe43d62e0bf1acc8b5bdf"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Apr 27 19:23:18 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Apr 27 19:23:18 2026"
      },
      "message": "Version 4.2.1.\n"
    },
    {
      "commit": "d195f3722e54f346a7ffe43d62e0bf1acc8b5bdf",
      "tree": "0169e2c564102e82c8524bb616b53accf60706b0",
      "parents": [
        "ea91a3c01bb01e169ea673b1ee214fb9187d0dfe"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Apr 27 18:10:01 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Apr 27 19:22:37 2026"
      },
      "message": "cmake: pick zstd and zlib-ng targets per BUILD_SHARED_LIBS\n\nBoth packages export separate static and shared imported targets, but\nthe find_package paths picked one variant unconditionally — zstd\npreferred libzstd_static and zlib-ng always linked the shared zlib.\nBuilding minizip-ng with BUILD_SHARED_LIBS\u003dON against a system zstd\nthat ships both variants therefore produced a libminizip.so with zstd\nstatically baked in (#983).\n"
    },
    {
      "commit": "ea91a3c01bb01e169ea673b1ee214fb9187d0dfe",
      "tree": "e6aa5cd7b0b345aa24e1ebfd82ff0f129c11c578",
      "parents": [
        "a6300c3b29f96f0913a788287ae88524c5db4db7"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Apr 27 01:54:36 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Apr 27 01:54:36 2026"
      },
      "message": "Version 4.2.0.\n"
    },
    {
      "commit": "a6300c3b29f96f0913a788287ae88524c5db4db7",
      "tree": "8b5c303ec3b8b5006eabd4f1caa1ceee324acee0",
      "parents": [
        "6b9defc73cc51cf88475c3184e31bdcff4aa348c"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Apr 27 01:47:40 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Apr 27 01:50:41 2026"
      },
      "message": "compat: add unzGetCurrentFileZStreamPos64 (#848)\n\nReturns the absolute offset where the current entry\u0027s compressed\ndata begins, matching the original minizip API used by chromium and\nother consumers. The position is already tracked internally via\nentry_pos for STORE-method seek support, so this just exposes it.\n"
    },
    {
      "commit": "6b9defc73cc51cf88475c3184e31bdcff4aa348c",
      "tree": "9a67fcc0ce5667bfcaffba1e037f1dbfff2eb4b5",
      "parents": [
        "3f23ed7a110c8527757cbb0e1c30183fd09c3213"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Apr 27 01:21:36 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Apr 27 01:40:25 2026"
      },
      "message": "mz_os: split file and link attribute getters (#797)\n\nmz_os_get_file_attribs used lstat on POSIX and GetFileAttributesW\non Win32, both of which return the link\u0027s own attributes rather\nthan the target\u0027s. Callers that wanted to follow a symlink had no\nway to ask for that, so mz_zip_writer_add_file produced followed\nentries tagged ISLNK and readers that tried to recreate them as\nsymlinks.\n\nFlip mz_os_get_file_attribs to stat on POSIX and to a CreateFile +\nGetFileInformationByHandle path on Win32 when the entry is a\nreparse point. Add mz_os_get_link_attribs preserving the original\nlstat / GetFileAttributesW semantics. Update mz_zip_writer_add_file\nto pick the right getter for each branch and to skip symlinks\ncleanly when neither store_links nor follow_links is set.\n\nRefs #797.\n"
    },
    {
      "commit": "3f23ed7a110c8527757cbb0e1c30183fd09c3213",
      "tree": "a29f0b86f12401b578ef89d06421364ed83eec40",
      "parents": [
        "ece5b06dcf70d203a8ec8b139e93cf0b38935ed9"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 08:01:34 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Apr 27 00:49:20 2026"
      },
      "message": "minizip: place erase temp on same filesystem when TMPDIR differs\n\nminizip_erase rewrites the archive to a temp file under TMPDIR and\nthen renames it onto the source. rename(2) returns EXDEV across\nfilesystems, so when TMPDIR (e.g. /tmp) and the source live on\ndifferent mounts (a common conda-forge pattern), the rename fails\nafter the original was already moved aside to .bak — the next\noperation that opens the archive sees no file and reports -111.\n\nAdd mz_os_path_same_fs() and have minizip_erase fall back on POSIX to\na same-dir temp when TMPDIR is on a different filesystem. POSIX uses\nstat() st_dev comparison; Win32 uses _wstati64 for the parallel check\nbut the caller skips it under #ifndef _WIN32 because MoveFileExW with\nMOVEFILE_COPY_ALLOWED already absorbs cross-volume rename internally.\n\nMake the same-dir tmp filename unique (mz_ms_time suffix) and refuse\nto clobber an existing leftover from a prior crash.\n\nRefs #943.\n"
    },
    {
      "commit": "ece5b06dcf70d203a8ec8b139e93cf0b38935ed9",
      "tree": "f9636402f91f6f0cb4f0816b465df72889aac511",
      "parents": [
        "483f0568b04fe67f664b226cae5a22a7b9d85821"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 08:22:49 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 08:24:48 2026"
      },
      "message": "test: skip AES-GCM test when build doesn\u0027t support it\n\nThe Apple crypto backend defaults MZ_TARGET_APPSTORE to 1, which\nmakes mz_crypt_aes_set_key return MZ_SUPPORT_ERROR for GCM mode\nbecause the GCM CommonCrypto APIs are private and rejected by App\nStore review. The test was hard-coded to expect MZ_OK and failed on\nthe default macOS build.\n\nSkip the test when the runtime reports MZ_SUPPORT_ERROR; otherwise\nproceed and verify correctness as before.\n"
    },
    {
      "commit": "483f0568b04fe67f664b226cae5a22a7b9d85821",
      "tree": "355c42a2e31edf09d9db189640cf32d41c22f4d9",
      "parents": [
        "8ec500fd3848b6acdcc851a2610fc95a5fbf9aa5"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:46:46 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 08:21:33 2026"
      },
      "message": "mz_os: skip symlink check at or above destination dir\n\nmz_dir_has_unsafe_symlink walks every component of the destination\npath and rejects any symlink with an absolute target. That\u0027s too\nstrict: when the user-chosen destination dir (or one of its ancestors)\nhappens to be a symlink, extracting into it gets rejected with -107.\nThe check only needs to police symlinks that appear strictly inside\nthe destination, since those could be zip-controlled.\n\nSkip the symlink check when check_path is at or above base_path; let\nthe existing logic enforce on components below.\n\nFixes #943.\n"
    },
    {
      "commit": "8ec500fd3848b6acdcc851a2610fc95a5fbf9aa5",
      "tree": "d76e410275270118fd50d508dedad3c9a70f9f02",
      "parents": [
        "b3bb871157df65692171d22aa464a164e819efb2"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:45:22 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 08:21:33 2026"
      },
      "message": "cmake: rename MINIZIP_PUBLIC_LIB variable\n"
    },
    {
      "commit": "b3bb871157df65692171d22aa464a164e819efb2",
      "tree": "fb5bf84401865e02f76309da7c75707896944516",
      "parents": [
        "c6fd0d701e8feaa41053904fd100047e1f9d6f2d"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:26:33 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:43:12 2026"
      },
      "message": "cmake: clean up and tighten comments\n"
    },
    {
      "commit": "c6fd0d701e8feaa41053904fd100047e1f9d6f2d",
      "tree": "4268c556fbada78e63c53abce58ddeed6c0e0581",
      "parents": [
        "434593c8afde3bf36bda4ca358ba9889de3fe4a7"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:24:33 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:43:12 2026"
      },
      "message": "cmake: skip find_dependency for PRIVATE deps when building shared\n\nA shared minizip encapsulates its PRIVATE backend deps (bzip2, lzma, zstd,\niconv, ...) inside the .so/.dylib, and minizip-targets.cmake doesn\u0027t\nreference them. Emitting find_dependency() for those backends in the\ngenerated package config forces consumers of shared minizip to install\nevery backend just to call find_package(minizip), even when nothing\nneeds them.\n\nSplit MINIZIP_DEP_PKG into a PUBLIC list (always required, e.g. ZLIB\nunder MZ_COMPAT) and a private list emitted only when minizip is built\nstatic. The static archive still requires all of them transitively.\n\nFixes #898.\n"
    },
    {
      "commit": "434593c8afde3bf36bda4ca358ba9889de3fe4a7",
      "tree": "ee2a04a61c321a3164dc588a49b60630e247fbde",
      "parents": [
        "74609ad4478770e7d48b3038daacfeb5f3551195"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:12:21 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:43:12 2026"
      },
      "message": "cmake: remove bundled FindZLIB-NG module\n\nfind_package(ZLIB-NG QUIET CONFIG) reads zlib-ng\u0027s installed\nzlib-ng-config.cmake and the matching zlib-ng-targets-\u003cconfig\u003e.cmake\nfiles, so the bundled MODULE-mode finder is no longer consulted. The\nupstream config knows the correct library names per build configuration\n(including the -ngd debug suffix on MSVC), which the bundled finder\ndidn\u0027t.\n\nFixes #952.\n"
    },
    {
      "commit": "74609ad4478770e7d48b3038daacfeb5f3551195",
      "tree": "e9dc2b2cd6496f559beb31eb215b8618085e37b0",
      "parents": [
        "8aabaf214ebdba621ef42de89f11abe15881557a"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:01:16 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:43:12 2026"
      },
      "message": "cmake: delegate OpenSSL pkg-config naming to Requires.private\n\nHard-coding \"-lssl -lcrypto\" in Libs.private breaks for LibreSSL (different\nlibrary names), MSVC import libraries, and custom build suffixes. Reference\nopenssl in Requires.private instead so the consumer\u0027s pkg-config delegates\nto openssl.pc and resolves the correct library names locally.\n\nCaught in PR review on #983.\n"
    },
    {
      "commit": "8aabaf214ebdba621ef42de89f11abe15881557a",
      "tree": "67be5ecfcfe9d2c4f194e79cc7ccffa4aeef9c63",
      "parents": [
        "6e97fbea0972d3e311b597125d6b664e9d191d67"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 06:48:46 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:43:12 2026"
      },
      "message": "cmake: link zlib PUBLIC when MZ_COMPAT exposes it in headers\n\ncompat/zip.h and compat/unzip.h reference zlib types and macros (ZEXPORT,\nZ_DEFLATED, ...), so any consumer including those headers needs zlib\u0027s\nINTERFACE_INCLUDE_DIRECTORIES on its include path. Linking via the imported\ntarget keeps the install portable: find_dependency(ZLIB) on the consumer\nrecreates the target with the consumer\u0027s local paths, not the build host\u0027s.\n\nOther backends are pure implementation details and stay PRIVATE.\n\nRefs #914.\n"
    },
    {
      "commit": "6e97fbea0972d3e311b597125d6b664e9d191d67",
      "tree": "8126f7fee8e77ea81b241782cbff5559e4533dd5",
      "parents": [
        "6a99a9533f6f396d74dbaabc0172c78dabf04b72"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 06:27:18 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:43:12 2026"
      },
      "message": "cmake: only register found packages in MINIZIP_DEP_PKG\n\nThe list drives find_dependency() calls in the generated minizip-config.cmake,\nso registering a package whose CMake config doesn\u0027t exist on the consumer\nmachine (PPMD, fetched BZip2/LibLZMA/zstd, etc.) makes find_package(minizip)\nfail at configure time. Only register a package when it was located via\nfind_package, not when built from a fetched source tree (those targets are\nalready carried forward through install(EXPORT)).\n\nAdd Threads to MINIZIP_DEP_PKG when liblzma is fetched, since upstream xz\u0027s\nexported target lists Threads::Threads in its INTERFACE_LINK_LIBRARIES and\nthe consumer\u0027s config has to recreate that imported target.\n\nRefs #914.\n"
    },
    {
      "commit": "6a99a9533f6f396d74dbaabc0172c78dabf04b72",
      "tree": "8b40e670a0319587d745359f32c78cdb6cf0ae72",
      "parents": [
        "1d5bc8d591d6c9d47c97ff9f9be897f625bb35ff"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 06:25:44 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:43:12 2026"
      },
      "message": "cmake: link backend deps as PRIVATE and drop target_link_directories\n\nBackend libraries (zlib, bzip2, lzma, zstd, openssl, iconv, frameworks)\nare implementation details that don\u0027t appear in mz.h\u0027s public API, so\ntheir linkage is PRIVATE rather than PUBLIC. For static minizip CMake\nstill propagates them transitively via INTERFACE_LINK_LIBRARIES_PRIVATE\nwhen needed; for shared minizip they stay encapsulated and don\u0027t pollute\nconsumer link lines.\n\nThe target_link_directories call is no longer needed because every\nimported target carries its own library directory; MINIZIP_LBD is\nremoved along with it.\n\nRefs #914.\n"
    },
    {
      "commit": "1d5bc8d591d6c9d47c97ff9f9be897f625bb35ff",
      "tree": "12fd54bddfbb7851cb51182e38428b0d336265ae",
      "parents": [
        "a3c6e8c02dfefad636a58e43fdbb6caa4ddf49a9"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 06:24:52 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:43:12 2026"
      },
      "message": "cmake: use -framework linker flags for CoreFoundation and Security\n\nfind_library returns SDK-absolute paths like\n/Applications/Xcode.app/.../MacOSX.sdk/System/Library/Frameworks/CoreFoundation.framework\nwhich get baked into INTERFACE_LINK_LIBRARIES on install and break\ndownstream consumers whose SDK lives at a different path. Pass the\nframeworks as plain \"-framework Foo\" linker flags so each consumer\u0027s\nown toolchain resolves them.\n\nRefs #914.\n"
    },
    {
      "commit": "a3c6e8c02dfefad636a58e43fdbb6caa4ddf49a9",
      "tree": "969d642609f1daec3924a91f8cd85bf6fc8f02a5",
      "parents": [
        "9826cbd4355af856b38bf8d863b29653b90c6b7f"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 06:24:14 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 07:43:12 2026"
      },
      "message": "cmake: use imported targets for compression and crypto backends\n\nReplace raw ${FOO_LIBRARIES} / ${FOO_LIBRARY_DIRS} / ${FOO_INCLUDE_DIRS}\nappends with imported target references so installed targets files don\u0027t\nbake build-machine paths into INTERFACE_LINK_LIBRARIES. Affects ZLIB-NG,\nZLIB, BZip2, LibLZMA, ZSTD, OpenSSL, Iconv, and libbsd. Drops the\npkg-config-first paths for LZMA/ZSTD/OpenSSL since find_package now\nprovides portable imported targets across CMake 3.14+.\n\nRefs #914.\n"
    },
    {
      "commit": "9826cbd4355af856b38bf8d863b29653b90c6b7f",
      "tree": "ee95c49c8857708c5774659ac73fd6a8b719fa3c",
      "parents": [
        "9a9217097921afc13df46bd85de1a14f23243892"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:50:35 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:50:35 2026"
      },
      "message": "Version 4.1.2.\n"
    },
    {
      "commit": "9a9217097921afc13df46bd85de1a14f23243892",
      "tree": "637dffc00e2542a3ba90c11854ef5cf281634301",
      "parents": [
        "288b7f1d4b874924d40435123bd1e0b43980e5aa"
      ],
      "author": {
        "name": "Benjamin Buch",
        "email": "benjamin.buch@technoteam.de",
        "time": "Wed Oct 29 15:09:33 2025"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:49:28 2026"
      },
      "message": "cmake: rename target files to avoid overwrite of PACKAGE_VERSION\n"
    },
    {
      "commit": "288b7f1d4b874924d40435123bd1e0b43980e5aa",
      "tree": "5a6918ed401fd87d265157cf411380d9da012dac",
      "parents": [
        "c7c6ea74fb6fd7ee03b2cb28b0f745742fbc89be"
      ],
      "author": {
        "name": "Andrew Patterson",
        "email": "andrew@avenza.com",
        "time": "Sat Apr 25 05:28:46 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:49:28 2026"
      },
      "message": "cmake: install crypt.h if using compatability mode #862\n"
    },
    {
      "commit": "c7c6ea74fb6fd7ee03b2cb28b0f745742fbc89be",
      "tree": "5f2147c3a47149d9cee6baccf1dbf53c5a45b79a",
      "parents": [
        "0a7ddd02dc03822d84b876719156a9fb7e0e01a1"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:22:49 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:49:28 2026"
      },
      "message": "cmake: remove duplicate source include dir\n"
    },
    {
      "commit": "0a7ddd02dc03822d84b876719156a9fb7e0e01a1",
      "tree": "73b06bce88f46b8a8c72af956c81320d1fde7185",
      "parents": [
        "31049d44e8f8adee41271ebdfd8dfc3cf02693ee"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:20:24 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:49:28 2026"
      },
      "message": "cmake: use target_link_options instead of set_target_properties\n"
    },
    {
      "commit": "31049d44e8f8adee41271ebdfd8dfc3cf02693ee",
      "tree": "508805270b9fd85b2cb1c6e793ecf32c93af36a5",
      "parents": [
        "322c161a2f50fa029c2c380fd52257733e72a593"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:19:26 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:49:28 2026"
      },
      "message": "cmake: fix comment for check_function_exists calls\n"
    },
    {
      "commit": "322c161a2f50fa029c2c380fd52257733e72a593",
      "tree": "a8bae200bc445cf0cf89ff8f8ea0b899538d89df",
      "parents": [
        "597ee06152ba83d344cbfd7e2db921721fc776c1"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:17:41 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:49:28 2026"
      },
      "message": "cmake: don\u0027t check ZLIB_COMPAT before it is set in MZ_FETCH_LIBS\n"
    },
    {
      "commit": "597ee06152ba83d344cbfd7e2db921721fc776c1",
      "tree": "6401f745c34fbc1bfd78374b65d2cfab9608dd84",
      "parents": [
        "96f1134432213272f80f5708c09e2aebbae665c2"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:07:53 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:49:28 2026"
      },
      "message": "cmake: fix formatting before HOMEPAGE_URL\n"
    },
    {
      "commit": "96f1134432213272f80f5708c09e2aebbae665c2",
      "tree": "3ee4cf075f96b1edcef9ee8e78c27c9db690aa6a",
      "parents": [
        "84f3b20390b78ce2b65b942a309b924621d682bf"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:06:59 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:49:28 2026"
      },
      "message": "cmake: remove unnecessary include dirs for test binaries\n"
    },
    {
      "commit": "84f3b20390b78ce2b65b942a309b924621d682bf",
      "tree": "58fc4d6002f241c154e4410dec0ff0d29cbef541",
      "parents": [
        "423b6448e18316f437638231ed4fafa41dbe93c8"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:01:02 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 05:01:02 2026"
      },
      "message": "cmake: generate mz_config.h in build directory\n"
    },
    {
      "commit": "423b6448e18316f437638231ed4fafa41dbe93c8",
      "tree": "c2f55e106d7a05661e42252d780fb8395e56038a",
      "parents": [
        "37adbba1d16ca9cae9d566b68df9fe71c5f11c7f"
      ],
      "author": {
        "name": "Sergey Markelov",
        "email": "sergey@solidstatenetworks.com",
        "time": "Sat Apr 25 01:46:43 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Apr 25 04:56:06 2026"
      },
      "message": "cmake: fix: mz_config.h was missing in install target (#980)\n"
    },
    {
      "commit": "37adbba1d16ca9cae9d566b68df9fe71c5f11c7f",
      "tree": "f29f4f3b446cbf672b854c2cd097f1b8836f3cbf",
      "parents": [
        "c37440f253484943e4d25ba2933ddb168ac30a3e"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 23 04:10:20 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 23 04:10:20 2026"
      },
      "message": "Version 4.1.1.\n"
    },
    {
      "commit": "c37440f253484943e4d25ba2933ddb168ac30a3e",
      "tree": "3e6bd172988bd20577f2c5358aff55d18c7e0f01",
      "parents": [
        "ad05efe8e170b7d76202038940f1c0b1a2fd687f"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 23 03:57:36 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 23 03:59:10 2026"
      },
      "message": "Build libc++ with MSAN instrumentation for gtest_minizip\n\ngtest_minizip fails under MSAN with use-of-uninitialized-value in\nstd::basic_string\u0027s small-string-optimization union during static\nTEST() registration, because system libstdc++ (and Ubuntu\u0027s libc++)\nare not built with MSAN. We follow zlib-ng\u0027s approach.\n"
    },
    {
      "commit": "ad05efe8e170b7d76202038940f1c0b1a2fd687f",
      "tree": "8f23ed9e2d2e33179ce55cf04966fa00a290c67a",
      "parents": [
        "ced107ccc621722b1349df0a2d12ef78cff965a6"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 23 03:51:01 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 23 03:59:10 2026"
      },
      "message": "Upload all coverage reports at once\n"
    },
    {
      "commit": "ced107ccc621722b1349df0a2d12ef78cff965a6",
      "tree": "5c87af004d9bd482a752b5d07d03417e6c41e267",
      "parents": [
        "4d9088de97a2fcf558534ae4935877cc3b83fe20"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 23 03:47:23 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 23 03:59:10 2026"
      },
      "message": "Implement MSAN_OPTIONS env variable in build workflow.\n"
    },
    {
      "commit": "4d9088de97a2fcf558534ae4935877cc3b83fe20",
      "tree": "77c8d6cf1e2572f1b965955bb2517df3b13c8204",
      "parents": [
        "3ffb8de0fd61f56386f3ea67f054529640afb9ef"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 23 01:50:45 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 23 03:59:10 2026"
      },
      "message": "Force-fetch compression libraries so they are MSAN instrumented\n\nSystem libz on Ubuntu is not built with MSAN, which produced\nuse-of-uninitialized-value reports in mz_stream_os_write when\nflushing bytes that came out of zlib\u0027s deflate (the internal state\nbuffer is malloc\u0027d and written by uninstrumented code).\n\nSet MZ_FORCE_FETCH_LIBS\u003dON so zlib-ng, bzip2, liblzma and zstd are\nbuilt from source with the project\u0027s MSAN flags. This mirrors what\nthe Windows MSVC job already does for unrelated reasons.\n"
    },
    {
      "commit": "3ffb8de0fd61f56386f3ea67f054529640afb9ef",
      "tree": "0cc17bc751d3ea81694518fb7a0ffe0797e42583",
      "parents": [
        "3e10f4d502aaf0b6b4713ada0e9dd2ce8f0d40b9"
      ],
      "author": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 23 01:50:26 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 23 03:59:10 2026"
      },
      "message": "Disable OpenSSL to avoid libcrypto false positives for MSAN\n\nSystem libcrypto on Ubuntu is not built with MSAN, so calls into\nOPENSSL_init_crypto (via EVP_MD_fetch and EVP_MAC_fetch in\nmz_crypt_openssl.c) produced ~130 use-of-uninitialized-value reports\nin BIO_new_file and OBJ_obj2txt for buffers allocated inside the\nuninstrumented library.\n\nDisable MZ_OPENSSL for the MSAN job so the built-in crypto path\nis used instead, which is instrumented along with the rest of the\nproject sources.\n"
    },
    {
      "commit": "3e10f4d502aaf0b6b4713ada0e9dd2ce8f0d40b9",
      "tree": "c979167f15b5aa0a9d20792661f223d4e9756cff",
      "parents": [
        "223a3d6799ba66e1532060bee5fbbc7d9513a24a"
      ],
      "author": {
        "name": "Paul Marquess",
        "email": "pmqs@outlook.com",
        "time": "Thu Apr 23 01:56:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 01:56:59 2026"
      },
      "message": "Harden the cmake Address Sanitizer detection code. (#960)"
    },
    {
      "commit": "223a3d6799ba66e1532060bee5fbbc7d9513a24a",
      "tree": "11f91d83a8267deb7aa92869d422f17afec6e3cc",
      "parents": [
        "2f074dc2b677154fd3fa181f6452ade41c8d36e8"
      ],
      "author": {
        "name": "Alexander",
        "email": "solbjorn@users.noreply.github.com",
        "time": "Thu Apr 23 01:43:03 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 01:43:03 2026"
      },
      "message": "Fix two bugs causing premature exiting the PPMd decompression (#976)\n\n* Fix two bugs causing premature exiting the PPMd decompression\n\n1. PPMd doesn\u0027t use a buffer to read input data, it reads data\n   byte-by-byte, and it doesn\u0027t have a loop to process the whole\n   requested size buffer-by-buffer, but still has a cap of maximum\n   input bytes set to `INT16_MAX`. As a result, the decompression\n   function never decodes more bytes than this number and exits.\n2. The byte-by-byte decoding loop decrements `avail_in` together\n   with `avail_out`, but 1 byte of compressed data doesn\u0027t mean\n   1 byte of compressed data. This results in that the\n   decompression ends after writing `avail_in` of *decompressed*\n   data, which is always less than the requested size.\n\nFix the first one by removing the cap of `INT16_MAX` and using the\nreal boundaries (`max_avail_in`) if set or just `INT64_MAX` (the\ndecoding loop checks the available output size as well, thus it\ncouldn\u0027t go OOB).\nFix the second one by tracking how many *compressed* bytes were\nactually read and exit only when the actual limit is exhausted.\n\nThis removes the need of calling mz_zip{,_reader}_entry_read()\nin a loop when the ZIP is compressed with PPMd and the caller\nwants to read the whole file or a chunk larger than the\ncompressed size (or `INT16_MAX`).\n\nTested on Windows w/clang-cl and a PPMd-compressed ZIP containing\nup to 700 Kb -sized files.\n\nSigned-off-by: Alexander Lobakin \u003calobakin@mailbox.org\u003e\n\n* Fix a potential OOB read in the PPMd reader callback\n\nWe check that total_in \u003c max_total_in in the decoding loop, but\nturns out that one PPMd decoding iteration may consume more than\n1 byte of input.\nTo make sure it won\u0027t go past the limit, add an additional check\nto the reader callback itself just to be safe.\n\nThe actual check in the decoding loop is left as-is as there, it\u0027s\na valid case and should not result in an error, but in the reader\ncallback, it\u0027s closer to the \"Insufficient input data\" case handled\nbelow, so return `MZ_STREAM_ERROR`.\n\nSuggested-by: CodeRabbit AI\nSigned-off-by: Alexander Lobakin \u003calobakin@mailbox.org\u003e\n\n---------\n\nSigned-off-by: Alexander Lobakin \u003calobakin@mailbox.org\u003e"
    },
    {
      "commit": "2f074dc2b677154fd3fa181f6452ade41c8d36e8",
      "tree": "188fcc005c57e45a8e27e7125873a26604f89027",
      "parents": [
        "bf4c563d7c47b121beffdf29230dd8e7e7a75bd1"
      ],
      "author": {
        "name": "Sergey",
        "email": "sergey@solidstatenetworks.com",
        "time": "Tue Apr 21 00:26:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 00:26:22 2026"
      },
      "message": "cmake: improve: mz.h, mz_os.h are public API, shouldn\u0027t rely on user -D (#978)"
    },
    {
      "commit": "bf4c563d7c47b121beffdf29230dd8e7e7a75bd1",
      "tree": "c715452a344d256d2751bd23ae80a09fe1cc1eb5",
      "parents": [
        "d6f4bf8f0c50fcce3f0ea0922fc81d959e4c3f5d"
      ],
      "author": {
        "name": "Sergey",
        "email": "sergey@solidstatenetworks.com",
        "time": "Sat Apr 18 01:13:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Apr 18 01:13:52 2026"
      },
      "message": "improve: support for more platforms (#977)"
    },
    {
      "commit": "d6f4bf8f0c50fcce3f0ea0922fc81d959e4c3f5d",
      "tree": "ba74e83c537e183825f145c9e107e2de014c8793",
      "parents": [
        "a4fc642164547f5b146bda9c43a7072d2ce83dfd"
      ],
      "author": {
        "name": "Paul Marquess",
        "email": "pmqs@outlook.com",
        "time": "Thu Apr 09 01:41:00 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 09 01:45:14 2026"
      },
      "message": "Fix warning use of `mktemp` is dangerous. Fixes #956 (#957)\n"
    },
    {
      "commit": "a4fc642164547f5b146bda9c43a7072d2ce83dfd",
      "tree": "a637e91814bc89f472b36d8296d9be0924d344e7",
      "parents": [
        "25db93f4d8fa1f30eece185a252af84499f28711"
      ],
      "author": {
        "name": "Alexander Lobakin",
        "email": "alobakin@mailbox.org",
        "time": "Tue Apr 07 00:07:07 2026"
      },
      "committer": {
        "name": "Nathan Moin Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Apr 09 00:04:50 2026"
      },
      "message": "Restore ability to prefer OpenSSL over BCrypt on Windows\n\nOne may prefer to use OpenSSL instead of BCrypt even on Windows,\nfor example, for consistency in cross-platform projects,\nperformance reasons etc.\n\nThe current CMakeLists.txt fully support such configurations,\nexcept that commit abc80d1049ae (\"Clean up CMake options and add\nfeature_info for MZ_BCRYPT\") make the MZ_OPENSSL option not\navailable on Windows.\n\nRestore the pre-commit behaviour. The default configuration will\nbehave the same way as before the change (use BCrypt by default\nand don\u0027t test for OpenSSL on Windows).\n\nTested on Windows 11 w/clang-cl.\n\nSigned-off-by: Alexander Lobakin \u003calobakin@mailbox.org\u003e\n"
    },
    {
      "commit": "25db93f4d8fa1f30eece185a252af84499f28711",
      "tree": "b1bfa166dae64886c2881ccf40601e19ebee23de",
      "parents": [
        "089872d25ab7732e6fc923759836226f71f86c61"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Apr 01 00:39:43 2026"
      },
      "committer": {
        "name": "Nathan Moein Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Apr 01 01:00:40 2026"
      },
      "message": "Bump codecov/codecov-action from 5 to 6\n\nBumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5 to 6.\n- [Release notes](https://github.com/codecov/codecov-action/releases)\n- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/codecov/codecov-action/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: codecov/codecov-action\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "089872d25ab7732e6fc923759836226f71f86c61",
      "tree": "6dab4cc4449d9935ae8f786dfa56f065eb57f53b",
      "parents": [
        "27cdb50b66ad8bb6295eb9c16514079de4884433"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Apr 01 00:39:46 2026"
      },
      "committer": {
        "name": "Nathan Moein Vaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Apr 01 00:58:54 2026"
      },
      "message": "Bump svenstaro/upload-release-action from 2.11.4 to 2.11.5\n\nBumps [svenstaro/upload-release-action](https://github.com/svenstaro/upload-release-action) from 2.11.4 to 2.11.5.\n- [Release notes](https://github.com/svenstaro/upload-release-action/releases)\n- [Changelog](https://github.com/svenstaro/upload-release-action/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/svenstaro/upload-release-action/compare/2.11.4...2.11.5)\n\n---\nupdated-dependencies:\n- dependency-name: svenstaro/upload-release-action\n  dependency-version: 2.11.5\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "27cdb50b66ad8bb6295eb9c16514079de4884433",
      "tree": "1059239e892539ed6f130098adf47259b007b5ef",
      "parents": [
        "af59994a45d0a0f948491c8df4bcc50b17961edd"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Mar 19 00:18:46 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Mar 19 00:18:46 2026"
      },
      "message": "Use python from setup-python action.\n"
    },
    {
      "commit": "af59994a45d0a0f948491c8df4bcc50b17961edd",
      "tree": "77ed9c8d142e83dbbba9a9dc3681087ae6806f37",
      "parents": [
        "811d2877269c9afdd0cf4ed0a2e7904957b392fe"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Fri Mar 13 00:46:23 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Fri Mar 13 02:14:32 2026"
      },
      "message": "Fix integer overflow in split stream write for disk sizes \u003e 2GB\n\nThe bytes_avail variable was declared as int32_t and the 64-bit result\nof (disk_size - total_out_disk) was cast to int32_t, causing truncation\nand wraparound for split sizes exceeding INT32_MAX (~2GB). This resulted\nin MZ_STREAM_ERROR when creating archives with split sizes above ~50GB.\n\nChanged bytes_avail to int64_t and removed the truncating cast.\n\nFixes #961\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "811d2877269c9afdd0cf4ed0a2e7904957b392fe",
      "tree": "ad3193188ea678cdd02d7c38c57134cd051e7453",
      "parents": [
        "335aa00067b926282196b14e2642073ca62930d4"
      ],
      "author": {
        "name": "Paul Marquess",
        "email": "pmqs@outlook.com",
        "time": "Tue Mar 10 17:03:03 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Mar 12 02:32:02 2026"
      },
      "message": "Replace ZLIB_ENABLE_TESTS with BUILD_TESTING\n"
    },
    {
      "commit": "335aa00067b926282196b14e2642073ca62930d4",
      "tree": "21d96c8e7ed01899a1169253c7e602393d537d96",
      "parents": [
        "66c2c59528cf3e70a9eedb7edd2c294150f40162"
      ],
      "author": {
        "name": "Paul Marquess",
        "email": "pmqs@outlook.com",
        "time": "Tue Mar 10 10:36:57 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Mar 12 02:18:34 2026"
      },
      "message": "Set default value for MZ_SANITIZER to OFF in README.md\n"
    },
    {
      "commit": "66c2c59528cf3e70a9eedb7edd2c294150f40162",
      "tree": "ab34c321e8994212d18ec18729b135e5372491af",
      "parents": [
        "3c0d2771285162f9831ef1bf8e3330d8c4c5162e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Mar 11 18:23:44 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Mar 11 22:41:14 2026"
      },
      "message": "Bump svenstaro/upload-release-action from 2.11.3 to 2.11.4\n\nBumps [svenstaro/upload-release-action](https://github.com/svenstaro/upload-release-action) from 2.11.3 to 2.11.4.\n- [Release notes](https://github.com/svenstaro/upload-release-action/releases)\n- [Changelog](https://github.com/svenstaro/upload-release-action/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/svenstaro/upload-release-action/compare/2.11.3...2.11.4)\n\n---\nupdated-dependencies:\n- dependency-name: svenstaro/upload-release-action\n  dependency-version: 2.11.4\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "3c0d2771285162f9831ef1bf8e3330d8c4c5162e",
      "tree": "431e9be4e401bb0efb74707db1037693884a302b",
      "parents": [
        "ea5c15cfd53b9e0668331ae339eff72be6adf968"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Mar 11 18:23:51 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Mar 11 22:40:57 2026"
      },
      "message": "Bump actions/upload-artifact from 6 to 7\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-version: \u00277\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "ea5c15cfd53b9e0668331ae339eff72be6adf968",
      "tree": "4f4e049453261863fa4056b14761872b92323cf0",
      "parents": [
        "d2d6b76d79d7d679b75dd0f78159da239559d32d"
      ],
      "author": {
        "name": "Paul Marquess",
        "email": "pmqs@outlook.com",
        "time": "Wed Mar 11 20:07:41 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Mar 11 22:40:27 2026"
      },
      "message": "update to use ppmd from 7zip 26.00\n"
    },
    {
      "commit": "d2d6b76d79d7d679b75dd0f78159da239559d32d",
      "tree": "b4ddb3c81f7ae5c92bf2a607ad0979455ae9bc43",
      "parents": [
        "2dcae48df371c4c52ac6ac8c100cdec4634b7a43"
      ],
      "author": {
        "name": "Paul Marquess",
        "email": "pmqs@outlook.com",
        "time": "Wed Mar 11 16:10:49 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Mar 11 18:21:20 2026"
      },
      "message": "Refactor file rename error handling when backup fails\n"
    },
    {
      "commit": "2dcae48df371c4c52ac6ac8c100cdec4634b7a43",
      "tree": "457c6f0b7f6c7184e108c5aec1c88d33a284107d",
      "parents": [
        "b6bf9914dba8b498e12cc3624e74d1136d804cb5"
      ],
      "author": {
        "name": "Paul Marquess",
        "email": "pmqs@outlook.com",
        "time": "Wed Mar 11 16:15:30 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Mar 11 18:18:41 2026"
      },
      "message": "Add MOVEFILE_COPY_ALLOWED flag to MoveFileExW to allow moving across volumes\n"
    },
    {
      "commit": "b6bf9914dba8b498e12cc3624e74d1136d804cb5",
      "tree": "5e96d59029f1b9d04e1019c7224ad5fa230dccd0",
      "parents": [
        "9975579a7fe080f7685f922c99c1a207dfcee579"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Mar 03 00:28:59 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Mar 03 00:59:55 2026"
      },
      "message": "Add cmake subdirectory support to clone_repo macro for zstd.\n"
    },
    {
      "commit": "9975579a7fe080f7685f922c99c1a207dfcee579",
      "tree": "3ac428293928d4b4b59ba288bcaabcebbba84e57",
      "parents": [
        "db034d561841f1d2596e09b3e9870ae4160354bc"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Feb 18 20:58:52 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Mar 02 20:31:38 2026"
      },
      "message": "Sync sanitizer detection CMake with zlib-ng.\n"
    },
    {
      "commit": "db034d561841f1d2596e09b3e9870ae4160354bc",
      "tree": "9e50642cfb7a006873bd7cd9d7ccee96b079fbf5",
      "parents": [
        "9c32106827ee54c42d5e43775e91a37a4f59c7f3"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Feb 18 18:27:25 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Feb 18 18:27:25 2026"
      },
      "message": "Remove redundant MZ_ZLIB_FLAVORS variable and validation check\n"
    },
    {
      "commit": "9c32106827ee54c42d5e43775e91a37a4f59c7f3",
      "tree": "ad0648ed554ef2b6d60607f8093b0a2d61bcca5e",
      "parents": [
        "b60d15c2036bf6554c3f5cecd5664a76a96af7c2"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Feb 09 23:04:50 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Feb 09 23:04:50 2026"
      },
      "message": "Fix for older versions of CMake without FetchContent EXCLUDE_FROM_ALL\n"
    },
    {
      "commit": "b60d15c2036bf6554c3f5cecd5664a76a96af7c2",
      "tree": "746994b03081f611ec868f21515eb5341426b041",
      "parents": [
        "7ef1662e685abf3650629b13966dc3e25bf8014a"
      ],
      "author": {
        "name": "Paul Marquess",
        "email": "pmqs@outlook.com",
        "time": "Mon Feb 09 23:03:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 09 23:03:37 2026"
      },
      "message": "remove calls to add_subdirectory for lzma \u0026 zlib (#959)\n\n"
    },
    {
      "commit": "7ef1662e685abf3650629b13966dc3e25bf8014a",
      "tree": "1565a8314665b2d008e605560da577c16158baec",
      "parents": [
        "41ad65fc10ff9be29a5f198888c334a351e37713"
      ],
      "author": {
        "name": "Paul Marquess",
        "email": "pmqs@outlook.com",
        "time": "Wed Feb 04 22:08:35 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 04 22:08:35 2026"
      },
      "message": "Update markdown files to reference PPMD compression (#958)\n\n"
    },
    {
      "commit": "41ad65fc10ff9be29a5f198888c334a351e37713",
      "tree": "4155086d33420d7a83b150b12d3aedabf947bbcd",
      "parents": [
        "c8c49425fcc476dab6fea52d20ed6dc5b378b728"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Feb 03 22:17:11 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Feb 03 22:17:11 2026"
      },
      "message": "Add TearDown cleanup for compat test temp files\n"
    },
    {
      "commit": "c8c49425fcc476dab6fea52d20ed6dc5b378b728",
      "tree": "5308c4d1a4d5e62d70ea46ea6f171d785f816812",
      "parents": [
        "1040d3589919ddd089993487b5e3fdea6742e1e7"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Feb 03 21:42:48 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Feb 03 21:47:39 2026"
      },
      "message": "Add TearDown cleanup for encrypt test temp files\n"
    },
    {
      "commit": "1040d3589919ddd089993487b5e3fdea6742e1e7",
      "tree": "1067f4d35002f34c5612aab8635dcd5c0ab47d0a",
      "parents": [
        "333bb8e84a2466a4990ba3fd082ae850ceaabfe4"
      ],
      "author": {
        "name": "Cœur",
        "email": "coeur@gmx.fr",
        "time": "Tue Feb 03 05:40:04 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 03 05:40:04 2026"
      },
      "message": "build: avoid MIN macro for Windows (#949)\n\n"
    },
    {
      "commit": "333bb8e84a2466a4990ba3fd082ae850ceaabfe4",
      "tree": "2f889247fff7e021c4bfcf6a4c028b944ac2dc03",
      "parents": [
        "12cd14990b4d33c26c0f0e447698ffd86a15f3f7"
      ],
      "author": {
        "name": "Cœur",
        "email": "coeur@gmx.fr",
        "time": "Tue Feb 03 03:19:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 03 03:19:56 2026"
      },
      "message": "Document that mz_zip_tm_to_time_t requires a year-1900 indexed time struct. (#951)\n\n"
    },
    {
      "commit": "12cd14990b4d33c26c0f0e447698ffd86a15f3f7",
      "tree": "37290ec815f6369fa415983eda4719e35336c09f",
      "parents": [
        "020b11a8ee65347ebc5dfef2a6e03cf2bc017268"
      ],
      "author": {
        "name": "Paul Marquess",
        "email": "pmqs@cpan.org",
        "time": "Mon Feb 02 19:05:39 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 02 19:05:39 2026"
      },
      "message": "Add PPMd \u0026 Zstd zip files to the fuzz corpus (#954)\n\n"
    },
    {
      "commit": "020b11a8ee65347ebc5dfef2a6e03cf2bc017268",
      "tree": "919b0697677b42358142793cce6e7d4661d944f7",
      "parents": [
        "aa00b1d369b236f2f375504f49c9adca3a7ab053"
      ],
      "author": {
        "name": "Paul Marquess",
        "email": "pmqs@cpan.org",
        "time": "Mon Feb 02 19:05:14 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 02 19:05:14 2026"
      },
      "message": "mz_strm_ppmd.c reader issue: it can\u0027t detect EOF (#953)\n\nFixes #950"
    },
    {
      "commit": "aa00b1d369b236f2f375504f49c9adca3a7ab053",
      "tree": "aed7d7987de8183427ca915eb362271b08cf1af6",
      "parents": [
        "5880418f438a0cd1fa326c81ee3b3899ab4c62a5"
      ],
      "author": {
        "name": "Paul Marquess",
        "email": "pmqs@outlook.com",
        "time": "Sat Jan 31 18:35:42 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 31 18:35:42 2026"
      },
      "message": "Add a PPMd dependabot workflow\n\n"
    },
    {
      "commit": "5880418f438a0cd1fa326c81ee3b3899ab4c62a5",
      "tree": "c01d947735137c88f51c43e6e4cdfffca44d57d1",
      "parents": [
        "92eecea9cdfe6c10a0c41994c5f770833fa1895e"
      ],
      "author": {
        "name": "Paul Marquess",
        "email": "pmqs@outlook.com",
        "time": "Tue Jan 13 13:23:27 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Fri Jan 30 18:03:22 2026"
      },
      "message": "Add support for PPMd compression\n"
    },
    {
      "commit": "92eecea9cdfe6c10a0c41994c5f770833fa1895e",
      "tree": "3381868e540c353d44071d072de445bc59256efe",
      "parents": [
        "c9cb748c0f4daa94a8a283dd18b46ec1974e965e"
      ],
      "author": {
        "name": "pmqs",
        "email": "pmqs@cpan.org",
        "time": "Wed Jan 28 17:01:31 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Fri Jan 30 18:03:21 2026"
      },
      "message": "Replace deprecated FetchContent_GetProperties with FetchContent_MakeAvailable\n"
    },
    {
      "commit": "c9cb748c0f4daa94a8a283dd18b46ec1974e965e",
      "tree": "76aff27491ca8eb8b30c46fdebeff70ca89936d8",
      "parents": [
        "0574b3b815cb5b962c7740daef776f1bb7635724"
      ],
      "author": {
        "name": "apocelipes",
        "email": "seve3r@outlook.com",
        "time": "Sun Jan 25 10:07:25 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Fri Jan 30 18:03:21 2026"
      },
      "message": "Fix #941: fix undeclared identifier error of S_IWUSR\n"
    },
    {
      "commit": "0574b3b815cb5b962c7740daef776f1bb7635724",
      "tree": "86e9788f6ef130ad3771bd629b00971b10f14482",
      "parents": [
        "32747dc514ce84edfa5d68073e260ce95a787a14"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Jan 27 17:43:11 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Fri Jan 30 18:03:21 2026"
      },
      "message": "Allocate symlink buffers on first use\n"
    },
    {
      "commit": "32747dc514ce84edfa5d68073e260ce95a787a14",
      "tree": "78d011bbefd2194bad0b760cb914227eda9dfb25",
      "parents": [
        "9963dd30c58f833e86cf71116f9a0dd92391b58d"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Jan 27 17:31:40 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Jan 27 17:31:40 2026"
      },
      "message": "Use fixed buffer size for symlink target instead of path length\n"
    },
    {
      "commit": "9963dd30c58f833e86cf71116f9a0dd92391b58d",
      "tree": "f278837f738383c402797df47131ba52cb218124",
      "parents": [
        "0fa77a3861c35932a0cbde43e236022aab793f4f"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Jan 27 17:27:44 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Jan 27 17:29:49 2026"
      },
      "message": "Add buffer overflow check in mz_os_read_symlink function #944\n"
    },
    {
      "commit": "0fa77a3861c35932a0cbde43e236022aab793f4f",
      "tree": "f611d393e9926347c7b94550514910078737f067",
      "parents": [
        "185667ebff58b4b19d09b47a49b525d039ff0891"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Jan 27 17:13:59 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Jan 27 17:13:59 2026"
      },
      "message": "Resolve alias targets to their real targets for installation\n\nThis should fix CMake on Windows failing.\n"
    },
    {
      "commit": "185667ebff58b4b19d09b47a49b525d039ff0891",
      "tree": "fe4e8492da33f62eeed76dbb04f24b65e785381a",
      "parents": [
        "cf4b58e17ebdcff8c6fbce1a9c3af5bf0485423c"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Jan 27 16:42:54 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Jan 27 16:42:54 2026"
      },
      "message": "Move symlink safety check before overwrite callback in zip extract #945\n"
    },
    {
      "commit": "cf4b58e17ebdcff8c6fbce1a9c3af5bf0485423c",
      "tree": "5a8ff18d129122f8bccbfc80849f218f42b367a4",
      "parents": [
        "5a3c62cf702d699e2666aecfc8c38c28e562e3a7"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jan 21 21:52:50 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jan 21 21:52:59 2026"
      },
      "message": "Version 4.1.0.\n"
    },
    {
      "commit": "5a3c62cf702d699e2666aecfc8c38c28e562e3a7",
      "tree": "46a4e6aa15becf98226a5576b33f63be951e10b0",
      "parents": [
        "bb282ace2281c7734b8537d2b906511e688a5313"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jan 21 21:46:57 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jan 21 21:48:10 2026"
      },
      "message": "Fix arbitrary file write vulnerability via temp file symlink #938\n"
    },
    {
      "commit": "bb282ace2281c7734b8537d2b906511e688a5313",
      "tree": "23eb9e2843d21968b8ba646e879b1cae49e77ae8",
      "parents": [
        "3e5213bcde0261af30a1adbd1fd0eb1387ffd127"
      ],
      "author": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jan 21 21:26:14 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jan 21 21:48:10 2026"
      },
      "message": "Fixed arbitrary file write vulnerability via symlinks. #936\n"
    },
    {
      "commit": "3e5213bcde0261af30a1adbd1fd0eb1387ffd127",
      "tree": "26804de63c826f72aa91751f03e02b76b47821ad",
      "parents": [
        "8a4c0165d91bb50aec7eda830ff252b7c7bfd7fe"
      ],
      "author": {
        "name": "emrecanbulut",
        "email": "bulutemre@itu.edu.tr",
        "time": "Wed Jan 21 19:27:50 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jan 21 19:28:07 2026"
      },
      "message": "Finding the correct library based on dynamic or static choice\n"
    },
    {
      "commit": "8a4c0165d91bb50aec7eda830ff252b7c7bfd7fe",
      "tree": "96e79ac5429bf6ca459a298af47b0e4d43e9d130",
      "parents": [
        "fb0850163738e69a81ec9c323f989bd45e6e783e"
      ],
      "author": {
        "name": "emrecanbulut",
        "email": "bulutemre@itu.edu.tr",
        "time": "Mon Sep 01 13:44:47 2025"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Jan 21 19:22:50 2026"
      },
      "message": "Update FindZLIB-NG.cmake\n\nAdding library names that zlib generates so that it can be found"
    },
    {
      "commit": "fb0850163738e69a81ec9c323f989bd45e6e783e",
      "tree": "1b85e1e8e721f06181cefccbf092ca8db7ee82a6",
      "parents": [
        "ed1522ef6233637f0a32a9b9767990980c54eab3"
      ],
      "author": {
        "name": "pmqs",
        "email": "pmqs@cpan.org",
        "time": "Mon Jan 19 10:17:45 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Jan 19 19:03:52 2026"
      },
      "message": "Add workflow_dispatch to all workflows\n"
    },
    {
      "commit": "ed1522ef6233637f0a32a9b9767990980c54eab3",
      "tree": "1701240e5ed4d3086095918cff9f36b270c48d5f",
      "parents": [
        "f1a1d0037b637377cf656b2fa8b25511e56a42a8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jan 01 00:04:23 2026"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Thu Jan 01 00:24:54 2026"
      },
      "message": "Bump actions/upload-artifact from 5 to 6\n\nBumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/upload-artifact\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "f1a1d0037b637377cf656b2fa8b25511e56a42a8",
      "tree": "4ab198343502cc78443a93fd843bc12515b0fd00",
      "parents": [
        "bf92612b706ba7a31390469ff5ae782c5cb3516a"
      ],
      "author": {
        "name": "Cœur",
        "email": "coeur@gmx.fr",
        "time": "Fri Nov 28 20:18:18 2025"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Wed Dec 24 22:58:22 2025"
      },
      "message": "Fix modified_date when zipping\n"
    },
    {
      "commit": "bf92612b706ba7a31390469ff5ae782c5cb3516a",
      "tree": "fd1eace26eb5ee84dc1f6ba8beedc51774fd6069",
      "parents": [
        "f79db2c3aa3bdb4ed52976e28482fcdf9f398a22"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Dec 01 00:12:22 2025"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Dec 01 00:21:55 2025"
      },
      "message": "Bump actions/checkout from 5 to 6\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "f79db2c3aa3bdb4ed52976e28482fcdf9f398a22",
      "tree": "3ca3cbf48f960504279855c4823cbc9c76facea4",
      "parents": [
        "e2e889bc1971311f257ecbbc8403e11ce2b7ebcc"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Dec 01 00:12:25 2025"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Dec 01 00:21:16 2025"
      },
      "message": "Bump svenstaro/upload-release-action from 2.11.2 to 2.11.3\n\nBumps [svenstaro/upload-release-action](https://github.com/svenstaro/upload-release-action) from 2.11.2 to 2.11.3.\n- [Release notes](https://github.com/svenstaro/upload-release-action/releases)\n- [Changelog](https://github.com/svenstaro/upload-release-action/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/svenstaro/upload-release-action/compare/2.11.2...2.11.3)\n\n---\nupdated-dependencies:\n- dependency-name: svenstaro/upload-release-action\n  dependency-version: 2.11.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "e2e889bc1971311f257ecbbc8403e11ce2b7ebcc",
      "tree": "6f64ecc981a0dd8eadd8216b1ac1e6da302e5414",
      "parents": [
        "31e2b51431afde92f2a54affe821fd24ea0354eb"
      ],
      "author": {
        "name": "noword",
        "email": "noword.forever@gmail.com",
        "time": "Mon Nov 17 05:54:11 2025"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Mon Nov 17 22:59:32 2025"
      },
      "message": "Compatible with systems without symbolic links\n\nCheck if the symlink and readlink functions exist, and define NO_SYMLINK and NO_READLINK based on the results.\nVitaSDK will be recognized as Linux, but it does not support symbolic links.\n"
    },
    {
      "commit": "31e2b51431afde92f2a54affe821fd24ea0354eb",
      "tree": "f048a47e47c88f77a0e4a98d55dba6501226bfcd",
      "parents": [
        "05ba6985efb6d1ad7c9f49d3bc289ef243466f4f"
      ],
      "author": {
        "name": "Cœur",
        "email": "coeur@gmx.fr",
        "time": "Sat Nov 08 10:21:35 2025"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Nov 11 17:16:09 2025"
      },
      "message": "Remove `build-src-dir`\n"
    },
    {
      "commit": "05ba6985efb6d1ad7c9f49d3bc289ef243466f4f",
      "tree": "16eed01d1432962ddceb774ca84c395017314d19",
      "parents": [
        "73d09cbff82e088a9e253d23f2cf79451166c70c"
      ],
      "author": {
        "name": "Benjamin Buch",
        "email": "benjamin.buch@technoteam.de",
        "time": "Fri Nov 07 15:44:50 2025"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Nov 11 02:37:32 2025"
      },
      "message": "fix #915: headers should not include there dependencies\n"
    },
    {
      "commit": "73d09cbff82e088a9e253d23f2cf79451166c70c",
      "tree": "7b700a178369ee16943a2d4c7d617080c6d20532",
      "parents": [
        "6e5e01a1ec46dbd7fd71f5bfd3454648f03f6657"
      ],
      "author": {
        "name": "Cœur",
        "email": "coeur@gmx.fr",
        "time": "Sat Nov 08 10:02:50 2025"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Tue Nov 11 02:29:56 2025"
      },
      "message": "Avoid ruby codeql failure\n"
    },
    {
      "commit": "6e5e01a1ec46dbd7fd71f5bfd3454648f03f6657",
      "tree": "f6d4768b991d680f0a10b9f538d61193b951f6fe",
      "parents": [
        "362b091dc42ede21ddc6cbc4be0f4ba6315e893d"
      ],
      "author": {
        "name": "Cœur",
        "email": "coeur@gmx.fr",
        "time": "Fri Nov 07 15:16:34 2025"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Fri Nov 07 18:18:23 2025"
      },
      "message": "Bump GoogleTest to 1.16\n"
    },
    {
      "commit": "362b091dc42ede21ddc6cbc4be0f4ba6315e893d",
      "tree": "428a7af023785b6657a32d12084592badd30ff44",
      "parents": [
        "549d4c2bc333019a1334666b4f8685fb25ade495"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Nov 01 00:05:23 2025"
      },
      "committer": {
        "name": "Nathan Moinvaziri",
        "email": "nathan@nathanm.com",
        "time": "Sat Nov 01 02:17:05 2025"
      },
      "message": "Bump github/codeql-action from 3 to 4\n\nBumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/v3...v4)\n\n---\nupdated-dependencies:\n- dependency-name: github/codeql-action\n  dependency-version: \u00274\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    }
  ],
  "next": "549d4c2bc333019a1334666b4f8685fb25ade495"
}
