pidgin/nest

1f078d295019
Add an alias for /development/wiki/GetABacktrace to the debugging page

Testing Done:
Ran `npm hugo:server` and verified that `/development/wiki/GetABacktrace` redirected to `/development/debugging'

Reviewed at https://reviews.imfreedom.org/r/3029/
---
title: 2.x.y
date: 2019-01-11T03:13:47.000Z
anchor: 2.x.y
lastmod: 2019-09-04T03:20:39.000Z
---
## Building
If you're building for Windows you'll want to have a look at
[the building on Windows page]({{< ref "development/building/2.x.y/windows" >}})
instead.
Pidgin's default build has a lot of dependencies. This document will hopefully
help you find and install them all.
### Packaged Dependencies
These dependencies are ones that should be found in your distribution's package
manager.
### I have the source; how do I build this thing?
Assuming you have all of the necessary libraries and their headers installed
(see the next few questions), you compile libpurple, Pidgin and Finch just like
most applications:
$ tar xjvf pidgin-2.x.y.tar.bz2
$ cd pidgin-2.x.y
$ ./configure && make && sudo make install
This will install libpurple, Pidgin and Finch to `/usr/local`. If you want to
install it elsewhere, pass `--prefix=/some/other/prefix` to `./configure`. (You
really don't want to install it to `/usr`.) See `./configure --help` for other
options you can change at compile-time.
If you got the source tree from our Mercurial database (which you probably
shouldn't have), you'll need to run `./autogen.sh` instead of `./configure` the
first time around. If you get an error like the following, you may need a newer
version of automake.
running /usr/bin/automake -a -c --gnu... failed.
Makefile.am:79: directory should not contain `/'
pidgin/pixmaps/Makefile.am:4: directory should not contain `/'
If you are trying to compile on Windows, you need the answer to a different
question.
### Why can't I compile Pidgin?
You're probably missing some dependencies. The `configure` script will tell you
when you are missing required dependencies. Remember that if you're using an
RPM-based (RedHat Enterprise Linux, CentOS, SUSE, Mandriva, etc.) or
Debian-based system (Debian, Ubuntu, etc.) that having just a library's package
installed is not sufficient--you must also have the `-devel` (RPM systems) or
`-dev` (Debian-based systems) package for each library installed. If `configure`
is succeeding, but `make` fails, this is harder to diagnose and you will
probably want to drop by the IRC channel or XMPP conference listed on
the [Contact]({{< ref "contact" >}}) page to get help.
### How do I install the dependencies on Debian or Ubuntu?
You need to install the development headers; these are the `-dev` packages. A
simple `apt-get build-dep pidgin` will find and install all of the required
header packages for you.
If `apt-get build-dep` fails with a message like
E: You must put some 'source' URIs in your sources.list
then you need to add `deb-src` lines to your `/etc/apt/sources.list`
corresponding to each of the `deb` lines already there. If editing configuration
files scares you, Ubuntu has a "Software Sources" control panel in _System_ ->
_Administration_ which has some magic checkboxes to do this for you.
### How do I install the dependencies on Fedora (or similar)?
RPM-based distribution users may find `yum-builddep pidgin`
useful if a source RPM is available and the distribution uses the yum tools.
Note that on current Fedora, you would use `dnf builddep pidgin`, which is in
the `dnf-plugins-core` package. If you're still using yum, the `yum-builddep`
command is in the `yum-utils` package, which is not necessarily installed by
default.
### How do I apply the patch "something.diff"?
Type `patch -p1 < something.diff` from the top level of the source directory
(`pidgin/`, not `pidgin/pidgin/` or `pidgin/finch/`).
### Is there a way to compile without some protocols?
There are actually two ways:
- Run `./configure` with the `--with-static-prpls` option with the
`--disable-plugins` option. This will let you choose which protocols to
include by specifying them as a comma-separated list, such as the following
(but note that you won't be able to use any other protocols or plugins):
`./configure --disable-plugins --with-static-prpls=irc,bonjour`
- Use the `--with-dynamic-prpls` option to `./configure` by specifying a
comma-separated list, like so: `./configure --with-dynamic-prpls=irc,xmpp`
### Can I compile just Finch, not Pidgin?
Sure. Pass `--disable-gtkui` to `./configure`.