GPL licence question

Started by
13 comments, last by _mark_ 9 years, 9 months ago

Hi Guys,

With the GPL v3 licence, does the coder have to make thier own source code available for any application created using an API that is GPL licenced or do they only have to supply (or link to) the original source code of the API that they used?

This seems to be an extremely confusing area for me.

Thanks in advance. smile.png

Advertisement

With the GPL v3 licence, does the coder have to make thier own source code available for any application created using an API that is GPL licenced or do they only have to supply (or link to) the original source code of the API that they used?


It's a complicated subject, but the short version is that if you use GPL-licensed code then all of your own code must adhere to the terms of GPL, meaning that anyone receiving a derived work of your source code (like a compiled .exe) has the right to request all source code and you must supply it. Roughly: if you use the GPL then all of your code becomes covered by the GPL. That's why some call it a "viral" license.

Ultimately, just stay away from the GPL and anything that smells like it if you aren't 100% sure that you want your project to be GPL'd.

Sean Middleditch – Game Systems Engineer – Join my team!

Thanks Sean.

Man, it is complicated. Isn't it?

I have steered clear of GPL APS's for a long time for this very reason (using native Microsoft SDK's the whole time). I don't think I'll be changing my approach any time soon, by the sounds of it.

(Upvoted your answer smile.png )

Some GPL libraries are dual-licensed with LGPL as well, which means that you don't have to release your code if you link to the library as a dynamic library. Also, there are many libraries using, in my opinion, more sane licenses like MIT/Apache/BSD.

As far as I know LGPL still requires you to release the source code of the library, it just prevents the entire program from falling under the license (and that's only if the library is linked dynamically, otherwise it's just like the GPL).

Don't pay much attention to "the hedgehog" in my nick, it's just because "Sik" was already taken =/ By the way, Sik is pronounced like seek, not like sick.

Yeah, LGPL seems fine to me. But, GPL no thanks.

I have noticed that some GPL licenced API's have clauses say that you don't need to supply your own project source. So, I guess it comes down to read 'all' of the fine print (all 100 pages of it) to be sure.

There is actually quite a lot of nuance in LGPL that people gloss over.

The biggest sticky issue is header files.

When you pull in a header file as required for function declarations and interoperability, that is allowed in the license. But sadly many GPL projects will include code in the header files beyond the recommendations. For templates it is a strict necessity, for other items like small inline functions it is for performance or other reasons. It has never gone through the courts, but the inclusion of the code might be sufficient to trigger the viral aspect if someone wanted to sue.

Be very careful if you intend to release non-Free software but want to use Free libraries. The risk of an error resulting in legal consequences is fairly tiny, but wielding the firebrand is inherently risky.

I also seem to recall something about the LGPL requireing that users can replace the LGPLed library with another version of it, including allowing people to reverse engineer your program to the extent required in order to update that library.

I wonder if one could abuse that to for example create a legal workaround for a DRM system.


I have noticed that some GPL licenced API's have clauses say that you don't need to supply your own project source. So, I guess it comes down to read 'all' of the fine print (all 100 pages of it) to be sure.

GNU's version of the standard library does this. It's released under the GPL to ensure it's not possible to modify the library and release the changes under another license, but it has that exception clause so programs using the standard library are not forcefully turned into GPL (after all, it's the standard library, not a library that's explicitly known to be under the GPL by the programmer).

I imagine this is also used by add-on libraries (i.e. libraries that the program loads on the fly that extend it). You can't use the GPL on those libraries if the program is not GPL compatible. Adding an exception clause would work around that.


I also seem to recall something about the LGPL requireing that users can replace the LGPLed library with another version of it, including allowing people to reverse engineer your program to the extent required in order to update that library.

I wonder if one could abuse that to for example create a legal workaround for a DRM system.

If I recall correctly, Nvidia abused the LGPL to connect proprietary code with GPL code.

Note that the requirement you mentioned is simpler than you think. Merely being able to swap the DLL file with another one would be enough.

Don't pay much attention to "the hedgehog" in my nick, it's just because "Sik" was already taken =/ By the way, Sik is pronounced like seek, not like sick.


GNU's version of the standard library does this. It's released under the GPL to ensure it's not possible to modify the library and release the changes under another license, but it has that exception clause so programs using the standard library are not forcefully turned into GPL (after all, it's the standard library, not a library that's explicitly known to be under the GPL by the programmer).
Isn't that what its called as "GPL with linking exception" ?

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

This topic is closed to new replies.

Advertisement