Constrains of LGPL of Qt
Hi, I am a new user of Qt & I have some questions regarding the Qt's LGPL license.
Now, so far what I know Qt (LGPL) is allowed to be used in commercial product, as long the Qt libraries are linked dynamically. Is it right?
I have read some wiki articles and google about it, and what I have come up with is that, if you need to provide the dll files with the application then, those dll files are dynamically linked. That means, if I use Qt in any commercial app, where I need to provide dll files of Qt, then I can use the LGPL license, which is free. Is it right?
These licenses details are so hard to get into. :(
edit: fixed QT -> Qt (mariusg)
That is also my understanding (both questions).
The point here is, that only a Lawyer can answer it correctly. Perhaps the videos from the DevDays help yopu understanding all this: "DevDays about LGPL in Qt":http://developer.qt.nokia.com/elearning/watch/making_the_licensing_decision_lgpl_vs._commercial
Thats true that a lawyer is need to understand license terms in general. But, @iamcreasy, i think you have understood it correct. You can create your app using Qt linking dynamically under LGPL terms. Of course, if you make changes to the source code of Qt, you need to also release the code of those changes.
But, What are the commercial licenses that allows 4 "Freedom", when releasing commercial product using QT(LGPL)?
As I understand, you can buy a commercial license from Qt and get commercial support, patches etc.. like we do in our company. You can also make commercial apps using Qt for free with the LGPL license. But if you use some 3rdparty libraries which are not LGPL and instead GPL, then again there are some additional things you might need to do. What do you mean by
bq. allows 4 "Freedom"?
in the video that @Gerolf mentioned, they(qt) says, the commercial product that you are gonna release using QT(LGPL) must allowed to be modified by the recipients.
(13 Min of the video)
LGPL section 6 requirement , that "Terms permit modification for customer's own use & reverse engineering for debugging such modifications."
So, what are the commercial licenses that allows this terms?
I think we need a laywer now :) I haven't seen the video, maybe I should. But my understanding of LGPL is that, you don't have to release your source code (you use Qt with LGPL, your app could just be licensed commercially). But any changes you make to the LGPL code (Qt sources) have to be released publicly, or your customers should receive a copy of the LGPL code on request.
bq. (you use Qt with LGPL, your app could just be licensed commercially)
Yes, but I think 'that' commercial license has to follow some certain rules. Not any regular commercial license are allowed while using QT's LGPL.
or im wrong! :-s
things are pretty confusing!
I think you can use any license as long as you allow the final recipient to switch the LGPL library (or reverse engineer and debug it) to fix any bug that could arise in it (the library). There is also a special LGPL exception granted by Nokia concerning the headers (because they are used directly in your app). What you can't do is modify Qt and not tell anyone (i.e you either have to merge your changes into Qt or provide the sourcecode of your modification).
The commercial license allowes you to modify Qt without telling anybody about the changes, write closed code without giving anybody any source of anything :-)
Just the binaries for money. That's what we do in out company. You only have to state some copyrights in your about texts and handbooks.
bq. LGPL section 6 requirement , that “Terms permit modification for customer’s own use & reverse engineering for debugging such modifications.”
@loladiro that means its about the distributed dll files of QT. Not the application itself.
Yes it only applies to modifications you make to the library and provides the end user with the possibility to fix your version of Qt (the binaries you deploy with your app) should they discover a bug.
That's pretty sweet.
But, why nokia would doing something so open?
Its like using it commercially without any string attached!
Using: Yes as long as you dynamically link it (some companies prefer static linking)
Modifing (and enhancing): Not without contributing back to Qt (which is possibly more valuable to Nokia)
Also, Commercial users still like to buy the priority support.
And by getting many people to use Qt, they can establish it as a de facto standard.
The official answer is here :
Fantastic. Thank you.
This thread should be sticky. I have seen many people questioning about QT's restriction while choosing LGPL.
You could add [sticky] in your title as we do with [solved].
Maybe the trolls will pick it up.
[quote author="Eddy" date="1307995853"]
You could add [sticky] in your title as we do with [solved].
Maybe the trolls will pick it up.[/quote]
Sorry, a sticky will have to be truly exceptional - we try to avoid them as a general thought. Especially in high traffic forums. I think we have 3 stickies in total now.
If you want to information to persist, and you think this forum post isn't a good way to do that, I suggest that you either create a wiki page for it, or attach a good docnote at the appropriate licencing page in the documentation.
ok, point taken.
sorry I suggested it, but at that time it seemed to be a good idea.
[quote author="Eddy" date="1308575977"]sorry I suggested it, but at that time it seemed to be a good idea.[/quote]
Nothing to be sorry about Eddy, we would much rather have too many suggestions than too few :) Thanks!
yeh, a license page with simple Q&A using Laymen term would be a nice addition to the wiki.
I would like to do it. :) In fact the questions and answers are in a perfect order, just copy pasting and rearranging a little will do the job.
Ok, sorry guys. I have to pop this thing up again since I can not afford a lawyer (I would just buy the commercial licence if I could) :-)
If I understand correctly (and thats what this is all about: interpretation :-) I just have to make the changes I made to Qt itself public, bot the source code of my own exe binary?
I made one Qt DLL out of QtCore, QtGui, QtXml and QtNetwork, packed it using UPX and linked my exe dynamically to it. This reduces dramatically the installation package. So is that compliant with LGPL?
[quote author="SamuelTee" date="1311053391"]... I made one Qt DLL out of QtCore, QtGui, QtXml and QtNetwork, packed it using UPX and linked my exe dynamically to it. This reduces dramatically the installation package. ...[/quote]
I do not have an answer to your question, but I have ... two questions for you, from a technical point of view:
a) Can you provide some additional details on how you did this?
b) Will your executable work with the "standard" Qt-dll files?
you can find more information in this link "GNU project ":http://www.gnu.org/philosophy/why-not-lgpl.html
[quote author="SamuelTee" date="1311053391"]I made one Qt DLL out of QtCore, QtGui, QtXml and QtNetwork, packed it using UPX and linked my exe dynamically to it. This reduces dramatically the installation package. So is that compliant with LGPL?[/quote]That big Qt DLL represents clearly a -derived work- work based on the Qt Library, that means you need to provide all the source code needed to rebuild it.
But the LGPL 2.1 (in the preamble which is in plain English or sections 6a & 6c) and LGPL 3 (section 4d0) do explicitly allow static linking, so you might be able to further reduce the size of your application without modifying Qt itself, as long as you provide a way (6a) or just a written offer for that way (6c) to relink your application with a modified version of the library.
Well I just created a new folder under /Qt/src (such as /Qt/src/QtBase) and copied all the stuff from /Qt/src/corelib, /Qt/src/gui, /Qt/src/xml and /Qt/src/network into it (I had to rename some *.pri files to avoid duplicity). After that I created a new pro file for it ... and compiled.
b) No. It will not.
I know that my "single Qt DLL" is a derived work (and therefor I need to provide the above mentioned info). But is my own exe (linked against this derived-"single Qt DLL") also such a derived work or not?
@SamuelTee: This blog post written by our legal council is recommended reading: http://blog.qt.nokia.com/2009/11/30/qt-making-the-right-licensing-decision/. Also check out her detailed answer to the questions in the comments.
Great thread, if I read it correctly then I can use Qt under LGPL in this scenario:
- I modify QtWebkit->QWebPage adding additional public methods, and additional helper classes
- Modified QtWebKit has a dependency on QtXml.dll
- Compile as shared library (e.g. DLL)
- Link commercial app against this modified library
- Bundle in LGPL statement with commercial app, and links to modified QtWebKit source (and whatever else is required in LGPL in terms of notifications, header notices etc)
- DO NOT need to make available the source code for my compiled app.
Did I get that right?
Otherwise if I have an issue with sharing my QtWebKit mods or LGPL forces me to provide source code for my commercial app then I need a commercial license.
Is there a new URL for the "blog post written by our legal [counsel]"? The given URL is no longer valid.