71 lines
2.7 KiB
Markdown
71 lines
2.7 KiB
Markdown
# 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-rust)
|
|
* 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-rust`, 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 desktop usage.
|
|
|
|
## Current status
|
|
|
|
Starting again from scratch in Rust. So currently, nothing works. TODO list:
|
|
|
|
- [~] Connect to email account
|
|
- [ ] Full settings support
|
|
- [ ] Show buddy list
|
|
- [ ] Send/receive text messages to single contact
|
|
- [ ] Send/receive text messages to group chat
|
|
- [ ] IMEX setup
|
|
- [ ] Send/receive image messages
|
|
- [ ] Send/receive audio messages
|
|
- [ ] Send/receive video messages
|
|
- [ ] Send/receive arbitrary attachments
|
|
|
|
|
|
|
|
## Build
|
|
|
|
There are some licensing issues at present, so you shouldn't build this plugin.
|
|
|
|
`deltachat-core-rust` uses a vendored openssl 1, 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.
|
|
|
|
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.
|
|
|
|
Significant code using the WTFPL includes the [libpurple-rust bindings](https://github.com/sbwtw/libpurple-rust)
|
|
and the [pidgin-wechat plugin](https://github.com/sbwtw/pidgin-wechat), which
|
|
I'm taking a lot of inspiration from. WTF I like happens to include building it
|
|
against this mess.
|
|
|
|
## 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.
|
|
|
|
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.
|