Introduction to Pidgin

Pidgin is a Gtk+ 2 instant messaging client that can connect with a wide range of networks including Bonjour, ICQ, GroupWise, Jabber/XMPP, IRC, Gadu-Gadu, SILC, SIMPLE, and Zephyr.



Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

Package Information

Pidgin Dependencies





Avahi-0.8 (required for the Bonjour plugin), Cyrus SASL-2.1.28, dbus-1.14.10, Doxygen-1.9.8, evolution-data-server-3.50.0, GConf-3.2.6, Graphviz-9.0.0, libidn-1.41 (required, if you wish to run the test suite), libnsl-2.0.0, NetworkManager-1.44.0, SQLite-3.43.1 (required for the Contact Availability Prediction plugin), startup-notification-0.12, Tk-8.6.13, Farstream (required for video and voice support), Gtkspell, libgadu, libgnt, Meanwhile (required for Sametime protocol support), Mono, SILC Client, SILC Toolkit, Zephyr, and MIT Kerberos V5-1.21.2 (required for Kerberos support in the Zephyr module)

Optional (runtime)


Installation of Pidgin

Compile Pidgin by running the following commands:

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --with-gstreamer=1.0 \
            --disable-avahi      \
            --disable-gtkspell   \
            --disable-meanwhile  \
            --disable-idn        \
            --disable-nm         \
            --disable-tk         \
            --disable-vv         &&

If you have Doxygen-1.9.8 installed (Graphviz-9.0.0 can be used also) and you wish to create the API documentation, issue:

make docs

To test the results, issue: make check.

Now, as the root user:

make install &&
mkdir -pv /usr/share/doc/pidgin-2.14.12 &&
cp -v README doc/gtkrc-2.0 /usr/share/doc/pidgin-2.14.12

If you created the API documentation, install it using the following commands as the root user:

mkdir -pv /usr/share/doc/pidgin-2.14.12/api &&
cp -rv doc/html/* /usr/share/doc/pidgin-2.14.12/api


This package installs icon files into the /usr/share/icons/hicolor hierarchy and desktop files into the /usr/share/applications hierarchy. You can improve system performance and memory usage by updating /usr/share/icons/hicolor/index.theme and /usr/share/applications/mimeinfo.cache. To perform the update you must have GTK+-3.24.38 installed (for the icon cache) and desktop-file-utils-0.26 (for the desktop cache) and issue the following commands as the root user:

gtk-update-icon-cache -qtf /usr/share/icons/hicolor &&
update-desktop-database -q

Command Explanations

--with-gstreamer=1.0: Remove this switch and add --disable-gstreamer if you've not installed gstreamer-1.22.6.

--disable-avahi: Remove this switch if you've installed Avahi-0.8.

--disable-gtkspell: Remove this switch if you've installed Gtkspell and wish to enable spellchecking support.

--disable-meanwhile: Remove this switch if you've installed Meanwhile.

--disable-idn: Remove this switch if you've installed libidn-1.41.

--disable-tk: Remove this switch if you've installed Tk-8.6.13 and you wish to use the TCL bindings.

--disable-nm: Remove this switch if you've installed NetworkManager-1.44.0.

--disable-vv: Remove this switch if you've installed Farstream and wish to enable voice and video communication support. You should also remove the --disable-gstreamer flag.

--enable-cyrus-sasl: Use this switch if you've installed Cyrus SASL-2.1.28 and wish to build Pidgin with SASL support.

--disable-gnutls: Use this switch if you've got both GnuTLS-3.8.1 and nss-3.93 installed, but want to use nss-3.93 for the SSL support.

Configuring Pidgin

Config Files

~/.purple/* and ~/.gtkrc-2.0

Configuration Information

Most configuration can be accomplished by using the various preference settings inside the programs. Additionally, you can create a ~/.gtkrc-2.0 file which can store gtk+-2 theme settings that affect Pidgin and other Gtk+ 2 applications. Note that an example gtkrc-2.0 file was installed during the package installation and can be used as a starting point or reference.


Installed Programs: pidgin, purple-client-example, purple-remote, purple-send, purple-send-async, and purple-url-handler
Installed Library:, and
Installed Directories: /usr/include/libpurple, /usr/include/pidgin, /usr/lib/pidgin, /usr/lib/purple-2, /usr/share/doc/pidgin-2.14.12, /usr/share/pixmaps/pidgin, /usr/share/purple, and /usr/share/sounds/purple

Short Descriptions


is a GTK+ 2 instant messaging client


is an example that demonstrates how to use the libpurple-client library to communicate with purple


sends remote commands to Pidgin/Finch


calls purple API functions using DBus and prints the return value


calls purple API functions using DBus. As opposed to purple-send, it does not print the return value


is a python script to handle URLs with purple