PDA

View Full Version : How to safely distribute under LGPL



mchome
4th October 2012, 10:35
I would like to distribute under LGPL a free program created using Qt.

To be sure about my (and my users') obligations I've read carefully the following:
http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html

My program (let's call it "program") is constituted by:
"program.exe", "Qtsvgd4.dll", "QtGuid4.dll", "QtCored4.dll"
So I plan to distribute all these four files.

According to point 0, second paragraph of LGPL the dll's are "libraries"
So, according to point 4 of LGPL, I understand that in case they are distributed also their source code must be distributed, even though no modification on them has been done.

Did I understand well? It looks a bit strange to me.

In case I understood correct, I get into troubles:
1) where can I find the source code of the libraries?
2) how can be sure that I'm able to understand all the pieces of code (i.e. all files) that are required as the "source code" of the dlls??


I thank in advance anyone that wants to comment on this.

wysota
4th October 2012, 17:02
According to point 0, second paragraph of LGPL the dll's are "libraries"
So, according to point 4 of LGPL, I understand that in case they are distributed also their source code must be distributed, even though no modification on them has been done.

Did I understand well? It looks a bit strange to me.
If you read the whole point then you'll notice this:


If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.

... which means that if the library is freely available for download, including its source code, it's enough if you state where it can be downloaded from.

And Qt's source code can be downloaded from qt-project.org

mchome
5th October 2012, 07:36
Ah,
so it is true that source code must be put at the disposal of the users.
I imagine the rationale behind this is that the final user in principle should be allowed to modify the Qt libraries I've used and still interface my program with them.

However, to abide by the rule exactly, it seems that it is not sufficient to just add a link to the Qt-project.org site. Indeed the sentence you quote says that the source code must be available "from the same place" in which I put my program.
I imagine the rationale behind this is that since Internet sites change, the rule somehow guarantees that either both my program and the libraries source code are available (when my site is up) or unavailable (if it is down). This somehow guarantees protection against the case that my site is up and the site where the libraries source code reside (if different) is down or even cancelled.

But I get your suggestion as an indication of how commonly people deal with LGPL. Do you intend this? I mean you think that normally people just add up a link to
http://qt-project.org/downloads
explaining that from there the final user might retrieve the full source code of the Qt libraries?

Thanks.

wysota
5th October 2012, 08:01
Ah,
so it is true that source code must be put at the disposal of the users.
That's usually the meaning of "Open Source" :)


I imagine the rationale behind this is that the final user in principle should be allowed to modify the Qt libraries I've used and still interface my program with them.
Yes.


However, to abide by the rule exactly, it seems that it is not sufficient to just add a link to the Qt-project.org site. Indeed the sentence you quote says that the source code must be available "from the same place" in which I put my program.
No. It has to be available from the same place the LGPL component come from.


I imagine the rationale behind this is that since Internet sites change, the rule somehow guarantees that either both my program and the libraries source code are available (when my site is up) or unavailable (if it is down). This somehow guarantees protection against the case that my site is up and the site where the libraries source code reside (if different) is down or even cancelled.
If I remember correctly the licence requires you to keep (and publish) the source-code of the LGPL component for something like three years. I don't remember whether this applies to the publisher of the LGPL component or to you as the author of the dependent work. I'd guess that rather the former is true.


But I get your suggestion as an indication of how commonly people deal with LGPL. Do you intend this? I mean you think that normally people just add up a link to
http://qt-project.org/downloads
explaining that from there the final user might retrieve the full source code of the Qt libraries?
Look at it this way -- many many many commercial projects in the world use LGPL components. Have you ever seen source code for any LGPL component accompany binary of any game or complex program you installed on your machine?

mchome
5th October 2012, 17:22
Thanks again,

The reason why I try to go deep into the LGPL is that I will distribute my program just to help someone in their everyday life, and for free.
Therefore, I would be very annoyed should I be brought to trial because I violated some of the LGPL rules!

Fore instance, the more I read the second paragraph of point 4 of the LGPL, the more I get convinced that I cannot deliver some Qt dlls (such as QtGuid4.dll) on my site without keeping on that same site the Qt source code

Looking at the qt-project.org/downloads site I've seen that indeed the thing is rather easy: it seems just a matter of downloading the relevant tar.gz (223MB) from there and putting a copy on the site in which I will put my program, consisting of my .exe and some Qt dlls.

It is not also a bad idea to look at what the others do (as you suggest.)
Indeed I don't know where to look at. I searched my OpenOffice.org suite, but I did not find any reference to GPL.
I have another program that I use for my research activity called OpenModelica (from OpenModelica.org), and indeed they offer the program source code from their site.

So, in case we guys that create Qt programs under LGPL and distribute them by an Internet site, the better way to stay safe from potential licensing problems, and still not create problems to our final users, is to enclose in our distribution package the Qt dlls, but also add somewhere near, in the same Internet site, that file
qt-everywhee-opensource-src-4-8-3-tar-gz
from qt-project.org.

This is still a bit tricky. For instance for those as myself that use the latest Qt SDK (1.2.1), there is the problem that the enclosed libraries are 4.8.1, while the source code on the qt-project.org site is version 4.8.3, so we should first upgrade, or wait for the next SDK release and fetch from the Qt-project site both SDK and Qt libraries.

Sorry for this long message!

wysota
7th October 2012, 16:55
The reason why I try to go deep into the LGPL
A short and definite answer to this is "go and ask a lawyer".


Therefore, I would be very annoyed should I be brought to trial because I violated some of the LGPL rules!
And who would bring you to trial?


Fore instance, the more I read the second paragraph of point 4 of the LGPL, the more I get convinced that I cannot deliver some Qt dlls (such as QtGuid4.dll) on my site without keeping on that same site the Qt source code
Then keep a copy of Qt's source code if that makes you feel safe :)


Indeed I don't know where to look at. I searched my OpenOffice.org suite, but I did not find any reference to GPL.
There is a difference between GPL and LGPL. Just to name two, go and search on Google Earth as it uses Qt or search on Skype site as Skype for Linux uses Qt.


I have another program that I use for my research activity called OpenModelica (from OpenModelica.org), and indeed they offer the program source code from their site.
A source code of their program or the source code of all libraries they use?

mchome
7th October 2012, 22:11
A short and definite answer to this is "go and ask a lawyer".

This is what I most want to avoid. First of all, because one should search for a lawyer specialised in these matters, since not all of them understand IT terms and concepts such as source code, dlls, static and dynamic linking, libraries etc.
Secondly, because, I fear, the cost of the operation could be comparable to buying a commercial license of Qt. Last (but not least) because it would make me lose a lot of time in things that I'm not fond of.
I understand that yours was probably just a paradox, since is rater paradoxical to go and consult a lawyer just to be able to distribute some work made in spare time, and for free!!


And who would bring you to trial?

Well.. I don't know. I can imagine anyone of the hundreds of people that have worked in writing the Qt libraries, or Digia itself, or... I don't know, indeed.

There is a difference between GPL and LGPL. Just to name two, go and search on Google Earth as it uses Qt or search on Skype site as Skype for Linux uses Qt.
I was a bit too rapid in writing my sentence. I know the difference, even though for Qt (that is licensed under both GPL 3.0 and LGPL 2.1) I feel more comfortable with LGPL, just because I understand a bit better the meaning of it.

Thank you for this information about Google Earth and Skype. I will sure check the corresponding sites to verify how two so relevant pieces of software deal with this matter of licensing from GPL or LGPL. However they might have used the commercial version of Qt that is a totally different story.


A source code of their program or the source code of all libraries they use?
Ah, yes,I did not verify this (I will).

Thanks again for your valuable information and suggestions.

wysota
7th October 2012, 22:23
This is what I most want to avoid. First of all, because one should search for a lawyer spiacialised in these matters, since not all of them understand IT terms and concepts such as source code, dlls, static and dynamic linking, libraries etc.
Secondly, because the cost of the operation would be comparable to buying a commercial licenseof Qt.
Let's make one thing clear -- you want to distribute your program under LGPL or use Qt under LGPL? You don't have to make your app LGPL to use Qt/LGPL.


Last (but not least) because it would make me lose a lot of time in things that I'm not fond of.
But it would make you more or less certain about a proper approach to take.


I understand that yours was probably just a paradox
No, I'm dead serious. GPL/LGPL is very complex when it comes to interpretation and many lawyers understand some parts of those licences differently. Thus it is important that you get proper law advice if you really have doubts.


since is rater paradoxical to go and consult a lawyer just to be able to distribute some work made in spare time, and for free!!
I would say that what you are currently doing here is also nonsense. Just write your app and publish it.


Well.. I don't know. I can imagine anyone of the hundreds of people that have worked in writing the Qt libraries
No, they can't do that.

or Digia itself
They could but the effort of doing it would not be compensated by shutting down your app unless you did something horribly wrong (like claiming you have the right to sell Qt).