Compiling Gwibber for OS X: Fail

One of the joys of running Linux on my work PC is using Gwibber as my sole micro blogging client. Gwibber was original written by Ryan Paul, segphault, who is also a regular contributor to Ars Technica.

Gwibber is to micro blogs and life streams what Pidgin is to IM. Thankfully, some of the micro blog services have died off but my own social network is currently split across two. My fellow tech geeks and free software advocates all like to hang out on Identi.ca. It has considerably more hacker cred and is free software in all of and the best senses of the word. All the rest of my friends are on Twitter, since it was one of the first and still one of the most popular.

I have cobbled together my own scripts for posting to both services. Consuming messages from both has been a challenge. On the Mac, there really is only Twhirl for multiple services. I know many people who like it, I personally cannot stand it. I don’t know how much of the crummy UI is the fault of Adobe’s AIR platform or the application developers. In either case, I find it ugly and largely unusable. Your mileage may vary. I end up using Twitterific, which I still like for its IM-like and email-like features and I have to compromise and use XMPP for Identi.ca. XMPP, a form of instance messaging, is workable but not ideal since it is separate from Twitterific and doesn’t give me some of the niceties of a dedicated client.

On Linux, however, Gwibber works exactly how I want a micro blog client to work. It is even smart enough to coalesce duplicate messages from the small overlap in my subscriptions between the two services. It lacks a few things, like direct support in the UI for direct messaging on either service, but you can still use “d username msg” just like you can in XMPP and Twitterific.

What I desperately want now that I have been using Gwibber daily for just a bit over a month is to be able to run it natively on my Macs. I had been playing around with MacPorts to set up some other software and was curious if it would be possible to supply Gwibber enough of its dependencies to get it to run.

The short answer is no, at this time, it is not possible. I got close, mostly by trying to run the main Python script and installing each module it needs in turn. Actually, first I had to change the bang path to the MacPorts version of Python, in /opt/local, since using the env trick in the stock script just plain didn’t work under OS X.

I managed to get all the way up to webkit, seemingly the last dependency. Ironically, given how webkit is used so heavily by Apple and contains some of their code contributions, I could not get the MacPorts port of webkit to build successfully. I am also not certain that that would have been sufficient as I believe I would also need GTK bindings, Python bindings, or possibly both to make Gwibber happy.

The silver lining is I think I may have solved some issues I was having with the MacPorts port of GNUCash incidentally. I had to install Quartz to satisfy an X dependency in GTK. I think this may have made it possible to compile other GTK applications, though I have not yet tested that theory.

To be perfectly honest, what I want is the Python guts of Gwibber with a nice Cocoa front end. With PyObjC and XCode 3, this should be possible. I set out a while ago to try to accomplish just such a piece of software until I conceded defeat in the face of Cocoa. Too many years doing lower level, web application and systems development may have spoiled me for desktop application hacking. I welcome anyone else who wants to try and actually would be happy to pitch in, with testing, documentation or even coding the non-Cocoa bits.

3 Replies to “Compiling Gwibber for OS X: Fail”

  1. Thanks for documenting your attempt! The GTK+ port of WebKit is still quite new and has some pretty significant portability limitations, so I’m not really surprised that it didn’t work.

    Making a nice PyObjC front-end for Gwibber should theoretically be possible. The back-end service parts of Gwibber are entirely decoupled from the front-end, in much the same way that libpurple is separate from Pidgin. In fact, if you installed the major Python dependencies, you can probably use Gwibber’s microblog library as-is on Mac OS X.

    It’s likely that certain parts of Gwibber’s front-end stack could also still be reused for a Mac OS X version, particularly the HTML themes. The hardest part of making a Cocoa front-end for Gwibber would be making a working configuration system and account manager. On Linux, Gwibber’s gconf abstraction layers made that significantly easier.

    1. My research into webkit under MacPorts left me with exactly that impression, that it was still relatively new and unstable. I may take up my notes in a few months and try again. MacPorts seems to be much more active than Fink so I am optimistic that the package maintenance shouldn’t add too much drag. On a largely unrelated note, MacPorts has also sort of whetted my appetite to have a go at BSD, perhaps under virtualization.

      I figured that Gwibber might be modular enough to write a different, native front end. Sadly, I despair I will ever have enough spare cycles to achieve a high enough level of fluency in Cocoa to undertake it myself. Then again, maybe with a later revision of XCode 3 (or even 4), since the full integration of PyObjC was brand new to 3.0. Much of the existing documentation on PyObjC is frustratingly out of date for XCode 3. Unfortunately, Apple has made commitments to other languages before with Cocoa that did not end well. And Python 3.0 no doubt presents them with some non-trivial questions.

      Regardless, I shall continue to enjoy Gwibber on my work system which accounts for most of my micro blogging time these days anyway. Thanks for the excellent bit of software!

Leave a Reply

Your email address will not be published. Required fields are marked *