August 9, 2008

Pidgin 2.4.3 Debian Lenny

Ok, I know pidgin binaries are available for Lenny, but let’s build Pidgin 2.4.3 from source anyway… Lenny will be the new “stable” soonish (September?) and the Pidgin team don’t provide Debian binaries for stable.

(This will probably work on etch. I posted build instructions here for Pidgin 2.4.1 a while back. The configure script in that case was more lenient with respect to dependencies than the current 2.4.3 configure script.)

Before you build

Required stuff (For a minimal install.)

apt-get install gettext libglib2.0-dev libgtk2.0-dev libxml2-dev libxml-perl libperl-dev

We need this if we’re going to use MSN or Google talk since they need ssl (Pidgin uses the gnutls ssl libraries)

apt-get install libgnutls-dev

Optional Stuff (Probably a good idea to install these.)

Spell checking
apt-get install libgtkspell-dev

X Screen Saver extension (needed for determining idle time from mouse and keyboard use)
apt-get install libxss-dev

Startup notification (visual feedback of startup)
apt-get install libstartup-notification0-dev

Sound support
apt-get install libgstreamer0.10-dev

More optional stuff (Install these if you need them.)

Tcl/Tk support (if you need tcl/tk scripting)
apt-get install tcl-dev tk-dev

Meanwhile support (Lotus Sametime support)
apt-get install libmeanwhile-dev

Avahi support (for Bonjour)
apt-get install libavahi-glib-dev

D-bus support (message bus support)
apt-get install libdbus-glib-1-dev

NetworkManager support (A D-Bus service providing connection management and selection of best available connection).
apt-get install network-manager-dev

Build and Install

Download the source package from http://downloads.sourceforge.net/pidgin/pidgin-2.4.3.tar.bz2

Unpack pidgin
tar jxvf pidgin-2.4.3.tar.bz2

Configure

cd pidgin-2.4.3
./configure

You can pass the following options to configure if you want to disable things you don’t need

--disable-gtkui compile without GTK+ user interface
--disable-consoleui compile without console user interface
--disable-screensaver compile without X screensaver extension
--disable-sm compile without X session management support
--disable-startup-notification compile without startup notification support
--disable-gtkspell compile without GtkSpell automatic spell checking
--disable-gstreamer compile without GStreamer audio support
--disable-meanwhile compile without meanwhile
--disable-avahi compile without avahi
--disable-nm compile without NetworkManager support

(To see all available options ./configure --help)

Build and install

make
su
make install

Pidgin is then at /usr/local/bin/pidgin

(Actually I do the whole install as root.)

Caveats

  1. It’s a good idea to uninstall any previous version of pidgin, if you installed binaries, do an apt-get remove --purge pidgin
  2. Keep the source/build tree! Tar and gzip it, then put it somewhere safe. In the future you might want to upgrade pidgin. To do it cleanly, issue a make uninstall from the build directory. Apparently, make uninstall needs to know which options were passed to ./configure to uninstall pidgin properly.

    Alternatively, note down the options you passed to ./configure, download the old source tarball, unpack and run ./configure with the options you used to build, then do a make uninstall.

  3. You might need to run ldconfig after install if you get this error when you try to run pidgin
    pidgin: error while loading shared libraries: libpurple.so.0: cannot open shared object file: No such file or directory
  4. This might work on Ubuntu, I haven’t tried it.
  5. I doubt anyone will need this informaton until Lenny becomes stable. If you aren’t comfortable building from source, use a binary.
  6. Substitute sudo for su if that’s your thing.

I did the final build with

./configure --disable-meanwhile --disable-avahi --disable-dbus

but built it with these enabled while testing dependencies.