Pidgin with all the trimmins’ on OSX

So, first off, I really do like Adium on OSX. Its got a great interface, full featured, etc except its missing one thing. The ability to connect to Microsoft Office Communication Server (OCS). Which, with my current employer, is a necessity.

Those who know me, know I hate running multiple apps to do the same thing. So, although I could run Adium for my non-Work IM and Microsoft Messenger for Work IM, I’d really prefer not to.

Fortunately there is at least one solution, some good folks have put together a plugin for Pidgin called SIPE that allows you to configure OCS accounts and so forth. All is good; I use this combo on my Windows desktops all the time, but sadly, every time I have looked, the plugin has not been ported to Adium.

But all is not lost. Apparently, now some folks have ported the (GNOME) GTK to the native OSX Quartz interface, which provides some hope for running Pidgin on OSX more natively, instead of say an X11 window.

Well, I am happy to report that I have been successful in doing just that, here’s the procedure, before I forget.

First off, install MacPorts, just following the regular procedure. Now to the fun stuff.

MacPorts has Porfiles set up for Pidgin and all its prerequisites, so first off, fire up a base install Pidgin

sudo port install pidgin +quartz +no_x11

Now just walk away for a while, there’s a lot that needs to be downloaded, compiled, and installed.

Once its done, you can try to run it, but things will probably be pretty wonky, due to some bugs in the version of pango that gets built. See issue 20924 for more information. The downside is you need to pull down the patch-pango-1.28.1-introspection-revised.diff from the bug, and use it to build a new version of pango

cd ~
cd /opt/local/var/macports/sources/
patch < ~/patch-pango-1.28.1-introspection-revised.diff
sudo port install pango +quartz +no_x11
sudo port -f activate pango @1.28.1_0+no_x11+quartz

Ok, from here, you should now have a working version of Pidgin that you can fire up, and connect to your Yahoo, AIM & Jabber buddies with.

Next stop, installing SIPE. Grab the multi-platform file from and extract it.

Now, configure the package, and build it:

export PATH=/opt/local/bin:$PATH
./configure --prefix=/opt/local

Now, I had a problem where the build stopped at one point because gcc warnings were being considered errors. I fixed this by removing the -Werror directives from the QUALITY_FLAGS variable in the Makefiles. The build completed correctly after that.

Finally, install the plugin with

sudo make install

And that is it.

Now, one more thing for bonus points, I try to use Off-The-Record (OTR) messaging when possible, so I like to have the OTR plugin available in Pidgin as well. MacPorts has an answer for that:

sudo port install libotr
sudo port install pidgin-otr



10 thoughts on “Pidgin with all the trimmins’ on OSX

  1. I followed these instructions but ran into the following problems …

    1) wget
    This command generated the following error:
    ERROR: cannot verify’s certificate, issued by “/C=US
    /ST=Arizona/L=Scottsdale/, Inc./OU=
    /repository/CN=Go Daddy Secure Certification Authority/serialNumber=07969287”:
    Self-signed certificate encountered.
    To connect to insecurely, use ‘–no-check-certificate’.
    I had to issue the following command to get it to work:
    wget –no-check-certificate

    2) patch < ~/patch-pango-1.28.1-introspection-revised.diff
    Generated the following error:
    patch unexpectedly ends in middle of line
    patch: **** Only garbage was found in the patch input.
    I was not sure what to do with that so I just push on.
    3) sudo port install pango +quartz +no_x11
    Generated the following error:
    Error: To install pango with the quartz variant, cairo must be installed with
    the quartz variant.
    Error: Target org.macports.configure returned: incompatible cairo installation
    Log for pango is at: /opt/local/var/macports
    Error: Status 1 encountered during processing.
    So I ran the following command and retried (which seemed to work):
    sudo port install cairo +quartz +no_x11
    4) Then when doing the "make" for the SIPE I kept getting errors that were actually warnings so I had to change the invocation of configure to:
    ./configure –prefix=/opt/local –disable-quality-check

    After all of this I fired up pidgin and … it crashed!

  2. Ok, I finally got it working … I think … not sure is SIPE is working correctly though.

    sudo port install cairo +no_x11 +quartz
    sudo port install gtk2 +no_x11 +quartz
    sudo port install pango +no_x11 +quartz
    sudo port install pidgin +no_x11 +quartz

    NOTE: I did not need the pango patch listed above!

    Make sure these are the active ports …

    sudo port installed | grep no_x11

    This is the output you should see (versions may be different)

    cairo @1.10.2_2+no_x11+quartz (active)
    gtk2 @2.22.1_1+no_x11+quartz (active)
    pango @1.28.3_3+no_x11+quartz (active)
    pidgin @2.7.9_0+no_x11+quartz (active)

    I downloaded the SIPE plugin as suggested above however, I had to build/install it as follows

    export PATH=/opt/local/bin:$PATH
    ./configure –prefix=/opt/local –disable-quality-check
    sudo make install

    1. Thanks for the information. Yeah, looking at your version of pango (1.28.3), I’m guessing someone finally fixed the problems the patch was needed for.

      And looks like you found a parameter for building SIPE (-disable-quality-check) that probably does the same thing I did my manually whacking the Makefiles.

  3. Eek … I followed the instructions here (and elsewhere) for compiling Sipe and I got the following error. Any idea how this can be fixed? Any help would be most welcome!

    libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -Werror -Wall -Wextra -Werror=declaration-after-statement -I/opt/local/include/libxml2 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -DLOCALEDIR=\”/opt/local/share/locale\” -I./../api -I/opt/local/include/nss -I/opt/local/include/nspr -I/opt/local/include/libpurple -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -g -O2 -MT libsipe_core_purple_la-sipe.lo -MD -MP -MF .deps/libsipe_core_purple_la-sipe.Tpo -c sipe.c -fno-common -DPIC -o .libs/libsipe_core_purple_la-sipe.o
    cc1: warnings being treated as errors
    sipe.c: In function ‘sipe_get_activity_desc_by_token’:
    sipe.c:172: warning: implicit declaration of function ‘gettext’
    sipe.c:172: warning: incompatible implicit declaration of built-in function ‘gettext’
    sipe.c: In function ‘sipe_apply_calendar_status’:
    sipe.c:614: warning: incompatible implicit declaration of built-in function ‘gettext’
    sipe.c:624: warning: incompatible implicit declaration of built-in function ‘gettext’
    sipe.c: In function ‘sipe_get_status_by_act_avail_2005’:
    sipe.c:3646: warning: incompatible implicit declaration of built-in function ‘gettext’
    sipe.c:3650: warning: incompatible implicit declaration of built-in function ‘gettext’
    sipe.c:3658: warning: incompatible implicit declaration of built-in function ‘gettext’
    sipe.c: In function ‘sipe_get_status_by_availability’:
    sipe.c:3695: warning: incompatible implicit declaration of built-in function ‘gettext’
    sipe.c:3701: warning: incompatible implicit declaration of built-in function ‘gettext’
    sipe.c: In function ‘process_incoming_notify_msrtc’:
    sipe.c:4447: warning: incompatible implicit declaration of built-in function ‘gettext’
    sipe.c:4450: warning: incompatible implicit declaration of built-in function ‘gettext’
    sipe.c:4466: warning: incompatible implicit declaration of built-in function ‘gettext’
    sipe.c: In function ‘process_search_contact_response’:
    sipe.c:6059: warning: implicit declaration of function ‘dngettext’
    sipe.c:6062: warning: passing argument 1 of ‘g_strdup_printf’ makes pointer from integer without a cast
    make[3]: *** [libsipe_core_purple_la-sipe.lo] Error 1
    make[2]: *** [all-recursive] Error 1
    make[1]: *** [all-recursive] Error 1
    make: *** [all] Error 2

  4. Here is what I had to do to get it to build on my Mac Pro running Mac OS X 10.6.8 as of today (07/06/2011), after installing macports:

    # This builds pidgin (and everything else you need)
    sudo port install pidgin +quartz +no_x11

    # This will setup your system to startup dbus via launchd
    sudo launchctl load -w /Library/LaunchDaemons/org.freedesktop.dbus-system.plist
    launchctl load -w /Library/LaunchAgents/org.freedesktop.dbus-session.plist

    # Download the latest sipe tarball…

    # Download the patch…

    # Copy the patch file over to the source tree and apply the patch…
    patch &1 | tee configure.out
    make 2>&1 | tee make.out
    sudo make install

    After that, it ran great!

      1. Thanks for all the info. Just got Pidgin running from macports on os x 10.7. Then followed your instructions on the patch. Have protocol office communicator functioning with my work folks.

        Just a couple of things that may or may not help.

        1) I did not have to run the port install as ‘sudo port install pidgin +quartz +no_x11’ I just ran it as ‘sudo port install pidgin’

        2) for the patch – I was not sure where this went as i am not familiar with patch. Finally figured out the sipe-purple-2.8.0.patch has to be moved to the src/purple directory. Then run the listed command ‘patch < sipe-purple-2.8.0.patch' from that src/purple directory.

        again – great help!

  5. Hi,

    I’m looking for some help if possible on the SIPE Plug-In install for Pidgin on the Mac. I used Macports to install Pidgin 2.9.0 and everything works well with Pidgin at this point, but I need the Microsoft Communicator (SIPE) plug-in to use with my Company’s chat system which is Reuters Messaging.

    Any help would be appreciated. I can also provide the detail as to the errors I’m getting during the “make” process as well.

    Thank you!

    Josh Lynn

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s