When releasing libzim and libkiwix, we use config native_mixed with is a
mix of static and dynamic linking:
- Dependencies are build as static libraries.
- Released projects (libzim/libkiwix) are build as dynamic libraries,
statically linked to dependencies.
This way, we have only one `.so` file which contain all our needed symbols.
However, this logic is "local" to each project.
This mean that libkiwix is linked **statically** to libzim.
So libkiwix.so is containing libzim symbols.
But on "java-libkiwix", we are both linking to libzim.so and libkiwix.so.
If the version of the (dynamically) used libzim.so is not the same that the
version on which we have (statically) linked libkiwix.so, we end with
symbols of two different versions being loaded and conflicting.
So let's rebuild libkiwix with last version of libzim to avoid this conflict.
ICU is used to:
- List locales (`locales_tree`)
- Get information about those locales in different languages (`lang_tree`)
- Remove accents (`translit`)
Tracing ICU without custom data, we also load `likelySubtags` and
`metadata`. Not sure why and what happen when missing but let's be
conservatives and include them.
We don't have a version 13.0.0 for libkiwix.
So the master branch of libkiwix is generating version 12.1.1.
We must use the correct version as we try to fix the rpath on macos
and we we don't have the right version, we fail because the lib file
doesn't exist.
This is mainly a release of libkiwix 12.1.0 as 12.1.0 introduce breaking
changes.
No need to rebuild kiwix-tools (it is already builded with 12.1.0)
Don't build kiwix-destkop as current version of kiwix-desktop is not
ported to kiwix-13.0.0 (`main` is, but not last release).
The version of libzim (and other project too) is used to know what we
need to package in the published archive (nightly and releasee).
So the version must correspond to what is build.
For nightlies, we build the `main` branch and the main branch of libzim
is still on 8.1.0 so we must have the same version.
Fixopenzim/libzim#772