Recap
It’s been several days since I installed KDE 4.
I’ve been using it off and on, experimenting with Arora and Dolphin. I’m just starting to sample the applications available for Qt/KDE.
Blokkal: an extendable blogging client for KDE4
One thing I did discover earlier tonight was a blogging client called Blokkal. This client caught my eye because it supports the LiveJournal protocol, which makes it one of about three (?) actively developed LJ clients on the internet. The others were all discontinued years ago, and their ebuilds have been removed from Portage. Sure, the source code is still available, but it’s tough to integrate features such as tags, userpic management, and various other LJ service improvements. Or they come with heavy Gnome dependencies, as in the case of BloGTK and Drivel. (Yeah, I still think in terms of “how much will this weight down my Xfce desktop.)
So finding out that there’s a native client that supports LJ was quite a treat. Blokkal also supports many other blog APIs, but I don’t use ‘em, so the only draw is the LJ integration.
Writing the ebuild
My next step was to write an ebuild for Blokkal, since a quick check of the Portage archives didn’t turn up any ebuilds. Thus I began my plunge into the source code of the app and reading the stated requirements on the homepage.
Blokkal has a CMake-based build system, and it lists kdelibs, KDE PIM libraries, and the Phonon library as its requirements.
The first step of writing the ebuild was to get the basic header stuff (HOMEPAGE, SRC_URI, etc.) out of the way, then add the raw deps.
Dependencies
I was initially a bit unsure of the PIM library listing, as we have in Portage both kdepimlibs and libkdepim. The first was closer to the Debian package name, so I took a chance that this was the correct one. After that, a few quick eix checks on the rest of the packages sorted out the likely names, and then it was on to the source code to see what was a runtime dep, and what was a buildtime dep.
Turns out that with one exception, DEPEND was the same as RDEPEND, so that saved time. I initially had kdelibs as an explicit DEP, but Jonathan Callen (ABCD on IRC) kindly corrected me, as it’s already in kde4-base.eclass. (Thanks to him and wired for answering some of my inquries.)
Eclasses
Eclasses were the next step: which eclass should be used to get proper background dependencies, source configuration, compilation, and installation? The KDE and Qt teams have been very good about eclasses over the years; most ebuilds inheriting them don’t need much in the way of actual code lines — no need to duplicate anything when the eclass does the work for you.
There are a few different KDE4 eclasses available in the tree, and I had to read through ‘em all to guess which one was most appropriate. Other KDE applications in Portage don’t need many lines of code; the various eclasses do all the heavy lifting. I jumped on IRC to confirm my choice of kde4-base.eclass, then ran the emerge, only to be met by compile failure!
Compiling and running
I suspected it was an error I’ve run (and fixed) before, and sure enough, it was: I just had to redefine ${S} since the package download is Blokkal-0.2.1, but the ebuild is blokkal-0.2.1 in lowercase. I’d gotten ${MY_P} right elsewhere in the ebuild; just forgot this one thing.
After the fix, it compiled just fine, started up just fine, and I added my account . . . only to discover that I couldn’t log in. Something was missing . . . but what?
I took another look at Blokkal’s source code. There were a few kwallet headers and kwalletmanager references that implied another runtime dependency was needed. I added kwallet to the ebuild’s RDEPs, recompiled, and finally got the popup window asking for the password. Now I could login to my account and do some Blokkal UI configuration.
Try it out
Since the ebuild is finished, why not try out Blokkal? Get the ebuild here.
Coming up
So there you have it: another step in my KDE4 odyssey. I expect to get my hands on some themes, multimedia applications, office/writing tools, and more.
Obligatory screenshots
Here’s my current desktop, which mostly shows off the “Naked” plasma theme and my desktop widgets:
For comparison, here’s one with a couple of open applications. This shows how well gtk+ applications are integrated into KDE, thanks to the QtCurve style. In the background is Dolphin (Qt4) and in the foreground is Abiword 2.8.1. (From the ebuild I wrote for it)

