Only manual compilation of libzkgroup.so works, despite server is CentOS x86_64
I am currently trying to run signald on an Uberspace, they use CentOS:
[covidbot@aegaeon signald]$ uname -a
Linux aegaeon.uberspace.de 3.10.0-1160.11.1.el7.x86_64 #1 SMP Fri Dec 18 16:34:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
On my Laptop (Current Arch Linux, x86-64) the last release just worked fine but I could not get to run it on the Uberspace without compiling libzkgroup.so
manually.
- I tried MR !44 (merged), current master @1e6099a3 as well as the current release 0.11.1
- I tried it with the 0.7.0 release from https://github.com/signalapp/zkgroup/releases using the repacking tool
It just worked with compiling the source of the 0.7.0 release from signalapp/zkgroup.
I used make server_so
which targets x86_64-unknown-linux-gnu
. Afterwards I used the repacking tool. This is weird, as your MR !44 (merged) detects the correct target but it also produced the following error:
All approaches despite self-compilation always produced java.lang.NoClassDefFoundError: Could not initialize class org.signal.zkgroup.internal.Native
when sending a message:
09:53:55.983 [socketlistener] WARN io.finn.signald.util.GroupsUtil - Unable to load groups v2 library. likely due to being non-linux or non-x86. See https://gitlab.com/signald/signald/-/issues/85
09:53:56.343 [socketlistener] WARN io.finn.signald.util.GroupsUtil - Unable to load groups v2 library. likely due to being non-linux or non-x86. See https://gitlab.com/signald/signald/-/issues/85
09:53:57.276 [socketlistener] ERROR io.finn.signald.SocketHandler - Catching
java.lang.NoClassDefFoundError: Could not initialize class org.signal.zkgroup.internal.Native
at org.signal.zkgroup.ServerPublicParams.<init>(ServerPublicParams.java:22) ~[zkgroup-java-0.7.0.jar:?]
at org.whispersystems.signalservice.api.groupsv2.ClientZkOperations.create(ClientZkOperations.java:26) ~[signal-service-java-2.15.3_unofficial_16.jar:?]
at io.finn.signald.Manager.getClientZkOperations(Manager.java:1534) ~[signald.jar:unspecified]
at io.finn.signald.Manager.getMessageReceiver(Manager.java:1531) ~[signald.jar:unspecified]
at io.finn.signald.Manager.getRecipientProfileKeyCredential(Manager.java:1566) ~[signald.jar:unspecified]
at io.finn.signald.Manager.init(Manager.java:297) ~[signald.jar:unspecified]
at io.finn.signald.Manager.get(Manager.java:159) ~[signald.jar:unspecified]
at io.finn.signald.Manager.get(Manager.java:146) ~[signald.jar:unspecified]
at io.finn.signald.SocketHandler.send(SocketHandler.java:263) ~[signald.jar:unspecified]
at io.finn.signald.SocketHandler.handleRequest(SocketHandler.java:168) [signald.jar:unspecified]
at io.finn.signald.SocketHandler.run(SocketHandler.java:134) [signald.jar:unspecified]
at java.lang.Thread.run(Thread.java:832) [?:?]
I can just reproduce this on the Uberspace server, not on my local machine. They are a quite popular shared hosting provider, at least in Germany. Do you have any hints or so to figure out what exactly the issue causes?