Mika Pälsi

Benefits of the Indie Mobile Licensing

Published Wednesday October 1st, 2014
14 Comments on Benefits of the Indie Mobile Licensing
Posted in Android, iOS, Licensing, WinRT

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

The wide degree of user freedom granted by the Community edition of Qt can create difficulties when software is distributed via third party application stores. In the particular case of mobile devices, the technical restrictions on the underlying technical platform and the terms of the stores themselves can make compliance with these requirements difficult – and in some cases impossible. Practical compliance difficulties arise from the fact that certain platforms provide only limited support for shared libraries (the typical case where the LGPL’s library exception applies), and the platform and the terms of use can restrict the possibility for the user to run modified versions of the libraries on the device unless they have been digitally signed by the vendor and/or the distributor. If the application cannot be designed in a way that complies with the library exception in the LGPL, a likely scenario is that the whole application must be distributed in source code under the LGPL. It is also possible that distribution via certain stores is not allowed at all.

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.

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Android, iOS, Licensing, WinRT

14 comments

HGH says:

Which stores won’t allow the LGPL version?

Tuukka Turunen Tuukka Turunen says:

@HGH: It is not possible for us to review and comment the policies of all different applications stores. The point of this article is that the developer has to ensure that all requirements of LGPL are filled in full extent. It means that the store the application is distributed can not set any restrictions to LGPL. It is known that some widely used stores, such as the Apple AppStore, make it very difficult or impossible to comply with LGPL.

Steve says:

IIRC, the commercial licence does not allow an application to be developed with the community edition and then pay for a commercial licence when support / distribution is required (although I’m not sure how this could be sensibly enforced). Does the same apply to the indie licence?

Having an indie license is a positive step but it is not clear how Digia expect a hobby developer to progress to the full commercial licence. $25 a month is a lot to pay for the duration of development (and all the time the app is on the store?) and then find that payments are not supported.

Tuukka Turunen Tuukka Turunen says:

@Steve: Our subscription licenses (Indie and Professional) allow migration from Community / open-source Qt when desired. You are right that for the perpetual Enterprise license one needs to request permission from us to upgrade from open-source Qt. We naturally prefer the user to start with the commercial license already from the beginning. That way the user also get maximal benefits from the additional components, time-saving tools and support only available with the commercially licensed editions of Qt.

Q2EE says:

The real matter is your competitors are free of charge. So you cannot make money from selling a dev tool only. You need a complete SOLUTION. People will pay for hardware, application or services, but not a tool to make them.

andre says:

@Q2EE: The blog refers to Qt as a whole. Cross-platform libraries and surrounding tooling. What exactly are you refering to?

Ioan Calin says:

Sadly, these kind of articles brings to my mind SCO and how it was trying to convince people that they have to buy a license from them if they want to use Linux. Is Digia trying to become the next SCO?

fritz says:

Free as in beer does not work. If you want quality software, you need to pay your programmers.
An affordable license is the best way to do so.

DavidB says:

Your comparison to SCO is really a juvenile argument. If Digia gives away everything for free how do you propose they make money to pay for development, testing, documentation , etc.

My only wish is that the Indie license extended to the Desktop. For the life of me I just can’t see a business model for consumer mobile devices for the following reasons.

1) Over 90 of the apps do not generate any substantial revenue

2) Most mobile apps are simple enough one can master the platform SDK to write two or three screens. I mean is Qt any easier (or harder) to learn then platform native SDK’s

3) Qt apps carry what a twenty megabyte penalty over native apps as you have to ship the Qt libs.

Granted this is my selfish point of view. However I do want to be a paying Digia customer to get access to great features of the commercial version. Please consider opening Indie up to desktop development

As a mobile developer I have to correct you on the mobile side of things.

1) The days when a simple flashlight app could have made you a millionaire are long gone. But that doesn’t mean that there are no opportunities left. Have you heard about the Pareto principle? Well something similar happens on the app stores. I’ve also seen it with my apps. If you have 10 apps, 8 might generate no revenue, but the other 2 may prove quite successful, and sustain your whole mobile business.

2) Going native would be a very bad move. I guess you haven’t tried native coding and you think it’s easy… And even if you manage to publish a native app, you are still at big disadvantage compared to those that went crossplatform first and fast.

3) I’m not sure how much you know about mobile development… Qt adds up only 10 MB to a file that an user has to download. That is lower than some other solutions on the market.

razvanpetru says:

The Indie license is more than welcome. What gives me pause is that there seems to be no support included – for iOS there was a showstopper crashing bug in Qt on version 8 and another one where screen rotation did not work. How do I get help for this as a potential user of the indie license?

And using the commercial/130EUR license is not really an acceptable answer. Paying for support cases (e.g pack of 5) might be an idea…

I think it is a very good move to provide more affordable licensees. However I doubt that the legal stuff should be the strongest selling point of a commercial license for an Indie.

Something is missing … and Digia already has the answer in a report for which Digia was a marketing partner. The report is “Developer Economics Q3 2014: State of the Developer Nation” and on page 27 it is said that the most important third party tool are the ad networks tools. As far as I know Google provided an AdMob plugin for Unity some time ago for free. Digia is no Google in terms of resources and manpower, but that doesn’t mean it wouldn’t be a great idea for Digia to offer a Qt Ads API for Indies. That is all that an Indie license is missing, no more, no less.

If the Indie developer starts monetizing his app with advertisements, he could actually pay the Indie license from the ads revenue. It ain’t far-fetched for an app to generate a 5$ daily revenue. But if he manages to make more, like 50$ per day, he is on a path to a Qt Proffesional license to take advantage of the Qt Purchasing API. Again, at this stage, with the revenues from virtual goods he would most likely cover the cost of a Professional license and turn a little profit. It would be a win-win situation for Digia and developers alike.

On a technical side, a Qt Ads API would be far less simpler to make than the Qt Purchasing API. But in order to be simple, you need to have the expertise in both Qt and Android, or Qt and Objective C etc. The average Indie developer won’t be able to integrate ads on his own. And even if he could, it would break the spirit of Qt. He would have to do native coding on all platforms, instead of “Code Once.Deploy Everywhere.”

zlutor says:

Unfortunately Purchasing API is not part of Indie license – and it makes this option far less attractive, since in-app advertisement does not pay too well nowadays…

Do you see any chance to get it in?

Commenting closed.

Get started today with Qt Download now