Hacker News new | ask | show | jobs
by ihaveajob 1364 days ago
They work really hard to hide this, but they do have a LGPL license that applies to most of the framework, and only some parts (charts, etc.) are GPL/commercial only. For those old enough to remember, this license issue was at the heart of the Gnome/KDE schism.

From their site <https://www.qt.io/download-open-source>: LGPL – Any modification to a Qt component covered by the GNU Lesser General Public License must be contributed back to the community. This is the primary open source Qt license, which covers the majority of Qt modules.

If you're not familiar, in practice, the difference between GPL and LGPL is that LGPL does allow dynamically linking a library with a closed source program, without requiring that the program also becomes GPL/LGPL. This is compatible with most development as long as you either don't modify Qt, or are ok with those modifications becoming open source.

2 comments

LGPL3 is a no-go for a lot of embedded projects, as OP is probably finding.

The anti-tivoization clauses mean you need to provide a way to install user-built Qt libraries on the target device. You might think that's not a big deal until you go to work for an automotive or medical company and meet up with the massive wall of lawyers that tell you no fucking way.

But those projects should have the budget for a real license, so that's not a real issue.

The problem is typically people not bothering to understand the L in LGPL.

> But those projects should have the budget for a real license, so that's not a real issue.

You're missing the whole point.

It's irrelevant whether projects should have a budget or not.

The whole point is that there are plenty of alternatives that do not require thousands of dollars per year*developer, nor do require lawyers to audit releases.

As others said, there aren't that many alternatives that work as well as Qt in a crossplatform way or in the embedded space.

On the desktop you can go Electron, but you then pay penalties in performance that not everyone is willing to endure.

In the embedded space there is little or no alternative.

There isn't so many alternatives that works so well in the embedded space. (in the kind of device where a web browser is not an option)
Now I'm curious what you think are the "plenty of alternatives" for embedded that are obviously a better choice.
Not if you also want decent performances
The anti-tivoization clause only applies to consumer devices. There is no issues with using the LGPL in a medical device since the customer is usually commercial.
If you have more documentation to back that up I'd love to see it. From my discussions with the walls of lawyers, the interpretation varies by jurisdiction.

The actual LGPLv3 text has zero instances of the word "commercial" or the word "consumer" so interpretation is all we can go by.

Search again. The LGPLv3 is just referencing the GPL. The GPLv3 paragraph 6 define in which conditions you need to provide the installation information, and explicitly say it is only for user product:

> A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling.

http://radar.oreilly.com/2007/03/gplv3-user-products-clause....

The FSF felt that consumers needed protected from tivoization but commercial users did not since they had the financial resources to fight for themselves with contract law.

A commercial customer has the same right as everyone else using LGPL software.
They do not. http://radar.oreilly.com/2007/03/gplv3-user-products-clause....

The FSF felt that consumers needed protected from tivoization but commercial users did not since they had the financial resources to fight for themselves with contract law.

> They work really hard to hide this, but they do have a LGPL license that applies to most of the framework (...)

No, LGPL also excludes projects from most commercial software.

Also, keep in mind that this is not a choice between Qt with a paid license or Qt with LGPL. It's a choice between Qt and any other framework, and licensing alone makes Qt a very poor choice.

Which frameworks though ? WxWidgets, GTK and Electron need compliance with LGPL, and I don't know any other that would be comparable in terms of features with Qt
Feature-wise, wxwidgets and gtk+ are a joke compared to Qt.

Electron is not just a joke but a fat pig.

Truth is there's nothing comparable to Qt in the cross plataform world today, unless you are willing to take the risk of Flutter, JUCE, some web technology (which would be regarded as obsolete by the time you ship your product), etc.

Sure, I agree haha. They are the closest but they aren't comparable (although likely for GTK+ one would mention the entire glib stack which is I think comparable to Qt in scope)
The whole glib would be just a subset of QtCore. Not comparable.
OP is talking embedded, so things like TouchGFX.

https://www.st.com/content/st_com/en/campaigns/touchgfx-adva...

That's perhaps an advantage that Flutter has over Qt.

See: https://github.com/flutter/flutter/blob/master/LICENSE

The API span of flutter is ridiculously small compared to Qt. Does it even have a proper tree view? I only see stuff comparable to Qt Quick there: https://gallery.flutter.dev/ ; nothing to make a complete desktop UI.

e.g. if I look at what I can find for docking widgets (and I have hardly ever seen an actual useful software for content creation without a whole set of dozens of docks): https://caduandrade.github.io/docking_flutter_demo/#/ like, is this a joke?

Yes, Qt is the best for certain types of desktop UIs and it has a proven-track of years. However, if you're a small business, what options do you have --realistically-- that come with friendly licensing and without having to shell out big bucks?
.. using the LGPL version ? it's used by small and large businesses alike and don't need you to shell out a cent nor to open-source your proprietary code.

Like, it was certainly a very shitty move given how much they make but if fucking Tesla managed to use the LGPL Qt in their car dashboard, surely your app can do it too