Qt and Open Source
qt.io
qt.io
Edit: This article gives a bit more context. https://www.phoronix.com/scan.php?page=news_item&px=Qt-Open-...
And here the email to which Qt Comany reacts: https://mail.kde.org/pipermail/kde-community/2020q2/006098.h...
LGPL has long been a thorn in the side of Qt Company management. Nokia had bought Qt for $150 million, developed and popularized the platform, and then released everything under LGPL. Digia/The Company then bought the intellectual property from Nokia for just 4 million Euros and have been trying to make money from it ever since. Now, with Corona, the management seems to have had a good opportunity to get rid of its annoying obligations to the open source community.
Thing is, non-commercial and free software projects (KDE is one of the biggest ones, but not just KDE) have a significant contribution, quality-wise, to Qt. Most commercial users are on LTS releases. They rarely report bugs in current versions. With some exceptions (e.g. Wayland), they rarely test new features as they become available. They rarely put too much effort into bug reports for LTS releases, too. That's just how commercial development works. Unless it's a critical bug and you have no choice, your employer won't pay you (or you can't charge your customer) to help another company fix their code.
Qt has a large foothold in FOSS and non-commercial software, and that provides a great deal of real-world exposure to a codebase that's old enough, and complex enough, that real-world exposure is crucial. IMHO, if they lose this, Qt will stop being a useful choice for any kind of development, cross-platform or not, within a few years.
(Edit: to be clear, it's not just that the FOSS community basically provides free beta testing -- even if technically it sort of does. This is an artifact of the way FOSS, and many Linux distributions, too, work today -- e.g. most distros don't ship the LTS version, they ship the latest version, simply because it's easier to fit that into their release schedule. Whether good or bad, it means that a big chunk of Qt app users are on the latest stable version, not on LTS.)
That's all in addition to all the third-party contributions, which are a small, but not insignificant portion of the Qt code.
If The Qt Company discontinued the FOSS version of Qt, the Qt framework would become available under the BSD license, and there would no longer be a contributor licence agreement allowing a company to sell the work of another company.
> in addition to all the third-party contributions, which are a small, but not insignificant portion of the Qt code.
In the last years more than 50% were open source contributions. At Nokia times they were only 10 to 20%.
But the rumors were that the Qt Company planned to do the minimum necessary to satisfy KDE Free Qt Foundation agreement, namely to release the source 12 months after release of the proprietary version. So, then Qt would not become available under the BSD license.
Oh, okay, that's grown! I was still thinking of Nokia-era figures :).
Linked email from KDE:
> But last week, the company suddenly informed both the KDE e.V. board and the KDE Free QT Foundation that the economic outlook caused by the Corona virus puts more pressure on them to increase short-term revenue. As a result, they are thinking about restricting ALL Qt releases to paid license holders for the first 12 months. They are aware that this would mean the end of contributions via Open Governance in practice.
TFA (the entirety):
> There have been discussions on various internet forums about the future of Qt open source in the last two days. The contents do not reflect the views or plans of The Qt Company.
> The Qt Company is proud to be committed to its customers, open source, and the Qt governance model.
So, are they claiming that they never planned to "restrict ALL Qt releases to paid license holders for the first 12 months", or are they saying this plan still counts as "committed to open source"?
Bull.
From January (eg ~2.5 months ago) they've stopped people being able to download the Open Source Windows, macOS, and Linux versions of Qt without first signing up for a "Qt Account".
eg you're now required to be tracked / able to be spammed / (etc) for even the OSS version of Qt.
That's not how companies "committed to Open Source" do things. :(
The crap they're reported as wanting to do now, is right in line with their demonstrated anti-OSS direction.
It's in virtually every Linux distribution as binary and source. You don't need a "Qt Account".
Grab the official Qt installer, and try downloading anything:
http://download.qt.io/official_releases/online_installers/
It will not work unless you sign in with a Qt Account.
Hopefully having several offline installs of various versions in parallel doesn't cause problems.
Qt being under LGPL, there is nothing that prevents anyone else from redistributing open-source builds of Qt - Debian / Ubuntu through apt, MSYS2 (pacman -S mingw-w64-qt5-whatever), homebrew (brew install qt), conan (conan install qt/5.14.0@bincrafters/stable), vcpkg (vcpkg install qt5)...
On Linux/BSD though, obviously most people use the in-built package managers where the Qt version is recent enough for their purposes.
Have you tried it? Does it ask after the download?
Oh it looks like you obtained that launcher from the old "archives" directory?
http://download.qt.io/archive/online_installers/2.0/
It's unfortunate that only has an old Linux installer. Saw it yesterday, but needed an OSX downloader and was out of luck. :(
http://download.qt.io/official_releases/qt/
At least, after disconnecting the internet connection then ignoring the subsequent error (ironic for an "offline" installer!), it doesn't require a Qt account.
For now we (sqlitebrowser.org) will keep with the easy approach of using the official Qt installers.
If Qt does something even further dumb though, we'll likely move to compiling Qt ourselves. And probably then make installers (.msi/.dmg) for anyone else that wants it too. ;)
The real value of Qt is not $4m, Trolltech made a decent living out of it. The world has changed a bit since then, but I’m sure there is still plenty of space for Qt in the market.
But indeed, in other areas such as non-Nokia mobile platforms they even blocked progress. It was only after Nokia let go that the Android port really took off and was mainlined for example.
Trolltech was skimpier but was much more interested in the success of the platform per-se. In many ways the post-Nokia experiences are an attempt at re-discovering the space Trolltech lived into.
> their open source OS based on Qt.
There was never such a thing. They had a Symbian OS skinned with Qt, and a number of Linux incarnations that started with GTK and were later reskinned with Qt. It didn't help that they stroke a high-level agreement to basically adopt Intel's Linux efforts, which were targeting GTK. By the end of these travails, they ended up with something fairly decent but that was just a lame-duck. Nothing was ever "based on Qt" at a fundamental level.
https://en.wikipedia.org/wiki/MeeGo which evolved to http://merproject.org/ and https://sailfishos.org/ after the Nokia era
But I agree with you. They are most likely executing now an old plan under Corona cover.
Apparently you don't even read the links you provide.
Qt company can't get rid of the leagal obligations it has to release the software. What it can do is to stop extra cooperation.
Don't worry, I also studied law.
What The Company can or can't from this contract is not granted unless you have supreme court judgments for the points in question. Otherwise the current patent system, which is primarily based on bluff and blackmail, would not work. As long as there are companies that would rather settle than defend themselves in court, The Company will find a way to stay in the game.
Secondly, nt's not about legality of open source license at all.
LGPL or GPL does not burden Qt Company with license obligations since it owns the source code. There is another contract between KDE foundation and QT company that we are talking here.
Some people say that qt.io is one of the companies in trouble, and that it's reacting by releasing new versions of qt to customers first, and to opensource users a year later.
I've no idea how much income qt.io actually has lost.
Their employee count has also doubled, which is why they're not making any profits despite the revenue growth.
Edit: Ah, you're pointing out that only 25% of their revenue is commercial licenses, while most of their revenue is consulting. I don't know if that's really such a big deal.
It seems their current strategy is to milk the users that can't use the LGPL users as much as possible, Additionally they try to convince as many people as possible that the LGPL version won't work for them, by having very confusing licensing terms on their website.
My company currently uses the LGPL version of Qt, and would gladly pay for the commercial one. In the Trolltech and Nokia days they actually did pay for it, but the prices are no longer affordable us. So we are stuck with the LGPL version for now.
We don't need a trillion supported platforms and tons of features. We have a Desktop App that runs on Windows (and in the future maybe Linux), and we use the old Widget stuff (currently no QML). We would gladly pay for the features we need, but not the ridicolous amound they are charging now.
Huh, price isn't even a THAT big problem. Software developed with LGPL version can't use the commercial one.
> 2.13. If I have started development of a project using the open source version (LGPL), can I later purchase a commercial version of Qt and move my code under that license?
> This is not permitted without written consent from The Qt Company. If you have already started the development with an open-source version of Qt, please contact The Qt Company to resolve the issue. If you are unsure of which license or version to use when you start development, we recommend you contact The Qt Company to advise you on the best choice based on your development needs.
IIRC they aren't really willing to give the permission to switch
My company accidently used one of their GPL-only products (on screen keyboad), thinking it was LGPL. We did the right thing and reached out to them to pay for it after it was already deployed to customers.
We had to pay for the entire Qt platform. 20,000 dollars plus a per-device royalty. That was a big mistake on our part, not paying attention to the licensing.
Also, I've personally tried out Qt a few different companies over the years and several of them would have been fine paying $50-200/dev/year (depending on company size), but the current price starts at $5508/dev/year! This is so much higher than Jetbrains or Visual Studio pricing that it's clearly targeting a market other than normal developers. This creates an awkwardness for Qt in my opinion. They want to build a community of developers to encourage and grow use of Qt, but most developers in the community are priced out from participating outside of open source.
My point is that my company would be willing to pay for Qt (and it did pay in the past), but not that much. In the current situation they don't get any money from us at all.
This is a much greater hassle than just linking dynamically, so we don't do it.
If tomorrow you had some big project such as Qt in your hands, and had 100% freedom to choose how to proceed with it (in matters such as what license to apply, what sustainability model to seek, etc.) what would you do?
I always feel that pure GPL is the best but only idealistic way to go, because working for free is not compatible with paying your bills. Then LGPL, and maybe other licenses such as Apache, are nice but at the end of the day allow that private companies with private pockets benefit from the project without helping it at all (either with work or with cash), which I know is one side of the "freedom" that those open-source licenses bring, but it's one side that I personally don't really like (I'm more of a pragmatist than an idealist). For that reason I feel like dual GPL+Commercial might be the best of both worlds. It would allow basing a company around it, and paying other devs to feed their families, and at the same time users of the GPL variant would themselves be benefiting from and contributing to open-source.
Even then, the total addressable market was pretty small, but at least it was anyone who wanted to make a cross-platform app.
Now, most people who want to do that use Electron, React Native, or make a browser extension (or, of course, a Web site). The market is smaller: cross-platform makers who are absolutely committed to Qt or for whom it’s a uniquely good fit (like because they’re using C++).
Think of it like a pharma company with a drug that only treats a rare disease. The TAM is tiny. Unless someone discovers that it also treats some other disease, there’s not a lot they can do to expand the customer base. If they want to make more money or want more short-term revenue (usually at the expense of long-term revenue), charging existing customers more may actually be the best option for them.
But now, I think that C++ is more of a drawback than an advantage for the Qt project. C++ today seems a good fit for high-performance, very niche tools such as trading, games, machine learning libraries, and such, but not for "simpler" software such as the UI of an application. Also finding good competent C++ devs seems to be much harder now. I myself feel like having to go "back" to writing C++ is a bummer, having worked with other more modern technologies.
Bindings to other languages have always been a second-class citizen. The Python one is very nice, though, but that's all. I believe it comes, again, as a difficulty introduced by the language itself.
Even with all of that, you generally end up reading the C++ docs, it isn't particularly Pythonic, and there are weird gotchas. I can't really fault them for it because you're bound to get that with bindings to another language and it is much better than other UI toolkits.
If you want to make actual profits, then it is the same license choice but with a company that sells valuable long-term support, development and perhaps proprietary extra features. Examples: RedHat, Canonical, GitLab.
And no, I don't really have an answer either. Successful open source business models are few and far between. Redhat is perhaps the one big example of a (very) successful open source company.
To some extent I think the worry about leeching is something which can be addressed with culture as well as licenses. Plenty of successful BSD/apache licensed projects around, including with largely corporate contributors, because they understand the long-term value from contributing to the common pool rather than forking and trying to sell "proprietary enhanced" versions.
I'd probably go with LGPL and commercial plugins that enhance the functionality. But this depends on the product having some features that could be mainly useful for companies but not really for individuals.
Either go full GPL, or even AGPL, or then use a liberal license like Apache-2, IMHO.
What "discussions on various internet forums" do they mean? there's been plenty. And, which ones "do not reflect the views or plans of The Qt Company"?
Why such a rushed defensive blog post?
In particular
> Unfortunately, The Qt Company is currently considering to stop this healthy cooperation
The negotiations and uncertainty are related to all extra cooperation above that.
There are talks in the mailing list about forking QT but KDE doesn't seems to want that currently due to lack of developers for maintaining a fork
Same thing happened with Oracle and Java, they lost a lot of potential new developers with their hardline approach to open source.
Would probably be good for gtk development
The issue seems to be that there are many people that use Qt for free including companies but they won't pay with money or contributions, so if a work will happen except KDE there will be few contributors. Qt includes a version of Webkit that is used in some application, so you need someone to keep on top of webkit security issues and backport the fixes.
That is one of the things that free software allows, yeah.
> so if a work will happen except KDE there will be few contributors
Even if that's true, is KDE not enough?
> Qt includes a version of Webkit that is used in some application, so you need someone to keep on top of webkit security issues and backport the fixes.
I assumed that the QT end of that was a thin wrapper around upstream webkit; is it really that involved?
Hence I find it's a bit confusing to say "to be committed to open source" where in practice the only way to use their extension is either to release your apps code (given you distribute the app) or pay for commercial license. IMHO "to be committed to free software" would represent extensions situation a bit better.
In other words, the license is not suitable for users who are not committed to open source themselves but are not willing to pay either.
Dual licensing with GPL is IMHO the best and often only viable method from the business point of view for small and medium sized companies who sell product and not just service.
QT Company has large customers that are much bigger than it is. Many of them in software business. Turning into yet another software as a service producer for Autodesk or car manufacturers is not in their interests.
this is FUD - the immense majority of Qt is under LGPL. You can build literally entire OSes out of the LGPL parts.
The only strictly GPL parts are (from this page https://doc.qt.io/qt-5/qtmodules.html) : - Qt Charts - Qt Data Visualization - Qt Network Authorization - Qt Virtual Keyboard - Qt for WebAssembly - Qt Quick WebGL
All the widgets, qt quick, etc... stuff is available under LGPL.
Which is exactly what improves and helps grow the open-source world?
GPL makes a product's code, and by infection/extension, other people's code, to be all released under a GPL license. GPL guarantees that users of open-source code won't act as leeches and will themselves contribute more open-source code. Isn't the act of choosing that license, in itself, "a huge commitment" to open-source?
Then they say: OK, seems you want to keep your code private, in order to preserve your IP and leverage over other competitors, and protect your lucrative interests... well that's fine too! You don't want our open-source license forcing you to contribute your code? Fine, we'll waive that requirement. Just pay up.
No. All is LGPL except for some niche libraries.
No, using the LGPL code done by third party is still free of charge.
> This is a "coopetition" among companies and everyone benefits from it.
And we also have seen many times developers who released their code as MIT never seeing a dime from these big companies (such as Corejs developer).
LGPL is the way to go to ensure that big corps who make money out of an open source project do pay up. You don't want to release your source code? Then pay for a commercial license, end of story.
Right, of course; hence the failure of Linux and the dominance of the BSD family. /s
But yes, using permissively-licensed components absolutely is* a good thing, including for the users, who get higher-quality software with less dev time and lower cost of development. Obviously I'd prefer that it was all GPLv3, but given that the alternative in practice is probably fully-proprietary software from scratch, I think BSD is better than nothing.
OpenCV (and many other open source frameworks) never had a CLA so this wouldn't be an issue for that. In my opinion there is nothing inherently wrong with dual-licensing but it's expensive and many companies do not have the resources to pull it off correctly. Re-releasing under the BSD license appears to be the backup plan if the Qt Company ever goes belly-up.
It significantly hampers cooperation. No company in its right mind would make a large investment for free in the development of software sold by another company. Without this unspeakable dual license, a balance is possible, i.e. the companies can invest and use without taking inadequat advantage of each other.
In the event of total failure of Qt's business model and reversion to a BSD license it is also very likely that there will not be much left of a market for big enterprise services around this type of product, so be careful with that double-edged sword. You might just end up with more fragmentation and internal proprietary forks to contend with. On the other hand, independent consulting will always remain an option as it is now.
They can't change that without negotiating new contract. That would require giving something to get something in return. Only thing they can do is to do just the minimum. This is the current issue. They are moving towards the bare minimum.
I like opensource, I myself am a Linux user. I just like a world where perhaps individual devs can build nifty useful software that we pay a small fee for and use. This way the small guys can benefit. Unfortunately, the current state of OSS (which has changes since the early days) are concentrating more power in the hands of a few organizations.
Take Sublime Text for example. I like it that an engineer builds something useful, ask a one time fee for it and we pay something really affordable for it (while there was also a free version available). This way, talented software engineers could actually make a decent living without everyone has to build crappy software for an advert-based economy. So, IMHO, opensourcing the software is an act of grace and would be at the discretion of those engineers. To expect everything to be FOSS or perhaps even demand that, I find is detrimental for individual software engineers/small players.
Qt Company is also a 300+ employee company with 8-digit revenue. They are not some small shop trying to survive, they are a corporation that over-promised growth to their shareholders and now is trying to squeeze rules that have existed for 20 years to turn some part of the open-source ecosystem into paying customers, threatening to risk the entire open ecosystem around it for this, which includes many small shops and individuals.