I want to shed some light on and explain the benefits of our recently announced Indie Mobile to make it easier for you to make the right license choice. For certain types of use cases, Indie Mobile provides many advantages in licensing compared to the open-source Community edition of Qt. Indie Mobile, similarly to the other commercially licensed Qt editions, is also better suited for deployment to third-party application stores. In addition, Indie Mobile as well as the Professional and Enterprise editions, allows licensees to retain more flexibility with regard to their own product licensing.
With the introduction of the Indie Mobile, I thought I would take the opportunity to provide you with some guidance on how to make the right license choice for you when developing with Qt. The purpose of this post is to provide clarity on use cases on when to use the commercial editions of Qt, in particular Indie Mobile, and when to use the open source Community edition. Please note that the purpose of this post is not to give legal advice on compliance in your specific circumstances. If you have concerns about licensing, you should consult an attorney experienced with open source licensing issues to make sure you are compliant.
As a general statement, I want to emphasize the importance of our open-source Community edition of Qt to the development of Qt as a whole. We make Qt available under open-source license to allow the community to develop open and easily accessible products with Qt, and at the same time contribute back to its development making it an even better technology. We greatly value this co-operation and want to endorse it. However, we recognize that the open-source model is not necessarily the right approach for all licensees. Typically our commercial license terms are better suited for creation of proprietary applications – and for that reason we cater to all needs with the various licenses pursuant to which we offer Qt.
In order for you to make an informed decision when choosing which edition you should develop with, I want to provide you with our point of view on two licensing models and the impact they have on your mobile application development. I will start with the Community edition and open source development, and follow-up with some specific observations about how our commercial Indie Mobile license differs from the open-source LGPL license.
Community Edition – Respecting the Four Freedoms
The Lesser General Public License (“LGPL”) (initially version 2.1, and with Qt 5.4 also version 3) has been chosen as the primary open-source license for Qt because it provides users with the following four freedoms:
- The freedom to run the program as you wish, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
These four freedoms are essential for the success of open-source co-operation. Therefore, it is vital that all users of Qt under the LGPL respect these freedoms by fully complying with all the requirements set by the LGPL.
General LGPL compliance
The LGPL, like most open source licenses, imposes several obligations on distributors of LGPL libraries. As a general rule, the LGPL works very much like the GPL in that the derivative works of LGPL libraries need to be licensed under the LGPL as well. However, if the LGPL’s so-called library exception applies, the user can license the combined work under a license of their choosing. Even if the library exception applies, the LGPL imposes requirements that need to be complied with.
These include, but are not limited to:
- Inclusion of proper copyright and license notices.
- Disclosure of the source code of the library, modifications of the library, and in some cases, the source code of the application itself.
- Ensuring that the proprietary license of the actual application allows reverse-engineering as required by the LGPL.
- Re-linking and running the application with a modified version of the library.
The last item in is one of the main requirements of LGPL, which we believe to be frequently overlooked. Is a requirement of LGPL to allow the user to be able to re-link and run the application with a modified version of the open-source library (right to run the application is clearly stated in LGPL version 3, and we believe it should be allowed also when using LGPL version 2.1).
These rights granted to users is at the core of the Qt’s Community edition, and we believe that all licensees of the Community edition should ensure that users of their applications can exercise these rights.
LGPL compliance when distributing via third party application stores
As can be seen from the points identified above, compliance with the LGPL is not a matter of packaging the application with the library and running with it. There are many issues to take into account, and compliance must be considered already at the design stages. If this is not done, the distribution of the application is highly likely to run into difficulties.
Commercial Editions – Flexible Licensing
In some cases, compliance with the four freedoms is not a possibility due to practical reasons. There are various scenarios where this might be the case:
- You might want to utilize some component with a license model that is not compliant with the requirements set by the LGPL.
- In some cases the distribution channel or the technical implementation of the underlying software platform can restrict your ability to comply with the LGPL.
- If you want to distribute your application through third party application stores, the terms and technical restrictions of the application store and the underlying device ecosystem can limit the possibility to fully exercise these freedoms.
- You might want to have terms in the End User License Agreement of your application that are not compliant with the requirements set by the LGPL, for example restricting reverse engineering or patent license rights.
- You may not want to provide all the source code of Qt with your application to every user of the application or deliver the source code upon request based on your written offer to receive the source code. It is explicitly on the responsibility of the application developer to distribute all the used source code (of Qt) to every user downloading the application, even if there are no modifications to it.
In such cases a commercial Qt license, such as Indie Mobile, is a more suitable license alternative to the LGPL. The Qt commercial licenses simplify compliance by eliminating the LGPL license requirements that limit your ability to license your application as you wish, and by removing the legal obstacles that can in certain cases prevent you from distributing your Qt-based applications via third party application stores. In any proprietary application, it is our strong recommendation to use commercial editions. In this way you can ensure your compliance of license terms and ensure your IPRs are better secured.
Which Qt Edition Should You choose?
We believe that the Community edition is best suited for those users who want to develop open source applications. If you intend to develop either closed source applications, or distribute your applications through a third party application store, we would recommend our commercial license editions. Use of the LGPL licensed Qt is in some cases possible in closed source applications and in applications distributed via third party application stores, but in such cases you should take the steps necessary to fully comply with the LGPL’s rules on combined works and be ready to grant the users the Four Freedoms they are entitled to. You should also pay particular attention to any restrictions a third party application store might place on such freedoms in order to ensure that you can legally distribute the application via such a channel.
When you are beginning your Qt development and if you have any doubt whether or not the requirements of the LGPL can be met in full, a commercial licensing option is often the best choice. Indie Mobile has been created as an affordable alternative for individuals and small businesses (below yearly revenue of 100.000€) to be able to deploy their applications via public applications stores. By using the Indie Mobile, the particular challenges created by third party application stores are removed, meaning that you as a developer can distribute your application via whatever third party application store you wish.
I hope this post has made the licensing of Qt a bit clearer and given you some insight on the benefits of Indie Mobile. You can also check our licensing pages for more information. I welcome your feedback and look forward to hearing from you.