Commit graph

428 commits

Author SHA1 Message Date
Matthieu Gautier
369a5015a0 Fix cross-compilation to raspberry-pi.
Use a toolschain made for debian Bullseye (or equivalent).
Using the Stretch toolschain, kiwix-serve launch but crash with a SIGSEGV
at first request.
(I suspect a "conflict" between thread and exception handling as
a test program with exception only works).

Moving the a toolschain targeting Bullseye fixes the issues
(both on qemu and real raspberry-pi v3 B).

Note that the toolschain is given to compile for Pi 2 and 3 only.
I've also tested with toolschain for Pi 3A+, 3B+, 4 and generated binary
also works.
Not tested of Pi Zero.


Fix #613
2023-05-15 18:18:14 +02:00
Matthieu Gautier
647304c253 New releaes of libzim, zim-tools and kiwix-tools. 2023-04-28 11:39:29 +02:00
Matthieu Gautier
fd85b80b2c Move back to gcc 6.3.0 when compiling to aarch64. 2023-04-26 16:54:35 +02:00
Matthieu Gautier
5ef7e2a017 New version of xapian 1.4.22
Fix #599
2023-04-25 16:54:40 +02:00
Matthieu Gautier
2b6e305911 Install things in lib/aarch64-linux-gnu 2023-04-19 11:36:08 +02:00
Matthieu Gautier
c9e9c5c070 Move all our CI to focal instead of bionic
Bionic is EOL.
2023-04-12 16:53:32 +02:00
Matthieu Gautier
7b7afc36e7 Mixed platform are not static. 2023-03-31 10:51:11 +02:00
Matthieu Gautier
260b93a51d Correctly set the include dirs for mixed_target.
Until now, mixed targets was only about native build and so we were not
using a meson cross_config file and env var was enough.

But now we also to correctly set it in the cross_config file.
2023-03-30 16:40:20 +02:00
Matthieu Gautier
b218875d49 Rename macOS_arm64 to macOS_arm64_static.
Publication code in `.github/scripts` expected that `foo_mixed` target
is tied to a `foo_static` target.
2023-03-30 14:18:53 +02:00
Matthieu Gautier
de25a1e63b Add macOS_arm64_mixed platform. 2023-03-30 14:18:53 +02:00
Matthieu Gautier
7ae3afd805 Introduce mixed target for armhf and aarch64. 2023-03-28 17:48:08 +02:00
Matthieu Gautier
ab2cbdbe5b Introduce aarch64 target.
In opposition to 32 bits, it is adapted to all PI (as long as they are
in 64 bits).
2023-03-28 17:47:48 +02:00
Matthieu Gautier
4e88c6eb10 Correctly set the armhf toolchain to a 32 bits arch.
cross-gcc-10.3.0-pi_64.tar.gz for 64 bits architecture and armhf
is about 32 bits.

However, we know use a pi 2 and 3 and Stretch only[*] toolchains

[*] To be tested. Maybe the only is for the target compilation but binary
run elsewhere too.
2023-03-28 17:46:31 +02:00
Matthieu Gautier
31771fa35c Introduce MixedMixin
We will need to create "mixed linkage" library for other arch than native.
It is better to move associated code in a separate part.
2023-03-28 17:40:12 +02:00
Matthieu Gautier
b6f49efcda Update meta version to not used cached library. 2023-03-28 16:16:22 +02:00
Matthieu Gautier
b8cd12a360 Update armhf toolschain. 2023-03-28 16:16:22 +02:00
Matthieu Gautier
556f02cf48 Set back the version of libzim to 8.1.0
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.

Fix openzim/libzim#772
2023-03-28 11:47:56 +02:00
Matthieu Gautier
61fb624f66 Correctly set the release version of libzim.
As we have change the version of libzim, release build must be 0.
2023-03-22 14:04:36 +01:00
Matthieu Gautier
efff7abbfc New release of libzim 8.1.1
As this is just a ABI fix and we recompile everything when we do
a release of our projects, we don't need to recompile our projects.
Building with libzim 8.1.0 was enough, no need to trigger a update in all
the users of prebuild binary.
2023-03-22 13:29:52 +01:00
Matthieu Gautier
7a23bb5b8b Fix creation of base dependencies archive.
The `INSTALL_DIR` was added twice. It was not a issue as we then transform
the list into a set to remove duplicated.

But with `filter_install_dir` call only on one "add", the (textual)
entries are not duplicated and so, not removed. So the files where add
twice.

Now we correctly filter initial `INSTALL_DIR` and we remove the second add.
2023-03-14 17:17:30 +01:00
Matthieu Gautier
674c29c351 Bump the base_deps_meta_version.
As we install base library in a different directory, we have to
regenereate the base_deps archives.
2023-03-01 14:17:48 +01:00
Matthieu Gautier
6181d7bb08 Install wasm libraries in INSTALL/lib directory.
The default detected libdir is based on the build architecture.
On ubuntu, it is `lib/x86_64-linux-gnu` which is obviously not the right
directory.

Let's simply use `lib`.

Fix #556
2023-03-01 14:16:36 +01:00
Emmanuel Engelhart
7e88bf14a2
Bumpup libmicrohttpd to 0.9.76 2023-03-01 10:10:15 +01:00
Matthieu Gautier
f6a7f43ece Fix the iOsMacABI target in the CI
It seems that on last version of CI envirronement, ios' clang doesnt
recognize ios13.0.

Moving to ios 14.0
2023-02-07 09:52:37 +01:00
Matthieu Gautier
1f8ccde487 "main" is now our default branch for all our projects. 2023-01-03 10:19:52 +01:00
Matthieu Gautier
344b9328c3 libzim and zim-tools are now using "main" for the default branch. 2022-12-22 14:32:13 +01:00
Matthieu Gautier
d76819390e Do not always fallback to master. 2022-12-22 14:31:20 +01:00
Matthieu Gautier
bcbcbb525f Trigger a new build of libzim.
With the wasm arch fixed, we need to do a new build release.
2022-12-09 10:55:14 +01:00
Matthieu Gautier
f6cd94366a Fix wasm compilation.
On wasm, we cannot do mmap. We have to do plain read.

Fix openzim/libzim#751
2022-12-06 19:01:38 +01:00
Matthieu Gautier
fb095d91e6 Retrigger a build for wasm.
Other platforms will fail at upload because archives are read only but
the wasm build should be ok.
2022-12-01 22:09:51 +01:00
Matthieu Gautier
3be9eca1a9 New version of all projects
- libzim 8.1.0
- libkiwix 12.0.0
- zim-tools 3.1.3
- kiwix-tools 3.4.0
- kiwix-desktop 2.3.1
2022-11-30 18:16:21 +01:00
Matthieu Gautier
ab2458c1c4 Add "static" include dir when compiling native_mixed. 2022-11-30 14:22:13 +01:00
Matthieu Gautier
cd0c2da542 Correctly compile libkiwix on native_mixed 2022-11-30 12:20:40 +01:00
Matthieu Gautier
9695737ca1 Update meta_version to trigger a build on the CI 2022-11-16 16:37:05 +01:00
Matthieu Gautier
fd8044ba76 Reduce base dependencies to ony what needed on wasm. 2022-11-16 16:37:05 +01:00
Matthieu Gautier
6f8b82ad7d Fallback to lzma-5.2.6
Version 5.2.7 include this commit
https://git.tukaani.org/?p=xz.git;a=commit;h=31d80c6b261b24220776dfaeb8a04f80f80e0a24

With this change, compiling libzim mixed (libzim dynamic and dependencies,
so lzma, statically) fails at libzim linking with a
`src/libzim.so.8.0.1: version node not found for symbol lzma_get_progress@XZ_5.2.2`
error message.

This can be "workaround" by passing `--disable-symbol-versions` to
configure script but then, it is the compilation of kiwix-desktop in
native_dyn which falling with

```
/usr/bin/ld: /usr/lib64/libsystemd.so.0: undefined reference to `lzma_code@XZ_5.0'
/usr/bin/ld: /usr/lib64/libsystemd.so.0: undefined reference to `lzma_end@XZ_5.0'
/usr/bin/ld: /usr/lib64/libsystemd.so.0: undefined reference to `lzma_stream_decoder@XZ_5.0'
/usr/bin/ld: /usr/lib64/libxml2.so.2: undefined reference to `lzma_auto_decoder@XZ_5.0'
/usr/bin/ld: /usr/lib64/libxml2.so.2: undefined reference to `lzma_properties_decode@XZ_5.0'
```

Probably because some native dependencies (Qt ?) use versionned symbols.

This have to be fixed somehow but until then, let's go back to 5.2.6
2022-11-16 16:37:05 +01:00
Matthieu Gautier
180fb249f6 Add a support to compile libzim for wasm.
`icu4c_wasm.patch` is build by :
 - Copying config.sub from liblzma source as new version of config.sub there
   knows about wasm architecture.
 - Copying `mh-linux` on `mh-unknown` as specified in (origin) `mh-unknown`.
   This is because icu4c configure doesn't detect `emscripten` platform and
   "fallback" to `mh-unknown`.
2022-11-16 16:37:05 +01:00
Matthieu Gautier
b8c120b179 Pass the path of the patch in the command line instead of as stdin.
This way, we can see the applied patch in the log.
2022-11-16 10:46:06 +01:00
Matthieu Gautier
a7809b33fc Update lzma version to 5.2.7
On top of using a more recent version (which is good it itself),
version 5.2.7 use a autotools version which knows about wasm.
2022-11-16 10:46:06 +01:00
Matthieu Gautier
ce82860b85 Introduce configure and make wrapper.
This way, we can use small wrapper tools from sdk to run configure and
make.
2022-11-16 10:45:57 +01:00
Matthieu Gautier
3847844c54 Update android_ndk to version r21e
To do this, we need to update the android api to 24.
We lost all users using a android under api 24.
2022-09-29 09:45:15 +02:00
Matthieu Gautier
e21cb8971a Add an option to set the build directory of kiwix-build. 2022-09-21 16:15:14 +02:00
Matthieu Gautier
6d4aa756b5 New versions of zim-tools (3.1.2) and kiwix-desktop (2.3.0) 2022-09-07 18:53:14 +02:00
Matthieu Gautier
27bdda0bcf New version 8.0.1 of libzim.
This is the minor fix for debian packaging.
No need to rebuild other projects.
2022-09-07 18:53:14 +02:00
Matthieu Gautier
3ebf005cbb New version 8.0.0 of libzim 2022-08-11 17:28:02 +02:00
Matthieu Gautier
bcbb164d49 Build libzim dynamically on android. 2022-06-28 12:23:35 +02:00
Matthieu Gautier
3764fde97e We don't need jdk anymore to build on android 2022-06-28 12:23:04 +02:00
Matthieu Gautier
5939865e7c New version 2.2.2 of kiwix-desktop 2022-06-22 16:08:55 +02:00
Matthieu Gautier
a04b989ed5 Update kde and qtwebengine to last Platform version. 2022-06-21 16:47:07 +02:00
Matthieu Gautier
72023a9a09 New version of libkiwix and kiwix-tools
Do not rebuild kiwix-desktop has current version is not compatible
with new version of libkiwix. We will do a release of kiwix-desktop soon.
2022-06-15 14:29:36 +02:00