Kilte Leichnam edited this page Apr 14, 2016 · 9 revisions
Clone this wiki locally

Preparing Code from GitHub

To get a workable source tree from the latest code on GitHub, run the following commands on a bash prompt. (You will need to have git, autoconf, automake, and libtool installed.)

git clone https://github.com/dm0-/window_merge.git
cd window_merge
mkdir m4
autoreconf -fi

The current directory should now have the configure script and be ready to build.

Building and Installing the Plugin


For Microsoft Windows, see these instructions for one way to compile with MinGW. (This is the method used to create window_merge.dll on the downloads page.)

You could also try the method recommended by Pidgin developers. It is fairly straightforward to create a local.mak file and adapt an existing Makefile.mingw from the ticker plugin, for example.


Pidgin development files are required to compile this plugin. Distribution-provided packages will probably be named either pidgin-devel or pidgin-dev. For a sane build environment, the following commands should build and install the plugin for your user account.

make install plugindir=~/.purple/plugins

The install command can also be run as root without overriding the plugindir variable to install the plugin globally, making it available to all users. Note make install will also install a libtool archive file, which probably isn't necessary on a modern system.

GNU/Linux (RPM-based)

A spec file for building RPMs is included with the source on GitHub. It was written for Fedora, but should be generally usable. The following steps will build the RPM on Fedora.

First set up a build tree.

su -c 'yum -y install redhat-rpm-config rpmdevtools yum-utils' -

Next download the spec file and install its build dependencies.

pushd $(rpm -E %_specdir)
curl -LO https://raw.github.com/dm0-/window_merge/master/pidgin-window_merge.spec
su -c "yum-builddep -y $PWD/pidgin-window_merge.spec" -

At this point, the spec file can be modified to use a different version or particular a GitHub commit. This command will simply download the source for the version specified in the spec.

spectool -g -R $(rpm -E %_specdir)/pidgin-window_merge.spec

Finally build and install the RPM.

rpmbuild -ba $(rpm -E %_specdir)/pidgin-window_merge.spec
su -c "yum -y install $(rpm -E %_rpmdir/%_arch)/pidgin-window_merge-[0-9]*.rpm" -

GNU/Linux (Debian-based)

Ubuntu 14.04

First install Pidgin development headers

sudo apt-get install pidgin-dev

Now build the plugin

git clone https://github.com/dm0-/window_merge.git
cd window_merge
mkdir m4
autoreconf -fi
make install plugindir=~/.purple/plugins


To write translations, the gettext package must be installed. These commands will generate a template file.

git clone https://github.com/dm0-/window_merge.git
cd window_merge
git revert --no-edit b8120c47b5
mkdir m4
autoreconf -fi
make -C po

The template file at po/pidgin-window_merge.pot can be used to initialize a PO file for your language code. This command uses ko (Korean) as an example; substitute your own code in the two instances below.

msginit -i po/pidgin-window_merge.pot -l ko -o po/ko.po

This should write the file ko.po in the po directory, where you can begin entering the translated strings. If possible, save the file with UTF-8 character encoding. When finished, run the following to reconfigure your language code into the build process.

echo ko >> po/LINGUAS

These commands will then rebuild the entire project along with your translations.

rm -f po/pidgin-window_merge.pot po/*.gmo
make clean all

If you would like to contribute your translation to the project, please open a GitHub issue to that effect or e-mail your PO file to me. (Be sure to note if you want a different name/e-mail used in the ChangeLog credit than what is in the PO file.) It will be committed along with support for building and installing localization files.