diff --git a/Provide-native-lib-for-libsignal.md b/Provide-native-lib-for-libsignal.md index e4e84ee..e39df03 100644 --- a/Provide-native-lib-for-libsignal.md +++ b/Provide-native-lib-for-libsignal.md @@ -1,6 +1,16 @@ -For the new v2 groups libsignal-service requires [libzkgroup](https://github.com/signalapp/zkgroup), a native (rust) library. The library needs to be compiled separately for each CPU architecture and operating system. -The `.dylib` for macOS and the `.so` for unix systems can be bundled in the root of the `zkgroup-java-*.jar` file (but only for one architecture at a time). Only if there is no bundled file will libsignal search the library path (`java.library.path`) for the `.dylib`/`.do`/`.dll` file. +For the new v2 groups libsignal-service requires [libzkgroup](https://github.com/signalapp/zkgroup), a native (rust) library. The library needs to be compiled separately for each CPU architecture and operating system. The `.dylib` for macOS and the `.so` for unix systems can be bundled in the root of the `zkgroup-java-*.jar` file (but only for one architecture at a time). Only if there is no bundled file will libsignal search the library path (`java.library.path`) for the `.dylib`/`.so`/`.dll` file. -The linux x86_64 version is bundled by default, for other systems, you need to remove the bundled lib from the jar file, download or compile (`make libzkgroup`) the latest [libzkgroup](https://github.com/signalapp/zkgroup/releases) for your system and put it in the library path. +The linux x86_64 version is bundled by default. For other systems, you need to remove the bundled lib from the jar file -`zip -d lib/zkgroup-java-*.jar libzkgroup.so` \ No newline at end of file + zip -d build/install/signal-cli/lib/zkgroup-java-*.jar libzkgroup.so + +Then either download the pre-built lib file or compile (`make libzkgroup`) the latest [libzkgroup](https://github.com/signalapp/zkgroup/releases) for your system and put it in the library path. + +### Overriding `java.library.path` + +If you are using `java.library.path` and you can't find you paths or simply wish to not use the system defaults, then you can override the paths by modifying the final line of `build/install/signal-cli/bin/signal-cli` +```bash +JAVA_LIBRARY_PATH="-Djava.library.path=/your/java/library/path" +exec "$JAVACMD" "$JAVA_LIBRARY_PATH" "$@" +``` +Make sure to place your `.dylib`/`.so`/`.dll` file in that folder \ No newline at end of file