hugo/content/development/building/2.x.y/_index.md

Fri, 30 Aug 2024 19:33:36 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Fri, 30 Aug 2024 19:33:36 -0500
changeset 543
4ab2b8637540
parent 466
9209c7e3a493
permissions
-rw-r--r--

Update the plugins page for the new process

This includes defining the process and providing a template for a new issue to
add new plugins. I did go through and audit `No IRC /WHO` so we had at least
one validated entry.

Testing Done:
Ran `npm run hugo:server` locally and verified the page worked and checked the new links.

Bugs closed: NEST-53

Reviewed at https://reviews.imfreedom.org/r/3450/

---
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`.

mercurial