Joys of Freedom, R.I.P Opie
Another period of not blogging. A lot of things have happened. I attented the KDE conference in Dublin, was at OEDEM, went to the awesome Qt DevDays, visited a couple of other facilities and the term just started.
I’m mentally back to KDE development and my personal goals for KDE4 are better QA, smaller memory footprint, faster apps, less bloat, more usable enduser applications and sane error reporting. I still have nightmares understanding why GPG, KMail and Kubuntu won’t work together. “Error initializing the backend” is IMHO not a usable error message and these things need to be changed. I have started writing my first web application using the Django Framework it is called Bonsai and allows you to query SCMs. E.g. the primary usecase is to find deleted files as most modern systems don’t have something like an Attic we are all used to from CVS.
Back to the Freedom and Qtopia Greenphone. It is an incredible device and if you buy one from Trolltech as Free Software developer you even get the sourcecode of the applications. And who needs the source for the kernel, libc, Qtopia libraries and the toolchain itself anyway. I think sourcecode is overrated anyway. Well I’m just kidding.
I took a quick look at the Qtopia Release Notes and I just recognized that only nine more days are missing and Qtopia hasn’t had a GPL release for another year. From 17 documented releases 7 have a GPL release. And the last six releases are without any GPL release at all. From my point of view this makes Qtopia a proprietary platform like Symbian or Windows Mobile. I seriously wish Trolltech commercial success with their platform but from a Free Software point of view the Qtopia platform is just as interesting as Windows Mobile. And Windows Mobile has sadly one advantage, you can actually buy devices running Windows Mobile in Europe. And with handhelds.org we have a project specialised in liberating these devices which secures our freedom. So lazyweb do me a favor and stop believing Qtopia is Free Software.
I find it amusing guyhlem asked Opie to die and do you know what? Opie is dead, unmaintained, stuck with Qt2. So as Opie is dead all people use Qtopia now, right? Sadly this is wrong. The short answer is people that care about freedom, or a maintained platform just use GPE an Gtk+/X11 based environment. The longer answer is when Opie was actively developed the developers used the applications, integrated Opie to new devices and as their were users they knew about the issues and shortcomings. So a lot of real life issues and shortcomings were found and the important ones were hopefully addressed. This is the classic Quality Assurance of Free Software Projects. Code gets released, people test it and find all kind of issues which you are trying to fix. The result is a better integrated, more stable system. I have tried a lot of times to merge Qtopia improvements back into Opie and either I’m completely stupid or most of the stuff that was advertised in the Release Notes didn’t work properly. My favorite example is the Config Cache in the Qtopia Config class. Config is a small Map which maps keys to values using QMap. The keys belong to a specific group. For the current group they have an iterator on this map. Now on write they destroy the QMap and invalidate the iterator. So if you now read or write through this iterator your application will just segfault. So for Opie I have merged and later patched their class to not crash, send patches to Trolltech and do you know what? Config::write in Qtopia will still leave a QMap::Iterator around which is invalid. The other interesting issue was with the fifteen game. They enchanched the graphics of this game and I decdied to merge it. Merging was again straight forward but the application didn’t look right on 640×480. Hey one of the engineers mixed up width with height and we all know these things can happen. So I have written a patch against Qtopia sent it to the opie-forum@trolltech.com and the feedback again was none. I don’t know if they have fixed this issue, fixed it independly or whatever. So the issue with Qtopia until now was the engineers at Trolltech probably don’t have the time to listen to us, to the needs of the community or even accept patches.
Imagine we would have used Qtopia2.1.0 when it was released and ditched Opie. Imagine that we had the resources to make it work well enough on the available platforms (mainly iPAQs, Zaurus). We would have to maintain a patch set for all the bugs we find, no patches from us would be applied. For futher releases we just have to hope that they will do the right thing(tm) and without talking to us still doing what we need. So Qtopia2.1.1 gets releases and we don’t know what bugs were fixed as no ChangeLog will be made available. So we would have to merge all our patches to Qtopia2.1.1 again and maybe even have new patches. And trust me merging 100+ patches to new releases is no joy. And you will do the same thing for Qtopia2.2, Qtopia2.3, Qtopia3.0, Qtopia4.0…. And you sincerly hope that they will do the right thing and fix the bugs you have fixed but reaility is different.We would end up with an ever growing patch set as we find new issues, start polishing applications and do you know what? Trolltech will do the same. So at your next merge point you can either throw your improvements away or try to merge them again. So at one point you might recognize that they won’t do the right thing(tm) when they don’t communicate and there is no way forcing them to.
So what would you do then? I have learned my lessons during Opie development so I’m thankful for this experience and I’m better educated than ever. Probably the most import lesson is “Don’t play with a team when the team doesn’t want to play with you”. So what does that mean? We have always advertised Opie as Qtopia compatible. And as Opie was Free Software, many people thought and still think Qtopia is Free Software as well and we have taken the public preassure away from Trolltech. So we have advertized their platform and created public awarenes even if they didn’t want to play with us. We went to fairs and demonstrated the Free Qtopia, talked with many people from different companies and projects and some of those evolved into paying gigs for Trolltech. And Trolltech went as far as advertising thousands of available Free Software for their platform.
R.I.P Opie, it was a pleasure to hack on you. But there is still hope. There is still the hope that Trolltech will release Qtopia 4.2 GPL and if they somehow promises to regulary release Qtopia sources we might see a Community around Qtopia again.
And Qt4.2 is full of incredible stuff. New feature likes Cascading Style Sheets for Widgets/Applications and the QGraphicsView are just awesome. E.g. the painting engine in Qt can probably be compared to cairo but there is a huge difference. Qt has a fixed point implementation for this engine since day one. So Qtopia4.2 might just be right for your device so let us hope Trolltech will recognize the value of the community (again).