Pidgin (software)

{{Short description|Open-source multi-platform instant messaging client}}

{{Redirect|Gaim}}

{{About|the instant messenger|coding|pidgin code}}

{{Use mdy dates|date=December 2017}}

{{Infobox software

| name = Pidgin

| logo = File:pidgin.svg

| logo size = 100px

| logo alt = Pidgin logo

| screenshot = Pidgin 2.10.9.png

| screenshot size = 250px

| screenshot alt = Pidgin's buddy list

| caption = Pidgin's buddy list window in Trisquel

| collapsible = yes

| developer =

| released = {{start date and age|1998|12|31}} (as Gaim)

| latest release version = {{wikidata|property|preferred|references|edit|Q71380|P348|P548=Q2804309}}

| latest release date = {{wikidata|qualifier|preferred|single|Q71380|P348|P548=Q2804309|P577}}

| latest preview version = {{wikidata|property|preferred|references|edit|Q71380|P348|P548=Q51930650}}

| latest preview date = {{wikidata|qualifier|preferred|single|Q71380|P348|P548=Q51930650|P577}}

| programming language = C (C#, Perl, Python, Tcl are used for plugins)

| platform = Linux
macOS (unofficial)
Microsoft Windows
Solaris(unofficial)
FreeBSD
NetBSD(unofficial)
OpenBSD(unofficial)

| language = Multiple languages[https://pidgin.im/about/ About Pidgin: Supported languages]

| genre = Instant messaging client

| license = GPL-3.0-or-later

}}

{{Update|reason=most of the sources cited by this article are over ten years old and it's unclear how true most of this information still is as of 2024|date=August 2024}}

Pidgin (formerly named Gaim) is a free and open-source multi-platform instant messaging client, based on a library named libpurple that has support for many instant messaging protocols, allowing the user to simultaneously log in to various services from a single application, with a single interface for both popular and obsolete protocols (from AIM to Discord), thus avoiding the hassle of having to deal with new software for each device and protocol.

{{As of|2007}}, the number of Pidgin users was estimated to be over three million.[http://www.pcworld.idg.com.au/index.php/id;1641709366;pp;1;fp;2;fpid;4 "Luke Schierer discusses Pidgin, Open source and life"] {{webarchive |url=https://web.archive.org/web/20080208121742/http://www.pcworld.idg.com.au/index.php/id;1641709366;pp;1;fp;2;fpid;4 |date=February 8, 2008 }}. PC World Australia, October 10, 2007.

Pidgin is widely used for its Off-the-Record Messaging (OTR) plugin, which offers end-to-end encryption. For this reason it is included in the privacy and anonymity focused operating system Tails.{{cite web |url=https://tails.boum.org/doc/anonymous_internet/pidgin/index.en.html |title=Chatting with Pidgin and OTR |website=Tails |access-date=2020-07-22}}

History

File:Gaim-buddylist-2.0.0b6.png 2.16.0]]

The program was originally written by Mark Spencer, an Auburn University sophomore, as an emulation of AOL's IM program AOL Instant Messenger on Linux using the GTK+ toolkit.Herper, Matthew (July 16, 2002). [https://archive.today/20121208193508/http://www.forbes.com/2002/07/16/0716tentech.html "Better Instant Messaging Through Linux"] Forbes.com. The earliest archived release was on December 31, 1998.{{cite web |title=User Guide |author=Crawford, J. |year=1999 |publisher=marko.net |quote=As of now, the most recent sources are here [ftp://ftp.marko.net/pub/gaim/gaim-19981231.tar.gz]{{dead link|date=May 2025|bot=medic}}{{cbignore|bot=medic}} (the file date is December 31, 1998) |url=http://www.marko.net/gaim/uguide.html|archive-url=https://web.archive.org/web/19990508005552/http://www.marko.net/gaim/uguide.html |archive-date=May 8, 1999 |access-date=October 15, 2011}} It was named GAIM (GTK+ AOL Instant Messenger) accordingly. The emulation was not based on reverse engineering, but instead relied on information about the protocol that AOL had published on the web. Development was assisted by some of AOL's technical staff.{{cite web |title=GAIM: GTK+ America OnLine Instant Messenger | work=Original project home page |publisher=marko.net |first=Mark|last=Spencer|year=1998 |url=http://www.marko.net/gaim/ |archive-url=https://web.archive.org/web/19990210175349/http://www.marko.net/gaim/ |archive-date=February 10, 1999 }} Support for other IM protocols was added soon thereafter.

On 6 July 2015, Pidgin scored seven out of seven points on the Electronic Frontier Foundation's secure messaging scorecard.{{cite web|url=https://www.eff.org/secure-messaging-scorecard|publisher=Electronic Frontier Foundation|title=Secure Messaging Scorecard. Which apps and tools actually keep your messages safe?|date=November 4, 2014|access-date=July 6, 2015|archive-url=https://web.archive.org/web/20150528211829/https://www.eff.org/secure-messaging-scorecard|archive-date=May 28, 2015|url-status=dead}} They have received points for having communications encrypted in transit, having communications encrypted with keys the providers don't have access to (end-to-end encryption), making it possible for users to independently verify their correspondent's identities, having past communications secure if the keys are stolen (forward secrecy), having their code open to independent review (open source), having their security designs well-documented, and having recent independent security audits.

Pidgin 3.0.0 Experimental 1, a preview release of Pidgin 3 versioned as 2.90, was announced and subsequently released on December 31, 2024 after many years of development.{{cite news |last1=Borisov |first1=Bobby |title=After 16 Years, Pidgin 3 Takes Its First Steps |url=https://linuxiac.com/after-16-years-pidgin-3-takes-its-first-steps/ |access-date=25 April 2025 |work=Linuxiac |date=25 November 2024}}{{cite web |url=https://discourse.imfreedom.org/t/pidgin-3-0-experimental-1-has-been-released/227 |title=Pidgin 3.0.0 Experimental 1 Has been Released! |website=IMFreedom |access-date=2025-01-01}} It was shipped with IRC support, with more protocols being expected to be added in future versions. In April 2025, version 2.91, a second preview release of Pidgin 3, was released.{{cite news |last1=Proven |first1=Liam |title=Remember Pidgin, formerly GAIM? It's coming back |url=https://www.theregister.com/2025/04/13/pidgin_chat_client_uopdate/ |access-date=25 April 2025 |work=The Register |date=13 April 2025}}

In response to pressure from AOL, the program was renamed to the acronymous-but-lowercase gaim. As AOL Instant Messenger gained popularity, AOL trademarked its acronym, "AIM", leading to a lengthy legal struggle with the creators of GAIM, who kept the matter largely secret.[http://www.pidgin.im/~seanegan/cgi-bin/pyblosxom.cgi/momentum2 "Sean Egan's Blog – The Power of Momentum (continued)"] {{webarchive |url=https://web.archive.org/web/20110620180157/http://www.pidgin.im/~seanegan/cgi-bin/pyblosxom.cgi/momentum2 |date=June 20, 2011 }}. pidgin.im. May 23, 2007.

On April 6, 2007, the project development team announced the results of their settlement with AOL, which included a series of name changes: Gaim became Pidgin, libgaim became libpurple, and gaim-text (the command-line interface version) became Finch. The name Pidgin was chosen in reference to the term "pidgin", which describes communication between people who do not share a common language.{{cite web|url=http://pidgin.im/index.php?id=177 |title=Important and Long Delayed News |publisher=pidgin.im |date=April 6, 2007|archive-url=https://web.archive.org/web/20070408150853/http://www.pidgin.im/index.php?id=177 |archive-date=April 8, 2007|access-date=October 15, 2011}} The name "purple" refers to "prpl", the internal libgaim name for an IM protocol plugin.{{cite web|url=https://developer.pidgin.im/wiki/PidginCommunity#Whatswiththenamelibpurpleanyway |title=What's with the name libpurple, anyway? |publisher=pidgin.im |access-date=April 22, 2014}}

Due to the legal issues, version 2.0 of the software was frozen in beta stages. Following the settlement, it was announced that the first official release of Pidgin 2.0.0 was hoped to occur during the two weeks from April 8, 2007.{{cite web|url=http://pidgin.im/index.php?id=177 |title=Important and Long Delayed News |publisher=pidgin.im |date=April 6, 2007|archive-url=https://web.archive.org/web/20070408150853/http://www.pidgin.im/index.php?id=177 |archive-date=April 8, 2007|access-date=October 15, 2011 |quote=Now that the settlement is signed, we hope to have the final Pidgin 2.0.0 release late this week or early next.}} However, Pidgin 2.0 was not released as scheduled; Pidgin developers announced on April 22, 2007, that the delay was due to the preferences directory ".gaim".{{cite web |url=http://www.pidgin.im/index.php?id=178 |publisher=pidgin.im |title=Working towards 2.0.0 |date=April 22, 2007 |archive-url=https://web.archive.org/web/20070425193748/http://pidgin.im/index.php?id=178 |archive-date=April 25, 2007|access-date=April 22, 2007}}

Pidgin 2.0.0 was released on May 3, 2007. Other visual changes were made to the interface in this version, including updated icons.{{cite web |url=http://pidgin.im/~seanegan/blog/identity.html |title=Identity vs. Account Orientation |date=April 30, 2007 |first=Sean |last=Egan |publisher=pidgin.im |access-date=May 1, 2007 |url-status=dead |archive-url=https://web.archive.org/web/20070504050033/http://pidgin.im/~seanegan/blog/identity.html |archive-date=May 4, 2007 |df=mdy-all }}

Features

File:Pidgin Screenshot Ubuntu.png]]

Pidgin provides a graphical front-end for libpurple using GTK+.{{cite web |url=http://developer.pidgin.im/wiki/WhatIsLibpurple |title=What Is Libpurple – Pidgin – Trac |publisher=Pidgin.im |access-date=March 22, 2009}} Libpurple supports many instant-messaging protocols.

Pidgin supports multiple operating systems, including Windows and many Unix-like systems such as Linux, the BSDs, and AmigaOS. It is included by default in the operating systems Tails, Trisquel and Xubuntu.

= Pluggability =

The program is designed to be extended with plugins. Plugins are often written by third-party developers. They can be used to add support for protocols, which is useful for those such as Skype or Discord which have licensing issues (however, the users' data and interactions are still subject to their policies and eavesdropping). They can also add other significant features. For example, the "Off-the-Record Messaging" (OTR) plugin provides end-to-end encryption.

The TLS encryption system is pluggable, allowing different TLS libraries to be easily substituted. GnuTLS is the default, and NSS is also supported. Some operating systems' ports, such as OpenBSD's, choose to use OpenSSL or LibreSSL by default instead.

= Contacts =

Contacts with multiple protocols can be grouped into one single contact instead of managing multiple protocols, and contacts can be given aliases or placed into groups.

To reach users as they log on or a status change occurs (such as moving from "Away" to "Available"), Pidgin supports on-action automated scripts called Buddy Pounces to automatically reach the user in customizable ways.

= File transfer =

Pidgin supports file transfers for many protocols. Direct, peer-to-peer file transfers are supported over protocols such as XMPP.

= Voice and video chat =

As of version 2.6 (released on August 18, 2009), Pidgin supports voice/video calls using Farstream.{{cite web |url=http://developer.pidgin.im/wiki/ChangeLog |title=Changelog |publisher=pidgin.im |access-date=August 22, 2009}} {{As of|2015|July}}, calls can only be initiated through the XMPP protocol.{{cite web |url=http://developer.pidgin.im/wiki/vv |title=Voice and Video |publisher=pidgin.im|access-date=August 22, 2009}}

= Miscellaneous =

Further features include support for themes, emoticons, spell checking, and notification area integration.{{cite web |title=About Pidgin |access-date=September 22, 2010 |url=http://www.pidgin.im/about/|publisher=pidgin.im}}

= Supported protocols =

The following protocols are officially supported by Pidgin 2.14.12, without any extensions or plugins:{{cite web|url=https://pidgin.im/|title=Pidgin|author=Pidgin developers|access-date=Jan 22, 2023|publisher=pidgin.im}}

{{Div col|colwidth=30em}}

  • Gadu-Gadu
  • IRC
  • Novell GroupWise (to be discontinued in 3.0){{cite web|url=https://docs.google.com/presentation/d/1qzsz6CeCTULsywtHbUznlZLuef7bsi_fVjfIxoAr8Ek/edit#slide=id.p|title=State of the Bird Q4 2022|last=Kramlich|first=Gary|access-date=January 22, 2023}}
  • SIMPLE
  • XMPP
  • Zephyr (to be discontinued in 3.0)

{{div col end}}

Some XMPP servers provide transports, which allow users to access networks using non-XMPP protocols without having to install plugins or additional software. Pidgin's support for XMPP means that these transports can be used to communicate via otherwise unsupported protocols, including not only instant messaging protocols, but also protocols such as SMS or E-mail.

Additional protocols, supported by third-party plugins, include Discord,{{cite web|url=https://github.com/EionRobb/purple-discord|title=purple-discord github repository|website=GitHub |access-date=December 2, 2019}} Telegram,[https://github.com/majn/telegram-purple GitHub – majn/telegram-purple: Adds support for Telegram to Pidgin, Adium, Finch and other Libpurple-based messengers] Microsoft OCS/LCS (extended SIP/SIMPLE),{{cite web|url=http://sipe.sourceforge.net/|title=SIPE Project|access-date=February 29, 2012}} Facebook Messenger,[https://github.com/dequis/purple-facebook/wiki GitHub – Purple Facebook implements the Facebook Messenger protocol into pidgin, finch, and libpurple.] QQ,{{cite web|url=https://code.google.com/p/libqq-pidgin/|title=libqq|access-date=June 14, 2011}} Skype via skype4pidgin plugin,{{cite web|url=http://eion.robbmob.com|title=Skype "API Plugin for Pidgin/libpurple/Adium"|access-date=July 6, 2009|publisher=RobbMob.com}} WhatsApp,{{cite web |title=WhatsApp on your computer: Pidgin plugin |url=https://www.davidgf.net/2013/09/15/whatsapp_purple/ |website=davidgf.net |access-date=31 March 2020}} and Signal.{{cite web |title=Signal on your computer: Pidgin plugin |url=https://github.com/hoehermann/libpurple-signald |website=github.com |access-date=18 September 2020}}

= Plugins =

Various other features are supported using third-party plugins.{{cite web |url=http://developer.pidgin.im/wiki/ThirdPartyPlugins |title=Pidgin Third-Party Plugins |access-date=September 22, 2009|publisher=pidgin.im}} Such features include:

Criticisms

  • As observed by Wired in 2015, the libpurple codebase is "known for its bountiful security bugs".{{cite magazine|title = Tor Just Launched the Easiest App Yet for Anonymous, Encrypted IM|url = https://www.wired.com/2015/10/tor-just-launched-the-easiest-app-yet-for-anonymous-encrypted-im/|magazine = WIRED|access-date = October 31, 2015|date = October 31, 2015|last = Greenberg|author-link = Andy Greenberg|first = Andy}} In 2011, security vulnerabilities were already discovered in popular OTR plugins using libpurple.{{cite web|url=https://www.eff.org/deeplinks/2011/09/open-source-security-auditing|title=EFF's Open Source Security Audit Uncovers Security Vulnerabilities in Messaging Software|date=September 22, 2011 }}
  • As of version 2.4 and later, the ability to manually resize the text input box of conversations was removed. This led to a fork, Carrier (originally named Funpidgin).{{cite web|url=http://developer.pidgin.im/ticket/4986 |title=Ticket #4986 (closed enhancement: wontfix) – automatic chat input field resizing should be optional, regression from 2.3 |date=March 1, 2008 |publisher=pidgin.im |access-date=March 8, 2008}}{{cite web|url=http://blog.wired.com/monkeybites/2008/04/in-response-to.html|title=In Response to User Demand, Pidgin Forks|publisher=Wired.com|first=Paul |last=Adams|date=April 22, 2008|archive-url=https://web.archive.org/web/20080519204346/http://blog.wired.com/monkeybites/2008/04/in-response-to.html |archive-date=May 19, 2008}}Malda, Rob (April 30, 2008). [http://tech.slashdot.org/article.pl?sid=08/04/30/1822237 "Pidgin Controversy Triggers Fork"]. Slashdot.
  • Passwords are stored in a plaintext file, readable by any person or program that can access the user's files. Version 3.0 of Pidgin (no announced release date){{cite web |url=https://developer.pidgin.im/milestone/3.0.0 |title=Milestone 3.0.0—Pidgin |date=July 3, 2014}} will support password storage in system keyrings such as KWallet and the GNOME Keyring for Linux, Keychain for macOS, and winCred API for Windows.{{cite web |url=https://developer.pidgin.im/wiki/KeyringSupport |title=KeyringSupport—Pidgin |date=July 3, 2014|publisher=pidgin.im}}
  • Pidgin does not currently support pausing or reattempting file transfers.{{cite web |url=http://developer.pidgin.im/ticket/5769 |title=Ticket #5769 (new enhancement) – Resume broken file transfers |date=May 11, 2008 |publisher=pidgin.im |access-date=October 15, 2011}}{{cite web |url=http://developer.pidgin.im/ticket/7486 |title=Ticket #7486 (closed enhancement: duplicate) – xdcc download-resuming-support |date=November 7, 2008 |access-date=December 30, 2008}}{{cite web |url=http://developer.pidgin.im/ticket/1425 |title=Ticket #1425 (new enhancement)- No ability to resume in IRC file transfers|date=May 30, 2007 |publisher=pidgin.im |access-date=December 30, 2008}}
  • Pidgin does not allow disabling the group sorting on the contact list.{{cite web |url=https://developer.pidgin.im/ticket/1325#comment:23 |title=#1325: add option to hide groups |publisher=pidgin.im |access-date=April 22, 2013}}

Other notable software based on libpurple

  • Adium and the discontinued Proteus (both for macOS)
  • Meebo (web-based, no longer available){{cite web|url=http://blog.meebo.com/?p=464 |date=July 15, 2008 |title=meebo from the backside |publisher=meebo.com |access-date=October 3, 2008 |url-status=dead |archive-url=https://web.archive.org/web/20080819230423/http://blog.meebo.com/?p=464 |archive-date=August 19, 2008 }}
  • Telepathy Haze (a Tube{{cite web |url=http://telepathy.freedesktop.org/wiki/Tubes/ |title=Tubes |publisher=Telepathy.freedesktop.org |access-date=April 1, 2014 |url-status=dead |archive-url=https://web.archive.org/web/20140824161446/http://telepathy.freedesktop.org/wiki/Tubes/ |archive-date=August 24, 2014 |df=mdy-all }} for some of the protocols supported by the Telepathy framework){{cite web|url=http://telepathy.freedesktop.org/wiki/Components |title=Telepathy Wiki – Components |publisher=Telepathy.freedesktop.org |access-date=October 11, 2012}}
  • QuteCom (cross-platform, focused on VoIP and video. Discontinued)
  • Instantbird (discontinued) {{cite web |url=https://wiki.instantbird.org/Instantbird:FAQ#Who_makes_Instantbird.3F |archive-url=https://web.archive.org/web/20130528132130/https://wiki.instantbird.org/Instantbird:FAQ#Who_makes_Instantbird.3F |url-status=dead |archive-date=May 28, 2013 |title=Instantbird:FAQ – Instantbird Wiki |publisher=Wiki.instantbird.org |date=February 10, 2011 |access-date=October 11, 2012 }} (cross-platform, based on Mozilla's Gecko engine)

BitlBee and Minbif are IRCd-like gateways to multiple IM networks, and can be compiled with libpurple to increase functionality.

See also

References

{{Reflist|colwidth=30em}}