PDA

View Full Version : Things to inlcude in an LGPL distribution



The physicist
7th January 2011, 10:53
I know the board can't give legal advice, so I hope my question doesn't really need a 'legal advice' type response.

I have written a simple program that may be of use to other people in my field. I am not interested in trying to get a fee for its distibution. From reading the LGPL license, and from reading other posts on this board, does the following sound about right for what I need to gve a third party if they want to use my program:

1) A copy of the executable
2) The dll files (QTcore4.dll, etc)
3) A copy of the LGPL 2.1 license
4) The .o files
5) A link to where to get a copy of QT, should they want to rebuild the program with updated QT libraries

I'd rather not distribute my source code, not that it is 'top secret' or particularly original, but I don't want other people to simple copy it and take credit for it. The majority of the code was written in 'normal' C++ originally (using CodeBlocks), and I've just used QT to build a gui for it (effectively), so I don't believe I have modified the QT libraries.

Thanks in advance (if you can help).

Lykurg
7th January 2011, 10:59
You don't need 4 if you dynamically link (which you do, bacause of 2)
Further if you have somewhere a copyright notice that the program belong to you, you have to put a statement there that you use Qt and name the copyright for it.

The physicist
7th January 2011, 12:00
You don't need 4 if you dynamically link (which you do, bacause of 2)
Further if you have somewhere a copyright notice that the program belong to you, you have to put a statement there that you use Qt and name the copyright for it.That's great, thanks. So if I was to put a statement something like

"Copyright Me 2011

Developed using QT v4.x Copyright Nokia 2011"

or similar, would that cover it?

wysota
7th January 2011, 12:25
I think you don't need "3" as well unless you publish your application under LGPL. You only need to state in your docs (or in your program) you're using Qt under LGPL. Qt's "AboutQt" dialog can probably be used for that.

Lykurg
7th January 2011, 12:44
Ok, puzzeled again. The v3.0 clearly says you need to provide a copy of the license. In v2.1 I don't find that term, but in the "how to apply" they write
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Since the text is so small I would include it somewhere, just to be sure. But as always: Ask you lawyer if you have to:D

The physicist
7th January 2011, 12:53
Ok, puzzeled again. The v3.0 clearly says you need to provide a copy of the license. In v2.1 I don't find that term, but in the "how to apply" they write
Since the text is so small I would include it somewhere, just to be sure. But as always: Ask you lawyer if you have to:DOh, there's a v3.0 now is there! :o

To follow on from wysota, is the inclusion of the LGPL license soley for the distribution of the QT dlls with my program? And then, if I don't want to distribute my program under LGPL, I can just apply a copyright statement?and distribute it as is?

I shall try and seek legal advice anyway, and if I get a useful response, I shall let you all know...

squidge
7th January 2011, 13:05
I'd probably create a text file called 'licenses.txt' or similar and inside state something like:

'QtCore4.DLL, QtGUI4.DLL, ... <the entire list of DLLs you use from Qt>' are Copyright (C) 2011 Nokia. Used under license. See LGPL_License.txt for further information.'
'MyApp.EXE is Copyright (C) 2011 Me, and is licensed under the Beerware license. See Beerware.txt for further information'

Something like that should stop all ambiguity, but of course I'm no lawyer, so don't take this as legal advice.

wysota
7th January 2011, 13:14
Ok, puzzeled again. The v3.0 clearly says you need to provide a copy of the license. In v2.1 I don't find that term, but in the "how to apply" they write
Since the text is so small I would include it somewhere, just to be sure. But as always: Ask you lawyer if you have to:D
I always hate when someone uses the word "should" in a legal or otherwise formal document.


To follow on from wysota, is the inclusion of the LGPL license soley for the distribution of the QT dlls with my program?
Yes.

And then, if I don't want to distribute my program under LGPL, I can just apply a copyright statement?and distribute it as is?
We're not sure. You can dump a copy of LGPL (in English) somewhere in the archive just to be sure. It won't hurt.


I shall try and seek legal advice anyway, and if I get a useful response, I shall let you all know...
Just be aware that the number of interpretations of (L)GPL is more or less equal to the number of lawyers interpreting it.

The physicist
7th January 2011, 16:06
Thank you all for your help.

In practice, how does the dynamic linking actually work - If the dlls are updated, can the old ones simply be replaced with new ones, and the same executable will work with them?

squidge
7th January 2011, 16:36
If they are released as binary compatible (eg. minor versions), yes. There is no need to recompile or relink the application.

wysota
7th January 2011, 18:06
At least in theory ;)

The physicist
8th January 2011, 23:09
Thanks again squidge and wysota.

Is there anything in the QT LGPL licensing that says it can't be used by companies/organisations? Or is it literally just for the distribution/modification of the libraries? I'm guessing you both have corporate licenses and don't have these problems :D

Lykurg
8th January 2011, 23:32
It is the LGPL, not the "Qt LGPL". So Qt can be used as any other library that is licensed under the GNU LGPL, to name it correctly. And the LGPL is just about how to use/modify it and does not say anything about who use it. So there is no limitation in that point.

The physicist
9th January 2011, 12:08
So, (in theory) my program should run with updated dlls. :)

In practice, how would someone relink my application without my source code if I supplied them the object files? This http://www.cis.temple.edu/~ingargio/cis71/ta/objectlib.html (explanation) makes sense from a command line point of view, but I'm not sure how you would do it with QT :confused:

Lykurg
9th January 2011, 13:15
how would someone relink my application without my source code if I supplied them the object files?

By simply replacing the Qt dll's with his own/modified ones.

The physicist
9th January 2011, 13:17
By simply replacing the Qt dll's with his own/modified ones.Oh, that simple :D

squidge
9th January 2011, 13:37
The object files would only be needed if you statically linked, then its upto them how to relink them to create a new executable. No one will bother, but at least you complied with the license by giving them the option.

Of course, object files are not necessary (even legally) for dynamically linked builds as you can just change the DLL.

The physicist
9th January 2011, 14:47
Thanks once again guys.

Not that I plan on moving to MS Visual Studio, but how does anyone know how the licensing works with applications developed with that? Is it the same as with the commercial license of QT?

wysota
9th January 2011, 15:22
A licence is a licence. It doesn't matter what tools you use. LGPL doesn't care. It only says about redistributing the licenced component.

The physicist
10th January 2011, 14:25
I was just thinking about 'what' libraries are actually 'QT' libraries. The libraries in my project are:

libgcc_s_dw2-1.dll
mingwm10.dll
QtCore4.dll
QtGui4.dll

I assume that the QT libraries are definitely part of the LGPL licence, but are the mingw and libgcc ones? They all came out of the QT installation folder...

wysota
10th January 2011, 14:29
libgcc_s_dw2-1.dll
mingwm10.dll

I assume that the QT libraries are definitely part of the LGPL licence, but are the mingw and libgcc ones? They all came out of the QT installation folder...

http://www.mingw.org/license
These are the "MinGW runtime".

The physicist
10th January 2011, 15:07
The MinGW base runtime package has been placed in the public domain, and is not governed by copyright. This basically means that you can do what you like with the code.
I couldn't find an explicit list of the dlls that belong to MinGW runtime, but the above licensing statement is pretty flexible!

wysota
10th January 2011, 15:10
mingwm10.dll is the runtime. libgcc_s_dw2-1.dll probably falls under the same licence GCC does (which I think is LGPL) but it's possible it's part of the runtime too.

Lykurg
10th January 2011, 15:25
Only QtCore4.dll and QtGui4.dll are Qt libraries, and thereof LGPL. The others are from mingw. They have their own license.
But as far as I know you can deploy them (unchanged) freely without any restrictions.

EDIT: Uh, there was a second page... :D