# Delta Chat plugin for libpurple ## Overview [Delta Chat](https://delta.chat) is an instant messaging application based on email - which is to say, SMTP+IMAP. Delta has: * A mature [core library](https://github.com/deltachat/deltachat-core) * A mature [Android application](https://github.com/deltachat/deltachat-android) * An experimental [iOS application](https://github.com/deltachat/deltachat-ios) * An electron [desktop application](https://github.com/deltachat/deltachat-desktop) This project is a [libpurple](https://developer.pidgin.im/wiki/WhatIsLibpurple) plugin that wraps `deltachat-core`, allowing a number of existing desktop and mobile clients to send and receive IMs over SMTP+IMAP. It may be useful for [Linux-based mobile devices](https://source.puri.sm/Librem5/chatty), for GUI desktop usage **without** an Electron dependency, or console desktop usage. Current status is probably best described as "skunkworks", although connecting to an account and sending / receiving text messages should work reliably. You can view specific progress on [the issue board](https://gitlab.com/lupine/purple-plugin-delta/boards). ## Build There are some licensing issues at present, so you shouldn't build this plugin. `deltachat-core` vendors openssl, unconditionally links it, and is MPL-licensed. `purple-plugin-delta` is GPLv3 without the [OpenSSL exemption](https://people.gnome.org/~markmc/openssl-and-the-gpl.html) `libpurple` itself is GPLv2 without the OpenSSL exemption. `deltachat-core-rust` may make OpenSSL optional, so linking against that version would be fine. Linking against a patched / changed `deltachat-core` that disregards vendored OpenSSL and uses GnuTLS instead would also be fine. There's no point to `purple-plugin-delta` adding the OpenSSL exemption because `libpurple` lacks it, and in any event, it will be unnecessary with the next major version of OpenSSL. So, time should resolve this for us one way or another. ## Use The easiest way to use this is to copy the `libdelta.so` file into `~/.purple/plugins`. When running pidgin, you'll now have the option to add a "Delta Chat" account. If it doesn't show up, chances are pidgin can't find the various shared libraries the .so depends on. You can run `ldd ~/.purple/plugins/libdelta.so` to confirm. I'll document fixing this after the build and install system is settled. At present, the "Username" and "Password" account fields correspond to email address and password, respectively. Many important settings also show up on the "Advanced" tab - if left blank, the plugin will attempt to automatically detect the correct values, but you may need to fill some of them in manually to get the connection to work. Run pidgin with `--debug` to see interesting output.