Archived

This topic is now archived and is closed to further replies.

thuned

using gpl libraries with commercial software

Recommended Posts

I''m currently working on a commerical software but I want to include a public library for some added functionality. Currently, I don''t need to modify the library at all. From what I understand, all I need to do is to include the gpl license agreements, the library source (NOT my main source, right?), and say in my documentation that I''ve used this library in my software?

Share this post


Link to post
Share on other sites
I don''t think you need to include the library sources with your app if you didn''t make any changes to the actual library.
You might want to contact your lawyer(s) about the licenses. You do have lawyers right?


||--------------------------||
Black Hole Productions
http://bhp.e-chrono.net/
Resident expert on stuff
max621@barrysworld.com
||--------------------------||

Share this post


Link to post
Share on other sites
Well first of all there are two commonly used licenses from GNU, the GNU GPL,
and the GNU LGPL. Most libraries are released under the LGPL, but not all. If
the library that you are using is under the LGPL, then you must let the user
know that you used the library, and where you can download sourcer, objects,
etc. for the library. You also must include a way to relink your program to a new
version of the library. The two ways of doing this are: 1) allow for the user to either
get the code for your program or the object files needed to link with an updated
version of the library, or 2) use a dll so that you can just replace the dll with a
recompiled versoin ( the dll is for the library). For an open source project, use #1,
otherwise use #2 (not required to give the source / objects ).
The GNU GPL, however, requires that the program using the library must have the
source code available to the user.

Hope that clears up any questions.

**BTW** SDL is released under the LGPL



"If patience is a virtue, and ignorance is bliss, you can have a pretty good life if you''re stupid and willing to wait"

Share this post


Link to post
Share on other sites
There''s a rather large important distinction between GPL and LGPL -- which license does the library use? (Most libraries tend to use LGPL but some do use GPL -- beware!).

Anyway, if you include an LGPL library binary (ie. a DLL) in your distribution you must include the copyright/license terms in the distribution (in a README, or whatever) and you must also make the source code of the library available upon request..Even if you haven''t changed it (if you have changed it you must make your changes available).

What this means is if someone using your software requests the source to the the LGPL library you must put it up on a website or mail it to them on CD (charging them a nominal shipping charge to cover the S&H and materials) or provide some means of giving them the source -- note that giving them a link to the original project source or some mirror that you dont own doesn''t legally constitute giving them a copy; but in practice virtually all people will just go get it from the main site if you offer to send them a CD in a month for $8 if they want, but also include the link in your (e)mail back to them. So the practical effort required to deal with these license terms is virtually non-existent because people never request the source code anyway, particularly if you haven''t made any significant changes.


HOWEVER, if the library you use is GPL, then your whole program MUST be released under the GPL. Even if you write a 100,000 line game and link it to a 100 line GPL library, you must release the whole project as GPL if you distribute the binaries at all. What this means is anyone you distribute the binary to can request the source to your entire project (and then they can go and give it (the source) to anyone else they want to, because the GPL terms say so). According to the letter of the GPL you must honor all such requests. There''s a lot of debate as to whether or not the GPL is even legal (its never been really tested in court); but even if its not; you generally dont want to anger the GPL-zealots that will come down hard on you if you even seem to be violating the tiniest portion of the GPL.

In short, don''t link to a GPL unless you''re fully comfortable with your entire project being GPL itself. However, feel free to use LGPL libraries, just follow the simple rules.



Share this post


Link to post
Share on other sites
Well first of all there are two commonly used licenses from GNU, the GNU GPL,
and the GNU LGPL. Most libraries are released under the LGPL, but not all. If
the library that you are using is under the LGPL, then you must let the user
know that you used the library, and where you can download sourcer, objects,
etc. for the library. You also must include a way to relink your program to a new
version of the library. The two ways of doing this are: 1) allow for the user to either
get the code for your program or the object files needed to link with an updated
version of the library, or 2) use a dll so that you can just replace the dll with a
recompiled versoin ( the dll is for the library). For an open source project, use #1,
otherwise use #2 (not required to give the source / objects ).
The GNU GPL, however, requires that the program using the library must have the
source code available to the user.

Hope that clears up any questions.

**BTW** SDL is released under the LGPL



"If patience is a virtue, and ignorance is bliss, you can have a pretty good life if you''re stupid and willing to wait"

Share this post


Link to post
Share on other sites
damn double clicked i guess

"If patience is a virtue, and ignorance is bliss, you can have a pretty good life if you''re stupid and willing to wait"

Share this post


Link to post
Share on other sites
umm actually under the terms of gpl ONLY ppl who have access to the excutable LEGALLY have access to the source. furthermore, you CANT just distribute an exe you paid for, and it DEFINATLY will not cover the art, sounds, movies, etc. only the excutable code. which means the following:

if a game is released as a commercial endeavor. only ppl who purchase the game legally from an authorized retailer can use the game. therefore they are the ONLY ppl who have access to the source code.

now the problem is MANY open source advocats feel that once its GPL its fair game for anyone to have the source, executable, art, etc that make the app tick. its just not so, though you will have much open and blantant piracy of your game. i HIGHLY suggest staying away from ANY GPL code.

LGPL is safer because it only requires a mention and as said a method to update (ie via dlls is best). also less ppl are going to blantantly pirate your game (since they dont have the source to the game, they feel less inclined that they can freely distribute things they dont own the rights to).

ppl obviusly dont understand the fine subtlties that allow GPL to be a commercially viable solution. personally, i dont get involved in GPL projects unless they will remain purly free (in price AND source). since if a commercial entity decides to use my source and make money, i want a piece of the action. this is why its best for GPL users to include such clauses (ie not for commercial use).

Share this post


Link to post
Share on other sites
quote:
Original post by a person
umm actually under the terms of gpl ONLY ppl who have access to the excutable LEGALLY have access to the source. furthermore, you CANT just distribute an exe you paid for, and it DEFINATLY will not cover the art, sounds, movies, etc. only the excutable code. which means the following:



Agreed. You can however compile the source and distribute the resulting binary and source.

quote:

if a game is released as a commercial endeavor. only ppl who purchase the game legally from an authorized retailer can use the game. therefore they are the ONLY ppl who have access to the source code.



But once you have the source code -- and the GPL states than anyone using the binary code must have access to the source -- you are allowed to modify it, redistribute it, etc. It means than it is perfectly legal to redistribute and/or modify the source. It is not legal, however, to modify, redistribute, etc. the artwork and the such. Basically, anyone can have your source code if you distribute your application, and that''s the whole point behind the GPL.

quote:

now the problem is MANY open source advocats feel that once its GPL its fair game for anyone to have the source, executable, art, etc that make the app tick. its just not so, though you will have much open and blantant piracy of your game. i HIGHLY suggest staying away from ANY GPL code.



You probably haven''t met much ''open source advocates''. They tend to be much more respectful of copyrights than most people, even if they disagree with them. Again, the GPL specifies that, if you have the binary file, you must have an access to the code (the offer must stand at least 3 years). It is also perfectly legal to compile the code yourself and redistribute the newly made binary (without artwork, etc) and the source code (it actually happens quite often in the community where people contribute RPM, DEB, PKG, EXE and other binary formats for their OS of choice).

quote:

LGPL is safer because it only requires a mention and as said a method to update (ie via dlls is best). also less ppl are going to blantantly pirate your game (since they dont have the source to the game, they feel less inclined that they can freely distribute things they dont own the rights to).



You do know than 99.9999% of the "warez d00ds" out there don''t know what "source code" means, right? It''s not like giving away the source code will promote your application to the number one position on all the warez lists. And it''s not like not giving your source will prevent piracy either. There are thousand of commercial applications out there to prove this, and I don''t think you''ll find many free software application on warez either. People who use pirated software don''t do so in order to get the source code, they only care about the final product.

If you''re so unwilling to open your source, why use a free license at all in the first place? If you want to link against a GPL''ed library, however, you''ve got the obligation to distribute your source if you distribute your product. No rip-off allowed. I wonder why that bugs so many people, since proprietary software developers are supposed to be honest, unlike free software ones.

quote:

ppl obviusly dont understand the fine subtlties that allow GPL to be a commercially viable solution. personally, i dont get involved in GPL projects unless they will remain purly free (in price AND source). since if a commercial entity decides to use my source and make money, i want a piece of the action. this is why its best for GPL users to include such clauses (ie not for commercial use).


Which makes it non-GPL, AFAIK, as you''re restricting the rights of the user to reuse the code and/or redistribute it. If you''re the owner of the source (and use no other GPL code), you can always sell a proprietary license to a commercial entity anyway.

Finally, it is important to note than the LGPL isn''t really convenient for applications (as opposed to libraries), as it requires that you link dynamically. Doing so against an application being quite difficult, the LGPL is really suited for libraries only.

Share this post


Link to post
Share on other sites
quote:
If you''re so unwilling to open your source, why use a free license at all in the first place? If you want to link against a GPL''ed library, however, you''ve got the obligation to distribute your source if you distribute your product. No rip-off allowed. I wonder why that bugs so many people, since proprietary software developers are supposed to be honest, unlike free software ones.


I think that was actually why he was asking it. He wasn''t sure about the legalities of the LGPL either. Even I found it badly worded in legal terms.

My personnal preference is to NEVER use any GPL stuff and only use LGPL for demo/example source. I don''t like releasing any code under GPL as it gives the other party to much freedom with my work. Write my own license instead. Also makes you feel much better when large game companies contact you for help with it. The other reason they contact me is due to the really bad way I comment code.



Beer - the love catalyst
good ol'' homepage

Share this post


Link to post
Share on other sites
The library I'm trying to use is http://www.math.berkeley.edu/~benrg/avisynth.html . It appears to be GPL and not LGPL. Does version 2.0+ make a difference?

from http://www.gnu.org/copyleft/gpl.html#SEC3
quote:

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.


"Can be reasonably considered independent"...
The anisynth dll is completely seperate from my main program - it's not integrated. My program involves some videos of sports and having double the framerate will be nice for closer analysis. Without the dll, my program will still be fully functional (that means it's independent, right?).

Actually, this program is still under developement. What if I also wanted to provide addition interfaces to the dll (without modification to the dll source).

Edited by - thuned on February 19, 2002 11:52:12 AM

Edited by - thuned on February 19, 2002 12:03:07 PM

Share this post


Link to post
Share on other sites
quote:
Original post by thuned
"Can be reasonably considered independent"...
The anisynth dll is completely seperate from my main program - it's not integrated. My program involves some videos of sports and having double the framerate will be nice for closer analysis. Without the dll, my program will still be fully functional (that means it's independent, right?).

Read it all:
"...do not apply to those sections when you distribute them as separate works. "

Distribute them together, and that exception does not hold.

[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost ]

Edited by - Kylotan on February 19, 2002 3:33:59 PM

Share this post


Link to post
Share on other sites