Skip to content

multi-arch support

Finn requested to merge use-signald-libsignal into main

this switches to our own maven repo, which has libsignal-service-java and it's native dependencies built for a wider range of targets than AsamK's repository. This should eliminate the need for post-build patching on common systems. The builds jars are labeled by their rust targets, which gradle will try to detect for your system (set environment variable SIGNALD_TARGET to force a target). The gradle build file can currently detect the following targets:

  • x86_64-unknown-linux-gnu (the only target previously supported)
  • armv7-unknown-linux-gnueabihf (32 bit raspberry pi, others)
  • aarch64-unknown-linux-gnu (64 bit raspberry pi, others)
  • x86_64-apple-darwin (Intel Macs)

While this MR only updates libsignal-service-java from v2.15.3_unofficial_16 to v2.15.3_unofficial_17 (a minor internal change), it comes just in time for v2.15.3_unofficial_18, which depends on libsignal-client, another rust library that would have to be patched in but is now built automatically.

New docker image tags are available for aarch64, prefixed with aarch64-. So the main image will be finn/signald:aarch64-latest, although to try it before it merges use the branch build: finn/signald:aarch64-use-signald-libsignal.

Additional features before this merges may include:

  • musl targets, depending on how hard it is to detect
  • multi-arch deb repo

If you have one of the newly supported targets, please try this branch out and let me know if it works for you. Build it from source and it should detect the target automatically, or download it from the CI. If you have another target you want added, please tell me:

  • the rust target name
  • the java detected OS and architecture (should be reported by the build failure)
Edited by Finn

Merge request reports