README

Thu, 07 Aug 2025 21:32:18 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 07 Aug 2025 21:32:18 -0500
changeset 43300
0604c6839974
parent 43138
511e14c1caea
permissions
-rw-r--r--

Clean up and modernize PurpleImage

Testing Done:
Ran the tests under valgrind and called in the turtles.

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

[![pidgin wordmark](img/wordmark.png)](https://pidgin.im/)

# Purple and Pidgin

libpurple is a library intended to be used by programmers seeking to write an
IM client that connects to many IM networks. It comes with support for Bonjour,
IRC, and XMPP, among others and there are many more networks supported via
[third party plugins](https://pidgin.im/plugins/).

Pidgin is a graphical IM client written in C, which uses the GTK toolkit.

These programs are not endorsed by, nor affiliated with, any proprietary
instant messaging company in any way.

## Contributors

See AUTHORS and COPYRIGHT for the list of contributors.

## Building

There are two main ways you can build Pidgin. If you are on Linux you may use
[Flatpak](https://www.flatpak.org/) to get going quickly. The other option is
to do a normal build.

### Flatpak

Building with Flatpak is very straight forward. To get started you'll need to
make sure that you have the `flatpak` and `flatpak-builder` packages installed.
You may find the official [Flatpak Setup page](https://flathub.org/setup)
useful here.

Once Flatpak is setup, you can install the `flatpak-builder` flatpak to make
sure you have the most recent version. You can install it with the following
command:

```
flatpak install --user org.flatpak.Builder
```

Now that you have `flatpak` and `flatpak-builder` installed, you can build and
install Pidgin3 with this command:

```
flatpak run org.flatpak.Builder --user --force-clean --sandbox --install-deps-from=flathub --repo=repo build-flatpak --install im.pidgin.Pidgin3.yml
```

Once that's successful, you can run it with `flatpak run im.pidgin.Pidgin3`

### Meson

Pidgin uses [Meson](https://mesonbuild.com) as its build system. There is a
long list of dependencies that is not currently documented here due to
differences in package names across operating systems. We plan to fix this
soon, if you have any suggestions on how to handle this, please let us know.

You can quickly build Pidgin with the following commands:

```
meson setup build
cd build
ninja
```

There are quite a few options for the build that you can view by running
`meson configure` in your build directory. You can specify the options when
running meson like the following:

```
meson setup -Ddebug=true build
```

If you have already run `meson setup` you can use `meson configure`:

```
cd build
meson configure -Ddebug=true
```

Previously while developing in our code base you would need to install
everything to be able to run or test anything. With meson this is no longer the
case. You can compile via the steps above, and then run directly from the build
directory with the following command to run Pidgin 3:

```
cd build
meson devenv pidgin3
```

Obviously you're still free to install into your system directly, but then
you'll most likely end up having orphaned files laying around that our build
system doesn't know how to remove once they're removed from our code base. This
is one of the primary reasons we recommend building and running from a devenv.
Another benefit is that the devenv uses a configuration directory inside of
the build directory rather than in your home directory.

If you come across a bug, please report it at:
[issues.imfreedom.org/issues/PIDGIN](https://issues.imfreedom.org/issues/PIDGIN)

## Plugins

libpurple and Pidgin ship with a number of plugins, but you can find additional
third party plugins at [pidgin.im/plugins](https://pidgin.im/plugins).

## Developing

You can find more information about Pidgin development in the
[development section](https://pidgin.im/development/) of our website.

## Sponsors

Pidgin is supported by DigitalOcean who graciously sponsors all of our
infrastructure.

[![DigitalOcean referral link](img/DO_Logo_horizontal_blue.png)](https://www.digitalocean.com/?refcode=b69e5dddf595&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge)

mercurial