-
-
Notifications
You must be signed in to change notification settings - Fork 65
Description
Hello again — this is a follow-up to my earlier runtime question and example request.
I’ve now confirmed several recurring issues during libzim builds (tested on Debian 12 and Raspberry Pi 5)
And I believe these warrant a separate issue:
Problem Summary:
archive.h, entry.h, item.h, and other required headers are not reliably installed by ninja install
Even when the build succeeds, C++ compilers cannot find required headers
Some required symbols (e.g., article_index_type, getItem(), getData()) are exposed in headers but:
🔹 Do not resolve cleanly
🔹 Or rely on internal symbols not included in the install
Why This Matters:
These headers are required for native ZIM readers
Especially important for embedded/low-resource systems (e.g. Raspberry Pi)
Inconsistent installs break downstream builds, even if libzim appears to install correctly
What Would Help:
Review and fix the ninja install target to include all public headers needed for external use
A list of officially supported public headers and their dependencies
Clear confirmation of which types (e.g., article_index_type, FdInput) are intended for public use and which are internal-only
Optional: Add a CI test that validates a g++ build of a minimal ZIM browser using installed headers only
Its taken a lot of trial and error to get to the point where I could even ask the right questions. Now, if we can just resolve these issues, this will go a long way toward making libzim more open and accessible for all developers.
In advance, thanks for the help!!