Just to Clarify regarding Open Source and licenses

Started by
4 comments, last by tksuoran 17 years, 6 months ago
Ok... sorry about this, I know there was a big argument on another thread but it didnt really answered my questions. Now... If I start developing something that uses a pure GPL then by the viral nature of this license I am forced to release everything I do as a GPL. That means my entire source including every file required to run it (graphics and sound, unless my code can be run as meant without them). If I use Ogre or wxWidgets however and since they are under the LGPL I can keep my own code under whichever license I choose and I am: a) forced to disclose any and all changes made to their libraries (the libraries are GPL) b) forced to acknowledge their libraries and release them from any responsiblity (they are used as is) c) forced to release my code in a way that anyone licensed to use it can change the LGPL libraries and still use my code. C) is the one that I am most concerned with since Im using wxWidgets in my application. I dont mind at all giving back to the community if I ever change something in wxWidgets and I sure as hell have already inserted "Thanks to Widgets" code in my application. Regarding C) it means that I either use the LGPL libraries as a DLL or if I staticly link to them I have to release my .obj so that anyone can recompile my code. On the other hand libraries like ZLIB are fully free and carry no license unless its the demand that you dont alter the code and keep their notices and copyright. I havent checked but I hope that DX and OpenGL are similar, letting me use them without having to worry about the license. Am i understanding this right? This means that anyone release an application with LGPL libraries should always use the libraries in their DLL form instead of static LIB files (unless he likes shipping OBJ as well).
Pain is Inevitable, Suffering is Optional.Unknown
Advertisement
Your understanding is correct. I will nitpick a few details:


  • You only need to allow linking, not compiling. You can choose dynamic linking by using a DLL or so, or you can choose static linking by combining your own obj and lib with the LGPL library. You can also choose the middle way and provide a DLL wrapper around the LGPL library, which is linked with the library once and then loaded by your (unmodified) program from then on.
  • The libraries are LGPL, not GPL. This means that you still have to release any derived works under the LGPL, but that programs generated by linking with the library are not derived works in the above sense (and other, specific license clauses apply).
  • The "all files necessary to work correctly" is ambiguous. If you were to write a GPL interpreter, you would not be forced to provide scripts that can be run on this interpreter, and you would be free to bundle a GPL interpreter along with non-GPL scripts without this constutiting a derived work of the interpreter (a code file is not a derived work of the compiler or interpreter that reads it). If your program is advertised as a "Video Game", you might have some trouble with this interpretation — if your project is advertised as a "Video Game" running on a GPL interpreter/emulator, you won't.
Thanks mate!
Thats excellent.

I will change my project defs and recompile my widgets libraries as DLLs. That way all anyone has to do is simple replace them if they want to use their modified ones.

Anyways I just realised wxWidgets 2.7 is out so I might as well get the updates and check if everything is still ok.

Thanks
Yours Truly
K
Pain is Inevitable, Suffering is Optional.Unknown
Quote:Original post by BloodWarrior
If I start developing something that uses a pure GPL then by the viral nature of this license I am forced to release everything I do as a GPL. That means my entire source including every file required to run it (graphics and sound, unless my code can be run as meant without them).
That's not quite right - it would be true if you embedded the graphics and sound into the code, but not if they are external files.

I have never heard of the GPL covering external graphics and sound files. Your code will still compile and run after all - it's just that it'll quit rather earlier than expected...

Quote:If I use Ogre or wxWidgets however and since they are under the LGPL I can keep my own code under whichever license I choose and I am:
a) forced to disclose any and all changes made to their libraries (the libraries are GPL)
Correct.

Quote:c) forced to release my code in a way that anyone licensed to use it can change the LGPL libraries and still use my code.

C) is the one that I am most concerned with since Im using wxWidgets in my application. I dont mind at all giving back to the community if I ever change something in wxWidgets and I sure as hell have already inserted "Thanks to Widgets" code in my application.
Regarding C) it means that I either use the LGPL libraries as a DLL or if I staticly link to them I have to release my .obj so that anyone can recompile my code.
Correct as far as I know (using as a DLL is certainly fine).

http://erebusrpg.sourceforge.net/ - Erebus, Open Source RPG for Windows/Linux/Android
http://conquests.sourceforge.net/ - Conquests, Open Source Civ-like Game for Windows/Linux

wxWidgets is *not* under the LGPL; it is under the wxWindows License. It is basically the LGPL with a few added exceptions including the ability to link statically and not distribute source or object files.

So no worries on that end [smile].
Quote:Original post by BloodWarrior
If I start developing something that uses a pure GPL then by the viral nature of this license I am forced to release everything I do as a GPL. That means my entire source including every file required to run it (graphics and sound, unless my code can be run as meant without them).


This might not be the case, but if you (and you alone) develop something of your own, then you have the right to rerelease your stuff under other licences as well. If other people are involved in the development, then you will need everyones permission for rereleasing under a different license.

This is, as I mentioned, a different case from contributing to somebody elses project. Only the owner has the right to make releases with different licences.

This topic is closed to new replies.

Advertisement