January 21, 2009
This article was contributed by Derek Kite
When Nokia purchased
Trolltech in early 2008, it stated that the acquisition would "enable the acceleration
of their cross-platform software strategy for mobile devices and desktop
applications, and to develop its Internet services business." It is
not entirely clear what that means, but one
thing is
certain: Nokia is now a major player on the free desktop since it owns the
library upon which KDE is based. The free software community is not
unfamiliar with large, well-established firms taking an interest in and
contributing to an endeavor. But there is always the question: How well
would Nokia work with the community?
It was a pleasant surprise, then, when Nokia announced that the Qt library
will be released under the LGPL version 2.1. This is for the coming Qt 4.5
release that is due in March 2009, and applies across almost all its
products. The new license is
in addition to the existing commercial and GPL licenses.
Some history
Trolltech (now known as Qt Software) started marketing the Qt
cross-platform library in 1996, and made the X11 version available under a
free
use, code available license. It was later offered under the Q Public License
(QPL), which is an OSI approved
license. Later Linux versions were released under the GPL. If someone
desired to write a closed source binary application, they could purchase
developer licenses from Trolltech.
Shortly after the initial release of Qt, Matthias Ettrich proposed using
the library as a basis for the Kool
Desktop Environment, better known as KDE.
One can think of many examples of successful business ventures based on
free software, but they are usually in the server market. The desktop is
much more
challenging; against a well entrenched and rather rich competitor, we have
something not quite done, but free. What Trolltech managed to accomplish is
noteworthy. It had a library with a free license; the KDE developers
tested it, learned how to use it, and evangelized about it. Trolltech got a
large developer pool eager to use the product, and the irreplaceable hard
knocks feedback from KDE developers. Over the years many KDE developers got
jobs with Trolltech, or established consulting businesses selling services
based on Qt, cementing the good will further.
But that necessity of selling licenses caused friction. The desire of
Trolltech to own and control the code created a situation where outside
patches were rarely accepted. KDE has long maintained a patch set called
qt-copy, while they awaited the next version of Qt with the fixes written
by a Troll (Trolltech engineer). The trend in free software has been to
offer libraries under a license which allows closed source application
development but, with Qt, that required paying for a license.
Although KDE is a vigorous project with a large user and developer base,
the licensing and Trolltech's tight control over its library has relegated
KDE and Qt somewhat
to the margins within the free desktop stack. The rejection of the Qt due
to its license prompted the creation of GTK and Gnome as a free
alternative, and even elicited condemnation
from Richard Stallman. Happily the relationship has improved to the point
where both desktops are having a joint
developer conference.
Opening the repository to contribution
Along with the license change, Qt Software is proposing to open the
source repository to external contribution. The purpose is to make it easier for
external developers to contribute to Qt, while still maintaining the
quality and cross platform characteristics of the library.
Knut Yrvin, the Open Source Community Manager for Qt Software outlined
the proposed criteria for accepting external contributions. In order to be
accepted, the code would:
- follow Qt coding conventions
- be reviewed by another developer
- use a license compatible with Qt licenses
- follow Qt branch commit guidelines
- not add regressions except for new test cases
Qt Software will give full access to the internal unit tests that Qt
developers have been using. It has already switched to Git internally,
and is setting up Gitorious
for hosting Git repositories.
There is more to the task than just providing access, as Mr. Yrvin described:
Unit tests, Qt guidelines, Git and Gitorious are just tools. The
development process and workflow are important too. I label this as the
social side of the development process. When opening up we are also
making communication more transparent, increasing our effort with the
community code camps and developer gatherings.
Mr. Yrvin described how Nokia benefits from all this. He explained that
instead of having different code bases for the same application when
targeting different devices, Qt can improve the time to market, targeting
desktop, mobile and embedded platforms with a single code base. The
increased use, contributions, and feedback from projects across all the
platforms will ensure a high quality library. Nokia and all users of the
platform benefit.
George Makrydakis raised
some questions regarding the LGPL and C++ templates. Mr. Yrvin said that
the legal department is aware of this and are currently investigating the
template situation. They will come back with more details. He said that
Nokia wants to ensure that it will be easy for developers to adopt Qt. It's
worthwhile to note that gtkmm, the GTK C++ bindings, has the same
issue.
This is a significant step for Nokia. It has been very difficult to
attract developers to large commercial code releases. Nokia and Qt Software
seem aware of the difficulties, and with feedback from KDE developers are
attempting to avoid the pitfalls and make the process mutually
beneficial. Let's not
forget that Nokia makes phones, so it will be interesting to see how this
move will play out
in the briskly
competitive smart phone marketplace.
(
Log in to post comments)