Skip to content

Missing Headers and Installation Inconsistencies in libzim (e.g., archive.h not installed) #990

@sj80231

Description

@sj80231

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!!

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions