-
-
Notifications
You must be signed in to change notification settings - Fork 108
Description
Chatmail core currently has official Python and Node.js bindings published to PyPI and NPM. Maven Cental is the de facto primary repository for Java since JCenter has been shutdown.
JNI bindings exist, but are only used by Delta Chat for Android at https://github.com/deltachat/deltachat-android/tree/5117b70c589fc11b5239680dabaa4f07668072db/jni
There are users trying to JNI bindings in another chatmail client and they currently do this by copying the bindings from Delta Chat for Android repository: https://support.delta.chat/t/developing-with-chatmail-core-on-android-no-events-coming-in/4185
I think we should create a separate repository with chatmail core as a Git submodule so we can directly copy existing structure from deltachat-android repo with minimal modifications. Creating the issue here in chatmail core tracker only because there is no dedicated tracker yet.
As for licensing, chatmail core and all its bindings are MPLv2-licensed and JNI bindings don't have any GPL code that comes from Signal, so we can copy-paste MPLv2 from the core repo. Since deltachat/deltachat-android#3925 is merged JNI bindings also contain code generated with https://github.com/chatmail/dcrpcgen, this also needs to be changed to MPLv2 as it contains templates from which bindings are generated.
There are two exceptions:
src/main/java/com/b44t/messenger/util/concurrent/ListenableFuture.java
src/main/java/com/b44t/messenger/util/concurrent/SettableFuture.java
These two files originate from the Signal messenger, this can be seen in the original commit in Delta Chat Android repo. They are trivial, but ideally we should be able to get rid of them, also because they are nearly trivial.
I have started something at https://github.com/chatmail/jni/ by copying the code from the current main
branch at deltachat/deltachat-android@dfef2b4
Documentation for publishing: