Difference between revisions of "Pidgin"

From Jon's Wiki
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''Pidgin''' is a multi-protocol IM client for Windows and *nix desktops (see Adium for Mac). Pidgin 2.x series is woefully crap in many technical ways, but mostly does what it says on the tin. Development on 2.x has been in maintenance mode since about 2011, and most dev effort is focused on the 3.0 which is pretty much a ground-up rewrite.
+
'''Pidgin''' is a multi-protocol IM client for Windows and *nix desktops (see Adium for Mac). Pidgin 2.x series is woefully crap in many technical ways, but mostly does what it says on the tin. Development on 2.x has been in maintenance mode since about 2011, and most dev effort (if any) is focused on the 3.0 branch, which is pretty much a ground-up rewrite, and still hasn't been released.
  
 
== Missing XMPP XEPs ==
 
== Missing XMPP XEPs ==
Line 7: Line 7:
 
* [https://developer.pidgin.im/ticket/15508 XEP-0280: Message Carbons]
 
* [https://developer.pidgin.im/ticket/15508 XEP-0280: Message Carbons]
 
* [https://developer.pidgin.im/ticket/15653 XEP-0313: Message Archive Management]
 
* [https://developer.pidgin.im/ticket/15653 XEP-0313: Message Archive Management]
* [https://developer.pidgin.im/ticket/16801 OMEMO chat encryption] (Whisper Systems Axolotl over XEP-0163: Personal Eventing Protocol, see [http://conversations.im/xeps/multi-end.html proposed XEP]
+
* [https://developer.pidgin.im/ticket/16801 XEP-0384: OMEMO encryption] - Whisper Systems Axolotl over XEP-0163: Personal Eventing Protocol.
  
== XEP-0280: Message Carbons ==
+
This is compounded by the XMPP Standards Foundation, which has dwindled of late to about two people who actually bother to turn up to six monthly meetings, who seem to talk about anything other than progressing any fucking standards beyond "experimental". Meanwhile, here are instructions on how to fix them.
  
This is the bit that lets XMPP clients track message history like Hangouts does, when you are using multiple clients in a conversation (e.g. phone, tablet, gaming PC, work laptop). The perfectly working patch by "xnyhps" has been lurking on [https://developer.pidgin.im/ticket/15508 Ticket #15508] since January 2014 but everyone's busy with the [https://developer.pidgin.im/query?group=status&component=XMPP&milestone=3.0.0 3.0 milestone], and things like realtime text and message receipts seem to have been deemed more important. Luckily, these instructions will build you a modified version you can install yourself:
+
==== XEP-0280: Message Carbons ====
  
apt-get source pidgin
+
There's now a Pidgin 2.x [https://github.com/gkdr/carbons/ plugin].
sudo apt-get build-dep pidgin
 
cd pidgin-2.10.9
 
wget <nowiki>https://developer.pidgin.im/raw-attachment/ticket/15508/carbons.5.patch</nowiki>
 
patch -p1 < carbons.5.patch
 
dpkg-source --commit
 
vi debian/changelog  # bump to +nmu1
 
dpkg-buildpackage  # -us -uc if you can't be arsed with a PGP key
 
sudo dpkg -i ../pidgin*.deb ../libpurple*.deb
 
  
== XEP-0313: Message Archive Management ==
+
==== XEP-0313: Message Archive Management ====
  
This is the bit that lets the server stash messages sent to you while you're offline, and the client to sync the history when next online, also like Hangouts. Especially useful for multiuser chatrooms. A [https://github.com/CkNoSFeRaTU/pidgin/commits/master patch] potentially exists in the meantime.
+
This is the bit that lets the server stash messages sent to you while you're offline, and the client to sync the history when next online, also like Hangouts. Especially useful for multiuser chatrooms. A [https://github.com/CkNoSFeRaTU/pidgin/commits/master patch] potentially exists in the meantime. Pidgin 2.x is limited in its ability to store information on disk (unencrypted plain text, pretty much) which precludes implementing MAM without also implementing SQLite databases and so on.
 +
 
 +
==== XEP-384: OMEMO Encryption ====
 +
 
 +
OMEMO is now an [https://xmpp.org/extensions/xep-0384.html XEP] marked experimental, and there's now a Pidgin 2.x [https://github.com/gkdr/lurch/ plugin].
 +
 
 +
== Facebook, Hangouts, and Steam ==
 +
 
 +
These protocols used to be XMPP-based, but because nobody seems to understand how to implement it properly, and the XEP standards body can't be bothered progressing draft standards that have been in use for years, they have been replaced by proprietary protocols, and there are now [https://developer.pidgin.im/wiki/ThirdPartyPlugins plugins] for them for libpurple:
 +
 
 +
* [https://github.com/jgeboski/purple-facebook/wiki Facebook Messenger] protocol, based on a 2015 Google Summer of Code project.
 +
* [https://bitbucket.org/EionRobb/purple-hangouts/ Google Hangouts], protocol, also based on 2015 GSoC.
 +
* [https://github.com/EionRobb/pidgin-opensteamworks Steam], based on Valve's Open Steamworks API.
 +
 
 +
These just involve running <tt>make</tt> and lobbing the .so into your <tt>~/.purple/plugins</tt> directory; see their respective README files for installation instructions. You will need Google protobuffers and GLib JSON libraries too:
 +
 
 +
sudo apt-get install libprotobuf-c1 libjson-glib-1.0-0
 +
 
 +
== Discord, Mattermost, RocketChat... ==
 +
 
 +
Eion Robb has been churning out libpurples for all sorts of other protocols too - have a look at the list of [https://developer.pidgin.im/wiki/ThirdPartyPlugins#Third-PartyPlugins third party plugins] on the Pidgin wiki.
  
 
== See also ==
 
== See also ==
  
 
* Use [[Prosody]] to run your own XMPP (jabber) server, it's easy.
 
* Use [[Prosody]] to run your own XMPP (jabber) server, it's easy.
* Use Conversations on your [[Android]] gadget.
+
* Use Conversations on your [[Android]] gadget, or [https://chatsecure.org/ ChatSecure] on your Apple gadget.

Latest revision as of 01:20, 30 April 2019

Pidgin is a multi-protocol IM client for Windows and *nix desktops (see Adium for Mac). Pidgin 2.x series is woefully crap in many technical ways, but mostly does what it says on the tin. Development on 2.x has been in maintenance mode since about 2011, and most dev effort (if any) is focused on the 3.0 branch, which is pretty much a ground-up rewrite, and still hasn't been released.

Missing XMPP XEPs

XMPP support in Pidgin has been slow to adopt new shiny XMPP extensions (XEP). Tickets exist for them:

This is compounded by the XMPP Standards Foundation, which has dwindled of late to about two people who actually bother to turn up to six monthly meetings, who seem to talk about anything other than progressing any fucking standards beyond "experimental". Meanwhile, here are instructions on how to fix them.

XEP-0280: Message Carbons

There's now a Pidgin 2.x plugin.

XEP-0313: Message Archive Management

This is the bit that lets the server stash messages sent to you while you're offline, and the client to sync the history when next online, also like Hangouts. Especially useful for multiuser chatrooms. A patch potentially exists in the meantime. Pidgin 2.x is limited in its ability to store information on disk (unencrypted plain text, pretty much) which precludes implementing MAM without also implementing SQLite databases and so on.

XEP-384: OMEMO Encryption

OMEMO is now an XEP marked experimental, and there's now a Pidgin 2.x plugin.

Facebook, Hangouts, and Steam

These protocols used to be XMPP-based, but because nobody seems to understand how to implement it properly, and the XEP standards body can't be bothered progressing draft standards that have been in use for years, they have been replaced by proprietary protocols, and there are now plugins for them for libpurple:

These just involve running make and lobbing the .so into your ~/.purple/plugins directory; see their respective README files for installation instructions. You will need Google protobuffers and GLib JSON libraries too:

sudo apt-get install libprotobuf-c1 libjson-glib-1.0-0

Discord, Mattermost, RocketChat...

Eion Robb has been churning out libpurples for all sorts of other protocols too - have a look at the list of third party plugins on the Pidgin wiki.

See also

  • Use Prosody to run your own XMPP (jabber) server, it's easy.
  • Use Conversations on your Android gadget, or ChatSecure on your Apple gadget.