Qt

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).

The Qt 5.4 Alpha is planned to be released on Aug 22, and these changes will be effective then.
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.

7 Comments


Posted in Community, KDE, News, Qt

Qt Creator 3.2.0 released

Published Tuesday August 19th, 2014 | by

We are happy to announce the Qt Creator 3.2.0 release today. This release adds many smaller and larger features, as well as fixing bugs. A few examples:

  • Block selections in text editors now allow you to do “column editing”, meaning that all selected lines are edited simultaneously (Qt Creator Manual)
  • Context help can now be configured to open in an external window (without disabling Help mode)
  • Support for C99 designated initializers and concatenated strings was added to the C++ code model, as well as improvements to encoding handling and lambda support and many other things
  • More panes are now searchable with Ctrl+F, for example the project tree
  • The QML profiler received many performance and stability improvements again

Enterprise Qt Creator users can now also use the QML profiler to debug their JavaScript memory usage in QML. (This is only available when using Qt 5.4 for the debugged application.)

Also have a look at our change log, for a more complete overview. I also want to thank the more than 50 contributors to this version of Qt Creator.

You find the opensource version on the Qt Project download page, and Enterprise packages on the Qt Account Portal. Please post issues in our bug tracker. You also can find us on IRC on #qt-creator on irc.freenode.net, and on the Qt Creator mailing list.

Note: With Qt Creator 3.2 we drop support for OS X 10.6 (Snow Leopard). The technical reason for this is that Apple does not support any kind of C++11 on that OS version. Of course that does not affect on which platforms you can run your Qt applications on. But it is not possible to run the Qt Creator 3.2 binaries on 10.6, and it also is not possible to compile Qt Creator 3.2 on 10.6 with the tool chains provided by Apple.

Update: There is a problem with the online installer sometimes not removing old files when updating components. This leads to broken Qt Creator installations which crash at startup. We have disabled the online update for as long as we are investigating the problem.

26 Comments


Posted in Qt, QtCreator, Releases

Defragmenting Qt and Uniting Our Ecosystem

Published Wednesday August 6th, 2014 | by

Over the last years, many changes have been happening in the Qt ecosystem. One of the biggest was the creation of Qt Project where Qt is now being developed as an open source project. The Qt Project was created to provide a space open for all to further develop and foster innovation for the Qt technology.

Qt has always been a commercial product. During the Trolltech days licensing income funded development of the product. While Nokia’s motivations were different, at Digia, our goal is to again make sure that Qt thrives for all industries, all companies, all users no matter what platform. That said, we need to make sure the business of selling Qt as a product is successful in order to fund its future development for the good of everyone in our ecosystem. The importance of Digia’s commercial business for securing the future of Qt cannot be underestimated as it drives Qt’s foundation and everyday operations. A look into the commit statistics shows that around 75% of all code submissions to qt-project.org come from Digia employees. In addition, Digia manages the release process and the CI and testing infrastructure, thus covering more than 85% of the costs of developing Qt.
Read more…

84 Comments


Posted in Community, News, Qt

Google Labs VoltAir Game Built with Qt

Published Monday July 21st, 2014 | by

As the dog days of summer carry on, we at Digia, Qt are swatting down flies, mosquitoes and bees while we fan ourselves in the unusual summer heat currently striking Scandinavia … in Oslo … at least.

Meanwhile, on a cool note, the Fun Propulsion Labs at Google announced last week that, VoltAir a single and multi-player game built with Qt is available for download via the Google Play Store and as open source software. Coolbeans!

VoltAir was developed to provide an example of a C++ game designed for both Android and Android TV and the folks at Google also tested it on Nexus 5, Nexus 7, Moto X by Motorola, Android TV, and some Samsung devices.

Check Out VoltAir (Courtesy of Google Developers – YouTube)

Read more…

14 Comments


Posted in Android, Announcements, Labs, Qt, Qt Quick

Qt Weekly #13: QStringLiteral

Published Friday June 13th, 2014 | by

QStringLiteral is a macro that allows you to create QString objects from string literals with little to no runtime overhead. However, its usage can be tricky especially in code that must compile with different compilers, like the Qt code itself. This blog post lists some guidelines to help you avoid the pitfalls.

QString is the ubiquitous representation for a Unicode string in Qt. A common source for a QString are literals hard-coded into the application. In Qt 4, any such creation of a QString from a literal required creating the QString object on the heap, and then translating the literal characters from its run-time character codec to UTF-16. Since Qt 5.0, QStringLiteral allows to avoid this overhead by creating the object and doing the conversion at compile time.

Enable C++11 in your project

QStringLiteral is only optimized if the C++ compiler both supports lambdas and unicode literals. This is the case for Microsoft Visual Studio 2010 and newer, but GCC and Clang need to be told that they should support all C++11 features. When using qmake, this can be achieved by
Read more…

13 Comments


Posted in C++, Qt | Tags: , ,

Qt Cloud Services at Contributors Summit

Published Wednesday June 11th, 2014 | by

Greetings from Qt Contributors Summit!

How’s it going? We just had a session about Qt Cloud Services here at Qt Contributors Summit and it was great! In our session, we demoed the brand new Managed Runtime service and got very good feedback from the people. With our Managed Runtime service you can write and deploy your server-side software written with Qt or a number of other programming languages in a matter of minutes.

Want to see how it works? Check the video at https://vimeo.com/97709588.

In case you want to know more details, check the Qt Contributors Summit presentation at http://www.slideshare.net/qtcloudservices/qtc-managedruntimes.

The service will become available for public by end of June 2014. If you want early access, sign-up at https://qtcloudservices.com/early-access.

Hope to see you in Qt cloud soon! If you have any questions, just let me know!

2 Comments


Posted in Cloud, Qt, Qt Cloud Services | Tags:

May 2014 Qt Hackathon

Published Wednesday May 28th, 2014 | by

With Qt 5.3 successfully released we decided to relax a bit and got together for a Qt Hackathon. In similar manner as with the previous Qt Hackathon we arranged in December, teams from all our main development sites joined together to see who can make the greatest, most awesome new project in just 24 hours. Rules of the game are: team work, new innovation, all created during 24 hours.

This time the prize categories were:

  • #1 Best solution for developer productivity gain
  • #2 Greatest graphics ninja work
  • #3 Most creative use of Qt

After 24 hours of happy hacking we voted for the winners. It was very tight match and interestingly we got a tie in two of the categories.
Read more…

6 Comments


Posted in Qt

Qt 5.3 Released

Published Tuesday May 20th, 2014 | by

I’m happy to announce that Qt 5.3 has been released. The main focus for this release was performance, stability and usability. Nevertheless, Qt 5.3 has also gotten a fair amount of new features that help make developers’ lives easier.

Qt 5.2 has been a tremendous success, having been downloaded over 1 million times. With Qt 5.2, we delivered on our promise that Qt is a true cross-platform framework by adding Android and iOS support. Qt 5.3 is building on that foundation, and adding to it.
Read more…

75 Comments


Posted in Qt, QtCreator, Releases, RTOS, WinRT

Accessibility in Qt 5.3

Published Wednesday May 14th, 2014 | by

The Qt community is welcoming and inclusive. With Qt we aim to enable everyone, no matter their background, to access and use the technology. From building applications with Qt, to being a user, we want to support everyone. Universal design and accessibility are important to us as a project and for Qt as product. In Qt 5.2 the accessibility framework saw big improvements and became public API again, allowing application writers to make custom widgets accessible. Qt 5.3 is an even more exciting release when it comes to accessibility. Thanks to great feedback, we finally have our Mac implementation greatly improved; using Qt applications with Mac OS X’s screen reader VoiceOver is now a lot more responsive. In addition to a huge performance boost, we implemented notifications, so that VoiceOver users are able to use the text editing widgets with proper feedback. With Qt 5.3.0 almost released, we are continuing to work on small but important fixes in Qt 5.3.1 which already make the Mac experience even smoother. We have also ironed out some inconsistencies on the other platforms, such as making the reading of menus more reliable on Windows. A big thank you to those giving feedback, especially Vincenzo and Steve!

VoiceOver reading QTextEdit

Read more…

3 Comments


Posted in Accessibility, Android, desktop, iOS, Qt

News from the Qt WebEngine Team

Published Tuesday May 13th, 2014 | by

It has been a while since our last blog post and we would like to provide a short summary of our work and our future plans.

In the meantime, we have added several interesting features such as support for WebRTC or the system clipboard. We added support for Tooltips and Find Text to the Widgets API. Also, we spent a significant amount of time expanding our APIs and verifying these by porting example applications from Qt WebKit to Qt WebEngine.

Qt WebEngine in Action

The following video shows Qt WebEngine in action on multiple platforms. Some very exciting features shown in the video include WebRTC being used for video conferencing and WebGL and CSS animations running on embedded linux. Further it also shows HTML5 Video running on an off-the-shelf embedded device.

Focusing on Embedded

Since last year, we have been working on getting Qt WebEngine running on Linux and Mac OS X. These are already running pretty well as shown in the video above. However, given the market requirements and the high number of requests received for web content on embedded platforms, we have had to slightly shift the team’s focus. Having a well performing, high-quality web engine is a key requirement for many embedded devices, and we want to cater to these with the upcoming release of Qt WebEngine. Therefore, in the past few months we have placed more emphasis on the embedded Android and embedded Linux operating systems that form part of Qt Enterprise Embedded.

Read more…

22 Comments


Posted in desktop, Embedded, Qt, Qt Quick, Qt Quick 2, Qt WebEngine | Tags: , , ,

  1. Pages:
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. ...
  10. 79