While people are brainstorming on kde-core-devel about some very
fuzzy (so far) "merging of kdelibs and Qt", which funnily got
picked up at some places on the interwebs like strong plans
(ahem!), I keep doing my streamlining work of the platform in my
dark corner of the world. I'm just posting this small blog entry to
keep you people informed on what got dropped in the platform the
last few days.
First, everywhere it was possible, the internal dependencies of
kdelibs became conditionnal. For instance, you can now build a
libplasma without any dependency on libkio, libsolid, libknewstuff
or libkdewebkit. Other libraries have seen a similar work, it's not
that many dependency cuts (as for instance, right now, it's very
hard to not depend on kdecore or kdeui as higlighted by the
brainstorming mentionned above).
Second, I just committed last night and this morning a whole bunch
of changes to allow building kdelibs without any deprecated
symbols. It reduces a lot the symbols exported by our libraries,
and to some extend the size of the libraries. As it's obviously
binary incompatible, it is an option that you can activate using
the experimental Mobile profile.
And that's where I need your help, I can port a couple of modules
out of using such deprecated APIs (I did it for kdepimlibs and
kdebase so far), but I can't and won't do it all by myself! So this
blog post is also a call to arms: developers, try to build kdelibs
with the Mobile profile and check that you application still build
and run against it! I'll help me because more porting will be done,
and it'll help you as it's always good for applications to avoid
relying on deprecated APIs. Also, in the hypothetic event a KDE5
would arise, not depending on deprecated API today will make your
porting effort easier tomorrow.
**Help Me! Help You! Build the KDE Platform with the Mobile Profile!**
How to do that? It's easy, just use
"-DKDE\_PLATFORM\_PROFILE=Mobile" when invoking cmake.
Interestingly, all the ported apps I tested so far seem to work
just as usual (there's a couple of integration features lost, but
it's hardly noticeable really), so for instance I can run
plasma-desktop or dolphin just fine using the Mobile profile.
Unlike planned today, I actually hacked until early in the
morning... But managed to get enough sleep to be lively today which
was basically a long stream of meetings for me. Two highlights of
the day:
- KDE Mobile BoF, where actually quite a few people attended,
many more than I expected. We made nice progresses there,
discussing the ecosystem how to integrate there, how to push
forward the modularization of our platform. Very nice group we had
there, although it was somewhat large it was also very well
disciplined. I'll have to update our wiki accordingly now;
- KDE PIM BoF, discussing post 4.5 plans and so on. That's where
I'm sitting right now. :-)
Nice day overall, looking forward to tomorrow where I'll put my
metalworker hat on with a couple of Solid BoFs.
Today we had the first day of conference of Akademy. Plenty of nice
talks (surprise!). Quite a few mobile related (surprise!). I was
really looking forward to the development track which had only
interesting topics, but unfortunately for me it wasn't conveniently
placed regarding my own talk and the talk of my students. So I
could only attend the first one from Thomas McGuire, which was
really good. Oh well, I guess I'll virtually attend the other ones
thanks to the recorded videos when they'll be online.
Other highlights of the day were basically PIM on Mobile by Till,
and Plasma Mobile by Alexis and Artur. Very nice talks as well!
My own talk about the KDE Platform Mobile happened at the end of
the mobile track which was inconvenient for the aformentioned
reason, but also because it was competing with the end of some
random soccer game. ;-)
Last but not least, we had the talk done by my students about the
projects in the Toulouse University. And they did a really decent
job although that was really a first for them to hold such a talk
in an international context. Definitely not an easy exercise which
can be frightening at first. Well done guys!
And now that my talk is behind me I can feel free to hack late at
night again... unfortunately not tonight as I'm nursing a terrible
headache (which is why I left the party early unfortunately).
Just like the fellow gearheads who already published this kind of
blog, I'd like to claim that, yes!
[](http://akademy2010.kde.org)
This year I will be spread on several fronts (like every years in
fact), but you will for sure meet me during the following events:
- My
[talk about KDE Mobile](http://akademy2010.kde.org/node/433 "Kevin Ottens, Akademy 2010 talk, KDE Mobile"),
which will happen on saturday afternoon;
- The
[KDE Mobile BoF](http://techbase.kde.org/Projects/Mobile/Meetings/Akademy2010 "Akademy 2010, KDE Mobile BoF")
which I will be moderating, people willing to discuss the future of
the KDE Platform and how to contribute more to the the Maemo /
MeeGo ecosystem;
- The
[Solid BoFs](http://techbase.kde.org/Projects/Solid/Meetings/Akademy2010 "Akademy 2010, Solid BoFs")
where I'll meet my fellow metalworkers, strengthening our plans for
4.6; note the plural there, there will be two of such meetings
(because some people will attend remotely, and then because of
timezone constraints).
Apart from those three events, I'll run around as usual, probably
trying to poke a bit the Plasma people as well or furiously hacking
somewhere.
Looking forward to meeting you all!
As part of the KDE/Maemo effort (that should get a more generic
name really...), we've already seen emerging some SDKs to help us
target the relevant platforms, some Plasma mobile shell, etc.
Still, one of the challenges is also to widen the scope of our KDE
Platform. For that, a draft plan was made during Tokamak4, and
since then we've been progressing carefully on the matter. We tried
to get as much feedback as possible on the plan, not rushing things
to make sure we weren't stepping on anyone toes.
Today, I'm happy to announce that the very first corner stone of
this plan got delivered. We added support for "profiles" in our
platform. The CMake scripts for it got committed this morning,
along with some changes to libplasma which effectively becomes our
first library supporting those profiles.
By selecting a profile at build time, you get a default setup for
our libraries which will enable or disable some extra features and
dependencies. For instance, if you choose the "Mobile" profile the
feature set coming from kdelibs will be reduced but on the other
hand there will be much less internal dependencies in kdelibs, this
way an application will only need a reduced subset to be able to
run.
This more modular kdelibs depending on the profile chosen is of
course only a first ongoing projects, but we have other topics to
tackle like the runtime dependencies (namely klauncher and kded) of
our platform. On this area we still lack reliable data as it is
much harder to track. Still reducing dependencies during build time
will be a big leap forward. And I'm truely excited because we're
slowly (but steadily!) getting to a slimer KDE Platform.