Skip to content

[pull] master from GerbilSoft:master#261

Merged
pull[bot] merged 22 commits into
bazzite-org:masterfrom
GerbilSoft:master
Jul 12, 2026
Merged

[pull] master from GerbilSoft:master#261
pull[bot] merged 22 commits into
bazzite-org:masterfrom
GerbilSoft:master

Conversation

@pull

@pull pull Bot commented Jul 12, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

…lose() to mz_zip_delete().

mz_zip_delete() will return without doing anything if nullptr is passed,
similar to unzClose(). unzClose() is part of the compat API, which isn't
usually present in system-wide versions of MiniZip-NG.
It's similar to the compat API, but with a few extra steps.
In particular, the reader isn't created automatically, and has
to be deleted separately from closing the file. Memory allocation
for e.g. file_info is handled differently, too.
MiniZip-NG takes UTF-8 filenames on all platforms in recent versions.
Previously (pre-2.2.3), it would take UTF-16 filenames on Windows.

We upgraded to MiniZip-NG 2.2.3+ in November 2017, so it was part of
rom-properties 1.2. (rp_string was still in use until v1.3!)
…ipReader.

We'll need to have both a stream and a reader for the RomData subclasses,
since they'll be reading from an IRpFile with a custom mz_stream.
…) check.

Copy/paste error that effectively broke the test.

This fixes a regression from commit 4c6e770.
([libromdata/tests] GcnFstTest: Inline openZip().)
RomData_decl.hpp: New macros to use MiniZip-NG's native API
instead of the compat API.

mz_stream_IRpFile.cpp: mz_stream implementation using IRpFile.
Similar to the unzFile implementation.

RomDataFactory.cpp: Update to use MiniZip-NG's native API.

NOTE: J2ME hasn't been updated yet. Since RomDataFactory now requires
the new API, J2ME .jar files won't work until J2ME is updated.
…m size_t to off64_t to match loadFileFromZip().
This TODO makes sense in AndroidAPK and J2ME, but in RomDataFactory,
we're *opening* the ZIP file here, so it doesn't make sense.
…acros.

Everything has been ported to MiniZip-NG's native API.
The DLL will now be named minizip-ng.dll (or minizip-ngd.dll).

- Update Windows delay-load handling for this change.

- Add minizip-ng.def with all of the symbol definitions. For some reason,
  the MiniZip-NG headers don't explicitly export symbols. We don't want
  to use CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS because that can cause a bunch
  of other stuff to be exported.

  - NOTE: This means the Windows build probably broke when we started
    porting to MiniZip-NG's native API...

- As a side effect, this also means MiniZip's command line utilities
  should build correctly on Windows now.
MiniZip-NG 2.2.4 added UTF-8 to UTF-16 filename conversion on Windows,
but that isn't relevant for Linux, so I'm not going to add a minimum
version for now. I may add one later if issues are found.

TODO: Add MiniZip-NG to AboutTab.
N.B.: The first version of various distros to include MiniZip-NG:

- Debian: 14 "Forky" (not released yet)
- Ubuntu: 26.04 "Resolute" Raccoon
- Fedora: 39 (possibly earlier; can't find info on prior versions)
Using the same case as FindMinizipNG.cmake.
It's essentially ABI-compatible with 9.0, though we *did* add some custom
properties. (RippedBy, Version) This *shouldn't* cause any compatibility
issues, since RomMetaData should simply ignore out-of-range property IDs...
…E_INTERNAL_MinizipNG .

This broke all of the AppVeyor builds, and probably local builds too.
…it's not available.

Check for both defined and non-zero to handle both mz_config.h and
config.libc.h.

This fixes building GcnFstTest on Windows. (...and the AppVeyor build)
@pull pull Bot locked and limited conversation to collaborators Jul 12, 2026
@pull pull Bot added the ⤵️ pull label Jul 12, 2026
@pull
pull Bot merged commit be2e1ca into bazzite-org:master Jul 12, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant