How much cost Qt for Indie developers ?
-
LGPL explicitly permits reverse engineering of your software, if I recall.
Here's the deal: there's nothing stopping somebody from reverse engineering your software anyway. It's just that the LGPL specifically addresses this. RE of software is murky at best. It's not something I would be that concerned with, since it's not something you can prohibit a user from doing.
-
Hi,
Yes, small / indie licenses are pretty common and we do know that there is a need for them. As far as I know they are still hammering out the details of the license (exactly those "$X revenue, Company size Y" sort of things), but we should have something in the near future.
Reverse engineering is a long and complex topic. Clean room reverse engineering is legal, but most organisations do not have the required resources to engage in it (it is hard and complicated to prove that you worked in a clean environment). So in practical everyday use the term to my understanding has come to mean non-clean reverse engineering approaches, which for commercial code can be denied in the license. (I'm definitely not a lawyer, so if you really want to know, find a good software lawyer and ask)
Also as a side note to the older posts, the commercial Qt licenses have traditionally been targeted at larger organisations, who in some cases (whatever their reasons be) do want the limitations and protection of a commercial license.
-
Hi
So I see this conversation started quite some time back but your latest comment at the time of writing this is less than 3 weeks ago. Does this mean that "Indie licencing" or similar is being revisited with a fresh offering as the blog post I came across seemed to suggest that it had been tried and then abandoned?Re: http://blog.qt.io/blog/2015/07/06/indie-mobile-available-until-aug-31st/
-
So Qt pricing has "improved" from a "one time 6000 euro" to "4200 euro annually". Wow, just wow...
As for the LGPL license, and the ability of well paid lawyers to interpret things, it seems that while "small fishes" will probably be relatively safe using Qt under LGPL, any well selling app's author will be maliciously prosecuted by a pack of lawyers. Because reality check - if you can't afford 4200 euro annually for Qt, you definitely won't be able to afford good defense in court.
As others have already noted in this thread, the model where developers have full freedom and their minds at ease, and Digia just gets like 10% of the author's app sales. That seems fair enough.
At any rate, current Qt pricing is preposterous and absolutely not justified. Get in touch with reality. Qt is pretty much the "best" tool in its category (C++ application dev frameworks), but it is far from great objectively speaking. There are a lot of missing features, there are a lot of features which work backward, there is a lot of feature duplication, bloat and inefficiency, and there are a lot of bugs. It runs perpetually behind schedule, and even bugs which people bothered to report remain unaddressed for years, even if they are highly voted by the community.
Also, it begs the question, if Qt pricing is now on a per-month basis, does this mean I can purchase Qt for a month, make an application with it in a month, then stop using and paying for Qt and keep selling the app I made in that one month? Or you have to pay for Qt even if you don't use it in order to be able to sell the stuff you made with it?
As for why I think the pricing is not justified - that can easily be illustrated by means of comparison. In this particular case, I chose a popular content creation suite's subscription plan - Adobe Creative Cloud. It is a suite of applications for creating a wide range of content - audio, video, raster, vector, application and web development, and a bunch of other features, plus content and cloud storage - and all this for 60 euro a month - about 1/6 of the price of Qt, capable of doing about 6 times as much as Qt...
-
Hi,
As part of yesterdays license update information, we did announce a license for small business use. The details are still being finalised, but it definitely will be on a completely different price level than the pro licenses.I can relate with the annoyance of us having not had a license for the small business segment, but it is not a simple thing to try and cater to every possible part of the market. So far it has made most sense to have pro licenses for big companies, while at the same time remember our open source roots. Now we should have everything in line to cater to small companies and start-ups too.
-
@iter I'm under the impression that the price would be about one magnitude lower than the current pro licenses, but I really am not involved in those talks. Anyway something that is much more in line with small companies / indie developers expectations.
-
@janfaroe said:
"As long as you don't modify Qt and don't statically compile, you're good to go."@sierdzio said:
"With LGPL: ... You have to ..."IANAL, but I do not believe that this information is complete and totally correct.
Part of the Qt LGPL states (from http://www.qt.io/FAQ/):"The user of your application has to be able to re-link your application ..."
"... the user needs to be able to run the re-linked binary ..."You cannot run your linker to link an updated or modified application with just the copy of your "commercial" exe file and any Qt dll lib files, so you must distribute complete obj files of your application source code. It does not say "re-compile the Qt dll", it says "re-link your application". There is no other way to interpret this license statement.
It goes on to state:
"It is your obligation to provide the user with all necessary tools to enable this process."
"... this includes making the full toolchain used to compile the library available to users."So you cannot just give the end user your commercial application exe file, the Qt dll(s), and the Qt source code.
You must include obj file(s) of your application source, all Qt source, plus all of the tools to re-compile and re-link a new modified exe and dll(s).It also states that you must include all of this content in your software package or on your own hosting site address, you cannot simply provide the end-user with an Internet link to www.qt.io to the source code and tools.
"... a link to the source code provided by the Qt Project or Qt Company is not sufficient."If this is not true, then all of the wording of the LGPL license is incorrect.
Bottom line, it isn't as easy and straight-forward as you may think... -
Hi, and welcome to the Qt Dev Net!
@DRGreen said:
You cannot run your linker to link an updated or modified application with just the copy of your "commercial" exe file and any Qt dll lib files, so you must distribute complete obj files of your application source code. It does not say "re-compile the Qt dll", it says "re-link your application". There is no other way to interpret this license statement.
IANAL too, but I don't think the linker is required if you use dynamically linked libraries. With the latter, linking occurs when you launch the application, just before it starts running.
For example, let's say I downloaded a program that was built against Qt 5.5.0. I want to re-link it against Qt 5.6.0 for some performance improvements. All I need to do is replace the Qt 5.5.0 DLLs with Qt 5.6.0 DLLs. Then, the next time I launch the application, it will automatically link against the new DLLs. I do not need to modify the original .exe.
-
@JKSH - Hi and thanks.
I do agree with your statement:
"the next time I launch the application, it will automatically link against the new DLLs."
But this is not what the license states.Sorry, I don't mean to split hairs, but in my 35+ years of software development I have never heard of dropping in new DDLs referred to as "re-linking your application", which is how it is stated in the license.
The license specifically says, the end user must be able to re-link your application.
It does not say, your application must be able to link against updated or modified DLLs.If the DLLs are replaced with another compatible DLL build version, upon execution the application "links the new DLLs" (loads and maps them into its address space), the updated DLLs do not "re-link the application".
The only way to "re-link the application" is to use the linker on the application obj files.I can give you Internet links to millions of websites regarding using DLLs and all of the terminology agrees with what I wrote. So this is what I understand the Qt license to mean, and why I never use open source DLLs with a commercial executable.
"One advantage of DLLs is that you can change and enhance them without forcing all the applications that depend on them to be relinked or recompiled."
The use of "relinked" in this example phrase means "re-linking the application obj files", and Qt's license specifically says exactly that, "re-link the application".If Qt actually means something different in the license, it would be nice if they clarified it.
Thanks. -
If Qt clarified their license, and if in fact it was possible to use the open source version of Qt in a commercial application, so long as:
- The developer linked the Qt DLLs dynamically (vs static linking).
- Made the Qt source code available for download on their own website.
- Included a Qt copyright in their application About dialog.
Then there would be virtually no reason for Qt to have to come up with a less expensive small developer subscription, as the only main difference between the free open source license and expensive commercial license would be dynamic versus static linking.
However, the "re-link the application" statement in the license is too obscure to make me ever consider using the open source version in a commercial application. And to me, this statement does not mean what some others here believe it means.
edit
Or change Qt from LGPL to the MIT license. -
Has there been any more news about the startup licensing?
I would love have the option to use Qt on my projects, but $420/month is just not a justifiable outlay for a one-man-band - we're talking about software that has yet to make me any money at all. That's a big gamble, especially since you can't start development under LGPL and go commercial later.
It's obvious a lot of people would rather pay for Qt than deal with the hassle of the LGPL. I'm willing to pay for tools - but at $5k/year, Qt commercial is currently not an option.
-
So, does this mean that if I provide object files, allowing the end user to recompile and relink, I can use a static Qt build and just forget about the deplymend/dependency hell that Qt is with dynamic linking?
It is sad to see that the management takes Qt in a direction that makes its free use less and less convenient. While surely - corporate greed ain't nothing new, this will eventually be Qt's undoing. Right now they are enjoying having an easy time milking Qt, only because there is no direct competitor, but this won't last forever, and when a competitor pops up, users will remember this lowly behavior even if then management is forced to improve Qt for free use.
-
@DRGreen said:
Sorry, I don't mean to split hairs, but...
No worries; this is sometimes necessary, after all :)
The only way to "re-link the application" is to use the linker on the application obj files.
I can give you Internet links to millions of websites regarding using DLLs and all of the terminology agrees with what I wrote.
...
to me, this statement does not mean what some others here believe it means.I see your point, and after a bit of Googling I agree that your definition of "re-link the application" is currently the common one.
However, reading the license again, it seems to me that allowing users to re-link is simply one of the ways to achieve LGPL compliance. See the full license text: http://doc.qt.io/qt-5/lgpl.html
What you've described sounds like section 4.d.0 of LGPL v3. The license says you must do 4.d.0 OR 4.d.1. (The equivalent sections in LGPL v2.1 are sections 6.a and 6.b). The full text of 4.d.1 is
"Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version."
So, in other words, if you use shared libraries (dynamic linking), then you are not obliged to allow users to re-link the application. Would you agree?
the "re-link the application" statement in the license is too obscure to make me ever consider using the open source version in a commercial application.
Above, we've seen that you are required to allow re-linking OR use shared libraries, but not both simultaneously. Does this change anything for you?
the only main difference between the free open source license and expensive commercial license would be dynamic versus static linking.
That's definitely not the only difference. The commercial licenses also offers:
- Access to official, timely support
- Prioritized bug fixes
- Access to extra modules*
- Access to extra tools*
- Access to extra software stacks
- For reduced time-to-market
- Access to Qt on extra platforms
- Permission to statically link against Qt in proprietary applications
- There was a time when this was needed because Apple disallowed dynamic linking, meaning that developers couldn't use LGPL Qt in a proprietary iOS app.
- Permission to modify Qt without releasing the modifications
- No requirement to provide Qt source code and the tools/instructions to build it
- No requirement to even mention that Qt was used at all
- Peace of mind^
^ Large corporations are funny beasts. Some need to buy a license, even if the library is in the Public Domain (meaning that the library authors already gave everybody full freedom to do whatever they want with the library, with no restrictions whatsoever).
* Things will change slightly in Qt 5.7. Modules that used to be only available to commercial customers will be open-sourced too, but only under the GPL which is unambiguously disallowed in proprietary applications.
-
@edmundmk said:
Has there been any more news about the startup licensing?
Not that I've seen, I'm afraid.
@edmundmk said:
That's a big gamble, especially since you can't start development under LGPL and go commercial later.
You can't? Why not?
@iter said:
So, does this mean that if I provide object files, allowing the end user to recompile and relink, I can use a static Qt build and just forget about the deplymend/dependency hell that Qt is with dynamic linking?
I'm not sure, but I think if you use static linking you must provide the source code for your whole application too. Have you tried reading the license?
@iter said:
It is sad to see that the management takes Qt in a direction that makes its free use less and less convenient.
What do you mean? There have been no major changes to licensing requirements since 2009... May I ask how has it become less convenient for you recently?
-
@edmundmk said:
Has there been any more news about the startup licensing?
Just a bit more patience please. We are in the final stretch for Qt 5.6, and that is taking up everyone's time.
I would love have the option to use Qt on my projects, but $420/month is just not a justifiable outlay for a one-man-band - we're talking about software that has yet to make me any money at all. That's a big gamble, especially since you can't start development under LGPL and go commercial later.
Well, if you start development now before we have the small business/indie license out, and then ask The Qt Company sales really nicely, they probably will be open for discussion. It is a special situation as the small business/indie license will be a new product.
-
@iter said:
So, does this mean that if I provide object files, allowing the end user to recompile and relink, I can use a static Qt build and just forget about the deplymend/dependency hell that Qt is with dynamic linking?
With a commercial license, yes. When on an open source license, static linking means you would be using GPL and thus would have to provide your source for anyone who asks.
It is sad to see that the management takes Qt in a direction that makes its free use less and less convenient. While surely - corporate greed ain't nothing new, this will eventually be Qt's undoing. Right now they are enjoying having an easy time milking Qt, only because there is no direct competitor, but this won't last forever, and when a competitor pops up, users will remember this lowly behavior even if then management is forced to improve Qt for free use.
Let's get back to basics. Qt from it's start has been dual licensed.
If you do not want to contribute to the community, you have the option of getting a commercial license and doing whatever you want with no need to think about providing object or source files, static or dynamic linking.
If you don't want to pay for a commercial license, then you can contribute to the community in the normal open source way.
The convenience of free use has not gotten any harder since Qt became available under the LGPL and GPL licenses, and that is ages ago. Those licenses change as times change, Qt now followed the times with adopting version 3 of those licenses. The changes are not fundamental, except for people making embedded devices, then you need to read the GPL and LGPL license carefully with a lawyer.
-
Thanks for the swift replies, I am really looking forward to having the option of Qt!
Not sure I'll actually take the plunge as usually my brain forces me to write things from the ground up no matter what, but as far as cross-platform widget libraries go I really don't think there is a better one out there.
Qt was really invaluable when I was using it a couple of years ago on an internal tool - achieving what I did without it would probably have taken five times as long.
-
@edmundmk said:
Has there been any more news about the startup licensing?
Not long now! http://blog.qt.io/blog/2016/03/08/qt-start-ups-awesome/ Introductory price of $49 per month.