This is a brief summary of what I did the last two weeks while working on my GSoC assignment. If you just want the latest alpha release in a ready-to-go .app-Bundle, skip to the end of this blog entry 🙂
Community Extensions continued
I’ve continued to review some community extensions code and build systems. There is a larger group of extensions (and banshee addins) that rely on Webkit in some way, so this time I investigated whether it’s possible to compile against a recent webkit-gtk release on OS X. David, who is organizing the Mono & GNOME hackfest this year, told me they have Webkit# & Soup# binding improvements on their agenda for the hackfest, and plan to make it work cross platform. So we decided to wait until after the hackfest, and then I get my hands on the extensions relying on Banshee.WebBrowser. I’m very curious of what will come out of the hackfest.
None the less, I took some preparations to have WebKit-Gtk build on OS X. Turned out it’s not that straightforward as expected. I updated the webkit package in bockbuild to latest 1.8.1 release, and added/bumped some more dependencies that it introduces (zlib, libsoup). I encountered a build error in the configure script, complaining about missing XRender functionality – weird, since we don’t use X but Quartz instead. After some searching, I found MacPorts already had a patch, so I added it into the webkit bockbuild package. The configure script went through, but sadly I hit another bug in the WebKit-Gtk buildsystem. I reported it and am still patient to wait if somebody catches up on it until after the hackfest.
I’ve examined whether or not it is possible to have the clutterflow extension run on OS X. At first I found out, that clutter-sharp is somewhat unmaintained and quite old, the svn server mentioned here was unreachable. I found two github repos with the name clutter-sharp which are quite old and have issues, but thankfully the debian project has a set of patches ready that bring it into a usable state. I’ve applied the debian patches and fixed an issue with missing GNU readlink on OS X, and imported the working/compiling clutter-sharp into a git repo on my github account for future usage. Why future usage? Because after all I found out that the clutter-gtk package never had support for gtk2 with the quartz backend (only X11), and recent clutter-gtk even dropped support for gtk2 and is only compatible with gtk3. Since porting banshee to gtk3 is on the horizon, clutter-sharp/clutterflow support may be added in the future.
iTunes-like key bindings
After the more or less disappointing results with webkit and clutter, I’ve worked on enabling key bindings in banshee, which were totally broken until now. To achieve that, I’ve switched to the GtkOSXApplication API that gtk-mac-integration provides, which is Cocoa based (instead of carbon). I’ve created a OS X specific accelerator map which overrides the build-in accelerators. I’ve tried mimic iTunes keybindings as close as possible, to make it easy for users migrating from iTunes.
Icon flicker bug
Around the time I started the GSoC project, I merged the xamarin and David’s bockbuild tree together into a single one. Ever since then, there was a very nagging bug with the icons in the sources view, which randomly flickered and disappeared when hovering with the mouse. Someone on the mailing list could reproduce that, so sth. needed to be done about that. As I remember that didn’t happen on previous builds, I searched through what packages got updated in the merge and started to play around by compiling different versions. This is a very time consuming task, as I have to rebuild the full gtk+/gtk-sharp/pango/cairo/gtk-mac-integration stack when changing versions of a single package. After some patient hours I found out that the update to latest cairo introduced that bug, so for today’s alpha build I downgraded to cairo 1.10.2. I will investigate that further, to have it fixed in the upstream versions.
Thanks to the great work of Kristian Rietveld (and a little work from my side to track it down) , the bug that made us stick with Pango 1.29.5 is now fixed, hence I bumped to the latest Pango release and applied the patch in bockbuild.
Alpha test builds
At the time of my previous progress report, there were some glitches which kept me from releasing an alpha release of a ready-to-roll .app-Bundle. I’ve worked them all out, and actually today I created the second alpha bundle, which can be downloaded from the GNOME GSoC portfolio page or from here. Please make sure to read the instruction on the portfolio page carefully. I think it is already quite usable, but will still crash when doing any drag-n-drop movements. So don’t 🙂