Files
signal-cli-rest-api/ext/libraries/libsignal-client
2025-05-10 20:20:05 +02:00
..
2021-10-29 14:53:02 +02:00
2021-12-14 21:20:13 +01:00
2023-03-05 23:10:13 +01:00
2023-12-15 22:26:48 +01:00
2024-03-25 19:03:19 +01:00
2024-06-06 19:54:12 +02:00
2024-09-29 22:53:25 +02:00
2024-12-11 00:47:51 +01:00
2024-12-27 21:46:08 +01:00
2025-01-26 21:50:17 +01:00
2025-03-02 23:44:48 +01:00
2025-04-13 15:59:58 +02:00
2025-05-10 20:20:05 +02:00

HOWTO BUILD

cross is used for cross compiling libsignal-client.

  • download new release from https://github.com/signalapp/libsignal-client/releases

  • unzip + change into directory

  • cd into java directory

  • run cross build --target x86_64-unknown-linux-gnu --release -p libsignal-jni

    run cross build --target armv7-unknown-linux-gnueabihf --release -p libsignal-jni

    run cross build --target aarch64-unknown-linux-gnu --release -p libsignal-jni to build the library for x86-64, armv7 and arm64

  • the built library will be in the target/<architecture>/release folder

Why?

Building libsignal-client every time a new docker image gets released takes really long (especially for cross platform builds with docker/buildx and QEMU). Furthermore, due to this bug here (https://github.com/docker/buildx/issues/395) we would need to use an ugly workaround for that right now. As libsignal-client isn't released very often I guess it's okay to manually build a new version once in a while.

Pitfalls

  1. cross requires a Rust installation via rustup, otherwise you might receive a toolchain is not fully qualified-Error.
  2. Your user must have permission to directly talk to the Docker daemon using the docker command. To avoid running as root, you can add your user to the docker group and reboot.