Jump to content
  • Advertisement
Sign in to follow this  
lonewolff

GPL licence question

This topic is 1469 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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

Share this post


Link to post
Share on other sites
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. Edited by SeanMiddleditch

Share this post


Link to post
Share on other sites

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 )

Share this post


Link to post
Share on other sites

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.

Edited by patrrr

Share this post


Link to post
Share on other sites

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).

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites


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.

Share this post


Link to post
Share on other sites


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" ?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!