Hacker News new | ask | show | jobs
by lultimouomo 3666 days ago
That sounds like FUD* - Qt's LGPL is LGPL without modifications, so it does not have any quirk. Is it written in the commercial license that you cannot buy it if you have used the LGPL license?

* Not accusing you of course; I'm totally convinced that it can come from a misguided sales rep trying to close a deal as early as possible.

3 comments

I found the applicable text: https://www.qt.io/terms-conditions/

*NOTE: If Licensee, or another third party, has, at any time, developed or distributed all (or any portions of) the Application(s) using an open source version of Qt licensed under the terms of the GNU Lesser General Public License, version 2.1 or later (“LGPL”) or the GNU General Public License version 2.0 or later (“GPL”), Licensee may contact The Qt Company via email to address sales@qt.io to ask for the necessary permission to combine such development work with the Licensed Software. The Qt Company shall evaluate Licensee´s request, and respond to the request with estimated license costs and other applicable terms and details relating to the permission for the Licensee, depending on the actual situation in question. Copies of the licenses referred to above are located at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html, http://www.gnu.org/licenses/lgpl-3.0.html, http://www.fsf.org/licensing/licenses/info/GPLv2.html, and http://www.gnu.org/copyleft/gpl-3.0.html.

So really the questionable term isn't an additional term on the LGPL, it is on the commercial license.

That is very interesting. Note that they are not precluding you to switch, but they do reserve the right to sell or not sell to you the commercial license after you've used the LGPL. It sounds like an empty threat to me (if you talk to the sales rep and say "I have an internal prototype and I would like to buy the commercial license to finish and distribute it", will they say no?), but one should definitely consider this before choosing to try the LGPL version for early product development.

I think this is mostly meant to avoid having a team of 50 develop an internal version based on LGPL, and then a team of 1 maintain the commercial version, paying a single developer seat.

Note that you can still do a throw away prototype without problems. Some say you should in any case!

It's not an empty threat so much as it's an opportunity for them to gouge you later when your product is already highly dependent on their product.
Qt-as-the-company has always made it very clear that you can't switch your Qt LGPL/GPL project to a commercial one if you didn't start with the commercial Qt license from the beginning.

You're right, it does sound a bit nasty. No, I haven't read the license myself. It's been brought up multiple times on official Qt blog comments and mailing lists, though.

Edit: checked it now, and it's clearly written at https://www.qt.io/faq/, "Developing with a Commercial License":

> Q: 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?

> A: 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.

It's not standard and it's not pleasant to most ears, but I think over the last 20 (!) years of development the Trolltech guys have tried to make sure they could advance Qt and make a living doing it. I respect that a lot.

OSS was a completely different animal back when this thing started. And it was forward thinking to avoid the whole problem with people demanding free support and bugfixes for open-source code.

Not saying that this is wrong, just that it's no wonder if they think this to be FUD if one isn't familiar with the rule.

As for the reasoning, a customer developing their product for years in-house and switching to commercial just before releasing would definitely place Qt financing in a shaky ground when compared to traditional commercial frameworks.

At my last company we had this situation. But they are more than happy to sort this out for free if you take a license for the next 2 years.
Good to hear!
It would be nice if they had some form of migration publicly stated. For example something like this:

If your project decides to go commercial the initial license term will include a cost of conversion based on the quantity of code already written.

It would be interesting if they expressed that rate as something like:

A gz -1 compressed tarball of the affected source code will be created, the size (in bytes) multiplied by X is the maximum fee we would charge for retroactive licensing.

I choose the wording 'maximum' there as it still allows them to offer better deals under other circumstances.

I imagine they have sales guys. If you have a meaningful amount of money to spend they will talk to you. If not, don't use their LGPL code in a proprietary product.

Qt is not an end-user, boxed product. This may shock you, but B2B software doesn't always have a public, standard price list.

Shock, no; sadden and drive me to other ventures yes.

My rule of thumb for pricing is that if someplace /makes you ask/ they aren't going to sell at a price you'd find worthwhile.

And their rule of thumb is that you aren't worth the sale. Bespoke software is not a bulk commodity. They have a free product. If you're going to be a cheapskate, use it.

The notion of charging by byte, as if software were content farming, shows that you are obviously not a professional.

The LGPL thing is not really the issue here. It's how Trolltech/Nokia/Digia/QtCo approached the payment of a commercial license.

It's always been explained to me by the sales people that "you cannot switch licensing models mid-stream". So if you're planning to go commercial, you start commercial.

It's not really about closing the deal as much as making sure the Trolltech developers were paid during the time you needed their support.

> It's not really about closing the deal as much as making sure the Trolltech developers were paid during the time you needed their support.

The OSS license doesn't grant you any support from Trolltech, does it?

Of course not. But I could totally see Trolltech getting critical bugfix requests from people "promising" to pay the commercial license once they launch.

I would totally understand the response eventually turning into "yeah, we'll fix your bug, but put your money where your mouth is", which is where they are today.

But do you even need a commercial license to sell your product commercially? It's LGPL, so surely you can just keep the Qt library LGPL. If you're not changing anything at all in Qt (and you really shouldn't be...), and you don't care about getting support (the docs are good enough for you), then why do you need a commercial license at all?
There are still some cases where you need a license, like Qt for Device Creation (https://www.qt.io/qt-for-device-creation). Or perhaps you need static linking, or want to include some Qt code in the app proper for one reason or another.
Ok, but if you stick with dynamic linking and don't insert Qt code into your app, then you don't need a commercial license, right? Why would you insert Qt code in your app anyway? That kinda defeats the point of using a library. As for static linking, why would you opt for this over dynamic linking anyway? Dynamic linking is better since other applications can share the libraries. Static linking on a PC platform is basically a hack for poor library management.

As for Qt for Device Creation, I looked through that and didn't see why you'd need a license there, unless they're selling optional components or plug-ins which are not LGPL licensed (which appears to be the case with things like "Qt Quick 2D Renderer" and "Qt Virtual Keyboard").

I even tried out the questionnaire at www.qt.io/download: if you select "Commercial deployment" for development and then say that you're doing dynamic linking, don't have any concerns about reverse-engineering, and can comply with the LGPL, it recommends you use the open-source LGPL'ed version.

Just listing some possibilities, different projects have different needs. Sure, for most of the cases the dynamically linked open source version works just fine.

Qt for Device Creation needs a license, that one is not available as LGPL. Of course you can use the open source Qt yourself for that, but then you'll be facing a lot of platform work to get Qt running on your device before even starting with the stuff that you actually want to build.

You can statically link LGPL. Your only obligation is to provide object files so that customers can relink.