Adding LGPL v3 to Qt

Published Wednesday August 20th, 2014 | by

20 years ago, Trolltech, the company that created Qt, was founded. One of its founding principles was to release Qt as free software to the open source community. In the early versions, this was limited to Unix/Linux and the X11 windowing system. Over the years, more and more platforms were included into the open source version of Qt.

At the same time, the licenses under which Qt was available evolved. The Qt 1.x source code was still released under a rather restrictive license. With Qt 2, we moved over to the QPL. Some years later, with Qt 4.0, Qt started to embrace the GPL v2, to remove some license conflicts between GPL-based applications and the QPL.

Trolltech was involved in talks with the Free Software Foundation (FSF) when the GPL v3 was created, and we added this license as an optional license for Qt after it was published by the FSF. Finally, in 2009 Nokia added LGPL v2.1 as a licensing option to Qt.

The spirit of all GNU licenses is about a strong copyleft, giving users rather strong access and rights to the source code of application and libraries. It was always meant to protect the users’ freedom to modify the application and underlying libraries and run the modified application.

In many people’s opinion there is, however, a loophole in the LGPL 2.1, where it doesn’t clearly talk about running the applications using a modified version of the library. Even though it violates the spirit and intentions of the LGPL, this loophole has been extensively used by companies that create locked-down devices. If devices use LGPL v2.1 software, the user may not be able to install modified versions of the library on the device and use it together with the other software that is installed on it.

We also consider locked-down consumer devices using the LGPL’ed version of Qt to be harmful for the Qt ecosystem. The device is not open to third party developers and thus doesn’t contribute in extending the size of the Qt ecosystem and the range of devices that can be targeted by software developers using Qt. In addition to not contributing to the ecosystem, it doesn’t fund the further development of Qt.

For these reasons we believe that LGPL v2.1 is not protecting the users’ freedom as it was intended by the Free Software Foundation. To account for this, the FSF created version 3 of the LGPL, a license we feel is legally formalizing the intentions of the earlier version.

Changes in the Qt 5.4 Release with LGPLv3

Because of this, we are now adding LGPL v3 as a licensing option to Qt 5.4 in addition to LGPL v2.1. All modules that are part of Qt 5.3 are currently released under LGPL v2.1, GPL v3 and the commercial license. Starting with Qt 5.4, they will be released under LGPL v2.1, LGPL v3 and the commercial license.

However, there will be a set of new add-ons that will be only released under LGPL v3 (plus GPL v2 or later) or commercial license. These add-ons are listed below. We have discussed with the KDE Free Qt Foundation and have their support to make this change in Qt 5.4. We are also in talks with the KDE Free Qt Foundation about further strengthening the agreement.

New add-ons released under LGPL v3

In Qt 5.4, the new Qt WebEngine module will be released under LGPL v3 in the open source version and under a LGPLv2.1/commercial combination for Qt Enterprise customers.

Adding LGPLv3 will also allow us to release a few other add-ons that Digia before intended to make available solely under the enterprise license. In Qt 5.4, we will add a technology preview for two brand new modules to Qt under the LGPL v3.

The first module, called Qt Canvas3D, will give us full WebGL support inside Qt Quick. It is fully functional, but still marked as a preview because the support for JavaScript typed arrays is still implemented in a slow and not 100% compliant way.

The second module is a lightweight WebView module that will also be released as a technology preview. It supports embedding the native Web engines of the underlying operating system into Qt, and is currently supported on Android.

There is a final add-on that will get released under LGPL v3. This module will give native look and feel to the Qt Quick Controls on Android. This module can’t be released under LGPL v2.1, as it has to use code that is licensed under Apache 2.0, a license that is incompatible with LGPL v2.1, but compatible with LGPL v3.

How does this change affect you as a Qt user?

One of the first questions you might have is, of course, how this affects you as a user of Qt.

This first thing to notice is that if you are using Qt under a commercial license, nothing changes at all.

Also, if you are using Qt under GPL v3, you are unaffected, since LGPLv3 can always be converted to GPLv3.

All modules that existed in Qt 5.3 will still be available under LGPL v2.1. So if you are using Qt under the GPL v2 or LGPL v2.1, nothing changes as long as you don’t use any of the new modules that are only available under LGPL v3. If you start using those, your source code will fall under the conditions given by the LGPL v3 (or GPL v2).

These changes will be effective in Qt 5.4 Alpha. I believe that adding LGPL v3 as a licensing option will help both Qt and the open source ecosystem. It is a lot clearer about the intent of the LGPL license and its use in Free Software.

Please find more information about open source licenses at http://www.gnu.org/licenses/.

If you are not sure what license you should be using in your project, please consult a legal expert.

Digia has opened an email address for specific questions about using Lgplv3 in your project. Please contact us via Qtlicensing@digia.com.

Did you like this? Share it:

Posted in Community, KDE, News, Qt

16 comments to Adding LGPL v3 to Qt

BogDan says:

Will QtCreator be released also under LGPLv3 ?

Tuukka Turunen says:

@BogDan: Yes, in addition to the Qt framework modules, we will also add LGPLv3 as a licensing option to Creator.

BogDan says:

Great, I want to add more stuff to QTC that is licensed under Apache 2 :) .

BogDan says:

BTW, congrats for this decision!
I’m a big fan of (L)GPL v3 licenses.

Milian Wolff says:

Nice! Personally, I really welcome this change and hope for the best.

Cheers

David Boddie says:

I’m happy to see support for user freedom stated so clearly in this article. I hope that developers who are less interested in that aspect of the discussion find the argument around extending Qt’s ecosystem to be a compelling reason to support efforts in that area.

suy says:

IANAL, but I read this as good news, since I certainly like that people who get Qt for free, to also help at least a bit. I was doing proprietary code with Qt, and I also wanted to contribute more. I got some time to help in my spare time only, and it sucked.

So what exactly forces this on proprietary applications? I guess the blurry line that this clarifies is that you can not static link to LGPLv3 at all if you want to remain proprietary. There is always the debate on the Qt lists, channels, etc., that you maybe could static link to Qt if you ship the object code of your proprietary application, so you still can keep it proprietary.

Or there was a loophole also on shipping a dinamically linked and modified Qt without sharing the changes?

varomix says:

I have a question

does this mean I can make an application with Qt and Sell it or do I still a commercial license for that?

thank you

Tuukka Turunen says:

@varomix: Commercial license is of course what we recommend to have if you do business with applications created using Qt. It is possible to ask money also for applications created with open-source licensed Qt as long as you meet all the obligations set by the LGPL.

varomix says:

That works for me, I want to make a small app for mobile

thank you

gyll says:

I think this whole LGPL thingie is wrong, Qt should be released only under GPL and [several forms of] a commercial license. Who wants to build free software with Qt should be encouraged to do so, but whoever wants to make money from using Qt should pay for the huge effort the developers put into this. I can partially understand there might have been some historical reasons for using the LGPL back in the days when Qt was in its early infancy, but nowadays… i just don’t get it.

dev-sst says:

“using the LGPL back in the days when Qt was in its early infancy”

Funny, actually Qt maintains production ready quality for more than 12 years.

The LGPL move was a tactical decision of Nokia to create a better ecosystem environment for their phones.

Pablo Rogina says:

“using the LGPL back in the days when Qt was in its early infancy”

Please remember that in its infancy Qt has two licenses: QPL [1] [2] for open source development and the paid license for commercial development.

As mentioned before, LGPL was introduced only during Nokia ownership of Qt around 2009, see also related post “Nokia to license Qt under LGPL” above.

[1] http://opensource.org/licenses/QPL-1.0
[2] http://en.wikipedia.org/wiki/Q_Public_License

Leandro Cerdán says:

Hi guys! Only a question :

Qt Quick Control addon with Android look and feel will be able us to develop Android mobile apps with native look? (a long requested feature)

Thanks and keep it up!!

Tuukka Turunen says:

@Leandro: Yes, both widgets and Qt Quick get native Android style with Qt 5.4.

Leandro Cerdán says:

;) thanks @tuukka! Great work

Commenting closed.