Monday, September 12, 2011

pidgin sipe win32 compiles w/ pidgin 2.10 (libpurple 2.10.0 & sipe-1.12.0)

UPDATE: The sipe project appears to have official builds now:

UPDATE/EDIT: As some of you have figured out from the config.h blurb below, this is actually pidgin-sipe 1.12.0.  I just re-upped to dropbox with a name change on the .zip.   I guess I was trying to brain dump to this blog too fast so I wouldn't forget the steps to compiling it.

Well I did it.

What  a mess it is to compile some of these programs on win32.

I followed the basic instructions on compile pidgin and got that all working.    These instructions are actually pretty good.  They are begging to be automated similar to a FreeBSD port build:

Then I tried to follow the pidgin sipe wiki entry for windows:

These are a bit out of date.   The good thing is that if you're building post 2.7.0 then most dependencies are already there.

There were a couple things broken at this point preventing success:

  • one file was missing an include for glib.h -- already fixed in the sipe git rep
  • you need gmime installed in your pidgin-devel/win32-dev directory (linked on the sipe wiki)
  • you need the rest of libiconv installed in your pidgin-devel/win32-dev directory (grab libiconv-1.13.1-1-mingw32-dev.tar.lzma from the mingw site)
  • libxml2 needed the libs renamed to libxml2-2.lib in their win32-dev directory.
  • sipe-core.c wouldn't compile with several entries from config.h which are only generated when running configure.   Since running configure correctly in this setup would be a veritable pain, I managed to get what it wanted figured out:

#define PACKAGE_NAME "pidgin-sipe"
#define PACKAGE_TARNAME "pidgin-sipe"
#define PACKAGE_VERSION "1.12.0"
#define PACKAGE_STRING "pidgin-sipe 1.12.0"
#define PACKAGE_URL ""

Save this as config.h and plop it in src/core and delete the #ifdef HAVE_CONFIG_H stanza in sipe-core.c to allow it to be included.  This will allow sipe_core_about() to compile.

Successful compile.   Yay.

After this I copied libxml2-2.dll and libiconv-2.dll to my pidgin-2.10.0/win32-install-dir directory and src/core/libsipe.dll to the win32-install-dir/plugins directory.   Viola, it worked.

You can download it here win32 libpurple 2.10.0 pidgin-sipe-1.12.0