📜 ⬆️ ⬇️

About Qt licenses (and a little about the company)

In the previous Qt roadmap article, I promised to tell you about Qt 3D Studio and the current license situation. Qt 3D Studio has already released two (while writing the article, the third one has been released) of an internal release, but there will be no article about it yet, so today I’ll tell you about the licenses.


The Qt licensing system has not been very simple before, but now it has become especially complicated as new products have been added (and added) and with them the additional terms of the corresponding licenses. The official site does not help much to understand, although it contains the text of the conditions and agreements .


But it will not be discussed immediately about licenses, at first I want to tell a little about the company, so that it is clear who is currently developing / distributing the framework and generally stands behind Qt.



The Qt Company


It seemed to me important to start with the introductory part, because there are still “gray” places even in such simple things as correct pronunciation (“ kyut ”) and spelling (" Qt "). What can I say, if in the internal correspondence and calls you can sometimes hear “ ku-ti ” and see “ QT ” (never from developers).


history of the company


Sometimes at exhibitions they ask questions like: “ How, and are you still alive? ”Or“ Isn't Nokia the one? ". Yes, the company is quite alive and has nothing to do with Nokia for several years.


Here is the whole history of the company in brief:



In general, the company's plans now are to achieve a profit of 100 million euros by 2021, because now there is an active recruitment of new employees, and among other vacancies , the so-called sales engineer to the Berlin office is especially urgent. If someone is interested - write to me, I will tell you more.


Speaking of Nokia, it is impossible not to mention its contribution to the distribution of Qt - after all, it was Nokia that made Qt also available under the LGPL license. For obvious reasons, it was not interested in selling licenses - Nokia wanted to “popularize” Qt in order to create more applications for its mobile platform, and the GPL was very disturbed by this. Indeed, immediately after this, the Qt community has exploded to grow, so thanks to Nokia for that. But there is also a downside: selling software licensed simultaneously under the LGPL and a commercial license is not an easy task, so in this sense Nokia’s LGPL legacy is “ fucked up sales big time ” (I won’t translate), as a sales employee said, who wished to remain anonymous.


What I want to point out especially - with all the changes that took place in the owners, the Qt developers remained the same (as far as possible in more than 20 years). Some, including the current chief technology officer (CTO) Lars Knoll , work in Qt today, and started back in the days of Trolltech.


Here is a brief story about everything. By the way, if it is interesting, I will tell you why the domain is qt.io, and not qt.com (spoiler: cybersquatting).


Offices in different countries


The Qt Company is an international company with offices in several countries:


The offices of The Qt Company


And although legally the main office is now in Finland, historically the largest office is in Oslo (Norway). In it sits the majority of developers (and CTO).


The Russian representative office of The Qt Company is one of the smallest (if not the most) - the whole country has only one small office in St. Petersburg. Incidentally, after certain events, the St. Petersburg office once received such a letter:

In connection with the war between [...] and Russia, it is currently unacceptable for me to communicate with the Russian office of the company. Please redirect my request to any European or American office of The Qt Company.
In general, the presence of offices in different countries sometimes comes in a rather unexpected way.


Qt Releases


New releases usually come out twice a year, but sometimes dates move out and in one year there may be only one release, but in the other - three.


If we consider the timing of support releases, then the “old” system is still in effect , for which the minimum supported release is 5.4.


Under the new system, starting from Qt 5.6, releases will now be divided into regular and LTS (long-term support):



Thus, the current supported (accompanied) versions:



Maintenance includes the release of corrective releases (xx1, xx2, etc.) as well as technical support. Technical support should not be confused with bug fixes: corrective releases and bug fixes are, of course, accessible to all, but technical support is provided only to holders of a commercial license (more on this later ).


Example with termination of release maintenance: if you use Qt 5.3 and for one reason or another you cannot / want to upgrade to the current 5.9, then you can continue to develop with Qt 5.3 and release your products - but do not expect any updates / patches for this version. Even if you have access to tech support - you cannot ask Qt 5.3 questions, the standard support for this release is also over. But if you really need, then there is the opportunity to purchase extended ( extended ) support for older versions, and then the maintenance of this version will be renewed especially for you.


Dual license


Qt has always been available under a “dual” ( dual-license ) license: Open Source and Commercial. With commercial everything is clear: companies need money to pay employees and develop the framework. But why make your product available under Open Source licenses?


Open Source Contribution to Qt Development


The graph shows the contribution of third-party companies in the development of Qt. It is not difficult to see that although the contribution of The Qt Company is the largest, much of the development is carried out by the Open Source community. And in some modules, the contribution of third-party developers even more - for example, the emergence of Qt 3D is a merit of the service company KDAB .


Therefore, it is important that Qt be and remain available not only under a commercial license, but also under Open Source. Further, it will be separately about KDE Free Qt Foundation .


A positive role is played by such a side of Open Source - for example, some company Chamomile decides to use Qt in the development of its new product. Resources are allocated, and development is carried out for some time. Then Macrohard unexpectedly buys The Qt Company and, as usual, destroys it (and the product). What does this mean for Chamomile - the project is doomed, all resources are wasted, because the development of Qt has stopped? No - its sources are available, and the development will continue regardless of the existence of a particular legal entity. Of course, there is a question with licenses, but the most important thing is that Qt will keep the technology alive and will continue to evolve.


With all this, unprepared sales staff look at the situation with Open Source with poorly disguised horror. For them, this means only one thing - we distribute our product for free! Similarly, people from the outside look at The Qt Company business model. But in fact, everything is not so simple, and I hope to explain this further in the article.


Qt Products


For further proceedings with licenses (differences between them), you need to talk about products. Different products have different licensing terms (and different costs).


Now the list of products is as follows:



These three products can be represented as follows:


Qt Technical Product Hierarchy


That is, from a technical point of view, the subsequent product includes the previous one and adds new components and tools.


However, in addition to the technical, there is a legal component. For example, you create a coffee machine and use Qt in software development for it. Under the terms of the Qt for Application Development license, you cannot distribute / sell your coffee machines - for this you must have a Qt for Device Creation license, because it is she who licenses such use of Qt (distribution in the “device”, details are slightly lower.


After some time, the expected appearance of new products. Most likely, they will also be based on Qt for Device Creation and expand it with additional functionality (and licensing conditions) specific to certain industries (for example, set-top boxes, medicine, etc.).


There is another separate product - a license to create an SDK based on Qt. This package exists in case someone wants to take Qt, make changes to it (add new libraries to QT Creator, add more plugins to Qt Creator, something else) and distribute / sell as your product on its own terms (virtual cellular operator). connections, as an analogy). This licensing option is very rare (and very expensive).


Differences between AD and DC


Probably, the coffee machine example caused some confusion, and maybe outrage, so I want to talk about the “legal” differences between the Qt for Application Development products and Qt for Device Creation in more detail.


Qt for Application Development is designed to develop applications on desktops and mobile platforms, where such an application will be just one of many others used in the system. Examples: Telegram , VLC , VirtualBox and others - that is, “normal” applications that can be installed on any computer (smartphone, tablet) or placed in the app store (App Store, Google Play, Windows Store). The terms of this license cover the following operating systems: Windows, Linux, Mac OS, iOS, Android, Windows Phone - all of them are already included in the license price (you can’t throw out “unnecessary” ones).


Qt for Device Creation is designed to create “devices” when a product is not just an application, but a combination of software and hardware, that is, an application is developed for a specific device, and the final product will be distributed / sold in that form — the device and preinstalled (or installed later on) software on it, without which the device simply “will not work”. This may be a graphical user interface or other essential device functionality implemented using Qt. The terms of this license cover only one operating system from the list: Embedded Linux (in general, the same Linux, but on the embedded platform), Embedded Windows (UWP, WinRT, Windows EC / WinCE), QNX, VxWorks, INTEGRITY - in the price licenses included only one of them, and each additional OS is added for an additional fee (with a discount for each subsequent). In addition, there is the so-called “distribution license” - this will be further .


Just in case, I want to clarify that OS licensing affects only the “final” ( deployment ) OS. Development can be carried out in any OS you like (Windows, Linux, Mac OS).


Some projects may require a Qt for Device Creation license, even though the “device” is a regular Windows desktop computer. For example, it could be a workstation at some factory, where a certain application is running for monitoring some sensors - and this is the only purpose of this workstation. From a technical point of view, there is no need for components from Qt for Device Creation (Boot to Qt, virtual keyboard, emulator, etc.), but legally this is a “device”, which means this license is required. The definition of "device" is given in the terms and conditions .


Maybe this is the situation: a company has two different projects: a media player under Windows and a weather station on Raspberry Pi and Linux. In this case, she needs to acquire both licenses - the so-called “combo license”: Qt for Application Development plus Qt for Device Creation (it is cheaper than these two separately). Again, from a technical point of view, it’s quite possible to work on a media player project using the Qt for Device Creation version (it contains all the libraries from Qt for Application Development ), but “legally” is not allowed under the license terms.


Commercial license


To work on a project using Qt, each developer must have a license. It is named and attached to an e-mail address ( Qt Account ). Despite this binding, the license is actually owned by your company, and therefore when a developer with a license, for example, leaves, you can “reassign” his license to another. However, this does not mean that you have a “floating” license in your hands that can be switched between employees several times a day - the reassignment of the license is regulated by The Qt Company.


If the team is large, then there is an opportunity to purchase a “mass” ( site license ) license for the entire company, which will not depend on the actual number of developers and, accordingly, will cost less.


Each developer can use his license on an unlimited number of workstations and operating systems, provided that he will use them exclusively. Example: I have a desktop with Windows 10 and a laptop with Ubuntu at work, and I use a Mac at home — you can install Qt on all three machines and work quietly on a project on any of them.


Often asked about the build server, do they need a separate license? No, the license is required only for “live” developers who work with Qt (“touching the Qt code”).


Subscription


Generally, licenses for developers are lifelong ( perpetual ), but Qt for Application Development has the option of acquiring a license by subscription ( subscription ) (including the “indie” license for startups ). Such license is paid for each month of use.


The subscription model made sense for short-term projects when development lasts, say, a couple of months, after which you just distribute your application. As soon as you need to resume development, release a new version of the application - you pay for the new month, implement your plans and again stop the subscription. Why did I "make sense"? Because some bright head from the management thought up to make it so that recently (about half a year ago) the current subscription was required not only for the development period, but also for the distribution of the application. That is, now, if your subscription is inactive, then you cannot not only develop, but also distribute / sell your ready-made application.


By the way, why is the price for a subscription indicated on the site, but there is no price for life for anywhere? The management decided that all important information in a couple of paragraphs on the site could not be accommodated, and therefore, those wishing to purchase a commercial license should contact the sales department , who first explains the licensing system applicable to a particular project, and only after that will announce the cost and terms of the corresponding license.


Licenses for distribution


Qt for Device Creation (and all derivative products, starting with Automotive Suite ), in addition to licenses for developers, has a second component - “ distribution licenses ” ( distribution licenses or runtimes (not a good term)). That is, a developer company that distributes / sells “devices” with Qt inside (software developed using Qt) must purchase these runtimes by the number of distributed devices. For example, let the same Chamomile office sell 20,000 coffee machines per year, which means it must purchase runtimes for at least 20,000 devices (or 100,000 at once for five years). The larger the volume, the lower the runtime cost per device (and vice versa).


Moreover, there is a minimum threshold for the number of runtimes - you must buy at least 5,000 runtimes regardless of your actual supply plan. But some companies (and not necessarily start-ups) simply do not need such volumes - say, a manufacturer of MRI scanners will sell 500 scanners at most in 10 years, what should he do with the remaining 4,500 runtimes? In general, a rather strange requirement (but fortunately not such a "hard").


License Renewal


The developer’s license includes one year of technical support and new versions of Qt in its price. After a year, you have the choice to “ renew ” support and updates or not. If you don’t renew, then you can still development (same life-time license) with the latest version of Qt, which was released during this year, but you can no longer contact technical support or use newer versions of Qt.


Distribution licenses (runtimes) do not expire. , — , . , 10 000 , 1 000 () — , 10 .



, “” ( evaluation ) Qt. , ( 30 ) , Boot to Qt, , Qt Quick Compiler, Qt Configuration Tool Qt Lite . 30 ..


Qt for Application Development , Qt for Device Creation . Automotive Suite , “ ” BMW, Volvo , .


.


Technical support


( — ) Open Source .


Open Source , Stack Overflow, , IRC- .. ( ) .


Qt Account. (48 ) Qt. . “ ” “”, . , "", . , — .


., - - ( “ ”).


: , 24 , - , .



, The Qt Company ( consultancy ) . / ( ), / ( , ), proof-of-concept, -, .


Open Source The Qt Company. , .


Open Source


Open Source .


GPLv3/LGPLv3


Open Source Qt GPLv3 LGPLv3 . Qt 5.7 GPLv2.1 LGPLv2.1.


LGPL “” GPL, , Open Source, . , “” LGPL GPL , Qt LGPL — , Qt Charts, Qt Data Visualization Qt Virtual Keyboard GPL, LGPL-.


, LGPLv3 GPLv3, . , LGPL GPL.


, , , (GPL/LGPL). , , Qt LGPL — ( , ).


, Open Source The Qt Company, GPL/LGPL — , Qt Open Source. , , , — . , - - , , Qt LGPL, — . , . , . The Qt Company . Open Source .


- , Qt Open Source . , , , “ — , , — ”. , ( GPL/LGPLv2.1 v3 - , “consumer product” “” ), ( GPL ).


, , Open Source . — , - C++/Qt, - -. , — , , , — — — — , .


Open Source ( , ). Open Source — , , . , — , Open Source. , , . , .


: Open Source . , - “” Qt, , , . , , . , , , , . — - .


Open Source


Open Source . , LGPL, .


, Open Source , “” . , , , , Open Source, GPL/LGPL. - “”, — The Qt Company .



Open Source Qt, GPL LGPL (- GPL).


KDE Free Qt Foundation . 1998 KDE Trolltech , Qt , Qt. , , — Qt , — - Qt Charts, Qt Data Visualization, Qt Virtual Keyboard . , . , - Open Source, Qt 5.7 — GPL.


, GPL LGPL — GPL ( , ).


, , , , ( ) Open Source .


, , , , , : , , . , . , — ( ).


Differences in Qt components between licenses


, . , , .


.


0


Open Source , , - , :


Hidden costs with open source licenses


Charts, Visualization Virtual Keyboard


, . Qt 5.7 GPL ( - LGPL).


Qt Quick Compiler


Qt Quick Compiler ( ) Qt. Open Source 5.7, 5.8, 5.9, , “” ( ).


Qt Quick 2D Renderer


, GPL, 5.8 , Qt Quick LGPL.



" " -, , - .


“” Qt Creator — (-) . Raspberry Pi 3 :


Embedded   Qt


, " " :


Boot to Qt


, , Qt . Boot to Qt , .



"" . , .


Open Source , . . ( , ..) . , .


"" , . . — .



, , Qt :


Qt


: “ Qt ? ". : — Qt . , Qt Open Source (GPL/LGPL).


Conclusion


The Qt Company . , , , , , .


— . , , . The Qt Company, , , Qt, . Built with Qt . , — .


— compliancy check . - . The Qt Company ( ) , , . : “ ” Qt for Application Development , “ ” Windows 10 IoT, — . : , , LinkedIn Qt — - .


, Qt . , - (, GPL/LGPL), — .




â„–1.


: " , ? ". , .


Qt, , . , .


, : , , , The Qt Company . , ( -) — , .


Open Source , , The Qt Company, ( Free Software Foundation ), The Qt Company, FSF. , . — .


, FSF : " , GPL, , , ". , - The Qt Company . . — .


: The Qt Company ( ), GPL/LGPL? Qt , Open Source ( ). , Qt , GPL/LGPL? , .


, , , .


')

Source: https://habr.com/ru/post/331166/


All Articles